针对https协议的攻击有哪些?


outputo-20210604-174304-218-balm.png


而在传统的web服务中,因其不对数据包进行加密,所以其网络数据包都是明文传输的,因此,只要在其网络上截获数据包,就可以对其进行攻击,从而获取其数据。

这正是HTTPS协议的目的所在。因为HTTPS协议的原理不是本文讨论的重点,所以您可以在这里查看大型网站的HTTPS实践(一)——HTTPS协议和原理。

简单地说,httpS将SSL/TLS协议添加到应用层HTTP协议与传输层TCP协议之间的会话层,以实现包的加密。在实际传输数据之前,会话层的加密协议会进行通信。交换的主要内容包括:双方确认加密协议版本、确认身份(有时浏览器客户端的身份无需确认)、确认加密密码(对称加密)以传输真实数据。

在确认了用于信息传输的加密密码后,将下列通信数据加密后传输,以防止被盗。

降低0x01HTTPS协议级别。

所以用https可以保证传输的安全性?

可说是理想,实际上并非如此。

理由很简单:SSL/TLS协议在设计和实现上有缺陷,因此攻者也能攻击一些老的SSL/TLS协议。在SSL/TLS加密协议的漏洞出现之后,最新版本的SSL/TLS协议修复了一些已知的漏洞,但是旧版本的加密协议不安全。

“HTTPS协议降级”是什么意思?

本文的最后部分提出SSL/TLS协议是通过节点来决定通信信息的,节点双方都要统一加密协议版本。

确认握手期间的加密协议版本,如下所示:

客户机(例如浏览器)发送第一个数据包ClientHello,其中存储了受客户机支持的加密协议。

服务器收到这个ClientHello数据包,在其中检查客户机支持的加密协议版本,然后与服务器本身支持的版本相匹配,从而确定加密协议版本应由双方使用。

服务端将Hello包发送给客户,告诉客户使用的加密协议版本。

以上过程中,如果客户机发送给服务器的ClientHello数据包表明只支持旧版本的易于受到攻击的加密协议(例如,仅支持SSLv3.0),则服务器有两种可能:

该服务器支持多种版本,包括易受攻击的旧版本和新版本(包括SSLv3.0协议),因此该服务器批准了一个易受攻击的旧版本协议,使客户机能够识别易受攻击的旧版本(SSLv3.0)。

由于服务器不支持有漏洞的旧版本,因此客户端的请求被拒绝并且失败。

攻击者只可以作为中间人监听加密数据。假如这些数据被加密后没有漏洞,那么攻击者就不能做任何事情。

但如果服务器提供了对带有漏洞的加密协议的旧版本的支持,而攻鱼可以作为中间人,控制攻鱼的浏览器发起一个带有漏洞的HTTPS请求,那么攻鱼虽然会监视加密数据,但由于加密协议有漏洞,所以可以对数据进行攻击,因此数据和明文传输没有什么不同。

它降低了HTTPS协议的性能。

0x02SSLv3.0版本的AES加密机制。

在将HTTPS通信协议降低到SSLv的时候,攻城者会截获SSLv的加密数据,而这些数据可以被PaddingOlle的攻城者攻击。

为何称Padding?首先介绍SSLv3.0的加密机制。

与第一节相同,在HTTPS握手过程中,双方都确认了一个“加密密码”,即在握手过程中由双方使用非对称加密协商所获得的对称加密密码。攻击者可以截取的数据使用该密码加密。

AES加密采用对称加密。AES的分组密码可以将要加密的明文分割成整齐的几部分(例如将明文分成若干部分,每个16字节)。若上一块比下一块小,则在加密之前填充整个块。这种填充对于PaddingOracle的攻击至关重要。

AES是分组密码系统。有许多加密方法可以进行分组。没有这方面的知识,就无法查看分组密码。

使用SSLv3.0的AES-CBC模式加密,我们将查看加密解密过程:

分享: