CN116015878A - 一种流量检测方法、装置、存储介质及设备 - Google Patents

一种流量检测方法、装置、存储介质及设备 Download PDF

Info

Publication number
CN116015878A
CN116015878A CN202211687197.1A CN202211687197A CN116015878A CN 116015878 A CN116015878 A CN 116015878A CN 202211687197 A CN202211687197 A CN 202211687197A CN 116015878 A CN116015878 A CN 116015878A
Authority
CN
China
Prior art keywords
server
key
client
data
ssl
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211687197.1A
Other languages
English (en)
Inventor
刘禄丹
张云禄
刘勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202211687197.1A priority Critical patent/CN116015878A/zh
Publication of CN116015878A publication Critical patent/CN116015878A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供一种流量检测方法、装置、存储介质及设备,该方法中,采用串接的部署方式,解密设备获取客户端与服务端之间的SSL协商数据包,利用预生成的密钥对伪造和替换服务端证书,以此参与SSL密钥协商和认证过程,并提取到密钥协商参数,进而根据该密钥协商参数生成会话密钥,利用该会话密钥对客户端和服务端之间的SSL会话进行解密,再将得到的明文数据传递至外部安全设备,供外部安全设备进行审计和检测。这样,无需客户端配置代理,部署方便,并且突破代理方式的端口限制造成的并发瓶颈问题。

Description

一种流量检测方法、装置、存储介质及设备
技术领域
本申请涉及通信技术领域,具体而言,涉及一种流量检测方法、装置、存储介质及设备。
背景技术
随着网络的高速发展,用户对网络的需求越来越高,通信安全也越来越重要。SSL(Secure Socket Layer,安全套接层)协议的广泛应用,在提升网络通信安全性的同时,也对网络审计和检测系统带来了挑战,这是因为通信数据均为加密数据,网络审计和检测系统在进行数据分析时,需要将加密数据进行解密。
相关技术中一般是通过网络代理的方式劫持客户端与服务端的SSL会话,代理服务通过解密客户端与服务端之间的传输数据达到解密SSL会话的效果。然而,这方式需要被代理的客户端配置代理服务,对实际部署和实施带来很大难度,客户端一旦取消代理配置就无法继续解密SSL会话了。
发明内容
本申请实施例的目的在于提供一种流量检测方法、装置、存储介质及设备,旨在解决相关技术中针对SSL会话的解密方式存在的需要客户端配置代理服务,部署困难的问题。
第一方面,本申请实施例提供的一种流量检测方法,所述方法应用于解密设备,所述解密设备串接在客户端和服务端之间,所述方法包括:
获取所述客户端和所述服务端之间的SSL协商数据包;
通过利用预生成的密钥对伪造和替换服务端证书,参与SSL密钥协商和认证过程,以及从所述SSL协商数据包中提取密钥协商参数;所述密钥协商参数包括客户端随机数、服务端随机数和预主密钥;
根据所述密钥协商参数生成会话密钥,利用所述会话密钥对所述客户端和所述服务端之间的SSL加密数据进行解密,并将解密得到的数据传递至外部安全设备,以使所述外部安全设备对所述数据进行检测。
在上述实现过程中,采用串接的部署方式,解密设备获取客户端与服务端之间的SSL协商数据包,利用预生成的密钥对伪造和替换服务端证书,以此参与SSL密钥协商和认证过程,并提取到密钥协商参数,进而根据该密钥协商参数生成会话密钥,利用该会话密钥对客户端和服务端之间的SSL会话进行解密,再将得到的明文数据传递至外部安全设备,供外部安全设备进行审计和检测。这样,无需客户端配置代理,部署方便,并且突破代理方式的端口限制造成的并发瓶颈问题。
进一步地,在一些实施例中,所述获取所述客户端和所述服务端之间的SSL协商数据包之前,包括:
采集两个网口上的数据包;所述两个网口中的一个与所述客户端相连,另一个与所述服务端相连;
通过SSL数据包特征检测采集到的数据包是否为SSL数据包,若检测结果为否,将所述数据包转发至对端网口。
在上述实现过程中,解密设备的一对网络端口分别连接客户端和服务端,解密设备采集网口数据,通过SSL数据包特征,检测采集到的数据包是否为SSL数据包,如果是则执行本实施例方案进行处理,如果不是则直接向对端网口进行转发,如此,实现对所有SSL会话的截获。
进一步地,在一些实施例中,所述利用预生成的密钥对伪造和替换服务端证书,包括:
在接收到所述服务端的Certificate消息时,从所述Certificate消息中提取服务端证书和服务器公钥;
通过所述服务端证书的证书信息使用预生成的密钥对生成自签名证书,将所述Certificate消息中的服务端证书替换成所述自签名证书后发送给所述客户端。
在上述实现过程中,提供一种实现服务端证书的伪造和替换的具体方式。
进一步地,在一些实施例中,所述参与SSL密钥协商和认证过程,以及从所述SSL协商数据包中提取密钥协商参数,包括:
在接收到所述客户端的ClientHello消息时,从所述ClientHello消息中提取客户端随机数,并将所述ClientHello消息转发给所述服务端;
在接收到所述服务端的ServerHello消息时,从所述ServerHello消息中提取服务端随机数和密钥套件,并将所述ServerHello消息转发给所述客户端;
在接收到所述客户端的ClientKeyExchange消息时,从所述ClientKeyExchange消息中提取预主密钥密文,通过预生成的密钥对中的私钥对所述预主密钥密文进行解密,得到明文的预主密钥,并使用所述服务器公钥将明文的预主密钥加密成目标密文,再将所述ClientKeyExchange消息中的预主密钥密文替换成所述目标密文后发送给所述服务端。
在上述实现过程中,提供在实现包转发的同时提取密钥协商参数的具体方式。
进一步地,在一些实施例中,所述会话密钥包括所述解密设备与所述服务端之间的第一对称密钥,和所述解密设备与所述客户端之间的第二对称密钥;所述利用所述会话密钥对所述客户端和所述服务端之间的SSL加密数据进行解密,包括:
在接收到所述客户端的ApplicationData消息时,使用所述第一对称密钥对所述客户端的ApplicationData消息进行解密,获得第一明文数据,将所述第一明文数据使用所述第二对称密钥加密后发送给所述服务端;
在接收到所述服务端的ApplicationData消息时,使用所述第二对称密钥对所述服务端的ApplicationData消息进行解密,获得第二明文数据,将所述第二明文数据使用所述第一对称密钥加密后发送给所述客户端。
在上述实现过程中,针对客户端到解密设备的流量,使用第一对称密钥进行解密,将明文数据发送给外部安全设备,再将明文数据通过第二对称密钥进行加密,并将密文发送给服务端,针对服务端到解密设备的流量则使用第二对称密钥进行解密,再使用第一对称密钥加密进行转发,实现对SSL会话的解密。
进一步地,在一些实施例中,所述解密设备的明文数据流转接口与所述外部安全设备相连,所述将解密得到的数据传递至外部安全设备,包括:
使用所述SSL加密数据的以太网特征,将解密得到的数据封装成以太网数据包,并将所述以太网数据包发送到所述明文数据流转接口。
在上述实现过程中,使用原始数据包的以太网特征将解密得到的数据再封成以太网数据包,并将数据包发送到明文数据流转接口,以传递给外部安全设备,从而实现与外部安全设备的协同工作,提高网络安全防护能力。
进一步地,在一些实施例中,所述解密设备基于数据平面开发套件和全用户态网络开发套件来处理所述SSL协商数据包和所述SSL加密数据。
在上述实现过程中,基于DPDK和高性能的用户态协议栈,有效提升流量采集、转发和解析的效率。
第二方面,本申请实施例提供的一种流量检测装置,所述装置应用于解密设备,所述解密设备串接在客户端和服务端之间,所述装置包括:
获取模块,用于获取所述客户端和所述服务端之间的SSL协商数据包;
提取模块,用于通过利用预生成的密钥对伪造和替换服务端证书,参与SSL密钥协商和认证过程,以及从所述SSL协商数据包中提取密钥协商参数;所述密钥协商参数包括客户端随机数、服务端随机数和预主密钥;
解密模块,用于根据所述密钥协商参数生成会话密钥,利用所述会话密钥对所述客户端和所述服务端之间的SSL加密数据进行解密,并将解密得到的数据传递至外部安全设备,以使所述外部安全设备对所述数据进行检测。
第三方面,本申请实施例提供的一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的方法的步骤。
第四方面,本申请实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面任一项所述的方法。
第五方面,本申请实施例提供的一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行如第一方面任一项所述的方法。
本申请公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本申请公开的上述技术即可得知。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种流量检测方法的流程图;
图2为本申请实施例提供的一种SSL加密流量的解密设备的结构的示意图;
图3为本申请实施例提供的一种流量检测装置的框图;
图4为本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如背景技术记载,相关技术中针对SSL会话的解密方式存在着需要客户端配置代理服务,部署困难的问题。基于此,本申请实施例提供一种流量检测方案,以解决上述问题。
接下来对本申请实施例进行介绍:
如图1所示,图1是本申请实施例提供的一种流量检测方法的流程图,所述方法应用于解密设备,所述解密设备串接在客户端和服务端之间。这里的客户端可以认为是客户端所处的终端,服务端可以认为是服务端所处的服务器,本实施例方案是采用物理串接的部署方式,基于中间人原理获取会话密钥,从而实现使用会话密钥解析加密流量,供外部安全设备进行审计和检测的目的。
所述方法包括:
在步骤101、获取所述客户端和所述服务端之间的SSL协商数据包;
本步骤中提到的SSL协商数据包是指SSL密钥协商过程中的数据包,SSL密钥协商过程也可以称为SSL握手过程,用于建立SSL的连接。通常来说,SSL密钥协商过程主要包括四个步骤,分别是客户端问候步骤、服务端问候步骤、证书校验及密钥协商步骤、密钥验证步骤。其中,客户端问候步骤是客户端发起请求,以明文传输请求信息,包含版本信息、加密套件候选列表、压缩算法候选列表、客户端随机数、扩展字段等信息;服务端问候步骤是服务端返回协商的信息结果,包括选择的协议版本、选择的加密套件、选择的压缩算法、服务端随机数等;证书校验及密钥协商步骤是客户端验证服务端证书的合法性,如果验证通过才会进行后续通信,在后续通信中,客户端生成预主密钥,使用服务端的公钥加密后发送给服务端,双方基于客户端随机数、服务端随机数和预主密钥生成会话密钥;密钥验证步骤是客户端和服务端验证握手过程是否被第三方篡改。相应地,本步骤中提到的SSL协商数据包就是上述四个步骤中涉及到的数据包。
在一些实施例中,在本步骤之前可以包括:采集两个网口上的数据包;所述两个网口中的一个与所述客户端相连,另一个与所述服务端相连;通过SSL数据包特征检测采集到的数据包是否为SSL数据包,若检测结果为否,将所述数据包转发至对端网口。也就是说,解密设备的一对网络端口分别连接客户端和服务端,解密设备采集网口数据,通过SSL数据包特征,检测采集到的数据包是否为SSL数据包,如果是则执行本实施例方案进行处理,如果不是则直接向对端网口进行转发,如此,实现对所有SSL会话的截获。
在步骤102、通过利用预生成的密钥对伪造和替换服务端证书,参与SSL密钥协商和认证过程,以及从所述SSL协商数据包中提取密钥协商参数;所述密钥协商参数包括客户端随机数、服务端随机数和预主密钥;
本步骤是指:基于中间人原理获取SSL协商数据包后,伪造和替换服务端证书,与客户端和服务端进行SSL协商和认证,在实现包转发的同时,提取密钥协商参数,为后续生成会话密钥奠定好基础。具体地,本步骤中提到的预生成的密钥对可以是在初始化阶段生成的,其可以是基于RSA算法或SM2算法等公钥加密算法的密钥对,方便后续协商时使用。
由于解密设备是作为中间人身份在提取密钥协商参数,而服务端证书用于身份校验和密钥交换,因此,解密设备利用预生成的密钥对伪造服务端证书,以此替换服务端给客户端的证书链,实现SSL协商和认证,从而能够提取出需要的密钥协商参数。在一些实施例中,本步骤中提到的利用预生成的密钥对伪造和替换服务端证书可以包括:在接收到所述服务端的Certificate消息时,从所述Certificate消息中提取服务端证书和服务器公钥;通过所述服务端证书的证书信息使用预生成的密钥对生成自签名证书,将所述Certificate消息中的服务端证书替换成所述自签名证书后发送给所述客户端。这里的Certificate消息是SSL协商数据包的一种类型,是服务端给客户端的证书链,解密设备在接收到这一消息时,提取出服务端证书和服务器公钥,然后利用服务端证书的证书信息,如序列号、有效期、颁发者唯一标识、使用者唯一标识等,结合预生成的密钥对生成自签名证书,以此修改Certificate消息,将该消息中的服务端证书替换成该自签名证书并发送给客户端。如此,实现服务端证书的伪造和替换。
进一步地,在一些实施例中,本步骤中提到的参与SSL密钥协商和认证过程,以及从所述SSL协商数据包中提取密钥协商参数可以包括:在接收到所述客户端的ClientHello消息时,从所述ClientHello消息中提取客户端随机数,并将所述ClientHello消息转发给所述服务端;在接收到所述服务端的ServerHello消息时,从所述ServerHello消息中提取服务端随机数和密钥套件,并将所述ServerHello消息转发给所述客户端;在接收到所述客户端的ClientKeyExchange消息时,从所述ClientKeyExchange消息中提取预主密钥密文,通过预生成的密钥对中的私钥对所述预主密钥密文进行解密,得到明文的预主密钥,并使用所述服务器公钥将明文的预主密钥加密成目标密文,再将所述ClientKeyExchange消息中的预主密钥密文替换成所述目标密文后发送给所述服务端。上述三种消息同样是SSL协商数据包,其中,ClientHello消息通常是SSL密钥协商过程中的第一条消息,客户端提供版本信息、加密套件候选列表、压缩算法候选列表、客户端随机数、扩展字段等给服务端,本实施例方案中,解密设备从该ClientHello消息中提取出客户端随机数,并直接将该ClientHello消息转发给服务端,需要说明的是,当实际场景中存在禁止会话服用、增减密码套件等特殊要求时,解密设备还可以在根据对应要求改包后再转发给服务端。ServerHello消息是服务端返回协商的信息结果,其中包含服务端随机数和选择的密钥套件,该服务端随机数和客户端随机数均是用于防止消息伪造,是生成会话密钥的组成部分,而该密钥套件是指在SSL通信中服务端和客户端所使用的加密算法的组合。ClientKeyExchange消息是为了向服务端提供密钥交换的数据,本实施例方案中,解密设备提取该消息中预主密钥密文,并通过预生成的私钥进行解密获得明文的预主密钥,并且使用之前获取到的服务器公钥将该预主密钥加密成目标密文,并使用该目标密文将该消息中预主密钥密文进行替换,再转发给服务端,这样,服务端可以解密该消息获得预主密钥,进而基于客户端随机数、服务端随机数和预主密钥生成会话密钥。
需要说明的是,针对其他的SSL协商数据包,如ServerKeyExchange消息、ServerHelloDone消息等,若采用的是RSA/SM2公钥协商方式,解密设备可以直接进行转发,而若采用的是ECDHE或ECDH协商方式,因在该协商方式时双方公私钥都需要参见密钥协商,解密设备需要与两端协商出不同的对称密钥,因此还需要从ServerKeyExchange消息中提取密钥协商参数。
在步骤103、根据所述密钥协商参数生成会话密钥,利用所述会话密钥对所述客户端和所述服务端之间的SSL加密数据进行解密,并将解密得到的数据传递至外部安全设备,以使所述外部安全设备对所述数据进行检测。
在公钥协商算法中,通过预主密钥和两端的随机数即可生成两端的对称密钥、加密向量以及hash(散列,也可音译为哈希)密钥,即生成会话密钥。客户端和服务端在通过SSL密钥协商后,会通过会话密钥对SSL会话进行加密并传递,此时的SSL会话即为本步骤中提到的SSL加密数据。解密设备可以利用会话密钥对SSL加密数据进行解密,获得明文数据并传递至诸如网络审计设备、入侵检测设备、防护墙之类的外部安全设备,供外部安全设备进行审计和检测。该外部安全设备可根据威胁判断规则,对具有威胁的流量进行丢弃和告警,实现对威胁访问的阻断作用。
在一些实施例中,所述所述会话密钥包括所述解密设备与所述服务端之间的第一对称密钥,和所述解密设备与所述客户端之间的第二对称密钥;所述利用所述会话密钥对所述客户端和所述服务端之间的SSL加密数据进行解密可以包括:在接收到所述客户端的ApplicationData消息时,使用所述第一对称密钥对所述客户端的ApplicationData消息进行解密,获得第一明文数据,将所述第一明文数据使用所述第二对称密钥加密后发送给所述服务端;在接收到所述服务端的ApplicationData消息时,使用所述第二对称密钥对所述服务端的ApplicationData消息进行解密,获得第二明文数据,将所述第二明文数据使用所述第一对称密钥加密后发送给所述客户端。也就是说,针对客户端到解密设备的流量,使用第一对称密钥进行解密,将明文数据发送给外部安全设备,再将明文数据通过第二对称密钥进行加密,并将密文发送给服务端,针对服务端到解密设备的流量则使用第二对称密钥进行解密,再使用第一对称密钥加密进行转发。需要说明的是,当第一对称密钥和第二对称密钥相同时,只需要使用其中一个密钥解密加密数据后,将明文数据发送给外部安全设备,并且将该加密数据直接转发给对端即可。
另外,在一些实施例中,解密设备的明文数据流转接口与所述外部安全设备相连,本步骤中提到的将解密得到的数据传递至外部安全设备可以包括:使用所述SSL加密数据的以太网特征,将解密得到的数据封装成以太网数据包,并将所述以太网数据包发送到所述明文数据流转接口。也就是说,解密设备使用原始数据包的2-4层的以太网特征,如MAC地址、源IP地址、目的IP地址、源端口、目的端口等将解密得到的数据再封成以太网数据包,并将数据包发送到明文数据流转接口,以传递给外部安全设备,从而实现与外部安全设备的协同工作,提高网络安全防护能力。
进一步地,在一些实施例中,解密设备可以基于数据平面开发套件和全用户态网络开发套件来处理所述SSL协商数据包和所述SSL加密数据。也就是说,解密设备可以基于数据平面开发套件(DPDK)进行线速的数据包采集和转发,结合全用户态网络开发套件(F-Stack)加速2-4层数据的解析和封包,提高SSL数据包的解析和封包的性能,从而有效提升流量采集、转发和解析的效率。
本申请实施例,采用串接的部署方式,解密设备获取客户端与服务端之间的SSL协商数据包,利用预生成的密钥对伪造和替换服务端证书,以此参与SSL密钥协商和认证过程,并提取到密钥协商参数,进而根据该密钥协商参数生成会话密钥,利用该会话密钥对客户端和服务端之间的SSL会话进行解密,再将得到的明文数据传递至外部安全设备,供外部安全设备进行审计和检测。这样,无需客户端配置代理,部署方便,并且突破代理方式的端口限制造成的并发瓶颈问题。
为了对本申请的方案做更为详细的说明,接下来介绍一具体实施例:
本实施例提供一种SSL加密流量的解密设备,如图2所示,该解密设备21主要由四个模块组成,分别是流量采集和转发模块211、SSL协商模块212、SSL加解密模块213、明文数据流转模块214,该解密设备通过第一流量采集转发网口215与客户端22相连,通过第二流量采集转发网口216与服务端23相连,通过第一明文数据流转网口217和第二明文数据流转网口218与外部安全设备,如网络审计设备24和防火墙设备25相连。另外,该解密设备还具有F-Stack26和DPDK27,用以提升流量采集、转发和解析的效率。其中:
流量采集和转发模块211主要负责采集第一流量采集转发网口215和第二流量采集转发网口216的流量,如果数据包是SSL协商数据包则将数据包转发到SSL协商模块212处理,如果数据包是SSL加密数据则发送到SSL加解密模块213处理,如果数据包为非SSL协议数据包则直接转发到对端网口;同时这一模块还负责将SSL协商模块212和SSL加解密模块213的伪造包发送到对端网口;
SSL协商模块212主要负责处理SSL协商数据包,通过修改SSL协商数据包的密钥协商参数、伪造和替换服务端证书,与客户端和服务端进行SSL协商和认证,并获取到协商出的对称密钥;
SSL加解密模块213主要负责使用协商出的对称密钥,对客户端与服务端的数据进行加解密过程;
明文数据流转模块214主要负责将明文数据按照原始数据包的MAC地址、IP地址、端口等2-4层以太网特征封装成以太网数据包,并将数据包通过第一明文数据流转网口217和第二明文数据流转网口218发送到外部安全设备。
上述解密设备的一个应用场景中,PC机使用HTTPS协议访问目标网站,该解密设备串接在该PC机和目标网站的服务器之间。上述解密设备在该应用场景中的工作流程包括:
S201、PC机向服务器发起TCP连接,建立连接的过程中,解密设备无需修改直接转发数据包;
S202、PC机在建立TCP连接后,向服务器发起SSL握手协商请求,此时解密设备在采集到PC机发出的SSL协商报文后,开始获取密钥协商参数,通过解析ClientHello消息和ServerHello消息,分别获取到客户端随机数和服务端随机数,并将消息转发到对端;
S203、解密设备在服务器发送的Certificate消息中,获取到目标网站的证书,并通过证书信息使用预创建的密钥对伪造自签名证书,并通过修改数据包的方式将伪造的证书放在Certificate消息中,再转发到PC机;
S204、PC机收到伪造的Certificate消息,从中提取伪造的服务器证书和伪造的服务器公钥,并将生成的预主密钥通过伪造的服务器公钥加密,通过ClientKeyExchange消息发送给服务器,解密设备接收这一消息后,使用本地用来伪造证书的密钥对的私钥进行解密,得到预主密钥的明文,通过运算,获得完整的与PC机通信的对称密钥;并且,解密设备通过真正的服务器公钥加密预主密钥的明文数据,填充到ClientKeyExchange消息,并发送到服务器;
S205、服务器收到ClientKeyExchange消息后,通过服务器的私钥解密预主密钥,得到与解密设备相同的预主密钥,再通过运算,获得完整的与解密设备的对称密钥;此时解密设备获得了PC机与服务器的SSL会话的对称加解密密钥;
S206、针对后续的PC机与服务器之间的SSL加密数据,解密设备通过获取到的对称密钥,将密文数据解密成明文,再使用原始数据包的2-4层以太网特征封装成明文的数据包,发送到明文数据流转接口,供外部安全设备检测。
本实施例方案至少具有以下优点:第一、采用串接的部署方式,解决了代理服务方式、DNS欺骗、NET转换方式的部署困难、不能强制劫持和实现劫持局限的问题;第二、采用直接修改和转发数据包的方式,解决了基于代理服务方式的客户端端口限制而造成的并发限制问题;第三、基于DPDK和高性能的用户态协议栈,大大提高的流量采集、转发和解析的效率;第四、支持外部安全设备的串并联部署,可以无缝兼容现存的网络安全设备,达到解密数据利用最大化,突破单机解密后只能在本机处理的困境,同时也突破了单机数据处理的瓶颈。
与前述方法的实施例相对应,本申请还提供流量检测装置及其应用的终端的实施例:
如图3所示,图3是本申请实施例提供的一种流量检测装置的框图,所述装置应用于解密设备,所述解密设备串接在客户端和服务端之间,所述装置包括:
获取模块31,用于获取所述客户端和所述服务端之间的SSL协商数据包;
提取模块32,用于通过利用预生成的密钥对伪造和替换服务端证书,参与SSL密钥协商和认证过程,以及从所述SSL协商数据包中提取密钥协商参数;所述密钥协商参数包括客户端随机数、服务端随机数和预主密钥;
解密模块33,用于根据所述密钥协商参数生成会话密钥,利用所述会话密钥对所述客户端和所述服务端之间的SSL加密数据进行解密,并将解密得到的数据传递至外部安全设备,以使所述外部安全设备对所述数据进行检测。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本申请还提供一种电子设备,请参见图4,图4为本申请实施例提供的一种电子设备的结构框图。电子设备可以包括处理器410、通信接口420、存储器430和至少一个通信总线440。其中,通信总线440用于实现这些组件直接的连接通信。其中,本申请实施例中电子设备的通信接口420用于与其他节点设备进行信令或数据的通信。处理器410可以是一种集成电路芯片,具有信号的处理能力。
上述的处理器410可以是通用处理器,包括中央处理器(CPU,Central ProcessingUnit)、网络处理器(NP,Network Processor)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。上述的处理器410可以是微处理器,或者该处理器410也可以是任何常规的处理器等。
存储器430可以是,但不限于,随机存取存储器(RAM,Random Access Memory),只读存储器(ROM,Read Only Memory),可编程只读存储器(PROM,Programmable Read-OnlyMemory),可擦除只读存储器(EPROM,Erasable Programmable Read-Only Memory),电可擦除只读存储器(EEPROM,Electric Erasable Programmable Read-Only Memory)等。存储器430中存储有计算机可读取指令,当所述计算机可读取指令由所述处理器410执行时,电子设备可以执行上述图1方法实施例涉及的各个步骤。
可选地,电子设备还可以包括存储控制器、输入输出单元。
所述存储器430、存储控制器、处理器410、外设接口、输入输出单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线440实现电性连接。所述处理器410用于执行存储器430中存储的可执行模块,例如电子设备包括的软件功能模块或计算机程序。
输入输出单元用于提供给用户创建任务以及为该任务创建启动可选时段或预设执行时间以实现用户与服务器的交互。所述输入输出单元可以是,但不限于,鼠标和键盘等。
可以理解,图4所示的结构仅为示意,所述电子设备还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例还提供一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,所述计算机程序被处理器执行时实现方法实施例所述的方法,为避免重复,此处不再赘述。
本申请还提供一种计算机程序产品,所述计算机程序产品在计算机上运行时,使得计算机执行方法实施例所述的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种流量检测方法,其特征在于,所述方法应用于解密设备,所述解密设备串接在客户端和服务端之间,所述方法包括:
获取所述客户端和所述服务端之间的SSL协商数据包;
通过利用预生成的密钥对伪造和替换服务端证书,参与SSL密钥协商和认证过程,以及从所述SSL协商数据包中提取密钥协商参数;所述密钥协商参数包括客户端随机数、服务端随机数和预主密钥;
根据所述密钥协商参数生成会话密钥,利用所述会话密钥对所述客户端和所述服务端之间的SSL加密数据进行解密,并将解密得到的数据传递至外部安全设备,以使所述外部安全设备对所述数据进行检测。
2.根据权利要求1所述的方法,其特征在于,所述获取所述客户端和所述服务端之间的SSL协商数据包之前,包括:
采集两个网口上的数据包;所述两个网口中的一个与所述客户端相连,另一个与所述服务端相连;
通过SSL数据包特征检测采集到的数据包是否为SSL数据包,若检测结果为否,将所述数据包转发至对端网口。
3.根据权利要求1所述的方法,其特征在于,所述利用预生成的密钥对伪造和替换服务端证书,包括:
在接收到所述服务端的Certificate消息时,从所述Certificate消息中提取服务端证书和服务器公钥;
通过所述服务端证书的证书信息使用预生成的密钥对生成自签名证书,将所述Certificate消息中的服务端证书替换成所述自签名证书后发送给所述客户端。
4.根据权利要求3所述的方法,其特征在于,所述参与SSL密钥协商和认证过程,以及从所述SSL协商数据包中提取密钥协商参数,包括:
在接收到所述客户端的ClientHello消息时,从所述ClientHello消息中提取客户端随机数,并将所述ClientHello消息转发给所述服务端;
在接收到所述服务端的ServerHello消息时,从所述ServerHello消息中提取服务端随机数和密钥套件,并将所述ServerHello消息转发给所述客户端;
在接收到所述客户端的ClientKeyExchange消息时,从所述ClientKeyExchange消息中提取预主密钥密文,通过预生成的密钥对中的私钥对所述预主密钥密文进行解密,得到明文的预主密钥,并使用所述服务器公钥将明文的预主密钥加密成目标密文,再将所述ClientKeyExchange消息中的预主密钥密文替换成所述目标密文后发送给所述服务端。
5.根据权利要求1所述的方法,其特征在于,所述会话密钥包括所述解密设备与所述服务端之间的第一对称密钥,和所述解密设备与所述客户端之间的第二对称密钥;所述利用所述会话密钥对所述客户端和所述服务端之间的SSL加密数据进行解密,包括:
在接收到所述客户端的ApplicationData消息时,使用所述第一对称密钥对所述客户端的ApplicationData消息进行解密,获得第一明文数据,将所述第一明文数据使用所述第二对称密钥加密后发送给所述服务端;
在接收到所述服务端的ApplicationData消息时,使用所述第二对称密钥对所述服务端的ApplicationData消息进行解密,获得第二明文数据,将所述第二明文数据使用所述第一对称密钥加密后发送给所述客户端。
6.根据权利要求1所述的方法,其特征在于,所述解密设备的明文数据流转接口与所述外部安全设备相连,所述将解密得到的数据传递至外部安全设备,包括:
使用所述SSL加密数据的以太网特征,将解密得到的数据封装成以太网数据包,并将所述以太网数据包发送到所述明文数据流转接口。
7.根据权利要求1所述的方法,其特征在于,所述解密设备基于数据平面开发套件和全用户态网络开发套件来处理所述SSL协商数据包和所述SSL加密数据。
8.一种流量检测装置,其特征在于,所述装置应用于解密设备,所述解密设备串接在客户端和服务端之间,所述装置包括:
获取模块,用于获取所述客户端和所述服务端之间的SSL协商数据包;
提取模块,用于通过利用预生成的密钥对伪造和替换服务端证书,参与SSL密钥协商和认证过程,以及从所述SSL协商数据包中提取密钥协商参数;所述密钥协商参数包括客户端随机数、服务端随机数和预主密钥;
解密模块,用于根据所述密钥协商参数生成会话密钥,利用所述会话密钥对所述客户端和所述服务端之间的SSL加密数据进行解密,并将解密得到的数据传递至外部安全设备,以使所述外部安全设备对所述数据进行检测。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
10.一种电子设备,其特征在于,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
CN202211687197.1A 2022-12-27 2022-12-27 一种流量检测方法、装置、存储介质及设备 Pending CN116015878A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211687197.1A CN116015878A (zh) 2022-12-27 2022-12-27 一种流量检测方法、装置、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211687197.1A CN116015878A (zh) 2022-12-27 2022-12-27 一种流量检测方法、装置、存储介质及设备

Publications (1)

Publication Number Publication Date
CN116015878A true CN116015878A (zh) 2023-04-25

Family

ID=86029550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211687197.1A Pending CN116015878A (zh) 2022-12-27 2022-12-27 一种流量检测方法、装置、存储介质及设备

Country Status (1)

Country Link
CN (1) CN116015878A (zh)

Similar Documents

Publication Publication Date Title
CN111835752B (zh) 基于设备身份标识的轻量级认证方法及网关
CN110190955B (zh) 基于安全套接层协议认证的信息处理方法及装置
Wustrow et al. {TapDance}:{End-to-Middle} Anticensorship without Flow Blocking
US8646041B2 (en) Method for securing information exchange, and corresponding device and computer software product
CN113067828B (zh) 报文处理方法、装置、服务器、计算机设备及存储介质
WO2009076811A1 (zh) 密钥协商方法、用于密钥协商的系统、客户端及服务器
EP3232632A1 (en) Method and system for acquiring plaintext of network secret data
WO2016070538A1 (zh) 安全外壳ssh2协议数据的采集方法和装置
CN114503507A (zh) 安全的发布-订阅通信方法和设备
CN112637136A (zh) 加密通信方法及系统
CN113572766A (zh) 电力数据传输方法和系统
CN101729871B (zh) 一种sip视频监控系统安全跨域访问方法
Ranjan et al. Security analysis of TLS authentication
KR101448866B1 (ko) 웹 보안 프로토콜에 따른 암호화 데이터를 복호화하는 보안 장치 및 그것의 동작 방법
WO2009018510A1 (en) Systems and methods for implementing a mutating internet protocol security
CN112165494B (zh) 报文分析方法、装置、电子设备及存储介质
US20160366191A1 (en) Single Proxies in Secure Communication Using Service Function Chaining
JP5614465B2 (ja) 暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラム
CN114928503B (zh) 一种安全通道的实现方法及数据传输方法
CN110995730B (zh) 数据传输方法、装置、代理服务器和代理服务器集群
CN115459913A (zh) 一种基于量子密钥云平台的链路透明加密方法及系统
CN116015878A (zh) 一种流量检测方法、装置、存储介质及设备
CN113950802B (zh) 用于执行站点到站点通信的网关设备和方法
Badra et al. Adding identity protection to eap-tls smartcards
Du et al. A CSK based SSL handshake protocol

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination