大多数签名证书的足迹都是 20 字节长(Windows 证书管理器中的“足迹”字段)。
这怎么可能是一个发行(认证)机构签署的值?具体来说,证书的签名应该是由私钥签名的证书字段的散列值,因此至少具有颁发者私钥的 RSA 模数长度(在 RSA 签名的情况下),因此......至少 512 位(64 字节)长。
我必须遗漏一些东西......如果这个足迹只是一个哈希,那么它就不能是一个签名证书。实际上证书签名在哪里?无法通过简单的哈希检查证书是否有效。
问候, Apple92
大多数签名证书的足迹都是 20 字节长(Windows 证书管理器中的“足迹”字段)。
这怎么可能是一个发行(认证)机构签署的值?具体来说,证书的签名应该是由私钥签名的证书字段的散列值,因此至少具有颁发者私钥的 RSA 模数长度(在 RSA 签名的情况下),因此......至少 512 位(64 字节)长。
我必须遗漏一些东西......如果这个足迹只是一个哈希,那么它就不能是一个签名证书。实际上证书签名在哪里?无法通过简单的哈希检查证书是否有效。
问候, Apple92
你是说“指纹”吗?指纹只是一个哈希值,仅用于方便查找证书以进行比较。它不是证书本身的一部分,它是由证书管理器从证书生成的。证书签名在证书内部。
证书本身由称为TBSCertificate(TBS 是 To Be Signed 的缩写)的结构中的标识信息和公钥以及签名算法和签名本身组成。有关所有血腥细节,请参阅RFC5280。
您可以通过 Windows 中的证书管理器看到的指纹不是证书的一部分。它由证书管理器动态生成,以便于识别它管理的许多证书。
证书由三部分组成。(详情在https://www.rfc-editor.org/rfc/rfc5280#section-4.1)
signatureValue
。signatureAlgorithm
上述生成的结果值填充。由颁发者(CA)组成上述证书结构的行为称为signing
。