Glossaire / Référence pour développeurs
Certificat X.509
Aussi appelé Certificats X.509.
- Qu'est-ce qu'un certificat X.509 ?
- Un certificat X.509 est un fichier signé qui lie une clé publique à un nom et à une période de validité, et c'est le format qui sous-tend chaque connexion HTTPS que vous établissez vers une plateforme d'échange.
Le format est ancien et le montre : X.509 est apparu en 1988 dans le cadre d'une norme d'annuaire, et le profil internet encore utilisé, la RFC 5280, date de mai 2008. Un certificat est un enregistrement structuré signé par un émetteur, et non un secret, donc il n'y a aucun risque à le diffuser. Ce qu'il prouve est limité : quelqu'un a convaincu une autorité qu'il contrôlait un nom.
Comment cela fonctionne
Un certificat est une liste de champs accompagnée d'une signature qui couvre l'ensemble.
Les champs qui comptent pour un lecteur sont peu nombreux. Un numéro de série identifie le certificat auprès de son émetteur. Le champ émetteur nomme celui qui l'a signé, le champ sujet nomme celui dont il parle, et deux horodatages délimitent la fenêtre pendant laquelle il compte. Un bloc d'informations de clé publique du sujet contient la clé elle-même. Les extensions portent le reste, et l'une d'elles fait l'essentiel du travail : subjectAltName énumère les noms de domaine que le certificat couvre.
Le champ common name est le piège classique. Il ressemble à l'endroit où un domaine est stocké, et il l'a été pendant des années, mais la RFC 6125 a déprécié sa lecture en mars 2011 et les navigateurs l'ignorent désormais. Un certificat dont le subjectAltName ne liste pas le site que vous consultez échoue, quoi que dise son common name.
Les durées de vie se sont effondrées au cours de la dernière décennie. Les certificats TLS à confiance publique émis à partir du 1er septembre 2020 ne peuvent pas être valides plus de 398 jours, contre trois ans puis deux auparavant, et Let's Encrypt émet couramment des certificats de 90 jours parce que le renouvellement est automatisé. Une fenêtre courte remplace la révocation, qui n'a jamais fonctionné de manière fiable.
N'importe qui peut en fabriquer un. Signer un certificat avec sa propre clé produit un certificat auto-signé, où émetteur et sujet sont identiques, et c'est un fichier parfaitement valide qu'aucun magasin de confiance ne reconnaît. Ce n'est pas la signature qui rend un certificat digne de confiance ; c'est l'identité du signataire.
Où vous le voyez
Cliquez sur le cadenas dans n'importe quel navigateur et vous regardez un certificat X.509.
Le même format de fichier apparaît partout où un logiciel doit vérifier qu'une chose provient d'un fournisseur précis : binaires d'application signés, mises à jour de micrologiciel signées, et les certificats d'attestation que portent certains portefeuilles matériels pour que l'application d'un fournisseur puisse distinguer un appareil authentique d'une copie. Le BIP70 intégrait directement des certificats dans les demandes de paiement bitcoin, la seule fois où ce format a fait partie d'un protocole bitcoin.
Deux habitudes protègent un acheteur ici. Ne passez jamais outre un avertissement de certificat sur un site qui détient de l'argent, car le navigateur signale que le nom et la clé ne correspondent pas et il n'existe aucune version bénigne de cela sur un domaine de plateforme d'échange. Et rappelez-vous qu'un certificat valide sur un site frauduleux est normal plutôt que contradictoire : la vérification porte sur le nom, donc si le nom ressemble de près au vrai, le certificat fait son travail pendant que vous perdez vos fonds.
Certificat X.509 vs certificat feuille
X.509 est un format ; feuille décrit une position. Chaque certificat d'une chaîne est un certificat X.509, y compris les intermédiaires et la racine auto-signée, et appeler l'un d'eux la feuille dit seulement qu'il se trouve à l'extrémité, identifiant un serveur réel plutôt que d'autoriser d'autres émissions. La différence est visible dans une seule extension, puisqu'un certificat dont les basicConstraints le désignent comme autorité peut en signer d'autres et qu'une feuille ne le peut pas.