web-dev-qa-db-fra.com

Vérification de la révocation de certificat SSL

Dans le protocole SSL, je ne vois pas où le certificat est vérifié pour le statut de révocation.

https://developer.mozilla.org/fr/introduction_to_ssl

La révocation de certificat et la vérification de l'état ne sont-elles pas implémentées dans le protocole SSL?

12
user1157

Le protocole SSL spécifie la manière dont un serveur envoie son certificat au client. Le client doit ensuite "obtenir" la clé publique du serveur en validant le certificat. Le SSL spécification ne décrit pas la validation du certificat; Pour cela, vous devez regarder x.509 , dans lequel vous verrez qu'il s'agit d'un processus beaucoup plus complexe que celui décrit dans le document que vous connaissez.

Vérification du statut de révocation fait partie de la validation des certificats. Le client est en fait libre de le faire de quelque manière que ce soit, il voit l'ajustement; De nombreux navigateurs Web "Vérifiez" l'état de la révocation par un processus qui va comme "MMHH ... il n'est probablement pas révoqué de toute façon, pas besoin de vérifier quoi que ce soit". Dans le monde X.509, le statut de révocation peut être déterminé en téléchargeant et en validant les listes de révocation CRL (Certificate Revocation) ou en obtenant des réponses OCSP des intervenants OCSP (une réponse OCSP est une sorte de CRL réduite à un seul certificat cible). Théoriquement, l'état de la révocation doit être obtenu pour tous les certificats, c'est-à-dire le certificat de serveur, mais également les certificats de CA intermédiaires utilisés pour valider les certificats de serveur, ainsi que tous les autres certificats utilisés pour valider les réponses CRL et OCSP (cela peut devenir hautement récursif). Le coût global (en particulier dans le temps de téléchargement) peut devenir prohibitif, c'est pourquoi de nombreux clients s'appuient sur un modèle plus faible mais plus rapide (par exemple, vérifier l'état de la vérification du serveur lui-même, ni l'autorité de certification intermédiaire; ou ne vérifiant aucun statut).

Quoi qu'il en soit, la validation est la manière dont la clé publique du serveur est obtenue, elle se produit donc lors de la poignée de main SSL, juste avant que le message ClientKeyExchange ne soit envoyé par le client.

15
Thomas Pornin

Il existe deux façons de vérifier le statut d'un certificat:

Aucun de ceux-ci n'est spécifique à SSL, et ils font exactement cela: vérifier l'état d'un certificat. Ils s'appliquent donc à tout ce qui utilise des certificats.

9