【技术实现步骤摘要】
RFC制导的SSL/TLS实现中数字证书验证模块的差异测试方法
本专利技术属于计算机软件分析
,尤其涉及一种RFC制导的SSL/TLS实现中数字证书验证模块的差异测试方法。
技术介绍
目前,业内常用的现有技术是这样的:随着计算机网络技术的快速发展,互联网与人们的工作、生活和学习联系日益紧密,互联网安全的重要性也日益凸显。为增强安全性,互联网的超文本传输协议(HypertextTransferProtocol,HTTP)升级为超文本传输安全协议(HypertextTransferProtocolSecure,HTTPS)。相对于HTTP,HTTPS使用安全套接字层(SecureSocketsLayer,SSL)/传输层安全协议(TransportLayerSecurity,TLS)保障互联网通讯的安全性。SSL/TLS在握手阶段通过验证服务器或客户端的数字证书以实现对服务器或客户端进行身份认证。对服务器进行身份认证时,服务器将其持有的数字证书发送给客户端,客户端通过验证接收到的数字证书来判断此服务器是否为真正的目标服务器。对客户端进行身份认证的过程与此类似。只有服务器或客户端通过了身份认证,后续的密钥形成和加密通讯才可以继续进行。身份认证能否正确执行非常重要:如果身份认证错误地接收恶意服务器或恶意客户端的非法证书,则会导致后续的通讯陷入不安全的境地;如果身份认证错误地拒绝正常服务器或正常客户端的合法证书,则会导致合法的通讯请求无法完成。因此,SSL/TLS实现中数字证书验证模块的正确性对互联网的安全是至关重要的,对SSL/TLS实现中数字证书验证模块进 ...
【技术保护点】
1.一种RFC制导的SSL/TLS实现中数字证书验证模块的差异测试方法,其特征在于,所述RFC制导的SSL/TLS实现中数字证书验证模块的差异测试方法中消费者规则和共享规则分为可打破规则和不可打破规则,规则转换为规则变量并生成动态符号执行技术中的输入即符号化程序;对符号化程序使用动态符号执行技术生成低级测试用例;根据低级测试用例组装高级测试用例即数字证书;使用组装的数字证书对SSL/TLS实现中的数字证书验证模块进行差异测试。
【技术特征摘要】
1.一种RFC制导的SSL/TLS实现中数字证书验证模块的差异测试方法,其特征在于,所述RFC制导的SSL/TLS实现中数字证书验证模块的差异测试方法中消费者规则和共享规则分为可打破规则和不可打破规则,规则转换为规则变量并生成动态符号执行技术中的输入即符号化程序;对符号化程序使用动态符号执行技术生成低级测试用例;根据低级测试用例组装高级测试用例即数字证书;使用组装的数字证书对SSL/TLS实现中的数字证书验证模块进行差异测试。2.如权利要求1所述的RFC制导的SSL/TLS实现中数字证书验证模块的差异测试方法,其特征在于,所述RFC制导的SSL/TLS实现中数字证书验证模块的差异测试方法包括以下步骤:步骤一,根据RFC2119规定的关键字集合从RFC5280和6818中提取数字证书的规则,根据RFC6818对RFC5280的规则进行更新;步骤二,对更新后的规则分为3类即生产者规则、消费者规则和共享规则,对消费者规则和共享规则进一步分为可打破规则和不可打破规则,规则转换为规则变量并生成动态符号执行技术中的输入即符号化程序;步骤三,对符号化程序使用动态符号执行技术生成低级测试用例;根据低级测试用例组装高级测试用例即数字证书;步骤四,使用组装的数字证书对SSL/TLS实现中的数字证书验证模块进行差异测试,基于数字证书的信息计算测试结果中的差异数、不同差异数、缺陷数、RFC遵守率。3.如权利要求2所述的RFC制导的SSL/TLS实现中数字证书验证模块的差异测试方法,其特征在于,所述步骤一具体包括:(1)根据RFC2119中规定的书写RFC所需遵守的关键字集合从RFC5280和6818中提取数字证书的规则;把RFC5280或RFC6818文本即rfc5280.txt或rfc6818.txt中的换页符、页眉、页脚和空行删除得到的文本记为R;把R根据一级标题分割为节;对于RFC5280中的第4至第8节、RFC6818中第2至第8节中的每一节,首先置规则集合变量ruleSet为空集、规则编号ruleNum为0;然后对于RFC5280任意j级标题(1≤j≤5)、RFC6818任意j级标题(1≤j≤2)和下一个标题之间的内容根据“.\n”和“.”提取英文语句,根据“::=”、“::={ln。。。}ln”和“::={ln。。。}ln’”提取AbstractSyntaxNotationOne(ASN.1)表示的结构,其中“::=”、“::={ln。。。}ln”和“::={ln。。。}ln’”分别表示ASN.1结构定义中没有左右大括号、有左右大括号并且在同一行、有左右大括号并且不在同一行;对于每个英文语句和ASN.1结构判断其是否包含RFC2119中规定的关键字,如果包含则说明该语句或结构是一条规则记为s,此时ruleNum增加1,由ruleNum、第j级标题和该规则s形成3元组s′=ruleNum,Titlej,s),将s′加入ruleSet;最后把ruleSet保存为文本文件;(2)根据RFC6818对RFC5280的规则进行更新,根据RFC6818中“…says:”、“…replacedwith:”和“add(ed)…”分别指示废弃的、更新的和附加的段落的特点把该节中的规则分别添加到废弃的规则集合obRuleSet和更新的规则集合upRuleSet中;然后,对每条规则r计算构成该规则的单词集合wordSetr,计算任意2条规则r1和r2的单词集合之差即Matrix[r1,r2]=[wordSetr1-wordSetr2];最后,对于obRuleSet中的每条规则o做如下计算:对于upRuleSet中的每条规则u计算使得Matrix[o,u]最小的u并赋给表示规则o更新后的规则记为Updateo,如果不存在这样的Matrix[o,u]则说明规则o被丢弃即Updateo=discarded,否则如果Matrix[o,u]=Matrix[u,o]=0则说明规则o没有变化即Updateo=unchanged,否则应该用规则u更新规则o即Updateo=u,对RFC5280的规则o用Updateo进行更新。4.如权利要求2所述的RFC制导的SSL/TLS实现中数字证书验证模块的差异测试方法,其特征在于,所述步骤二具体包括:(1)把更新后的规则分为3类:生产者规则、消费者规则和共享规则;把生产者规则集合producerRuleSet、消费者规则集合consumerRuleSet和共享规则集合sharedRuleSet分别设置为空集;对于RFC5280更新后的规则集合updatedRuleSet中的每条规则r,对于生产者规则的模式集合中任意一个模式m,如果r匹配m则把r加入到producerRuleSet;对于消费者规则的模式集合中任意一个模式m′,如果r匹配m′则把r加入到consumerRuleSet;共享规则集合为生产者规则集合与消费者规则集合的交集即sharedRuleSet=producerRuleSet∩consumerRuleSet;从生产者规则集合和消费者规则集合中分别去除共享规则集合即sharedRuleSet:producerRuleSet-=sharedRuleSet和consumerRuleSet-=sharedRuleSet;最后收集生产者规则和消费者规则外的规则即updatedRuleSet-producerRuleSet-consumerRuleSet作为共享规则;(2)对消费者规则和共享规则进一步分为:可打破规则和不可打破规则;把可打破规则集合breakableRuleSet、不可打破规则集合unbreakableRuleSet和不可打破规则的模式集合patternSet分别设置为空集;对于RFC2119规定的关键字集合中任何一个关键字m,对于任意一个不可打破规则模式u,把添加到patternSet;对于消费者规则和共享规则集合csrSet中任意一个规则r,对于patternSet中任意一个模式p,如果r匹配p则把r加入到unbreakableRuleSet中;计算可打破规则集合breakableRuleSet=csrSet-unbreakableRuleSet;(3)把可打破规则和不可打破规则转换为规则变量;设置响应集合responseSet、其它保留字集合otherSet和规则变量集合varSet为空集;把RFC2119规定的关键字加入到关键字集合modalKeywordSet,把表示句子...
【专利技术属性】
技术研发人员:田聪,陈矗,段振华,
申请(专利权)人:西安电子科技大学,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。