IT安全中公钥和私钥的基础

问题描述

John 和 Peter 各自生成一个公钥和私钥对。但是,他们还不知道彼此的密钥。现在他们正试图通过网络交换消息 M。

a) 秘密交换消息的程序是什么, b) 如果可能发生主动攻击,可以采取哪些措施来降低风险?

解决方法

基本思想很简单:

  1. John 和 Peter 都公开了他们的公钥并向全世界广播,“使用我的公钥加密你发送给我的消息,所以只有我可以阅读它们”

  2. John 使用 Peter 的公钥向 Peter 发送了一条加密消息,只有 Peter 可以解密。同样,Peter 使用 John 的公钥来加密响应,因此只有 John 可以读取它。

这一切都假设没有可疑的业务在进行。如果有活跃的攻击者,则需要采取一些额外的预防措施。

你怎么知道发布彼得公钥的人是否真的是彼得?他们可以简单地声称自己是 Peter 并发布自己的公钥。对此的解决方案是让受信任的证书颁发机构验证发布公钥的实体的身份,以便这些密钥的使用者可以咨询证书颁发机构,以确信公钥是由所声称的同一实体提供的。>

你怎么知道你从约翰那里收到的加密消息是否真的来自约翰,而不是其他人读取了你的公钥并想要冒充约翰?为此,您可以要求通信握手成功(以便 Peter 使用 John 的公钥回复 John,并且 John 必须成功响应以确认他的身份),或者您可以要求 John 对发送给 Peter 的消息进行数字签名。签名包括 John 用他自己的私钥加密部分消息,然后 Peter 使用 John 的公钥解密。使用约翰的公钥解密可以被彼得验证以某种方式工作(也许可以根据消息内容的散列或已知的固定值或其他东西来检查它)并且因为只有约翰知道约翰的公钥的私钥,彼得可以确信只有 John 可以发送消息。