当前位置:网站首页>【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之前,捕获所有命令字节流
检查在授权域和句柄域的所有句柄
边栏推荐
- Shallow understanding Net core routing
- Lex & yacc of Pisa proxy SQL parsing
- Flask搭建api服务-生成API文档
- 测试用例管理工具推荐
- PLC:自动纠正数据集噪声,来洗洗数据集吧 | ICLR 2021 Spotlight
- 【饭谈】那些看似为公司着想,实际却很自私的故事 (一:造轮子)
- QT 图片背景色像素处理法
- Share the latest high-frequency Android interview questions, and take you to explore the Android event distribution mechanism
- LeetCode 152. Product maximum subarray daily question
- First in China! Todesk integrates RTC technology into remote desktop, with clearer image quality and smoother operation
猜你喜欢
Reflections on "product managers must read: five classic innovative thinking models"
麒麟信安中标国网新一代调度项目!
【Seaborn】组合图表:FacetGrid、JointGrid、PairGrid
让保险更“保险”!麒麟信安一云多芯云桌面中标中国人寿, 助力金融保险信息技术创新发展
Lex & yacc of Pisa proxy SQL parsing
自定义View必备知识,Android研发岗必问30+道高级面试题
科普达人丨一文弄懂什么是云计算?
Linux 安装mysql8.X超详细图文教程
Test case management tool recommendation
How to choose the appropriate automated testing tools?
随机推荐
LeetCode 1049. Weight of the last stone II daily question
Number of exchanges in the 9th Blue Bridge Cup finals
如何在博客中添加Aplayer音乐播放器
Skimage learning (1)
AI来搞财富分配比人更公平?来自DeepMind的多人博弈游戏研究
99% of users often make mistakes in power Bi cloud reports
Flash build API service
测试用例管理工具推荐
LeetCode 1155. N ways to roll dice one question per day
国内首创!Todesk将RTC技术融入远程桌面,画质更清晰操作更流畅
With the latest Alibaba P7 technology system, mom doesn't have to worry about me looking for a job anymore
【饭谈】Web3.0到来后,测试人员该何去何从?(十条预言和建议)
QT中自定义控件的创建到封装到工具栏过程(一):自定义控件的创建
LeetCode 1986. 完成任务的最少工作时间段 每日一题
麒麟信安携异构融合云金融信创解决方案亮相第十五届湖南地区金融科技交流会
LeetCode 515(C#)
邮件服务器被列入黑名单,如何快速解封?
从DevOps到MLOps:IT工具怎样向AI工具进化?
QML beginner
LeetCode 1696. Jumping game VI daily question