在数字签名中使用数字证书

信息安全 证书 电子签名
2021-08-25 18:33:31

请任何人向我解释如何将证书与数字签名一起使用?

我了解证书和签名之间的区别。很明显。

数字证书用于验证网站的可信度,而数字签名用于验证信息的可信度。

我不确定我是否理解维基百科上的这张图片。

Bob 生成私钥和公钥。他用他的私钥 - 签名加密消息的散列。Bob 将带有签名和公钥的消息发送给 Alice。Alice 生成消息的散列并将该散列与解密的签名进行比较。如果她想解密签名,她需要通过证书来验证公钥(如果这个公钥属于 Bob)。

为什么证书在 Bobs 签名旁边?我认为证书仅与公钥一起使用。

公钥是否总是用于解密,私钥用于数字签名中的加密?

在此处输入图像描述

2个回答

您声称:

数字签名用于验证信息的可信度。

这是正确的,至少对于“可信度”的某些解释是正确的。实际上,数字签名可用于验证该信息是由某个实体创建的,该实体有权访问该签名所引用的公钥的私钥,并且此后没有被修改过。(如果使用的哈希值不够耐碰撞,比如现在的 MD5,那么有权访问公钥的实体可能会创建两个可以在签名后交换的文档,而不会引起您的注意。)

您还声称:

数字证书用于验证网站的可信度

这需要一点概括:它不仅适用于“网站”,还适用于任何实体情况。再一次,您需要定义可信度的真正含义。数字证书使您能够验证向您证明拥有某些密钥的某个实体是否是他们声称的实体。

维基百科上的图片显示了一个明智地处理签名的过程。文档作者签署文档,并且需要为此使用密钥。接收者需要公钥来验证签名。如果接收者知道发送者的公钥,一切都很好,不需要证书。但如果接收方事先知道发送方的密钥,则需要确定密钥确实属于发送方。因此,接收者需要一种方法来验证创建签名的实体的身份。证书(由受信任的第三方颁发)是提供身份证明的好方法。将证书与消息捆绑在一起,可以在需要验证消息时及时将证书提供给接收者。


奖励:实际上,证书应该证明的“属于具有$HASH散列的公钥的私钥属于$ENTITY”的陈述信息。因此可以使用签名来验证其可信度。事实上,证书是经过签名的。

证书需要由某个实体进行签名,那么如何验证该证书是否真的由可信赖的实体颁发?好吧,有两种方法:要么,您知道实体及其公钥,因此您可以验证证书上的签名。或者您不知道公钥,然后您需要证明该证书上的签名确实由声称已制作的第三方制作。你怎么做呢?通过让第三方密钥再次被另一方认证。

结果是证书链:每个证书都包含一个签名。为了能够使用签名,附上证明证书颁发者的证书。您重复此过程,直到您可以将密钥追踪到您信任的一方。中心化 PKI(如 X.509)和点对点 PKI(如 PGP)之间的区别在于,在中心化系统中,所有参与者都同意信任一组“根证书颁发机构”,而在点对点系统中-systems,每个参与者都可以选择信任的根源。结果是在集中式系统中,每个证书上的一个签名就足够了,而在对等系统中,您可能希望不同的各方“签署您的密钥”(即

要以数字方式签署某些东西,我必须拥有一个私钥,并将匹配的公钥通过防止篡改或替换的安全通道传输给消息接收者。然后,我可以通过对消息进行散列处理、使用私钥加密散列并将加密的散列作为签名附加来轻松证明我创建了消息。收件人还可以对消息进行哈希处理,使用公钥解密签名,并验证两个哈希值是否匹配。这将证明该消息没有被篡改,并且是我发起的。难点在于公钥的分发。该证书是可选的,表明签署我的密钥的第三方同意我是我。