Geek & InsoliteInformatiqueCertificat X.509 : Qu'est-ce que c'est et à quoi sert-il ?

Certificat X.509 : Qu’est-ce que c’est et à quoi sert-il ?

Les consommateurs réduisent souvent la SSI (sécurité des systèmes d’information) aux pare-feux, aux antivirus, aux antirootkits… Pourtant, la sécurité repose aussi sur des standards comme le chiffrement asymétrique (à clés privées et publiques) et le certificat électronique. Techniquement, ce dernier lie une clé publique à un utilisateur. La norme X.509 permet d’établir et d’authentifier cette association. 

Qu’est-ce qu’un certificat X.509 ?

L’appellation certificat X.509 est un abus de langage. Il ne s’agit pas à proprement parler d’un certificat. Ce nom renvoie en réalité au standard spécifiant les formats des certificats d’authentification à clé publique. De ce fait, il est également appelé « système X.509 » ou « norme X.509 ». La standardisation s’étend par ailleurs aux formats des algorithmes permettant de valider le chemin de certification. 

Dans la pratique, les navigateurs utilisent divers signes pour indiquer le niveau de sécurité d’une page (cadenas, adresse verte, avertissement…). Afin d’obtenir cette information, ils doivent consulter la spécification X.509 du site. Cette dernière renverra ensuite vers un certificat standard pour clés publiques. Ainsi, vous aurez accès à des renseignements permettant d’évaluer la fiabilité de la plateforme visitée. 

Défini en 1988, le standard X.509 couvre la partie authentification des normes X.500 de l’UIT (Union internationale des télécommunications). À titre d’information, cette organisation œuvre pour la standardisation des SI (systèmes d’information). Depuis, la plupart des protocoles X.500 ont été abandonnés au profit du LDAP (Lightweight Directory Access Protocol). 

La norme X.509, quant à elle, reste indispensable pour reconnaître une connexion sécurisée. Elle permet notamment de lier une clé de chiffrement publique à une identité. Le certificat sert également à garantir l’authenticité de cette association à travers la signature d’un tiers de confiance. 

À quoi servent ces certificats ?

À la base, les certificats numériques servent à authentifier une clé publique et à chiffrer les échanges en ligne. Ils sont souvent considérés comme des passeports ou des cartes d’identité électroniques. En effet, ces certificats permettent d’identifier formellement les personnes ou les entités associées à une URL donnée. Ainsi, vous pouvez être sûr de ne pas échanger avec un imposteur, voire un site malveillant. 

Ce système d’authentification repose essentiellement sur la confiance du public dans les autorités de certification. Elles se chargent de confirmer l’identité du propriétaire du certificat et de valider la clé publique associée. Ces tiers de confiance peuvent par ailleurs révoquer ces passeports numériques en cas de problème de conformité. De plus, une durée de validité est prévue pour surveiller les acteurs évoluant sur le Web.

Il existe actuellement une grande diversité de certificats électroniques. Les certificats SSL/TLS, par exemple, concernent le chiffrement des données (entre internautes, sites web et visiteurs, etc.). Le standard X.509 a contribué à leur création. D’ailleurs, il s’agit de certificats X.509 avec une extension d’utilisation de clés étendues. Cet attribut permet d’assigner un rôle à chaque entité impliquée dans le processus.

Comment obtenir un certificat X.509 ?

Aujourd’hui, vous pouvez obtenir facilement un certificat X.509 sur de nombreux sites spécialisés. Il suffit de suivre la procédure indiquée par l’opérateur. Sur ce type de plateformes, vous pouvez notamment demander un certificat :

  • Serveur Web (HTTPS) ;
  • Serveur messagerie (IMAPS, POPS, SMTPS, etc.) ;
  • Serveur distant (Proxy, VPN, etc.) ;
  • Utilisateur, client ou e-mail ;
  • Développeur (signature d’applications ou de composants OS, plug-ins, etc.).

Pour choisir votre interlocuteur, n’hésitez pas à consulter les avis sur les blogs, les forums, les réseaux sociaux, etc. Vous avez également la possibilité de créer vous-même ce certificat avec OpenSSL. En effet, cette bibliothèque open source prend en charge diverses fonctions de chiffrement. Elle vous aidera ainsi à créer et à faire signer des certificats X509 par un tiers de confiance.

Vous pouvez aussi générer un fichier X.509 avec le Certificate Manager d’AWS, l’hébergeur des données collectées par pingsender.exe sur Windows. Vous devez seulement disposer d’un nom de domaine pour recourir à cette fonctionnalité d’Amazon Web Services. En tout cas, il est déconseillé de créer le certificat localement, sauf pour un usage dans un environnement single instance. 

Comment changer le format du certificat X.509 ?

Un certificat X.509 est le plus souvent au format PEM (Privacy Enhanced Mail). Concrètement, il se présentera sous forme de fichier texte avec des parties codées en ASCII Base64. Chaque élément sera par ailleurs délimité par un en-tête et un pied de page écrit en texte brut. La plupart des codeurs utilisent des formules simples comme « begin certificate » et « end certificate ». 

Un fichier PEM peut notamment être affiché avec une extension « .pem », « .crt », « .cert ». ou « .key ». Cette dernière indique qu’il s’agit d’une clé privée. Vous pouvez aussi rencontrer d’autres extensions en fonction de l’autorité de certification. L’essentiel est de savoir si l’encodage est binaire (DER) ou ASCII (PEM). En effet, un fichier DER doit être converti en PEM avant de basculer vers un autre format. 

Dans tous les cas, vous aurez besoin d’utiliser OpenSSL pour la conversion. Vous devez seulement remplacer les parties en majuscules des commandes indiquées par les noms des fichiers concernés. Entrez :

  • « openssl x509 -inform der -in CERTIFICAT.der -out CERTIFICAT.pem » pour passer de DER à PEM ;
  • openssl crl2pkcs7 -nocrl -certfile CERTIFICATE.pem -certfile MORE.pem -out CERTIFICATE.p7b (PEM vers PKCS # 7 ou P7B) ;
  • openssl pkcs12 -export -out CERTIFICATE.pfx -inkey PRIVATEKEY.key -in CERTIFICATE.crt -certfile MORE.crt (PEM vers PKCS # 12 ou PFX).

Ici, MORE représente un certificat intermédiaire et PRIVATEKEY renvoie à une clé de cryptage privée.