2. 湖北警官学院 信息技术系 湖北 武汉 430034
2. Department of Information Technology, Hubei University of Police, Wuhan 430034, China
当前, 全球范围内网络安全威胁和风险日益突出, 沈昌祥院士提出用可信计算构筑网络安全[1].可信计算的基本思想体现在可信计算平台(trusted computing platform,TCP)的设计中, 先在平台中建立一个信任根, 即可信平台模块(trusted platform module, TPM), 再建立一条信任链, 从信任根开始到硬件平台、可信计算支撑软件、操作系统、应用软件, 逐级测量认证, 从而把信任扩展到整个可信计算平台, 并确保整个平台的可信[2].
可信计算支撑软件(trusted computing supporting software, TCSS)是TCP的重要组成部分, 它在应用软件与TPM之间搭建了通讯的桥梁, 应用程序通过调用可信计算支撑软件的接口来使用TPM提供的安全功能[3].
国内外的可信计算支撑软件大多数参照可信计算组织(trusted computing group, TCG)的可信软件栈规范, 代表性的产品有:IBM公司发布的开源软件TrouSerS[4]、奥地利格拉茨技术大学IAIK开发的Trusted Computing API for Java[5]、联想公司的Client Security Solution8.3[6].
现有的TCSS多按照TCG规范定义了软件的功能接口, 但TCG规范中对TCSS要达到的安全功能需求和安全目标没有明确的定义.本文在通用准则(common criteria, CC)的基础上,结合对TCSS安全功能划分和实际应用需求,提出一种可信计算支撑软件的实现方案,并实现了可信计算支撑软件的原型.
1 背景知识 1.1 可信计算支撑软件TCG规范中定义的可信计算支撑软件也称TCG软件栈(TCG software stack, TSS), 是一种为上层的应用程序提供访问TPM接口的软件系统,是可信计算平台体系中必不可少的组成部分[7].
TSS是多层次体系结构,对本地和远程的可信计算平台都能提供服务支持.TSS的体系结构具体可分为TCG服务提供层(TCG service provider, TSP)、TCG核心服务层(TCG core service, TCS)和TCG设备驱动库(TCG device driver library, TDDL),各个层次都定义了规范化的函数接口.TSP主要作为本地和远程应用的可信代理,TCS用于提供公共服务的集合,而TDDL负责与TPM的交互.
1.2 通用准则通用准则CC是国际上广泛认可的信息安全评估标准,能够为信息技术产品的安全功能要求和安全保证措施提供通用的标准[8].CC也可以指导具有安全功能相关IT产品的开发和评估过程.
在CC的体系中,保护轮廓(protection profile, PP)是安全性评估的依据,是对IT安全产品的一组安全要求的描述,是抽象层次较高的安全需求说明书.CC发展委员会还提出了一种基于合作性保护轮廓的安全测评框架[9].PP有助于提高IT产品开发和评估过程的规范性,通过对评估对象(target of evaluation,TOE)进行描述,以确定TOE的安全要求.TOE通常被定义为参照规范实现的软件、固件和硬件,本文研究的TOE为可信计算支撑软件.
在开发阶段建立的安全要求对满足用户的安全目标意义重大, CC不强制要求采用特定的开发方法和模型.CC指导TOE的开发过程是将抽象安全目标逐步细化为最终实现的过程, 该过程的基础是将安全要求细化为安全目标中的TOE概要规范, 使每个低层次的细化代表具有更为详细的设计分解, 最低的抽象表示是TOE实现本身, 每个层次的细化是更高层次的实例化[10].文献[11]从设计分解的角度论述了CC的基本评估模型, 并提出了对安全功能要求进行半形式化的方法.
2 TCSS的安全功能分析安全功能需求定义用于描述产品应该提供的安全功能, CC为安全功能需求的描述制定了规范的类描述方式, 从而保障产品开发的规范性.
所有TOE安全功能要求从根本上均来源于对TOE的用途和环境的考虑, TCSS的设计要求和规范的导出过程可分成多个层次, 首先确定TCSS的安全环境, 接着确定TCSS的安全目标, 然后导出TCSS的安全要求, 包括功能要求、保证要求和环境要求, 最后导出安全功能规范, 可以参照安全功能规范完成对TCSS的设计和测试.
CC中定义了安全功能要求, 用类、族和组件来表示, 一个功能类包含一个或多个功能族, 一个功能族又包含一个或多个组件, 每个组件提供一组安全功能元素.我们以TCG规范定义的TCSS为研究对象, TCG服务提供层(TSP)、TCG核心服务层(TCS)和TCG设备驱动库(TDDL)各层次抽取出的安全功能为功能类; 每个安全功能又划分为不同的子功能模块, 即对应为功能族; 每个模块有不同的接口函数, 即对应组件, 且接口函数间存在着相互依赖的关系.
参照TCG可信软件栈规范满足可信计算平台的安全需求, 并实现TCSS自身的设计功能目标, 遵照不同规范实现TCSS的分析和设计, 本文对可信计算规范进行抽取, 定义出了TCSS的安全功能, 如图 1所示.不同的规范中定义的函数功能接口有差异, 各TCSS产品的实现机制会有不同, 但只要TCSS能实现相对应的安全功能,同样能达到设计目标.
![]() |
图 1 TCSS安全功能划分 Figure 1 Division diagram of TCSS security function |
下面具体分析TCSS的TSP层安全功能和相关子功能的关系.将TSP划分为完整性保护、可信认证和密码支持3个安全功能.TSP的各安全功能又可分解为相关子功能, 完整性保护包括HASH功能和TPM管理; 可信认证包括上下文管理、策略管理和PCR管理; 密码支持包括密钥管理和数据加解密.
TCSS的设计采用自顶向下方法, 确定功能类和对应的功能族, 再逐步求精设计相关的组件.下面以密码支持类为例, 详细描述TCSS的设计过程.
CC中对密码支持类(FCS类)由两个功能族组成[12]:密钥管理(FCS_CKM)和密码运算(FCS_COP).参照CC中对安全功能类、功能族和组件的划分, 对TSP的密码支持安全功能进行分析.密钥管理子功能对应FCS_CKM功能族, 解决密钥管理方面的问题; 数据加解密子功能对应FCS_COP功能族, 与密钥在运算中的使用情况相关.FCS_CKM功能族包括4个组件:密钥生成(FCS_CKM.1)、密钥分发(FCS_CKM.2)、密钥使用(FCS_CKM.3)和密钥销毁(FCS_CKM.4),FCS_COP功能族的组件为密码运算(FCS_COP.1).密码支持功能各组件间的依赖关系如图 2所示, 可以看出在完成密码支持安全功能的过程中, 密钥生成组件最先执行, 密钥销毁组件最后执行.
![]() |
图 2 密码支持功能组件依赖关系图 Figure 2 Dependency diagram of cryptographic support function |
密钥生成、密钥分发、密钥使用、密钥销毁和密码运算等组件中分别设计具体的功能函数.表 1描述了TSP层密码支持类的部分函数功能划分.
![]() |
表 1 TSP层密码支持类的部分函数功能划分 Table 1 Partial function division of cryptographic support class of TSP layer |
本文可信计算支撑软件的开发平台为支持TPM2.0的Intel小型机, 操作系统为Ubuntu10.04, 编译器版本为GCC3.3.根据完整性保护、可信认证和密码支持等安全功能的要求设计实现了31个功能函数, 该TCSS的功能函数设计是TCG规范中定义软件栈的子集, 实现了核心的安全功能, 同时还增加了对中国标准的加密算法SM4的调用支持.
通过对所有TCSS实现的函数接口进行功能测试, 全部达到规范的功能要求, 下面以对SM4算法调用的测试为例, 介绍TCSS原型的工作流程.先创建主密钥(PrimaryKey), 授权后再生成SM4密钥对, 用私钥进行签名, 公钥验证签名.图 3描述了整个测试流程, 其中Tspi_TPM2_CreatePrimaryKey函数的功能是产生1个主密钥,其函数测试界面如图 4所示.
![]() |
图 3 SM4密钥签名流程 Figure 3 Process of SM4 key signing |
![]() |
图 4 Tspi_TPM2_CreatePrimaryKey函数测试界面 Figure 4 Test interface of Tspi_TPM2_CreatePrimaryKey |
Tspi_TPM2_CreatePrimaryKey测试界面中相关字节的参数说明如下:
发送的数据包是十六进制的形式显示,2位数表示1个字节.下面对图中标识出的重要数据做一下说明.
1) 前2个字节代表参数TPMI_ST_COMMAND_TAG的值为TPM_ST_SESSIONS=0x8002, 表示命令有一个或多个连接的会话,授权值在当前的范围;
2) 第7~10个字节代表参数TPM_CC的值TPM_CC_CreatePrimary=0x00000131,表示生成了主密钥;
3) 第11~14个字节代表参数TPM_AUTH_HANDLE的值TPM_RH_PLATFORM=0x4000000C,表明是平台身份的密钥;
4) 设置PrimaryKey密码为0x 00 ff,接收到TPM返回的数据,生成的句柄为0x 80 00 00 00,表示为普通的临时对象,传给下一个函数Tspi_TPM2_CreateKey.
测试结果表明,接收到TPM返回的数据,平台的主密钥创建成功.
4 结论本文借鉴通用准则CC的思想, 提出了一种TCSS的设计方法,在分析TCSS的安全功能需求的基础上抽取安全功能集, 并确定对应的子功能和核心功能函数, 结合实际应用需求实现了一种TCSS的原型.最后对已完成的TCSS相关功能函数进行了测试.实验表明:本文实现的TCSS原型能提供密码支持服务、可信认证、完整性保护等安全目标, 也支持对国家密码算法SM4的调用.今后将进一步完善支持TPM2.0规范的TCSS设计工作,实现对远程应用的支持.
[1] |
沈昌祥. 用可信计算构筑网络安全[J]. 求是, 2015(20): 33-34. ( ![]() |
[2] |
沈昌祥, 张焕国, 王怀民, 等. 可信计算的研究与发展[J]. 中国科学(E辑:信息科学), 2010, 40(2): 139-166. ( ![]() |
[3] |
PROUDLER G, CHEN L, DALTON C. Trusted computing platforms: TPM2.0 in context[M]. Switzerland: Springer, 2014.
( ![]() |
[4] |
International business machine. TrouSerS[EB/OL]. (2008-10-03) [2017-05-28]. http://trousers.sourceforge.net/.
( ![]() |
[5] |
IAIK Graz University of Technology. Trusted computing API for Java[EB/OL]. (2011-12-05) [2017-5-28]. https://jcp.org/en/jsr/detail?id=321.
( ![]() |
[6] |
联想集团. ThinkVantage客户端安全软件8. 3 [EB/OL]. (2014-02-28) [2017-05-26]. http://think.lenovo.com.cn/support/driver/detail.aspx?docID=DR1256885488596.
( ![]() |
[7] |
Trusted computing group. TCG software stack (TSS) specifiction, version 1. 2, errata A [EB/OL]. (2009-03-01) [2017-05-21]. http://www.trustedcomputinggroup.org/resources/tcg_software_stack_tss_specification.
( ![]() |
[8] |
Common criteria for information technology security evaluation, part 1 introduction and general model, Version 3. 1, revision 5[S]. Common criteria recognition arrangement management committee, 2017: 11-12.
( ![]() |
[9] |
CCRA Management Committee. CCRA: arrangement on the recognition of common criteria certificates in the field of information technology security[EB/OL]. (2014-07-02) [2017-05-28]. http://www.commoncriteriaportal.org/ccra/.
( ![]() |
[10] |
中国国家标准化管理委员会. GB/T 18336. 1—2008, 信息技术安全技术信息技术安全性评估准则第1部分: 简介和一般模型[S]. 北京: 中国标准出版社, 2008: 11-12.
( ![]() |
[11] |
石竑松, 高金萍, 贾炜, 等. CC标准中安全架构与策略模型的分析方法[J]. 清华大学学报(自然科学版), 2016, 56(5): 493-498. ( ![]() |
[12] |
Common criteria for information technology security evaluation, part 2 security functional components, Version 3. 1, revision 5[S]. Common criteria recognition arrangement management committee, 2017: 48-51.
( ![]() |