您声称:
数字签名用于验证信息的可信度。
这是正确的,至少对于“可信度”的某些解释是正确的。实际上,数字签名可用于验证该信息是由某个实体创建的,该实体有权访问该签名所引用的公钥的私钥,并且此后没有被修改过。(如果使用的哈希值不够耐碰撞,比如现在的 MD5,那么有权访问公钥的实体可能会创建两个可以在签名后交换的文档,而不会引起您的注意。)
您还声称:
数字证书用于验证网站的可信度
这需要一点概括:它不仅适用于“网站”,还适用于任何实体情况。再一次,您需要定义可信度的真正含义。数字证书使您能够验证向您证明拥有某些密钥的某个实体是否是他们声称的实体。
维基百科上的图片显示了一个明智地处理签名的过程。文档作者签署文档,并且需要为此使用密钥。接收者需要公钥来验证签名。如果接收者知道发送者的公钥,一切都很好,不需要证书。但如果接收方事先不知道发送方的密钥,则需要确定密钥确实属于发送方。因此,接收者需要一种方法来验证创建签名的实体的身份。证书(由受信任的第三方颁发)是提供身份证明的好方法。将证书与消息捆绑在一起,可以在需要验证消息时及时将证书提供给接收者。
奖励:实际上,证书应该证明的“属于具有$HASH散列的公钥的私钥属于$ENTITY”的陈述是信息。因此可以使用签名来验证其可信度。事实上,证书是经过签名的。
证书需要由某个实体进行签名,那么如何验证该证书是否真的由可信赖的实体颁发?好吧,有两种方法:要么,您知道实体及其公钥,因此您可以验证证书上的签名。或者您不知道公钥,然后您需要证明该证书上的签名确实由声称已制作的第三方制作。你怎么做呢?通过让第三方密钥再次被另一方认证。
结果是证书链:每个证书都包含一个签名。为了能够使用签名,附上证明证书颁发者的证书。您重复此过程,直到您可以将密钥追踪到您信任的一方。中心化 PKI(如 X.509)和点对点 PKI(如 PGP)之间的区别在于,在中心化系统中,所有参与者都同意信任一组“根证书颁发机构”,而在点对点系统中-systems,每个参与者都可以选择信任的根源。结果是在集中式系统中,每个证书上的一个签名就足够了,而在对等系统中,您可能希望不同的各方“签署您的密钥”(即