0
点赞
收藏
分享

微信扫一扫

Drown跨协议攻的击TLS漏的洞分析

北京时间 2016年3月2日,OpenSSL官方发布了新的安全公告。公告中提及修复了一个高危漏的洞——DROWN跨协议攻的击TLS漏的洞。百度云安全威胁管理团队联合百度安全应急响应中心第一时间对事件触发应急响应和全网感知,深度分析了漏的洞的危害和影响范围。

Drown跨协议攻的击TLS漏的洞分析_oracle

经分析,攻的击者利用该漏的洞可突破目前广泛使用的依赖SSL和TLS安全加密体系,互联网中有大约1100万站点或者服务受到此漏的洞影响。ssl证书申请可以加V:weikeyun24咨询

一、Drown跨协议攻的击TLS漏的洞分析

1. 漏的洞危害

攻的击者通过中间人攻的击等手段截获和解密用户和服务器之间的加密通信,包括但不限于用户名和密的码、信用卡号、电子邮件、即时消息,以及敏感文件。在一些常见的场景,攻的击者还可以冒充一个安全的网站拦截或篡改用户看到的内容。

1. 攻的击原理

DROWN漏的洞主要利用SSLv2协议的脆弱性对TLS协议进行攻的击。

SSLv2协议是90年代推出的安全协议,由于存在大量的安全问题,被后来的TLS协议给替代。目前主流的浏览器等客户端已经禁用了SSLv2协议。OpenSSL官方在2010年的0.9.8n和1.0.0的版本中也移除了对SSLv2的支持。但是在OpenSSL的服务端的实现并没有严格遵守官方的标准,若配置不当依然可以强制使用Export 加密套件(包括密钥交换,加密算法,HMAC等的组合),附 SSLv2 加密套件(22,24为对外出口的弱加密方式,只有40位加密强度)

North American Edition (U.S. and Canada)

Short name Long name Description

27 SSL_DES_192_EDE3_CBC_WITH_MD5 Triple-DES (168 bit)

21 SSL_RC4_128_WITH_MD5 RC4 (128 bit)

23 SSL_RC2_CBC_128_CBC_WITH_MD5 RC2 (128 bit)

26 SSL_DES_64_CBC_WITH_MD5 DES (56 bit)

22 SSL_RC4_128_EXPORT40_WITH_MD5 RC4 (40 bit)

24 SSL_RC2_CBC_128_CBC_EXPORT40_WITH_MD5 RC2 (40 bit)

SSLv2协议存在的以下特性,使其非常容易受到Padding Oracle的攻的击。

1)支持SSLv2协议的服务器在收到一个ClientMasterKey消息时,会立即发送ServerVerify确认信息,不校验客户端是否明文。

2)使用Export 40位加密时,master_key中只有5个字节以RSA加密

master_key = mkclear||mksecret,攻的击者可通过服务端返回的server_write_key(session keys)解密ServerVerify中部分消息,如果解密成功,则是明文,不成功则是随机填充的队列。

3)重放相同的RSA密文请求时,根据判断解密的值是否相同知道上一次是否解密成功。

整理以上思路,总结出一个大致的攻的击流程:

1)攻的击者使用中间人攻的击手段获取1000左右 TLS的握手包

2)攻的击者根据特性讲ClientKeyExcchange生成大量的PKCS#1 v1.5加密的ClientMasterKey消息,向服务端不断发起SSLv2 Export_40的连接,最终生成一个有效的SSLv2 RSA密文。

3)利用padding oracle的攻的击方式解密密文。

4)攻的击者SSLv2 RSA明文 转换成TLS的明文,再进行其他恶意行为

3.检测方式

通过原理可以知道,只要服务端支持SSLv2 弱强度加密组件就容易受到影响。

可通过发起SSLv2 的连接包,从返回的banner里面判断是否支持

SSL_RC2_CBC_128_CBC_EXPORT40_WITH_MD5


SSL_RC4_128_EXPORT40_WITH_MD5


SSL_DES_64_CBC_WITH_MD5

等弱强度算法

Drown跨协议漏的洞处理建议

可见国内情况也不乐观,建议大家及时升级openssl,并禁用sslv2版本协议。

• 在CentOS、Redhat系统,可以通过如下命令升级:

# yum update openssl

• ubuntu等版本可以通过如下命令升级:

# apt-get upgrade openssl

• 通过如下配置禁用apache的SSLv2:

SSLProtocol all -SSLv2

• 通过如下配置限制nginx中只使用TLS协议:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

举报

相关推荐

0 条评论