导语:2013年,多亏前国家安全局员工爱德华·斯诺登(Edward Snowden)曝光了“棱镜”项目,让我们知道了美国国家安全局(NSA)能够破解互联网上使用的一些强加密算法。
2013年,多亏前国家安全局员工爱德华·斯诺登(Edward Snowden)曝光了“棱镜”项目,让我们知道了美国国家安全局(NSA)能够破解互联网上使用的一些强加密算法,拦截基于VPN、SSH和HTTPS的数万亿通信连接,阅读数全球数百万计的私人电子邮件。
2015年,亚历克斯·哈德曼(Alex Halderman)和纳蒂亚·赫宁格(Nadia Heninger)领导的研究小组在ACM计算机和通信安全学术会议上发表了名为《不完美的前向安全:迪菲-赫尔曼算法的失败》的论文。文中称,NSA已经破解了迪菲-赫尔曼密钥交换(DH)算法的通用实现,并得以窃听大量的HHTPS、SSH、VPN连接。
DH算法通常用于在非可信通道中交换秘钥,由于完全破解该算法所需要的时间可能长达数百甚至上千年,它被公众认为是防止NSA和其它国家机构进行窃听的一种技术手段。举例而言,破解1024位DH算法中使用的秘钥大概需要一年时间和数百万美金的花费。
排名前100的HTTPS中有92%的使用了DH算法
然而,研究者们在论文中称,DH算法中常用的素数只有少数几个。Alexa排名前100万的HTTPS域名中大约有92%一致使用了DH算法中的两个素数,这可能会促使NSA预先破解这两个大素数,并通过这些服务器窃听全球几乎所有的互联网流量。考虑到NSA高达110美金的年度预算,这可能会让NSA能够承受破解的成本,实现所谓“突破性的分析能力”。
而且,由于只有几个广泛使用的素数,解密它们得到的收益将非常巨大。只破解一个1024位素数就可以让NSA方便地访问全球三分之二的VPN和四分之一的SSH服务器。若破解第二个1024位素数,NSA的窃听范围就可以覆盖Alexa HTTPS网站排名前一百万的20%。换句话说,NSA只要对大规模计算项目投资一次,就可以窃听到数以万亿计的加密连接。
如今,来自宾夕法尼亚大学,法国国家信息与自动化研究所(INRIA),法国国家科学研究所(INRIA)以及洛林大学的研究人员已经从实际上证实了美国国家安全局破解加密连接的方法。
Diffie-Hellman密钥交换协议/算法(Diffie-Hellman KeyExchange/Agreement Algorithm)是一种确保共享KEY安全穿越不安全网络的方法,允许协议(如HTTPS,SSH,VPN, SMTPS 和IPsec)协商一个密钥并创建一个安全连接。
因为应用程序依赖diffie – hellman密钥交换算法生成临时密钥使用了大量素数,完全破解该算法所需要的时间可能长达数百甚至上千年,所以想要解密安全通信所需的花费也是无法想象的。例如,破解1024位DH算法中使用的秘钥大概需要一年时间和数百万美金的花费。
然而,现在安全研究人员只花费了2个月时间和3000个cpu就成功破解了一个1024位的密钥,这可能帮助他们破解数万亿的基于 HTTPS的通信协议及其他安全传输层协议渠道。
diffie – hellman算法本身不具有任何后门
你可能会想,这些安全研究人员是如何使用如今的计算硬件完成实际需要数百年才能完成的事情。本周二,研究人员发表一份研究论文中解释道,虽然diffie – hellman算法本身不包含任何后门,但是通过植入“陷阱门素数”就能被动解密加密通信,陷阱门是加密学中的后门,构建陷阱门可以让因式分解变得更简单。
此外,diffie – hellman算法选择运用的密钥大小(即小于或等于1024位)也是至关重要的。
研究人员创建了一个弱1024位diffie -hellman陷门函数,即从预定义组中随机选取大素数,事实表明,解决加固其安全性的离散对数问题要容易10000倍。
研究人员在研究报告中写道:
目前总体上对1024位离散对数的估计表明,这种运算的可能范围是那些能够承担数亿美元专用硬件的群体。
所以,高级黑客或是资源充足的机构知道素数是如何生成陷门函数的事实,想要解密1024位安全通信从而解读离散对数以实现破解数亿Diffie-Hellman加密通信的终极目标。NSA或类似机构如果能让主流加密规格采用一个或多个陷阱门素数,那么它们就能够轻松的监视数以百万计的加密通信。
研究人员还估计,对2048位密钥进行类似的计算,即使是有陷阱门素数可能也需要花费比破解1024位密钥多1600万倍的努力,可能在未来今年内仍将是不可行的。
其实,美国国家标准与技术研究院(NIST)早在2010年就推荐将密钥长度从1024位增加到2048位,但1024位密钥仍然被广泛使用,调查发现,Top 200,000 HTTPS网站中有22%使用1024位密钥去执行密钥交换。Java 8不支持长度超过1024位的密钥。
因此,想要立竿见影地解决此问题的方法就是将2048位密钥切换为4096位,但是,根据研究人员介绍,所有标准化素数应该与其种子一同发布。
用于diffie – hellman密钥交换算法的陷阱门素数(backdooring primes )与在双椭圆曲线确定性随机比特生成器中发现的名为“Dual_EC_DRBG”几乎相同,它也被认为是由美国国家安全局提出的。
2006年,美国NIST发布一项关于随机数生成方法的标准建议SP800-90A,其标题为《使用确定性随机比特生成器的随机数生成方法建议》,建议中包含了4种随机数生成方法,其中一种就是Dual_EC_DRBG。
2007年,来自微软的Dan Shumow和Niels Ferguson 在一个密码学国际会议上质疑Dual_EC_DRBG存在后门,他们表示在给定的点参数下随机数输出是可以预测的。2007年11月,著名安全专家Bruce Schneier在Wired.com网站发表文章怀疑后门是由美国情报机构NSA故意引入的。此后,Dual_EC_DRBG算法被微软公司应用于Windows Vista 、Windows7、 Windows8等操作系统。在此阶段,Dual_EC_DRBG算法的后门问题仅为专业人士关注,对其安全性的质疑并没有影响Dual_EC_DRBG算法的推广和应用。
2013年6月,美国国家安全局爆发“棱镜门”事件,9月The New York Times(《纽约时报》)发表文章称根据斯诺登提供的资料,NSA在Dual_EC_DRBG算法中植入了后门,路透社则发表文章称NSA秘密向知名安全技术公司RSA支付费用,以支持将Dual_EC_DRBG算法作为BSAFE产品的默认随机数源。Dual_EC_DRBG算法的安全性问题才广为关注。
所以,如果美国国家安全局在数亿加密密钥中使用这些无法察觉的“陷阱门”来解密加密通信就一点也不奇怪了。毕竟有一就有二,只是不知道此次事件又会激发怎样的舆论浪潮,NSA的霸行还能持续多久…