Public IT 安全中密钥和私钥的基础知识

Fundamental of Public key and Private key in IT Security

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

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

基本思路很简单:

  1. John 和 Peter 都 publicize 他们的 public 密钥并向全世界广播,“使用我的 public 密钥加密您发送给我的消息,所以只有我能读懂它们

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

这一切都假设没有黑幕交易。如果有活跃的攻击者,则需要采取一些额外的预防措施。

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

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