两周前,围绕着针对HTTPS的FREAK攻击的消息不断地暴露出来。最近针对因特网的扫描显示,有10%的支持底层传输层安全协议的服务器仍易受攻击。更糟的是,很多这些服务器还包含一个的缺点,其极大地降低了攻击的成本,在最极端的情况下,(安全破解)每台服务器仅需几分钱。 两周前的农业研究所针对FREAK攻击报告所提到的,当终端用户用有漏洞的设备连接到一个HTTPS保护的,但用一个易受攻击的512位加密密钥配置时,使得FREAK攻击——即保理RSA-EXPORT密钥攻击变成了可能。以前,攻击者是要花费大概100小时和100美金在云计算上来破解这样一个密钥。通过对512位有漏洞的一对RSA密钥幸苦分析,去发现了产生了它的两个底层素数。攻击者不得不考虑每一个他们想要攻击的网站的关键因素。在大规模的数据中,庞大的工作量和费用使得攻击这样一个漏洞变得很难。与此同时,未来那些随着FREAK的披露而停止使用易受攻击的512位密钥会进一步阻碍攻击者。 现在利用起来似乎更简单和更便宜。在FREAK攻击暴露出一周后,对因特网的扫描显示,要攻击那些漏洞可能并不那么困难。在发现的那些支持TLS加密算法的2270万台服务器当中,有2200000台——相当于其9.7%——仍然提供出口级512位算法密钥。更糟糕的是,来自伦敦皇家霍洛威大学的研究小组发现了位于钥匙中大型集群重复模,相当于数学中的DNA。最极端的一个例子,调查中一个单个512位的模出现了28394次,这意味着很多精确使用了同样底层素数的服务器相乘时产生了共同的模。攻击者仅需花费100美元和7个小时就能够侵入多达28394个的网站和设备,或者解码其受TLS保护的流量。这些攻击的成本下降到每个服务器或设备仅需3分钱。另外两个模各自出现了100次以上,它们各自出现1000次,共1176次。总之,研究人员在2200000台配置了512位密钥的TLS服务器中发现了664336个复制模。 我们重新回顾一下 这已经不是研究人员第一次发现这些被认为无价值的RSA密钥的真正价值了,因为它们的底层素数中的一个或两个都至少为另一个密钥所使用。2012年初,一队数学家在把它们的模放入到一个数学公式之后发现,互联网上每1000个1024位密钥中就有4个有缺陷,而这个数学公式是由2000年前的古希腊数学家欧几里得提出来的。2013年,在台湾的安全数字ID系统中,也发现一个了类似的致命缺陷。 即使数目很小,但有缺陷的密钥数量仍令人不安,因为在自然条件下共享素数应该永远都不会出现。这是因为据一个密码破译者Justin Troutman看来,即使对一个易受攻击的512位密钥来说,可能的素数的数目也达2248 个——这个数目远比地球上的262颗谷粒还多,但少于已知宇宙中的2266个原子。可用的素数的个数的数量级比1024或2048位的密钥更多。如果所有的素数都以在正确生成密钥的过程中所需要的那样,以一种合适的方式混合起来和均匀地分布,那么没有哪两个素数会被选中2次。 根据定义,素数是指一个除了1和其本身之外,比其正因数要大的数。模数被定义为两个底层素数的乘积。总而言之,基于RSA加密的安全性归根结底就是:当简单地把两个素数相乘时,对任何人来说想要找出两个乘积的两个底层素数几乎是不可能的。但是皇家霍洛威大学研究者发现的对素数或者整个模的复用却破坏了这个希望。他们发现的664336个复制模意味着,那些使用这些模的网站对于低成本的攻击者来说是个福音,因为它们完全绕开了TLS加密所带来的优越。即使丢弃这些复制模,通过将其代入到先前提到欧几里得公式中,研究人员仍能够在剩余的密钥中分解出90个。通过计算所有模的最大公约数,这个公式能够显示出那些使用共同素数的模。为了加快进度,研究人员使用了一个由计算机专家Nadia Heninger主导的团队开发的软件和一个有密码破译专家Dan Bernstein开发的公式。这让 皇家霍洛威大学研究人员们在不到3分钟就在一台运行3.3GHz志强CPU和不到2GB内存的计算机上完成了90个因式分解。这项技术很好的展示了随着时间的推移,攻击会变得越来越简单,因为原来的FREAK攻击将需要相当大的开销。 “在一个8核心的系统上,计算仅花费了不到3分钟,节省了9000美元,相当于一个云计算所产生的费用,”这个研究人员这样写道。“我们认为这是对周五下午工作的一个良好回报。” |