可信软件栈在嵌入式系统中的自动化测试分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可信软件栈在嵌入式系统中的自动化测试分析摘要:在可信嵌入式系统中,嵌入式系统中的可信软件栈是非常关键的部分之一。在使用过程中,要测试该系统中可信软件栈的一致性。这样才能够保证上层应用的可依赖性和有效运行条件。本文研究了该系统中可信软件栈一致性的测试框架和具体措施。并得出了如下结论:trousers0.3.7产品并没有完全和可信软件栈tcg tss 嵌入式系统可信软件栈自动化测试研究1.1规范的相关要求保持一致。此外,还需要更深层次地改善和提升它的安全功能以及保障能力。
关键词:嵌入式系统;可信软件;自动化测试;
中图分类号:tp306 文献标识码:a 文章编号:1007-9599 (2013) 02-0000-02
在可信计算平台中,可信软件栈tss是非常关键的部分之一。它依靠硬件资源和平台中的模块tpm,在系统软件中提供可信目标的相关计算服务,它还可以确保可信的系统软件和系统环境。在嵌入式系统可信软件栈自动化测试过程中,tss相当于通信中间件,它处在用户应用程序与tpm模板间。该系统中的tss不仅可以抽象与封装tpm命令接口,还可以为用户提供用例支持。测试tss的一致性属于综合评价该系统的基本功能属性,它要评价它所支撑的可信功能以及服务。在全面处理评价结果后,可以协助用户确认嵌入式系统中的tss模块对用户的有用性是否足够。
1 嵌入式系统可信软件栈
从嵌入式系统tss的用途来看,它是一种软件系统,可以为位于上层的可信计算应用程序支撑访问tpm接口服务。tss成为了可信嵌入式系统(可信系统)中不可或缺的部分之一。在全部的可信体系中,整体平台的信任根是tpm,通过信任链从信任根分别逐级地传输给了bios、可信计算应用环境以及操作系统;tss可以支撑应用程序对tpm的访问,还可以管理tpm。从协调软硬件协同的视角来分析,如果硬件平台配置了tpm芯片设施、tpm芯片,就会存在与之相关的软件,例如设备功能接口和设备驱动和等。
tpm芯片由于自身原因,它的计算能力以及所存储的资源都是很有限度的,tpm芯片不能独自实现可信计算的全部功用,要通过相关软件才能实现。根据相关规范:“就tss来讲,它的设计意图包含了以下几点:在调用tpm安全保护功能的时候,可以为应用程序支撑入口点,可以实现同步访问tpm,可以把被tpm所建立的功能命令隐藏起来,使得应用程序不行使用,它还可以调配tpm资源”。
2 可信软件的体系结构
就可信软件栈来讲。它的体系结构呈现出多层次特征(见图1),它首先包括了三个方面,分别是可信服务提供层tsp、可信核心服务层tcs和可信设备驱动库tddl。而且每个层次都给出了函数接口,这种接口是规范化的。tsp被视为可信代理,服务于本地以及远程应用,tcs属于某种集合,可以提供公共服务,tddl的任务是与tpm
完成交互工作。从tcg来看,它所提出来的tss体系结构可以通过软件工具一一对应,。例如,软件仿真器(tpm-emulator)。从最初的状态开始,tpm-emulator是隶属于linux平台上,它又是tpm软件的仿真器。眼下来看,它的最新版本已可以在多种平台上面运行,如linux、openbsd、windows以及darwin。
图1可信软件栈的体系结构特征
tpm-emulator遵守tpm1.2规范,与此同时,它也可以仿真移动可信平台模块上的mtm模块。从测试对象来看,这种嵌入式系统平台就涵盖了tpm-emulator模块。tddl和单线程接口模块相符合,且与tss规范保持一致,它的位置在tcs及tpm底层驱动中间,通常情况下,应用程序经过tddl接收和转发,向tpm发出相关命令和请求应答的各种信息。从tpmd来看,tpmd在后台上运行,可以守护用户空间的运行进程,进而使得tpm的各个功能模块实现自身功能。在该系统平台上,tpmd和tddl之间在进行双向通信的过程中,通常都运用socket套接字。
3 嵌入式系统可信软件栈测试过程
3.1 嵌入式系统可信软件栈测试模型。在测试嵌入式系统tss
一致性的过程中,系统进行了随机测试,这样一来很多测试用例就产生了,也满足了功能测试的要求。它还支持在测试用例合理性以及等价关系方面的查询,也可以删除多余的测试用例,提升测试水平。从可信软件栈来看,这种自动化测试模型能够自动地产生很多
测试用例,具有非常多的优点,它不但能够提高测试用例的覆盖面积,还尽可能多地减少了筛选测试用例过程中的人工工作量。
3.2 嵌入式系统可信软件栈功能性测试模块。测试实验对象只有根据tcg规范才能实现检测功能,因此本文根据tcg规范为基础进行详细说明。通过分析tss1.1和tss1.2规范,可以将标准符合性所具备的测试层次划分为以下几种:tsp层、tcs以及tddl层等测试。在tss各个层级的测试中,还可以分成很多能测试模块,各模块都包括了一组存在关联性的api函数。划分功能测试模块的基础由tss自身的内部机制来决定。从tsp层来看,它的测试模块涵盖了以下内容:策略管理、密钥管理、pcr管理、上下文管理、tpm 管理、数据加解密管理以及hash功能等测试。从tcs层来看,它的测试模块涵盖了以下几方面:密钥证书管理、上下文管理、事件管理和参数块生成等测试内容。tddl模块则涵盖了tddl接口测试。各个功能测试模块和若干个api操作函数呈现出一一对应的关系,这些api操作函数存在关联性的基础是他们都存着共同的操作对象。
从tss所携带的功能测试模块来看,tss可以借助这些api函数接口,来为广大客户实现模块功能,在系统内部对象的基础上,对有关的api函数进行处理和管理。与此同时,对象之间呈现出很大的关联性和互动性,从内容机制来看,这就是tss的安全策略。从外在体现来分析,它可以确保tss安全方面的功能与保障。这也更
深入地揭示出,在检测测试api功能符合相关标准的过程中,也可以检验嵌入式系统tss的安全功能与保障能力是否符合相关的规范和要求。在tss中,可信软件栈采用了ibm公司的开源软件:trousers0.3.7.。
tsp、tcs和tddl三层测试结果中的功能符合率分别是83.8%、76.7%和42.9%。从trousers0.3.7来看,它的整体功能要求达到了78.6%。这些结果显示了trousers0.3.7产品并没有完全和可信软件栈tcg tss 嵌入式系统可信软件栈自动化测试研究1.1规范的相关要求保持一致。此外,还需要更深层次地改善和提升它的安全功能以及保障能力。
4 结束语
文章介绍了嵌入式系统可信软件栈,在此基础上讨论了可信软件的体系结构。本文阐述了嵌入式系统tss的一致性测试方法和主要过程,采用了自动化的系统随机测试方法,有效地满足功能测试覆盖准则的要求,并提高了测试用例的效率。文章分别论述了嵌入式系统可信软件栈测试模型,嵌入式系统可信软件栈功能性测试模块。在文章的第三部分,嵌入式系统可信软件栈测试过程,得出了如下结论:这些结果显示了trousers0.3.7产品并没有完全和可信软件栈tcg tss 嵌入式系统可信软件栈自动化测试研究1.1规范的相关要求保持一致。此外,还需要更深层次地改善和提升它的安全功能以及保障能力。