System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于语义感知的密码库模糊测试方法、装置及设备制造方法及图纸_技高网
当前位置: 首页 > 专利查询>清华大学专利>正文

基于语义感知的密码库模糊测试方法、装置及设备制造方法及图纸

技术编号:40313247 阅读:7 留言:0更新日期:2024-02-07 20:55
本发明专利技术公开了一种基于语义感知的密码库模糊测试方法、装置及设备,该方法包括:获取待测密码算法,提取待测密码算法的语义信息;基于语义信息根据不同的测试输入类型建立相应的生成策略;根据生成策略依次生成测试输入的各个字段,将字段组成序列化的字节串作为测试输入;通过测试驱动将测试输入交付到密码库执行;实时对密码库的执行过程进行异常行为监测,将执行结果进行差分测试以及基于语义验证的交叉测试;根据差分测试和交叉测试的测试结果输出待测密码算法的计算结果和密码库的漏洞报告。本发明专利技术解决了现有密码库测试兼容性差、准确率低、测试种类受限以及测试效率低下等问题。

【技术实现步骤摘要】

本专利技术涉及密码库测试领域,尤其涉及一种基于语义感知的密码库模糊测试方法、装置及设备


技术介绍

1、密码算法中的数据加解密算法可以对数据进行多种形式的加密和解密,以保证网络信息传输过程中的数据安全,这种类型的算法包括块密码、流密码、椭圆曲线密码等。为了方便开发者使用,密码算法的实现通常被封装为库,即密码库。密码库可以为每个其支持的功能提供api函数调用接口,已被许多个人和企业广泛用作安全应用程序中的核心组件。目前,市面上已有的开源密码库种类繁多且应用广泛。如openssl、wolfssl等提供ssl/tls协议以及基础密码学算法接口的大型库软件。针对某个具体算法而言,所有密码库期望实现的目标功能是一致的,但实现方式存在很强的多样性。同时,考虑到密码学算法种类的繁杂众多及每个库都会持续保持更新的特性,密码库的实现中持续出现大量的实现漏洞,这些漏洞会影响密码算法功能的完整性,导致服务器宕机、数据隐私泄露等严重的安全后果。因此,对密码库实现漏洞的提前排查和修复对于用户的数据隐私安全具有重要意义。

2、目前,已经有多种测试方法被应用于密码库安全测试中。cryptoguard是一个使用静态分析来挖掘大型java项目中对加解密相关接口的误用漏洞的测试工具。cryptoguard通过对常见漏洞的研究和观察,总结出了相关漏洞的形式化表示方式,基于这些形式化逻辑对大型java工程的源码进行扫描,从而获取到可能出现漏洞的加解密算法api误用代码片段。cryptoguard已成功找到了多个大型apache、android项目的实现漏洞。wycheproof是一个对密码库进行单元测试的测试工具。它通过总结分析已有的漏洞,构造出可触发相应漏洞的攻击向量作为单元测试用例,并对密码库进行测试来判断密码库是否依然有与已被发现的漏洞存在相似性的漏洞。

3、除了单元测试,模糊测试作为一种已得到广泛应用,且具有广泛前景的动态测试方法,也已经有不少应用在密码库测试场景下的成果。其中,cdf是一个结合了基于差分的模糊测试和固定测试向量的密码库测试工具。它提供了三种不同逻辑的差分测试,并预定义了部分包含易错极端值的攻击向量,可以对密码库进行攻击向量定点测试。cryptofuzz是一个更加成熟的密码库差分模糊测试工具。它基于libfuzzer模糊测试引擎实现,并使用用户可自定义的种子生成接口封装了针对所有被测算法按字段生成种子的种子生成器,随后再调用libfuzzer自带的变异接口进行种子变异。在执行完成后,cryptofuzz采用差分测试来进行漏洞检测,或者结合少部分算法的自身逻辑拟合测试等方法来进行漏洞检测。

4、现有的静态测试如cryptoguard具有以下两点局限性:其一,静态分析需要基于预定义的扫描模式进行,可发现的漏洞类型有限且相对固定,与密码库实现的多样性和持续更新性存在冲突;其二,静态测试的误报率较高,测试准确率低,需要大量人工分析介入,从而影响测试工具的自动化、使用感和可扩展性。

5、现有的单元测试如wycheproof只能使用已被发现并实现的攻击向量测试用例进行测试,所以可挖掘的漏洞种类相对较为单一,在测试覆盖率和广泛性上具有较大的局限性。

6、现有的模糊测试工具如cdf和cryptofuzz在输入生成阶段没有考虑到密码学算法的语义信息,如输入输出规范约束、常见的易错边界、不同密码算法之间的逻辑关系等。这导致生成种子有效率较低,能触发算法执行或触及易错情况的概率较低,进而导致模糊测试效率的低下。


技术实现思路

1、本专利技术提供了一种基于语义感知的密码库模糊测试方法、装置及设备,解决了现有密码库测试兼容性差、准确率低、测试种类受限以及测试效率低下等问题。

2、一种基于语义感知的密码库模糊测试方法,包括:

3、获取待测密码算法,提取所述待测密码算法的语义信息;

4、基于所述语义信息根据不同的测试输入类型建立相应的生成策略;

5、根据所述生成策略依次生成测试输入的各个字段,将所述字段组成序列化的字节串作为测试输入;

6、通过测试驱动将所述测试输入交付到密码库执行;

7、实时对所述密码库的执行过程进行异常行为监测,将执行结果进行差分测试以及基于语义验证的交叉测试;

8、根据差分测试和交叉测试的测试结果输出待测密码算法的计算结果和密码库的漏洞报告。

9、在本专利技术的一种实施例中,所述提取所述待测密码算法的语义信息,具体包括:通过自动化调用密码库提供的api查询接口以及使用被测哈希算法加密任意明文并获取输出的方式获取待测密码算法的密码学特定输入约束;根据不同待测密码算法确定其函数签名的提取方法,根据所述提取方法提取对应的函数签名。

10、在本专利技术的一种实施例中,所述基于所述语义信息根据不同的测试输入类型建立相应的生成策略,具体包括:建立所有的测试输入字段类型,包括六类:明文、密文、密钥、初始向量、数字和计算模式;建立所有的生成策略,包括语义合规、极大值、极小值、特殊值、空值、随机;建立各个测试输入字段类型和各个生成策略的对应关系;基于提取的所述待测密码算法的函数签名确定要生成的测试输入字段,根据所述对应关系选择并确定与要生成的测试输入字段相应的生成策略。

11、在本专利技术的一种实施例中,将执行结果进行基于语义验证的交叉测试,具体包括:获取不同密码算法之间的语义逻辑关系;根据不同密码算法之间的语义逻辑关系确定交叉验证的方法;根据所述交叉验证的方法将多轮待测密码算法的执行结果进行交叉验证,以检测密码库实现中的逻辑漏洞。

12、在本专利技术的一种实施例中,所述方法还包括:通过插桩技术插入监视器,并对监视器所报出的错误和警告进行被动捕获和相应的处理。

13、在本专利技术的一种实施例中,通过测试驱动将所述测试输入交付到密码库执行,具体包括:在一轮测试中将一个测试输入通过测试驱动发送给多个密码库,并分别获取各个密码库的执行结果,将其中不同于其他执行结果的执行结果进行标注。

14、在本专利技术的一种实施例中,所述不同密码算法之间的语义逻辑关系包括:加密-解密、密钥生成-验证和签名-验证;所述加密-解密为针对对称加解密算法,使用相同的算法模式和密钥,解密后的结果应与加密前的明文一致;所述密钥生成-验证为使用密钥生成算法生成的私钥,再使用椭圆曲线算法生成相应的公钥,最终密钥对应通过有效性验证算法;所述签名-验证为使用相关算法对明文进行数字签名后,应当通过签名的验证。

15、一种基于语义感知的密码库模糊测试装置,包括:

16、测试对象获取模块,用于获取待测密码算法;

17、语义信息提取模块,用于提取所述待测密码算法的语义信息;

18、测试输入生成模块,用于基于所述语义信息根据不同的测试输入类型建立相应的生成策略;根据所述生成策略依次生成测试输入的各个字段,将所述字段组成序列化的字节串作为测试输入;

19、漏洞检测本文档来自技高网...

【技术保护点】

1.一种基于语义感知的密码库模糊测试方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述提取所述待测密码算法的语义信息,具体包括:

3.根据权利要求2所述的方法,其特征在于,所述基于所述语义信息根据不同的测试输入类型建立相应的生成策略,具体包括:

4.根据权利要求1所述的方法,其特征在于,将执行结果进行基于语义验证的交叉测试,具体包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1所述的方法,其特征在于,通过测试驱动将所述测试输入交付到密码库执行,具体包括:

7.根据权利要求4所述的方法,其特征在于,所述不同密码算法之间的语义逻辑关系包括:加密-解密、密钥生成-验证和签名-验证;

8.一种基于语义感知的密码库模糊测试装置,其特征在于,包括:

9.一种基于语义感知的密码库模糊测试设备,其特征在于,包括:

10.一种非易失性存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令由处理器执行,以实现如权利要求1-7任一项所述的方法。

...

【技术特征摘要】

1.一种基于语义感知的密码库模糊测试方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述提取所述待测密码算法的语义信息,具体包括:

3.根据权利要求2所述的方法,其特征在于,所述基于所述语义信息根据不同的测试输入类型建立相应的生成策略,具体包括:

4.根据权利要求1所述的方法,其特征在于,将执行结果进行基于语义验证的交叉测试,具体包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1所述的方...

【专利技术属性】
技术研发人员:周远航马福辰陈元亮姜宇
申请(专利权)人:清华大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1