2013-04-03 91 views
3


我想了解Encrypted Key Exchange机制。我对这个插图有点困惑:
EKE
并没有找到很多有用的参考。任何人都可以请解释EKE的机制和它的工作原理吗?双方交换什么?为什么这种攻击是安全的,比如中间人?这将非常有帮助。
谢谢。加密密钥交换了解

回答

4

在试图找到EKE或DH-EKE的实现时,我预计那里的引用数量非常有限。维基百科交叉链接到每个/其他,我遇到的解释不一定很容易理解。 EKE的原始专利于2011年过期,导致我对EAP-EKE的认识发布。

我在Bruce Schneier的“应用密码学”(第2版)中找到了最好的解释,包括算法的改进。因为你已经有了这个过程的形象,所以我会试着去找外行人 - 回答那里发生的事情。我只是在学习我自己,所以我可能会误认为你的形象,但它似乎是一个DH-EKE实现。我会坚持使用EKE-idea来解答这个问题,因为我认为我已经理解了;-)

基础是Alice和Bob共享一个共同的秘密。我可能会错过一个观点,它可能是多么“微弱”(在你的图像中它被认为是弱),但我们假设它是一个有效的对称密钥。

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

  1. 爱丽丝生成公钥/私钥对独特的帕(私人)和P'a(公共)爱丽丝加密使用公开密钥对会话S并将其发送给Bob。

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

  3. 爱丽丝解密该消息并且获得K. Alice产生随机串镭,其中K进行加密,并发送给Bob

  4. 鲍勃解密该消息以获得镭,生成另一个随机RB,其中K和加密二者将加密的消息发送给Alice。

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

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

对于夏娃来说中间人,她只看到钥匙被其他钥匙加密。如果不破解公钥算法,猜测Alice和Bob之间受监控流量的密码是不可能的。然而,弱共享秘密确实可以让Eve试图伪装成图片中的Alice或Bob,所以(我的术语可能有缺陷)可能会对侦听服务器进行主动攻击。

在我描述的版本中有一些假设,最好由其他人解释(发布),Alice信任生成好的密钥对,Bob信任生成好的会话密钥。还有一些算法更适合(或者更糟)。有些东西在“应用密码术”中列出,但由于我的第二版似乎比AES稍微落后一些,所以我相信要挖掘更好的密码信息来选择算法。

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

UPDATE:在C# 非常简单的实现,请访问: https://github.com/kallex/sharp-eke-example

它shortcutting几位像现在(只是明文SHA256使用初始密钥),所以采取谨慎的。我目前的使用情况将以机器生成并将安全密钥分发给双方,而不需要为此测试平台提供更复杂的实现。

+0

似乎对于某些场景(人为生成的密码)来说,弱秘密是这个过程中的一个要求 - 并且算法的优美性尤其在那个区域内更加突出。这可能会影响我对开始使用共享密钥作为密钥的过程的描述。 – Kallex