証明書データを抽出するソフトウェアがあり、ソフトウェアはOpenSSLを利用しています。 subjectKeyIdentifier
とsha1Fingerprint
の違いは何ですか?どちらもハッシュ値です。私の直感は、subjectKeyIdentifier
が証明書の公開鍵のハッシュであり、sha1Fingerprint
が証明書の全体的なフィールドのハッシュであるということです。これは 参照 がsubjectKeyIdentifier
について述べています:
これは、SSL証明書のハッシュ値です。
これは私がソフトウェアから取得するものの例です:
"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"
注:例のXX
は編集に使用されます。
問題は、2つのハッシュの違いは何ですか?各ハッシュの目的は何ですか?
サブジェクトキー識別子(SKID) はx509拡張であり、実際には証明書の一部です。フィンガープリントは証明書の一部ではなく、証明書から計算されます。証明書はSKIDをまったく必要とせず、最大で1つのSKIDを持つことができます。しかし、フィンガープリントは証明書から計算されるだけなので、SHA-1を使用するフィンガープリント、SHA-256を使用するフィンガープリント、MD5を使用するフィンガープリントなど、複数のフィンガープリントが存在する可能性があります。
SKIDは、証明書のサブジェクトと発行者ではなく、証明書のSKIDと機関キー識別子(AKID)に基づいて信頼チェーンを作成するために使用されます。これにより、同じサブジェクト文字列が複数のCA証明書で使用される状況への対応が容易になります。 RFC 3280はSKIDを生成する一般的な方法を説明しています 唯一の実際の要件は、CA証明書のSKIDが、このCAによって発行されたすべての証明書のAKIDと一致する必要があることです。
以下の例では、発行者のSKID BB:AF:7E:02:3D:FA:...
が発行された証明書のAKIDと一致していることがはっきりとわかります。
...
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