前言

TPM 2.0第1部分包含对TPM属性、功能和方法的叙述描述。
本篇主要基于TPM 2.0规范Part 1的第9章(Trusted Platforms)的内容,对可信平台的基本特征进行解读。


文章目录

  • 前言
  • 一、介绍
  • 二、认证(Certification)
  • 三、证明(Attestation)和身份验证
    • 1.证明的类型
    • 2.证明密钥(Attestation Keys,AK)
    • 3.证明密钥(AK)的身份认证
      • a.签名密钥用于认证新对象身份
      • b.解密密钥用于认证新对象身份
    • 4.受保护位置(Protected Location)
    • 5.完整性度量和报告
  • 总结

一、介绍

一个可信平台至少提供了前面描述的三个信任根(可信度量根RTM、可信存储根RTS和可信报告根RTR)。 所有这三个根都使用认证(certification)证明(attestation)来提供信息准确性的证据。 可信平台还将为密钥和数据对象提供用于委托的受保护位置。 最后,可信平台可以通过记录平台状态的变化来提供完整性度量,以确保平台的可信性;这可以通过在PCR中记录的条目来完成,以便稍后验证其正确性和未被篡改。 现在将详细描述这些基本TPM概念。

二、认证(Certification)

使用密钥建立信任名义上的方法是使用一个证书,该证书表明创建密钥和保护密钥的过程符合必要的安全标准。 证书可以通过装载了一个嵌入式密钥(即背书密钥)的TPM与一个EK的真实性证书一起提供。 EK及其证书可用于对凭据(证书)或其他TPM密钥进行关联。

三、证明(Attestation)和身份验证

1.证明的类型

可信平台采用层次结构进行证明,如图所示。


图注:

层次类型 描述 实现方式
1 外部实体对TPM进行认证,以保证TPM是真实的,符合本TPM规范。 背书证书
2 外部实体对平台进行认证,以保证平台包含一个可信度量根(RTM),一个真正的TPM,以及RTM和TPM之间的可信路径。 平台证书
3 一个称为“认证CA”的外部实体对TPM中的非对称密钥对进行认证,以保证密钥受到一个身份不明但真实的TPM的保护,并且具有特定的属性。 认证密钥证书
4 可信平台对非对称密钥对进行验证,以保证密钥对受到一个真实但身份不明的TPM的保护,并具有特定的属性。 使用TPM2_Certify()函数完成(签名方式)
5 可信平台对度量进行验证,以保证平台中存在特定的软件/固件状态。 使用TPM2_Quote()函数完成(签名方式)
6 外部实体对软件/固件度量进行证明,以保证特定的软件/固件。 第三方认证(远程证明)

第3类和第4类的认证需要使用密钥对屏蔽位置的内容进行签名。 认证密钥(AK)是一种特定类型的签名密钥,它对其使用有限制,以防止伪造(具有与真正认证数据相同格式的外部数据的签名)。 限制是AK只能用于对TPM创建的摘要进行签名。 如果已知AK受TPM保护(通过类型3或4的认证),则可能依赖它准确地报告屏蔽位置内容,而不签名外部提供的看似有效且TPM生成但并非如此的数据。

2.证明密钥(Attestation Keys,AK)

当TPM创建一条对内部TPM状态(例如,在TPM2_Quote()中)进行签名的消息时,将使用一个特殊值(TPM_GENERATED_VALUE)作为消息头。 TPM生成的消息总是以这个值开始。

当TPM对外部提供的消息进行摘要时,它检查消息的前几个字节,以确保它们的值与TPM_GENERATED_VALUE不同。 当摘要完成时,TPM生成一个票据,表明消息不是以TPM_GENERATED_VALUE开始的。 当使用AK对摘要进行签名时,调用者提供票据,以便TPM可以确定用于创建摘要的消息不可能是伪造的TPM认证数据。
提示:此处为了防止外部消息冒充TPM发送消息,故加入了“消息头+AK签名”机制,所有非TPM内部消息都应经过TPM认证并生成凭据后才可使用TPM提供的功能(如“摘要运算”)。
例:如果攻击者生成的消息块与TPM生成的消息相同,则该消息块将以TPM_GENERATED_VALUE开始,以表明它是正确的TPM消息。 当TPM执行这个块的摘要时,它注意到第一个八位与TPM_GENERATED_VALUE相同。 它不会生成指示消息可以安全签名的票据,因此AK可能不会用于对该摘要进行签名。 类似地,检查AK所做的认证的实体必须验证签名的消息以TPM_GENERATED_VALUE开头,以便验证消息确实是TPM生成的报价。

3.证明密钥(AK)的身份认证

a.签名密钥用于认证新对象身份

密钥创建者可以要求第三方(如认证证书颁发机构(CA))为其提供证书。 认证CA可以请调用方提供一些证据,证明被认证的密钥是驻留TPM的密钥。

可以使用之前同一TPM上的另一个密钥生成的证书来提供TPM驻留的证据。 背书证书或平台证书可提供此证据。

注:没有要求证书只能来自认证CA。上面描述的方法是在需要隐私时可能使用的方案的一个示例。

如果一个经过认证的密钥可以签名,那么它可以用来证明某个其他对象驻留在同一个TPM上。 这允许将新的AK链接到经过认证的密钥。 CA可以使用来自TPM的证书为新密钥生成传统证书。
提示:签名密钥提供“已被认证密钥的证书+已被认证密钥对新对象的签名”即可认证新的对象。类似信任链传递。

b.解密密钥用于认证新对象身份

如果经过认证的密钥是一个解密密钥,并且可能不签名,那么将使用另一种方法来允许对新密钥或数据对象进行可靠的认证。 对于这种替代认证,将被认证的对象的身份和解密密钥的证书(例如,EK)提供给CA。CA根据该证书确定解密密钥的公钥。 CA然后为要认证的对象生成质询,并使用已认证的密钥对质询进行加密。 对包含认证解密密钥和待认证密钥的TPM进行加密挑战。
提示:解密密钥(不可用于签名的密钥)需要借助CA来完成对新对象的认证。

4.受保护位置(Protected Location)

当一个对象的敏感部分不是保存在TPM上的屏蔽位置时,它是加密的。 当不在TPM上进行加密时,它不能防止被删除,但可以防止其敏感部分的泄露。 论存储在何处,它都位于受保护位置。

长期保护存储的对象需要使用时应加载到TPM模块。 创建对象的应用程序管理对象从长期存储到TPM的移动。

由于TPM的内存有限,它可能无法同时保存所有应用程序所需的所有对象。 TPM支持通过TPM资源管理器(TRM)交换对象上下文,以便TPM可以为这些多个应用程序提供服务。 在由TPM返回到TRM之前,对象上下文是加密的。 如果以后需要该对象,TRM可以将上下文重新加载到TPM中,从而提供类似缓存的行为。

受保护位置的加密使用多个永不离开TPM的种子和密钥。 其中一个是Context Key。 它是一个对称密钥,在将数据临时交换出TPM时用于加密数据,以便加载不同的工作对象集。 从未离开TPM的其他敏感值是Primary Seeds。 这些种子是存储层次结构的根,用于保护应用程序保留的对象。 Primary Seed是一个随机数,用于为其他对象生成保护密钥; 这些对象可能是存储密钥,其中包含保护密钥,然后用于保护更多的对象。

主种子可以被改变,当它们被改变时,它们保护的对象将不再可用。 例如,存储主种子(Storage Primary Seed, SPS)为与所有者相关的数据创建存储层次结构,当所有者发生变化时,该种子也会发生变化。

5.完整性度量和报告

核心可信度量根(CRTM)是度量的起点。 该过程对TPM平台进行初始度量并扩展到PCR寄存器中。 要使度量有意义,执行的代码需要控制它运行的环境,以便TPM中记录的值能够代表平台的初始信任状态。

重新启动将进入一个处于已知初始状态的平台环境,主CPU从某个预制好的初始位置运行代码。 由于该代码在当时独占平台的控制权,因而它可以从固件中对平台进行度量。 从这些最初的度量,可以建立一条信任链。 由于该信任链是在平台重置时一次性建立的,所以初始信任状态不可能改变,因此称为静态RTM (S-RTM)。

在一些处理器架构上可以使用另一种初始化平台的方法。 它让CPU充当CRTM,并对它度量的内存部分进行保护。 这个过程可以在不重启平台的情况下启动一个新的信任链。 由于RTM可以动态重建,因此这种方法被称为动态RTM (D-RTM)。 S-RTM和D-RTM都可以将一个处于未知状态的系统恢复到已知状态。 D-RTM的优点是不需要重新启动系统。

完整性度量是一个表示平台信任状态可变的值。 被测量的对象可以是任何有意义的东西,但通常是

  • 代码或数据的哈希值
  • 一些代码
  • 数据的签名者的指征。

完整性报告是对PCR中记录的完整性度量进行验证的过程。 完整性度量、日志记录和报告背后的理念是,平台可能进入任何可能的状态——包括不受欢迎的或不安全的状态——但需要准确地报告这些状态。 一个独立的过程可以评估完整性状态并确定适当的响应。


总结

以上就是今天要讲的内容。本文介绍可信平台基本特征,主要是认证(Certification)和证明(Attestation),其中详细介绍了可信平台认证层级结构,剩余部分介绍了证明密钥(AK)的身份认证和应用场景。

对于可信平台的介绍到此就告一段落了。下一篇我们开始介绍可信平台模块提供的保护(Part 1体系结构第10章)。

TPM 2.0规范系列解读——Part 1体系结构第(三)读:可信平台的基本特征相关推荐

  1. TPM 2.0规范系列解读——Part 1体系结构第(四)读:TPM架构

    前言 TPM 2.0第1部分包含对TPM属性.功能和方法的叙述描述. 本篇主要基于TPM 2.0规范Part 1的第10章和第11章(TPM Architecture)的内容,对TPM架构进行解读. ...

  2. TPM1.2到TPM 2.0的变化

    原文地址: http://www.vonwei.com/?mod=pad&act=view&id=11 TPM 1.2规范主要面向PC平台,其103版本在2009年被接受为ISO标准( ...

  3. 新的TPM 2.0漏洞可能让黑客窃取加密密钥

    可信平台模块 (TPM) 2.0 规范受到两个缓冲区溢出漏洞的影响,这些漏洞可能允许攻击者访问或覆盖敏感数据,例如加密密钥. TPM 是一种基于硬件的技术,可为操作系统提供防篡改安全加密功能. 它可用 ...

  4. 第一章 TCG 规范科普解读

    可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性.TCG于2003年春成立,并采纳了由可信计算平台 ...

  5. 从梁飞的微型rpc 细节说起--Dubbo源码系列解读(5)

    7年前,梁飞公布了一个微型的rpc,这个rpc核心就是一个类,2个方法,但重点我们要探讨是细节的设计和质量一些问题 package com.rpc;import java.io.ObjectInput ...

  6. 芯片绑定 服务器,微软表示 Windows 11 绑 TPM 2.0 安全芯片才能确保资料隐私安全...

    #新一代Win11值得期待吗#微软表示 Windows 11 绑 TPM 2.0 安全芯片才能确保资料隐私安全 依照微软官方说明,由于未来有更多远距办公.线上互动情况,预期对于电脑装置的攻击将会更加频 ...

  7. Python DB-API 2.0规范

    Python DB-API 2.0规范 PEP:  249 标题: Python Database API Specification v2.0 版本: 83893e13db91 修改日期: 2008 ...

  8. JVM规范系列第2章:Java虚拟机结构

    本规范描述的是一种抽象化的虚拟机的行为,而不是任何一种(译者注:包括 Oracle 公司自己的 HotSpot 和 JRockit 虚拟机)被广泛使用的虚拟机实现. 记住:JVM规范是一种高度抽象行为 ...

  9. java虚拟机规范这本书怎么样_JVM规范系列开篇:为什么要读JVM规范?

    博主个人独立站点开通啦!欢迎点击访问:https://shuyi.tech 许多人知道类加载机制.JVM内存模型,但他们可能不知道什么是<Java虚拟机规范>.对于Java开发来说,< ...

最新文章

  1. (0023)iOS 开发之Mac上MySQL服务的卸载
  2. git配置报错fatal: Authentication failed for ‘‘问题解决
  3. Linux正确的关机方式
  4. 首届大湾区 DevOps/微服务秋季分享会圆满落幕!
  5. LIMIT M,N分页性能优化方案
  6. IntelliJ IDEA 2020 快捷键私人订制
  7. 千万数据却只用6步管理!这套数据治理架构如何100%复用?
  8. 中读取数据_Flink入门实战 (中)
  9. PRML笔记 第一章 Introduction
  10. jqueryMobile模块整理—按钮(buttons)
  11. Meclipse乱码解决方案
  12. 用友u8cloud使用教程_用友财务软件还不会操作?看完这些操作,工作得心应手...
  13. 红米K40 Pro/Pro+ 使用Fastboot安装欧版ROM (非TWRP)
  14. 数据分类分级产品,一文详解
  15. jQuery实现表格冻结行和列
  16. “自贸云”+“自贸大数据”将加速辽宁自贸区建设与创新
  17. 计算过去某天距离今天过去了多少天。
  18. 不仅老赖处处受限,连老赖的家人都要处处受限
  19. QRCode资料收集
  20. iphone二手回收报价表(二手iphonex回收参考价)

热门文章

  1. android网络优化,Android性能优化----网络优化
  2. 5G时代的来临,我们应该做好哪些网络安全准备?
  3. SSM (JDK 1.7) 使用Rabbit MQ
  4. 每天做不完的分析报表,什么时候才能熬出头?
  5. HNUST 挑战ACM迷宫(DFS)
  6. HNUST-OJ-2184-huffman编码(1)
  7. nginx配置静态资源访问
  8. matlab绘制矩阵色块图
  9. 60行代码爬取知乎神回复
  10. [生存志] 第53节 晏子春秋录纯臣