APP下载

基于OpenSSL编码缺陷漏洞初步研究

2021-04-18张廷龙张浩东唐青

科技研究·理论版 2021年18期

张廷龙 张浩东 唐青

前言:目前,随着网络数据传输的规模不断扩大,出现的漏洞和风险也越来越繁复。其中的漏洞之一OpenSSL的心跳处理逻辑没有检测心跳包中的长度字段是否和后续的数据字段相符合,攻击者可以利用这一点,构造异常的数据包,来获取心跳数据所在的内存区域的数据。这些数据中可能包含了证书私钥,用户名,用户密码,用户地址等敏感信息。本篇文章就对OpenSSL协议在实现TLS和DTLS的心跳处理逻辑时存在编码缺陷称为Heartbleed漏洞的原理作初步的研究。

关键词:Heartbleed漏洞;SSL;TLS

1. Heartbleed漏洞原理

SSL(Secure Socket Layer)安全套接层及其继任者传输层安全TLS(Transport Layer Security)是为网络通信提供安全及数据完整性的一种安全协议。TLS和SSL在传输层对网络连接进行加密。所以通过SSL或TLS协议加密后的数据包再通过WireShark软件进行对数据包的抓取时,抓取到的数据也是经过加密处理的数据。

DTLS(Datagram Transport Layer Security)数据包传输层安全协议。TLS不能用来保证UDP上传输的数据的安全,因此Datagram TLS试图在现存的TLS协议架构上提出扩展,使之支持UDP,即成为TLS的一个支持数据报传输的版本。

心脏出血漏洞主要通过攻击者模拟向服务器端发送自己编写的Heartbeat心跳数据包,主要是HeartbeatMessage的长度与payload的length进行匹配,若payload_lenght长度大于HeartbeatMes sage的length,则会在服务器返回的response响应包中产生数据溢出,造成有用数据泄露。

2.Heartbleed漏洞的发现与验证

心脏出血漏洞必须在含有心跳扩展和漏洞没有被修复的版本中存在,目前存在OpenSSL心血漏洞的OpenSSL版本有OpenSSL1.X等多个版本。心脏出血漏洞主要存在于OpenSSL的心跳机制里,判断OpenSSL有没有开启心跳扩展,并开启心跳扩展机制。……

登录APP查看全文