我想为VOIP应用创建自己的安全连接。
现在我正在研究密钥交换,这似乎比加密/解密更加棘手。
在实践中,有没有比Diffie-Hellman更好的方法?
我理解Diffie-Hellman的概念,但我认为它需要正确的值才能安全,因为自然数字很容易被猜到。如何使用python获取这些值,它们是什么,是否真的可以安全地进行关键猜测?
请帮我一些背景信息/启发。
答案 0 :(得分:1)
Diffie-Hellman密钥交换,也称为指数密钥交换,是一种数字加密方法,它使用提升到特定功率的数字,根据从不直接传输的组件产生解密密钥,从而使得是数学上压倒性的代码破坏者。
Diffie-Hellman在其基本或“纯”形式中最严重的限制是缺乏认证。使用Diffie-Hellman的通信本身在中间攻击中容易受到攻击。理想情况下,Diffie-Hellman应与公认的身份验证方法(如数字签名)结合使用,以验证用户在公共通信媒体上的身份。
有关该主题的更多信息可在下面找到:
1 link 1
2 link 2
3 link 3
答案 1 :(得分:0)
DH可以用于此目的,只需确保使用2048位或更多位。
然而,对于VoIP,标准是带有SRTP / zrtp的TLS,所以如果你实现这些标准会更好。使用DH,您会失去兼容性,并会引入许多复杂情况。另请注意,DH仅用于密钥交换,因此您还需要一些用于加密的内容。使用TLS,您可以通过使用熟知的实现来一步完成所有这些操作,而不是从头开始编写自己的加密堆栈。
答案 2 :(得分:0)
Diffie-Hellman是一种密钥交换算法。所以任何人都可以访问您的公共参数除解密的私有参数外,您可以使用安全性。它非常重要,可以创建共享密钥安全。如果您想要更安全的系统,请尝试forward-secrecy