Web 安全 之 OpenSSL
什么是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/source/
PFS是未来?
塞翁失马,焉知非福。此次风波将会让整个互联网重新思考网络安全。Heartbleed风波过后,互联网公司必将改变它们的安全措施。据悉,很多大型互联网公司都已经转向了PFS(完全正向保密)技术——它能让密钥的保存时间变得很短。有评论认为,这可能是未来的一个发展方向。
Web 安全 之 OpenSSL的更多相关文章
- (转)OpenSSL CVE-2016-0800 和 CVE-2016-0703 漏洞修复细节拾趣
原文:https://www.freebuf.com/vuls/97727.html 1. 引子 本来最近和360 Nirvan Team的DQ430愉快的参加某加密厂商的年度大会,结果openssl ...
- 使用openssl生成SSL证书完全参考手册
一般来说,配置HTTPS/SSL的步骤为: 1.生成足够强度的私钥.需要考虑:算法,广泛采用的一般是RSA.键长度,RSA默认为512,一般应选择2048.密码,虽然私钥不一定要加密存储,但是加密存储 ...
- Tomcat,JBoss与JBoss Web
最近接触到应用服务器JBoss,此外JBoss Web与Tomcat也同为web服务器,便查阅资料对三者进行比较,供大家参考. 一.Tomcat Tomcat 服务器是免费开源的Web 应用服务器.支 ...
- JBoss Web和Tomcat的区别
在Web2.0的时代,基于Tomcat内核的JBoss在J2EE应用服务器领域已成为发展最为迅速的应用服务器.这一青出于蓝而胜于蓝的产品与Tomcat的区别又在哪里? 基于Tomcat内核,青胜于蓝. ...
- 转 : JBoss Web和 Tomcat的区别
JBoss Web和 Tomcat的区别 在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端的基础架构提出了更高的稳定性和可扩展性的要求.近年来,作为开源中间件的全 球领导者,JBoss在 ...
- 【转】JBoss Web和 Tomcat的区别
转载于:http://www.verydemo.com/demo_c202_i780.html JBoss Web和 Tomcat的区别 在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端 ...
- centos php 扩展安装
1. 安装mysqli扩展 1.进入php源代码目录:# cd /home/apps/web/php/php-5.3.5/ 2.再进入要添加的mysqli扩展源码目录:# cd ext/mysqli/ ...
- 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 ...
- 【SEED Labs】Public-Key Infrastructure (PKI) Lab
Lab Overview 公钥加密是当今安全通信的基础,但当通信的一方向另一方发送其公钥时,它会受到中间人的攻击.根本的问题是,没有简单的方法来验证公钥的所有权,即,给定公钥及其声明的所有者信息,如何 ...
随机推荐
- hdu1828 扫描线计算周长
和扫描线计算面积差不多,新加了lbd,rbd线段树来标记区间的左右两侧是否被填充(左右边界是否存在),numbd线段树统计区间有多少边 /*数据弱不用离散化,但是要处理一下坐标*/ #include& ...
- pytest十二:cmd命令行参数
命令行参数是根据命令行选项将不同的值传递给测试函数,比如平常在 cmd 执行”pytest —html=report.html”,这里面的”—html=report.html“就是从命令行传入的参数对 ...
- IntelliJ IDEA像Eclipse一样打开多个项目(转)
转自: 海涛zht666 IntelliJ IDEA像Eclipse一样打开多个项目 我们做项目实际中经常会遇到这样的情况,创建一个common项目(Maven项目)作为公用项目,common中有 ...
- python 全栈开发,Day29(昨日作业讲解,模块搜索路径,编译python文件,包以及包的import和from,软件开发规范)
一.昨日作业讲解 先来回顾一下昨日的内容 1.os模块 和操作系统交互 工作目录 文件夹 文件 操作系统命令 路径相关的 2.模块 最本质的区别 import会创建一个专属于模块的名字, 所有导入模块 ...
- 判断上学和放假的demo
var today = new Date(); var xq = today.getDay(); var Now = today.getHours(); if (xq >= 1 &&am ...
- oracle中主键自增
oracle中主键自增 下面用一个例子来说明自增主键的创建: 1.建用户数据表 drop table dectuser; create table dectuser( userid integer p ...
- Type in Chakra
Type in Chakra Javascript是一个无类型的语言. 我们要讨论的类型是指Chakra内置的一些数据结构,这些结构维护了Object的信息. Type在一类Object中共享数据,使 ...
- ERP产品销售发货--发货管理(四十一)
发货详细信息的业务实体视图: CREATE VIEW [dbo].[View_BioSendAppInfo] AS SELECT SendId, BillNo, Subject, DepartMent ...
- JQuery中的工具类(五)
一:1.serialize()序列表表格内容为字符串.返回值jQuery示例序列表表格内容为字符串,用于 Ajax 请求. HTML 代码:<p id="results"&g ...
- 安卓在代码中设置TextView的drawableLeft、drawableRight、drawableTop、drawableBottom
Drawable rightDrawable = getResources().getDrawable(R.drawable.icon_new); //调用setCompoundDrawables时, ...