当使用公钥加密通过网络连接A
发送数据时,如何实现身份验证、机密性的目标?B
A
2 回答
在这种情况下,A 使用 B 的公钥,B 使用 A 的公钥。
机密性:如果 A 使用 B 的公钥加密某些东西,那么只有拥有 B 的私钥的人才能读取它。在实践中,A 可能会为 AES 等对称密码生成随机密钥,因为这样效率更高,但如果使用 B 的公钥加密,则只有 A 和 B 应该拥有它。
身份验证:这更复杂。通常,如果您可以秘密发送信息,则可以发送身份验证凭据。公钥加密可以提供帮助,前提是 A 的公钥由于某种原因已知是 A 的。也许它出于某种原因在 B 信任的地方注册了,也许 B 之前与 A 通信过,想知道它是否是同一个密钥。然后 A 可以发送一条用 A 的私钥加密的消息,该消息可以用 A 的公钥读取。通过散列消息并加密散列,这可以用作加密签名。
在这些情况下,我假设 A 和 B 拥有私钥和公钥,并且没有其他人知道他们的私钥(A 不知道 B 的私钥,反之亦然)。如果 E 知道 A 的私钥,那么 E 可以发送看似来自 A 的消息,E 可以读取所有的私钥给 A。此外,如果 B 不知道 A 的公钥是 A 开头的,那么 B 可以t 通过使用 B 和 E 的公钥与 B 通信,使用 A 和 E 的公钥与 A 通信,并中继通信来判断 E 是否在进行中间人攻击。这意味着 E 可以读取(违反机密性)和更改(违反身份验证)两者之间的通信。这通常由受信任的证书颁发机构颁发的证书处理,
阅读 SSL/TLS 如何工作的说明。例如,您可以阅读我们网站上的介绍性文章。