CN113852620B - 基于模型学习的安全协议主机名验证模块脆弱性分析方法 - Google Patents

基于模型学习的安全协议主机名验证模块脆弱性分析方法 Download PDF

Info

Publication number
CN113852620B
CN113852620B CN202111108318.8A CN202111108318A CN113852620B CN 113852620 B CN113852620 B CN 113852620B CN 202111108318 A CN202111108318 A CN 202111108318A CN 113852620 B CN113852620 B CN 113852620B
Authority
CN
China
Prior art keywords
state machine
model
host name
verification module
machine model
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
Application number
CN202111108318.8A
Other languages
English (en)
Other versions
CN113852620A (zh
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.)
Information Engineering University of PLA Strategic Support Force
Original Assignee
Information Engineering University of PLA Strategic Support Force
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 Information Engineering University of PLA Strategic Support Force filed Critical Information Engineering University of PLA Strategic Support Force
Priority to CN202111108318.8A priority Critical patent/CN113852620B/zh
Publication of CN113852620A publication Critical patent/CN113852620A/zh
Application granted granted Critical
Publication of CN113852620B publication Critical patent/CN113852620B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于模型学习的安全协议主机名验证模块脆弱性分析方法,属于网络信息安全技术领域。方法包括:获取待检测的主机名验证模块;利用模型学习引擎模块输出状态机模型,所述模型学习引擎模块包括成员资格查询算法和等价检测算法;通过状态机模型分析模块中的规范对输出的状态机模型进行漏洞的检测,判断状态机模型是否存在违规行为或者缺陷,以进行脆弱性分析。本发明通过模型学习技术有效的推断出与给定证书主机名匹配的所有主机名集合的状态机模型,进而通过分析状态机模型找出主机名验证模块的实现问题,完成对主机名验证模块的脆弱性分析。

Description

基于模型学习的安全协议主机名验证模块脆弱性分析方法
技术领域
本发明涉及一种基于模型学习的安全协议主机名验证模块脆弱性分析方法,属于网络信息安全技术领域。
背景技术
伴随着网络通信技术的快速发展,互联网产业不断升级,互联网产品和服务逐渐成为人们生产生活的重要组成部分。然而,在相关技术不断完善的同时,数据泄露、高危漏洞、网络攻击等网络安全问题也在时刻挑战公民隐私、影响社会稳定甚至危害国家安全。由于社会对网络的依赖性不断提高,如何保障通信安全成为一个急需解决的重要难题。
在网络通信安全中,通过数字证书对用户身份进行验证是目前极为常见的方法。数字证书是一种公钥密码算法的应用,由可信第三方提供证书的颁发,通信中的一方使用自己的私钥对消息进行签名,另一方使用相应的公钥对消息进行验证。在对数字证书验证的相关分析工作中,大多都是对数字证书进行对抗性测试:通过攻击者进行攻击,测试数字证书是否能够抵挡攻击者的进攻,在没有抵挡攻击的情况下,分析数字证书的漏洞。然而这种对抗性测试需要各种不同类型的攻击者,导致测试的盲目性较大,并且如果存在没有抵挡攻击的多个攻击者的情况下,分析数字证书漏洞的效率低。因此,需要对数字证书进行针对性的分析。
在证书认证的过程中,有一个非常关键的环节——主机名验证,主机名验证通过检查通信对象的主机名是否与身份证书中存在的名称相匹配,来验证远程目标的身份标识。由于关系到身份认证的有效性,主机名匹配的任何缺陷都有可能带来安全隐患。由于存在很多特殊情况,主机名验证是一个极其复杂的过程,在匹配中不仅要考虑多种身份类型(IP、DN、FQDN等),还要考虑公用名备用名匹配顺序、通配符、空字节等问题。因此采用安全协议主机名验证模块专门对主机名进行验证,并且在安全协议主机名验证模块投入验证前需要进行脆弱性分析。
为此,本申请提出一种安全协议主机名验证模块脆弱性分析方法的技术方案。
发明内容
本申请的目的在于提供一种基于模型学习的安全协议主机名验证模块脆弱性分析方法,为主机名验证模块的脆弱性分析提出一种行之有效的技术方案。
为实现上述目的,本申请提出了一种基于模型学习的安全协议主机名验证模块脆弱性分析方法的技术方案,基于模型学习的安全协议主机名验证模块脆弱性分析方法包括以下步骤:
1)获取待检测的主机名验证模块,主机名验证模块中存储有若干数字证书模板,每个数字证书模板中均存储有相应的验证算法的主机名匹配规则;
2)利用模型学习引擎模块输出与给定证书主题名匹配的所有主机名集合的状态机模型,所述模型学习引擎模块包括成员资格查询算法和等价检测算法,输出状态机模型的过程为:
通过成员资格查询算法进行若干轮查询后输出模型假设;每轮查询过程中,按照成员资格查询算法生成字符串,将生成的字符串输入待检测的主机名验证模块中并接收待检测的主机名验证模块输出的匹配结果;
通过等价检测算法验证模型假设是否与真实的主机名验证实现等价,若等价,则将模型假设作为状态机模型输出;若不等价,则再次通过成员资格查询算法输出模型假设,直至等价输出状态机模型;
3)通过状态机模型分析模块中的规范对输出的状态机模型进行漏洞的检测,判断状态机模型是否存在违规行为或者缺陷,以进行脆弱性分析。
本发明的基于模型学习的安全协议主机名验证模块脆弱性分析方法的技术方案的有益效果是:本发明通过模型学习技术有效的推断出与给定证书主机名匹配的所有主机名集合的状态机模型,进而通过分析状态机模型找出主机名验证模块的实现问题,完成对主机名验证模块的脆弱性分析。
进一步的,步骤1)中建立的待检测的主机名验证模块包括第一主机名验证模块和第二主机名验证模块,第一主机名验证模块和第二主机名验证模块为同一协议的不同实现的两个验证模块,进而步骤2)中输出对应的第一状态机模型和第二状态机模型,步骤3)中对第一状态机模型和第二状态机模型中的差异路径采用规范进行漏洞的检测,第一状态机模型和第二状态机模型为同一数字证书模板下的两个模型。
进一步的,根据Python-Dfa_diff库找出第一状态机模型和第二状态机模型中的差异路径。
进一步的,所述状态机模型为确定性有限状态机模型。
进一步的,所述步骤2)中,成员资格查询算法包括L*算法、L*M算法、KV算法、TTT算法。
进一步的,所述步骤2)中,等价检测算法包括Wp算法、或者Lee&Yannakakis算法。
附图说明
图1是本发明基于模型学习的安全协议主机名验证模块脆弱性分析方法的系统框图;
图2是本发明基于模型学习的安全协议主机名验证模块脆弱性分析方法的流程图;
图3a是本发明基于IPsec实现的Strongswan主机名验证模块中对包含"C=CH,CN=a.a.a"证书ID_DER_ASN1_DN类型ID下的匹配模型;
图3b是本发明基于IPsec实现的Libreswan主机名验证模块中对包含"C=CH,CN=a.a.a"证书ID_DER_ASN1_DN类型ID下的匹配模型;
图4a是本发明基于IPsec实现的Strongswan主机名验证模块中对包含"C=CH,CN=a.a.a"证书ID_FQDN类型ID下的匹配模型;
图4b是本发明基于IPsec实现的Libreswan主机名验证模块中对包含"C=CH,CN=a.a.a"证书ID_FQDN类型ID下的匹配模型;
图5是本发明利用不区分大小写的缺陷向Strongswan主机名验证模块发起身份仿冒攻击示意图;
图6是本发明利用允许通配符证书匹配的缺陷向Libreswan主机名验证模块发起中间人攻击示意图。
具体实施方式
基于模型学习的安全协议主机名验证模块脆弱性分析方法实施例:
本发明的主要构思在于,基于主机名验证本质上属于一种字符串匹配的问题,并且与复杂条件下的正则表达式匹配非常相似,对于给定证书的主题名,与之匹配的所有主机名可以看作是一个特定的常规语言系或匹配集合。因此,本发明利用成员资格查询算法和等价检测算法,采用模型学习技术有效的推断出与某个数字证书主题名匹配的所有主机名集合的确定性有限状态机(DFA)模型,进而通过分析状态机模型找出主机名验证模块的实现问题。
基于模型学习的安全协议主机名验证模块脆弱性分析方法基于如图1所示的系统,包括待检测的主机名验证模块、模型学习引擎模块以及状态机模型分析模块,通过模型学习引擎模块以及状态机模型分析模块对主机名验证模块的验证实现功能进行脆弱性分析。在具体的实施中,利用Learnlib、OpenSSL、Python-Dfa_diff库等工具辅助完成测试。
具体的,脆弱性分析方法包括以下步骤:
1)建立待检测的主机名验证模块,主机名验证模块中存储有若干数字证书模板。
本步骤中,主机名验证模块是基于目标安全协议建立的。为了测试主机名验证中所有不同的规则,主机名验证模块中创建有具有不同标识符内容的数字证书模版,用于涵盖相关协议规范中的指定的主机名匹配规则。例如,具有通用主题名称"CN=*.a.a"的证书可以测试主机名验证模块对包含通配符字符串的处理情况。所需的数字证书模板由OpenSSL库生成,它能够便于我们生成各种CN标签以及不同类型SAN标签的X.509证书。
2)通过模型学习引擎模块推断出与给定证书主题名匹配的所有主机名集合的确定性有限状态机模型,并将推断出的确定性有限状态机模型输出至状态机模型分析模块。
本步骤中,模型学习引擎模块存储有成员资格查询算法和等价检测算法(即等价查询算法),其中成员资格查询算法包括L*算法、L*M算法、KV算法、TTT算法,等价检测算法包括Wp算法、或者Lee&Yannakakis算法。基于Learnlib库实现了模型学习引擎模块,进而实现状态机模型的推断,当然模型学习引擎模块的实现库还可以为RALib、TOMTE等其他库。
具体的,模型学习引擎模块的工作过程为:
a.基于MAT学习框架,成员资格查询算法根据事先设定的输入字母表,进行若干轮查询后输出模型假设,将模型假设提交至等价检测算法中;在这一阶段的每轮查询过程中,模型学习引擎模块按照成员资格查询算法的执行原理生成由字母表组合而成的用于查询的字符串序列,将生成的字符串序列输入待检测的主机名验证模块中,主机名验证模块接收到字符串序列后,将其与当前的证书模板中的主题名进行匹配测试,输出匹配结果至模型学习引擎模块(匹配结果包括接收或者拒绝),模型学习引擎模块接收并记录匹配结果:经过多轮查询,输出模型假设;
b.过等价检测算法验证模型假设是否与真实的主机名验证实现等价,若等价,则将模型假设作为确定性有限状态机模型输出;若不等价,则重复步骤a,再次通过成员资格查询算法输出模型假设,直至等价输出状态机模型。
步骤b中通过对模型假设进行验证完成对状态机模型的修正,一般情况下,等价检测算法判断是否等价的依据是针对不同情境指定相应的查询范围和阈值,假设在某个设定阈值下,若等价检测算法没有搜索出一个区分序列使得模型假设与真实的主机名验证实现表现出不一致的行为,则模型假设与真实的主机名验证实现等价,直接将模型假设作为确定性有限状态机模型输出;若搜索出区分序列,则等价检测算法将找到的区分序列作为反例,重复步骤a,再次通过成员资格查询算法输出模型假设,直至实现等价,找不出反例后输出状态机模型。
需要注意的是,由于是黑盒测试,并且只能执行有限数量的测试用例,因此只能对假设作近似的等价性检查。这样做的结果是,在某些情况下,得到的状态机可能只是目标系统行为的一个子集。
3)状态机模型分析模块将输出的确定性有限状态机模型对比相关规范,判断状态机模型是否存在违规行为或者缺陷,以进行脆弱性分析。
上述实施例中,待检测的主机名验证模块可以为1个,也可以为2个或者多个,如果只有1个待检测的主机名验证模块,那么步骤2)中输出的确定性有限状态机模型为1个,步骤3)中采用相关规范,对比确定性有限状态机模型中的所有路径,找出待检测的主机名验证模块的实现缺陷;如果有2个或者多个,那么步骤2)中输出的确定性有限状态机模型为2个或者多个,步骤3)中对2个或者多个模型进行差异或者异常路径的查找,进而采用相关规范,对比差异或者异常路径,找出这几个待检测的主机名验证模块的实现缺陷。
以下以2个待检测的主机名验证模块为例详细介绍脆弱性分析过程,如图2所示,脆弱性分析方法包括以下步骤:
1)建立2个待检测的主机名验证模块,分别为第一目标协议主机名验证模块和第二目标协议主机名验证模块;
2)通过模型学习引擎模块推断出与第一目标协议主机名验证模块中数字证书匹配的第一确定性有限状态机模型,同时通过模型学习引擎模块推断出与第二目标协议主机名验证模块中数字证书匹配的第二确定性有限状态机模型,并将推断出的第一确定性有限状态机模型和第二确定性有限状态机模型输出至状态机模型分析模块;
3)状态机模型分析模块将第一确定性有限状态机模型和第二确定性有限状态机模型进行对比分析,找出两个模型的差异路径或者异常路径,进而将差异路径对比相关规范,进行漏洞(也即实现缺陷)的检测,判断差异路径是否存在违规行为或者缺陷,以进行脆弱性分析。
差异路径的查找的前提是针对同一证书模板下同一协议的不同实现的主机名验证模块,也即第一目标协议主机名验证模块和第二目标协议主机名验证模块为同一协议的不同实现模块,并且为同一证书模板的匹配结果,进而依托Python-Dfa_diff库,逐一筛查状态路径,寻找出模型间的差异路径。
以下以IPsec协议的分析为例对本发明的脆弱性分析方法进行描述。
我们选择对两个最新版本的主流IPsec实现Strongswan 5.9.0和Libreswan 3.32进行测试,他们都实现了IPsec协议相应的主机名验证模块。
Strongswan是一个开源的IPsec实现,其最初基于FreeS/WAN项目,但之后经过完全重写,它是一个完整的基于IP的VPN解决方案,支持传统的IKEv1以及新的IKEv2密钥交换协议。Strongswan功能包括为VPN网关提供X.509证书混合模式、预共享密钥等多种身份验证方法,其中EAP也是认证方法之一(例如:基于sim卡的EAP-sim或移动环境中流行的EAP-aka方法)。此外,Strongswan还具有快速VPN连接设置、内建NAT遍历和死对等点检测、自动缩小子网范围等功能优势。
Libreswan同样是一款开源的IPsec实现,其基于FreeS/WAN代码库,并在此基础上进行了扩展,包含了一些额外功能,支持IPsec相关的大多数扩展(RFC+IETF草案),包括IKEv2,X.509数字证书,NAT遍历等。默认情况下,Libreswan使用本机Linux IPsec堆栈(NETKEY/XFRM)。
为了测试主机名验证中所有不同的规则,本发明创建了一组具有不同标识符内容的19个证书,用于涵盖IPsec协议相关规范中的特定规则。例如,具有通用名称"CN=*.a.a"的证书可以测试IPsec实现对ID_DER_ASN1_DN类型ID的匹配以及对通配符的处理情况。
此外,模型学习引擎模块需要创建一个便于测试的字母表,这个字母表将决定学习算法的查询序列由哪些字符组成。由于学习算法的开销依赖于字母表的大小,因此我们选择由一小组代表性字符组成我们的字母表。这里使用的字母表集合Σ={a,1,dot,\s,@,A,=,*,/,-,NULL},其中dot表示字符".",\s表示空格字符(ASCII值32),NULL表示零字节字符。这个字母表基本涵盖了不同类别的字符,生成主机名字符串,从而便于我们检测实现中可能出现的主机名检测异常。我们通过缩减字母表的规模,对展示的DFA模型进行了精简,仅保留了相应关键的部分。
状态机模型分析模块中创建了各种相关规范,例如:RFC4945、RFC7619,以对状态机模型进行分析找出实现问题。并且通过不同的主机名字符串发现了以下几种违规情形:
当主机名字符串为ID_DER_ASN1_DN类型ID,Strongswan和Libreswan为"C=CH,CN=*.a.a"数字证书,并且使用了精简的字母表Σ={a,dot,\s,A,*}时,得到如图3a、图3b的DFA模型,并且通过状态机模型分析模块得出违规情形(1):Strongswan和Libreswan空格字符处理不当;违规情形(2):Strongswan大小写区分不当,Libreswan能够正确执行区分大小写的匹配。
状态机模型分析模块关于如图3a、图3b的DFA模型分析如下:
双实圆圈表示能够匹配成功的状态,匹配的结果为"C=CH,CN="前缀级联每次累积的字符所组成的字符串,如图3a状态0到状态5的路径表示"C=CH,CN=(\s)*(\s)",从状态0、状态1、状态2、状态3、状态4到状态5的路径对应"C=CH,CN=(\s)a/A.a/A.a/A(\s)",可以看出ID类型为ID_DER_ASN1_DN类型(\s表示CN的内容允许包含空格前后缀,a/A表示字母字符不区分大小写)能够成功匹配包含"C=CH,CN=*.a.a"证书;
RFC4945指出在进行ID_DER_ASN1_DN类型的ID匹配时,实现必须能够基于ID中的整个DN与其在SPD中的条目的逐位比较来执行匹配,但也允许支持对ID(以任何组合)到SPD的任何受支持的DN属性执行子字符串、通配符或正则表达式匹配。根据实验结果,如图3的蓝色实线部分,我们发现Strongswan和Libreswan表现出一个具有争议的行为,即允许CN的内容包含空格前后缀。这一做法或许是为了方便用户对实现进行配置,但会影响ID匹配的正确性和安全性;
RFC4945指出在进行ID_DER_ASN1_DN类型的ID匹配时,必须能够执行严格的二进制匹配,但如图3a红色虚线部分所示,在对包含"C=CH,CN=a.a.a"数字证书的匹配中,Strongswan执行的是不区分大小写的匹配,而如图3b中Libreswan能够正确执行区分大小写的匹配。
当主机名字符串为ID_FQDN类型ID,Strongswan和Libreswan为"CN=*.a.a"数字证书,并且使用了精简的字母表Σ={a,dot,\s,@,A,*}时,得到如图4a、图4b的DFA模型,并且通过状态机模型分析模块得出违规情形(3):Strongswan和Libreswan不正确的通配符和子字符串匹配的问题。
状态机模型分析模块关于如图4a、图4b的DFA模型分析如下:
RFC4945中要求,使用ID_FQDN类型ID对备用名扩展中的dNSName字段进行比较时,子字符串、通配符或正则表达式并不适用于此比较,并且需要将不匹配视为错误。但是,如图4a红线部分所示,Strongswan中对ID_FQDN类型ID的匹配明显宽松很多,*、*a/A、*.a/A、*a/A.a/A和*.a/A.a/A等多种形式的字符串组合都可以成功匹配包含dNSName类型"a.a.a"SAN标识符的证书,而如图4b红线部分所示,Libreswan更是出现了允许通配符证书参与匹配的问题,即证书标签最左侧的通配符(且是唯一字符)可以匹配ID最左侧标签的任何内容。
当主机名字符串为ID_USER_FQDN类型ID时,通过状态机模型分析模块得出违规情形(4):Strongswan和Libreswan不正确的子字符串匹配。
分析如下:RFC4945指出,使用ID_USER_FQDN类型ID对备用名扩展中的rfc822Name字段进行比较时,子字符串、通配符或正则表达式并不适用于此比较,并且需要将不匹配视为错误。而在Strongswan中对电子邮件格式ID的匹配中,却允许如*a/A.a/A、*a/A、*@a/A.a/A多种形式的字符串组合成功匹配包含rfc822类型"a@a.a"标识符的证书。
当主机名字符串中嵌入NULL字节时,通过状态机模型分析模块得出违规情形(5):Strongswan和Libreswan不支持匹配嵌入NULL字节的证书。
分析如下:RFC7619中规范了NULL身份验证方法和ID_NULL标识有效负载,并对NULL格式的应用提出明确限制,但对于特殊的含有NULL字节证书,Strongswan和Libreswan在匹配时直接以抛出异常的形式结束匹配。
以上找出五种违规情形,并归纳为表一,表一中√=OK,×=违反RFC:
表一 Strongswan和Libreswan在测试中暴露的违规情形
以上前4种违规情形都可能带来绕过认证的风险,因为攻击者可以利用相应宽松的字符匹配伪造自己的身份信息,以尝试绕过主机名验证;而最后一种违规情形可能会影响到NULL身份类型的证书验证。
依据上述分析结果,本发明还进行了实际攻击测试,以验证在特定条件下,可以利用主机名匹配的缺陷,发起身份仿冒攻击和中间人攻击。
测试环境如下:
客户端和攻击者:Ubuntu 18.04 OS+Inter Core I5 8th Gen CPU+8GB RAM
服务器端:Ubuntu 18.04 OS+Intel Xeon E5-2680 v2 CPU+32GB RAM
在以下测试中,假定攻击者的公钥证书(具有可利用的主题内容)是合法CA签发的且拥有对应的私钥,此外,攻击者拥有监听、拦截、篡改合法用户消息的能力。针对Strongswan和Libreswan测试中暴露的问题,我们分别给出一个特定的攻击场景来说明能够达到的效果。
(1)IKEv1协议协商下的身份仿冒攻击,如图5所示,利用不区分大小写的缺陷向Strongswan发起身份仿冒攻击
在Strongswan中,配置文件(IPsec.conf或Strongswan.conf)提供了可供验证参与者身份的设置属性:left|rightid=<id>,并对其值的设置和解析进行了详细的说明。如图5攻击场景所示,服务器端配置文件设置了rightid="C=CH,O=strongSwan,CN=device1",表明了对通信另一端参与者身份的限制。然而,由于Strongswan存在不区分公用名大小写的缺陷,当攻击者拥有CA签发的主题名为"C=CH,O=strongSwan,CN=Device1"的合法证书时,便可发起身份仿冒攻击。
如图5所示,在IKEv1协商模式下,攻击者首先监听并拦截客户端的消息,并仿冒服务器与客户端进行正常的主模式协商,在收到客户端主动发出的第3个报文后,解密并解析其中的ID和证书信息,当判断可以达到漏洞利用的条件后,向服务器发起正常的IKEv1主模式协商,期间,在构造主模式第三个报文时,攻击者使用自己的私钥构造签名,构造伪造的ID载荷(ID_DER_ASN1_DN:C=CH,O=strongSwan,CN=device1),并发送主题名为"C=CH,O=strongSwan,CN=Device1"的公钥证书。在验证签名和证书链的正确性后,由于服务器存在不区分公用名大小写的缺陷,会认为攻击者证书与预设主机名匹配,从而顺利完成之后的协商和通信。至此,攻击者完成了身份仿冒,而服务器却完全觉察不到。
(2)IKEv2协议协商下的中间人攻击,如图6所示,利用允许通配符证书匹配的缺陷向Libreswan发起中间人攻击。
类似地,Libreswan也可以通过rightid=<id>属性对通信参与方身份进行限制。如图6所示,Libreswan客户端和服务器端分别设置了rightid="@server.org"和了rightid="@client.org",表明期望与相应的对象进行通信。然而,由于Libreswan存在处理ID_FQDN类型ID允许通配符匹配的缺陷,当攻击者拥有CA签发的备用名为"dns:*.a.a"的合法通配符证书后,可以实施中间人攻击。
如图6所示,在IKEv2协商模式下,攻击者首先监听并拦截客户端的消息,并仿冒服务器与客户端进行IKE INIT协商,同时,攻击者也与服务器端建立IKE INIT协商。之后,攻击者在双方的IKE AUTH协商中,攻击者使用自己的私钥构造签名,构造伪造的ID载荷(ID_FQDN:client.org和ID_FQDN:server.org),并发送包含"SAN dns:*.org"的公钥证书给双方。在收到敌手发出的报文后,客户端和服务器分别解密并解析其中的ID和证书信息,由于Libreswan存在处理ID_FQDN类型ID允许通配符匹配的缺陷,客户端和服务器会认为攻击者证书与预设主机名匹配,从而顺利完成之后的协商和通信。至此,攻击者完成了中间人攻击,而客户端和服务器却完全觉察不到。
本发明通过模型学习技术实现了主机名验证模块的脆弱性分析,提高了主机名验证模块的检测效率。

Claims (5)

1.一种基于模型学习的安全协议主机名验证模块脆弱性分析方法,其特征在于,包括以下步骤:
1)获取待检测的主机名验证模块,主机名验证模块中存储有若干数字证书模板,每个数字证书模板中均存储有相应的验证算法的主机名匹配规则;
2)利用模型学习引擎模块输出与给定证书主题名匹配的所有主机名集合的状态机模型,所述模型学习引擎模块包括成员资格查询算法和等价检测算法,输出状态机模型的过程为:
通过成员资格查询算法进行若干轮查询后输出模型假设;每轮查询过程中,按照成员资格查询算法生成字符串,将生成的字符串输入待检测的主机名验证模块中并接收待检测的主机名验证模块输出的匹配结果;
通过等价检测算法验证模型假设是否与真实的主机名验证实现等价,若等价,则将模型假设作为状态机模型输出;若不等价,则再次通过成员资格查询算法输出模型假设,直至等价输出状态机模型;
3)通过状态机模型分析模块中的规范对输出的状态机模型进行漏洞的检测,判断状态机模型是否存在违规行为或者缺陷,以进行脆弱性分析;
步骤1)中建立的待检测的主机名验证模块包括第一主机名验证模块和第二主机名验证模块,第一主机名验证模块和第二主机名验证模块为同一协议的不同实现的两个验证模块,进而步骤2)中输出对应的第一状态机模型和第二状态机模型,步骤3)中对第一状态机模型和第二状态机模型中的差异路径采用规范进行漏洞的检测,第一状态机模型和第二状态机模型为同一数字证书模板下的两个模型。
2.根据权利要求1所述的基于模型学习的安全协议主机名验证模块脆弱性分析方法,其特征在于,根据Python-Dfa_diff库找出第一状态机模型和第二状态机模型中的差异路径。
3.根据权利要求1所述的基于模型学习的安全协议主机名验证模块脆弱性分析方法,其特征在于,所述状态机模型为确定性有限状态机模型。
4.根据权利要求1所述的基于模型学习的安全协议主机名验证模块脆弱性分析方法,其特征在于,所述步骤2)中,成员资格查询算法包括L*算法、L*M算法、KV算法、TTT算法。
5.根据权利要求1所述的基于模型学习的安全协议主机名验证模块脆弱性分析方法,其特征在于,所述步骤2)中,等价检测算法包括Wp算法、或者Lee&Yannakakis算法。
CN202111108318.8A 2021-09-22 2021-09-22 基于模型学习的安全协议主机名验证模块脆弱性分析方法 Active CN113852620B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111108318.8A CN113852620B (zh) 2021-09-22 2021-09-22 基于模型学习的安全协议主机名验证模块脆弱性分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111108318.8A CN113852620B (zh) 2021-09-22 2021-09-22 基于模型学习的安全协议主机名验证模块脆弱性分析方法

Publications (2)

Publication Number Publication Date
CN113852620A CN113852620A (zh) 2021-12-28
CN113852620B true CN113852620B (zh) 2023-07-18

Family

ID=78974923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111108318.8A Active CN113852620B (zh) 2021-09-22 2021-09-22 基于模型学习的安全协议主机名验证模块脆弱性分析方法

Country Status (1)

Country Link
CN (1) CN113852620B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009427A (zh) * 2017-11-29 2018-05-08 北京安华金和科技有限公司 一种针对数据库漏洞规则的快速检索方法
CN109063490A (zh) * 2018-08-31 2018-12-21 北京梆梆安全科技有限公司 一种检测主机名漏洞的方法、装置及设备
CN110719300A (zh) * 2019-11-18 2020-01-21 支付宝(杭州)信息技术有限公司 一种自动化漏洞验证的方法和系统
CN111092775A (zh) * 2019-12-30 2020-05-01 河南省云迈瀚海电子科技有限公司 基于模型学习的网络协议安全测试评估方法
CN111931181A (zh) * 2020-07-07 2020-11-13 北京理工大学 基于图挖掘的软件逻辑漏洞检测方法
CN112152795A (zh) * 2020-08-11 2020-12-29 中国人民解放军战略支援部队信息工程大学 基于状态机一致性检测的安全协议代码脆弱性挖掘方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11425157B2 (en) * 2018-08-24 2022-08-23 California Institute Of Technology Model based methodology for translating high-level cyber threat descriptions into system-specific actionable defense tactics

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009427A (zh) * 2017-11-29 2018-05-08 北京安华金和科技有限公司 一种针对数据库漏洞规则的快速检索方法
CN109063490A (zh) * 2018-08-31 2018-12-21 北京梆梆安全科技有限公司 一种检测主机名漏洞的方法、装置及设备
CN110719300A (zh) * 2019-11-18 2020-01-21 支付宝(杭州)信息技术有限公司 一种自动化漏洞验证的方法和系统
CN111092775A (zh) * 2019-12-30 2020-05-01 河南省云迈瀚海电子科技有限公司 基于模型学习的网络协议安全测试评估方法
CN111931181A (zh) * 2020-07-07 2020-11-13 北京理工大学 基于图挖掘的软件逻辑漏洞检测方法
CN112152795A (zh) * 2020-08-11 2020-12-29 中国人民解放军战略支援部队信息工程大学 基于状态机一致性检测的安全协议代码脆弱性挖掘方法

Also Published As

Publication number Publication date
CN113852620A (zh) 2021-12-28

Similar Documents

Publication Publication Date Title
Bettayeb et al. Firmware update attacks and security for IoT devices: Survey
CN105450442B (zh) 一种网络拓扑排查方法及其系统
US20240089301A1 (en) Method and system for capture of visited links from encrypted and non-encrypted network traffic
Lu et al. Research on WiFi penetration testing with Kali Linux
CN109413010B (zh) 终端的认证方法、装置和系统
Lanze et al. Undesired relatives: protection mechanisms against the evil twin attack in IEEE 802.11
Zhang et al. Formal analysis of QUIC handshake protocol using symbolic model checking
CN107360125A (zh) 接入认证方法、无线接入点和用户终端
CN110971407A (zh) 基于量子秘钥的物联网安全网关通信方法
Alizai et al. Key-based cookie-less session management framework for application layer security
Kumar et al. Design of secure session key using unique addressing and identification scheme for smart home Internet of Things network
BR102020003105A2 (pt) Método para detecção de servidores dns falsificados usando técnicas de aprendizado de máquina
Xu et al. ME-Box: A reliable method to detect malicious encrypted traffic
Schmidbauer et al. Detection Of Computational Intensive Reversible Covert Channels Based On Packet Runtime.
Vondráček et al. Automated Man-in-the-Middle Attack Against Wi‑Fi Networks
CN113852620B (zh) 基于模型学习的安全协议主机名验证模块脆弱性分析方法
Guo et al. Automated State-Machine-Based Analysis of Hostname Verification in IPsec Implementations
Zhang et al. A systematic approach to formal analysis of QUIC handshake protocol using symbolic model checking
US12058274B2 (en) Method for detecting anomalies in SSL and/or TLS communications, corresponding device, and computer program product
Visoottiviseth et al. PITI: Protecting Internet of Things via Intrusion Detection System on Raspberry Pi
CN114117424A (zh) 一种安全协议程序的安全性检测方法
Gunawan et al. SSL/TLS vulnerability detection using black box approach
CN113765658A (zh) 分布式云计算架构中物联网设备的认证和密钥协商协议方法
Khurana et al. A systematic analysis on mobile application software vulnerabilities: Issues and challenges
Komu et al. Spin-based verification of authentication protocols in wimax networks

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