什么是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. 使用fidder进行接口测试

    官方下载地址 下载后一路next安装即可. get请求 get请求直接把需要携带的参数使用?跟在后面如:http://127.0.0.1:8000/api/get_event_list/?id=1 p ...

  2. ERP合同管理流程查询(三十一)

    根据任务表编号,及相关表单编号获取当前流程表的编号: CREATE FUNCTION [dbo].[FN_GetDynamicId] ( @tasktableid INT, @taskid INT ) ...

  3. 【APUE | 10】函数signal

    函数signal 函数signal介绍 typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t ...

  4. GItlab作CI/CD时,想快点,有啥招?

    如果希望.m2文件有存缓,或是不要每次从dockerhub上找镜像(有的是本地镜像,远程没有的) 那么,gitlab-runner的config.toml初步优化文件如下: concurrent = ...

  5. PostgreSQL 列出所有表名和数据库名, 删除session被占用的数据库

    https://blog.csdn.net/Michael_Lbs/article/details/57509940

  6. 002 Spark的编译

    一:不编译 1.不编译的做法 在公司里可能需要编译,但是如果为了简单的学习就不必编译,直接在官方下载即可. 截图为: 二:编译\ 1.下载 http://archive.cloudera.com/cd ...

  7. C# DataGridView插入DB

    public static bool ContrastColumns(DataColumnCollection co1, DataGridViewColumnCollection co2) { boo ...

  8. Playmaker全面实践教程之简单的使用Playmaker示例

    Playmaker全面实践教程之简单的使用Playmaker示例 简单的使用Playmaker示例 通过本章前面部分的学习,相信读者已经对Playmaker有了一个整体的认识和印象了.在本章的最后,我 ...

  9. JSONObject基本内容(一)

    参考资料:http://swiftlet.net/archives/category/json,十分感谢~ 平时做项目,难免有遇到使用json对象的时候,这个东西不难,但是一不使用久了,就会忘记,所以 ...

  10. 把玩Javascript中的bind

    前言 今天闲着无聊随便逛了逛MDN,忽而看到一个方法Function.prototype.bind(),突然发现除了使用这个方法之外都没有仔细琢磨过这个方法.于是乎,找到了kill time的事情-写 ...