Diferența dintre Subject Key Identifier și sha1Fingerprint în certificatele X509 (Securitatea informațiilor, Tls, Certificate, Infrastructură Cu Cheie Publică, Openssl, X.509)

user9371654 a intrebat.
a intrebat.

Am un SW care extrage date din certificate și care utilizează OpenSSL. Sunt confuz care este diferența dintre subjectKeyIdentifier și sha1Fingerprint. Ambele sunt valori hash. Intuiția mea este că the subjectKeyIdentifier este hash-ul cheii publice a certificatului, iar valoarea sha1Fingerprint este hash-ul câmpurilor generale ale certificatului. Acest lucru referință spune despre subjectKeyIdentifier:

Aceasta este o valoare hash a certificatului SSL.

Acesta este un exemplu de ceea ce primesc de la 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"

Notă: XX în exemple este folosit pentru redactare.

Întrebarea este: Care este diferența dintre cele două hashes? La ce servește fiecare hash?

1 răspunsuri
Steffen Ullrich

identificatorul de cheie al subiectului (SKID) este o extensie x509 și, prin urmare, face de fapt parte din certificat. În schimb, amprenta digitală nu face parte din certificat, ci este calculată din certificat. Un certificat nu trebuie să aibă un SKID și poate avea cel mult un SKID. Dar, deoarece amprenta este doar o amprentă calculată din certificat, pot exista mai multe amprente, cum ar fi una care utilizează SHA-1, una care utilizează SHA-256, una care utilizează MD5 …

SKID este utilizat pentru a crea un lanț de încredere nu pe baza subiectului și a emitentului certificatului, ci pe baza SKID al certificatului și a identificatorului de cheie al autorității (AKID). Acest lucru facilitează gestionarea situațiilor în care același șir de subiecte este utilizat pentru mai multe certificate CA. În timp ce RFC 3280 descrie modalități comune de generare a SKID singura cerință reală este că SKID-ul certificatului CA trebuie să corespundă cu AKID-ul din toate certificatele emise de această CA.

În exemplul de mai jos se poate observa clar că SKID-ul BB:AF:7E:02:3D:FA:... al emitentului se potrivește cu AKID din certificatul emis:

    ...
    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

Comentarii

  • Ar putea fi util de menționat faptul că SKI este calculat din Subject și Public Key, în timp ce amprenta este generată din întregul certificat. În cazul în care un certificat este reînnoit, SKI-ul său va rămâne același, în timp ce amprenta sa digitală se va modifica. –  > Por garethTheRed.
  • @garethTheRed SKI rămâne același doar atunci când perechea de chei este reutilizată în timpul reînnoirii. Dacă se generează o nouă pereche de chei, aceasta va produce o nouă valoare SKI. –  > Por Crypt32.
  • @garethTheRed: SKI ar putea fi fi derivat din subiect și pubkey în anumite (și probabil multe) implementări, dar nu este obligatoriu să se facă în acest mod. De la RFC 3280 secțiunea 4.2.1.2.: „Pentru certificatele CA, identificatorii de cheie subiect TREBUIE să fie derivați din cheia publică”. sau printr-o metodă care generează valori unice.”. Dar, desigur, SKI nu poate fi derivat din întregul certificat, deoarece SKI însuși face parte din certificat. –  > Por Steffen Ullrich.
  • @Crypt32 – aceasta va fi o re-cheie, nu o reînnoire; conform definiției RFC 3647. Cu toate că reînnoirea este adesea utilizată pentru a le descrie pe amândouă în practică. –  > Por garethTheRed.
  • @user9371654: SKI este cumva legată de cheia publică și poate fi legată și de altele (subiectul are sens). Nu trebuie să fie un hash al acestora – poate fi, de asemenea, ceva aleatoriu, atâta timp cât același număr este utilizat pentru toate certificatele emise de această CA specifică (și, de asemenea, reînnoiri ale CA care utilizează același subiect și aceeași cheie), iar alte certificate CA utilizează numere diferite. Bineînțeles, utilizarea unui hash al cheii publice și al subiectului ar fi o implementare simplă care să asigure aceste proprietăți. Dar nu este obligatoriu să se implementeze astfel. –  > Por Steffen Ullrich.