一、核心概念

远程证实是指远程验证方对目标平台(或虚拟机)的可信状态进行验证的技术。它的核心思想是让远程方能够确认目标平台是否运行在预期的、未被篡改的安全状态下,而不需要物理接触该平台。

二、技术架构与原理

1. 完整性度量与报告
  • 度量机制:在平台启动和运行过程中,系统会逐级度量关键组件(如BIOS、引导程序、操作系统内核、应用程序等)的哈希值
  • 存储机制:度量值被记录在度量列表(ML) 中,同时通过“扩展操作”存入TPM的PCR寄存器
  • 报告机制:当需要证明时,平台将度量列表和TPM对PCR值的数字签名一起发送给验证方
2. 验证过程
平台启动 → 逐级度量 → 存储到PCR → 接收验证请求 → 签名报告 → 发送给验证方
                                ↓
验证方:验证签名 → 计算ML哈希 → 比对PCR值 → 判断平台状态

三、五种远程证实方法

1. 基于二进制代码的证实
  • 思想:验证平台运行的软件二进制文件是否与预期一致
  • 流程
    1. 软件开发商提供二进制文件的哈希值和对应的安全属性证书
    2. 平台运行时计算实际哈希值
    3. 验证方比对哈希值并检查证书
  • 优点:实现简单直接
  • 缺点:无法处理合法的软件更新或配置差异
2. 基于软件源代码的证实
  • 思想:验证源代码层面的一致性,而非仅仅是二进制
  • 流程
    1. 将源代码哈希值和对应的安全属性绑定到证书
    2. 同时提供源代码到二进制代码的编译证明
    3. 验证方可以验证源代码属性和生成的二进制
  • 优点:允许不同的编译选项和优化
  • 缺点:需要可信的编译环境和证明
3. 基于属性的证实
  • 思想:验证方不关心具体的软件哈希值,而是关心平台是否具备所需的安全属性
  • 关键转变:从“你运行了什么软件”变为“你的平台有什么安全能力”
  • 属性示例
    • 支持强制访问控制(MAC)
    • 遵循隐私保护协议
    • 提供进程强隔离
    • 支持加密存储
  • 优势
    • 允许平台进行合法的软件更新
    • 关注实际安全能力而非具体实现
    • 更适合动态变化的环境
4. 基于模型的证实
  • 思想:验证系统是否遵循特定的安全策略模型
  • 原理:为系统定义形式化的安全模型(如Bell-LaPadula模型、Biba模型等),远程方验证系统的实际行为是否符合模型规范
  • 实施方式
    • 系统提供策略执行证明
    • 验证方检查证明的逻辑一致性
  • 适用场景:对安全策略有严格形式化要求的场景
5. 基于程序行为的证实
  • 思想:通过分析程序的依赖关系和输入输出行为来推断其正确性
  • 两个层面的依赖
    • 系统级依赖:程序运行所需的操作系统组件、库文件、配置文件等
    • 语言级依赖:程序内部的函数调用关系、数据流依赖
  • 验证方法
    1. 定位程序的所有依赖项
    2. 为每个依赖项建立预期的输入输出转换规则
    3. 验证实际运行中每个依赖项的转换是否正确
    4. 如果所有依赖项都正确,则推断整个程序行为正确
  • 优势:可以处理部分代码更新,只要依赖关系不变

四、在虚拟可信平台中的特殊考虑

1. 递归证实问题

在虚拟化环境中,存在多层可信链:

硬件TPM → VMM/Hypervisor → vTPM实例 → 客户机OS → 应用程序

远程证实需要考虑整个信任链的完整性,这就是“递归证实”。

2. vTPM的角色
  • vTPM为每个虚拟机提供独立的可信根
  • 远程证实时,需要同时验证:
    1. 物理TPM和VMM的可信性
    2. vTPM实例的真实性
    3. 虚拟机内部状态的可信性
3. 证书链管理

为了证明vTPM的可信性,需要建立从物理TPM到vTPM的证书链,课件中提出了四种方案:

  • 方案1:将vTPM的EK证书链接到物理TPM的AIK证书
  • 方案2:为vTPM颁发基于物理TPM AIK的AIK证书
  • 方案3:通过本地CA为vTPM的EK颁发证书(不绑定物理TPM)
  • 方案4:使用安全协处理器替代物理TPM

五、技术发展趋势

  1. 从静态到动态:早期关注启动时的静态完整性,现在扩展到运行时的动态行为验证

  2. 从具体到抽象

    具体哈希值 → 软件属性 → 安全策略 → 行为模式
    
  3. 隐私保护增强:如DAA(直接匿名证明)技术,可以在不泄露平台身份的情况下证明其可信性

  4. 与云计算融合:支持虚拟机的动态迁移、弹性伸缩等云特性,同时保持可信证明

六、简单理解图示

传统方法:验证“指纹”(哈希值)是否匹配
     ↓
属性证实:验证“身份证”(安全属性)是否有效
     ↓
行为证实:验证“做事方式”(程序行为)是否正确

七、总结要点

远程证实技术的发展体现了从具体实现验证安全属性验证的思想转变,其核心目标是在开放、动态的计算环境中,让远程方能够可信地验证目标平台的安全状态,而不仅仅是检查静态的软件哈希值。在虚拟化环境中,这一技术需要解决多层信任链的递归验证问题,并通过证书链管理将虚拟TPM的可信性根植于物理TPM。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐