3


我试图了解Encrypted Key Exchange机制。我对这个插图有点困惑:
EKE
并没有找到很多有用的参考资料。谁能解释一下 EKE 的机制及其工作原理?双方在交换什么,为什么像中间人这样可以安全地攻击?这将非常有帮助。
谢谢你。

4

1 回答 1

4

在尝试找到 EKE 或 DH-EKE 的实现时,我预计那里的参考文献数量非常有限。维基百科相互之间的交叉链接以及我遇到的解释不一定那么容易理解。EKE的原始专利于2011年到期,导致我的理解EAP-EKE被发布。

我在 Bruce Schneier(第 2 版)的“应用密码学”中找到了最好的解释,包括对算法的改进。由于您已经了解了该过程,因此我将尝试外行回答那里发生的情况。我只是在学习自己,所以我可能会误认为你的形象,但它似乎是 DH-EKE 实现。我会在这个答案上坚持 EKE-idea,因为我认为我已经基本理解了 ;-)

基础是 Alice 和 Bob 共享一个共同的秘密。我可能会错过它的“弱”程度(在您的图像中它被标记为弱),但让我们假设它是一个有效的对称加密密钥。

双方拥有相同的对称密钥 S,这是一个共享秘密

  1. Alice 为会话 Pa(私有)和 P'a(公共)生成唯一的公钥/私钥对 Alice 使用 S 加密公钥并将其发送给 Bob。

  2. Bob(知道 S)解密 Alice 的消息并恢复 Alice 的公钥 P'a。Bob 生成随机会话密钥 K。Bob 用 Alice 的公钥 P'a 加密 K 并将其发送给 Alice。

  3. Alice 解密消息得到 K。 Alice 生成随机字符串 Ra,用 K 加密并发送给 bob

  4. Bob 解密该消息以获得 Ra,生成另一个随机 Rb,用 K 加密两者并将加密的消息发送给 Alice。

  5. Alice 解密消息,验证她自己的 Ra 在消息中是有效的。她只用 K 加密 Rb 并发送给 Bob。

  6. Bob 解密 Rb 并验证他自己的 Rb 是有效的。

为了让 Eve 实现中间人,她只看到了用其他密钥加密的密钥。如果不破解公钥算法,就不可能从 Alice 和 Bob 之间的监控流量中猜测密码。然而,弱共享秘密确实允许 Eve 尝试在图片中假装是 Alice 或 Bob,因此(我的术语可能在这里存在缺陷)可以对侦听服务器进行主动攻击。

我描述的版本中有一些假设,其他人最好解释(已发布),Alice 被信任生成好的密钥对,Bob 被信任生成好的会话密钥。还有一些算法更适合(或者有些更差)。“应用密码学”中列出了一些东西,但由于我的第二版似乎有点落后于 AES 之类的东西,我相信可以挖掘更多关于好密码的最新信息以供算法选择。

对于它的价值,我似乎需要自己用 C# 和 Java(Azure .NET 后端,Android 客户端)实现 EKE。我尝试以对其他人有用的方式对其进行打包。

更新: 非常简单的 C# 实现可在以下位置获得: https ://github.com/kallex/sharp-eke-example

它像现在一样缩短了几位(仅使用明文的 SHA256 以使用初始密钥),因此请谨慎使用。我目前的使用将机器生成并在单独的通道中向双方分发安全密钥,因此我不需要对此测试平台进行任何更复杂的实现。

于 2013-05-16T07:51:18.343 回答