X.509

Un article de Wikipédia, l'encyclopédie libre.

X.509 est un standard de cryptographie de l'Union internationale des télécommunications pour les infrastructures à clés publiques (PKI). X.509 établit entre autres les formats standards de certificats électroniques et un algorithme pour la validation de chemin de certification.

X.509 a été créé en 1988 dans le cadre du standard X.500. Il repose sur un système hiérarchique d'autorités de certification, à l'inverse des réseaux de confiance (comme PGP), où n'importe qui peut signer (et donc valider) les certificats des autres.

Sommaire

[modifier] Certificats

Dans le système X.509, une autorité de certification attribue un certificat liant une clé publique à un nom distinctif (Distinguished Name), à une adresse e-mail ou un enregistrement DNS.

Les certificats racines sont des clés publiques non signées, ou auto-signées, mais dignes de confiance. Des autorités de certification commerciales détiennent des certificats racines présents dans de nombreux logiciels, par exemple les navigateurs. Internet Explorer ou Firefox contiennent quelques certificats racines préinstallés. Quand le navigateur ouvre une connexion sécurisée (SSL) à un site ayant acheté une certification auprès d'une autorité connue, il considère que le site est sûr, et le passage en mode sécurisé est transparent.

Si le certificat est auto-signé (autorité de certification et créateur de la clé publique ne font qu'un), le navigateur propose de l'examiner, puis de l'accepter ou de le refuser selon la confiance qu'on lui accorde.

La durée de validité des certifications commerciales n'est pas infinie, elles expirent souvent au bout d'un an et doivent être renouvelées.

[modifier] Structure d'un certificat

  • Version
  • Numéro de série
  • Algorithme de signature du certificat
  • Signataire du certificat
  • Validité (dates limite)
    • Pas avant
    • Pas après
  • Détenteur du certificat
  • Informations sur la clé publique
    • Algorithme de la clé publique
    • Clé publique
  • Identifiant unique du signataire (Facultatif)
  • Identifiant unique du détenteur du certificat (Facultatif)
  • Extensions (Facultatif)
    • Liste des extensions...

[modifier] Liste de révocation

Un certificat peut devenir invalide pour de nombreuses raisons autres que l'expiration naturelle, telle que la perte ou la compromission de la clé privée associée au certificat ou le changement d'au moins un champ inclus dans le nom du titulaire/ détenteur du certificat.

C'est pourquoi la norme définit le format d'une liste indiquant les certificats devenus invalides pour une autorité de certification donnée. Cette liste est signée par l'autorité de certification pour en empêcher toute modification indétectée. Elle comprend une date d'émission, une date de mise à jour (toutes 2 optionnelles) et la liste proprement dite sous la forme de paire <numéro de série du certificat revoqué; motif éventuel de révocation>. Le motif ne peut être présent que dans les CRL au format version 2.

Une limitation parfois génante des CRL est le délai de propagation des informations de révocation. Pour le réduire, on a inventé un protocole de validation de certificat qui donne, à peu près, les mêmes informations que les CRLs mais donnant potentiellement des informations plus à jour. Il s'agit de OCSP, défini dans le RFC 2560.

[modifier] Sécurité

Suite à la publication d'une attaque de recherche de collisions complètes contre MD5 en 2004[1], Arjen Lenstra, Xiaoyun Wang et Benne de Weger s'intéressèrent au X.509 utilisant MD5 pour l'authentification du certificat. Leur attaque permet de forger deux certificats avec des signatures identiques. L'utilisation de la fonction de hachage cryptographique SHA-1 ne résout pas le problème car une attaque similaire est possible en théorie (la complexité de la recherche de collisions sur SHA-1 est bien plus grande que sur MD5).

[modifier] Voir aussi

[modifier] Articles connexes

[modifier] Liens externes

Quelques autorités de certification commerciales

[modifier] Sources

  1. (en) Colliding X.509 certificates, Arjen Lenstra, Xiaoyun Wang et Benne de Weger