2012-01-17 75 views
1

我看了一篇关于数字签名的文章(link),并有如下问题。如何确保数字签名安全模型中发件人的公钥?

比方说,爱丽丝想要发送消息给鲍勃。她需要让鲍勃知道这条消息来自她。于是她用她的私钥将散列消息加密成证书。然后Bob在收到消息时可以用公钥解密消息。如果消息的哈希代码与从证书解密的哈希代码相匹配,Bob可以知道它来自Alice。这里我们假设Bob已经知道公钥。如果公钥传输已经受到攻击?鲍勃可能会使用错误的公钥来解密错误的消息,并且如果来自Alice,则会得到该消息。是否有任何协议或政策来避免对公钥的攻击?我们应该吗?

+0

可能会更好[Security.SE](http://security.stackexchange.com/)。 – Gumbo 2012-01-17 09:04:56

+0

或[Crypto.SE](http://crypto.stackexchange.com/)。 – 2012-01-17 14:18:11

回答

2

是的,公钥的真实性是应用密码学的关键组成部分。我可以发出一个公开密钥,上面写着“我是你银行的网站,相信我”,但你不应该真的相信它。已经开发了不同的方案来建立公钥的认证。一种方法是PGP和GnuPG中的web of trust model,其他方法是PKIKerberos。这些方法之间的主要区别之一是你放置信任的地方。我只提供简化说明,您必须阅读有关它们以了解确切的详细信息(您不会基于非常简短的摘要为您提供安全性,是吗?)。

信任网有一些人,你信任,你(理想情况下)亲自验证他们的公钥。你可以相信其他的公钥,如果它们已经被多个承载你初始信任的人签名的话。使用这些可信任的个人可以检查越来越多的密钥。

PKI(个人密钥基础设施),您信任的几个证书颁发机构(CAS)和接受他们的公钥。您相信他们在签署公钥前彻底检查了密钥持有者的身份。公钥+ CA签名(以及其他一些数据)的组合形成证书。 PKI用于SSL/TLS,它是安全网络的基础架构。您在网络界面上阅读邮件时,使用网上银行等时使用它。如果使用CA is compromised,则由CA签署的每个证书都将变得不安全。

的Kerberos是专为计算机网络和密钥服务器是信任的单点。它为客户端和服务器提供相互身份验证和唯一的对称加密密钥。密钥服务器通过仅在密钥服务器和客户端之间共享的秘密来检查客户端的身份。例如,在Windows,AFS,网格计算中使用Kereberos。

0

你的回答给了我很多关于这个问题的见解。此外,我想在此处提供维基百科链接http://en.wikipedia.org/wiki/X.509#Security。因为在文章中有一个解决方案解决我的问题“证书颁发机构的证书”

这是一个自签名证书的示例,因为发行人和主题相同。除了通过检查证书之外,没有办法验证这个证书;相反,这些顶级证书是通过Web浏览器手动存储的。 Thawte是Microsoft和Netscape都认可的根证书颁发机构之一。此证书随Web浏览器一起提供,默认情况下为可信任证书。

以防万一某些人有同样的问题。