什么是OpenSSL协议?

  SSL(Secure SocketLayer,安全套接层)协议是使用最为普遍网站加密技术,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。简单的说,就是加密传输的数据,避免被截取监听等。

  而OpenSSL则是开源的SSL套件,作为一个多用途的、跨平台的通信加密工具,为全球成千上万的web服务器所使用。Web服务器正是通过它来将密钥发送给访客然后在双方的连接之间对信息进行加密。URL中使用https打头的连接都采用了SSL加密技术。在线购物、网银等活动均采用SSL技术来防止窃密及避免中间人攻击。

  但现在,OpenSSL自己出现了漏洞,而且是非常高危胁的漏洞,直接导致了本该是让为了更安全的设置变成了致命的危险。利用这个漏洞,黑客可以轻松获得用户的cookie,甚至明文的帐号和密码。

  Heartbleed 漏洞,2014年互联网上最危险的漏洞

  OpenSSL官方网站4月7日发布公告,安全公司Codenomicon的研究人员和Google安全小组的Neel Mehta相互独立地发现OpenSSL“heartbleed”存在安全漏洞(漏洞编号:CVE-2014-0160)。该漏洞发生在OpenSSL对TLS的心跳扩展(RFC6520)的实现代码中,由于遗漏了一处边界检查,使攻击者无需任何特权信息或身份验证,就能够从内存中读取请求存储位置之外的多达64 KB的数据,可能包含证书私钥、用户名与密码、聊天消息、电子邮件以及重要的商业文档和通信等数据。

  简单地说,因为Heartbleed Bug存在,能让互联网的任何人读取系统保护内存,允许攻击者窃听通讯,并通过模拟服务提供者和用户来直接从服务提供者盗取数据,让上千万服务器中的加密用户数据暴露。

  Heartbleed漏洞之所以得名,是因为用于安全传输层协议(TLS)及数据包传输层安全协议(DTLS)的Heartbeat扩展存在漏洞。Heartbeat扩展为TLS/DTLS提供了一种新的简便的连接保持方式,但由于OpenSSL 1.0.2-beta与OpenSSL 1.0.1在处理TLS heartbeat扩展时的边界错误,攻击者可以利用漏洞披露连接的客户端或服务器的存储器内容,导致攻击者不仅可以读取其中机密的加密数据,还能盗走用于加密的密钥。

  Heartbleed漏洞是2011年12月引入OpenSSL库中的,2012年3月14日1.0.1正式版发布后,含有漏洞版本的库被广泛使用,受影响版本为OpenSSL 1.0.1和1.0.2-beta,更早版本的OpenSSL(1.0.0和0.9.8等)不受影响。

  波及数十万服务器

  据谷歌和网络安全公司Codenomicon的研究人员透露,OpenSSL加密代码中一种名为Heartbleed的漏洞存在已有两年之久。三分之二的活跃网站均在使用这种存在缺陷的加密协议。因此,许多人的数据信息开始被暴露,每个人都被卷入到这次灾难的修正中去。放眼放去,我们经常访问的支付宝、淘宝、微信公众号、YY语音、陌陌、雅虎邮件、网银、门户等各种网站,基本上都出了问题。

  而在国外,受到波及的网站也数不胜数,就连大名鼎鼎的NASA(美国航空航天局)也已宣布,用户数据库遭泄露。

  外媒估计,估计受影响的服务器数量可能多达几十万。其中已被确认受影响的网站包括雅虎、Imgur、OKCupid、Eventbrite以及FBI网站等,不过Google未受影响。

  网络安全公司Qualys的一名研究员伊万•瑞斯提克(Ivan Ristic)创建了一种测试网站是否存在Heartbleed漏洞的工具。工具发布当天,他的网页访问量增加了7倍。他估计,使用SSL的服务器中,有30%存在漏洞。

  经瑞斯提克的工具测试显示,许多大型网站,如谷歌、亚马逊、eBay等网站较安全,未受到这种漏洞的影响。雅虎发言人则表示,“我们的团队已经成功地完成雅虎各个网站的修复。”

  由于大多数的隐私工具都是基于OpenSSL,所以这次Bug影响的范围会更加深远。漏洞的修复可能需要几天时间,服务器重置证书的过程也是缓慢和昂贵的,在这期间会给攻击者留出很多自由发挥的空间。

  解决之道

  将 OpenSSL 升级到最新版本:

  官网地址:https://www.openssl.org/

  下载地址:https://www.openssl.org/source/

  PFS是未来?

  塞翁失马,焉知非福。此次风波将会让整个互联网重新思考网络安全。Heartbleed风波过后,互联网公司必将改变它们的安全措施。据悉,很多大型互联网公司都已经转向了PFS(完全正向保密)技术——它能让密钥的保存时间变得很短。有评论认为,这可能是未来的一个发展方向。

Web 安全 之 OpenSSL的更多相关文章

  1. (转)OpenSSL CVE-2016-0800 和 CVE-2016-0703 漏洞修复细节拾趣

    原文:https://www.freebuf.com/vuls/97727.html 1. 引子 本来最近和360 Nirvan Team的DQ430愉快的参加某加密厂商的年度大会,结果openssl ...

  2. 使用openssl生成SSL证书完全参考手册

    一般来说,配置HTTPS/SSL的步骤为: 1.生成足够强度的私钥.需要考虑:算法,广泛采用的一般是RSA.键长度,RSA默认为512,一般应选择2048.密码,虽然私钥不一定要加密存储,但是加密存储 ...

  3. Tomcat,JBoss与JBoss Web

    最近接触到应用服务器JBoss,此外JBoss Web与Tomcat也同为web服务器,便查阅资料对三者进行比较,供大家参考. 一.Tomcat Tomcat 服务器是免费开源的Web 应用服务器.支 ...

  4. JBoss Web和Tomcat的区别

    在Web2.0的时代,基于Tomcat内核的JBoss在J2EE应用服务器领域已成为发展最为迅速的应用服务器.这一青出于蓝而胜于蓝的产品与Tomcat的区别又在哪里? 基于Tomcat内核,青胜于蓝. ...

  5. 转 : JBoss Web和 Tomcat的区别

    JBoss Web和 Tomcat的区别 在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端的基础架构提出了更高的稳定性和可扩展性的要求.近年来,作为开源中间件的全 球领导者,JBoss在 ...

  6. 【转】JBoss Web和 Tomcat的区别

    转载于:http://www.verydemo.com/demo_c202_i780.html JBoss Web和 Tomcat的区别 在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端 ...

  7. centos php 扩展安装

    1. 安装mysqli扩展 1.进入php源代码目录:# cd /home/apps/web/php/php-5.3.5/ 2.再进入要添加的mysqli扩展源码目录:# cd ext/mysqli/ ...

  8. how to use fiddler and wireshark to decrypt ssl

    原文地址: http://security14.blogspot.jp/2010/07/how-to-use-fiddler-and-wireshark-to.html Requirements2 C ...

  9. 【SEED Labs】Public-Key Infrastructure (PKI) Lab

    Lab Overview 公钥加密是当今安全通信的基础,但当通信的一方向另一方发送其公钥时,它会受到中间人的攻击.根本的问题是,没有简单的方法来验证公钥的所有权,即,给定公钥及其声明的所有者信息,如何 ...

随机推荐

  1. SPLAY,LCT学习笔记(一)

    写了两周数据结构,感觉要死掉了,赶紧总结一下,要不都没学明白. SPLAY专题: 例:NOI2005 维修数列 典型的SPLAY问题,而且综合了SPLAY常见的所有操作,特别适合新手入门学习(比如我这 ...

  2. ECMAscript5 新增数组内函数

    indexOf() 格式:数组.indexOf(item, start) 功能:从start这个下标开始,查找item在数组中的第一次出现的下标. 参数:item 我们要去查找的元素 start从哪个 ...

  3. Nginx部署多个网站

    为节省资源,通常一个服务器会运行多个网站,通常一个服务一个IP,多个域名共用一个IP,多个域名共用一个端口(通常是80端口). 这时候需要一台服务器部署多个网站,多个网站共用一个IP,共用一个80端口 ...

  4. DDD领域模型系统的工作流(十四)

    在自定义的Windows窗体中运行工作流:(把工作流的代码放入到文本框中) public partial class Form1 : Form { public Form1() { Initializ ...

  5. C# 关键字const与readonly的区别

    尽管你写了很多年的C#的代码,但是可能当别人问到你const与readonly的区别时候,还是会小小的愣一会吧~ 笔者也是在看欧立奇版的<.Net 程序员面试宝典>的时候,才发现自己长久以 ...

  6. C# event关键字

    直接使用委托的写法,如下: using System; namespace ConsoleAppTest { class Program { class Test { static void Main ...

  7. 020 $.each的使用

    在工作中见到这个知识点,不是特别懂,就查了查资料,顺便整理一下 1.定义与用法 each() 方法规定为每个匹配元素规定运行的函数. 提示:返回 false 可用于及早停止循环. 语法 $(selec ...

  8. 求链表的倒数第m个元素

    法一: 首先遍历一遍单链表,求出整个单链表的长度n,然后将倒数第m个,转换为正数第n-m+1个,接下去遍历一次就可以得到结果. 不过这种方法需要对链表进行两次遍历,第一次遍历用于求解单链表的长度,第二 ...

  9. centos 支持复制与粘贴

    centos 要支持与主机的交互,vmtools 必不可少. 为了方便虚拟机和主机之间复制粘贴文件,拖拽文件,需要安装VMwareTools.下面将我的安装步骤记录如下:第一步:打开虚拟机后,在VM的 ...

  10. 如何使用 Git LFS 提交大文件?

    参考资料: An open source Git extension for versioning large files Git LFS的使用 如何使用 Git LFS 提交大文件? Git LFS ...