我想了解Encrypted Key Exchange
机制。我对这个插图有点困惑:
并没有找到很多有用的参考。任何人都可以请解释EKE的机制和它的工作原理吗?双方交换什么?为什么这种攻击是安全的,比如中间人?这将非常有帮助。
谢谢。加密密钥交换了解
加密密钥交换了解
回答
在试图找到EKE或DH-EKE的实现时,我预计那里的引用数量非常有限。维基百科交叉链接到每个/其他,我遇到的解释不一定很容易理解。 EKE的原始专利于2011年过期,导致我对EAP-EKE的认识发布。
我在Bruce Schneier的“应用密码学”(第2版)中找到了最好的解释,包括算法的改进。因为你已经有了这个过程的形象,所以我会试着去找外行人 - 回答那里发生的事情。我只是在学习我自己,所以我可能会误认为你的形象,但它似乎是一个DH-EKE实现。我会坚持使用EKE-idea来解答这个问题,因为我认为我已经理解了;-)
基础是Alice和Bob共享一个共同的秘密。我可能会错过一个观点,它可能是多么“微弱”(在你的图像中它被认为是弱),但我们假设它是一个有效的对称密钥。
双方具有相同的对称密钥S,这是一个共享的秘密
爱丽丝生成公钥/私钥对独特的帕(私人)和P'a(公共)爱丽丝加密使用公开密钥对会话S并将其发送给Bob。
Bob(知道S)解密Alices消息并恢复Alice的公钥P'a。 Bob生成随机会话密钥K. Bob用Alice的公钥P'a加密K并将其发送给Alice。
爱丽丝解密该消息并且获得K. Alice产生随机串镭,其中K进行加密,并发送给Bob
鲍勃解密该消息以获得镭,生成另一个随机RB,其中K和加密二者将加密的消息发送给Alice。
Alice解密消息,验证她自己的Ra在消息中是否有效。她用K加密Rb并发送给Bob。
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使用初始密钥),所以采取谨慎的。我目前的使用情况将以机器生成并将安全密钥分发给双方,而不需要为此测试平台提供更复杂的实现。
- 1. 在PKCS#1中交换公钥/私钥OAEP加密/解密
- 2. SSL密钥交换加密技术
- 3. 对称加密密钥交换
- 4. RSA加密Java,密钥交换
- 5. SSH密钥交换
- 6. Python解释器密钥交换
- 7. 多个密钥的加密/解密
- 8. RSA密钥加密/解密问题
- 9. 使用解密密钥加密文件
- 10. 无法解密RSA加密密钥
- 11. 用密钥加密和解密数据
- 12. 为什么解密的密钥与加密密钥不一样?
- 13. 了解安全和密钥
- 14. 如何在ssl密钥交换期间在wireshark中查看加密密钥?
- 15. J2SSH - 添加密钥交换算法
- 16. 在Diffie-Hellman密钥交换
- 17. Kerberos ssh - 密钥交换慢
- 18. 交换对称密钥
- 19. Aptana SFTP密钥交换
- 20. 交换JSON密钥和值
- 21. Diffie Hellman密钥交换
- 22. 在TreeSet中交换密钥?
- 23. 解密JSON Web加密中的内容加密密钥
- 24. 加密密钥和加密字符串的解密
- 25. WSO2使用公钥私钥加密/解密密码(字符串)
- 26. diffie hellman密钥交换生成共享密钥的密钥导出函数
- 27. 加密客户端和服务器之间的密钥交换
- 28. 加密密钥交换的同行评审
- 29. 轻量级加密密钥交换协议
- 30. 对称加密密钥交换和存储?
似乎对于某些场景(人为生成的密码)来说,弱秘密是这个过程中的一个要求 - 并且算法的优美性尤其在那个区域内更加突出。这可能会影响我对开始使用共享密钥作为密钥的过程的描述。 – Kallex