Les certificats X.509

Dans la cryptographie asymétrique, la distribution de la clé publique pose souvent problème notamment : Comment pouvons nous être sur que la clé publique est bien celle de la personne avec qui nous souhaitons communiquer ?

Utilisons des certificats !

Les certificats sont validées par une autorité de certification qui apporte (ou pas) la transitivité de la confiance. C’est à dire que si vous faites confiance à une AC alors par transitivité vous faites également confiance à tous les certificats qui sont signés par cette AC et ceux qu’ils signeront, etc.
(Le mot également est important car il existe de modèle où la confiance s’effrite avec la distance dans la chaîne.)

La plupart des certificats utilisés aujourd’hui en informatique sont des certificats dit X.509 en référence au standard X.500 : l’annuaire universel dont personne n’a voulu !

Un certificat X.509 est standardisé en format ASN.1 de la forme suivante :

   Certificate  ::=  SEQUENCE  {
        tbsCertificate       TBSCertificate,
        signatureAlgorithm   AlgorithmIdentifier,
        signatureValue       BIT STRING  }

Les certificats X.509 sont utilisés sur toutes les plateformes et les descriptions de leur fonctionnement sont largement publiés sur la toîle. Nous n’en parlerons donc pas ici. Cependant, leur représentation est parfois source de confusion. Traditionnellement sous Linux, ils viennent avec une extension « .PEM » et sous Windows avec une extension « .CRT », mais il peut arriver de rencontrer des « .DER » et des « .CER ».

D’où une question légitime : quelles sont les différences en .crt, .cer, .der, .pem ?
Il s’agit notamment de représenter la même information (le certificat) mais avec un encodage différent ou plus précisément un nombre de couche d’encodage différent :

Précisons simplement les encodages utilisés en fonction de l’extension :
DER : Distinguished Encoding Rules : encodage DER de l’ASN.1
PEM : Privacy-enhanced Electronic Mail (Balise + encodage base64 du DER)
.Crt et .cer (indifféremment): Certificat en PEM ou DER

Pour Windows, vous pouvez renommer indifféremment tous vos certificats en .crt ou .cer sans vous souciez de l’encodage de ce dernier. Une préférence ira cependant à l’extension « .cer » qui est plus largement reconnue par les programmes Microsoft.

Suite à de nombreuses questions sur le sujet et face à l’incompréhension de certain voici une petit schéma qui nous l’espérons permettra de mieux comprendre l’encodage des certificats :

x509

Ce n’est pas si compliqué, si ?

Publicités

A propos JoMendes

Amateur de mathématiques et d'hexadécimal. Je m'intéresse de près ou de loin suivant mon niveau à tous les sujets de sécurité de l'information.
Cet article, publié dans Cryptographie Asymétrique, est tagué , , , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s