2

大多数签名证书的足迹都是 20 字节长(Windows 证书管理器中的“足迹”字段)。

这怎么可能是一个发行(认证)机构签署的值?具体来说,证书的签名应该是由私钥签名的证书字段的散列值,因此至少具有颁发者私钥的 RSA 模数长度(在 RSA 签名的情况下),因此......至少 512 位(64 字节)长。

我必须遗漏一些东西......如果这个足迹只是一个哈希,那么它就不能是一个签名证书。实际上证书签名在哪里?无法通过简单的哈希检查证书是否有效。

问候, Apple92

4

2 回答 2

7

你是说“指纹”吗?指纹只是一个哈希值,仅用于方便查找证书以进行比较。它不是证书本身的一部分,它是由证书管理器从证书生成的。证书签名在证书内部。

证书本身由称为TBSCertificate(TBS 是 To Be Signed 的缩写)的结构中的标识信息和公钥以及签名算法和签名本身组成。有关所有血腥细节,请参阅RFC5280

于 2011-03-14T23:46:17.587 回答
1

您可以通过 Windows 中的证书管理器看到的指纹不是证书的一部分。它由证书管理器动态生成,以便于识别它管理的许多证书。

证书由三部分组成。(详情在https://www.rfc-editor.org/rfc/rfc5280#section-4.1

  • tbsCertificate:这包含主题和颁发者的名称、与主题关联的公钥、有效期等。此 tbsCertificate(也称为要签名的证书)是颁发者(CA)审查和签署的内容。
  • signatureAlgorithm:颁发者 (CA) 用于签署上述 tbsCertificate 的加密算法的标识符。算法不同。最常见的算法之一是散列 tbsCertificate(DER 格式)以生成摘要,然后由颁发者 (CA) 的私钥对其进行编码。结果存储在下一个字段中signatureValue
  • signatureValue:此字段由发行者 (CA) 使用signatureAlgorithm上述生成的结果值填充。

由颁发者(CA)组成上述证书结构的行为称为signing

于 2020-08-08T19:45:58.450 回答