关于加密:数字证书中的签名是如何产生的?

How does the signature in a digital certificate come from?

根据这里:

数字证书包含:

  • 序列号:用于唯一标识证书。

  • 主题:被识别的人或实体。

  • 签名算法:用于创建签名的算法。

  • 签名:用于验证它是否来自发行人。

  • 发布者:验证信息并发布证书。

  • 有效起始日期:证书首次生效的日期。

  • 有效期至:到期日。

  • 密钥用法:公钥的用途(例如,加密、签名,证书签名…)。

  • 公钥:公钥。

  • 指纹算法:用于散列公钥的算法证书。

  • 指纹(也称为指纹):散列本身,用作公钥证书的缩写形式。

我的问题是,签名是怎么来的?我认为它是用来确保数字证书是由受信任的颁发者颁发的。因此,颁发者使用其私钥在某个东西上签名以生成签名,那么证书的验证者必须拥有颁发者的相应公钥来解密签名并验证该东西是真实的。

如果我是正确的,这个东西也必须存储在证书中,以便验证者将解密签名与之进行比较。这是什么东西?它可以是公钥的指纹(哈希)吗?


这是证书本身的大部分内容。接收者可以使用证书中的算法计算Tbscertificate(要签名的证书部分)本身的散列值。然后,接收者可以验证它是否与签名者(证书的颁发者)计算的哈希相同。如果签名被验证并且签名者是可信的,则证书被验证。

还需要执行更多的测试,例如验证证书是否未被吊销,或者在证书完全受信任之前是否已过期。

数字证书包括:

  • 证书信息
  • 签名算法
  • 签名值
  • 有关证书的确切结构的更多信息,请参阅RFC5280。