可信计算

Trusted Computing

Posted by PYQ on January 10, 2022

Ⅰ. 可信计算

1.1 可信及可信计算的定义

不同组织对可信的定义是不一样的,下面例举国际上几大组织对可信的基本定义:

  • 可信计算组织(TCG)对可信定义:如果一个实体的行为是以预期的方式,符合预期的目标,则实体是可信的。
  • 国际标准化组织与国际电子技术委员会在ISO/IEC15408标准中的可信定义:参与计算的组件、操作或过程在任意的条件下是可预测的,并能抵御病毒和一定程度的物理干扰
  • IEEE计算学会可靠计算技术委员会对可信的定义:计算机系统所提供的服务是可以证实其是可信赖的(可靠性、可用性和可维护性)

信息安全专家沈昌祥院士认为可信要做到一个实体在实现给定目标时,其行为总是符合预期结果,强调行为结果的可预测性

通过以上不同组织或专家对可信的定义,我们可以概括为可信即实体执行使用者发布的任务或实现某目标,其行为以及结果是符合使用者预期的

可信计算:能提供系统可靠性、可用性、安全性(信息的安全性和行为的安全性)的技术。

1.2 可信计算的发展

国际:

  • 20世纪70年代末,G.H.Nibaldi建立了可信计算基(Trusted Computing Base,TCB)的思想。
  • 1999年,由微软、Intel、IBM等190家公司创立了可信计算联盟(Trusted Computing Platform Alliance,TCPA)
  • 2003年4月,TCPA更名为可信计算组织(Trusted Computing Group,TCG)
  • 2005年,中国成立TCMU,并纳入TCG。

相较于国外,我国可信计算起步较晚,但发展速度极快:

  • 1992年,微机保护卡。
  • 2004年,第一款可信计算平台。
  • 2005年,沈昌祥院士发起成立 “可信计算密码支撑平台标准联合工作站”
  • 2006年,《可信计算平台密码技术方策》和《可信计算密码支撑平台功能与接口规范》。
  • 2013年,成立可信计算产业联盟
  • 2016年,“可信3.0”

1.3 TPM和TCM

TPM即可信计算平台模块,TPM安全芯片即符合TPM标准的安全芯片,能有效保护PC,防止非法用户访问。TPM标准由TCG制定,当前最新版本为2.0。有关TPM的详细介绍可见笔者另一篇文章TPM

尽管TCG是非营利性机构,TPM的技术也是开放的,但由于掌握核心技术的仍是Microsoft、Intel、IBM等国际巨头,因此采用TPM标准的安全设备会使国家信息安全面临巨大威胁。从安全战略方面分析,如果采用国外的TPM技术,我国的安全体系就会控制在别人手上,中国将来的标准计算机上产生的所有信息对外国人来说将不存在秘密,这样安全技术的主导权、产业的主导权就更谈不上了。

只有我们拥有独立自主的可信计算技术体系,为国家信息安全基础建设打下坚实基础,才能保证未来我们有能力、有办法保护秘密,保护主权。只有掌握这些关键技术,才能提升我国信息安全核心竞争力。

以密码算法为突破口,依据嵌入芯片技术,完全采用我国自主研发的密码算法和引擎,来构建一个安全芯片,我们称之为可信密码模块(Trusted Cryptography Module,TCM)。这是按照我国密码算法自主研制的具有完全自主知识产权的可信计算标准产品。TCM由长城、中兴、联想、同方、方正、兆日等十二家厂商联合推出,得到国家密码管理局的大力支持,TCM安全芯片在系统平台中的作用是为系统平台和软件提供基础的安全服务,建立更为安全可靠的系统平台环境。

Ⅱ. 可信计算关键技术

可信环境中必须有一个基于密码学(软件)和物理保护(硬件)的可靠信任源头,即可信根。系统中的可信元件(安全机制)从这一可信根出发,经过一环套一环的可信传递过程来保障其可信性。系统的可信计算基中所有元件应构成一个完整的可信链条,以确保整个可信计算基的可信性。

image-20220110162520860

2.1 可信存储

可信存储主要用于系统中各种密钥的可信存储。

1.密钥类型

image-20220110162617461

2.可信存储原理

由于TPM/TCM安全芯片的存储空间有限,因此只存储密钥。

image-20220110162655693

2.2 可信度量

可信度量是指获取完整性相关的平台特性序列的过程

  • 采用杂凑算法对系统中固件、硬件驱动、系统软件、应用软件和相应的配置进行杂凑运算
  • 度量结果都保存在平台配置寄存器(Platform Configuration Register,PCR)和存储度量日志(Storage Measurement Log,SML)中

image-20220110162728741

1.PCR

  • PCR位于受保护的存储空间。
  • 平台启动时,PCR值会被重置为默认值
  • 平台启动后,以**“扩展”的方式更改PCR值:new PCR = hash(old PCR   扩展值)**。
  • PCR具有顺序性和单向性,即从根开始按顺序依次度量。

2.SML

SML在验证安全序列时使用,用于记录验证过程。

3.可信基准库

可信基准库用于存放软硬件的信息及其度量值,若在验证过程中对比不一致,还需对所用软硬件配置进行修改。

2.3 可信报告

image-20220110162841098

Ⅲ. 可信根与信任链

3.1 可信根

信任传递时,最初始加载允许的可信实体被称为信任链的可信根,一般由厂商实现,其信任由厂商保证。平台的可信根组件需要具备描述平台信任的最小功能集合

image-20220110162925164

1.可信存储根RTS

  • RTS通常由TPM的平台配置寄存器PCR存储根密钥SRK组成。
  • RTS负责将度量数据保存在日志中,将散列值保存在PCR中
  • RTS设计了一种特殊的存储架构,在外部存储器和TPM内部的RTS之间设计了一个密钥缓存管理(KCM)模块,负责TPM内部与外部密钥的转移。

2.可信报告根RTR

RTR是TPM中用于保障完整性数据报告功能的计算引擎,通常由PCR与背书密钥EK组成。RTR主要有两个功能:

  • 显示受TPM保护的完整性度量值。
  • 在平台身份证明的基础上向远程平台证明其拥有的完整性度量值。

3.可信度量根RTM

RTM包括静态RTM(SRTM)、动态RTM(DRTM)和可信度量根核(CRTM)

  • SRTM:用于建立从平台硬件开始运行到最上层应用程序的信任链系统,是最先获取平台控制权的组件,在信任链中起信任锚点的作用。
  • CRTM:BIOS最先开始的一段代码或整个BIOS,在平台加电后最先执行,负责度量平台接下来要运行的代码
  • DRTM:新型CPU的特殊安全指令,可以在平台启动的任意时刻触发,其触发后能够基于少量硬件和程序代码建立一个隔离的安全可执行环境

一般在平台建立后,我们都假设TPM/TCM和BIOS是可信的,RTM、RTS、RTR也是可信和功能正确的。

3.2 信任链

信任链是一种信任传递方法,从可信很开始一层度量一层,并逐级认证,将信任从最底层的可信根传递至整个系统,保证系统执行环境的可信。

信任链主要通过可信度量机制获取各种可能影响平台可信任的数据,并通过这些数据与预期数据进行对比,以判断平台的可信性

image-20220110163002633

image-20220110163044625