Dans nos articles précédents, nous avons exploré le protocole TLS et les mécanismes cryptographiques qui le sous-tendent. Aujourd’hui, nous nous concentrons sur un élément essentiel de cette architecture de sécurité : les certificats TLS, véritables pièces d’identité des sites web.
Qu’est-ce qu’un certificat TLS ?
Un certificat TLS est l’équivalent numérique d’une carte d’identité pour un site web. Il contient des informations cruciales permettant d’identifier et d’authentifier un site web :
- Le nom du site (nom de domaine)
- La clé publique du site
- Des informations sur le propriétaire du site
- Une signature de l’autorité de certification qui a validé ces informations
Un certificat est signé numériquement par son émetteur, ce qui garantit son authenticité.
Exemple concret : Lorsque vous vous connectez à https://www.banque.fr
, votre navigateur vérifie le certificat du site pour s’assurer que vous êtes bien connecté à votre banque et non à un site frauduleux qui se ferait passer pour elle.
La chaîne de confiance
Comment faire confiance à un certificat ? C’est là qu’intervient la chaîne de confiance, une structure hiérarchique qui établit la légitimité des certificats :
- Les autorités de certification racine (Root CA) sont des organisations reconnues comme fiables par défaut dans votre navigateur ou système d’exploitation. Par exemple, DigiCert, Sectigo, ou Let’s Encrypt.
- Ces Root CA peuvent signer des certificats d’autorités intermédiaires.
- Ces autorités intermédiaires signent à leur tour les certificats finaux utilisés par les sites web.
Cette structure hiérarchique permet de créer une chaîne de confiance. Si vous faites confiance à la racine, vous pouvez faire confiance à tous les certificats qui en découlent.
Exemple pratique : Votre navigateur fait confiance à DigiCert (Root CA), qui fait confiance à « DigiCert TLS RSA SHA256 2020 CA1 » (intermédiaire), qui a signé le certificat de GitHub. C’est pourquoi vous pouvez vous connecter en toute sécurité à GitHub.
La révocation de certificats
Que se passe-t-il si un certificat est compromis ou n’est plus fiable ? C’est là qu’interviennent les systèmes de révocation. Il en existe principalement deux :
1. Les listes de révocation de certificats (CRL)
Une CRL est une liste maintenue par une autorité de certification qui contient tous les certificats révoqués avant leur date d’expiration.
Comment ça marche :
- L’autorité de certification publie régulièrement des CRL
- Votre navigateur peut télécharger ces listes
- Si un certificat figure dans la liste, il est rejeté
Exemple : Si une entreprise découvre que sa clé privée a été volée, elle demande à son autorité de certification d’ajouter son certificat à la CRL. Ainsi, même si quelqu’un utilise cette clé privée pour se faire passer pour l’entreprise, les navigateurs qui consultent la CRL rejetteront le certificat.
Limites : Les CRL peuvent devenir très volumineuses et ne sont pas toujours à jour.
2. Le protocole OCSP (Online Certificate Status Protocol)
OCSP permet une vérification en temps réel du statut d’un certificat.
Comment ça marche :
- Lorsque vous visitez un site, votre navigateur envoie une requête à un serveur OCSP
- Le serveur répond immédiatement si le certificat est valide ou révoqué
- Le navigateur accepte ou rejette le certificat en conséquence
Exemple : Lorsque vous vous connectez à votre banque en ligne, votre navigateur peut vérifier instantanément via OCSP que le certificat de la banque n’a pas été révoqué depuis sa dernière utilisation.
Améliorations :
- OCSP Stapling : Le site web lui-même fournit la réponse OCSP, signée par l’autorité de certification, ce qui améliore les performances et la confidentialité.
- Certificate Transparency : Un système qui enregistre publiquement tous les certificats émis, permettant de détecter rapidement les certificats frauduleux ou mal émis.
Les formats de certificats
Les certificats TLS peuvent être stockés dans différents formats, chacun ayant ses spécificités :
1. PEM (Privacy Enhanced Mail)
C’est le format le plus courant pour les certificats, les clés privées et les requêtes de certificats.
Caractéristiques :
- Format texte encodé en Base64
- Entouré par les délimiteurs
-----BEGIN CERTIFICATE-----
et-----END CERTIFICATE-----
- Facile à éditer et à partager par email ou dans des fichiers de configuration
- Extensions courantes :
.pem
,.crt
,.cer
,.key
(pour les clés privées)
Exemple :
-----BEGIN CERTIFICATE-----
MIIDhTCCAm2gAwIBAgIJALJ7VcOA7KCTMA0GCSqGSIb3DQEBCwUAMFkxCzAJBgNV
BAYTAkZSMQ8wDQYDVQQIDAZGcmFuY2UxDjAMBgNVBAcMBVBhcmlzMQ8wDQYDVQQK
...
xBGSF4ejDpMjA2QXQL2/H7WQpVDVYNsZbPj5SPSEyS8CAwEAAaNTMFEwHQYDVR0O
BBYEFN8c4J3JLNd2j1dXKCRgAX+QNVu5MB8GA1UdIwQYMBaAFN8c4J3JLNd2j1dX
KCRgAX+QNVu5MA8GA1UdEwEB/wQFMAMBAf8=
-----END CERTIFICATE-----
2. DER (Distinguished Encoding Rules)
Un format binaire pour les certificats et les clés.
Caractéristiques :
- Format binaire (non lisible en texte)
- Plus compact que PEM
- Souvent utilisé sur les plateformes Windows
- Extensions courantes :
.der
,.cer
(sous Windows)
3. PKCS#7 / P7B
Format qui peut contenir des certificats et des chaînes de certificats, mais pas les clés privées.
Caractéristiques :
- Peut contenir plusieurs certificats (utile pour les chaînes de certificats)
- Peut être en format binaire ou encodé en Base64
- Extensions courantes :
.p7b
,.p7c
- Souvent utilisé sur les plateformes Windows et Java
4. PKCS#12 / PFX
Un format d’archive qui peut contenir à la fois des certificats et des clés privées, protégés par un mot de passe.
Caractéristiques :
- Format binaire protégé par mot de passe
- Peut contenir à la fois les certificats et les clés privées
- Facile à importer/exporter dans de nombreux systèmes
- Extensions courantes :
.pfx
,.p12
- Très utilisé pour le transfert complet d’identité numérique
Conclusion
Les certificats TLS sont les garants de l’identité des sites web et constituent un élément crucial du système de sécurité en ligne. Ils permettent d’établir une relation de confiance entre votre navigateur et les sites que vous visitez.
Dans notre prochain article, nous explorerons en détail le processus d’établissement d’une connexion TLS sécurisée, communément appelé « handshake TLS », et nous verrons comment tous ces éléments cryptographiques s’assemblent pour sécuriser vos communications.
Continuez à suivre notre série d’articles sur le protocole TLS pour découvrir l’établissement des connexions sécurisées et la gestion pratique des certificats avec OpenSSL.