当前位置:网站首页>【TPM2.0原理及应用指南】 12、13、14章

【TPM2.0原理及应用指南】 12、13、14章

2022-07-07 15:38:00 Godams

第12章 平台配置寄存器

平台配置寄存器PCR是TPM基本的特征之一。它的主要用途是提供一种密码学记录(度量)软件状态的方法,包括平台上运行的软件和该软件使用的配置数据。PCR更新计算被称为“扩展”,是一种单向哈希计算。这样的计算结果将无法被破解。

TPM不对度量结果做出判断,TPM PCR只记录值。

12.1 PCR值

PCR的主要用例是表示平台软件状态。它记录着到现在为止,在平台上运行的关键软件(和配置)的历史。TPM在上电时通常按照TPM平台规定,将所有PCR初始化为全0或全1.调用者不能直接写PCR值。PCR值:

PCR新值=摘要(PCR旧值||扩展的数据)

重新启动后,一个平台从可信软件开始,该可信软件称为可信度量根的核心(CRTM),CRTM度量(计算摘要值)下一个要运行的软件,并将该摘要扩展进一个偶数编号PCR,然后将该软件的配置数据扩展进奇数编号PCR。PCR分配实例
这个过程的安全性取决于CRTM的安全性。作为第一个运行的软件,CRTM无法被度量或验证。它是可信的根源。

PCR数量
实际中,一个TPM包含多个PCR。PC客户端平台要求24个PCR,这个最小的预计值就是PC中实际PCR的数量。平台TPM规范指定了PCR的属性,平台软件规范标准化了PCR度量哪些结果。

PCR授权
授权是PCR常见用途。除非特定的PCR具有特定的值,否则一个实体拥有的策略可以阻止该实体被使用。该策略可以指定PCR的子集和PCR的值。除非PCR处于此状态,否则将不满足策略且不能访问该实体。
PCR带来的安全性
PCR用于授权的典型用途是将实体的使用权与平台软件状态相结合,同时也可以实现其他用途。例如,口令可以扩展到PCR中,从而解锁对软件的访问。当不再需要访问时,可以将PCR重置(如果允许)或扩展为其他值。

12.2 PCR验证

验证是PCR的更高级用例。在非TPM平台中,远程软件通常不能确定平台的软件状态。即使通过严格的软件手段报告状态,受影响软件也可以轻易的期骗远程方。
TPM验证提供软件状态的密码学证明。度量是无法撤销的。PCR不能回滚到以前的值。
PCR验证
通过TPM签名验证,远程方知道平台软件的状态。它现在必须确定软件状态十分安全。远程方必须将度量值的哈希值与白名单相匹配,这可能需要来自第三方软件提供商的协作。

这是可信计算概念的本质。PCR提供了一种信任软件模块链的方式,该方式确切反映了平台的软件状态,但是这种方式对软件是否安全不做任何判断。

PCR属性
每个PCR都有几个属性。这些属性在TPM库规范中定义,但是哪些PCR具有哪些属性由平台特定的规范来规定。一般来说,大多数PCR按照约定分配给特定的软件,但是有一些是未分配的且开放给应用程序使用。

在这里插入图片描述
DRTM:动态信任根

PCR授权与策略
与其他实体一样,PCR也可能具有授权值或策略。库规范允许针对一个PCR或一组PCR设置授权值或策略。PC客户端TPM没有授权和策略,因为PC客户端无需授权PCR访问。基本原理是授权会增加启动时间,而启动时间通常是一个重要参数。

PCR算法
PCR可以在库中分配,每个PCR库对应于一个哈希算法。该命令允许以任意组合分配PCR,并且可以将一个PCR分配给多个PCR库,同事PCR具有多种算法。TPM2_Extend命令现在必须指定PCR索引和摘要,同时也要指定一个算法。如果没有PCR包含那个指定的算法,则忽略扩展操作。
因此,理论上,软件将执行多个度量,创建多个摘要,然后将每个摘要扩展到对应的库。PC客户端规范仅需要一个具有所有PCR的库。

总的来说:PCR有两个用途,他们的值可能在签名的验证中体现:

  • 依赖方可以确定平台软件的可信状态
  • PCR可以用于根据PCR值授权使用其他对象的策略

第13章 授权与会话

授权控制了对TPM中实体的访问,为TPM提供了很多安全保证。
会话是在后续命令中授权和维护状态的工具。

13.1 会话相关概念

  • 会话变体
    它们是在会话创建时建立的,在会话的整个生命周期中持续存在。他们决定如何建立会话,以及HMAC密钥和HMAC如何产生,这里有四个参数,绑定和未绑定(将授权绑定到某些实体的授权值上),加盐和为加盐(密钥产生过程中)
  • 会话使用修饰符
    • 继续:如果没设定,会话将在成功执行一个命令后终止
    • 解密:表明第一个TPM2B命令参数以加密形式发送给TPM
    • 加密:第一个TPM2B响应参数以加密形式返回给TPM
    • 审计:使一个正在使用的会话的命令被审计

13.2 口令、HMAC和策略会话

口令会话是最简单的授权类型:授权行为将明文口令传递给TPM。如果TPM正在被远程访问,这又明显的安全问题:口令会话是旨在用于本地访问的。在TPM中,有一个单一的、始终可用的口令会话,用于授权单个TPM命令,在后续使用之间不保持状态。因此,口令会话无需启动。

HMAC授权是以更安全的方式使用简单口令的方法。HMAC会话使用两个随机数,一个来自于调用方,另一个来自TPM,用来防止重放攻击。HMAC会话在会话生命周期中维持状态,并可用于对TPM实体的多个行为授权。

策略会话,也成为策略增强(EA),建立在HMAC会话之上,并增加额外的授权级别。策略授权通过基于TPM命令序列、TPM状态和外部设备(如指纹识别器、视网膜扫描仪和智能卡)的授权来增强此功能。
三种会话对比

13.3 会话与授权

会话:会话是授权的载体。但它也用于授权以外的目的,有与授权协同或完全独立于授权的用途。

以下是需要注意的地方:

  • 授权可以是口令、HMAC、或者策略授权
  • 口令授权永远不能用于使用修饰符的会话
  • HMAC和策略会话可用于授权,也可用于设置任何授权无关的会话用修饰符
  • 命令的授权域是指定所有这些授权、会话和会话修饰符的地方
  • 命令修饰符可在用于授权的会话以及不用于授权的会话中使用
  • 不用于授权的会话也可以在命令和响应字节流的授权区中
  • 策略会话可用于加密、解密但不能用于审计
  • HAMC会话可用于加密、解密、审计

授权域是在命令和响应字节流中指定会话和授权的位置。

口令授权:最简单的授权方式

13.7 开启HMAC和策略会话

命令在启动会话时,必须是以下会话类型之一:HMAC、策略或试用策略
会话的基本特征在会话启动时确定,这些特征是会话是否绑定、是否加盐、会话密钥的强度、抗重放保护的强度、参数加密和解密的强度。

加盐与未加盐:
加盐与为加盐
绑定与未绑定:
绑定与未绑定

13.8 HMAC和策略会话的区别

区别
区别

13.9 HMAC会话

HMAC会话从三个方面保证了安全性:

  • 会话密钥:只有调用者和TPM知道会话绑定的authValue值和salt值,这些值都被用于计算会话密钥
  • HMAC:会话密钥和实体的authValue都用于生成HMAC密钥
  • 随机数:让随机数参与HMAC计算,预防重放攻击

13.10 策略会话

也称扩展授权(EA)
一个策略通常会被计算两次:一次在构建策略实体时刻,一次在构建策略摘要时刻

13.11 组合授权生命周期

一个授权生命周期典型步骤如下:

  1. 对于HMAC或策略会话而言,authValue或authPolicy必须在实体创建前确定
  2. 使用一个授权值、策略哈希创建一个可访问的实体
  3. 计算HMAC,对于不用HMAC的策略会话,可跳过这步
  4. 在HMAC或策略授权下,启动HMAC授权
  5. 使用授权操作进行授权
  6. 在HMAC会话的条件下,计算期望响应HMAC,并对TPM返回的响应进行验证

第14章 扩展授权策略(EA)

对实体使用策略的总和称为策略
简单断言、基于命令的断言、多因素认证、多用户/复合授权、可以随时更改的灵活策略

EA的工作步骤:

  1. 创建策略会话
  2. 用户向TPM提供一个或多个认证
  3. 在命令中使用实体时,TPM将实体关联的策略与会话策略缓冲区中的值比较

不同类型的策略

  • 简单断言策略
  • 多断言策略
  • 复合策略:引入OR逻辑
  • 灵活的策略:使用通配符或后面再定义的占位符

命令的位置(locality):用于指示发送到TPM的命令来源于哪个软件栈

TPM内部状态(引导计数器和计时器)

外部设备状态(GPS、指纹识别器等):
外部设备由一对公私钥表示,设备的状态可以是使用设备私钥进行签名(与TPM产生的随机数一起)的任何东西。 外部设备
通配符策略:由与通配符有关联的公开密钥的私钥拥有

基于命令的断言:可以限定策略,以便只使用特定的命令

原网站

版权声明
本文为[Godams]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_35481726/article/details/125212485