可信计算学习
可信计算概念
以PC机可信举例,通俗来讲,可信就是在每台PC机启动时检测BIOS和操作系统的完整性和正确性,保障你在使用PC时硬件配置和操作系统没有被篡改过,所有系统的安全措施和设置都不会被绕过;在启动后,对所有的应用,如社交软件、音乐软件、视频软件等应用可进行实时监控,若发现应用被篡改立即采取止损措施。
以杀毒软件、防火墙、入侵检测为代表的传统“老三样”防御系统,需要预先捕捉黑客攻击和病毒入侵的特征信息,属于“事后防御”的“黑名单”机制,难以应对这种未知的恶意攻击。而可信计算作为一种“白名单”机制,类似人体的主动免疫系统,通过区分“自己”和“非己”成分,可及时清除各类未知风险。
此外,传统的安全防护机制往往运行在应用层或操作系统层,是“自上而下”的保护,一旦启动过程中系统被植入了Rootkit/BootKit或恶意固件,这些位于启动链末端的安全防护机制可能完全无法生效。
什么是Rootkit
1985年,美国国防部发布了世界上第一个可信计算标准——《可信计算机系统评价标准》(TCSEC,即著名的“橘皮书”),第一次提出了可信计算基(Trusted Computing Base, TCB)的概念,并把TCB作为信息系统安全的基础。
截止到目前,国际上已形成以TPM芯片为信任根的TCG标准系列,国内已形成以TCM芯片为信任根的双体系架构可信标准系列。
国际与国内两套标准最主要的差异为:
-
信任芯片是否支持国产密码算法,国家密码局主导提出了中国商用密码可信计算应用标准,并禁止加载国际算法的可信计算产品在国内销售;
-
信任芯片是否支持板卡层面的优先加电控制,国内部分学者认为国际标准提出的CPU先加电、后依靠密码芯片建立信任链的模式强度不够,为此,提出基于TPCM芯片的双体系计算安全架构,TPCM芯片除了密码功能外,必须先于CPU加电,先于CPU对BIOS进行完整性度量;
-
可信软件栈是否支持操作系统层面的透明可信控制,国内部分学者认为国际标准需要程序被动调用可信接口,不能在操作系统层面进行主动度量,为此,提出在操作系统内核层面对应用程序完整性和程序行为进行透明可信判定及控制思路。
可信计算的基本思想
信任的获得方法主要有直接和间接两种。设A和B以前有过交往,则A对B的可信度可以通常考察B以往的表现来确定,我们称这种通过直接交往得到的信任值为直接信任值。设A和B以前没有任何交往,但A信任C,并且C信任B,那么此时我们称A对B的信任为间接信任。有时还可能出现多级间接信任的情况,这时便产生了信任链。
在计算平台中,首先创建一个安全信任根,再建立从硬件平台、操作系统到应用系统的信任链,在这条信任链上从根开始一级度量验证一级,一级信任一级,以此实现信任的逐级扩展,从而构建一个安全可信的计算环境。一个可信计算系统由信任根、可信硬件平台、可信操作系统和可信应用组成,其目标是提高计算平台的安全性。
TCG的信任链
CRTM → BIOS/UEFI → OS Loader → OS → Applications,每个阶段逐步建立起一个可信的链条。这被称为静态信任链(Static Chain of Trust),是可信计算中的一个典型实现。
具体来说:
CRTM(Core Root of Trust for Measurement)
- 作用:信任链的起点,是第一个被执行并测量的可信代码。
- 特点:通常嵌入硬件或固件中,负责测量系统启动时的关键数据(例如BIOS的哈希值)。
- 实现方式:这部分代码通常是不可更改的,比如存储在只读存储器(ROM)或固件中。
- 输出:将测量结果存储在TPM的PCR(Platform Configuration Register)中。
BIOS/UEFI(Basic Input/Output System/Unified Extensible Firmware Interface)
- 作用:初始化硬件,加载并测量下一阶段的启动程序(OS Loader)。
- 特点:BIOS/UEFI在启动过程中会对其自身和引导加载器进行测量。
- 输出:将这些测量结果记录在TPM中。
OS Loader(操作系统加载器)
- 作用:加载操作系统内核,并对其进行测量和验证。
- 特点:比如,常见的加载器如GRUB或Windows Boot Manager会被测量,以确保未被篡改。
- 输出:将测量结果存储在TPM中,作为后续验证的基础。
OS(操作系统)
- 作用:在加载并完成自检后,操作系统会继续测量关键组件(如内核模块、配置文件)。
- 特点:操作系统还可以调用TPM验证前面阶段的可信状态,以确保整个链条的完整性。
Applications(应用程序)
- 作用:某些关键应用程序(如安全软件、加密模块)也可以基于操作系统的信任链,对自身或其他应用进行度量和验证。
- 特点:这部分通常由具体的应用场景决定,比如在云计算中,虚拟机管理程序(Hypervisor)可能会成为额外的一环。
信任根
TCG(Trusted Computing Group)定义的信任根(Root of Trust, RoT) 是指在计算机系统或设备中,用于支持安全操作的一个可信赖的硬件或软件基础。它是系统可信计算的基础,提供了一组核心功能,帮助验证和保护系统的安全性。主要包括以下三个核心组件,每个组件具有特定的功能,是建立可信计算环境的基础:
可信度量根(RTM)
- 全称:Root of Trust for Measurement
- 功能:负责对系统关键组件和启动代码进行测量(通常指哈希计算),生成用于验证的可信度量值。这是可信链的起点,通常在系统启动时由固件或硬件实现。
可信存储根(RTS)
- 全称:Root of Trust for Storage
- 功能:用于安全存储敏感信息,例如密钥、度量值和配置数据。它通常依赖于硬件模块(如TPM)来保护这些数据免受篡改或未授权访问。
可信报告根(RTR)
- 全称:Root of Trust for Reporting
- 功能:负责安全报告系统状态和度量值,确保这些数据的真实性和完整性,用于向外部验证方证明设备或平台的可信状态。
打个比方
这样说起来比较抽象,理解比较困难,但实际上这么分很清晰。
想象你的电脑是一个“保险箱”,信任根就是负责确保这个“保险箱”足够安全的部分
- RTM(可信度量根):好比一个“安检仪器”,每次你启动保险箱时,它会扫描检查锁、门和密码系统有没有被改动。
- RTS(可信存储根):就像保险箱里的“秘密隔间”,里面放着你的重要文件(密钥、密码等),确保没有人能偷走或篡改这些文件。
- RTR(报可信报告根):像一个“报警器”,当有人试图打开你的保险箱时,它会告诉你(或别人)当前保险箱是否安全,是否被动过手脚。
可信平台模块(TPM)
**可信平台模块(Trusted Platform Module, TPM)**是可信计算平台的信任根,是一种计算机芯片(微控制器)。该芯片的规格由可信计算组(Trusted Computing Group)来制定。
TPM的组件
TPM 2.0内部结构及模块功能
TCG先后发布过多个版本的TPM标准,其中,TPM 1.2使用较为广泛,但随着信息计算机技术的不断发展,TPM 1.2无法满足新技术下的需求,2014 TCG发布了TPM 2.0,TPM 2.0内部结构及模块功能如下图:
平台配置寄存器(PCR)
**平台配置寄存器(Platform Configuration Register, PCR)**是TPM芯片的基本组成部分之一,它的主要用途是提供一种基于密码学的度量软件状态的方法,度量对象包括平台上运行的软件和该软件使用的配置数据。
TPM在上电时会将所有PCR初始化为全0或全1(根据TPM平台规定的初始状态),调用者不能直接写PCR,只能通过被称为**“扩展”(Extend)**的操作更新PCR的值,这是一种单向哈希计算,其定义如下:
典型的PCR分配如下:
PCR编号 | 用途 |
---|---|
0 | BIOS |
1 | BIOS配置 |
2 | 可选ROM |
3 | 可选ROM配置 |
4 | MBR |
5 | MBR配置 |
6 | 状态转变和唤醒事件 |
7 | 平台制造商特定度量 |
8-15 | 静态操作系统 |
16 | Debug |
23 | 应用程序支持 |
TPM1.2与2.0对比
对比项 | TPM 1.2 | TPM 2.0 |
---|---|---|
平台支持 | 主要面向PC平台设计,不适合服务器平台和嵌入式平台 | 面向多平台 |
本地化 | 密码方案不支持本地化,不利于向世界各国推广 | 支持不同国家使用自己的标准密码算法,例如我国的TPM 2.0芯片支持SM2、SM3和SM4国密算法 |
PCR | 只能使用SHA-1算法进行PCR扩展 | 拥有多个PCR banks,一个bank内所有PCR使用相同算法进行扩展操作,对于不同的bank,扩展操作相互独立,互不干扰 |
可信密码模块(TCM)
**可信密码模块(trusted cryptography module,TCM)**是可信计算平台的硬件模块,为可信计算平台提供密码运算功能,具有受保护的存储空间,是我国国内研究,与TPM对应。但定位不同,TCG组织将TPM定位为系统的可信根。但是TCM定位为可信平台中专用于提供可信密码服务的模块,是可信根的重要组成部分。
结构与功能
可信平台控制模块(TPCM)
功能描述
可信软件栈(TSS)
参考文献
[1] 【可信计算】第五次课:可信计算规范与标准_tpm2 隐私域-CSDN博客
[2] 网络安全之可信计算_计算机
[3] 看见“信任”,可信计算平台的由来解读(TPM、TCM、TPCM、等保2.0解读)。-CSDN博客
[5] 可信计算的前世今生 - 知乎
[6] [可信平台控制模块(TPCM) | openEuler文档 | openEuler社区 | v24.09](https://docs.openeuler.org/zh/docs/24.09/docs/Administration/可信平台控制模块TPCM.html#:~:text=可信平台控制模块(Trusted Platform,Control Module,TPCM)是一种可集成在可信计算平台中,用于建立和保障信任源点的基础核心模块。 它作为中国可信计算3.0中的创新点之一和主动免疫机制的核心,实现了对整个平台的主动可控。)
注:部分图片来源于网络,如有侵权请邮箱联系。