来,聊聊“HTTPS降级攻击”那些事儿

Posted 最美软件人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来,聊聊“HTTPS降级攻击”那些事儿相关的知识,希望对你有一定的参考价值。

小编在上网购物时格外关注“HTTPS”标记,因为HTTP协议不能保护交易数据,要是被黑客拦截到,那后果就恐怖了。HTTPS协议在应用层和传输层协议之间增加了SSL/TLS协议,用以加密传输的数据,小编一直信心满满开心度日,直到听说“HTTPS降级攻击”,不禁想问一下,那东东到底是个啥?


降级攻击介绍

使用https协议,在数据传输之前会进行握手通信,服务器和客户端交换的信息内容主要包括:1、加密协议的版本;2、身份确认;3、传输数据的加密密码。在信息传输的加密密码确认之后,接下来的通信数据都会加密传输,从而达到防止信息泄露的目的。握手过程中确认加密协议版本过程如下:


1、由客户端(如浏览器)发送第一个数据包 ClientHello,这个数据包中保存着客户端支持的加密协议版本。


2、服务器收到这个ClientHello数据包,查看里面客户端支持的加密协议版本,然后匹配服务器自己支持的加密协议版本,从而确认双方通信所使用的加密协议版本。


3、服务器发送ServerHello数据包给客户端,告诉客户端要使用什么加密协议版本。


上述过程中,如果客户端发送给服务器的ClientHello数据包中说自己仅支持某个有漏洞的旧版本加密协议(比如仅支持SSLv3.0),服务器有两种可能的响应:


1、服务器支持很多版本,其中包括有漏洞的旧版本(如SSLv3.0协议),那么服务器会认可使用有漏洞的旧版本协议,从而同意客户端使用有漏洞的旧版本安全协议(如同意使用SSLv3.0)。


2、服务器不支持有漏洞的旧版本,拒绝客户端的这次请求,握手失败。


对于攻击者,作为中间人只能监听到加密过的数据,如果这些数据通过没有漏洞的加密协议版本加密,攻击者难以获取明文信息。但是,如果服务器提供有漏洞的旧版本加密协议的支持,而同时攻击者又能作为中间人控制受害者的浏览器发起漏洞版本的https请求,那么攻击者可以针对监听到的加密数据,利用加密协议漏洞,解密这些数据。对攻击者而言,加密数据和明文传输没有什么差别,这就是https协议降级攻击。


SSLv3协议介绍

SSLv3是一项传输层安全协议,主要用于网站、邮件服务器等相关应用服务的网络安全通信。由于SSLv3协议存在安全漏洞,攻击者可以利用进行中间人攻击,窃取敏感信息。SSLv3协议最早启用于1996年,目前已经被TLS1.X等高级协议代替,同时因为兼容性的原因,大多数TLS协议兼容SSLv3协议。


读到这里小编明白了,攻击者利用通信协议的兼容性,通过握手过程交互的信息,可以将https通信协议降低到SSLv3.0,从而利用其存在的安全漏洞实现信息窃取。对于SSL/TLS协议的使用者,即使使用了TLSv1.1、1.2协议也未必是安全的,我们应在自己服务器的加密协议支持列表上去掉对SSLv3版本协议的支持。


撰稿:信息安全与标准管理部

编辑:办公室



以上是关于来,聊聊“HTTPS降级攻击”那些事儿的主要内容,如果未能解决你的问题,请参考以下文章

聊聊Netty那些事儿之从内核角度看IO模型

聊聊Netty那些事儿之从内核角度看IO模型

聊聊springboot项目全局异常处理那些事儿

聊聊Netty那些事儿之Reactor在Netty中的实现(创建篇)

聊聊TPC那些事儿

聊聊加密那些事儿