掌桥专利:专业的专利平台
掌桥专利
首页

一种实现旁路解密HTTPS数据流量的方法

文献发布时间:2024-04-18 19:58:53


一种实现旁路解密HTTPS数据流量的方法

技术领域

本发明涉及软件开发与数据安全技术领域,特别涉及一种实现旁路解密HTTPS数据流量的方法。

背景技术

随着互联网的发展,为了安全考虑,现在很多网站都使用HTTPS(HyperTextTransfer Protocol over Secure Socket Layer,超文本传输安全协议)协议对外提供服务。网络中充斥着很多基于HTTPS协议的数据流量,有些可能是正常的流量,但有些可能是恶意的。网络安全产品通过对网络中的数据流量进行检测,识别出恶意的流量,为用户的网站提供安全防护。

其中一些网络安全产品是通过旁路的方式接入,不参与网络中数据的转发,只是负责检测恶意流量,监控网络安全状态。为了让这些旁路接入的网络安全设备上对加密的HTTPS数据流量进行检测,就需要对流量进行解密。

通过旁路方式接入的网络安全设备,一般直接通过交换机镜像流量到网络安全设备的网卡,安全设备对收到的数据包进行处理。网络中包括不同协议的数据,其中HTTPS的数据流量由于是加密的,需要先进行解密才能做安全检测。

为了解决上述问题,保障网络安全,本发明提出了一种实现旁路解密HTTPS数据流量的方法。

发明内容

本发明为了弥补现有技术的缺陷,提供了一种简单高效的实现旁路解密HTTPS数据流量的方法。

本发明是通过如下技术方案实现的:

一种实现旁路解密HTTPS数据流量的方法,其特征在于:包括以下步骤:

步骤S1:基于OpenSSL开源库分别实现客户端和服务端,实现两端数据的HTTPS加密通信,同时将入侵检测系统IDS通过旁路方式接入网络中;

步骤S2:在TLS建立连接阶段,入侵检测系统IDS解析客户端和服务端的交互数据,解析出后续解密数据所需要的密钥;

步骤S3:TLS连接建立完成后,入侵检测系统IDS利用解析得到的密钥,实时检测网络流量,解析服务端数据包,解密HTTPS加密数据。

所述步骤S2中,入侵检测系统IDS解析密钥步骤如下:

步骤S2.1:入侵检测系统IDS识别接收到网络数据的是不是HTTPS数据流量,若是则进入解析HTTPS数据阶段;

步骤S2.2:入侵检测系统IDS解析证书,获取出证书中的公钥信息,解析私钥并保存,以备客户端与服务端进行密钥协商时使用;

步骤S2.3:将解密HTTPS数据流量所需的证书和私钥到导入入侵检测系统IDS。

所述步骤S2.3中,证书格式支持pem、cer和pkcs12。

所述步骤S2.2中,解析步骤如下:

步骤S2.2.1:入侵检测系统IDS解析客户端发往服务端的上行数据,获取随机数信息,并切换到下一个解析服务端数据的状态;

步骤S2.2.2:入侵检测系统IDS解析服务端返回客户端的下行数据,获取会话ID、协商的TLS版本号、密码套件与随机数;

在内存中查找会话ID,根据会话ID中保存的已成功建立的连接中包含的信息,计算解密后续加密数据的密钥;

如果在内存中未查找到会话ID,则进入下一个状态解析客户端数据;

步骤S2.2.3:入侵检测系统IDS通过解析客户端数据,使用导入的私钥解密数据,获取计算密钥所需的第三随机数Pre-Master,同时将上行数据和下行数据中解析获取的随机数共同参与计算,最终得到解密后续加密数据的主密钥。

所述步骤S2.2.3中,采用伪随机数函数PRF计算主密钥。

计算公式如下:

Master_secret=PRF(pre_master_secret,“主密码”,

ClientHello.random+ServerHello.random)

[0..47]

其中,Master_secret为主密钥,pre_master_secret为第三随机数Pre-Master,ClientHello.random为上行数据中获取的随机数,ServerHello.random为下行数据中获取的随机数。

为了防止三重握手攻击,TLS连接时,若协商数据包中带有扩展主密码ExtendedMaster Secret时,采用伪随机数函数PRF对第三随机数Pre-Master和建立TLS连接的过程中发送的握手消息的哈希值计算主密钥。

计算公式如下:

Master_secret=PRF(pre_master_secret,“ExtendedMaster Secret”,

session_hash)

[0..47]

其中,session_hash是在建立连接的过程中所有发送的握手消息的哈希值。

session_hash=Hash(handshake_messages)

handshake_messages是在建立连接过程中所有发送的握手消息。通过引入handshake_messages可以防止握手消息被篡改。

一种实现旁路解密HTTPS数据流量的设备,其特征在于:包括存储器和处理器;所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现如上所述的方法步骤。

一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法步骤。

本发明的有益效果是:该实现旁路解密HTTPS数据流量的方法,可以实现在旁路接入网络的安全设备上检测HTTPS数据流量,识别恶意的HTTPS请求,提升网络安全防护能力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

附图1为本发明实现旁路解密HTTPS数据流量的功能模块架构示意图。

附图2为本发明解析TLS建立连接阶段的数据流程示意图。

具体实施方式

为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

基于开源OpenSSL(开放式安全套接层协议)可以分别实现客户端和服务端,然后实现两端数据的HTTPS加密通信。但不支持旁路接入的方式,无法同时解密客户端与服务端双向通讯的加密数据。客户端与服务端通过HTTPS通信时,常规的HTTPS通信过程如下:

1).首先,客户端发送ClientHello数据包发起TLS(Transport Layer SecurityProtocol,安全传输层协议)连接,数据包包含随机数A、TLS版本号、密码套件列表等信息。

2).服务端接收到客户端的TLS连接请求回应ServerHello数据包,包含随机数B、TLS版本号、选择的密码套件等信息,服务端还会发送证书等信息。

3).客户端通过目前接收到的信息和自己有的信息,计算出通信所需密钥KeyA,通过发送ClientKeyExchange数据包,把计算密钥KeyA时所需的中间数据pre-master,使用RSA公钥加密发送给服务端。

4).服务端接收到加密的pre-master使用私钥进行解密,也可以计算出通信所需密钥keyB。

5).客户端使用KeyA加密要发送的数据,与服务端进行HTTPS加密通信,服务端使用keyB对接收到的加密数据进行解密。

对于旁路接入的入侵检测系统IDS产品因为不参与客户端和服务端的通信过程,只能获取到客户端和服务端通信的加密数据流量然后解密。

HTTPS协议在传输数据时使用的是对称加密方式,加密和解密数据使用同一密钥。

HTTPS数据传输步骤如下:

①建立SSL/TLS连接

客户端和服务端通过发送数据建立TLS连接,通过TLS连接协商出将要使用的TLS版本、密码套件以及后续数据传输使用的密钥;

②HTTPS加密数据传输

通过使用建立连接时协商出的密钥,对需要传输的数据进行加密,实现数据的安全传输。

该实现旁路解密HTTPS数据流量的方法,包括以下步骤:

步骤S1:基于OpenSSL开源库分别实现客户端和服务端,实现两端数据的HTTPS加密通信,同时将入侵检测系统IDS通过旁路方式接入网络中;

步骤S2:在TLS建立连接阶段,入侵检测系统IDS解析客户端和服务端的交互数据,解析出后续解密数据所需要的密钥;

步骤S3:TLS连接建立完成后,入侵检测系统IDS利用解析得到的密钥,实时检测网络流量,解析服务端数据包,解密HTTPS加密数据。

入侵检测系统IDS可以对通讯加密数据进行标识,识别恶意流量并输出检测报告,为后续的处置提供决策依据。

所述步骤S2中,入侵检测系统IDS解析密钥步骤如下:

步骤S2.1:入侵检测系统IDS识别接收到网络数据的是不是HTTPS数据流量,若是则进入解析HTTPS数据阶段;

步骤S2.2:入侵检测系统IDS解析证书,获取出证书中的公钥信息,解析私钥并保存,以备客户端与服务端进行密钥协商时使用;

步骤S2.3:将解密HTTPS数据流量所需的证书和私钥到导入入侵检测系统IDS。

所述步骤S2.3中,证书格式支持pem、cer和pkcs12。

所述步骤S2.2中,解析步骤如下:

步骤S2.2.1:入侵检测系统IDS解析客户端发往服务端的上行数据,获取随机数信息,并切换到下一个解析服务端数据的状态;

步骤S2.2.2:入侵检测系统IDS解析服务端返回客户端的下行数据,获取会话ID、协商的TLS版本号、密码套件与随机数;

在内存中查找会话ID,根据会话ID中保存的已成功建立的连接中包含的信息,计算解密后续加密数据的密钥;

如果在内存中未查找到会话ID,则进入下一个状态解析客户端数据;

步骤S2.2.3:入侵检测系统IDS通过解析客户端数据,使用导入的私钥解密数据,获取计算密钥所需的第三随机数Pre-Master,同时将上行数据和下行数据中解析获取的随机数共同参与计算,最终得到解密后续加密数据的主密钥。

所述步骤S2.2.3中,采用伪随机数函数PRF计算主密钥。

计算公式如下:

Master_secret=PRF(pre_master_secret,“主密码”,

ClientHello.random+ServerHello.random)

[0..47]

其中,Master_secret为主密钥,pre_master_secret为第三随机数Pre-Master,ClientHello.random为上行数据中获取的随机数,ServerHello.random为下行数据中获取的随机数。

为了防止三重握手攻击,TLS连接时,若协商数据包中带有扩展主密码ExtendedMaster Secret时,采用伪随机数函数PRF对第三随机数Pre-Master和建立TLS连接的过程中发送的握手消息的哈希值计算主密钥。

计算公式如下:

Master_secret=PRF(pre_master_secret,“Extended Master Secret”,

session_hash)

[0..47]

其中,session_hash是在建立连接的过程中所有发送的握手消息的哈希值。

session_hash=Hash(handshake_messages)

handshake_messages是在建立连接过程中所有发送的握手消息。通过引入handshake_messages可以防止握手消息被篡改。

该实现旁路解密HTTPS数据流量的设备,包括存储器和处理器;所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序时实现如上所述的方法步骤。

该可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法步骤。

以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

相关技术
  • 实现数据高速加密的加解密IP核和数据高速加解密方法
  • 一种数据加密方法、解密方法、加密系统及解密系统
  • 一种数据库的数据加密/解密方法、装置和设备
  • 一种基于HTTP旁路流量的机器行为分析方法
  • 一种旁路审计HTTPS数据包的方法及系统
技术分类

06120116508414