当前位置:网站首页>【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:
RM
RM必须执行的基本操作:
- 虚拟化所有与TPM交换的操作
- 维护用来记录对象和序列的上下文的表
- 为加载到TPM中的对象和序列,维护一个虚拟句柄到TPM句柄的映射关系
- 对于正在发送给TPM的命令
在发送到TPM之前,捕获所有命令字节流
检查在授权域和句柄域的所有句柄
边栏推荐
- Number of exchanges in the 9th Blue Bridge Cup finals
- 麒麟信安中标国网新一代调度项目!
- Flask build API service SQL configuration file
- LeetCode 213. Home raiding II daily question
- How to choose the appropriate automated testing tools?
- Skimage learning (2) -- RGB to grayscale, RGB to HSV, histogram matching
- 防火墙系统崩溃、文件丢失的修复方法,材料成本0元
- [fan Tan] after the arrival of Web3.0, where should testers go? (ten predictions and suggestions)
- centos7安装mysql笔记
- DevOps 的运营和商业利益指南
猜你喜欢
随机推荐
LeetCode 535(C#)
LeetCode 312. Poke balloon daily
mysql实现两个字段合并成一个字段查询
QT视频传输
Is AI more fair than people in the distribution of wealth? Research on multiplayer game from deepmind
LeetCode 1043. 分隔数组以得到最大和 每日一题
[Fantan] how to design a test platform?
[Seaborn] implementation of combined charts and multi subgraphs
浅浅理解.net core的路由
【视频/音频数据处理】上海道宁为您带来Elecard下载、试用、教程
电脑无法加域,ping域名显示为公网IP,这是什么问题?怎么解决?
The server is completely broken and cannot be repaired. How to use backup to restore it into a virtual machine without damage?
Flash build API service
防火墙系统崩溃、文件丢失的修复方法,材料成本0元
Sator a lancé le jeu web 3 "satorspace" et a lancé huobi
skimage学习(3)——Gamma 和 log对比度调整、直方图均衡、为灰度图像着色
LeetCode 1049. 最后一块石头的重量 II 每日一题
从DevOps到MLOps:IT工具怎样向AI工具进化?
Linux 安装mysql8.X超详细图文教程
Matplotlib绘制三维图形