一种可信密码模块的测试用例生成方法及其测试系统的制作方法

文档序号:6463368阅读:194来源:国知局

专利名称::一种可信密码模块的测试用例生成方法及其测试系统的制作方法
技术领域
:本发明涉及一种嵌入式系统的测试方法及其系统,尤其涉及一种可信密码模块的测试用例生成方法及其测试系统,属于计算机
技术领域

背景技术
:可信计算平台技术是一种通过硬件信任根解决安全问题的新技术,可信平台模块(简称TPM)是可信计算平台的核心和基础,是可信计算平台推广和应用的关键。可信计算平台的发展与应用是和相应的技术规范分不开的,为了促进可信计算平台的发展,2003年,可信计算组织(TrustedComputingGroup,简称TCG)给出了可信平台模块(TrustedPlatformModuel,简称TPM)1.2规范,详细界定了TPM的功能。同时为了促进国内可信计算平台产业的发展,国家商用密码管理办公室发布了国产可信密码模块(TrsutedCryphographicModule,简称TCM)的相关标准,详细界定了国产TCM的功能。为可信计算平台在国内的发展奠定了基础。在可信平台模块的形式化分析和建模方面,MatthewBarrett对TPM的一些关键安全机制进行了形式化分析,其建立的模型主要是用于安全性分析。同时DaniloBmschi等人对TPM的授权协议进行了形式化的分析,并且通过模型检测技术分析该协议存在的攻击方法。可信密码模块的测试方法和测试系统对可信密码模块的功能和符合性方面的要求进行全面而完整的测试,需要一种完善的方案支持测试的实施。Ahmad-RezaSadeghi等人针对TPM给出了一个详细的测试方案并且给出了测试结果,对测试的结果进行了详细的分析。所有这些针对TPM或者TCM的分析和测试方法都没有给出一个完整的系统,并且没有给出一种如何从规范生成测试用例的方法。
发明内容针对可信密码模块的测试需求,本发明提供了一种可信密码模块的测试用例生成方法及其测试系统,其通过利用扩展有限状态机对可信密码模块进行建模,然后通过扩展有限状态机生成测试用例,将测试用例输入到测试系统中对可信密码模块进行完整的测试,本发明提高了测试的准确性和覆盖率,本发明提出的方法与系统能解决如下的问题(1)可信密码模块的形式化建模目前国家商用密码管理办公室给出的TCM规范是描述性的,容易造成歧义,不利于产品开发,因此给出一个准确的形式化模型是十分必要的,同时准确的形式化模型可以给TCM的功能验证、分析以及形式化测试提供基础。(2)—致性测试的测试用例的数量和质量问题目前针对可信密码模块的测试用例都是手工来完成的,而手工测试最大的问题在于测试的完整性和覆盖度问题无法解决,从而造成测试结果的可信度不高。此外,测试用例的有效性将直接影响TCM的测试效率和测试成本,如何实现测试用例的自动生成成为亟需解决的问题。(3)可信密码模块的测试缺少自动化测试方案的支持由于TCM规范涉及的内容广泛,纯手工的的测试需要大量的人力和物力,迫切需要一种自动化的测试方案以支持测试的自动化,并提供相应的支撑系统。测试用例的生成方法的步骤包括1、可信密码模块系统的划分可信密码模块是一个完整的信息系统,其内部由多个有相互联系但并不十分紧密的系统构成,首先根据可信密码模块系统内的功能进行划分,建立划分后的各个子系统的依赖图。划分的粒度由具体情况而定;2、子系统的扩展有限状态机的生成在第1步子系统划分的基础上,针对各个子系统进行系统内部的建模,建立各个命令之间的关系,生成子系统的扩展有限状态机;3、测试用例的生成根据生成的扩展有限状态机生成测试用例。较佳地,第2步中生成扩展有限状态机可以采用如下的步骤和方法1)对子系统内部的状态进行划分,形成子系统内部的状态;2)建立子系统内的命令之间的执行顺序依赖图,3)根据子系统内的状态,从初始状态出发,按照命令的执行先后顺序,在对应的状态上应用某个可执行命令,造成状态的迁移,从而提取出迁移路径;4)根据第l)、3)步生成的状态和迁移路径,即可形成扩展有限状态机。较佳地,第1)步中的状态划分可以采用一种基于类型的状态划分方法,该状态提取方法如下描述-设决定状态空间的状态变量为,其中X,表示的是单值变量,类型分别为7;,...,7;,而4是一个集合变量,集合中的元素类型为77^,...,77;(类型决定了变量的取值空间,本发明不区分类型和取值空间)(a)初始状态空间为兰""…,",…"4I、e7;,…,x"《4eP巧,…,4eP7TJ;(b)状态的细分下面根据状态变量的不同对状态进行细分-■单值变量基于一定的策略对单值变量x,的取值进行划分,如边界值分析法,类别划分方法。通过这种方法可以将状态进一步的细分。基于策略;0//^,对状态S关于状态变量《的划分定义为-其中^&表示状态S经过状态变量A细分之后的子状态,S是对x,变量进行约束的谓词逻辑,如x,.>=0;爿^)表示状态中状态变量x;的取值空间。■集合变量对集合变量,采用基于类型的划分方法进行状态空间的划分,先定义集合划分的概念:定义3.2设A是一个非空集合,如果存在一个A的子集族^满足以下条件1)0g;r;2)"中任意两个元素不相交;3)"中所有元素的并集等于A;则称"为集合A的一个划分。■组合状态变量如果内部存在的状态变量既包含单值变量A,.』",又包含集合变量4,...,4,那么最后的状态空间是各个变量之间的完全组合。得到的状态数为,、,x(2"-1)(C)状态的缩减从上面的分析可以看出,如果状态变量的个数比较多,那么其存在的状态空间将会急剧增加,一种解决办法是在状态细分这一步中,控制各个状态变量的划分粒度;另一种解决办法是根据需求(如测试需求)对最后产生的状态空间进行限制,下面通过TCM状态的提取来说明基于类型的状态划分方法。较佳地,第(b)步中可以采用如下的一种基于函数的集合划分方法。若存在由集合T到类型V的函数/:r—K,且类型^是有限集,ra(/)={Vl,V2...V}。则类型T的函数值划分;r={{V"rI/(,)=Vl},{V/:TI/(,)=v2},.."{V"rI=v}}。因此函数/按照状态集合变量4可对状态S进行划分,得到划分后的结果为i^to<&4,/)={fiV.,fi^{V"e5Sl(4)|/(5Sl(4》=Vl}...{VweJSSi04y)|/(5^04/))=、}}其中A^(4)表示状态5S中集合变量4的取值空间中类型为77;的元素集合。各个划分之间互相组合得到最后的状态空间。划分之间进行状态组合得到状态空间的个数为较佳地,第3步中生成测试用例时可以按照状态或者迁移标准为依据生成测试用例。测试系统主要包括1、脚本解析引擎分析描述测试用例的脚本,并对其进行解析,调用可信密码模块的命令执行脚本;2、结果分析引擎对测试生成的结果进行分析,产生合适的统计数据和统计报表,并生成综合报告文档;3、通信模块与可信密码模块和数据库进行通信。较佳地,脚本解析引擎所能识别的测试脚本语言釆用一种过程语言,具体的脚本语言可自行设计实现。较佳地,可信密码模块与测试系统可以分布在不同的网络上,由通信模块完成数据的交互与采集。将生成的测试用例输入到测试系统中(以脚本的形式),由脚本解析引擎解释执行测试用例就可以实现对测试用例进行测试。本发明的积极效果采用本发明之后,测试用例可以以自动化的方式生成,避免了手工测试用例无法保证测试完整性无法保证从而造成测试结果的可信度不高的问题。并且本发明给出的系统是一个自动化的测试系统,减少了一些人工的干预,节省了成本。图1为可信密码模块测试用例生成方法;图2为系统抽象状态和初始化定义;图3为密钥生成,载入,载出操作模式;图4为封装和解封操作模式;图5为状态迁移的提取算法;图6为密码子系统的EFSM图;图7为可信密码模块测试系统结构图;图8为TCM各个子系统依赖关系图;图9为密码子系统内的命令依赖关系。具体实施方式下面结合附图详细描述本发明的具体实施方式。首先对可信密码模块的子系统进行划分,根据各个子系统实现的功能进行严格划分,这样各个划分后的子系统依赖程度低;这里可信密码模块可以分为如下各个子系统密码子系统,TCM管理子系统,平台身份表识管理子系统,存储保护子系统,标识和鉴别子系统,完整性保护子系统,可信路径子系统。各个子系统之间的依赖关系如图8所示,其中箭头指向表示依赖关系,如密码子系统指向完整性保护子系统,表示密码子系统依赖完整性保护子系统。其次分别对各个子系统进行EFSM建模,下面以可信密码模块的密码子系统为例说明测试用例的生成方法,以TCM的密码子系统作为建模的对象。在具体建模过程中,由于TCM规范中指定的具体数据结构比较复杂,需要进行一定程度的数据抽象。从状态上看,TCM的初始状态是已经建立了属主身份(TakeOwner),并且TCM中将会保存有密钥的相关信息,最重要的是密钥的句柄以及密钥的属性(如类型),引入如下的抽象数据类型和全局变量。[KeyHandle,KeyType]maxcount:N;KeyType:=TCM—STORAGE|TCM—SIGN|TCM—BIND;其中KeyHandle是TCM内部密钥的句柄类型;KeyType是密钥的类型,有三种不同的密钥类型。从操作上看,主要有创建密钥,销毁密钥,使用密钥等操作。密码子系统抽象状态以及系统初始化定义的描述如图2所示,其中函数^;;//"^>;^将密钥句柄映射成不同的密钥类型,初始时TCM内部有存储根密钥SRK。密钥生成,载入,载出操作模式如图3所示。图4给出了TCM的封装操作以及解封操作的操作模式,其他关于TCM密钥的操作如解密,签名操作可用类似的形式给出。下面通过状态划分和迁移提取给出对应的扩展有限状态机(EFSM)图。密码子系统内的状态根据Z规格说明的抽象状态进行划分。1、密码子系统内状态的划分在图2,图3给出的Z语言规格说明中,只有一个集合变量te",并且存在一个约束函数一7/osT,。(l)第一步给出初始状态(2)第二步状态的细分(集合变量)其中S^"内的所有元素密钥句柄都为签名密钥,其他的定义类似。(3)第三步状态的组合状态组合数n=C32+C;+C33=2"-1=7因此最后给出的状态为-A=,S2=,&=J,S4=(5^,5^tora取),="^加,,S说W),(4)第四步状态的縮减如果力口上约束条件尸(51)兰IeAe少j,7>pe(/te>0=rCA/_'状态空间可以縮减为4个,分别为、^&^。2、建立密码子系统内的命令依赖关系命令依赖关系如图9所示,其中箭头指向标识依赖关系,如TCMSeal指向TCMlocalkey表示TCMSeal依赖TCMlocalkey。3、迁移的提取图5给出了状态迁移的提取算法。其中ffe/0)-伙e少lfe3;e4,S为内部状态的集合,O户表示TCM操作的集合,在密码子系统中,O尸=(7UMO敏勿,71Cmo盧ey,70/肠斷,:rCMW,4、最后得到的EFSM图如图6所示具体的状态含义以及状态迁移见表1,表2所示,表l,表2中只给出了其中的一条路径的迁移,其他路径的迁移是类似的。在迁移的标记(s-;c,/Vo;^-;^')中,s表示当前状态,x'表示迁移后的状态,x表示输入,P表示转移的条件,^表示转移中的操作,;;表示输出。其中涉及到的符号有,输入变量集合:V,^^,^一^,、^;输出变量集合;W,yw,凡由,,^y3W,。输入命令有TCM—CWK(产生密钥),TCM_EK,TCM_LK,TCM—UB,TCM—Seal,TCM一UnSeal,TCM—Sign,符号_y,ag(value)表示对变量乂。^赋值vahie。环境变量和全局变量集合fep(TCM中的句柄集合)等。表1EFSM状态描述<table>tableseeoriginaldocumentpage11</column></row><table>R.Dssouli,E.Aboulhamid,an线Rico,IWTCS,97,pp.75-90,1997]。测试系统的软件实现结构如图7所示,系统通过TDDL模块与可信密码模块进行交互,其中测试系统、数据库、以及可信密码模块可以分布于不同的网络,通过网络通信协议进行通信。权利要求1.一种可信密码模块的测试用例生成方法,其步骤为1)将可信密码模块划分为多个子系统;2)建立子系统内的命令依赖关系,从而生成该子系统的扩展有限状态机;3)根据生成的扩展有限状态机生成该子系统的测试用例。2.如权利要求1所述的方法,其特征在于根据可信密码模块系统内各系统的功能划分子系统;所述子系统包括密码子系统,TCM管理子系统,平台身份表识管理子系统,存储保护子系统,标识和鉴别子系统,完整性保护子系统,可信路径子系统。3.如权利要求1所述的方法,其特征在于根据所述子系统内部的命令执行顺序建立所述子系统内的命令依赖关系。4.如权利要求3所述的方法,其特征在于所述子系统的扩展有限状态机生成方法为1)对可信密码模块子系统内的状态进行划分,形成子系统内部的状态;2)根据子系统内部的命令依赖关系和子系统内部的状态,形成状态之间的迁移路径;3)根据生成的状态之间的关系提取出迁移路径;4)根据子系统内部的状态和提取的迁移路径生成扩展有限状态机。5.如权利要求4所述的方法,其特征在于所述对可信密码模块子系统内的状态进行划分的方法为i)初始状态空间为:&歸兰",…,x",4,…"41&e7;,…,x"eepr;,…,4epttj;其中^x^",^.J,4为决定状态空间的状态变量,x,表示的是单值变量,类型分别为7;,...,7;,4是一集合变量,集合中的元素类型为77;,...,77;;2)根据状态变量的不同对状态进行划分;3)组合划分后的状态变量;4)根据约束条件缩减组合后的状态变量。6.如权利要求5所述的方法,其特征在于对所述单值变量采用基于策略policy的划分方法对状态取值进行划分;对所述集合变量采用基于类型的划分方法进行状态空间的划分。7.如权利要求5所述的方法,其特征在于对所述集合变量采用基于函数的集合划分方法进行状态空间的划分由集合T到类型V的函数/:r—F,且类型7是有限集,ra"(/)={vpv2...V},则类型T的函数值划分为;r={{W:rI/(,)=Vl},{V,:r|/(O=v2}_,{V,:T|/(,)=v}}。8.如权利要求1所述的方法,其特征在于所述根据生成的扩展有限状态机生成该子系统的测试用例时遵循C.Bourhfir提出的测试用例生成方法。9.一种检测如权利要求l所述的测试用例的测试系统,其包括脚本解析引擎分析描述测试用例的脚本,并对其进行解析,调用可信密码模块的命令执行脚本;结果分析引擎对测试生成的结果进行分析,产生统计数据和统计报表,并生成综合报告文档;通信模块与可信密码模块和数据库进行通信。10.如权利要求9所述的系统,其特征在于所述脚本解析引擎所能识别的测试脚本语言为—种过程语言。全文摘要本发明公开了一种可信密码模块的测试用例生成方法及其测试系统,属于计算机
技术领域
。本发明的方法为在可信密码模块划分的子系统内部进行建模,生成该子系统的扩展有限状态机,然后通过扩展有限状态机生成测试用例;本发明的测试系统包括脚本解析引擎、结果分析引擎和通信模块。与现有技术相比,本发明的测试用例可以以自动化的方式生成,避免了手工测试用例无法保证测试完整性无法保证从而造成测试结果的可信度不高的问题,并且本发明给出的系统是一个自动化的测试系统,减少了一些人工的干预,节省了成本。文档编号G06F21/00GK101266571SQ20081010459公开日2008年9月17日申请日期2008年4月22日优先权日2008年4月22日发明者冯登国,初晓博,敏张,昊李,陈小峰申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1