可双向转换的并发性验证方法、系统、设备及存储介质技术方案

技术编号:31372301 阅读:13 留言:0更新日期:2021-12-15 10:13
本发明专利技术公开了一种可双向转换的并发性验证方法、系统、设备及存储介质,其中方法包括:基于源码API信息与文档功能需求,整合出一种双分支映射的中间层规范;将中间层规范分别自动映射为抽象过程模型与源码级验证模型,进行并发属性验证与功能性验证;根据并发属性验证与功能性验证情况,生成具有跨模型逻辑一致性的安全验证结果。本发明专利技术通过整合出一种可双分支映射的中间层规范,对源码规范与需求进行了抽象度居中的形式化表示,不仅完整描述了底层程序功能,还过滤了繁杂的程序实现细节,使得程序安全验证方向可以同时映射到高层与底层两个方向,解决了源码级验证与高层抽象验证之间存在的语义鸿沟,提供了高层属性端到源码端的一致性验证。的一致性验证。的一致性验证。

【技术实现步骤摘要】
可双向转换的并发性验证方法、系统、设备及存储介质


[0001]本专利技术涉及C语言源码并发性安全
,尤其涉及一种可双向转换的并发性验证方法、系统、设备及存储介质。

技术介绍

[0002]形式化验证是指采用形式化方法对计算机软硬件进行安全性验证的过程。形式化方法是指基于严格的数学推导基础,对计算机软硬件系统进行描述、开发和验证的技术。其数学基础是建立在形式语言、语义和推理证明三位一体的形式逻辑系统之上。正是由于形式化的数学严格性使得经过形式化验证的程序安全性得以保证。虽然形式化验证并不能完全保证系统无错,但是其目的是为了最大限度理解和分析系统,将给出的系统规范转化为形式化条件,并尽可能验证系统是否满足这些条件。
[0003]并发性验证是指使用CSP等过程建模语言将需要验证的软件系统进行重新建模,将系统内部的数据、行为和实体进行抽象,并在系统模型代码中加入相应的并发性验证模块代码,最后输入到模型检查引擎中得出并发性验证结果。可验证的并发性属性有死锁检测、可达性验证、无散度判别等。另一方面,采用常见的并发性验证方法存在着下列问题:
[0004]1.推理低效困难:普通验证过程常采用单一的源码或者字节码进行底层验证,并发性验证需要证明高层的安全属性,如死锁、可达性、无散度判别等,而源码级或字节码级涉及到太多的无意义变量与逻辑,导致现有的自动推理系统失败,不能有效完成验证任务。
[0005]2.多验证系统无一致性保证:一部分验证方法会经过源码验证后,再去使用另一种抽象行为建模语言进行手动建模,但是因为系统中存在模型间的语义鸿沟,缺少严谨的一致性证明。如果人工编写源码级功能规范,再进行复杂的一致性推理,则会严重影响验证效率。
[0006]3.从规范生成的代码无法保证实际性能:一种方法从非形式化规范或规则,自动转换为形式化规范或规则,然后基于形式化功能规范自动生成符合规范的高级语言。实践证明这种从规范自动生成的编程语言虽然功能符合预期,但是代码逻辑在时间、空间复杂度的表现很差。

技术实现思路

[0007]为了解决上述问题,本专利技术提出一种可双向转换的并发性验证方法、系统、设备及存储介质,通过一种双分支映射的中间层规范自动转换到两个验证模型,即满足了底层与高层的验证需求,又保证了模型间的行为一致性,提高了验证效率。
[0008]本专利技术通过下述技术方案实现:
[0009]一种可双向转换的并发性验证方法,包括以下步骤:
[0010]步骤1:基于源码API信息与文档功能需求,整合出一种双分支映射的中间层规范;
[0011]步骤2:将所述中间层规范分别自动映射为抽象过程模型与源码级验证模型,进行并发属性验证与功能性验证;
[0012]步骤3:根据所述并发属性验证与功能性验证情况,生成具有跨模型逻辑一致性的安全验证结果。
[0013]进一步的,步骤1包括以下子步骤:
[0014]步骤101:分析待验证程序中所有的变量,作为所述中间层规范中的行为载体,通过行为载体描述中间层的状态及行为;再确定待验证程序中的主要状态变迁主要依靠的函数,将其设置为FUNCTION元素;
[0015]步骤102:隐藏底层具体繁杂的内存状态,引入等价的抽象状态用于表述底层完整功能逻辑,忽略函数变量具体的取值,只考虑相应的状态变迁及变迁条件,描述出函数具体内部逻辑;
[0016]步骤103:一次性处理所有的API,通过步骤102转化为所述中间层规范。
[0017]进一步的,步骤2包括:
[0018]将所述中间层规范自动向上映射为抽象过程模型并进行高层并发属性验证;
[0019]将所述中间层规范自动向下映射为源码级验证模型并进行功能性验证。
[0020]进一步的,将所述中间层规范自动向上映射为抽象过程模型并进行高层并发属性验证包括以下子步骤:
[0021]步骤201:根据所述中间层规范表现出的状态间逻辑关系进行抽象;
[0022]步骤202:确定状态间转移条件,形成不同的抽象路径,每条路径包含相应的前置后置状态;
[0023]步骤203:对所述中间层规范进行分析,确定路径相关性,将并发的路径并列起来,生成相应的高层规范;
[0024]步骤204:根据高层规范得到高层抽象状态机,并参考系统的状态迁移属性,推理出状态迁移合法性规则,编写高层属性规范;
[0025]步骤205:依据所述高层抽象状态机中的状态、行为及逻辑信息,形成可用于并发推理的抽象过程模型;并根据所述高层规范与所述高层属性规范,生成并插入并发安全属性语句,最后进行并发属性验证。
[0026]进一步的,将所述中间层规范自动向下映射为功能性验证属性并进行功能性验证包括以下子步骤:
[0027]步骤301:根据所述中间层规范给出的函数调用关系,抽取函数实现逻辑以及函数内部变量的数据结构和传递条件;
[0028]步骤302:根据所述数据结构和传递条件,分析函数应达到的安全标准,将其生成为一个单独的验证函数;
[0029]步骤303:将生成的所述验证函数插入到源码中,形成最后输出的源码级规范;
[0030]步骤304:将转换输出的所述源码级规范进行功能性验证。
[0031]一种可双向转换的并发性验证系统,包括:
[0032]整合器,用于根据源码API信息与文档功能需求,整合出一种双分支映射的中间层规范;
[0033]双向转换器,用于将所述中间层规范分别映射为抽象过程模型与源码级验证模型,进行并发属性验证与功能性验证;
[0034]结果生成器,用于根据所述并发属性验证与功能性验证情况,生成具有跨模型逻
辑一致性的安全验证结果。
[0035]一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现所述的可双向转换的并发性验证方法的步骤。
[0036]一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现所述的可双向转换的并发性验证方法的步骤。
[0037]本专利技术的有益效果在于:
[0038]1.本专利技术通过整合出一种可双分支映射的中间层规范,对源码规范与需求进行了抽象度居中的形式化表示,不仅完整的描述了底层程序功能,还过滤了繁杂的程序实现细节,使得程序安全验证方向可以同时映射到高层与底层两个方向,解决了源码级验证与高层抽象验证之间存在的语义鸿沟,提供了高层属性端到源码端的一致性验证。
[0039]2.本专利技术可以将双分支映射的中间层规范自动向上映射生成相应的抽象过程模型并进行并发属性验证,同时自动向下映射为相应的源码级验证模型并进行功能性验证。双向转换过程自动完成,提高了验证效率。
[0040]3.在生成可双分支映射的中间层规范时,本专利技术采用了一次性覆盖所有源码API的方法,可以从中间层规范自动向上映射出过程模型分析系统并发属性,避免了对整个系统进行人工的重复建模,提高了系统灵活性。...

【技术保护点】

【技术特征摘要】
1.一种可双向转换的并发性验证方法,其特征在于,包括以下步骤:步骤1:基于源码API信息与文档功能需求,整合出一种双分支映射的中间层规范;步骤2:将所述中间层规范分别自动映射为抽象过程模型与源码级验证模型,进行并发属性验证与功能性验证;步骤3:根据所述并发属性验证与功能性验证情况,生成具有跨模型逻辑一致性的安全验证结果。2.根据权利要求1所述的可双向转换的并发性验证方法,其特征在于,步骤1包括以下子步骤:步骤101:分析待验证程序中所有的变量,作为所述中间层规范中的行为载体,通过行为载体描述中间层的状态及行为;再确定待验证程序中的主要状态变迁主要依靠的函数,将其设置为FUNCTION元素;步骤102:隐藏底层具体繁杂的内存状态,引入等价的抽象状态用于表述底层完整功能逻辑,忽略函数变量具体的取值,只考虑相应的状态变迁及变迁条件,描述出函数具体内部逻辑;步骤103:一次性处理所有的API,通过步骤102转化为所述中间层规范。3.根据权利要求1所述的可双向转换的并发性验证方法,其特征在于,步骤2包括:将所述中间层规范自动向上映射为抽象过程模型并进行高层并发属性验证;将所述中间层规范自动向下映射为源码级验证模型并进行功能性验证。4.根据权利要求3所述的可双向转换的并发性验证方法,其特征在于,将所述中间层规范自动向上映射为抽象过程模型并进行高层并发属性验证包括以下子步骤:步骤201:根据所述中间层规范表现出的状态间逻辑关系进行抽象;步骤202:确定状态间转移条件,形成不同的抽象路径,每条路径包含相应的前置后置状态;步骤203:对所述中间层规范进行分析,确定路径相关性,将并发的路径并列起来,生成相应的高层规范;步骤204:根据高层规范得到高层抽象状...

【专利技术属性】
技术研发人员:庞飞谢小赋唐六华曾梦岐罗敏陈维彬李海波
申请(专利权)人:中国电子科技集团公司第三十研究所
类型:发明
国别省市:

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

1