CN101493870B - 可信平台模块测试方法 - Google Patents
可信平台模块测试方法 Download PDFInfo
- Publication number
- CN101493870B CN101493870B CN2008102368667A CN200810236866A CN101493870B CN 101493870 B CN101493870 B CN 101493870B CN 2008102368667 A CN2008102368667 A CN 2008102368667A CN 200810236866 A CN200810236866 A CN 200810236866A CN 101493870 B CN101493870 B CN 101493870B
- Authority
- CN
- China
- Prior art keywords
- function
- platform module
- credible
- credible platform
- testing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种可信平台模块测试装置,包括:基本信息测试系统,用于测试不同可信平台模块的基本信息,所述可信平台模块的基本信息包括基本属性检测功能和功能覆盖率;密码服务测试系统,用于测试可信平台模块作为安全芯片的基本密码功能,所述基本密码功能包括密码算法功能、密钥证书功能和协议功能;可信服务测试系统,用于测试可信平台模块的可信特征,所述可信特征包括可信存贮/报告根检测功能,可信度量存储报告功能,终端安全服务功能,以及远程证明功能;上述各测试系统安装在可信计算系统上,所述可信计算系统内装有作为硬件芯片的可信平台模块。使用该装置能对TPM进行规范符合性测试,可以高效覆盖待测试TPM的可信功能。
Description
技术领域
本发明涉及计算机信息安全技术领域,特别是涉及一种基于功能划分的可信平台模块(TPM)测试装置,用于对不同厂商不同版本的TPM进行测试。
背景技术
可信计算组织(TCG,Trusted Computing Group)是由来自工业和学术的组件提供商、软件开发商、系统开发商、网络与体系公司组成的大型组织,它致力于研究和开发能够适用于多平台的、公开的工业规范。
TCG已经发布了多个应用领域的数个文档与规范,其中最主要的规范是TPM(TrustedPlatform Module)规范。关于TPM的规范有两个版本,分别为1.1b和1.2。
版本1.1b可参考:
[1]TCPA Main Specification,Version 1.1b,
https://www.trustedcomputinggroup.org/specs/TPM/TCPA_Main_TCG_Architecture_v1_1b.pdf,February 2002。
版本1.2可参考:
[2]Trusted Computing Group(TCG),TPM Main Specification-Part 1:DesignPrinciples,
https://www.trustedcomputinggroup.org/specs/TPM/Main_Part1_Rev94.zip,March2006;
[3]Trusted Computing Group(TCG),TPM Main Specification-Part 2:TPMStructures,
https://www.trustedcomputinggroup.org/specs/TPM/Main_Part2_Rev94.zip,March2006;
[4]Trusted Computing Group(TCG),TPM Main Specification-Part 3:Commands,
https://www.trustedcomputinggroup.org/specs/TPM/Main_Part3_Rev94.zip,March2006。
上述规范对TPM的设计原理、体系结构、数据结构、功能、命令和基本参数都进行了说明和规定。
TPM主要由与密码相关的功能组件和一些存储区域组成,是一个含有密码运算部件和存储部件的小型片上系统(SOC)。它是计算平台中的集成专用硬件模块,利用密码机制建立信任链,构建可信赖的计算环境,是可信计算平台的信任根源。
近来,国内市场上已经出现越来越多装配有TPM的机器。鉴于以上两个规范的复杂性,以及对市场上的TPM产品的调研结果得知,并不是所有厂商生产的TPM芯片均是能够符合规范的。事实上,在规范定义与产品实现之间,很多厂商为了市场的需要,并考虑到成本和实际使用,研制出来的TPM产品和规范之间是存在很多差异的。虽然许多厂商声称他们生产的TPM芯片是符合TCG规范的,但事实上,对于使用者来说,他们没有一个行之有效的办法对该说法进行验证,也就无法得知产品的真实性和有效性。并且,国内对于TPM的测试还是一项空白,尚没有任何公司、高校或研究所提出了对TPM进行有效测试的方法。
综上所述,研究出一种能够测试不同型号TPM的方法,以便能够方便地对TPM进行规范符合性测试就显得非常必要了。
发明内容
本发明所要解决的技术问题是:提供一种可信平台模块测试方法,使用该方法能对TPM进行规范符合性测试,可以高效覆盖待测试TPM的可信功能。
本发明所采用的技术方案是:可信平台模块测试方法通过可信平台模块实现,可信平台模块包括:
基本信息测试系统,用于测试不同可信平台模块的基本信息,所述可信平台模块的基本信息包括基本属性检测功能和功能覆盖率;
密码服务测试系统,用于测试可信平台模块作为安全芯片的基本密码功能,所述基本密码功能包括密码算法功能、密钥证书功能和协议功能;
可信服务测试系统,用于测试可信平台模块的可信特征,所述可信特征包括可信存贮/报告根检测功能,可信度量存储报告功能,终端安全服务功能,以及远程证明功能;
上述各测试系统安装在可信计算系统上,所述可信计算系统内装有作为硬件芯片的可信平台模块;
所述基本属性检测功能的测试方法,是通过获取所述可信平台模块基本属性的操作,检测可信平台模块的基本属性返回值,所述返回值包括:可信平台模块的版本信息和厂商信息;可信平台模块支持哪些命令、算法和协议;可信平台模块能够支持的平台配置寄存器的数量、能够提供的最大会话数;以及固定标志位pFlags和可变标志位vFlags;
所述功能覆盖率的测试方法包括:
301)对同一功能代入不同错误参数,根据返回不同的错误代码,获知所述可信平台模块对同一功能的处理流程;
302)根据所述处理流程,对可信平台模块的每个功能进行覆盖验证,即:输入包含正确参数的功能测试命令,以及输入包含错误参数的功能测试命令;若前者的返回值为正确代码,且后者的返回值为错误代码,则该功能被覆盖,否则不被覆盖;
303)统计可信平台模块所有功能的覆盖情况,得出功能覆盖率;
所述密码算法功能的测试方法是:
对所述可信平台模块的加解密算法、签名算法、随机数生成算法、散列函数进行测试,同时提供可选的性能测试;对于没有提供标准测试接口的功能,采用可信平台模块开发厂家提供的开发硬件进行二次开发;其步骤包括:
401)向可信平台模块发送相关密码算法命令及原始数据;
402)接受可信平台模块返回的计算值;
403)根据401)的算法命令及原始数据和402)的计算值判断可信平台模块是否符合规范要求;
所述密钥证书功能的测试方法包括:
501)向可信平台模块发送生成密钥指令,根据其返回的操作结果判断是否能完成创建密钥的功能,若为“是”,则进入下一步,否则停止测试;
502)向可信平台模块发送装载密钥指令,根据其返回的操作结果判断是否能完成装载密钥的功能,若为“是”,则进入下一步,否则停止测试;
503)向可信平台模块发送使用密钥指令,根据其返回的操作结果及密钥属性判断是否能完成使用密钥的功能;若为“是”,则密钥证书功能符合规范,否则不符合规范;
所述协议功能的测试方法包括:
601)向可信平台模块建立授权会话,根据其返回结果判断是否能够获取授权信息,若为“是”,则进入下一步,否则停止测试;
602)根据正确的授权信息,向可信平台模块发送操作敏感数据命令,判断其是否返回操作成功的信息;
603)根据错误的授权信息,向可信平台模块发送操作敏感数据命令,判断其是否返回操作失败的信息。
604)验证602)和603)返回的信息是否符合规范;
所述可信存贮/报告根检测功能的测试方法包括:
701)验证可信平台模块上的可信存储/报告根是否存在,若存在则销毁可信存储/报告根,然后进入下一步;否则直接进入下一步;
702)创建可信存储/报告根,记录可信平台模块的返回值;
703)读取可信平台模块上的可信存储/报告根,记录其返回值;
704)验证步骤702)和703)的返回值是否符合规范;
所述可信度量存储报告功能的测试方法包括:
801)向可信平台模块注入度量值;
802)向可信平台模块发出计算度量值的指令;
803)记录可信平台模块返回的计算后的度量值;
804)验证803)计算后度量值是否满足规范;
805)向可信平台模块发出读取指定平台配置寄存器的指令;
806)将度量值写入指定的平台配置寄存器;
807)向可信平台模块发出读取指定平台配置寄存器内容的指令;
808)记录可信平台模块返回的指定平台配置寄存器的内容;
809)计算808)的返回值,并于规范相比较;
所述终端安全服务功能的测试方法包括:
901)将原始数据,通过可信平台模块进行平台无关加密;
902)将901)加密后的数据,通过可信平台模块进行平台无关解密;
903)若解密成功,记录可信平台模块返回的平台无关解密数据;若解密不成功则停止测试过程;
904)将原始数据,通过可信平台模块进行平台相关加密;
905)将平台配置信息设置成与904)相符的状态,然后对904)的加密数据进行平台相关解密;
906)若解密成功,记录可信平台模块返回的平台相关解密数据;若解密不成功,则停止测试过程;
907)将原始数据,通过可信平台配置模块进行平台相关加密;
908)将平台配置信息设置成与907)不符的状态,然后对907)的加密数据进行平台相关解密;
909)记录可信平台模块返回的解密状态信息,其应该为不成功,否则不符合规范;
910)将903)的平台无关解密数据和906)的平台相关解密数据,与901)的原始数据进行比较;若比较结果一致,则终端安全服务功能符合规范,否则不符合规范;
所述远程证明功能测试方法包括:
1001)向可信平台模块发出读取相关事件信息的指令;
1002)向可信平台模块发出读取指定平台配置寄存器签名的指令;
1003)向可信平台模块发出读取指定平台配置寄存器内容的指令;
1004)分别记录1001)、1002)、1003)返回的相关事件、指定平台配置寄存器的签名、指定平台配置寄存器的内容;
1005)根据1004)获得的相关事件和指定平台配置寄存器的内容,计算指定平台配置寄存器的签名,并与1004)获得的指定平台配置寄存器的签名相比较。
本发明提供的方法是国内首次设计并实现TPM测试系统,具有以下优点:
第一,对规范进行了分析与总结,得到了TPM最小功能集和TPM功能划分,从而得到了具体的TPM功能依赖关系,使得能够高效覆盖待测试TPM功能。
第二,根据上述分析与总结的结果,设计并实现了基于功能划分的TPM测试系统,有效解决了TPM规范符合性测试问题。
附图说明
图1:TPM测试系统功能划分。
图2:TPM最小功能集。
图3:基于功能划分的TPM测试系统结构示意图。
图4:TPM基本属性检测功能的测试方法。
图5:TPM功能覆盖率测试方法。
图6:TPM密钥证书功能测试方法。
图7:TPM协议功能测试方法。
图8:可信存储/报告根检测功能的测试方法。
图9:可信度量存储报告的测试方法。
图10:终端安全服务功能的测试方法。
图11:远程证明功能的测试方法。
图12:TPM密码算法功能测试方法。
具体实施方式
由于目前的可信计算平台模块TPM规范主要以体系结构和技术性描述为主,其中所描述的功能存在密不可分的关系,功能之间彼此依赖,有些功能必须基于其它功能的基础上才能够运行。因此,对TPM测试,首先需要对TPM规范中的可信功能进行抽取、划分与总结。
本发明通过对TPM规范进行抽取,得到了TPM的功能划分。同时分析得到了TPM最小功能集,被划分的TPM功能都可以映射到TPM最小功能集的不同层次上,从而得到具体的功能依赖关系,并基于此设计了测试系统对TPM进行测试,使得能够高效覆盖待测试TPM功能,对TPM进行规范符合性测试。
具体而言,本发明的思路是:
1.抽取TPM功能划分:
根据对TPM规范进行分析、归纳与总结,可知TPM在向平台所提供密码算法、密钥管理、授权协议等功能的同时,还为平台本身的完整性、数据安全性提供了密码功能支持。因此,如图1所示,将TPM功能测试划分为三个部分:
①基本信息
本部分主要是测试不同厂家生产的TPM的基本信息,让用户对被测试的TPM有基本了解。
②密码服务
本部分主要测试TPM作为安全芯片的基本密码功能,是可信服务测试的基础。测试内容包括密码算法、密钥使用以及协议。
③可信服务
本部分用于测试TPM的可信特征,体现了TPM作为平台信任根,对平台完整性的保障和对用户数据秘密性的保护机制。
2.提炼TPM最小功能集
同时,根据进一步对规范的分析,归纳与总结,得到TPM最小功能集,这个最小功能集包含了TPM最基本的功能。如图2所示,TPM内部的随机数产生功能(TPM_GetRandom、TPM_StirRandom)和哈希功能(TPM_SHA1Start、TPM_SHA1Update、TPM_SHA1Complete、TPM_SHA1CompleteExtend)是最底层功能,所有其它都依赖于它们的正确实现;协议功能(TPM_OSAP和TPM_OIAP)相关功能是保证TPM内部密钥使用真实性与完整性的手段,处于次底层的位置,其依赖哈希功能和随机数产生功能;PCR(平台配置寄存器)读写功能(TPM_Extend、TPM_PCRRead)依赖哈希功能和随机数产生功能;TPM的安全存储功能是利用一种树形密钥结构实现的,其树的根节点是永远贮存在TPM中存储根密钥(Storage RootKey,SRK),而获取TPM所有权(TPM_TakeOwnership(I))功能能够产生SRK,所有密钥相关操作都依赖于它,其依赖协议功能和读取基本属性功能(TPM_GetCapability);产生密钥功能(TPM_CreateWrapKey(s))功能和装载密钥(TPM_LoadKey)功能是利用TPM产生普通密钥的重要功能,保证了TPM所有密码相关功能,产生密钥功能依赖获取TPM所有权功能,装载密钥功能依赖产生密钥功能;清除TPM所有权功能(TPM_OwnerClear(I))依赖获取TPM所有权功能;最后签名功能(TPM_Sign(S)和TPM_Quote(S))、封装与解封功能(TPM_Seal(s)和TPM_Unseal(S))、解除绑定功能(TPM_UnBind(I))、卸载密钥功能(TPM_EvictKey)等相关功能是出于最高层次的应用,它们的正常运行依赖于之前所有功能的正确实现。上述功能表达式中S表示使用了TPM_OSAP协议,I表示使用了TPM_OIAP协议。
3.将TPM的功能划分分别映射到TPM最小功能集的不同层次上
TPM最小功能集涵盖了对TPM所有功能划分的测试,被划分的TPM功能可以分别映射到最小功能集的不同层次,结合图1和图2:
基本信息功能是最基本的功能,其依赖层次最低,在最小功能集中包括:读取基本属性功能;
密码服务包含密码算法功能、密钥证书功能、协议功能等功能,其依赖层次居中,为TPM可信服务提供基础,在最小功能集中包括:哈希功能、随机数产功能、协议功能、获取TPM所有权功能、清除TPM所有权功能、产生密钥功能和装载密钥功能;
可信服务,在最小功能集中其依赖层次最高,它为平台提供完整性的保障,同时为用户提供数据秘密性的保护机制,在最小功能集中包括:PCR读写功能、签名功能、封装与解封功能、解除绑定功能和卸载密钥功能。
如图1所示,以上TPM功能三大部分的划分又可进行更细致的划分。基本信息又分为:基本属性检测功能和功能覆盖率两个方面;密码服务又分为:密码算法功能、密钥证书功能和协议功能三个方面;可信服务又可分为:可信存储/报告根检测功能、可信度量存储报告功能、终端安全服务功能和远程证明功能的测试。
因此,可信平台模块测试装置包括:
基本信息测试系统,用于测试不同可信平台模块的基本信息,所述可信平台模块的基本信息包括基本属性检测功能和功能覆盖率;
密码服务测试系统,用于测试可信平台模块作为安全芯片的基本密码功能,所述基本密码功能包括密码算法功能、密钥证书功能和协议功能;
可信服务测试系统,用于测试可信平台模块的可信特征,所述可信特征包括可信存贮/报告根检测功能,可信度量存储报告功能,终端安全服务功能,以及远程证明功能;
上述各测试系统安装在可信计算系统上,所述可信计算系统内装有作为硬件芯片的可信平台模块。
基于以上分析,将TPM功能可具体划分为九类:
1.基本属性检测功能,即获取TPM基本属性。
2.功能覆盖率,即厂商提供的TPM对规范中所规定功能的覆盖程度。
3.密码算法功能,用于检测算法实现是否符合国家或行业相应算法标准。本模块将主要提供正确性测试,同时提供可选的性能测试。
4.密钥证书功能,主要测试密钥属性是否正确以及证书是否存在并且符合规范。
5.协议功能,主要测试TPM能否建立符合规范的认证会话。
6.可信存储/报告根检测功能,主要测试可信存储根(RTS)和可信报告根(RTR)是否存在,并且是否符合可信计算平台模块TPM规范中所定义的表现形式。
7.可信度量存储与报告功能,主要测试完整性度量报告测试流程。
8.终端安全服务功能,主要测试基于TPM的加解密功能。
9.远程证明功能,主要测试TPM能否向远程的验证者提供指定PCR的签名,为平台的真实性提供保障。
检测者对各部分的TPM功能的测试具体实施方案如下:
一、基本信息检测,即TPM硬件检测
1.基本属性检测功能的评测
1.1功能与原理
TPM的基本属性值应该包括:TPM版本信息和厂商信息;TPM支持哪些命令、算法和协议;TPM能够支持PCR的数量、能够提供的最大会话数等内置参数;以及TPM的一些内部数据,如:固定标志位pFlags和可变标志位vFlags等。
1.2测试方法与目标
通过获取所述TPM属性的操作,检测TPM的基本属性返回值。基本属性不应该包括一些敏感信息,这些敏感信息属于非基本属性,如:TPM密钥的公私钥、可信存储根和可信报告根等。通过获得基本属性的操作无法获得这些敏感信息,这些敏感信息的获得需要通过专门的操作和特定的授权。其测试方法如图4所示。
2.功能覆盖率检测
2.1功能与原理
本部分测试的主要是测试TPM所提供的功能对TPM规范中所规定功能的覆盖程度。
向TPM发送不同功能的命令,无论带正确的还是错误的参数,TPM都应该对应地返回一些值,通过将返回值与规范中所规定的相比较,得出TPM的功能是否齐全。
2.2测试方法与目标
对同一功能代入不同错误参数,根据返回不同的错误代码,可以大概获知TPM对同一功能的处理流程。在大概获知功能的处理流程之后,更有助于对功能覆盖率进行测试。其测试方法如图5所示,包括:
301)对同一功能代入不同错误参数,根据返回不同的错误代码,获知所述可信平台模块对同一功能的处理流程;
302)根据所述处理流程,对可信平台模块的每个功能进行覆盖验证,即:输入包含正确参数的功能测试命令,以及输入包含错误参数的功能测试命令;若前者的返回值为正确代码,且后者的返回值为错误代码,则该功能被覆盖,否则不被覆盖;
303)统计可信平台模块所有功能的覆盖情况,得出功能覆盖率。
二、密码服务检测
3.密码算法功能测试
3.1功能与原理
密码协处理器是可信计算平台模块TPM的重要组成部分,负责实现TPM内部密码学操作,所采用的密码算法实现都必须符合国家或行业相应算法标准。
3.2测试方法与目标
本部分将进行标准TPM芯片的加解密算法,签名算法,随机数生成算法,散列函数的正确性测试,同时提供可选的性能测试。对于没有提供标准测试接口的功能采用TPM开发厂家提供的开发硬件进行二次开发。如图12所示,具体包括:
401)向可信平台模块发送相关密码算法命令及原始数据;
402)接受可信平台模块返回的计算值;
403)根据401)的算法命令及原始数据和402)的计算值判断可信平台模块是否符合规范要求。
4.密钥及证书功能测试
4.1功能与原理
TPM必须有能够在内部生成不对称密钥对的功能。本方案8主要采用如图6所示的测试系统进行测试。TPM还应具有表明自身身份的证书,本方案将基于厂商具体的实现技术规范对其进行测试3002
4.2测试方法与目标
本部分主要测试的是:密钥是否能够被创建、密钥是否能够被装载、所创建的密钥它的属性是否正确以及是否生成了密钥对应的使用授权信息、证书是否存在,是否符合相应规范要求。其测试方法如图6所示,包括:
501)向可信平台模块发送生成密钥指令,根据其返回的操作结果判断是否能完成创建密钥的功能,若为“是”,则进入下一步,否则停止测试;
502)向可信平台模块发送装载密钥指令,根据其返回的操作结果判断是否能完成装载密钥的功能,若为“是”,则进入下一步,否则停止测试;
503)向可信平台模块发送使用密钥指令,根据其返回的操作结果及密钥属性判断是否能完成使用密钥的功能;若为“是”,则密钥证书功能符合规范,否则不符合规范。
5.协议功能检测
5.1功能与原理
授权协议是TPM外部实体与TPM之间的访问协议,实现了外部实体与TPM之间的授权认证、信息的完整性验证和敏感数据的机密保护。
可信计算平台内的密钥、敏感数据及其它需要存储保护的数据必须具有相应的授权数据,并且只能通过对相应授权数据进行验证才能访问。不允许任意存取的TPM数据都拥有一个授权数据—共享秘密。这个共享秘密包含在TPM数据的内部。
5.2测试方法与目标
本部分主要测试能否建立认证会话并获得授权信息、能否通过正确的授权信息获取所需数据以及能否验证出不正确的授权信息等。是否提供一定的机制对重放攻击的抵御。其方法如图7所示,包括:
601)向可信平台模块建立授权会话,根据其返回结果判断是否能够获取授权信息,若为“是”,则进入下一步,否则停止测试;
602)根据正确的授权信息,向可信平台模块发送操作敏感数据命令,判断其是否返回操作成功的信息;
603)根据错误的授权信息,向可信平台模块发送操作敏感数据命令,判断其是否返回操作失败的信息。
604)验证602)和603)返回的信息是否符合规范。
值得注意的是,TPM对字典攻击并没有很好的防范机制,TPM应对未成功的授权尝试进行计数,以避免攻击者对同一授权进行无数次的伪造授权尝试。
三、可信服务测试
6.可信存储/报告根检测功能的评测
6.1功能与原理
本部分主要测试可信存储根(RTS)和可信报告根(RTR)是否存在,并且是否符合TPM规范中所定义的表现形式。
根据TPM规范规定,RTR在TPM中就是背书密钥EK。而RTS对外部存储器件中的TPM所需要使用的数据进行保护,在TPM芯片中,SRK充当起了RTS的责任。于是,对RTR和RTS的测试也就转换成了对EK和SRK的测试。
6.2测试方法与目标
此处应验证EK和SRK是否存在,然后比对EK和SRK的表现形式是否与TPM规范相对应,可以通过读取EK和SRK,根据其属性,比对规范,确定其表现形式是否与规范相对应。其测试方法如图8所示,包括:
701)验证可信平台模块上的可信存储/报告根是否存在,若存在则销毁可信存储/报告根,然后进入下一步;否则直接进入下一步;
702)创建可信存储/报告根,记录可信平台模块的返回值;
703)读取可信平台模块上的可信存储/报告根,记录其返回值;
704)验证步骤702)和703)的返回值是否符合规范。
7.可信度量存储报告功能测试
7.1功能与原理
可信度量的存储与报告实际上是完整性度量值的报告与存储。
7.2测试方法与目标
本部分主要测试计算度量值的算法的种类与正确性;度量值是否记入指定PCR和平台是否能够向验证者提供指定的PCR值;度量信息是否记录到日志中和平台是否可向验证者提供指定PCR的相关事件日志信息。对度量值的算法一般使用的SHA-1算法,对其正确性进行测试,并且进行验证;测试度量值是否记录并验证;测试平台是否可以读写指定PCR的相关事件日志信息。其测试方法如图9所示,包括:
801)向可信平台模块注入度量值;
802)向可信平台模块发出计算度量值的指令;
803)记录可信平台模块返回的计算后的度量值;
804)验证803)计算后度量值是否满足规范;
805)向可信平台模块发出读取指定平台配置寄存器的指令;
806)将度量值写入指定的平台配置寄存器;
807)向可信平台模块发出读取指定平台配置寄存器内容的指令;
808)记录可信平台模块返回的指定平台配置寄存器的内容;
809)计算808)的返回值,并于规范相比较。
8.终端安全服务功能测试
8.1功能与原理
TPM终端安全服务测试主要分为平台相关加解密测试和平台无关加解密测试。
8.2测试方法与目标
平台无关加解密测试的是在把原始数据进行加密以后,再解密以后,能够还原成原始数据。平台相关加解密除主要测试的是在把原始数据进行加密以后,再解密以后,能够还原成原始数据外,还应该测试解密时平台设置是否达到了解密的要求。其测试方法如图10所示,包括:
901)将原始数据,通过可信平台模块进行平台无关加密;
902)将901)加密后的数据,通过可信平台模块进行平台无关解密;
903)若解密成功,记录可信平台模块返回的平台无关解密数据;若解密不成功则停止测试过程;
904)将原始数据,通过可信平台模块进行平台相关加密;
905)将平台配置信息设置成与904)相符的状态,然后对904)的加密数据进行平台相关解密;
906)若解密成功,记录可信平台模块返回的平台相关解密数据;若解密不成功,则停止测试过程;
907)将原始数据,通过可信平台配置模块进行平台相关加密;
908)将平台配置信息设置成与907)不符的状态,然后对907)的加密数据进行平台相关解密;
909)记录可信平台模块返回的解密状态信息,其应该为不成功,否则不符合规范;
910)将903)的平台无关解密数据和906)的平台相关解密数据,与901)的原始数据进行比较;若比较结果一致,则终端安全服务功能符合规范,否则不符合规范。
9.远程证明服务功能的测试
9.1功能与原理
向远程的验证者提供指定PCR的签名,为平台的真实性提供保障。
9.2测试方法与目标
要求能验证指定PCR签名。其测试方法如图11所示。
1001)向可信平台模块发出读取相关事件信息的指令;
1002)向可信平台模块发出读取指定平台配置寄存器签名的指令;
1003)向可信平台模块发出读取指定平台配置寄存器内容的指令;
1004)分别记录1001)、1002)、1003)返回的相关事件、指定平台配置寄存器的签名、指定平台配置寄存器的内容;
1005)根据1004)获得的相关事件和指定平台配置寄存器的内容,计算指定平台配置寄存器的签名,并与1004)获得的指定平台配置寄存器的签名相比较。
基于以上TPM测试实施方案,根据通过TPM最小功能集所得到的TPM功能的依赖关系,对TPM相应功能(命令)按照1~9的先后顺序进行测试。首先对TPM基本信息进行检测;其次对TPM密码服务相关功能进行检测;最后对TPM可信服务相关功能进行检测。
具体实现中,依据上述功能划分和最小功能集,可以得到TPM功能之间的依赖关系。依据得到的TPM功能之间的依赖关系,同时考虑到TPM接口API(应用程序接口)的特殊性,即其所有输入参数都是以字节流的形式顺序连接起来发送给TPM的。这样就可对TPM测试系统进行了如图3的设计:
Java前台接收由用户传入的测试需求(即功能调用),生成测试用例和测试流程,其中测试用例存储在数据库中。Java部分实现与上层界面和数据库进行交互的功能;同时根据测试中功能(命令)之间的依赖关系,调用通用模块,通用模块实现了:从数据库中读取各条命令的参数值、构造与解析数据包、分析返回数据包内容和将分析结果存入数据库等功能。
Java通过使用JNI技术,调用native方法,将组装好的命令(功能),即将组合好的数据包按照依赖关系顺序发送给C部分,实现与C交互。
C部分主要实现与TPM进行交互的功能。C后台从Java端接收数据包,调用TPM驱动程序直接将数据包转发给TPM;接收TPM返回的数据包,并将数据包回送给Java部分。
Claims (1)
1.可信平台模块测试方法,其特征在于:
其通过可信平台模块实现,可信平台模块包括:
基本信息测试系统,用于测试不同可信平台模块的基本信息,所述可信平台模块的基本信息包括基本属性检测功能和功能覆盖率;
密码服务测试系统,用于测试可信平台模块作为安全芯片的基本密码功能,所述基本密码功能包括密码算法功能、密钥证书功能和协议功能;
可信服务测试系统,用于测试可信平台模块的可信特征,所述可信特征包括可信存贮/报告根检测功能,可信度量存储报告功能,终端安全服务功能,以及远程证明功能;
上述各测试系统安装在可信计算系统上,所述可信计算系统内装有作为硬件芯片的可信平台模块;
所述基本属性检测功能的测试方法,是通过获取所述可信平台模块基本属性的操作,检测可信平台模块的基本属性返回值,所述返回值包括:可信平台模块的版本信息和厂商信息;可信平台模块支持哪些命令、算法和协议;可信平台模块能够支持的平台配置寄存器的数量、能够提供的最大会话数;以及固定标志位pFlags和可变标志位vFlags;
所述功能覆盖率的测试方法包括:
301)对同一功能代入不同错误参数,根据返回不同的错误代码,获知所述可信平台模块对同一功能的处理流程;
302)根据所述处理流程,对可信平台模块的每个功能进行覆盖验证,即:输入包含正确参数的功能测试命令,以及输入包含错误参数的功能测试命令;若前者的返回值为正确代码,且后者的返回值为错误代码,则该功能被覆盖,否则不被覆盖;
303)统计可信平台模块所有功能的覆盖情况,得出功能覆盖率;
所述密码算法功能的测试方法是:
对所述可信平台模块的加解密算法、签名算法、随机数生成算法、散列函数进行测试,同时提供可选的性能测试;对于没有提供标准测试接口的功能,采用可信平台模块开发厂家提供的开发硬件进行二次开发;其步骤包括:
401)向可信平台模块发送相关密码算法命令及原始数据;
402)接受可信平台模块返回的计算值;
403)根据401)的算法命令及原始数据和402)的计算值判断可信平台模块是否符合规范要求;
所述密钥证书功能的测试方法包括:
501)向可信平台模块发送生成密钥指令,根据其返回的操作结果判断是否能完成创建密钥的功能,若为“是”,则进入下一步,否则停止测试;
502)向可信平台模块发送装载密钥指令,根据其返回的操作结果判断是否能完成装载密钥的功能,若为“是”,则进入下一步,否则停止测试;
503)向可信平台模块发送使用密钥指令,根据其返回的操作结果及密钥属性判断是否能完成使用密钥的功能;若为“是”,则密钥证书功能符合规范,否则不符合规范;
所述协议功能的测试方法包括:
601)向可信平台模块建立授权会话,根据其返回结果判断是否能够获取授权信息,若为“是”,则进入下一步,否则停止测试;
602)根据正确的授权信息,向可信平台模块发送操作敏感数据命令,判断其是否返回操作成功的信息;
603)根据错误的授权信息,向可信平台模块发送操作敏感数据命令,判断其是否返回操作失败的信息。
604)验证602)和603)返回的信息是否符合规范;
所述可信存贮/报告根检测功能的测试方法包括:
701)验证可信平台模块上的可信存储/报告根是否存在,若存在则销毁可信存储/报告根,然后进入下一步;否则直接进入下一步;
702)创建可信存储/报告根,记录可信平台模块的返回值;
703)读取可信平台模块上的可信存储/报告根,记录其返回值;
704)验证步骤702)和703)的返回值是否符合规范;
所述可信度量存储报告功能的测试方法包括:
801)向可信平台模块注入度量值;
802)向可信平台模块发出计算度量值的指令;
803)记录可信平台模块返回的计算后的度量值;
804)验证803)计算后度量值是否满足规范;
805)向可信平台模块发出读取指定平台配置寄存器的指令;
806)将度量值写入指定的平台配置寄存器;
807)向可信平台模块发出读取指定平台配置寄存器内容的指令;
808)记录可信平台模块返回的指定平台配置寄存器的内容;
809)计算808)的返回值,并于规范相比较;
所述终端安全服务功能的测试方法包括:
901)将原始数据,通过可信平台模块进行平台无关加密;
902)将901)加密后的数据,通过可信平台模块进行平台无关解密;
903)若解密成功,记录可信平台模块返回的平台无关解密数据;若解密不成功则停止测试过程;
904)将原始数据,通过可信平台模块进行平台相关加密;
905)将平台配置信息设置成与904)相符的状态,然后对904)的加密数据进行平台相关解密;
906)若解密成功,记录可信平台模块返回的平台相关解密数据;若解密不成功,则停止测试过程;
907)将原始数据,通过可信平台配置模块进行平台相关加密;
908)将平台配置信息设置成与907)不符的状态,然后对907)的加密数据进行平台相关解密;
909)记录可信平台模块返回的解密状态信息,其应该为不成功,否则不符合规范;
910)将903)的平台无关解密数据和906)的平台相关解密数据,与901)的原始数据进行比较;若比较结果一致,则终端安全服务功能符合规范,否则不符合规范;
所述远程证明功能测试方法包括:
1001)向可信平台模块发出读取相关事件信息的指令;
1002)向可信平台模块发出读取指定平台配置寄存器签名的指令;
1003)向可信平台模块发出读取指定平台配置寄存器内容的指令;
1004)分别记录1001)、1002)、1003)返回的相关事件、指定平台配置寄存器的签名、指定平台配置寄存器的内容;
1005)根据1004)获得的相关事件和指定平台配置寄存器的内容,计算指定平台配置寄存器的签名,并与1004)获得的指定平台配置寄存器的签名相比较。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102368667A CN101493870B (zh) | 2008-12-17 | 2008-12-17 | 可信平台模块测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102368667A CN101493870B (zh) | 2008-12-17 | 2008-12-17 | 可信平台模块测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101493870A CN101493870A (zh) | 2009-07-29 |
CN101493870B true CN101493870B (zh) | 2010-10-27 |
Family
ID=40924463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102368667A Expired - Fee Related CN101493870B (zh) | 2008-12-17 | 2008-12-17 | 可信平台模块测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101493870B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959363B2 (en) | 2010-06-03 | 2015-02-17 | Intel Corporation | Systems, methods, and apparatus to virtualize TPM accesses |
US9137237B2 (en) | 2013-09-03 | 2015-09-15 | Microsoft Technology Licensing, Llc | Automatically generating certification documents |
US9253212B2 (en) * | 2013-09-24 | 2016-02-02 | Microsoft Technology Licensing, Llc | Automated production of certification controls by translating framework controls |
CN106547659A (zh) * | 2016-11-01 | 2017-03-29 | 郑州云海信息技术有限公司 | 一种Linux下测试TPM模块功能的方法 |
CN110018931A (zh) * | 2018-01-09 | 2019-07-16 | 佛山市顺德区顺达电脑厂有限公司 | Tpm测试装置及方法 |
CN108763075A (zh) * | 2018-05-21 | 2018-11-06 | 北京五八信息技术有限公司 | 一种测试方法、装置、设备及计算机可读存储介质 |
CN109902021B (zh) * | 2019-03-13 | 2021-03-02 | 北京国舜科技股份有限公司 | 一种信息系统安全测试质量评价方法及系统 |
CN110011794B (zh) * | 2019-04-11 | 2021-08-13 | 北京智芯微电子科技有限公司 | 密码机密钥属性的测试方法 |
CN110929252B (zh) * | 2019-11-22 | 2021-10-26 | 福建金密网络安全测评技术有限公司 | 一种算法和随机数检测系统 |
CN113032265B (zh) * | 2021-03-25 | 2023-08-08 | 深圳忆联信息系统有限公司 | 非对称加密算法测试方法、装置、计算机设备及存储介质 |
CN113158178B (zh) * | 2021-04-06 | 2022-06-28 | 支付宝(杭州)信息技术有限公司 | 一种可信执行环境的构建方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007127018A1 (en) * | 2006-04-28 | 2007-11-08 | Hewlett-Packard Development Company, L.P. | Trusted platform field upgrade system and method |
US20080046898A1 (en) * | 2006-08-18 | 2008-02-21 | Fujitsu Limited | Method and System for Implementing an External Trusted Platform Module |
-
2008
- 2008-12-17 CN CN2008102368667A patent/CN101493870B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007127018A1 (en) * | 2006-04-28 | 2007-11-08 | Hewlett-Packard Development Company, L.P. | Trusted platform field upgrade system and method |
US20080046898A1 (en) * | 2006-08-18 | 2008-02-21 | Fujitsu Limited | Method and System for Implementing an External Trusted Platform Module |
Also Published As
Publication number | Publication date |
---|---|
CN101493870A (zh) | 2009-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101493870B (zh) | 可信平台模块测试方法 | |
EP3346415B1 (en) | Event attestation for an electronic device | |
CN103038745B (zh) | 扩展完整性测量 | |
US11258792B2 (en) | Method, device, system for authenticating an accessing terminal by server, server and computer readable storage medium | |
CN100583768C (zh) | 基于安全需求的远程证明方法及其系统 | |
CN101166085B (zh) | 远程解锁方法和系统 | |
US20050283826A1 (en) | Systems and methods for performing secure communications between an authorized computing platform and a hardware component | |
EP2466505B1 (en) | Method for authenticating a terminal | |
CN102262599B (zh) | 一种基于可信根的移动硬盘指纹认证方法 | |
CN107846396B (zh) | 存储器系统及其与主机之间的绑定方法 | |
CN1322387C (zh) | 软件的正当性确认方法及执行软件的装置 | |
CN105893837B (zh) | 应用程序安装方法、安全加密芯片及终端 | |
US20230289478A1 (en) | Generating signed measurements | |
CN112270001A (zh) | 一种密钥管理方法、装置、服务器、介质和系统 | |
CN117557270A (zh) | 移动终端安全支付管理方法及系统 | |
CN116896463A (zh) | 一种基于区块链的可信环境认证方法及装置 | |
CN115062330B (zh) | 基于tpm的智能密码钥匙密码应用接口的实现方法 | |
CN113676326A (zh) | Tddi芯片 | |
US10425233B2 (en) | Method for automatically verifying a target computer file with respect to a reference computer file | |
Karch et al. | Security Evaluation of Smart Cards and Secure Tokens: Benefits and Drawbacks for Reducing Supply Chain Risks of Nuclear Power Plants | |
US20200401690A1 (en) | Techniques for authenticating and sanitizing semiconductor devices | |
Feller et al. | Requirements for Trustworthiness | |
Rowland et al. | A Review of Technologies that can Provide a'Root of Trust'for Operational Technologies | |
CN113676327A (zh) | 显示屏的正品认证方法、芯片、计算机可读存储介质、计算机程序产品、计算机程序 | |
CN113676325A (zh) | 电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101027 Termination date: 20121217 |