it-swarm-eu.dev

Jaká je skutečná hodnota otisků prstů certifikátu?

V digitálním certifikátu x509 je sekce „otisk prstu“. Obsahuje md5, sha1 a sha256. Jak jsou tyto hodnoty získány a během připojení SSL jak jsou tyto hodnoty kontrolovány?

34
Ashwin

Otisk prstu, jak je zobrazen v části Otisky prstů při pohledu na certifikát v prohlížeči Firefox nebo otisk prstu v IE je hash certifikátu celý ve formě DER.

Pokud je váš certifikát ve formátu PEM, převeďte jej na DER pomocí OpenSSL:

openssl x509 -in cert.crt -outform DER -out cert.cer

Poté proveďte hash SHA-1 (např. Pomocí sha1sum1):

sha1sum cert.cer

To by mělo vést ke stejnému výsledku jako v prohlížeči. Tyto hodnoty nejsou součástí certifikátu, ale jsou vypočteny z certifikátu.

Jednou z aplikací těchto otisků prstů je ověření platnosti certifikátů EV. V tomto případě je otisk prstu SHA-1 kořenového certifikátu EV CA pevně zakódován v prohlížeči (pamatujte, že (a) je to otisk prstu kořenového certifikátu a (b) musí odpovídat přesně kotevní kotvy dodávané s verzí prohlížeče kompilovanou s těmito hodnotami).

Kromě toho se tyto otisky prstů většinou používají k identifikaci certifikátů (k jejich organizaci).

Jedná se o skutečné veřejné klíče, které se používají k ověření jiných certifikátů v řetězci. Soubor použitý pro podepsání certifikátu ve skutečnosti není v certifikátu (pouze výsledný podpis). Viz struktura certifikát :

   Certificate  ::=  SEQUENCE  {
        tbsCertificate       TBSCertificate,
        signatureAlgorithm   AlgorithmIdentifier,
        signatureValue       BIT STRING  }

   TBSCertificate  ::=  SEQUENCE  {
        version         [0]  EXPLICIT Version DEFAULT v1,
        serialNumber         CertificateSerialNumber,
        signature            AlgorithmIdentifier,
        issuer               Name,
        validity             Validity,
        subject              Name,
        ...

V tomto případě je hodnota podpisu vypočtena z tbsCertifikátu kódovaného DER (tj. Jeho obsahu). Když je algoritmus podpisu SHA1 s RSA (například), výpočet SHA-1 je pak spočítán a podepsán pomocí soukromého klíče RSA emitenta. Tento výtah SHA-1 nemá nic společného s otiskem prstu, který ukazuje openssl x509 -fingerprint nebo v prohlížeči, protože se jedná pouze o sekci tbsCertificate.

Existuje také několik nesouvisejících rozšíření, která mohou využívat digesce, veřejných klíčů tentokrát: identifikátor klíče předmětu a identifikátor klíče klíče . Jsou volitelné (a v rámci obsahu TBS v certifikátu).

39
Bruno