一种嵌入式软件的可组合信息流验证系统及方法

文档序号:6514516阅读:239来源:国知局
一种嵌入式软件的可组合信息流验证系统及方法
【专利摘要】本发明公开了一种嵌入式软件的可组合信息流验证系统,包括用于对嵌入式系统中单一组件的信息流安全属性进行验证的组件验证子系统;用于对组件间信息流安全属性进行验证的可组合验证子系统;用于存储验证通过的组件验证证书,向用户、组件验证子系统及组合验证子系统提供证书更新、调用接口的组件证书库;用于接收验证引擎输出的失败信息,将嵌入式系统中失败的反例输出给用户,指导用户修改嵌入式系统设计的失败结果分析器;组件验证子系统和可组合验证子系统分别接组件证书库和失败结果分析器,组件证书库与系统证书导入相接,失败结果分析器输出系统反例。本发明对组件间信息流安全进行验证,从而保证组件组合后系统的信息流安全性。
【专利说明】一种嵌入式软件的可组合信息流验证系统及方法
【技术领域】
[0001]本发明涉及计算机嵌入式软件工程领域,具体涉及一种嵌入式软件的可组合信息流验证系统及方法。
【背景技术】
[0002]嵌入式软件广泛应用于航空电子、车载软件、战场单兵等领域的任务关键系统中。随着任务关键系统信息化水平的提高,嵌入式软件承担的功能越来越多,尤其以车载、机载嵌入式软件为主要应用,美军F22战机的机载软件规模约为170万行Ada代码,而近期被多国停飞的波音787客机,其机载软件规模增至约1300万行。在此类大规模嵌入式软件中,必然存在大量缺陷。
[0003]随着嵌入式软件系统的规模日益扩大,复杂性也越来越高,传统的系统开发方式效率低,无法满足领域中应用快速部署、丰富业务类型的需求,因而用以降低开发难度的通用组件化的思想在嵌入式软件开发中越来越受到关注。复杂嵌入式软件系统所采用的将整个系统分解为多个异步并发的组件或子系统,并通过不同组件间的协同工作来完成某个复杂的任务的软件开发方式也成为嵌入式系统软件开发过程的发展趋势。在这一趋势下,现有的软件设计开发方法难以适应嵌入式软件的安全性需求。组件化软件开发方法尚缺乏保证软件组件组合结果安全性的开发规程,尤其在任务关键系统(如航空电子系统)的开发过程中,要求满足个体安全性的各个异构组件的组合结果能够克服其他功能属性和非功能属性叠加对整体安全性产生的负面影响,另外,还要求对组件的验证过程与对组合结果的验证过程低耦合,以达到增量式验证的效果。因此,研究如何验证单个组件的安全性在组合系统构造过程中能否得到保持、以及高效的组合系统安全性验证方法就成为决定整个组件化嵌入式软件系统安全性的关键。
[0004]与通用计算机系统相对地,嵌入式软件系统在时序性、并发性、实时性、可靠性、资源管理、安全性等方面都有其自身的特点和要求。安全性是嵌入式软件质量和系统质量的一个重要衡量指标,在传统的计算模型抽象下,安全性属于非功能属性,在实际开发过程中,嵌入式软件的功能属性与非功能属性存在制约关系,安全性等非功能属性可能对功能属性的规约产生影响。
[0005]模型检测的方法虽然能够保证验证的精确性,但目前其需要通过对嵌入式系统整体建模来验证其信息流安全性,但由于现有的嵌入式系统存在代码量大,使得软件的建模过程变得更加复杂,导致人为主观错误更加容易发生,而过于复杂的模型在验证过程中也会带来验证开销巨大的缺陷。
[0006]自动化建模的方法能够克服人为主观失误带来的建模错误,但该方法的原子模块需要预先设计好,而嵌入式系统软件的设计需求是动态变化的,静态原子模块的组合往往导致所设计的模型较为复杂,从而很难适应复杂嵌入式系统的建模需求,而且没有结合现有嵌入式系统组件化开发的特点,检测时仍首先需要由原子模块组合成系统模型,然后再对整体模型进行验证,并未实现增量式的验证,导致验证的开销仍很大。[0007]随着云计算、物联网技术的快速发展,信息化、智能化成为未来嵌入式系统软件的主要发展方向,而其中涉及的信息安全问题也越来越突出。目前,多样化的嵌入式系统软件在航空、交通、军事、生活等不同领域起到了关键的作用。在使用这些软件的过程中,由用户提供输入,经过软件处理,最后输出计算结果。由于信息本身具有不同的敏感程度,输入和输出本身就包含了具有不同安全级别的数据,如航空软件中飞机的位置、飞行姿态等就具有较高安全级,而飞机飞行过程中环境数据,如风向,温度等安全级则相较较低;用户的年龄、生活习惯等安全级较高,而用户生活小区的环境数据则较低。在智能软件处理过程中,软件中的非法操作以及本身所存在的安全漏洞将导致高安全级数据信息的泄露,如飞机在自动导航过程中,飞机的调整飞行姿态信息被攻击者通过软件漏洞窃取;用户在定位过程中,定位软件私自将用户的位置信息上传给后台云服务器等等,从而造成了对用户隐私信息的泄露。因此,对嵌入式系统软件的信息处理过程进行验证,即软件中的信息流验证,是保证嵌入式系统软件信息安全的必要手段。
[0008]随着信息化水平的提高,嵌入式软件承担的功能越来越多,尤其以车载、机载嵌入式软件为主要应用,软件系统的规模日益扩大,复杂性也越来越高,传统的信息流验证方法需要对系统整体进行建模,建模过程复杂,错误率高,验证开销大,无法满足领域中应用快速部署、丰富业务类型的需求。

【发明内容】

[0009]本发明的目的在于提供一种嵌入式软件的可组合信息流验证系统及方法,通过结合现有嵌入式系统组件化开发的特点,提出低耦合、增量式的可组合信息流验证方法,该方法以单一组件信息流验证为基础,结合经理论证明的组件安全可组合条件对组件间信息流安全进行验证,从而保证组件组合后系统的信息流安全性。
[0010]本发明的目的是通过下述技术方案来实现的。
[0011]一种嵌入式软件的可组合信息流验证系统,包括:
[0012]—组件验证子系统,用于对嵌入式系统中单一组件的信息流安全属性进行验证;
[0013]—可组合验证子系统,用于对存在组合关系的组件间的信息流安全属性进行验证;
[0014]—组件证书库,用于存储验证通过的组件验证证书,并向用户、组件验证子系统及组合验证子系统提供证书更新、调用接口 ;
[0015]——失败结果分析器,用于接收验证引擎输出的失败原因,将嵌入式系统中失败的反例输出给用户,指导用户修改嵌入式系统设计;
[0016]所述组件验证子系统和可组合验证子系统分别连接组件证书库和失败结果分析器,组件证书库与系统证书导入相接,失败结果分析器输出系统反例。
[0017]优选地,所述组件验证子系统包括Promela语言编辑器、Promela语言编译器、Assert断言编辑器和模型检测验证引擎,所述Promela语言编辑器连接Promela语言编译器,Promela语言编译器和Assert断言编辑器分别连接至模型检测验证引擎,模型检测验证引擎将验证信息分别输出至组件证书库和失败结果分析器。
[0018]优选地,所述Promela语言编辑器采用文本框的图形化界面接收用户输入,并提供文件管理、文本编辑、Assert断言编辑器、编译及运行接口 ;
[0019]所述文件管理包括新文件创建、打开、保存和系统退出;
[0020]所述文本编辑包括文本查找和替换;
[0021]所述Assert断言编辑器接口则调用生成新的Assert编辑窗口 ;
[0022]所述编译及运行接口则分别调用Promela语言编译器和模型检测验证引擎完成模型编译及验证运行。
[0023]优选地,所述Promela语言编译器接收Promela语言编辑器提交的模型输入,并按照Promela语法规则对该模型输入进行检测,若存在语法错误,返回该错误类型和地址;若无错误,则编译成可执行文件;
[0024]所述Assert断言编辑器采用对话框图形化界面接收用户输入,并存入输入模型的描述文件中,在运行时有模型检测验证引擎调用读取;
[0025]所述模型检测验证引擎负责调用编译通过的可执行文件,并结合Assert断言检测模型执行过程中是否符合信息流安全要求;若验证通过,结合组件描述生成组件证书;若验证失败,将出错的信息报告给失败结果分析器。
[0026]优选地,所述可组合验证子系统包括组合关系编辑器、验证条件生成器、组件证书分析器和可组合信息流安全验证引擎,所述组合关系编辑器连接验证条件生成器,验证条件生成器和组件证书分析器分别连接至可组合信息流安全验证引擎,可组合信息流安全验证引擎和组件证书分析器将验证信息分别输出至组件证书库和失败结果分析器。
[0027]优选地,所述组合关系编辑器采用文本框的图形化界面接收用户输入,并提供文件管理、文本编辑及运行验证接口 ;
[0028]所述文件管理包括新文件创建、打开和保存和编辑器关闭;
[0029]所述文本编辑功能包括文本查找和替换;
[0030]所述运行验证接口将调用验证条件生成器和可组合信息流安全验证引擎完成验证工作,在运行之前以对话框形式要求用户手动输入参与组合验证组件的证书文件的路径。
[0031]优选地,所述验证条件生成器接收BPEL (Bussiness Process ExecutionLanguage)语言描述的组合关系;生成相邻组件间保证信息流安全的验证条件;
[0032]所述组件证书分析器根据用户输入的组件证书路径读取相应的证书交给验证引擎进行验证;
[0033]所述可组合信息流验证引擎根据组件间信息流安全验证条件以及组件证书对组件间的信息传递过程进行验证;若验证成功,输出验证通过结果;若验证失败,将出错的信息报告给失败结果分析器。
[0034]优选地,所述组件证书库包括与系统证书导入相接的证书储存单元、证书存储单元分别连接至证书生成接口模块和证书读取接口模块,证书生成接口模块连接至组件验证子系统,证书读取接口模块连接至可组合验证子系统。
[0035]优选地,所述组件证书存储单元将生成的组件证书以xml文件形式存储在磁盘中,同时提供证书导入\导出功能,实现证书的可迁移;
[0036]所述证书生成接口模块由模型检测验证引擎进行调用,当组件验证通过后,模型检测引擎结合组件描述信息调用该接口生成证书并存储在证书存储单元中;[0037]所述证书读取接口模块由可组合验证子系统中的组件证书分析器进行调用,读取证书中关于组件输入输出及其相应安全级的信息。
[0038]相应地,本发明还给出了一种基于嵌入式软件的可组合信息流验证系统的方法,该方法包括下述步骤:
[0039](I)用户通过Promela语言编辑器输入待验证嵌入式系统的组件描述;
[0040](2) Promela语言编译器对输入的组件描述进行编译,生成检测可执行文件;编译成功,执行步骤(3);若编译错误,返回步骤(I)对组件输入进行修改;
[0041](3)用户通过Assert语言编辑器输入组件信息流安全断言;
[0042](4)结合生成的可执行文件和安全断言,模型检测验证引擎开始进行验证;若验证成功,执行步骤(3);若验证失败,跳转至步骤(12);
[0043](5)生成组件证书并存储至组件证书库中;
[0044](6)判断嵌入式系统中的所有组件验证是否完成,若未完成,返回步骤(I)继续下一组件验证;若已完成,执行步骤(7);
[0045](7)用户通过组合关系编辑器输入待验证嵌入式系统组件间的组合关系;
[0046](8)验证条件生成器根据组合关系生成相邻组件间信息流安全验证条件;
[0047](9)组件证书分析器读取验证所需的组件证书;
[0048](10)可组合信息流安全验证引擎验证组件间信息流安全性;若验证成功,执行步骤(11);若验证失败,执行步骤(12);
[0049](11)输出验证成功结果,执行步骤(13);
[0050](12)将出错信息报告传输至失败结果分析器,输出失败反例;
[0051](13)验证工作结束。
[0052]在嵌入式系统中,本发明所涉及的安全性主要关注实时数据和系统配置的认证性和完整性、以及系统禁止对信息或服务进行非授权访问的能力,相应的安全策略必须规定哪些进程可以读取或修改实时数据并使用服务,对应的安全模型为信息流安全模型。实际上,在嵌入式软件环境下,系统关键任务通常对信息流安全性有严格要求,因而信息流安全是嵌入式软件安全性需要考虑的重要问题。一般意义上的信息流安全研究多级安全环境下高安全级机密信息向低安全级环境释放的合法性及释放方式问题,它定义了信息安全地通过系统并最终流向外部的流动方式,要求对机密信息具有特定访问权限的主体不会以不恰当的方式将机密信息泄露给未被授权接收该信息的主体,或来自低完整性数据源的信息不会流向高完整性主体。因此,本发明以组件化嵌入式软件的安全性问题以多级安全环境下的信息流安全问题为核心。
[0053]模型检测是一种通过对软件建模和符号执行来检测软件设计是否满足属性需求的验证方法,现广泛应用于软件属性的验证。本发明从原理上讲采用模型检测方法来对信息流的安全属性进行验证,针对传统模型检测方法中存在的对大规模的组合嵌入式系统建模困难,验证开销大的缺点,结合信息流安全可组合定理,提出了一种可组合的嵌入式软件验证方法,从而保障组合嵌入式系统的信息流安全属性。
[0054]本发明的有益效果包括以下两个方面:
[0055]I)首先,提出一种针对嵌入式软件中安全属性的验证方法,实现了对嵌入式系统软件中信息流安全的保护,防止高安全级的信息通过低安全级对象泄露给攻击者,保证了嵌入式软件运行的安全;
[0056]2)另一方面,对基于模型检测的嵌入式软件信息流安全验证进行改进,在保证验证精确性的同时,结合嵌入式软件组合的特点,通过分离组件验证和组合验证过程,实现了低耦合,增量式的验证方法,从而减小了系统整体建模的复杂度和验证的开销;此外,通过建立组件证书库,简化了对重用组件的验证过程,进一步减小了验证的开销。
【专利附图】

【附图说明】
[0057]图1是本发明系统框图。
[0058]图2是本发明组件内信息流验证方法流程图。
[0059]图3是本发明组件间可组合信息流验证方法流程图。
[0060]图4是本发明嵌入式软件的信息流验证方法的总体流程图。
【具体实施方式】
[0061]下面结合附图和实施例对本发明做进一步说明。
[0062]如图1所示,该嵌入式软件的可组合信息流验证系统包括组件验证子系统、组件证书库、可组合验证子系统三个部分。组件验证子系统负责对嵌入式软件中设计实现的不同组件中的信息流安全属性进行验证,验证结果以证书形式进行表示并存储在相应的组件证书库中;可组合验证子系统则根据嵌入式软件中不同组件间的组合关系,通过信息流安全可组合条件对相邻的组件间信息流进行验证,保证组合后信息流安全。下面对不同子系统的构成以及工作流程进行细述。
[0063]1.组件验证子系统
[0064]组件验证子系统以模型检测引擎为核心,Promela作为嵌入式软件组件的输入描述语言,采用模型自合成方法对嵌入式软件中的每个组件中的信息流进行验证。该组件验证子系统中包含了 Promela语言编辑器、Promela语言编译器、Assert断言编辑器和模型检测验证引擎四个部分。
[0065]I) Promela语言编辑器
[0066]Promela语言编辑器向用户提供了对输入的嵌入式软件组件描述的接口,用户通过图形化可视界面对输入的组件进行建模和描述。作为与用户交互的界面,同时提供了文件管理、文本编辑、Assert断言编辑器、编译及运行接口 ;
[0067]文件管理功能包括新文件创建、打开、保存和系统退出,文件以文本模式存储在系统工程文件夹下,并采用后缀名.model标识;
[0068]文本编辑功能包括文本查找和替换;
[0069]Assert断言编辑器接口则调用生成新的Assert编辑窗口 ;
[0070]编译接口调用Promela语言编译器完成语言编译功能;
[0071]运行接口调用模型检测验证引擎完成模型验证运行功能。
[0072]2) Promela语言编译器
[0073]Promela语言编译器是验证系统将用户输入的模型进行编译,生成可执行程序,然后交给模型检测验证引擎进行验证。Promela语言编译器主要检测模型描述中是否存在语法错误,接收Promela语言编辑器提交的模型输入,并按照Promela语法规则对该模型输入进行检测,若存在语法错误,返回该错误类型和地址;若无错误,则编译成可执行文件;并生成模型检测验证引擎可以执行的程序,以后缀名.exec标识。
[0074]3) Assert断言编辑器
[0075]Assert断言编辑器采用对话框图形化界面接收用户输入,并存入输入模型的描述文件中,在运行时有模型检测验证引擎调用读取;
[0076]Assert断言描述了对程序属性验证进行判定的条件,用户根据实际系统信息流安全需求输入不同数量的断言的条件表达式,不同表达式通过“与”和“或”操作符连接。
[0077]“与”操作符,当两个条件表达式同时为真时返回真,否则为假。
[0078]“或”操作符,当两个条件表达式中任一为真即返回真,否则为假。
[0079]4)模型检测验证引擎
[0080]模型检测验证引擎负责调用编译通过的可执行文件,提供了编译后的验证程序的运行环境,并结合Assert断言检测模型执行过程中是否符合信息流安全要求;对运行过程中的程序变量进行实时的断言判定,若程序执行过程中满足所有断言,结合组件描述生成组件证书,返回验证成功结果;当不满足断言条件时,返回验证失败结果,将出错的信息报告给失败结果分析器。
[0081]组件验证子系统工作流程如图2所示,具体包含以下4步:
[0082]I)模型输入:用户采用Promela语言对高级语言编写好的被验证系统的组件程序进行描述。
[0083]2)模型预处理:用户对建模好的程序P进行自合成处理,生成P*,具体包括:
[0084]a.复制输入程序P,生成P’,即将所有变量重新命名,程序流程不变;
[0085]b.对初始状态下对P和P’中的所有低安全级输入变量逐一交叉赋值。
[0086]3) assert断言输入:结合嵌入式软件信息流安全需求,断言表达式的条件为P和P’中所有低安全级的输出值相等。
[0087]4)模型检测:对输入模型进行编译,生成可执行的被验证程序,将断言条件加入模型检测引擎,检测引擎调用执行被验证程序,并在程序运行过程中实时检测程序是否满足断言描述。
[0088]2.组件证书库
[0089]组件证书库包括与系统证书导入相接的证书储存单元、证书存储单元分别连接至证书生成接口模块和证书读取接口模块,证书生成接口模块连接至组件验证子系统,证书读取接口模块连接至可组合验证子系统。证书生成接口模块由模型检测验证引擎进行调用,当组件验证通过后,模型检测引擎结合组件描述信息调用该接口生成证书并存储在证书存储单元中;证书读取接口模块由可组合验证子系统中的组件证书分析器进行调用,读取证书中关于组件输入输出及其相应安全级的信息。
[0090]组件验证通过后,生成验证通过的证书并存储在组件证书库中,用于在组合过程中的信息流安全验证。
[0091]验证证书采用xml格式表示,以xml文件形式存储在磁盘中,同时提供证书导入\导出功能,实现证书的可迁移;包含组件信息、组合后的嵌入式软件信息、组件输入、输出集合以及输入输出与安全级的映射;此外,在证书最后还包含了验证工具采用自身私钥的签名,防止攻击者伪造组件证书。[0092]证书生成完成后,所有文件存储在系统工程文件的cert文件夹下,并建立相应的索引数据库,便于日后的查找和更新。建立证书库的优势在于,当此组件在其他嵌入式软件中重复使用时,可无需再次对组件自身进行验证,组合验证子系统结合其组合关系可直接进行组件间验证即可。且证书可以通过导入形式引入组件库,便于在不同验证系统间组件验证结果的共享和使用。
[0093]3.可组合验证子系统
[0094]可组合验证子系统以可组合信息流安全验证引擎为核心,包括组合关系编辑器、验证条件生成器和组件证书分析器三个外围支撑模块。还包括一可组合信息流安全验证引擎。组合关系编辑器连接验证条件生成器,验证条件生成器和组件证书分析器分别连接至可组合信息流安全验证引擎,可组合信息流安全验证引擎和组件证书分析器将验证信息分别输出至组件证书库和失败结果分析器。
[0095]I)组合关系编辑器
[0096]组合关系编辑器采用文本框的图形化界面接收用户输入,并提供文件管理、文本编辑及运行验证接口 ;文件管理包括新文件创建、打开和保存和编辑器关闭;文本编辑功能包括文本查找和替换;运行验证接口将调用验证条件生成器和可组合信息流安全验证引擎完成验证工作,在运行之前以对话框形式要求用户手动输入参与组合验证组件的证书文件的路径。
[0097]组合关系编辑器负责对嵌入式软件中各组件间的组合关系进行描述,在此采用BPEL业务流程成语言实现对其的描述,支持顺序、条件、并行以及循环4种基本的组合结构。
[0098]2)验证条件生成器
[0099]通过接收BPEL描述好的组件间的组合关系,验证条件生成器生成相应的组件验证条件:在任意相邻的两个组件间,前一组件的输出的安全级不低于后一组件接收该输出的输入的安全级。
[0100]3)组件证书分析器
[0101]组件证书分析器负责从组件证书库中读取相应组件的证书,并分解其中关于组件输入输出及其对应安全级的信息,存入相应的变量中,供可组合信息流安全验证引擎使用。在读取过程中,分析器首先需要通过验证系统的签名来证明证书的有效性。
[0102]4)可组合信息流安全验证引擎
[0103]可组合信息流安全验证引擎根据生成的验证条件,结合组件提供的输入输出信息进行自动化验证。接收输入包括各组件证书、信息流安全验证条件;若验证成功,输出验证通过结果;若验证失败,将出错的信息报告给失败结果分析器。
[0104]该可组合验证子系统工作流程如图3所示,具体包含以下几个步骤:
[0105]I)采用BPEL语言描述嵌入式软件中各组件的组合关系;
[0106]2)根据描述的组合关系生成顺序组合验证条件;
[0107]3)可组合信息流安全验证引擎通过组件证书分析器读取需要验证组件的证书信息;
[0108]4)结合组件输入输出及其对应的安全级信息,验证其是否满足信息流安全组合条件,即该组件接收前一组件输出的输入的安全级大于等于前一组件输出的安全级。若不满足,返回验证失败结果,并交给失败结果分析器,输出相应的反例;若满足,则继续执行;
[0109]5)判定该组件是否是验证的最后一个组件,若不是,返回步骤3);若是,输出验证成功结果。
[0110]下面给出本发明嵌入式软件的可组合信息流验证系统的方法,见图4所示,该方法包括下述步骤:
[0111](I)用户通过Promela语言编辑器输入待验证嵌入式系统的组件描述;
[0112](2) Promela语言编译器对输入的组件描述进行编译,生成检测可执行文件;编译成功,执行步骤(3);若编译错误,返回步骤(I)对组件输入进行修改;
[0113](3)用户通过Assert语言编辑器输入组件信息流安全断言;
[0114](4)结合生成的可执行文件和安全断言,模型检测验证引擎开始进行验证;若验证成功,执行步骤(3);若验证失败,跳转至步骤(12);
[0115](5)生成组件证书并存储至组件证书库中;
[0116](6)判断嵌入式系统中的所有组件验证是否完成,若未完成,返回步骤(I)继续下一组件验证;若已完成,执行步骤(7);
[0117](7)用户通过组合关系编辑器输入待验证嵌入式系统组件间的组合关系;
[0118](8)验证条件生成器根据组合关系生成相邻组件间信息流安全验证条件;
[0119](9)组件证书分析器读取验证所需的组件证书;
[0120](10)可组合信息流安全验证引擎验证组件间信息流安全性;若验证成功,执行步骤(11);若验证失败,执行步骤(12);
[0121](11)输出验证成功结果,执行步骤(13);
[0122](12)将出错信息报告传输至失败结果分析器,输出失败反例;
[0123](13)验证工作结束。
【权利要求】
1.一种嵌入式软件的可组合信息流验证系统,其特征在于,包括: —组件验证子系统,用于对嵌入式系统中单一组件的信息流安全属性进行验证;—可组合验证子系统,用于对存在组合关系的组件间的信息流安全属性进行验证;—组件证书库,用于存储验证通过的组件验证证书,并向用户、组件验证子系统及组合验证子系统提供证书更新、调用接口 ; —失败结果分析器,用于接收验证引擎输出的失败原因,将嵌入式系统中失败的反例输出给用户,指导用户修改嵌入式系统设计; 所述组件验证子系统和可组合验证子系统分别连接组件证书库和失败结果分析器,组件证书库与系统证书导入相接,失败结果分析器输出系统反例。
2.根据权利要求1所述的嵌入式软件的可组合信息流验证系统,其特征在于,所述组件验证子系统包括Promela语言编辑器、Promela语言编译器、Assert断言编辑器和模型检测验证引擎,所述Promela语言编辑器连接Promela语言编译器,Promela语言编译器和Assert断言编辑器分别连接至模型检测验证引擎,模型检测验证引擎将验证信息分别输出至组件证书库和失败结果分析器。
3.根据权利要求2所述的嵌入式软件的可组合信息流验证系统,其特征在于,所述Promela语言编辑器采用文本框的图形化界面接收用户输入,并提供文件管理、文本编辑、Assert断言编辑器、编译及运行接口 ; 所述文件管理包括新文件创建、打开、保存和系统退出; 所述文本编辑包括文本查找和替换; 所述Assert断言编辑器接口 则调用生成新的Assert编辑窗口 ; 所述编译及运行接口则分别调用Promela语言编译器和模型检测验证引擎完成模型编译及验证运行。
4.根据权利要求2所述的嵌入式软件的可组合信息流验证系统,其特征在于,所述PiOmela语言编译器接收Promela语言编辑器提交的模型输入,并按照Promela语法规则对该模型输入进行检测,若存在语法错误,返回该错误类型和地址;若无错误,则编译成可执行文件; 所述Assert断言编辑器采用对话框图形化界面接收用户输入,并存入输入模型的描述文件中,在运行时有模型检测验证引擎调用读取; 所述模型检测验证引擎负责调用编译通过的可执行文件,并结合Assert断言检测模型执行过程中是否符合信息流安全要求;若验证通过,结合组件描述生成组件证书;若验证失败,将出错的信息报告给失败结果分析器。
5.根据权利要求1所述的嵌入式软件的可组合信息流验证系统,其特征在于,所述可组合验证子系统包括组合关系编辑器、验证条件生成器、组件证书分析器和可组合信息流安全验证引擎,所述组合关系编辑器连接验证条件生成器,验证条件生成器和组件证书分析器分别连接至可组合信息流安全验证引擎,可组合信息流安全验证引擎和组件证书分析器将验证信息分别输出至组件证书库和失败结果分析器。
6.根据权利要求5所述的嵌入式软件的可组合信息流验证系统,其特征在于,所述组合关系编辑器采用文本框的图形化界面接收用户输入,并提供文件管理、文本编辑及运行验证接口 ;所述文件管理包括新文件创建、打开和保存和编辑器关闭; 所述文本编辑功能包括文本查找和替换; 所述运行验证接口将调用验证条件生成器和可组合信息流安全验证引擎完成验证工作,在运行之前以对话框形式要求用户手动输入参与组合验证组件的证书文件的路径。
7.根据权利要求5所述的嵌入式软件的可组合信息流验证系统,其特征在于,所述验证条件生成器接收BPEL语言描述的组合关系;生成相邻组件间保证信息流安全的验证条件; 所述组件证书分析器根据用户输入的组件证书路径读取相应的证书交给验证引擎进行验证; 所述可组合信息流验证引擎根据组件间信息流安全验证条件以及组件证书对组件间的信息传递过程进行验证;若验证成功,输出验证通过结果;若验证失败,将出错的信息报告给失败结果分析器。
8.根据权利要求1所述的嵌入式软件的可组合信息流验证系统,其特征在于,所述组件证书库包括与系统证书导入相接的证书储存单元、证书存储单元分别连接至证书生成接口模块和证书读取接口模块,证书生成接口模块连接至组件验证子系统,证书读取接口模块连接至可组合验证子系统。
9.根据权利要求8所述的嵌入式软件的可组合信息流验证系统,其特征在于,所述组件证书存储单元将生成的组件证书以xml文件形式存储在磁盘中,同时提供证书导入\导出功能,实现证书的可迁移; 所述证书生成接口模块由模型检测验证引擎进行调用,当组件验证通过后,模型检测引擎结合组件描述信息调用该接口生成证书并存储在证书存储单元中;` 所述证书读取接口模块由可组合验证子系统中的组件证书分析器进行调用,读取证书中关于组件输入输出及其相应安全级的信息。
10.一种基于嵌入式软件的可组合信息流验证系统的方法,其特征在于,该方法包括下述步骤: (1)用户通过Promela语言编辑器输入待验证嵌入式系统的组件描述; (2)Promela语言编译器对输入的组件描述进行编译,生成检测可执行文件;编译成功,执行步骤(3);若编译错误,返回步骤(1)对组件输入进行修改; (3)用户通过Assert语言编辑器输入组件信息流安全断言; (4)结合生成的可执行文件和安全断言,模型检测验证引擎开始进行验证;若验证成功,执行步骤(3);若验证失败,跳转至步骤(12); (5)生成组件证书并存储至组件证书库中; (6)判断嵌入式系统中的所有组件验证是否完成,若未完成,返回步骤(1)继续下一组件验证;若已完成,执彳丁步骤(7); (7)用户通过组合关系编辑器输入待验证嵌入式系统组件间的组合关系; (8)验证条件生成器根据组合关系生成相邻组件间信息流安全验证条件; (9)组件证书分析器读取验证所需的组件证书; (10)可组合信息流安全验证引擎验证组件间信息流安全性;若验证成功,执行步骤(11);若验证失败,执行步骤(12);(11)输出验证成功结果,执行步骤(13);(12)将出错信息报告传输至失败结果分析器,输出失败反例; (13)验证工作结束。
【文档编号】G06F11/36GK103488570SQ201310462831
【公开日】2014年1月1日 申请日期:2013年9月29日 优先权日:2013年9月29日
【发明者】习宁, 马建峰, 孙聪, 李亚晖, 牛文生, 张涛, 宣杭, 郭鹏 申请人:西安电子科技大学, 中国航空工业集团公司第六三一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1