研究人员警告,当今互联网上许多用来保护通信的1024位密钥,其基于的质数能够以无法检测的方式埋下后门。
网站、电子邮件、VPN、SSH,以及其他网络连接使用着许多公钥加密算法,其难于破解的特性来自于离散对数的数学复杂性。使用传统的方法不能有效地计算大质数群组的离散对数,因此想要破解强加密,在计算实现上不大行得通。
大多数密钥生成算法都基于可验证的随机产生的质数参数。然而,很多参数却是标准化的,Diffie-Hellman和DSA之类流行加密算法一直在使用这些参数,却从未公布过用来产生它们的种子。这就根本无法分辨这些质数有没有被故意植入了“后门”——有意选择那些可以减省破密所需计算量的质数。
来自宾夕法尼亚大学、法国国家信息与自动化研究所(INRIA)、法国国家科学研究院(CNRS)和洛林大学的研究人员发表了一篇论文,揭示了为什么该密码透明性的缺乏是有问题的,且可能意味着当前使用的很多密钥都是基于有后门的质数——除了其创造者,没人知道后门的存在。
为证明这一点,研究人员创建了一个带后门的1024位 Diffie-Hellman 质数,并演示了解决这个质数的离散对数问题,比解决真正随机质数的离散对数问题,要简单好几个数量级。
研究人员在论文中说道:“目前对普通1024位离散对数问题的估算显示,此类计算可能需要数亿美元的特殊硬件支持。相反,对一个特意做了陷阱的质数做离散对数计算,我们用学校的机群算了2个月就算出来了。”
问题在于:对不知道后门的人而言,要证明质数被设了陷阱几乎是不可能的。
加密算法实现者在采用可验证质数产生机制上的普遍失败,意味着弱质数的使用实际上是不可检测的,也不太可能引起关注。
这在概念上与双椭圆曲线(Dual_EC)随机数生成器里发现的后门很类似。该后门被怀疑是美国国家安全局故意引入的。不过,那个后门好找得多,而且,不像 Diffie-Hellman 或DSA,Dual_EC从未被广泛采纳。
由于其完美的向前保密属性能在密钥失窃时保住过往通信安全,瞬时Diffie-Hellman算法(DHE),正慢慢取代RSA算法作为TLS协议中的密钥交换算法。然而,带后门质数的使用,可能会让这一安全优势毁于一旦。
更糟的是,尽管美国国家标准与技术局(NIST)2010年起就在建议采用更高密钥位数,1024位密钥依然在网上广泛使用。据 SSL Pulse 项目所言,互联网140000个顶级HTTPS网站中有22%使用的是1024位的密钥。
基于离散对数破解困难性的加密系统,应将1024位质数的使用看做不安全因素。论文中针对带后门质数的离散对数计算,仅适用于1024位大小,针对此类后门的最有效防护,就是总是采用任何计算都不适用的密钥位数大小。
研究人员估测,对2048位密钥进行类似计算,即便采用带后门的质数,也会比对1024位密钥要难上1600万倍,很多年后都不可行。当前解决方案,就是切换成2048位密钥,但在未来,所有标准化质数都应当连同其种子一起公布。
前NSA雇员爱德华·斯诺登在2013年揭秘的文件显示,该间谍机构有能力解密大量VPN流量。去年,一组研究人员猜测,个中原因,可能就是一小撮固定或标准化质数组在实践中的广泛使用。
那个时候,研究人员在论文中写道:“对一个1024位质数组进行预计算,可能会导致18%的流行HTTPS网站被被动监听;第二组被预计算,则会让66%的 IPSec VPN 和26%的SSH服务器流量被解密。对NSA泄露文件的精密解读显示,该机构对VPN的攻击,符合其在这方面有了成功突破的表现。”