TLS / SSLv3不安全吗?

时间:2010-05-16 18:03:10

标签: ssl encryption

想到F2F网络应用程序的想法我刚刚开始阅读安全通信。 我很快就决定使用TLS / SSL作为任何通信的基础,因为它在协议级别使用公钥加密,因此非常适合我的需求。 然而,我很惊讶地读到(在维基百科上)最新版本的TLS,SSLv3使用混合的MD5和SHA-1“因为如果在这些算法之一中发现任何漏洞,另一个会阻止它破坏SSLv3”。然而,正如我所说,最近两个都被发现有缺陷!

因此我的问题是:
这不是说SSLv3基本上是有缺陷的,还是我读得不够近? 如果是这样,SSLv3的“安全”替代方案是否存在?

2 个答案:

答案 0 :(得分:5)

MD5和SHA-1的弱点不会影响在TLS中使用MD5和SHA-1。但是,如果您发现由于使用MD5或SHA-1而导致TLS不可接受(例如,因为某种规定要求逐步淘汰MD5和SHA-1,或者您可能发现它的公共关系不好),那么您可以调查{{3 },它使用类似的概念。

答案 1 :(得分:4)

TLSv1中使用的PRF和所有早期的SSL版本确实使用了MD5和SHA1的xor。可以对两种哈希算法进行冲突。 MD5碰撞更容易生成。来自维基百科2 ^ 24 MD5 vs 2 ^ 63 SHA1操作。在TLSv2中,PRF而不是硬编码现在可以通过与早期版本的SSL中的基础密码大致相同的方式进行协商。 TLSv2的初始必须实现是未混合的SHA2。

然而,仅仅因为哈希易受冲突影响并不一定会使其对所有应用程序都不安全。

例如,单独使用易受攻击的哈希来验证文件的签名是非常危险的,因为以维护原始签名的方式更改数据是非常可行的。 (通过发现碰撞)

在PRF(伪随机函数)的情况下,您要做的是基于秘密的知识提供可预测的输出,该秘密无法进行逆向工程以获得输入密钥。在这种情况下,成功搜索冲突并不像前一种情况那样有用。

发现冲突应该仍然与任何哈希算法的使用有关,因为历史证明它可以为未来发现更重要的漏洞敞开大门。

我个人对TLS最令人担忧的是前一种情况,在检查根证书和中间证书之间的信任链时,MD5 / SHA1通常用于签名验证。通过产生碰撞来锻造中间人已经成功地证明了。