一、可信计算概念、涵义和属性

1. 可信计算概念

核心定义:如果针对某个特定目的,实体的行为与预期行为相符,则称该实体对这个目的是可信的。

延伸理解

  • 不是“绝对安全”,而是“行为可预测、可验证”
  • 强调信任关系的建立和传递,而不仅仅是防御攻击
  • 从传统的“访问控制”转向“行为验证”

2. 可信计算涵义(四个理解维度)

(1) 用户的身份认证

  • 对使用者的信任
  • 确保操作者身份真实可靠

(2) 平台软硬件配置的正确性

  • 对运行环境的信任
  • 确保操作系统、驱动等未被篡改

(3) 应用程序的完整性和合法性

  • 对应用程序的信任
  • 确保应用软件未被植入恶意代码

(4) 平台之间的可验证性

  • 网络环境中的相互信任
  • 支持远程验证平台状态

3. TCG定义的可信计算三属性

属性 含义 实现方式
可鉴别性 用户可以确定通信对象的身份 AIK证书、DAA协议、Privacy CA
完整性 信息能被正确传输,不被篡改 PCR度量、哈希链、SML日志
私密性 系统能保证信息的保密性 密钥管理、数据封装、匿名认证

补充理解

  • 这三个属性形成了信任的基础三角:知道是谁(可鉴别)、确保没被改(完整性)、不让别人知道(私密性)
  • 与传统安全的关系:可信计算补充而非替代传统安全,增加了“可验证”维度

二、完整性度量、远程证实、受保护的存储结构

1. 完整性度量机制

(1) 核心组件
  • PCR(平台配置寄存器)

    • 160位(20字节)存储位置
    • 共24个:0-7(系统启动)、8-15(OS使用)、16-23(动态可信根)
    • 不是存储度量值本身,而是存储哈希链结果
  • 度量操作原理

    新PCR值 = SHA1(旧PCR值 || 新度量值)
    
    • 不可交换性:A→B和B→A结果不同
    • 单向性:无法从PCR值反推出输入
    • 累积性:无限度量项存入固定空间
(2) 度量链建立过程
BIOS → PCR[0]
MBR/引导程序 → PCR[1]
操作系统加载器 → PCR[2]
操作系统内核 → PCR[3-7]
驱动/应用程序 → PCR[8-23]
(3) 双重存储机制
  • PCR:存储哈希链摘要(快,验证用)
  • SML(存储度量日志):存储详细度量记录(日志,分析用)
  • 验证时:重新计算SML的哈希链,与PCR值比对

2. 远程证实机制

(1) 基本流程
挑战方(Challenger)                 ←--- 随机数Nonce
    ↓
证实方(Attesting Party)          ←--- 接收Nonce
    ↓
TPM签名(Sig{Nonce, PCR})         ←--- 用AIK签名
    ↓
发送签名+度量日志                    ←--- 提供证据
    ↓
挑战方验证:                        ←--- 三步验证
    1. 验证AIK证书合法性
    2. 验证签名与Nonce匹配
    3. 比对PCR与度量日志一致性
(2) 隐私保护方案对比
方案 原理 优点 缺点
Privacy CA 可信第三方颁发AIK证书 实现简单,兼容性好 需要在线CA,隐私依赖CA
DAA 零知识证明,直接匿名 无需在线CA,隐私性好 实现复杂,计算量大
(3) 关键技术点
  • Nonce(一次性随机数):防止重放攻击
  • AIK(身份认证密钥):保护EK隐私
  • 证书链验证:EK→AIK→签名

3. 受保护的存储结构

(1) 存储层次结构
SRK(存储根密钥)
├── 平台迁移密钥(管理员)
│   ├── 用户1可迁移密钥
│   │   ├── 签名密钥1(叶子)
│   │   └── 绑定密钥(叶子)
│   └── 用户2可迁移密钥
└── 用户不可迁移密钥
    └── 封装数据(绑定PCR)
(2) 密钥分类
类型 生成位置 是否可迁移 是否可鉴定 用途
不可迁移密钥 TPM内部 根密钥、关键密钥
可迁移可鉴定密钥 TPM内/外 用户数据密钥
可迁移不可鉴定密钥 TPM外部 外部导入密钥
(3) 数据保护操作对比
操作 绑定(Binding) 封装(Seal)
保护方式 用密钥加密 用密钥加密+绑定PCR
访问条件 拥有解密密钥 1.拥有密钥 2.PCR状态匹配
安全性 依赖密钥安全 密钥安全+系统完整性
灵活性 任何状态可用 仅特定状态可用

封装操作的双重PCR绑定

  1. 创建时的PCR值:记录密钥生成时的系统状态
  2. 释放时的PCR值:指定密钥可用的系统状态条件

三、可信度量根、可信报告根、可信存储根

1. 三大信任根的功能定位

信任根 英文缩写 核心功能 实现位置 信任起点
可信度量根 RTM 初始度量执行者 CRTM(BIOS中) 系统启动第一段代码
可信报告根 RTR 平台状态签名者 TPM内部 签名验证的起点
可信存储根 RTS 密钥数据保护者 TPM内部 存储保护的起点

2. 可信度量根(RTM)

(1) 具体实现:CRTM
  • 位置:主板Boot ROM中的一段不可修改代码
  • 职责:度量BIOS后续代码,启动信任链
  • 特性
    • 必须是物理防篡改的
    • 代码量小,易于验证
    • 最先执行,无法被绕过
(2) 信任传递机制
CRTM度量BIOS → BIOS度量OS加载器 → OS加载器度量内核 → ...

关键特性:上游度量下游,信任逐级传递

3. 可信报告根(RTR)

(1) 核心能力
  • 签名能力:用AIK对PCR值签名
  • 证书链:EK→AIK→签名,形成可验证链
  • 防伪性:私钥永不离开TPM,签名不可伪造
(2) 报告类型
  • 本地报告:Seal操作,绑定本地PCR状态
  • 远程报告:Challenge-Response协议,向外部证明

4. 可信存储根(RTS)

(1) 核心组件:SRK
  • 唯一性:每个TPM一个SRK
  • 生成时机:TPM所有者获取所有权时
  • 存储位置:永远在TPM内部,不导出
(2) 存储结构特性
  • 树状结构:SRK为根,支持多级密钥封装
  • 访问控制:每个节点有授权数据(密码)
  • 状态绑定:支持PCR绑定,增强安全性
  • 缓存机制:避免每次访问都遍历整棵树

5. 三根协同工作模式

启动阶段:
CRTM(RTM) → 度量 → BIOS → 扩展 → PCR
                          ↓
                     TPM(RTS)存储度量值

报告阶段:
应用请求 → TPM(RTR)签名PCR → 发送报告

数据访问:
应用请求数据 → 检查PCR状态(RTM相关)
            → 验证授权(RTS管理)
            → 解密数据(RTS保护)

6. 重要补充说明

(1) 为什么需要三个根?

  • 职责分离:度量、报告、存储各司其职
  • 安全边界:一个被攻破不影响其他功能
  • 灵活性:不同场景可使用不同组合

(2) 实际部署中的位置

主板:CRTM(RTM) → 启动BIOS
TPM芯片:           → RTR(签名引擎)
                  → RTS(存储引擎+SRK)

(3) 与信任链的关系

信任起点:CRTM(RTM)
信任传递:PCR扩展链
信任验证:TPM(RTR)签名
信任保护:TPM(RTS)存储
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐