web-dev-qa-db-fra.com

La différence entre l'identificateur de clé de sujet et l'empreinte digitale sha1 dans les certificats X509

J'ai un logiciel qui extrait les données des certificats et le logiciel utilise OpenSSL. Je suis confus quelle est la différence entre le subjectKeyIdentifier et le sha1Fingerprint. Les deux sont des valeurs de hachage. Mon intuition est que le subjectKeyIdentifier est le hachage de la clé publique du certificat et le sha1Fingerprint est le hachage des champs globaux du certificat. Cette référence dit à propos de subjectKeyIdentifier:

Il s'agit d'une valeur de hachage du certificat SSL.

Voici un exemple de ce que j'obtiens du SW:

"subjectKeyIdentifier": "A8:XX:6A:XX:04:7D:DD:BA:E6:D1:XX:XX:XX:45:65:EF:F3:XX:EC:XX", "sha1Fingerprint": "E6:XX:XX:5B:06:XX:50:9B:XX:82:XX:2D:XX:6E:XX:97:XX:95:XX:CB"

Remarque: XX dans les exemples est utilisé pour la rédaction.

La question est: quelle est la différence entre les deux hachages? À quoi sert chaque hachage?

12
user9371654

l'identifiant de la clé du sujet (SKID) est une extension x509 et fait donc réellement partie du certificat. L'empreinte digitale à la place ne fait pas partie du certificat mais est plutôt calculée à partir du certificat. Un certificat n'a pas du tout besoin d'avoir un SKID et peut avoir au plus un SKID. Mais étant donné que l'empreinte digitale est simplement calculée à partir du certificat, il peut y avoir plusieurs empreintes digitales, comme une utilisant SHA-1, une utilisant SHA-256, une utilisant MD5 ...

Le SKID est utilisé pour créer la chaîne de confiance non pas sur la base du sujet et de l'émetteur du certificat, mais sur le SKID du certificat et l'identificateur de clé d'autorité (AKID). Cela facilite le traitement des situations dans lesquelles la même chaîne d'objet est utilisée avec plusieurs certificats CA. Alors que le RFC 3280 décrit les moyens courants de générer SKID la seule vraie exigence est que le SKID du certificat CA doit correspondre à l'AKID dans tous les certificats émis par cette CA.

Dans l'exemple ci-dessous, on peut voir clairement que le SKID BB:AF:7E:02:3D:FA:... de l'émetteur correspond à l'AKID du certificat émis:

    ...
    Issuer: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Certification Authority
    ...
    Subject: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Domain Validation Secure Server CA
    ...
    X509v3 extensions:
        X509v3 Authority Key Identifier: 
            keyid:BB:AF:7E:02:3D:FA:A6:F1:3C:84:8E:AD:EE:38:98:EC:D9:32:32:D4

    ----

    ...
    Issuer: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Certification Authority
    ...
    Subject: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Certification Authority
    ...
    X509v3 extensions:
        X509v3 Subject Key Identifier: 
            BB:AF:7E:02:3D:FA:A6:F1:3C:84:8E:AD:EE:38:98:EC:D9:32:32:D4
17
Steffen Ullrich