APP下载

TCM固件符合性测试的设计与实施

2010-08-11杜晋奇吴秋新

通信技术 2010年7期
关键词:固件测试用例命令

杜晋奇, 吴秋新

(北京信息科技大学 a.计算机学院;b.理学院,北京 100192)

0 引言

TCM的固件是芯片TCM内的软件系统,或称为TCM的操作系统,对TCM功能体系的构建发挥关键作用,是TCM的重要组成部分。理论上讲,TCM固件应该实现国标相关规范[1]的全部功能命令和相关协议功能,是可信计算平台功能构建和安全应用支撑的基础。如果固件设计未能符合协议规范要求,存在重大纰漏,就可能因此给用户造成损失。因此对其进行协议的符合性测试以期验证其功能及性能是十分必要的。

现以可信计算国家标准《可信计算密码模块支撑平台功能与接口规范》[1]及TCG相关文档为参考标准[2-5],设计并实现了一个TCM固件自动测试工具。

1 相关工作

固件协议符合性测试应该是标准的黑盒测试,测试人员按照TCM协议制定测试规范、设计测试用例,按照黑盒测试的方法进行全面的、深入的测试,验证固件与协议的每一条款项是否符合及符合程度、给出固件与协议的符合程度的客观评测结果。文献[6]提出了一种有效的可信密码模块的符合性测试方法,在功能层采用建立扩展有限状态机模型然后通过等价类划分法从EFSM模型获得完整的测试用例集[7]。文献[8]中作者针对 TPM接口命令测试方法进行研究的合性测试方案,该方案针对TPM,并且未给出芯片稳定性测试方案。

在详细研究 TCM协议的基础上设计测试工具及测试流程,对芯片固件进行严格的、量化测试,以确认该版本芯片固件是否符合该协议,以及在多大程度上符合该协议。

2 TCM结构及命令说明

TCM芯片是一个含有密码运算部件和存储部件的小型SoC(片上系统),它嵌入在计算机的主板上,提供有关可信测量计算、可信测量存储、信任链建立、可信测量报告等体现“可信”事件的功能,还提供密码学操作、密钥管理、身份标识等应用功能。是利用可信计算技术构建通用的终端硬件平台,建立可信的信任链传递模式,可以增强计算机体系结构的安全性[7]。

固件是TCM这个片上系统的单任务操作系统。包括初始化模块,负责初始化芯片;单任务 OS核心管理模块,主要管理芯片和主板通信和管理芯片内部的Flash区域的数据,并提供安全算法接口等;TCM命令管理模块,主要实现 TCM协议功能,并且向上层TSM提供标准TCM命令接口,处理TCM命令调用请求。

TCM命令接口函数的参数分为非授权参数(前半部分),授权参数(后半部分)和输出结果参数(最后一个)。命令的参数没有授权部分的称作非授权命令,只有一个授权部分的命令称为单授权命令,有两个授权部分的称为双授权命令,如表1所示。

表1 TCM命令结构

所有命令接口函数非授权参数的前三个参数都一样,即,tag,paraSize和ordinal。tag是命令类型标记,值固定, 非授权命令的 tag 值为 TCM_TAG_RQU_COMMAND;单授权命令的 tag值为:TCM_TAG_RQU_AUTH1_COMMAND;双授权命令tag值为 TCM_TAG_RQU_AUTH2_COMMA ND;paraSize为命令长度值,是包括所有授权及非授权参数的总长;ordinal是命令号,每个命令都有自己对应的唯一的 ordinal。其它非授权参数,需要参考其数据结构,根据命令协议规范的要求,给定其中每一项的值。

3 测试用例设计

根据以上资料及TCM规范分析,主要将对命令处理模块进行可靠性测试、功能性测试及稳定性测试。

3.1 可靠性用例设计

验证当输入参数中的某个参数值发生错误,TCM能返回期望的值。还包括TCM芯片处于各个工作状态时命令执行情况。主要考察单个参数输入错误的情况及部分命令相互依赖情况。每一个命令接口需要覆盖所有TCM工作状态,也就是说需要考虑 TCM在 enable/disable,owner/unowner,active/deactived等状态下是否有效;相同命令在不同工作状态下返回值不同。如TCM_NV_DefineSpace命令在TCM芯片处于enabled ,active,owner,状态时如果输入参数全部正确,将返回TCM_SUCCESS;如果芯片处于disabled,active,owner状态则返回TCM_DISABLED。输入参数的测试数据取值包含正向值和反向值,其中正向值应该覆盖所有符合条件的测试数据;反向值又分有效反向值和无效反向值,有效反向值为实际存在的但不符合此参数要求的数据;无效反向值是此数据本身就是无效的,此类数据取典型值。

3.2 功能性测试用例设计

功能性测试主要考察TCM的固件命令处理模块的基本功能是否符合规范命令中actions的要求。一个功能的开始运行往往依赖于另一个功能的执行完成,例如加载密钥的实现必须依赖于生成密钥的完成[8]。通过研究actions提炼出命令之间的依赖关系,进行测试点的选取及测试用例设计。TCM命令的执行会对芯片内部的 TCM_PERMANE NT_FLAGS及TCM_STCLEAR_FLAGS等标志位进行置位,后续命令在执行时会判断一些标志位的状态进而决定做何种操作及返回何种结果。这些要求在命令 actions中都有详细说明。例如TCM_NV_DefineSpace 命令的actions中有如下一条:

If pubInfo -〉 nvIndex == TCM_NV_INDEX_LOCK and tag ==TCM_TAG_RQU_COMMAND

Set TCM_PERMANENT_FLAGS -〉 nvLocked to TRUE Return TCM_SUCCESS。

对应测试用例设计如表2所示。

表2 TCM_NV_DefineSpace功能性测试用例

3.3 稳定性测试用例设计

此部分用例主要用于检验 TCM芯片在极限条件下的工作稳定性。如连续发送4条TCM_CreateCounter命令创建最多个数的计数器,4条TCM_APCreate命令建立最多个数的授权会话及发送64次TCM_NV_DefineSpace创建64个NV空间等。将全部测试向量以不同次序的批处理方式在多台机器上连续运行多天也属稳定性测试范畴。

4 测试实施及结果分析

4.1 测试用例运行

图1是测试用例的运行过程。

4.2 测试结果分析

表3、表4和表5分别举例说明了可靠性、功能性及稳定性测试的结果。

表3 可靠性测试结果举例

表4 功能性测试结果举例

表5 稳定性测试结果举例

设计一共实现测试用例2 400余例,在一款TCM芯片上测试表明,通过率在90 %左右,说明此款芯片固件基本符合TCM协议标准。

5 结语

按照TCM国标命令规范标准提出了一个针对某款型号的TCM芯片固件的协议符合性测试的设计方案,并且实现了此方案。这样的测试方法主要是通过分析 TCM命令接口及其actions进行测试用例设计,用例覆盖全面,检错性高。适用于TCM芯片固件修改升级后的协议符合性检测。符合性验证测试实施结果表明,该方案具备良好的可行性,也具备良好的检错功能。今后的工作主要是对测试用例包进行维护,包括增加新的测试用例,改进已有的用例及删除冗余用例。

图1 测试用例运行过程

[1] 国家密码管理局.可信计算密码支撑平台功能与接口规范[EB/OL].(2007-12-01).[2008-11-26]. http://www.oscca.gov.cn/Doc/6/News_1132.htm.

[2] Trusted Computing Group. TPM Main Specification:Design Principles V1.2 [EB/OL].(2007-06-01).[2008-12-09]. http://www. trustedcomputinggroup.org.

[3] Trusted Computing Group. TCG TPM Main Specification, Version 1.2 Revision 94,Part 1,Design Principles[DB/OL].(2007-06-01).[2008-12-09]. http://www.trustedcomputinggroup.org.

[4] Trusted Computing Group. TCG TPM Main Specification, Version 1.2 Revision 94,Part 2,TPM Structures[DB/OL]. (2007-06-01).[2008-12-09].http://www.trustedcomputinggroup.org.

[5] Trusted Computing Group. TCG TPM Main Specification, Version 1.2 Revision 94, Part 3, TPM Commands[DB/OL]. (2007-06-01).[2008-12-09].http://www.trustedcomputinggroup.org.

[6] 朱海卫,施蕾.浅议可信计算的发展[J].信息安全与通信保密,2009(03):79-81.

[7] 李昊,冯登国.可信密码模块符合性测试方法与实施[J].武汉大学学报,2009,55(01): 31-34.

[8] 崔奇,马楠,刘贤刚.TPM接口命令标准符合性测试的设计与实现[J].计算机工程,2009,35(02):129-132.

猜你喜欢

固件测试用例命令
只听主人的命令
基于SmartUnit的安全通信系统单元测试用例自动生成
移防命令下达后
基于SHA1的SCADA系统PLC固件完整性验证方法
基于需求模型的航天软件测试用例生成方法
基于UEFI固件的攻击验证技术研究*
基于固件的远程身份认证
这是人民的命令
提取ROM固件中的APP
基于依赖结构的测试用例优先级技术