NSA后门可让攻击者轻松解密HTTPS、VPN加密流量

研究人员发明了一种新办法,可以在使用加密体系保护的网站、VPN和互联网服务器中放入不被检测的后门,这一壮举使得黑客可以轻松解密数以亿计的加密通信和密钥。这一技术最引人注目的地方就是它将一个后门程序(也可以说是“陷阱”)放在了Diffie-hellman 密钥交换所使用的1024位密钥中。Diffie-hellman的存在大大增加了窃听者的负担,因为它会定期更改加密密钥来保护正在进行的通信。按照以往经验来说,只要攻击者知道了“陷阱门”的存在,那么破解受Diffie-hellman保护的通信就只是时间问题了。知识完备的攻击者也可以基于广泛使用的数字签名算法创建自己的加密签名。

随着所有公共密钥的加密,Diffie-hellman的安全协议是建立在数据理论计算之上的,其中包含的数量巨大,攻击者想要解决它难于登天。各方都能够保守计算结果中所包含的秘密。然而研究人员设计的一个特殊质数包含了能够使得秘密参数难以被发现的无形属性。研究人员使用一个2,000 到 3,000 CPU 的学术计算群集可以在两个月左右的时间里攻破这些1024位质数中的一个。

对于密钥拥有者来说,带有“陷阱门”的密钥和其他任何1024位密钥没有任何区别。但是对于了解密钥漏洞的攻击者来说,巩固安全性能的离散对数问题根本就是小意思。这种效率使得“陷阱门”对于国家安全局承包商Edward Snowden 来说十分理想,他在2013年说过他的目的就是要解码大量的加密网络。

参与此项目的宾夕法尼亚大学研究人员Nadia Heninger告诉Ars,“Snowden文件已经引起了关于公钥加密标准中后门程序的一些严重问题。我们展示的那个“陷阱门”可以让攻击者们快速打破1024位秘密钥。”

国家标准与技术研究所(NIST)从2010年就开始建议使用2048位作为密钥的最小尺寸,但是1024位密钥仍旧大量出现在网络当中。上个月SSL Pulse开展的一项调查表明,HTTPS保护的前两千家网站当中有22%使用1024位密钥执行密钥交换。这种广泛使用的背后是大家普遍相信只有国家资助的窃听组织才会花费巨大代价来破解1024位密钥。其他原因还包括2048位密钥存在执行和兼容方面的困难。比如说,2014年发布的JAVA 8就不支持Diffie-hellman 或 DSA 密钥大于 1024 位。并且直到目前为止,DNSSEC规范为了确保互联网的域名系统安全,限制数字签名算法密钥最高为1024位。

在Diffie-Hellman中,解决关键的离散对数问题非常重要。原因就是大量的应用程序都要频繁标准化和使用一组质数。

如果美国国家安全局或其他组织成功将一个或多个“陷阱门”变成主流做法,该机构就能够成功窃听到数以百万计,甚至数不尽的终端用户的加密通信。到目前为止,研究者们还没有在广泛使用的应用程序中发现“陷阱门”的存在,但是这并不意味着它们不存在。

2008年,互联网工程任务组发表了一系列可用于高度敏感应用中的推荐质数,其中包括包括保护网站和电子邮件服务器的安全协议传承层、用于远程管理服务器的安全外壳协议、保护链接的互联网密钥交换,以及电子邮件的安全/多用途互联网邮件扩展标准。这些质数当中已经带有了研究者们创建的陷阱程序,外人几乎没有办法知道真相,解决这一数学问题需要处理器运转几个世纪。

同样的,Heninger说,世人无法知道Apache Web 服务器所使用的关键 1024 位质数是否也被安装了后门程序。她在邮件中写到:

“我们自己永远也没有办法检测出安装了陷阱程序的质数。但是我们知道“陷阱门”的工作原理,并且能够量化攻击者所获得的收益。所以人们开始提出一些尖锐问题,在某些不透明的执行和标准中,质数到底是如何生成的?为什么在没有证据的情况下要求我们信任RFC 5114 的质数?为什么在没有证据证明它们是随机生成的情况下,VPN就标准化并广泛执行这些质数?”

不同于RSA密钥中的质数,特定的Diffie-Hellman 质数非常常见。如果NSA或其他组织成功将一个“陷阱门”广泛应用,将会引发一场暴乱。从那时起,敌对势力将会在Diffie-Hellman的加密通信中窃取彼此机密。

还记得Dual_EC_DRBG?

假设这样的场景已经发生,这也不是NSA第一次故意削弱标准,以方便自己破解加密了。例如,2007年NIST支持NSA开发代码生成随机数生成器。几乎从一开始,所谓的 Dual_EC_DRBG就被怀疑含有一个精心设计的弱点,允许机构能够迅速破解以来关键随机性算法的加密密钥。六年后,也就是2013年,Snowden泄露文件证实了这一怀疑。

RSA安全公司,当时属公开上市交易的EMC所有,回应中警告用户停止使用Dual_EC_DRBG。当时,Dual_EC_DRBG是RSA的BSAFE中的默认随机数生成器,以及数据保护管理器程序。

今年年初,研究人员确定该生成器就是两个后门程序之一,允许攻击者可以解密VPN通信,在那之后,Juniper网络也删除了自己防火墙NetScreen中由NSA开发的数字生成器。

相比于1024位密钥,破解一个带有“陷阱门”程序的2048位密钥所需时间增加了16万倍。尽管对于宾夕法尼亚大学、法国国家研究所和洛林大学的计算机科学和控制专家来说这一时间还是很不保险,他们还是建议应该尽快淘汰1024位密钥。

他们在上周发表的一篇论文中写道,“对后门程序的离散对数计算只对1024位密钥可行,抵制后门程序攻击最有效的办法就是使用任何计算都不可行的密钥。NIST在2010年就推荐将1024位密钥从DSA、RSA和 Diffie-Hellman 中移除。但不幸的是,这种密钥至今仍在广泛使用。”

研究者说,除了使用2048位或更大的密钥,还必须使用可以验证的基本质数随机生成的方式来说生成密钥。其中一种做法中大多数字节都来自密码学家成为“不在我的袖子里”。另一种方法是标准化质数,包括用于确保随机性的种子质数。可惜的是,由于1024位密钥的广泛使用,这种做法渐渐消失了。虽然联邦信息处理标准强加给美国政府机构和其承包商一个生成质数的种子,但是这个选项不是必选。

研究人员已经发现的唯一广泛使用的质数就是使用Oakley 密钥确定协议生成的,该协议是为TLS1.3版本和JAVA开发工具包准备的有限领域 Diffie-hellman 短暂参数。

破解加密密钥最近常使用的方法被称为数域筛算法,根据密钥类型(离散对数或是因子分解)解决问题。到目前为止,已知的离散对数的最大质数问题是去年解决的,长度达到768位。相比之下,解决含有陷阱程序的1024位密钥问题只需要其十分之一的计算量。

从上世纪90年代早期开始,研究人员就已经知道某些复合整数会被NFS优先考虑。他们还知道带有某些属性的质数更便于离散对数的计算。这组特殊的质数会比普通质数更容易被NFS破解。在这25年左右的时间里,研究人员相信“陷阱门”的质数不是威胁,因为它们很容易解决,但现在新的研究通过特殊的数域筛法发现,长久以来的这种观点是错误的。

Heninger表示:

“能够使用更快形式算法的条件是该质数必须要有一种特定的属性。对于常见的一些质数,比如一个质数非常接近2的幂,我们使用这种质数来执行一些操作是很容易出问题的。但是也存在一些无法检测的质数(或者更准确地说,是需要大量的计算才能检测出)。这是更麻烦的事实,因为用户无法知道给定的质数是否有某种特定属性,毕竟它们看起来都一样。我们在本文中讨论了应该如何构建着中具有特殊属性的质数,但是不知道这个秘密的人是无法检测出该属性的。保证一个质数不存在这种“陷阱门”是可能的。一种方法就是通过“不在我袖子里”来生成质数。有一些标准采用这种方法,另一种方法就是为随机生成算法指定种子。”

随着1024位质数渐渐退出历史舞台,2048甚至4096位质数会逐渐变成主流。那些无法确认安全的1024位密钥应该被视为可疑密钥,并尽快清除。

对加密算法和NSA实现细节有兴趣的同学,可以参考这篇论文:https://eprint.iacr.org/2016/961.pdf

上一篇:揭秘“防出轨”软件 安装容易卸载难

下一篇:瑞星:未来中国信息安全趋势展望