可信密码模块符合性测试方法研究
- 格式:pdf
- 大小:1.16 MB
- 文档页数:10
第55卷第1期 2009年2月武汉大学学报(理学版)J.Wuhan Univ.(Nat.Sci.Ed.)Vol.55No.1 Feb.2009,031~034 收稿日期:2008204228 通讯联系人 E 2mail :feng @基金项目:国家高技术研究发展计划(863)项目(2007AA01Z412)作者简介:李 昊(19832),男,博士生,现从事网络与系统安全的研究. E 2mail :lihao @文章编号:167128836(2009)0120031204可信密码模块符合性测试方法与实施李 昊,冯登国 ,陈小峰(信息安全国家重点实验室/中国科学院软件研究所,北京100190) 摘 要:提出了一种有效的可信密码模块符合性测试方法,给出了衡量指标,并按照该指标对测试进行了测试分层,利用可信密码模块(TCM )内部命令的依赖关系建模获取测试用例.由于该方法分别在功能层采用扩展有限状态机模型、在命令层采用等价类划分法获取测试用例,所以能对现有TCM 产品实施更加完备的符合性测试.测试结果表明:与其他TCM 测试方法相比,本测试方法具有较高的测试效率,能够发现更多产品不符合标准带来的问题.关 键 词:可信密码模块;符合性测试;扩展有限状态机模型;等价类测试中图分类号:TP 309 文献标识码:A0 引 言 可信密码模块(t rusted cryptograp hy module ,TCM )符合性测试是指采用独立的测试方法参照国家相关标准对TCM 产品的标准符合程度进行测试.目前,国际可信计算组织TCG (trusted comp u 2ting group )推出了可信平台模块(t rusted platform module ,TPM )芯片以及相关的一系列标准和规范[1].同时,针对TCM 芯片的相关的测试评估工作也陆续展开[2~5].在国内,国家密码管理局于2007年出台了可信计算平台的国家标准《可信计算密码支撑平台功能与接口规范》[6].但是针对可信计算产品的符合性测试工作,国内才刚刚开始展开,到目前为止,仍然缺乏一种有效的可信计算产品符合性测试方法.文献[4]采用针对可信平台模块内每个命令开发测试用例的方式对可信平台模块的符合性测试进行了实施,发现了一些产品不符合标准带来的问题,指出了符合性测试的重要性.但是该文献并没有提出高效的测试框架和测试方法,测试结果无法给出产品符合标准的程度.本文在可信计算平台的国家标准《可信计算密码支撑平台功能与接口规范》基础上对TCM 芯片的符合性测试工作进行了研究和实施.提出了一种新的TCM 芯片的符合性测试框架和测试方法及测试覆盖度分析,按照这种框架和测试方法,对市场上的主流TCM 产品进行了符合性测试,通过结果分析,表明本方法在效率及覆盖度的分析上具有明显的优势,是一种行之有效的可信计算产品符合性测试方法.1 设计与计算方法1.1 框架设计本文提出的测试的框架,包括符合度的衡量指标、测试分层及每层采用的测试方法.TCM 芯片的符合度衡量分为4个指标:功能性,可靠性,鲁棒性,安全性.●功能性指标衡量的是TCM 产品对标准中功能需求的完成程度.●可靠性与鲁棒性指标分别衡量的是TCM 产品在接收到合法与不合法输入时,输出与标准符合的程度.●安全性指标只关注那些在国家标准《可信计算密码支撑平台功能与接口规范》中明确提出的安全性要求,比如字典攻击等.从单条TCM 命令的执行来看,TCM 就是一个黑盒,根据输入计算输出.因此可以认为TCM 是一个有着清晰规范接口的软件模块,并采用类似软件武汉大学学报(理学版)第55卷模块的测试技术[7,8].从TCM功能层面考虑,TCM符合性测试不仅仅需要测试单条命令对于规范的符合性,还需要测试若干条命令的组合使用是否符合规范.因此本文提出一种新的测试框架,不同的测试层采用不同测试指标和不同测试方法,如图1所示.图1 TCM符合性测试框架由图1可以看出,命令层进行的是较低层的单条命令的符合性测试,针对的符合度指标为可靠性与鲁棒性.为了保持测试空间的可执行性,本文采用了等价类划分法来对测试空间进行约减.其中,有效等价类获得的测试用例,测试的是合法输入的情况下,TCM产品的输出对规范的符合程度,针对的是可靠性指标;无效等价类获得的测试用例,测试的是非法输入的情况下,TCM产品的输出对规范的符合程度,针对的是鲁棒性指标.功能层进行的是较高层的TCM各种功能的符合性测试,针对的符合度指标为功能性和安全性.1.2 指标符合度计算方法测试结果的指标符合度采用如下的公式进行计算:W F=C1・Q F(1)W S=C1・Q S(2)W R=C2・Q R(3)W O=C2・Q O(4)V F=C1・(1-Q F)(5)V S=C1・(1-Q S)(6)V R=C2・(1-Q R)(7)V O=C2・(1-Q O)(8)其中C1,C2分别是功能层与命令层的测试覆盖度,即测试用例对标准的覆盖范围.Q F,Q S,Q R,Q O分别为功能性、安全性、可靠性、鲁棒性测试符合度,即为各指标测试用例通过的个数与该指标测试用例总数的比值,而测试不符合度为各指标测试用例不通过的个数与该指标测试用例总数的比值.两者之和等于1.W F,W S,W R,W O分别为功能性、安全性、可靠性、鲁棒性指标符合度,是表达TCM产品对标准符合程度的百分数,是测试结果的最终体现.V F,V S, V R,V O分别为功能性、安全性、可靠性、鲁棒性指标不符合度,是表达TCM产品对标准不符合的程度的百分数.由于受到测试覆盖度的影响,每个指标符合度与指标不符合度之和都小于等于1.2 测试的实施方法2.1 功能层功能层测试用例产生的具体步骤如下:Step1 根据规范将TCM划分为23个模块[6].每个模块由若干条TCM命令组成,完成TCM的特定功能.Step2 为每一个模块生成其内部命令的依赖关系图.Step3 根据每个模块的命令依赖关系图,建立EFSM模型[9].每个状态是由模块内部命令针对的TCM资源等变量组成.Step4 根据EFSM模型,获得测试用例[9,10].Step5 根据测试用例,进行功能层的符合性测试.其中,第4步从EFSM获取测试用例,本文以Owner管理模块为例说明这一过程.Owner管理模块共有5条命令,但是依赖关系只有两个,如图2所示.图2 Owner管理模块命令依赖关系图依赖关系是指某命令的执行需要一些其他命令的成功执行.由图2可以看出:TCM_OwnerClear 以及TCM_DisableOwnerClear依赖于TCM_ TakeOwnership命令的成功执行,所以它们之间具有依赖关系.而TCM_DisableOwnerClear命令的执行,只是影响到TCM_OwnerClear的执行成功与否,但是它们之间并不存在依赖的关系.同理,TCM _DisableForceClear也与其他命令不具有依赖关系.根据得到的依赖关系图,Owner管理模块的扩展有限状态机模型如图3所示.图3模型中共有两个状态:S1表示无Owner 状态,S2表示有Owner状态.迁移共有7个,迁移的格式为:事件[转移条件]/转移完成后的执行动作序列,比如迁移TCM_ForceClear[ForceClear Ena223第1期李 昊等:可信密码模块符合性测试方法与实施图3 Owner 管理模块扩展有限状态机模型bled ]/Clear Owner 表示当模型处于无Owner 状态时,如果ForceClear 是Enable 的,那么就可以执行迁移事件TCM_ForceClear ,目的状态仍然为S 1,并且要完成Clear Owner 的动作.然后通过等价类划分法从EFSM 模型获得完备的测试用例集[9].2.2 命令层一个TCM 命令的执行往往隐式地需要很多其他命令的成功执行,为了把关注点集中在被测命令上,本文将被测命令隐式需要的其他命令的执行结果也作为被测试命令的参数.用测试向量的方式来组织命令层测试用例.一个测试向量包括被测命令本身需要参数P 1,P 2,P 3,…,P n ,还包括隐式需要的其他命令执行结果R 1,R 2,R 3,…,R n ,那么某个测试向量V =P 1∧P 2∧P 3∧…∧P n ∧R 1∧R 2∧R 3∧…∧R n .其中,P m 的取值范围是{等价类1,等价类2,…},1≤m ≤n.R m 的取值范围是{等价类1′,等价类2′,…},1≤m ≤n .按照常用的等价类测试原则,即可得到测试向量.3 结果与分析本文对市场上两款主流TCM 芯片做了符合性测试,并按照公式1~4计算出产品对标准的符合程度,结果如表1所示. 其中,由于无法对安全性测试用例覆盖度进行分析,所以其指标符合度不确定. 从表1可以清楚的看出产品对标准的符合程度.而目前其他对可信芯片的符合性测试工作[4],都无法清晰的给出产品符合度.同时,由于本文的测试方法采用扩展有限状态机及等价类划分法获取测试用例,使得在测试的覆盖度分析,可扩展性,高效性等方面都具有更大优势.本文和鲁尔大学方案的对比如表2所示.表1 测试结果指标符合度例数产品1产品2功能性5320.920.89安全性18≤0.88≤0.88可靠性1050.950.90鲁棒性2110.890.84表2 鲁尔大学方案和本文的方案的比较比较项目文献[4]方案本文方案结果可追溯性无差别无差别测试公正性无差别无差别结果可比较性无差别无差别测试高效性较低较高可扩展性弱强覆盖度分析无有符合度分析粗略详细对测试人员要求高低 同时,由于本文采用的测试方法能够明晰的给出指标符合度的结果,所以使得测试更加的完备,能够发现更多TCM 产品不符合标准带来的问题.而这些问题是其他测试方法不能全部发现的.具体问题如下:①资源句柄:资源句柄的生成必须是无序随机的.而经过测试发现被测产品中有些TCM 芯片对密钥句柄的产生是有序的.这样新产生的密钥句柄就缺少了新鲜性的保证.如果攻击者有能力从TCM 中释放一个密钥,那么就会造成中间人攻击.②命令码:命令码是用于标识所调用TCM 命令的参数.而在被测产品中,有些命令码的基数设置与标准不符.虽然不会带来安全问题,但是对基于TCM 芯片的软件的通用性造成了很大问题.③授权值:在授权值的测试中,出现了两个问题.一个是授权值的计算并没有严格按照标准进行,每个产品都或多或少的做了改变,对产品的兼容性造成影响.另一个问题是安全方面的问题.在无授权操作模式下,使用资源是不需要提供授权数据的.如果提供了授权数据,按照规范应该提示错误.而测试中发现,厂商的TCM 产品并没有严格遵守这一规定,在使用无授权资源时,如果用户提供了授权数据,TCM 将正常运行,没有任何错误提示.这会带来用户认知与实际中授权数据使用与否的差异,这种差异会带来安全问题.④命令返回码:TCM 产品有时会返回产品内部定义的返回码,而非规范中的定义的.这种问题会33武汉大学学报(理学版)第55卷给攻击者以机会.通过分析这些TCM内部值,攻击者将找到TCM产品的漏洞,从而实施攻击.4 结 论本文主要关注于TCM产品的符合性测试的研究和实施,提出了TCM符合性测试框架和方法,并对TCM产品实施了测试.本文的测试方法划分了符合性度量指标与测试方法,并将测试分为命令层与功能层,分别采用等价类划分和EFSM模型来获取测试用例.最后通过结果分析及与其他符合性测试工作的对比,表明本文测试方法能全面地发现产品不符合标准带来的问题,并且在测试的高效性等方面具有优势.参考文献:[1] Trusted Computing Group.TPM Main Specification:Design Principles V1.2[EB/OL].[2007212217].ht2 t p://w w w.t rustedcom p uting g rou p.[2] Atmel Corporation.A T97SC3201Security TargetVersion2.3[EB/OL].[2007212221].htt p://w w w.commoncriteria /f iles/ep f iles/S T_V I D2 30052S T.p d f.[3] Atmel Corporation.A T97SC3201:The Atmel TrustedPlatform Module[EB/OL].[2007212229].htt p://w w /d y n/resources/p rod_documents/doc5010.p d f.[4] Ahmad2Reza S,Marcel S,Christian S,et al.TCG Inside:A Note on TPM Specification Compliance[C]//Proceed2ings of the Fi rst A CM Workshop on Scalable TrustedCom puting.New Y ork:ACM Press,2006:47256.[5] Danilo B,Lorenzo C,Andrea L,et al.Replay Attack inTCG Specification and Solution[C]//21th A nnualCom puter Securit y A p plication Conf erence(A CS A C’05).Tucson:IEEE Press,2005:1272137.[6] 国家密码管理局.可信计算密码支撑平台功能与接口规范[EB/OL].[2007211226].htt p://w w w.oscca./Doc/6/N ews_1132.htm.OSCCA.Functionality and Interface Specification ofCryptographic Support Platform for Trusted Compu2ting[EB/OL].[2007211226].htt p://w w w.oscca./Doc/6/N ews_1132.htm(Ch).[7] Beizer B.B lack2B ox Testing:Techniques f or Func2tional Testing of S of tw are and S ystems[M].NewY ork:John Wiley&Sons Press,1995.[8] Beizer B.S of tw are Testing Techniques[M].NewY ork:International Thomson Computer Press,1990. [9] 易国洪,卢炎生.基于EFSM模型的等价类测试[J].计算机科学,2007,34(1):2812284.Y i Guohong,Lu Y ansheng.Equivalence T esting Based onEFSM[J].Com puter Science,2007,34(1):2812284(Ch).[10]Cheng K T.Automatic G eneration of Functional VectorsUsing the Extended Finite StateMachine Model[C]//A CM Transactions oil Desi gn A utomation of ElectronicS ystems.New Y ork:ACM Press,1996:57279.Compliant T esting Method of T rusted Cryptography ModuleL I H ao,FENG Dengguo,CHEN Xiaofeng(State Key Laboratory of Information Security/Institute of Software of Chinese Academy of Sciences,Bejing100190,China) Abstract:An effective compliant testing met hod is p roposed in t his paper,which brings forward four scale indexes,dividing t he testing job into two layers.This met hod uses EFSM and equivalence testing skills to get test cases.Then we p ro secute t he testing job which coveres t he whole specification successf ul2 ly.Finally,by analyzing t he testing result s,t his paper shows t hat t he p roposed met hod,when compared wit h t he ot her TCM testing met hods,is more effective in detecting t he problems caused by t he product s not conforming wit h t he standard.K ey w ords:t rusted cryptograp hy module;compliant test;extended finite state machine model;equiv2 alence test43。
GM/Y5001-2017密码标准应用指南2017年11月目录一序言 (1)二密码标准框架 (2)三密码基础类标准 (5)1.GM/T0001祖冲之序列密码算法 (5)2.GM/T0002SM4分组密码算法 (7)3.GM/T0003SM2椭圆曲线公钥密码算法 (9)4.GM/T0004SM3密码杂凑算法 (11)5.GM/T0006密码应用标识规范 (13)6.GM/T0009SM2密码算法使用规范 (15)7.GM/T0010SM2密码算法加密签名消息语法规范 (17)8.GM/T0028密码模块安全技术要求 (18)9.GM/T0044SM9标识密码算法 (21)10.GM/Z4001密码术语 (23)四基础设施类标准 (25)1.GM/T0014数字证书认证系统密码协议规范 (25)2.GM/T0015基于SM2密码算法的数字证书格式规范 (27)3.GM/T0034基于SM2密码算法的证书认证系统密码及其相关安全技术规范 (29)五密码设备类标准 (32)1.GM/T0012可信计算可信密码模块接口规范 (32)2.GM/T0016智能密码钥匙密码应用接口规范 (34)3.GM/T0017智能密码钥匙密码应用接口数据格式规范 (36)4.GM/T0018密码设备应用接口规范 (38)5.GM/T0022IPS EC VPN技术规范 (40)6.GM/T0023IPS EC VPN网关产品规范 (43)7.GM/T0024SSL VPN技术规范 (45)8.GM/T0025SSL VPN网关产品规范 (46)9.GM/T0026安全认证网关产品规范 (48)10.GM/T0027智能密码钥匙技术规范 (49)11.GM/T0029签名验签服务器技术规范 (51)12.GM/T0030服务器密码机技术规范 (54)13.GM/T0045金融数据密码机技术规范 (56)1.GM/T0011可信计算可信密码支撑平台功能与接口规范 (60)2.GM/T0019通用密码服务接口规范 (63)3.GM/T0020证书应用综合服务接口规范 (65)4.GM/T0032基于角色的授权管理与访问控制技术规范 (67)5.GM/T0033时间戳接口规范 (70)七密码检测类标准 (73)1.GM/T0005随机性检测规范 (73)2.GM/T0008安全芯片密码检测准则 (74)3.GM/T0013可信计算可信密码模块接口符合性测试规范 (76)4.GM/T0037证书认证系统检测规范 (78)5.GM/T0038证书认证密钥管理系统检测规范 (80)6.GM/T0039密码模块安全检测要求 (82)7.GM/T0040射频识别标签模块密码检测准则 (84)8.GM/T0041智能IC卡密码检测规范 (87)9.GM/T0042三元对等密码安全协议测试规范 (89)10.GM/T0043数字证书互操作检测规范 (91)11.GM/T0046金融数据密码机检测规范 (92)12.GM/T0047安全电子签章密码检测规范 (95)13.GM/T0048智能密码钥匙密码检测规范 (96)14.GM/T0049密码键盘密码检测规范 (98)八密码管理类标准 (101)1.GM/T0050密码设备管理设备管理技术规范 (101)2.GM/T0051密码设备管理对称密钥管理技术规范 (103)3.GM/T0052密码设备管理VPN设备监察管理规范 (105)4.GM/T0053密码设备管理远程监控和合规性检验接口数据规范 (107)九密码应用类标准 (109)1.GM/T0021动态口令密码应用技术规范 (109)2.GM/T0031安全电子签章密码技术规范 (111)3.GM/T0035射频识别系统密码应用技术要求 (112)4.GM/T0036采用非接触卡的门禁系统密码应用技术指南 (122)附录A.编号索引 (125)附录B.金融领域国产密码应用推进技术要求 (128)B.2密码算法 (128)B.3密码算法使用 (128)B.4金融IC卡 (129)B.5网上银行 (129)B.6移动支付 (129)B.7电子认证 (130)B.8安全芯片 (131)一序言密码技术是网络安全的核心技术和基础支撑。
密码模块安全测评的思路和方法中国信息安全测评中心 石竑松 李贺鑫 杨永生在信息安全的基础支撑技术中,密码技术可谓研究最深入,同时也是难度最大的研究内容之一。
经过40多年的发展,由于基础数学和计算复杂性理论的相互促进,现代密码学的研究逐步趋于成熟,基础性概念及其相互依赖关系不断明确,丰富多彩的应用形式不断被开发出来。
当然,现代密码学的研究还远未完善,尽管可以构造一些在理想世界中安全的方案,其安全性在真实世界中并不容乐观。
为了保障密码应用安全,有必要对密码模块进行安全测评。
在这个问题上,基于距离度量的观念逐步得到认可。
简单地说,我们可以从差距分析的角度测量安全属性在理想世界和真实世界之间的距离,再评估这种距离对安全性的影响。
这种观念在很多测评标准中得到了体现,其中GB/T 18336(即通用评估准则CC标准)和GM/T 0028(即《密码模块安全技术要求》)是这方面的典范。
为了清楚地讨论密码模块的测评方法,本文在介绍密码算法理论安全性的基础上,将分析密码模块面临的各种安全威胁,论述密码模块应具备的安全防护能力,最后再回到具体的标准层面,梳理现有的两种密码模块测评方法,即基于GB/T 18336和GM/T 0028的测评方法,希望有利于读者了解密码模块测评技术,为后续改进测评方法、提高密码模块安全性提供思路。
一、密码算法的理论安全性一个密码模块的实际安全性取决于三个方面:首先,密码算法必须是理论上安全的(理论安全性);其次,密码算法的实现方法和过程必须是安全的(实现安全性);再者,密码模块的运行管理必须是安全的(运行环境安全性),不难发现这三个方面实际上对应着密码模块的设计、实现和运行三个生命周期阶段。
与密码算法的理论研究不同,安全测评很少触及密码算法的理论安全证明过程,但是由于算法安全性的定义方法对安全测评有直接影响,本节将对此进行讨论。
在此之前,先做两项约定:首先,本文主要关注技术层面的安全问题,对于密码运行管理安全问题不作讨论。
密码模块安全要求测试方法简介随着信息技术的不断发展,电子化应用逐渐成为人们生活和工作的重要组成部分,而安全领域也随着不断地向前发展。
在许多应用中,密码模块的安全性显得十分关键。
因此,为了保证密码模块的有效性和安全性,我们需要对密码模块进行测试。
本文将从密码模块的安全要求出发,分析和介绍一些密码模块的测试方法。
安全要求首先,对密码模块的一些安全要求进行介绍。
1.密码的独立性在密码模块中,每个密码必须是独立的,即一个密码不能被其他密码推断出来或者利用其他密码获得。
2.密码的保密性对于密码保密性的要求很高,密码不能被任何人知道,包括密码模块的开发者和管理员。
如果密码泄露,将可能给应用和用户带来严重的风险。
3.密码的可靠性密码模块中的密码必须是可靠的,不能被人轻易地猜测或者模拟出来,否则会导致应用的安全受到威胁。
测试方法接下来,我们将介绍一些可用于测试密码模块的安全性的方法。
1. 弱密码测试弱密码通常指那些太短、太简单或太容易猜测的密码。
弱密码测试可以通过模拟攻击者尝试多种可能性,测试密码是不是太容易被猜测或者破解。
2. 常用密码测试常用密码通常是指使用普遍的单词、数字、字符组合作为密码的情况。
这种测试可以通过对所有用户使用的密码进行分析和比较,验证这些密码是否容易被猜测或者共享。
3. 能否重置密码在某些情况下,用户可能需要重置其密码。
这种情况下,密码模块必须能够保证可以重置密码,但同时也要确保重置密码时仍然满足密码的独立性和保密性。
4. 密码长度和复杂度测试密码长度和复杂度是一个密码安全性的重要指标。
测试时可以针对密码长度和复杂度进行多组测试,以验证密码模块的有效性和安全性。
5. 角色和访问授权测试在多用户环境中,不同用户的角色和访问权限是不同的。
测试时可以通过增加或者减少用户的权限来测试是否会影响到其他用户的角色和权限。
总结以上是一些可用于测试密码模块安全性的方法。
当然,为了保障密码模块的安全性,我们还可以采用其他测试方法来协助评估密码模块的安全性和可靠性。