心脏出血漏洞

心脏出血漏洞(英语:Heartbleed bug),也简称为心血漏洞,是一个出现在加密程序库OpenSSL的程序错误,首次于2014年4月披露。该程序库广泛用于实现互联网的传输层安全(TLS)协议。只要使用的是存在缺陷的OpenSSL实例,无论是服务器还是客户端,都可能因此而受到攻击。此问题的原因是在实现TLS的心跳扩展时没有对输入进行适当验证(缺少边界检查),因此漏洞的名称来源于“心跳”(heartbeat)。该程序错误属于缓冲区过读,即可以读取的数据比应该允许读取的还多。

心脏出血在通用漏洞披露(CVE)系统中的编号为CVE-2014-0160。加拿大网络事故响应中心发布安全公告,提醒系统管理员注意漏洞。OpenSSL于2014年4月7日,即漏洞公开披露的同一天,发布了修复后的版本。

据信在漏洞披露时,约有17%(大约五十万)通过认证机构认证的互联网安全网络服务器容易受到攻击,导致服务器私钥和用户会话cookie及密码被盗。电子前哨基金会、Ars Technica和布鲁斯·施奈尔均认为心脏出血漏洞是“灾难性的”。福布斯网络安全专栏作家约瑟夫·斯坦伯格写道:“有些人认为,至少就其潜在影响而言,‘心脏出血’是自互联网允许商用以来所发现的最严重的漏洞。”

美国国土安全部和英国内阁发言人均表示:“人们应该按照网站建议更改他们所访问网站的密码……大多数网站已经修复了漏洞,人们听从网站建议决定是否采取行动以及采取什么行动是再合适不过的了​​。”漏洞披露当日,Tor项目在其博客发布公告,建议任何寻求“在互联网上高度匿名或隐私”的人应该“在接下来的几天里完全远离互联网,直到问题解决”。

截至2014年5月20日,在80万最热门的启用TLS的网站中,仍有1.5%易受心脏出血漏洞的攻击。

因为缺陷在于OpenSSL的实现,而不是互联网协议本身,所以除了OpenSSL之外的其他TLS实现方式,如GnuTLS和Mozilla的网络安全服务(NSS)都未受影响。此外,微软的产品或服务均不受影响。

https://zh.wikipedia.org/wiki/%E5%BF%83%E8%84%8F%E5%87%BA%E8%A1%80%E6%BC%8F%E6%B4%9E