随着国家对信息安全意识的不断加强,我国开始大力推进信息技术自主可控能力,其中可信计算起到十分关键的作用。目前国外主流IT厂商、标准组织建立的是以TPM为核心的技术规范体系,为了打破国外对可信计算的技术垄断,提高国家计算产业的信息安全水平,2006年国家成立了可信计算密码专项组,联合国内相关管理机构、科研组织和科技公司联合制定具有自主知识产权的可信计算技术体系,并在2007年12月,由国家密码管理局颁布了《可信计算密码支撑平台功能与接口规范》,将国内使用的可信基础模块定义为TCM(Trusted Cryptography Module)。
相较于TPM,TCM采用了我国《商用密码管理条例》中规定的SM2、SM3等国密算法,同时引入了对称密钥算法,简化了TPM中复杂的密钥管理,TCM的证书认证机制采用签名密钥以及加密密钥的双证书机制,将对称密钥和非对称密钥结合保护系统安全,在密钥管理体系和基础密码服务体系等方面进行了改进,提升了系统的安全性。
1、可信平台组成结构
构建在计算系统中,用于实现可信计算功能的支撑系统称为可信计算平台。可信计算平台的重要组成部分,包括密码算法、密钥管理、证书管理、密码协议、密码服务等内容,为可信计算平台自身的完整性、身份可信性和数据安全性提供密码支持。其产品形态主要表现为可信密码模块和可信密码服务模块。可信计算密码支撑平台主要由可信密码模块(TCM)和TCM 服务模块(TSM)两大部分组成,其功能架构如图1所示:
图1 可信计算密码支撑平台功能架构
可信计算密码支撑平台以可信密码模块为可信根,通过如下三类机制及平台自身安全管理功能,实现平台安全功能。
- 保护机制:TCM能够以可信的方式执行计算和安全的存储数据。TCM为安全操作敏感数据提供保护IXI域(如内存、PCR寄存器:平台配置寄存器,用来装载对模块的度量值);同时,TCM的保护能力还体现在密码算法及安全管理上,比如数据加解密、数据封装、密钥管理、随机数生成等。这些功能使得系统的状态在任何时候都处于可知,还可以将系统的状态与数据绑定起来进行数据封装保护。
- 完整性度量机制:在TCG的体系中,所有模块都被纳入保护范围内,如果任何被保护的模块被恶意攻击,将导致其摘要值发生变化,通过查询模块的摘要值就能及时知道是否出现了问题。
- 认证机制:TCM能够证明信息的真实性。在网络通信中,TCM可协助完成终端之间的身份认证功能,PCR的引入实现了终端身份与平台软硬件配置的相互绑定,实现了网络通信的可信。
2、可信密码模块(TCM)
可信密码模块(TCM)是可信计算密码支撑平台必备的关键基础部件,提供独立的密码算法支撑。TCM是硬件和固件的集合,可以采用独立的封装形式,也可以采用IP核的方式和其他类型芯片集成在一起,提供TCM功能。TCM的结构如图2所示,由SM2引擎、SM3引擎、SM4引擎、HMAC引擎、随机数产生器、执行引擎、非易失性存储器、易失性存储器及I/O部件组成。各部分的功能如图2所示。
图2 TCM结构
- SM2引擎:产生SM2密钥对和执行SM2加/解密、签名运算的单元;
- SM3引擎:执行哈希运算的单元;
- SMS4引擎:执行SMS4对称密码运算的单元;
- HMAC引擎:基于SM3引擎的计算消息认证码单元;
- 随机数产生器:生成随机数的单元;
- 执行引擎:TCM的运算执行单元;
- 非易失性存储器:存储永久数据的存储单元;
- 易失性存储器:TCM运行时临时数据的存储单元;
- I/O:TCM的输入输出硬件接口;
3、TCM服务模块(TSM)
可信密码模块定义了一个具有存储保护和执行保护的子系统,该子系统将为计算平台建立信任根基,并且其独立的计算资源将建立严格受限的安全保护机制。为防止TCM 成为计算平台的性能瓶颈,将子系统中需执行保护的函数与无需执行保护的函数划分开,将无需执行保护的功能函数由计算平台主处理器执行,而这些支持函数构成了TCM 服务模块,简记为TSM。
TSM 主要提供对TCM 基础资源的支持,由多个部分组成,每个部分间的接口定义应具有互操作性。TSM 应提供规范化的函数接口。
TSM 设计目标:
- 为应用程序调用 TCM 安全保护功能提供一个入口点
- 提供对 TCM 的同步访问
- 向应用程序隐藏 TCM 所建立的功能命令
- 管理 TCM 资源
4、服务器可信支撑平台
4.1 组成结构
服务器可信支撑平台主要由物理可信根、可信基础组件和虚拟可信组件等部分组成,其组成结构如图3所示。
根据服务器软硬件组成的不同,服务器可信支撑平台包含的部分也不同,其关系如下:
——服务器硬件系统:应包含物理可信根;
——非虚拟化环境(由服务器硬件系统和操作系统组成):应包含物理可信根和可信基础组件;
——虚拟化环境(由服务器硬件系统、操作系统和VMM组成):应包含物理可信根、可信基础组件和虚拟可信组件;
图3 服务器可信支撑平台组成结构
服务器可信支撑平台与服务器硬件系统的关系如下:
a)服务器硬件系统应嵌入物理可信根,实现服务器硬件系统的信任链构建;
b)服务器硬件系统中各模块的协作关系应满足如下要求:
- 服务器硬件系统信任链建立的起点是物理可信根;
- OMM启动过程应以物理可信根为信任起点构建信任链;
- Boot ROM及OMM ROM中应实现对各阶段的程序模块和组件进行度量,实现信任链传递;
服务器可信支撑平台与服务器操作系统的关系如下:
a)应包含可信基础组件,实现从服务器硬件系统到操作系统的信任链传递,并为其他可信组件及服务器其他实体提供可信服务、可信基础组件应满足如下要求:
- 实现与物理可信根相对应的功能及接口规范;
- 接收并传递来自服务器硬件系统的信任关系到操作系统;
- 提供访问和管理物理可信根相关可信接口;
- 维护服务器硬件系统与操作系统的信任关系;
b)在虚拟化环境下,还应包含虚拟可信组件、虚拟可信组件应满足如下要求:
- 由虚拟可信根管理器、虚拟可信根、可信迁移、远程证明等组成;
- 将信任链从操作系统传递到虚拟机;
- 为虚拟机提供可信根服务,使得虚拟机中的可信基础组件无差异地使用虚拟可信根服务;
- 确保虚拟机与虚拟可信根实例一对一绑定关系;
4.2 服务器硬件系统可信功能要求
服务器硬件系统信任链从上电到物理可信根启动后,操作系统内核加载之前的建立流程见图4。
图4 服务器硬件系统信任链建立流程
流程如下:
- 服务器硬件系统启动时,物理可信根应作为信任链传递的起点;
- 由物理可信根中的RTM度量OMM Boot Loader,生成的度量结果存储于物理可信根中,并存储度量日志;
- OMM Boot Loader加载并执行;
- OMM Boot Loader中的度量执行点对OMM Kernel进行完整性度量,OMM Kernel中度量执行点对应用程序及服务进行完整性度量;
- 由物理可信根中的RTM度量Boot ROM中的初始引导模块(Boot Block),产生度量结果存储于物理可信根中,并存储度量日志;
- Boot ROM中的Boot Block加载并执行;
- Boot Block中的度量执行点对Main Block进行完整性度量,Main Block中的度量执行点对服务器外设和OS Loader进行完整性度量;
其中,OMM度量应满足如下要求:
- 度量内容至少包括:OMM引导程序、OMM内核、OMM核心应用程序;
- 将度量值存储于物理可信根约定的PCR中;
- 提供度量日志查询接口;