新数据证实黑客能通过Heartbleed漏洞窃取私钥
网络服务公司Cloudflare周六报道称,与之前的怀疑相反,黑客可以通过被称为“Heartbleed”的重大漏洞从有漏洞的网站中获取私钥。
就在昨天,Cloudflare发布了初步的调查结果称,通过Heartbleed获得重要的密钥以解密套接层即使可能也十分困难。为了肯定这一结论,Cloudflare发起了“Heartbleed挑战赛”以查看其他人利用漏洞可能导致的后果。公司搭建了一个nginx服务器,服务器上运行着包含Heartbleed漏洞版本的OpenSSL,公司邀请网民窃取它的私钥。
仅仅九个小时之后,芬兰国家网络安全中心(NCSC-FI)的软件工程师Fedor Indutny和Ilkka Mattila获得了服务器的私钥,他们仅仅使用了Heartbleed漏洞。就在写这篇文章之时,Cloudflare确认了四位赢家中的另两位——剑桥大学安全小组的博士生Rubin Xu还有安全研究员Ben Murphy。
这一结果显示出仅仅把服务器更新至不包含Heartbleed漏洞的版本的OpenSSL是不够的。因为Heartbleed的攻击默认不显示在服务器日志中,有漏洞的网站无法排除私钥被黑客从内存中获取的可能性。任何拥有私钥的人都可以用它搭建一个假冒的网站,这样的网站事实上是无法被大多数最终用户识别出来的。任何访问这假冒网站的网民会看到与真正网站相同的https前缀和挂锁图标。
获取私人SSL证书的可能意味着,出于谨慎起见,使用过有漏洞版本OpenSSL的网站管理员应该尽快撤销旧证书并以新证书替换。基于受影响网站的数量之大,这样的启示可能会引发问题。
“坏消息是这个发现将我们的建议中的‘更换证书’变成了重要项”,Cloudflare公司CEO Matthew Prince在与Ars Technica的邮件中写道,“我们已经加速了我们更换证书的进程。”
Cloudflare原本推测,起码在其使用的基于Linux的平台上,服务器证书和私钥通常是储存在刚开机后的内存中的,而由于服务器系统并非经常启动,很少有可能在通过Heartbleed访问的内存(通常是64KB)中会包含服务器私钥。
大规模私钥的窃取是最糟糕的情况,因为这使得网站向制作假冒网站者敞开并使得监听者能够破解表面上安全的通信。
最终,Indutny向Cloudflare的服务器发送了超过两百五十万的请求,Mattila在相同时间里发送了100,000个,他们都能够窃取服务器私钥。Cloudflare称他们在挑战赛开始后大约6小时重新启动了服务器,公司认为那次重启“可能导致密钥出现在未被初始化的内存中。”
这样敏感的信息可以被获得,这非常麻烦,并且现在的解决方案不像让用户改改密码这么简单。“我们对于这项发现的建议是每个人都要以新私钥替换旧私钥并且废除旧私钥,”Cloudflare在今天的更新中写道。“为了客户的利益,Cloudflare已经为把SSL密钥交由我们管理的客户们加速执行这些工作。”
Heartbleed挑战赛的首位赢家Fedor Indutny,在其推特中写道,“我大约估计了下,TLS/SSL证书大概有650万。”显然,不是每个拥有这些证书的网站都使用了OpenSSL,但Heartbleed已经变成了大规模清理工程,这让人非常震惊。
废除和替换证书的进程非常不便且缓慢即使没有一半的互联网在试图同时进行这个进程。“如果所有网站都废除了证书,这会向互联网施加巨大的负担并带来性能代价,”Cloudflare在周五的博文中写道。“Cloudflare这样规模的废除和替换进程可能都会毁坏CA(证书授证)架构。”
公司称对于那些网站运行于Cloudflare架构的客户们,公司已经逐步开始了废除和替换SSL证书的进程,预计会在下周的某个时候完成。