CN116346688B - Ssl vpn安全认证网关服务合规性检测系统与方法 - Google Patents
Ssl vpn安全认证网关服务合规性检测系统与方法 Download PDFInfo
- Publication number
- CN116346688B CN116346688B CN202310591296.8A CN202310591296A CN116346688B CN 116346688 B CN116346688 B CN 116346688B CN 202310591296 A CN202310591296 A CN 202310591296A CN 116346688 B CN116346688 B CN 116346688B
- Authority
- CN
- China
- Prior art keywords
- ssl
- protocol
- data
- module
- tls
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 167
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000004458 analytical method Methods 0.000 claims abstract description 74
- 238000012795 verification Methods 0.000 claims abstract description 33
- 238000004422 calculation algorithm Methods 0.000 claims description 99
- 238000012360 testing method Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 21
- 230000006854 communication Effects 0.000 claims description 20
- 238000000605 extraction Methods 0.000 claims description 19
- 238000010276 construction Methods 0.000 claims description 14
- 230000006798 recombination Effects 0.000 claims description 12
- 238000005215 recombination Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 12
- 230000003993 interaction Effects 0.000 claims description 9
- 230000011218 segmentation Effects 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 7
- 238000005314 correlation function Methods 0.000 claims description 6
- 230000000007 visual effect Effects 0.000 claims description 5
- 238000012512 characterization method Methods 0.000 claims description 3
- 230000008521 reorganization Effects 0.000 claims description 2
- 238000007619 statistical method Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于主动扫描的SSL VPN安全认证网关服务合规性检测系统与方法,该检测系统包括检测模式选择模块、在线检测模块、离线分析模块及校验模块。校验模块用于对在线检测及离线分析的结果进行检验,校验证书链和证书有效期。本发明提出的SSL VPN安全认证网关服务合规性检测系统融合了在线检测和离线分析两种操作模式,对于适合接入网络环境的信息系统,可通过在线快速检测得到统计分析结果,对于不适合接入或安装软件的环境,可抓包后再通过离线分析方式检测并得到统计分析结果,发现SSL VPN服务器所支持的密码套件,解决被动检测时容易遗漏的问题,提高检测效率、全面性和精准性。
Description
技术领域
本发明涉及数据安全和通信技术领域,尤其是SSL VPN安全网关检测技术,尤其是具体而言涉及一种基于主动扫描的SSL VPN安全认证网关服务合规性检测系统与方法。
背景技术
当前,我国面临着世界新一轮数字化革命浪潮,密码是国家网络空间的安全基石与核心技术。在国家密码应用政策和数字经济安全需求的双重驱动下,社会密码意识相比以往大大增强,使用商用密码保障信息系统安全成为普遍共识。SSL VPN安全网关是目前商用密码领域应用最为广泛的密码产品之一,其融合了多种密码技术于一身,以简单、快速、安全的特点为信息系统数据通信安全提供了强大的保证。
我国密码管理部门针对各类型商用密码产品都有针对性的技术标准,且厂家的相关密码产品在销售前需通过严格的产品检测认证,其目的是为了确保密码产品在实际应用中能够提供更为可靠的安全性保障。然而,由于密码产品的专业性强,应用部署门槛较高,一些信息系统建设人员对商用密码产品不熟悉,往往在使用和配置过程中出现偏差,导致对外提供的SSL通道存在不同程度安全风险,甚至一些SSL VPN产品漏洞成为被境外或者黑客侵入的突破口,导致信息网络安全存在严重的隐患。因此在企事业单位所使用的的信息系统中,SSL VPN产品是否被合规、正确、有效地使用,是信息系统建设、运营维护和密码测评机构需要直接面对的问题。
目前,Wireshark根据是广泛应用的网络封包分析工具软件,可以截取各种网络数据包,并自动解析数据包,为用户显示数据包的详细信息,Wireshark工具支持对SSLVPN协议数据的解析。但对于商用密码应用安全性检测,Wireshark工具作为网络封包分析工具,仅能对实际网络通信数据进行监听和截包,不具备主动扫描探测功能,容易导致检测过程中遗漏存在高风险的安全协议或密码算法。在实际使用过程中,Wireshark工具只是简单分析和输出大量信息,不加以分析和梳理以及可视化的表示,无法直接识别国密TLCP协议及其版本信息,无法准确识别所有国密算法套件西悉尼,而且Wireshark工具本身无法实现对对国密双数字证书的提取、解析及证书链验证功能,仍需人工操作,对使用者的专业基础知识有较高要求,面对信息网络的实际使用、日常监测和维护的需求时,要求专业的密码专业技术人员进行分析、比对和识别,难以实现广泛和普遍性的商用化部署与使用。
发明内容
鉴于现有技术的缺陷,本发明旨在提出一种基于主动扫描的SSL VPN安全认证网关服务合规性检测系统与方法,实现主动扫描式的在线检测和/或离线检测的模式操作,能够实现对国产密码算法和国密TLS协议应用和部署情况的主动式检测和识别,通过以遍历测试的方法对VPN产品可能支持的协议及密码算法套件逐个进行测试验证,发现SSL VPN服务器支持的密码套件,解决被动检测时容易遗漏的问题,提高检测效率、全面性和精准性。
根据本发明目的的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统与方法,在示例中,可实现对国密算法套件的识别和解析以及对国密双证书解析和证书链校验,可实现快速证书有效性校验。
根据本发明目的的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统与方法,在示例中,支持高风险算法、协议告警,对协议数据进行分析的过程中,标注存在风险的密码算法和协议版本,解决由于技术人员的专业水平导致的测评结果不全面、不精准的问题。
根据本发明目的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统与方法,在示例中,支持图形化展示握手协议数据交互和检测结果,解决了协议包结构复杂情况下的可视化表征问题。
根据本发明目的的第一方面,提出一种基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,包括:
检测模式选择模块,被设置用于选择执行的合规性检测模式,包括主动式扫描的在线检测模式以及离线分析模式;
在线检测模块,被设置成通过主动式遍历扫描方式,分析连接的VPN服务器的SSL配置信息,获得对VPN服务器所配置的SSL/TLS协议的检测结果,以及对国密TLS协议进行主动式遍历扫描,获得国密TLS协议相应的密码算法套件的检测结果;
离线分析模块,被设置用于在构建http访问请求与SSL服务端通信过程中通过抓包获得的网络数据包以及对网络数据包进行TCP分段数据重组、获得完整的SSL数据包的基础上,解析识别所述SSL数据包以进行TLS/SSL协议的识别以及国密TLS协议的识别,获得SSL协议和TLS协议类型以及证书值,以及国密密码算法套件;
校验模块,被设置用于对所述在线检测模块以及离线分析模块的检测结果进行检验,校验证书链和证书有效期。
进一步可选的实施例中,所述在线检测模块包括:
第一SSL/TLS协议检测模块,被设置成基于SSLyze检测工具遍历扫描VPN服务器的SSL配置信息,获得VPN服务器所支持SSL/TLS协议检测结果;
第一国密TLS协议检测模块,被设置成基于TaSSL工具对国密TLS协议进行检测,包括对ECC-SM4-SM3、ECDHE-SM4-SM3、ECC_SM4_GCM_SM3及
ECDHE_SM4_GCM_SM3四种国密相关的密码算法套件的检测。
进一步可选的实施例中,所述离线分析模块包括:
请求构建与响应模块,被设置用于根据国际与国密网络安全协议,分别选择不同协议版本构建http访问请求,与SSL服务端建立连接,以及接收所述SSL服务端响应请求返回的网络数据包,并对网络数据包进行TCP分段数据重组,获得完整的SSL数据包;
第二SSL/TLS协议检测模块,被设置成使用Python的dpkt.SSL模块解析识别所述SSL数据包,获得SSL协议和TLS协议的类型以及证书值;
第二国密TLS协议检测模块,被设置成以所述SSL数据包为基础,通过tcp层提取tcpdata字节流数据并修改预定协议号为与对标国际TLS协议对应的头部协议号,并通过dpkt.SSL模块继续解析提取后续数值和国密证书值;根据预设的规则匹配校验文件,将提取的二进制值转义成对应的国密密码算法套件名称,完成国密密码算法套件值的识别。
进一步可选的实施例中,所述请求构建与响应模块包括请求构建与连接测试模块,被设置成按照下述方式进行连接测试:
根据国际SSL协议、TLS协议以及国密TLS协议,利用TaSSL工具分别依次选择不同的协议版本和算法套件构建http访问请求,并分别发送连接请求,与SSL服务端进行连接测试;
对于每一个协议版本和算法套件的连接测试,依次测试并记录连接成功与否结果;
其中,所述SSL协议的协议版本至少包括SSL2.0与SSL3.0;
所述TLS协议的协议版本至少包括TLS1.0、TLS1.1、TLS1.2以及TLS1.3;
所述国密TLS协议的密码套件至少包括符合GB/T38636-2020规范的ECC-SM4-SM3、ECC_SM4_GCM_SM3、ECDHE-SM4-SM3、ECDHE_SM4_GCM_SM3四种国密相关的密码套件以及符合RFC8998规范的TLS_SM4_GCM_SM3密码套件。
进一步可选的实施例中,所述请求构建与响应模块包括抓包模块、分层提取模块、分段数据重组模块以及数据查重模块,其中:
所述抓包模块,用于抓取http访问请求与SSL服务端通信过程中返回的pcapng数据包;所述分层提取模块,用于使用dpkt解包工具将pcapng数据包数据分层提取;
所述分段数据重组模块,用于对分层提取获得的分段报文数据按照报文的tcpack号进行分组重组,存储到一列表结构list中;
所述数据查重模块,用于对所述列表结构list进行遍历,对报文按照tcpack号分组后的抓包数据进行查重处理,得到完整的SSL数据包。
进一步可选的实施例中,所述分段数据重组模块被设置成按照以下过程对分层提取获得的报文数据按照tcpack号进行分组重组,存储到一列表结构list中:
基于tcpack号的唯一性,分段后的报文的tcpack是相同的,标识为同一组tcp报文;利用python字典数据结构,key值为tcpack号,value值存储提取当前tcpack号的tcpdata,按照抓包文件的时间顺序进行排列,将以上key值与value值作为字典值存入列表结构List。
进一步可选的实施例中,所述数据查重模块被设置成按照以下过程对所述列表结构list进行遍历,对报文按照tcpack号分组后的抓包数据进行查重处理,得到完整的SSL数据包:
对所述列表结构list进行遍历,提取单条tcpack报文字典,字典的key值存入新建的ack集合结构中,利用集合结构的元素不可重复特性,用于判断当前tcpack报文字典是否已处理,每次对列表结构list中的单条tcpack报文处理前,均需要对字典key值进行判断比对ack集合是否存在:
如果不存在,将tcpack报文字典的value值写入新的ack字典,其key值仍为ack号,value为tcpdata;如果存在,将tcpack报文字典的value值拼接入ack字典对应key值的value值内;
通过遍历列表结构list,直至所有的tcpack报文字典遍历处理完成,获得查重重组后的报文数据,即完整的SSL数据包。
进一步可选的实施例中,所述第二国密TLS协议检测模块中,以所述SSL数据包为基础,通过tcp层提取tcpdata字节流数据并修改预定协议号为与对标国际TLS协议对应的头部协议号,并通过dpkt.SSL模块继续解析提取后续数值和国密证书值,包括:
通过tcp层提取tcpdata字节流数据;
提取头部协议号信息“0x0101”;
基于国密TLS协议对标的国际TLS1.1协议,将头部协议号修改成“0x0301”;以及
对于修改头部协议号后的SSL数据包通过dpkt.SSL模块继续解包进行后续数值的提取。
进一步可选的实施例中,所述校验模块被设置成按照以下过程校验证书链和证书有效期:
接收在线检测模块以及离线分析模块获取到的证书值信息;
基于Jsrsasign密码工具库的X509类相关函数,对加密算法的证书解析和校验,校验证书链和证书有效期;其中对于SM2加密算法中的证书的解析和校验,由于原生Jsrsasign密码工具库提取出的证书公钥格式不符合标准定义,参照GM/T0003-2012《SM2椭圆曲线公钥密码算法》标准,对提取后的十六进制公钥值的字符串首部添加“04”标识,生成正确的公钥值;通过修改后的公钥值对证书签名域内容摘要进行验签,使用根证书的公钥值验证获取到的SM2算法证书内容,实现对证书链的校验;
最后,翻译OID信息的内容,以将证书信息展现在前端页面中。
进一步可选的实施例中,所述合规性检测系统还包括前端交互与显示界面,用以输入测试参数信息,以及可视化表征协议解析结果、证书检验结果信息。
根据本发明目的的第二方面,提出一种基于主动扫描的SSL VPN安全认证网关服务合规性检测方法,包括:
选择执行的合规性检测模式,包括主动式扫描的在线检测模式以及离线分析模式;
响应于选择的在线检测模式,使用SSLyze检测工具遍历扫描VPN服务器的SSL配置信息,获得VPN服务器所支持SSL/TLS协议检测结果,并且使用TaSSL工具对国密TLS协议进行检测,包括对ECC-SM4-SM3、ECDHE-SM4-SM3、ECC_SM4_GCM_SM3及ECDHE_SM4_GCM_SM3四种国密相关的密码算法套件的检测;
响应于选择的离线分析模式,通过构建配置不同TLS/SSL协议及国密TLS协议的http访问请求,与SSL服务端通信,抓包获得通信过程中返回的网络数据包;然后对网络数据包进行TCP分段数据重组获得完整的SSL数据包的基础上,解析识别所述SSL数据包以进行TLS/SSL协议的识别以及国密TLS协议的识别,获得SSL协议和TLS协议类型以及证书值,以及国密密码算法套件;
对于所述在线检测以及离线分析的检测结果进行检验,校验证书链和证书有效期。
进一步可选的实施例中,所述通过构建配置不同TLS/SSL协议及国密TLS协议的http访问请求,与SSL服务端通信,抓包获得通信过程中返回的网络数据包,包括:
根据国际SSL协议、TLS协议以及国密TLS协议,利用TaSSL工具分别依次选择不同的协议版本和算法套件构建http访问请求,并分别发送连接请求,与SSL服务端进行连接测试;
对于每一个协议版本和算法套件的连接测试,依次测试并记录连接成功与否结果;
其中,所述SSL协议的协议版本至少包括SSL2.0与SSL3.0;
所述TLS协议的协议版本至少包括TLS1.0、TLS1.1、TLS1.2以及TLS1.3;
所述国密TLS协议的密码套件至少包括符合GB/T38636-2020规范的ECC-SM4-SM3、ECC_SM4_GCM_SM3、ECDHE-SM4-SM3、ECDHE_SM4_GCM_SM3四种国密相关的密码套件以及符合RFC8998规范的TLS_SM4_GCM_SM3密码套件。
进一步可选的实施例中,所述对网络数据包进行TCP分段数据重组获得完整的SSL数据包的基础上,解析识别所述SSL数据包以进行TLS/SSL协议的识别以及国密TLS协议的识别,获得SSL协议和TLS协议类型以及证书值,以及国密密码算法套件,包括:抓取http访问请求与SSL服务端通信过程中返回的pcapng数据包;
使用dpkt解包工具将pcapng数据包数据分层提取;
对分层提取获得的分段报文数据按照报文的tcpack号进行分组重组,存储到一列表结构list中;
对所述列表结构list进行遍历,对报文按照tcpack号分组后的抓包数据进行查重处理,得到完整的SSL数据包;以及
使用dpkt.SSL模块对所述SSL数据包进行识别,获得TLS/SSL协议的识别以及国密TLS协议的识别结果。
进一步可选的实施例中,使用dpkt.SSL模块识别国密TLS协议的过程,包括:
通过tcp层提取tcpdata字节流数据;
提取头部协议号信息“0x0101”;
基于国密TLS协议对标的国际TLS1.1协议,将头部协议号修改成“0x0301”;以及
对于修改头部协议号后的SSL数据包通过dpkt.SSL模块继续解包进行后续数值的提取和获得国密证书值。
进一步可选的实施例中,所述对分层提取获得的分段报文数据按照报文的tcpack号进行分组重组,存储到一列表结构list中,包括:
基于tcpack号的唯一性,分段后的报文的tcpack是相同的,标识为同一组tcp报文;利用python字典数据结构,key值为tcpack号,value值存储提取当前tcpack号的tcpdata,按照抓包文件的时间顺序进行排列,将以上key值与value值作为字典值存入列表结构list。
进一步可选的实施例中,所述对所述列表结构list进行遍历,对报文按照tcpack号分组后的抓包数据进行查重处理,得到完整的SSL数据包,包括:
对所述列表结构list进行遍历,提取单条tcpack报文字典,字典的key值存入新建的ack集合结构中,利用集合结构的元素不可重复特性,用于判断当前tcpack报文字典是否已处理,每次对列表结构list中的单条tcpack报文处理前,均需要对字典key值进行判断比对ack集合是否存在:
如果不存在,将tcpack报文字典的value值写入新的ack字典,其key值仍为ack号,value为tcpdata;如果存在,将tcpack报文字典的value值拼接入ack字典对应key值的value值内;
通过遍历列表结构list,直至所有的tcpack报文字典遍历处理完成,获得查重重组后的报文数据,即完整的SSL数据包。
进一步可选的实施例中,所述对在线检测以及离线分析的检测结果进行检验,校验证书链和证书有效期,包括:
接收在线检测以及离线分析获取到的证书值信息;
基于Jsrsasign密码工具库的X509类相关函数,对加密算法的证书解析和校验,校验证书链和证书有效期;其中对于SM2加密算法中的证书的解析和校验,由于原生Jsrsasign密码工具库提取出的证书公钥格式不符合标准定义,参照GM/T0003-2012《SM2椭圆曲线公钥密码算法》标准,对提取后的十六进制公钥值的字符串首部添加“04”标识,生成正确的公钥值;通过修改后的公钥值对证书签名域内容摘要进行验签,使用根证书的公钥值验证获取到的SM2算法证书内容,实现对证书链的校验;
最后,翻译OID信息的内容,以将证书信息展现在前端页面中。
由以上各个方面实施方式的技术方案,本发明提出的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统与检测方法可实现对国际SSL、TLS协议以及国密TLS协议的解析与识别,并实现证书链和证书有效期的检验。本发明通过主动式扫描的在线检测与离线检测分析的结合,解决SSL VPN网关服务合规性的自动检测问题,在商用密码应用安全性评估工作中,可提高检测的深度、准确性和效率,减少因检测人员能力技术水平差异导致的测评误差或偏差。通过主动式扫描探测,可发现SSL VPN服务器支持的所有密码套件,解决被动检测时容易遗漏的问题,同时还支持高风险算法、协议告警,对协议数据进行分析的过程中,明确标注存在高风险的密码算法和协议版本,解决由于技术人员水平参差导致的测评结果不全面、不精准的问题。
应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。另外,所要求保护的主题的所有组合都被视为本公开的发明主题的一部分。
结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。
附图说明
附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例。
图1是本发明实施例的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统的示意图。
图2是本发明实施例的在线检测模块的示意图。
图3是本发明实施例的在线检测过程的示意图。
图4是本发明实施例的离线分析模块的示意图。
图5本发明实施例的离线分析过程的示意图。
图6是本发明实施例的请求构建与响应模块的示意图。
图7是本发明实施例的分段数据重组操作的示意图。
图8是本发明实施例的数据查重操作的示意图。
实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定意在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。
结合图1-5所示,根据本发明实施例的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,包括检测模式选择模块100、在线检测模块200、离线分析模块300以及校验模块400。
检测模式选择模块100,被设置用于选择执行的合规性检测模式,包括主动式扫描的在线检测模式以及离线分析模式。
在线检测模块200,被设置成通过主动式遍历扫描方式,分析连接的VPN服务器的SSL配置信息,获得对VPN服务器所配置的SSL/TLS协议的检测结果,以及对国密TLS协议进行主动式遍历扫描,获得国密TLS协议相应的密码算法套件的检测结果。
离线分析模块300,被设置用于在构建http访问请求与SSL服务端通信过程中通过抓包获得的网络数据包以及对网络数据包进行TCP分段数据重组、获得完整的SSL数据包的基础上,解析识别所述SSL数据包以进行TLS/SSL协议的识别以及国密TLS协议的识别,获得SSL协议和TLS协议类型以及证书值,以及国密密码算法套件。
校验模块400,被设置成用于对所述在线检测模块以及离线分析模块的检测结果进行检验,校验证书链和证书有效期。
作为可选的实施例,结合图2所示,在线检测模块200包括第一SSL/TLS协议检测模块201以及第一国密TLS协议检测模块202。
其中,第一SSL/TLS协议检测模块201被设置成基于SSLyze检测工具遍历扫描VPN服务器的SSL配置信息,获得VPN服务器所支持SSL/TLS协议检测结果。
第一国密TLS协议检测模块202被设置成基于TaSSL工具对国密TLS协议进行遍历式的扫描检测,包括对四种国密相关的密码算法套件的检测,即ECC-SM4-SM3、ECDHE-SM4-SM3、ECC_SM4_GCM_SM3及ECDHE_SM4_GCM_SM3。
在本发明的实施例中,在线检测模式的目的是对SSL服务状态的主动探测。当SSL客户端在发送握手请求时,会标识自己所支持的协议版本和相关密码算法套件,而VPN服务端(服务器)则会对请求所声明的内容进行响应,故VPN服务端会隐藏支持一些不安全的协议版本或高危的密码算法套件。
现有的SSL客户端工具(如浏览器)无法有较为便捷的通过修改相关配置以达到限定相应SSL协议或密码算法套件来进行SSL连接(windows可通过修改注册表实现,但操作过程极其不便)。同时,对于密评环节,如信息系统因其重要性,必须采用国密协议时,如果我们使用通用的SSL客户端(如国密浏览器)来建立SSL连接,往往很难及时有效地发现VPN产品同时还会支持SSL/TLS协议。
在本发明的实施例中提出的在线检测模式,旨在针对现有技术中的密评问题,通过本地化的工具以遍历测试的方法对VPN服务器所有可能支持的协议及密码算法套件进行遍历测试,明确一些未知因素,提高检测效率和全面性。
结合图2所示的在线检测模块200的示例以及图3所示的在线检测的过程,在线检测过程包括对SSL/TLS协议进行快速探测以及对国密TLS协议的探测。
在本发明的实施例中,第一SSL/TLS协议检测模块201采用基于Python的开源SSLyze检测工具,分析用于连接的VPN服务器的SSL配置,获得SSL/TLS协议数据的探测结果。SSLyze检测工具不仅提供命令行运行模式,也提供API接口,对于本发明的实现上,能够更好获取数据。SSLyze的检测已自身支持对SSL2.0、SSL3.0、TLS1.0、TLS1.1、TLS1.2、TLS1.3等协议的遍历测试,并分别输出相应的测试结果。本发明利用SSLyze来对VPN产品所提供的可能存在的SSL/TLS协议进行快速探测,获取全面的分析数据并向WEB前端页面反馈进行可视化的表征和展示。
在本发明的实施例中,第一国密TLS协议检测模块202使用开源工具TaSSL对国密TLS协议进行探测,包含国密的相关算法,同时支持对“ECC-SM4-SM3”、
“ECDHE-SM4-SM3”、“ECC_SM4_GCM_SM3”、“ECDHE_SM4_GCM_SM3”四种国密相关的密码算法套件进行检测,能够达到我们明确服务端具体密码算法套件的支持状态的目的。
通过第一国密TLS协议检测模块202的探测,输出识别结果,包括:本次SSL连接的密码算法套件名称、服务端证书链、随机数值、SessionID(如有)等信息。
对于在线检测的结果,虽然SSLyze和TaSSL工具都能够支持对服务端证书链进行校验,但本发明的目的不仅仅是需要获得验证结果,更需要将证书内容进行可视化展示,故对探测到的证书在前端进行检验,检验证书链和证书有效性。
同时,针对检测结果的SSL协议、TLS协议以及国密TLS协议,对于识别出的协议版本、密码算法套件中所使用的共享套件类型以及服务端和客户端所使用的算法证书的密钥长度,根据《GB/T39786-2021信息安全技术信息系统密码应用基本要求》,对于信息系统使用存在安全问题或安全强度不足的密码算法对重要数据进行保护,如MD5,DES,SHA-1,RSA(不足2048)等密码算法,以及现已发现并逐步被抛弃的危险SSL协议,如SSL2.0,SSL3.0,TLS1.0等,可能会导致信息系统面临高风险。特别针对此情况,对存在风险的信息进行标识和报警提示。
结合图4所示的示例,离线分析模块300包括请求构建与响应模块301、第二SSL/TLS协议检测模块302以及第二国密TLS协议检测模块303。
在本发明的实施例中,离线分析模块300的分析基础是构建不同协议标准的http访问请求,并与VPN服务器建立连接测试,通过抓包返回的网络数据包(tcp报文数据)进行识别和解析,识别SSL/TLS协议以及国密TSL协议。
请求构建与响应模块301,被设置用于根据国际与国密网络安全协议,分别选择不同协议版本构建http访问请求,与SSL服务端建立连接,以及接收所述SSL服务端响应请求返回的网络数据包,并对网络数据包进行TCP分段数据重组,获得完整的SSL数据包。
第二SSL/TLS协议检测模块302,被设置成使用Python的dpkt.SSL模块解析识别所述SSL数据包,获得SSL协议和TLS协议类型以及证书值。
第二国密TLS协议检测模块303,被设置成以所述SSL数据包为基础,通过tcp层提取tcpdata字节流数据并修改预定协议号为与对标国际TLS协议对应的头部协议号,并通过dpkt.SSL模块继续解析提取后续数值和国密证书值;根据预设的规则匹配校验文件,将提取的二进制值转义成对应的国密密码算法套件名称,完成国密密码算法套件值的识别。
结合图5表示了在图4所示的离线分析模块300的基础上实现的离线分析过程。以wireshark抓包工具为例,在抓取SSL VPN服务器通信数据时,能够较好的展示与VPN服务器交互过程中的数据。
图6示例性的表示了请求构建与响应模块301的构成,包括请求构建与连接测试模块301A、抓包模块301B、分层提取模块301C、分段数据重组模块301D以及数据查重模块301E。
作为可选的示例,请求构建与连接测试模块301A被设置成按照下述方式进行连接测试:
根据国际SSL协议、TLS协议以及国密TLS协议,利用TaSSL工具分别依次选择不同的协议版本和算法套件构建http访问请求,并分别发送连接请求,与SSL服务端进行连接测试;
对于每一个协议版本和算法套件的连接测试,依次测试并记录连接成功与否结果。
其中,所述SSL协议的协议版本至少包括SSL2.0与SSL3.0。
所述TLS协议的协议版本至少包括TLS1.0、TLS1.1、TLS1.2以及TLS1.3。
所述国密TLS协议的密码套件至少包括符合GB/T38636-2020规范的ECC-SM4-SM3、ECC_SM4_GCM_SM3、ECDHE-SM4-SM3、ECDHE_SM4_GCM_SM3四种国密相关的密码套件以及符合RFC8998规范的TLS_SM4_GCM_SM3密码套件。
应当理解,SSL协议工作机制依赖的是tcp协议,在传输数据时会进行报文分段(Segment),而对SSL协议的数据报文进行识别分析时,需要完整的数据内容,因此,在本发明的实施例中,提出分段数据重组的方法。
抓包模块301B,用于抓取http访问请求与SSL服务端通信过程中返回的pcapng数据包。
分层提取模块301C,用于使用dpkt.SSL模块(如基于Python的原生dpkt.SSL工具)将pcapng数据包数据分层提取。
分段数据重组模块301D,用于对分层提取获得的分段报文数据按照报文的tcpack号进行分组重组,存储到一列表结构list中。
数据查重模块301E,用于对所述列表结构list进行遍历,对报文按照tcpack号分组后的抓包数据进行查重处理,得到完整的SSL数据包。
作为示例的实现方式,结合图7所示的示例,前述的分段数据重组模块301D按照以下过程对分层提取获得的报文数据按照tcpack号进行分组重组,存储到一列表结构list中:
基于tcpack号的唯一性,分段后的报文的tcpack是相同的,标识为同一组tcp报文;利用python字典数据结构,key值为tcpack号,value值存储提取当前tcpack号的tcpdata,按照抓包文件的时间顺序进行排列,将以上key值与value值作为字典值存入列表结构List。
结合图8所示的示例,前述的数据查重模块301E被设置成按照以下过程对列表结构list进行遍历,对报文按照tcpack号分组后的抓包数据进行查重处理,得到完整的SSL数据包:
对所述列表结构list进行遍历,提取单条tcpack报文字典,字典的key值存入新建的ack集合结构中,利用集合结构的元素不可重复特性,用于判断当前tcpack报文字典是否已处理,每次对列表结构list中的单条tcpack报文处理前,均需要对字典key值进行判断比对ack集合是否存在:
如果不存在,将tcpack报文字典的value值写入新的ack字典,其key值仍为ack号,value为tcpdata;如果存在,将tcpack报文字典的value值拼接入ack字典对应key值的value值内;
通过遍历列表结构list,直至所有的tcpack报文字典遍历处理完成,获得查重重组后的报文数据,即完整的SSL数据包。
如此,在得到完整的SSL数据包的基础上,通过dpkt.SSL模块相关函数对SSL协议的各类型进行识别处理。使用dpkt.ssl.tls_multi_factory函数对tcp报文进行识别,能够解析SSL协议中握手协议簇的各类型数据结果,包括握手协议、密码规格变更协议和报警协议。
例如,握手协议通过dpkt.ssl.TLSHandshake函数可识别ClientHello、ServerHello、Certificate、ServerKeyExchange、CertificateRequest、ServerHelloDone、CertificateVerify、ClientKeyExchange、Finished消息结构类型。
将解析获得的各类型的数据内容,以记录字典的数据结构进行存储,对于握手协议下分的各消息结构类型,详细输出其包含的关键信息。例如ClientHello消息中,则进一步输出其random、ciphersuites、sessionid、compressionmethods等信息。
同时,在SSL数据包的基础上,由于原生dpkt.ssl模块对国密TLS协议的标识不支持,为此在本发明的实施例中,鉴于国密GMTLS1.1的版本号是“0x0101”,区别于TLS协议的版本号“0x03XX”,密码算法套件也在GM/T0024-2014《SSL VPN技术规范》和GM/T38636-2020《信息安全技术传输层密码协议(TLCP)》有明确说明,因此我们将已确定为国密TLS数据包的报文的SSL协议头标识修改为国际TLS1.1标识即“0x0301”,之后可通过dpkt.ssl原生模块继续解析SSL协议相关消息数据。
具体地,在第二国密TLS协议检测模块303的设计实现中,以SSL数据包为基础,通过tcp层提取tcpdata字节流数据并修改预定协议号为与对标国际TLS协议对应的头部协议号,并通过dpkt.SSL模块继续解析提取后续数值和国密证书值,包括:
通过tcp层提取tcpdata字节流数据;
提取头部协议号信息“0x0101”;
基于国密TLS协议对标的国际TLS1.1协议,将头部协议号修改成“0x0301”;以及
对于修改头部协议号后的SSL数据包,通过原生dpkt.SSL模块继续解包进行后续数值的提取。
其中,前述的预先创建的规则匹配校验文件,校验文件的密码算法套件值与名称映射关系来自GM/T0024-2014《SSL VPN技术规范》和GB/T38636-2020《信息安全技术传输层密码协议(TLCP)》标准中。因此,利用规则匹配校验文件可将将提取的二进制值转义成对应的国密密码算法套件名称,完成国密密码算法套件值的识别。
至此,完成在离线分析模式下的SSL协议、TLS协议以及国密TLS协议的识别分析过程。
接下来,我们以一个示例来更具体地描述上述离线分析过程的实现。
采用Wireshark工具进行转包,对转包文件中的各个信息可在前端WEB交互界面进行显示,并可对其中的具体数据流进行选择和查看。例如吗,当我们选择对“180.163.248.139”的SSL VPN服务端(SSL/TLS)查看详细的SSL数据流时,通过输入检索命令,可以将所有此IP相关的网络数据包过滤出来。但是,这些包内的数据在底层上存在一些问题。如前述的,SSL协议工作机制依赖的是tcp协议,Wireshark工具会对应用层协议进行segment分包,进行tcp报文分段,虽然Wireshark进行了组包,但对于后续的SSL协议的数据报文识别分析来说,需要完整的数据内容,Wireshark工具无法实现。
针对此情况,在本发明的实施例中,我们提出分段数据重组的方法。通过dpkt解包工具将pcapng数据包数据分层提取后,再根据其tcpack号进行分组,segment分包的依据就是对tcpack号相同的包内的tcpdata进行拆分后处理。通过tcpack号分组梳理数据后,进行查重处理,即可得到完整的SSL数据包,再通过dpkt.SSL模块相关函数对SSL/TLS协议的各类型进行识别处理。
而针对国密GMTLS协议的识别,GMTLS1.1的版本号是“0x0101”,区别于TLS的版本号“0x03XX”;密码算法套件在GM/T0024-2014《SSL VPN技术规范》、GB/T38636-2020《信息安全技术传输层密码协议(TLCP)》中有明确规定。对于国密相关的“ECC-SM4-SM3”、“ECDHE-SM4-SM3”、“ECC_SM4_GCM_SM3”、
“ECDHE_SM4_GCM_SM3”四种套件的识别,由于原生dkpt.SSL模块对于协议号“0x0101”无法正确识别,我们通过tcp层提取Tcpdata字节流数据后,将头部“0x0101”提取后,由于国密TLS协议对标的是tls1.1协议,故将此头部协议号修改成“0x0301”后,可以通过dpkt进行解包再进行后续数值的提取。密码算法套件值的识别,通过创建规则匹配校验文件,将二进制值转义成对应的密码算法套件名称即可。
应当理解,在离线分析过程中,对于识别出的协议版本、密码算法套件中所使用的共享套件类型以及服务端和客户端所使用的算法证书的密钥长度,仍然可根据《GB/T39786-2021信息安全技术信息系统密码应用基本要求》,对于信息系统使用存在安全问题或安全强度不足的密码算法对重要数据进行保护,如MD5,DES,SHA-1,RSA(不足2048)等密码算法,以及现已发现并逐步被抛弃的危险SSL协议,如SSL2.0,SSL3.0,TLS1.0等,可能会导致信息系统面临高风险。特别针对此情况,对存在风险的信息进行报警提示,标识和提示存在风险的数据信息。
由此,融合了在线检测和离线分析的SSL VPN安全认证网关服务合规性检测系统,实现了对SSL/TLS协议以及国密TLS协议合规性的检测和分析,实现了在线检测和离线分析双模式:
-对于适合接入网络环境的信息系统,可通过在线快速检测得到统计分析结果;针对当下国产密码算法和国际密码算法交替并存的发展阶段,围绕实际应用场景,兼顾SSL协议分析和检测的全面性,融合SSLyze和TaSSL检测工具的功能,在此基础上二次校验和分析;-对于不适合接入或安装软件的环境,可通过wireshark、tcpdump等工具进行数据包获取,再通过离线分析方式进行检测并得到统计分析结果,实现灵活、高效、全面的检测和分析。
对于获取到的服务端证书或客户端证书,Wireshark工具是无法予以校验的。我们通过将dpkt.SSL模块识别获取到的证书值信息,传回前端,前端的校验模块400通过Jsrsasign密码工具库对证书信息进行解析并校验证书链和证书有效期。
Jsrsasign密码工具库成熟且开源的js密码工具库,其对RSA、AES、ECC等国际算法的处理有很好的支持。本发明使用该工具主要是对RSA算法的证书及SM2算法的证书进行解析和校验,RSA算法的证书可以通过其函数库完成解析和校验操作。
作为可选的示例,我们基于Jsrsasign密码工具库的X509类相关函数,对加密算法的证书解析和校验,校验证书链和证书有效期。
对于RSA算法的证书及SM2算法的证书,可直接进行解析和检验。
对于SM2加密算法中的证书的解析和校验,由于原生Jsrsasign密码工具库提取出的证书公钥格式不符合标准定义,参照GM/T0003-2012《SM2椭圆曲线公钥密码算法》标准,对提取后的十六进制公钥值的字符串首部添加“04”标识,生成正确的公钥值;通过修改后的公钥值对证书签名域内容摘要进行验签,使用根证书的公钥值验证获取到的SM2算法证书内容,实现对证书链的校验。
在证书信息的展示上,通过翻译OID信息的内容,以将证书信息展现在前端WEB交互界面中。
在可选的示例中,本发明实施例的SSL VPN安全认证网关服务合规性检测系统还包括前端交互与显示界面,例如基于WEB实现的交互界面,用以输入测试参数信息,以及可视化表征协议解析结果、证书检验结果信息。
在可选的示例中,在本发明的SSL VPN安全认证网关服务合规性检测方法的实现过程中,对于主要的抓包文件分析处理以及SSL协议的解析,被部署在服务器后端完成,对于证书的解析和检验的处理可部署在前端处理,而没有放在后端处理后进行响应,一是考虑未来该方法部署的继续完善优化,可作为服务端对外提供服务,部分计算放置于前端可减轻后端服务器压力,二是对证书数据的解析,最终需要展示在页面中,通过js代码可以更好的操作html进行可视化处理,提高代码编写效率。
结合图1、图3、5所示,结合本发明实施例的基于主动扫描的SSL VPN安全认证网关服务合规性检测方法,其实现过程包括以下步骤:
选择执行的合规性检测模式,包括主动式扫描的在线检测模式以及离线分析模式;
响应于选择的在线检测模式,使用SSLyze检测工具遍历扫描VPN服务器的SSL配置信息,获得VPN服务器所支持SSL/TLS协议检测结果,并且使用TaSSL工具对国密TLS协议进行检测,包括对ECC-SM4-SM3、ECDHE-SM4-SM3、ECC_SM4_GCM_SM3及ECDHE_SM4_GCM_SM3四种国密相关的密码算法套件的检测;
响应于选择的离线分析模式,通过构建配置不同TLS/SSL协议及国密TLS协议的http访问请求,与SSL服务端通信,抓包获得通信过程中返回的网络数据包;然后对网络数据包进行TCP分段数据重组获得完整的SSL数据包的基础上,解析识别所述SSL数据包以进行TLS/SSL协议的识别以及国密TLS协议的识别,获得SSL协议和TLS协议类型以及证书值,以及国密密码算法套件;
对于所述在线检测以及离线分析的检测结果进行检验,校验证书链和证书有效期。
作为可选的实施方式,通过构建配置不同TLS/SSL协议及国密TLS协议的http访问请求,与SSL服务端通信,抓包获得通信过程中返回的网络数据包,包括:
根据国际SSL协议、TLS协议以及国密TLS协议,利用TaSSL工具分别依次选择不同的协议版本和算法套件构建http访问请求,并分别发送连接请求,与SSL服务端进行连接测试;
对于每一个协议版本和算法套件的连接测试,依次测试并记录连接成功与否结果;
其中,所述SSL协议的协议版本至少包括SSL2.0与SSL3.0;
所述TLS协议的协议版本至少包括TLS1.0、TLS1.1、TLS1.2以及TLS1.3;
所述国密TLS协议的密码套件至少包括符合GB/T38636-2020规范的ECC-SM4-SM3、ECC_SM4_GCM_SM3、ECDHE-SM4-SM3、ECDHE_SM4_GCM_SM3四种国密相关的密码套件以及符合RFC8998规范的TLS_SM4_GCM_SM3密码套件。
作为可选的实施方式,前述对网络数据包进行TCP分段数据重组获得完整的SSL数据包的基础上,解析识别所述SSL数据包以进行TLS/SSL协议的识别以及国密TLS协议的识别,获得SSL协议和TLS协议类型以及证书值,以及国密密码算法套件,包括:抓取http访问请求与SSL服务端通信过程中返回的pcapng数据包;
使用dpkt解包工具将pcapng数据包数据分层提取;
对分层提取获得的分段报文数据按照报文的tcpack号进行分组重组,存储到一列表结构list中;
对所述列表结构list进行遍历,对报文按照tcpack号分组后的抓包数据进行查重处理,得到完整的SSL数据包;以及
使用dpkt.SSL模块对所述SSL数据包进行识别,获得TLS/SSL协议的识别以及国密TLS协议的识别结果。
作为可选的实施方式,使用dpkt.SSL模块识别国密TLS协议的过程,包括:
通过tcp层提取tcpdata字节流数据;
提取头部协议号信息“0x0101”;
基于国密TLS协议对标的国际TLS1.1协议,将头部协议号修改成“0x0301”;以及
对于修改头部协议号后的SSL数据包通过dpkt.SSL模块继续解包进行后续数值的提取和获得国密证书值。
作为可选的实施方式,前述对分层提取获得的分段报文数据按照报文的tcpack号进行分组重组,存储到一列表结构list中,包括:
基于tcpack号的唯一性,分段后的报文的tcpack是相同的,标识为同一组tcp报文;利用python字典数据结构,key值为tcpack号,value值存储提取当前tcpack号的tcpdata,按照抓包文件的时间顺序进行排列,将以上key值与value值作为字典值存入列表结构list。
作为可选的实施方式,前述对所述列表结构list进行遍历,对报文按照tcpack号分组后的抓包数据进行查重处理,得到完整的SSL数据包,包括:
对所述列表结构list进行遍历,提取单条tcpack报文字典,字典的key值存入新建的ack集合结构中,利用集合结构的元素不可重复特性,用于判断当前tcpack报文字典是否已处理,每次对列表结构list中的单条tcpack报文处理前,均需要对字典key值进行判断比对ack集合是否存在:
如果不存在,将tcpack报文字典的value值写入新的ack字典,其key值仍为ack号,value为tcpdata;如果存在,将tcpack报文字典的value值拼接入ack字典对应key值的value值内;
通过遍历列表结构list,直至所有的tcpack报文字典遍历处理完成,获得查重重组后的报文数据,即完整的SSL数据包。
其中,作为可选的实施方式,对在线检测以及离线分析的检测结果进行检验,校验证书链和证书有效期,包括:
接收在线检测以及离线分析获取到的证书值信息;
基于Jsrsasign密码工具库的X509类相关函数,对加密算法的证书解析和校验,校验证书链和证书有效期;其中对于SM2加密算法中的证书的解析和校验,由于原生Jsrsasign密码工具库提取出的证书公钥格式不符合标准定义,参照GM/T0003-2012《SM2椭圆曲线公钥密码算法》标准,对提取后的十六进制公钥值的字符串首部添加“04”标识,生成正确的公钥值;通过修改后的公钥值对证书签名域内容摘要进行验签,使用根证书的公钥值验证获取到的SM2算法证书内容,实现对证书链的校验。
在证书信息的展示上,通过翻译OID信息的内容,以将证书信息展现在前端的WEB交互界面中。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。
Claims (15)
1. 一种基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,其特征在于,包括:
检测模式选择模块,被设置用于选择执行的合规性检测模式,包括主动式扫描的在线检测模式以及离线分析模式;
在线检测模块,被设置成通过主动式遍历扫描方式,分析连接的VPN服务器的SSL配置信息,获得对VPN服务器所配置的SSL/TLS协议的检测结果,以及对国密TLS协议进行主动式遍历扫描,获得国密TLS协议相应的密码算法套件的检测结果;
离线分析模块,被设置用于执行下述过程以获得SSL协议和TLS协议类型以及证书值,以及国密密码算法套件:构建http访问请求,该http访问请求与SSL服务端通信过程中,通过抓包获得网络数据包;再对网络数据包进行TCP分段数据重组,获得完整的SSL数据包;以完整的SSL数据包为基础,解析识别SSL数据包以进行TLS/SSL协议的识别以及国密TLS协议的识别;
校验模块,被设置成用于对所述在线检测模块以及离线分析模块的检测结果进行检验,校验证书链和证书有效期;
其中,所述离线分析模块,包括:
请求构建与响应模块,被设置用于根据国际与国密网络安全协议,分别选择不同协议版本构建http访问请求,与SSL服务端建立连接,以及接收所述SSL服务端响应请求返回的网络数据包,并对网络数据包进行TCP分段数据重组,获得完整的SSL数据包;
第二SSL/TLS协议检测模块,被设置成使用Python的dpkt.SSL模块识别所述SSL数据包,获得SSL协议和TLS协议类型以及证书值;
第二国密TLS协议检测模块,被设置成以所述SSL数据包为基础,通过tcp层提取tcpdata字节流数据并修改预定协议号为与对标国际TLS协议对应的头部协议号,并通过dpkt.SSL模块继续解析提取后续数值和国密证书值;根据预设的规则匹配校验文件,将提取的二进制值转义成对应的国密密码算法套件名称,完成国密密码算法套件值的识别。
2.根据权利要求1所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,其特征在于,所述在线检测模块,包括:
第一SSL/TLS协议检测模块,被设置成基于SSLyze检测工具遍历扫描VPN服务器的SSL配置信息,获得VPN服务器所支持SSL/TLS协议检测结果;
第一国密TLS协议检测模块,被设置成基于TaSSL工具对国密TLS协议进行检测,包括对ECC-SM4-SM3、ECDHE-SM4-SM3、ECC_SM4_GCM_SM3及ECDHE_SM4_GCM_SM3四种国密相关的密码算法套件的检测。
3.根据权利要求1所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,其特征在于,所述请求构建与响应模块包括请求构建与连接测试模块,被设置成按照下述方式进行连接测试:
根据国际SSL协议、TLS协议以及国密TLS协议,利用TaSSL工具分别依次选择不同的协议版本和算法套件构建http访问请求,并分别发送连接请求,与SSL服务端进行连接测试;
对于每一个协议版本和算法套件的连接测试,依次测试并记录连接成功与否结果;
其中,所述SSL协议的协议版本至少包括SSL2.0与SSL3.0;
所述TLS协议的协议版本至少包括TLS1.0、TLS1.1、TLS1.2以及TLS1.3;
所述国密TLS协议的密码套件至少包括符合GB/T 38636-2020规范的ECC-SM4-SM3、ECC_SM4_GCM_SM3、ECDHE-SM4-SM3、ECDHE_SM4_GCM_SM3四种国密相关的密码套件以及符合RFC 8998规范的TLS_SM4_GCM_SM3密码套件。
4.根据权利要求1所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,其特征在于,所述请求构建与响应模块包括抓包模块、分层提取模块、分段数据重组模块以及数据查重模块,其中:
所述抓包模块,用于抓取http访问请求与SSL服务端通信过程中返回的pcapng数据包;
所述分层提取模块,用于使用dpkt解包工具将pcapng数据包数据分层提取;
所述分段数据重组模块,用于对分层提取获得的分段报文数据按照报文的tcp ack号进行分组重组,存储到一列表结构list中;
所述数据查重模块,用于对所述列表结构list进行遍历,对报文按照tcp ack号分组后的抓包数据进行查重处理,得到完整的SSL数据包。
5.根据权利要求4所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,其特征在于,所述分段数据重组模块,被设置成按照以下过程对分层提取获得的报文数据按照tcp ack号进行分组重组,存储到一列表结构list中:
基于tcp ack号的唯一性,分段后的报文的tcp ack是相同的,标识为同一组tcp报文;
利用Python字典数据结构,key值为tcp ack号,value值存储提取当前tcp ack号的tcpdata,按照抓包文件的时间顺序进行排列,将以上key值与value值作为字典值存入列表结构List。
6.根据权利要求4所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,其特征在于,所述数据查重模块,被设置成按照以下过程对所述列表结构list进行遍历,对报文按照tcp ack号分组后的抓包数据进行查重处理,得到完整的SSL数据包:
对所述列表结构list进行遍历,提取单条tcp ack报文字典,字典的key值存入新建的ack集合结构中,利用集合结构的元素不可重复特性,用于判断当前tcp ack报文字典是否已处理,每次对列表结构list中的单条tcp ack报文处理前,均需要对字典key值进行判断比对ack集合是否存在:
如果不存在,将tcp ack报文字典的value值写入新的ack字典,其key值仍为ack号,value为tcpdata;如果存在,将tcp ack报文字典的value值拼接入ack字典对应key值的value值内;
通过遍历列表结构list,直至所有的tcp ack报文字典遍历处理完成,获得查重重组后的报文数据,即完整的SSL数据包。
7.根据权利要求1所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,其特征在于,所述第二国密TLS协议检测模块中,以所述SSL数据包为基础,通过tcp层提取tcpdata字节流数据并修改预定协议号为与对标国际TLS协议对应的头部协议号,并通过dpkt.SSL模块继续解析提取后续数值和国密证书值,包括:
通过tcp层提取tcpdata字节流数据;
提取头部协议号信息“0x0101”;
基于国密TLS协议对标的国际TLS1.1协议,将头部协议号修改成“0x0301”;以及
对于修改头部协议号后的SSL数据包通过dpkt.SSL模块继续解包进行后续数值的提取。
8.根据权利要求1所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,其特征在于,所述校验模块,被设置成按照以下过程校验证书链和证书有效期:
接收在线检测模块以及离线分析模块获取到的证书值信息;
基于Jsrsasign密码工具库的X509类相关函数,对加密算法的证书解析和校验,校验证书链和证书有效期;其中对于SM2加密算法中的证书的解析和校验,由于原生Jsrsasign密码工具库提取出的证书公钥格式不符合标准定义,参照GM/T 0003-2012《SM2椭圆曲线公钥密码算法》标准,对提取后的十六进制公钥值的字符串首部添加“04”标识,生成正确的公钥值;通过修改后的公钥值对证书签名域内容摘要进行验签,使用根证书的公钥值验证获取到的SM2算法证书内容,实现对证书链的校验;
最后,翻译OID信息的内容,以将证书信息展现在前端页面中。
9.根据权利要求1-8中任意一项所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测系统,其特征在于,所述合规性检测系统还包括前端交互与显示界面,用以输入测试参数信息,以及可视化表征协议解析结果、证书检验结果信息。
10.一种基于主动扫描的SSL VPN安全认证网关服务合规性检测方法,其特征在于,包括:
选择执行的合规性检测模式,包括主动式扫描的在线检测模式以及离线分析模式;
响应于选择的在线检测模式,使用SSLyze检测工具遍历扫描VPN服务器的SSL配置信息,获得VPN服务器所支持SSL/TLS协议检测结果,并且使用TaSSL工具对国密TLS协议进行检测,包括对ECC-SM4-SM3、ECDHE-SM4-SM3、ECC_SM4_GCM_SM3及ECDHE_SM4_GCM_SM3四种国密相关的密码算法套件的检测;
响应于选择的离线分析模式,通过构建配置不同TLS/SSL协议及国密TLS协议的http访问请求,与SSL服务端通信,抓包获得通信过程中返回的网络数据包;然后对网络数据包进行TCP分段数据重组获得完整的SSL数据包的基础上,解析识别所述SSL数据包以进行TLS/SSL协议的识别以及国密TLS协议的识别,获得SSL协议和TLS协议类型以及证书值,以及国密密码算法套件;
对于所述在线检测以及离线分析的检测结果进行检验,校验证书链和证书有效期;
其中,所述对网络数据包进行TCP分段数据重组获得完整的SSL数据包的基础上,解析识别所述SSL数据包以进行TLS/SSL协议的识别以及国密TLS协议的识别,获得SSL协议和TLS协议类型以及证书值,以及国密密码算法套件,包括:
抓取http访问请求与SSL服务端通信过程中返回的pcapng数据包;
使用dpkt解包工具将pcapng数据包数据分层提取;
对分层提取获得的分段报文数据按照报文的tcp ack号进行分组重组,存储到一列表结构list中;
对所述列表结构list进行遍历,对报文按照tcp ack号分组后的抓包数据进行查重处理,得到完整的SSL数据包;以及
使用dpkt.SSL模块对所述SSL数据包进行识别,获得TLS/SSL协议的识别以及国密TLS协议的识别结果。
11.根据权利要求10所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测方法,其特征在于,所述通过构建配置不同TLS/SSL协议及国密TLS协议的http访问请求,与SSL服务端通信,抓包获得通信过程中返回的网络数据包,包括:
根据国际SSL协议、TLS协议以及国密TLS协议,利用TaSSL工具分别依次选择不同的协议版本和算法套件构建http访问请求,并分别发送连接请求,与SSL服务端进行连接测试;
对于每一个协议版本和算法套件的连接测试,依次测试并记录连接成功与否结果;
其中,所述SSL协议的协议版本至少包括SSL2.0与SSL3.0;
所述TLS协议的协议版本至少包括TLS1.0、TLS1.1、TLS1.2以及TLS1.3;
所述国密TLS协议的密码套件至少包括符合GB/T 38636-2020规范的ECC-SM4-SM3、ECC_SM4_GCM_SM3、ECDHE-SM4-SM3、ECDHE_SM4_GCM_SM3四种国密相关的密码套件以及符合RFC 8998规范的TLS_SM4_GCM_SM3密码套件。
12.根据权利要求11所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测方法,其特征在于,使用dpkt.SSL模块识别国密TLS协议的过程,包括:
通过tcp层提取tcpdata字节流数据;
提取头部协议号信息“0x0101”;
基于国密TLS协议对标的国际TLS1.1协议,将头部协议号修改成“0x0301”;以及
对于修改头部协议号后的SSL数据包通过dpkt.SSL模块继续解包进行后续数值的提取和获得国密证书值。
13.根据权利要求10所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测方法,其特征在于,所述对分层提取获得的分段报文数据按照报文的tcp ack号进行分组重组,存储到一列表结构list中,包括:
基于tcp ack号的唯一性,分段后的报文的tcp ack是相同的,标识为同一组tcp报文;
利用Python字典数据结构,key值为tcp ack号,value值存储提取当前tcp ack号的tcpdata,按照抓包文件的时间顺序进行排列,将以上key值与value值作为字典值存入列表结构list。
14.根据权利要求13所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测方法,其特征在于,所述对所述列表结构list进行遍历,对报文按照tcp ack号分组后的抓包数据进行查重处理,得到完整的SSL数据包,包括:
对所述列表结构list进行遍历,提取单条tcp ack报文字典,字典的key值存入新建的ack集合结构中,利用集合结构的元素不可重复特性,用于判断当前tcp ack报文字典是否已处理,每次对列表结构list中的单条tcp ack报文处理前,均需要对字典key值进行判断比对ack集合是否存在:
如果不存在,将tcp ack报文字典的value值写入新的ack字典,其key值仍为ack号,value为tcpdata;如果存在,将tcp ack报文字典的value值拼接入ack字典对应key值的value值内;
通过遍历列表结构list,直至所有的tcp ack报文字典遍历处理完成,获得查重重组后的报文数据,即完整的SSL数据包。
15.根据权利要求10所述的基于主动扫描的SSL VPN安全认证网关服务合规性检测方法,其特征在于,所述对在线检测以及离线分析的检测结果进行检验,校验证书链和证书有效期,包括:
接收在线检测以及离线分析获取到的证书值信息;
基于Jsrsasign密码工具库的X509类相关函数,对加密算法的证书解析和校验,校验证书链和证书有效期;其中对于SM2加密算法中的证书的解析和校验,由于原生Jsrsasign密码工具库提取出的证书公钥格式不符合标准定义,参照GM/T 0003-2012《SM2椭圆曲线公钥密码算法》标准,对提取后的十六进制公钥值的字符串首部添加“04”标识,生成正确的公钥值;通过修改后的公钥值对证书签名域内容摘要进行验签,使用根证书的公钥值验证获取到的SM2算法证书内容,实现对证书链的校验;
最后,翻译OID信息的内容,以将证书信息展现在前端页面中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310591296.8A CN116346688B (zh) | 2023-05-24 | 2023-05-24 | Ssl vpn安全认证网关服务合规性检测系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310591296.8A CN116346688B (zh) | 2023-05-24 | 2023-05-24 | Ssl vpn安全认证网关服务合规性检测系统与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116346688A CN116346688A (zh) | 2023-06-27 |
CN116346688B true CN116346688B (zh) | 2023-08-04 |
Family
ID=86889763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310591296.8A Active CN116346688B (zh) | 2023-05-24 | 2023-05-24 | Ssl vpn安全认证网关服务合规性检测系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116346688B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117749413A (zh) * | 2023-11-15 | 2024-03-22 | 中金金融认证中心有限公司 | 基于tlcp商密协议的安全通信方法及安全通信系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765430A (zh) * | 2019-10-31 | 2020-02-07 | 湖南恒成信息技术有限公司 | 银行数据处理系统 |
CN113162947A (zh) * | 2021-05-11 | 2021-07-23 | 北京创原天地科技有限公司 | 一种传感器网络密码安全协议测试系统及方法 |
CN115174104A (zh) * | 2022-06-28 | 2022-10-11 | 福建师范大学 | 基于商密sm9的属性基在线/离线签名方法与系统 |
CN115396240A (zh) * | 2022-10-28 | 2022-11-25 | 豪符密码检测技术(成都)有限责任公司 | 一种国密ssl协议诱探及检测方法、系统和存储介质 |
CN115587351A (zh) * | 2021-07-06 | 2023-01-10 | 中国电信股份有限公司 | 在静态代码扫描中进行密码安全检测的方法、装置和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201010546D0 (en) * | 2010-06-23 | 2010-08-11 | Applied Neural Technologies Ltd | Method of indentity verification |
US11588617B2 (en) * | 2020-11-01 | 2023-02-21 | The Toronto-Dominion Bank | Validating confidential data using homomorphic computations |
-
2023
- 2023-05-24 CN CN202310591296.8A patent/CN116346688B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110765430A (zh) * | 2019-10-31 | 2020-02-07 | 湖南恒成信息技术有限公司 | 银行数据处理系统 |
CN113162947A (zh) * | 2021-05-11 | 2021-07-23 | 北京创原天地科技有限公司 | 一种传感器网络密码安全协议测试系统及方法 |
CN115587351A (zh) * | 2021-07-06 | 2023-01-10 | 中国电信股份有限公司 | 在静态代码扫描中进行密码安全检测的方法、装置和存储介质 |
CN115174104A (zh) * | 2022-06-28 | 2022-10-11 | 福建师范大学 | 基于商密sm9的属性基在线/离线签名方法与系统 |
CN115396240A (zh) * | 2022-10-28 | 2022-11-25 | 豪符密码检测技术(成都)有限责任公司 | 一种国密ssl协议诱探及检测方法、系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116346688A (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112822167B (zh) | 异常tls加密流量检测方法与系统 | |
CN116346688B (zh) | Ssl vpn安全认证网关服务合规性检测系统与方法 | |
CN106603507A (zh) | 一种自动化完成网络安全自检的方法及系统 | |
CN112152795B (zh) | 基于状态机一致性检测的安全协议代码脆弱性挖掘方法 | |
CN108989296A (zh) | 一种物联网系统安全综合评估系统及方法 | |
CN111783096A (zh) | 检测安全漏洞的方法和装置 | |
CN112651029B (zh) | 应用系统漏洞的检测系统、方法、存储介质及电子设备 | |
CN115396240B (zh) | 一种国密ssl协议诱探及检测方法、系统和存储介质 | |
CN113987543A (zh) | 一种在线数据监测方法以及装置 | |
CN113315767A (zh) | 一种电力物联网设备安全检测系统及方法 | |
CN114401097B (zh) | 一种基于ssl证书指纹的https业务流量识别的方法 | |
CN118368080A (zh) | 企业隐私分析与异常发现方法、装置、设备和存储介质 | |
CN114465710A (zh) | 一种基于流量的漏洞检测方法、装置、设备及存储介质 | |
van De Wiel et al. | Enabling non-expert analysis of large volumes of intercepted network traffic | |
CN107360062B (zh) | Dpi设备识别结果的验证方法、系统及dpi设备 | |
Mendes et al. | Validating and securing DLMS/COSEM implementations with the ValiDLMS framework | |
CN115604037B (zh) | 一种故障监测系统的通信安全测试方法 | |
CN116723238A (zh) | 一种基于中间人代理的api加密流量采集与标注方法 | |
CN114567469B (zh) | 基于b/s模式下的应用密码类型检测方法及平台 | |
CN113162947A (zh) | 一种传感器网络密码安全协议测试系统及方法 | |
CN116614276A (zh) | Ssl vpn安全认证网关服务合规性检测系统、方法与计算机可读存储介质 | |
CN114579961A (zh) | 基于多行业检测规则的敏感数据识别方法及相关装置 | |
CN114139192A (zh) | 加密流量处理方法、装置、电子设备、介质及程序 | |
La et al. | A Framework for Security Monitoring of Real IoT Testbeds. | |
Wannigama et al. | Unveiling Behavioral Transparency of Protocols Communicated by IoT Networked Assets (Full Version) |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 210000 12 / F, building 5, juhuiyuan, phase II, Xuzhuang Software Park, 108 Xuanwu Avenue, Xuanwu District, Nanjing City, Jiangsu Province Patentee after: Jindun Testing Technology Co.,Ltd. Country or region after: China Address before: 12th Floor, Building 5, Juhuiyuan, No. 108 Xuanwu Avenue, Nanjing, Jiangsu Province, 210042 Patentee before: Jiangsu Jindun Testing Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |