嘛,其实绿色锁不安全只是在理论上
因为SSL/TLS的X.509证书普遍使用MD5和SHA-1作为签名算法。只要签名正确、证书链完整就认为证书有效。
但是这两个用于签名的算法都已经出现很低复杂度的碰撞攻击方式了。
这里先稍微讲一下密码学的一些东西。
一个输出固定为N位二进制数的散列函数(MD5和SHA-1都属于这一类)F(X),通过暴力破解来寻找碰撞所需要的复杂度定义为O(2[sup]N[/sup])
不过生日问题给的启示,只要求出现任意的碰撞的话,复杂度就可以下降到O(2[sup]N/2[/sup])
任何其他可以产生碰撞的方法,只要其复杂度低于O(2[sup]N/2[/sup]),则认为此散列函数已经被破解
目前针对MD5(128位)的最简单的碰撞攻击复杂度为O(2[sup]20.96[/sup]),复杂度之低只需要一台Pentium 4电脑运行几秒钟就能找到一对。
SHA-1(160位)则是O(2[sup]61[/sup])
不过这些不实用,因为找到的碰撞大多没意义。执行这种攻击需要用选定前缀碰撞。目前,针对MD5的选定前缀碰撞算法的复杂度是O(2[sup]39[/sup]),Pentium 4的电脑大概要算122天才能找出一对。
不过我们有显卡,可以加速10000%
所以嘛…………