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

【TPM2.0原理及应用指南】 16、17、18章

2022-07-07 15:38:00 Godams

第16章 命令审计

审计负责记录在主机与TPM之间传递的TPM命令和参数。主机负责维护日志,日志可能存在于主机内存或硬盘。TPM使用类似PCR的扩展记录记录这些参数,随后返回一个审计日志的签名摘要。签名摘要接收者可以验证签名,从而验证日志的完整性。

TPM将命令和响应参数的哈希扩展至一个审计摘要中

16.1 为什么要审计?

在TPM中,审计负责记录在主机与TPM之间传递的TPM命令和相应参数,而且只审计成功执行的命令。主机负责维护日志,日志可能存在于主机的内存或磁盘上。当主机保存实际参数时,TPM通过类似用于PCR的扩展操作来记录这些参数。之后,TPM返回审计日志的一个签名摘要。签名摘要的接收者可以验证签名,从而验证日志的完整性。

16.3 审计类型

  • 命令审计:负责记录一个选定的命令集的所有实例,而不管会话。
  • 会话审计:会话审计记录一个会话中的所有命令,而不管命令。

一个专属会话允许接收者检测审计会话是否被一个未经审计的介入命令中断。专属会话还可以用来保证不存在介入命令。

16.4 审计日志

所需步骤:
(1)审计人员首先从一个审计日志中读取命令和响应参数的列表–日志的存储和命令的执行都在主机端,然后计算命令参数和响应参数的哈希值。
(2)审计人员执行一个相当于扩展的计算–根据步骤1计算每个命令和相应参数的哈希值并将结果添加到一个审计摘要中。
(3)验证数字签名。利用TPM签名和一个公钥对步骤2中计算得到的审计摘要进行验证。
(4)审计人员经过一个证书链返回到一个受信任的根证书,从而建立对验证公钥的信任。

第17章 解密和加密会话

解密和加密会话在与TPM交换敏感信息的过程中为敏感信息提供保密性

17.1 加密和解密会话的作用

加密和解密会话保护在不安全的媒介上传输的秘密信息。
调用程序为了保护数据的机密性,可以使用一个仅调用程序和TPM知道的命令加密密钥来加密数据。密钥的一部分是由用于开启会话的参数决定的。
一个解密会话通知TPM首个参数是加密的。这意味着当TPM接收到参数之后,需要对其进行解密,因此命名为解密会话。
对于一个响应,一个加密会话表明TPM已经在首个响应参数返回之前对该参数进行了加密。在接收加密过的响应参数之后,调用程序使用响应解密密钥来解密数据。
实际用例

17.3 解密和加密的限制

仅第一个命令参数可以被加密,和第一个命令参数可以被解密。

17.4 解密和加密设置

在这里插入图片描述

17.5 XOR和CFB模式以及他们的大致的流程?

有两种不同的对称密钥模式可以用来加解密会话:XOR和CFB。
CFB模式提供高强度加密,但是需要TPM和调用程序都支持一种哈希算法和一种加密算法。
XOR仅需要哈希算法,而且对于需要非常少的代码量的情景是一种正确的选择,但是这种方法安全性弱一些。

当一个会话开始时,TPM生成一个会话密钥。为了使用加密和解密会话,调用程序需要为两个会话单独生成会话密钥。将所有过程统一到一个流,加密和解密会话生命周期的相关步骤如下:
(1)使用Tpm2_startAuthSession开始会话,将对称参数设置为
·CFB模式:
Symmetric.algorithm=TPM_ALG_AES;
Symmetric.keyBits.aes=128;
Symmetric.mode.aes=TPM_ALG_CFB;
·XOR模式:
Symmetric.algorithm=TPM_ALG_XOR;
Symmetric.keyBits.exclusiveOr=TPM_ALG_SHA256;
(2)生成会话密钥并保存
(3)对于一个第一个参数为TPM2B的命令,如果希望加密这个参数,可以进行下面的操作:
·为了使用这个会话生成一个Hmac密钥,会话密钥也列入这个密钥的生成过程。
·对于CFB模式:
·使用会话哈希算法、HMAC密钥、特殊标签(CFB)、nonceNewer、nonceOlder以及 被加密的位数来生成加密密钥和初始向量IV。
·使用加密密钥和IV加密第一个参数
·对于XOR模式:
·使用HMAC密钥、会话哈希算法、nonceNewer、nonceOlder和被加密的位数来生成 掩码
·将明文数据与掩码进行异或操作,生成加密的数据
·设置sessionAttributes.decyrpt位
(4)如果第一个响应参数是TPM2B,而且希望TPM以加密的形式发送该参数,设置sessionAttributes.encrypt位
(5)发送命令至TPM
(6)接收TPM返回的响应
(7)如果第一个响应参数是TPM2B且sessionAttributes.encrypt被设置了,执行以下步骤:
·为了使用这个会话生成一个Hmac密钥,会话密钥也列入这个密钥的生成过程。
·对于CFB模式:
·使用会话哈希算法、HMAC密钥、特殊标签(CFB)、nonceNewer、nonceOlder以及 被解密的位数来生成解密密钥和初始向量IV。
·使用解密密钥和IV加密第一个参数
·对于XOR模式:
·使用HMAC密钥、会话哈希算法、nonceNewer、nonceOlder和被解密的位数来生成 掩码
·将密文数据与掩码进行异或操作,生成明文数据

第18章 上下文管理

上下文管理的作用
TAB和RM:一个更高层次的说明
透明性
TAB:
TAB也使用一种锁的概念
RM
RM功能
RM必须执行的基本操作:

  1. 虚拟化所有与TPM交换的操作
  2. 维护用来记录对象和序列的上下文的表
  3. 为加载到TPM中的对象和序列,维护一个虚拟句柄到TPM句柄的映射关系
  4. 对于正在发送给TPM的命令
    在发送到TPM之前,捕获所有命令字节流
    检查在授权域和句柄域的所有句柄
原网站

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