数字证书中的签名是怎么来的?

smw*_*dia 2 encryption certificate pki digital-certificate public-key-encryption

根据这里:

数字证书包含:

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

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

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

  • 签名:验证它来自发行人的实际签名。

  • 颁发者:验证信息并颁发证书的实体。

  • Valid-From:证书第一次生效的日期。

  • Valid-To:到期日期。

  • Key-Usage:公钥的用途(例如加密、签名、证书签名...)。

  • 公钥:公钥。

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

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

我的问题是,签名是怎么来的?我认为它用于确保数字证书由受信任的颁发者颁发。所以发行者使用其私钥对某物进行签名以产生签名,那么证书的验证者必须具有发行者的相应公钥来解密签名并验证该东西是真实的。

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

Mvd*_*vdD 5

这个东西大部分是证书本身。接收方可以使用证书中的算法计算 TBSCertificate(要签名的证书的一部分)本身的哈希值。然后接收者可以验证它是否与签名者(证书的颁发者)计算的哈希值相同。如果签名得到验证并且签名者是可信的,则证书得到验证。

有更多的测试需要执行,例如验证证书没有被撤销或在它可以被完全信任之前超过它的到期日期。

数字证书包括:

  1. 证书信息
  2. 签名算法
  3. 签名值

有关证书的确切结构的更多信息,请参阅RFC 5280。

  • 我已经使答案更精确了,如果更改易于理解,请告诉我。如果您不同意,您可以回滚它们。请注意,散列是正式*签名算法的一部分*,它不是一个单独的步骤。 (2认同)