2016-11-13 2 views
0

J'utilise PyOpenSSL verify_certificate() pour vérifier les chaînes de certificats. Mon code semble fonctionner. Mais je me demandais si la fonction vérifie également les signatures le long de la chaîne de certificats. Supposons que nous ayons la chaîne ca_cert -> i_ca_cert -> s_cert. Ainsi ca_cert signé i_ca_cert et i_ca_cert signé s_cert. Est-ce que verify_certificate() vérifie si la clé (RSA) du signataire a été utilisée pour signer le certificat et si la signature est correcte, pour chaque certificat le long de la chaîne?Est-ce que PyOpenSSL verify_certificate() effectue une vérification de signature?

+0

Relié ... OpenSSL 1.0.2 et versions antérieures * n'effectue pas de correspondance de nom d'hôte. OpenSSL 1.1.0 * effectue * la correspondance de nom d'hôte. Voir aussi [Client SSL/TLS | Vérification] (https://wiki.openssl.org/index.php/SSL/TLS_Client#Verification) sur le wiki OpenSSL. – jww

Répondre

0

Mais je me demandais si la fonction vérifie également les signatures le long de la chaîne de certificats

Bien sûr, il le fait. Sinon, quel est le but de la vérification de chaîne? A partir de la documentation OpenSSL (man 1ssl verify sur linux):

La dernière opération consiste à vérifier la validité de la chaîne de certificats. La période de validité est vérifiée par rapport à l'heure actuelle du système et aux dates notBefore et notAfter dans le certificat. Les signatures de certificats sont également vérifiées à ce stade.