【可信计算】TPM核心功能
TPM核心功能
参考资料:TPM功能介绍 - Cache One
1)TPM的1.0版本和1.2版本分别有多少个PCRs?
TPM1.0版本16个,1.2版本有24个。(喵酱也不确定)
2)TPM是如何报告平台状态的?
两种报告方式:远程报告和本地报告。
远程报告:
被证明平台将TPM中完整度量值报告给远程挑战者。远程挑战者获取到可信平台用自身AIK密钥签名的PCR值,可信平台除了发送已签名的PCR外,还包括有度量日志和AIK证书,通过验证AIK证书、AIK签名和nonce的合法性证实平台的身份。挑战者将PCR值与期望值比较可以验证被证明平台的可信性。
本地报告:
当挑战者要判断本地机器是否被攻陷,意味着本机有可能是不可信的。如果本机已经被攻击者控制,那么可信判断所得到的结果就会被攻击者篡改,挑战者就会受到欺骗。
①可以将一个机密信息绑定到PCR值来标志一个可信的启动过程。
②当要判断及其的启动过程是否可信,用户可以要求TPM对这条秘密信息执行Unseal操作。如果这条Seal的机密信息能够被释放,那么就表示相应的PCR值都符合期望值,进而说明启动过程是安全的。
③删除口令,破坏PCR的值。
3)描述TPM可迁移密钥和不可签名密钥的定义,哪种密钥更安全,为什么?能否相互转换?
可迁移密钥 并不局限某个特定平台,可以由平台用户的控制下在平台之间迁移。不可迁移密钥永久地与某个指定平台关联,不可迁移密钥不会以明文形式离开TPM,不可迁移密钥对TPM中产生的数据进行签名。
不可迁移密钥更安全。不可迁移密钥能够用来加密保护可迁移密钥,反之不行。
不可迁移密钥可以转换为可迁移密钥,但不可逆。
4)描述TPM什么时候谁可以执行PCR Reset操作和PCR Extend操作?
Reset操作:发生在机器断电或者重新启动之后,PCR的值自动重新清零。
Extend操作:在系统运行过程中,只能通过扩展操作来改变PCR的内容。
PCR[i]=SHA−1(PCR[i]∣∣newMeasurement)PCR[i] = SHA-1(PCR[i] || newMeasurement) PCR[i]=SHA−1(PCR[i]∣∣newMeasurement)
5)为什么PCR Extend操作可以抵御攻击?
1、扩展操作不可逆,先扩展度量值A再扩展度量值B得到的PCR的值跟先扩展B再扩展A的结果不同。
2、通过扩展,PCR能够记录一个无限长的度量值序列,这一系列度量值组成的序列反应了系统状态的变迁。
3、扩展序列中的某一个度量值被改变,之后的度量序列都会收到影响。
6)CRTM是什么?为什么是不可修改的?假如修改会产生何种攻击?
CRTM是core root of trust for measurement可信度量根的核心
因为:对所有度量的信任都基于CRTM的完整性。
CRTM一旦被修改,则整个平台的安全性就丧失了
7)为什么TPM支持多个AIK?
隐私保护,为了尽量减少隐私泄露,TCG规定不能使用EK来做身份认证,而使用AIK,TPM使用EK生成AIK,然后通过PCA签发AIK证书完成身份认证。
平台支持多用户,每个用户都需要一个AIK来证明自己的身份。
8)PCR是什么
平台状态寄存器PCR是用来记录系统运行状态的寄存器
9)如何进行可信的本地报告
①可以将一个机密信息绑定到PCR值来标志一个可信的启动过程。
②当要判断及其的启动过程是否可信,用户可以要求TPM对这条秘密信息执行Unseal操作。如果这条Seal的机密信息能够被释放,那么就表示相应的PCR值都符合期望值,进而说明启动过程是安全的。
③删除口令,破坏PCR的值。
10)描述一下信任链的产生过程?日志的作用,以及为什么日志不需要防篡改?
信任传递机制:在信任当前某一环节的前提下,由该环节去评估下一个环节的安全性,确定下一环节可信之后再将控制权转交给下一环节,然后依次向后推进。整个启动序列中都遵循“先度量,再执行”的原则,当前阶段的代码负责度量下一阶段即将要执行的代码,然后再将度量值扩展到PCR寄存器中,这样循环往复,这就构成了信任链。
各阶段代码的详细配置信息和对PCR值扩展的操作的历史记录是保存在度量日志中的,度量日志存储在磁盘上,而磁盘属于不可信的外存,因此度量日志是可能被攻击者篡改的。对保存在磁盘上的度量日志并不需要进行额外的保护,攻击者即使篡改了度量日志,但由于PCR中记录的度量值是不可伪造的,用户对度量日志进行摘要就会发现与度量值不匹配。
基于TPM的可信启动并不能强制保证启动过程是可信的,而只是忠实的记录启动过程的完整性状态,交由用户在启动完成之后做可信判断,TPM本身并不能够控制CPU的执行过程。对启动过程完成了度量记录之后,就必须将记录的状态信息安全地报告给要做可信判断的挑战者,以供进一步根据状态判断启动过程是否可信状态信息包括度量日志和相应的PCR值。
11)EK是什么?主要用途是什么?可迁移密钥还是不可迁移密钥?
背书密钥
主要用途:代表每个平台的真实身份,生成身份证明密钥AIK和建立TPM平台的所有者,由TPM的所有者来生成SRK
不可迁移密钥
12)AIK是什么?主要用途是什么?可迁移密钥还是不可迁移密钥?
平台身份认证密钥
主要用途:用于对TPM产生数据进行签名,用来证明平台的身份和平台的环境配置。
不可迁移密钥
13)SRK是什么?主要用途是什么?可迁移密钥还是不可迁移密钥?
存储根密钥
主要用途:在用户创建时生成,管理用户的所有数据。
不可迁移密钥,一个TPM仅存在唯一一个。
14)Sealing Key是什么?主要用途是什么?可迁移密钥还是不可迁移密钥?
密封密钥:内置了TPM的计算机可以创建一个密钥,该密钥不仅被绑定,而且还被连接到特定硬件或软件条件。首次创建密封密钥时,TPM将记录配置值和文件哈希的快照,仅在这些当前系统值与快照中的值相匹配时才解封或释放密封密钥。148、158
主要用途:将秘密数据密封到平台。
(喵酱猜不到)可迁移密钥?不可迁移密钥?
15)如何借助Seal功能保护数据安全?
密封加密的过程:
- 设MMM是一份信息,KKK是一个对称密钥,VPCR−xV_{PCR-x}VPCR−x是某TPM的一组PCR寄存器GPCR−xG_{PCR-x}GPCR−x的值
- TPM的一对密钥的公钥和私钥分别为KPUB−SK_{PUB-S}KPUB−S和KPRI−XK_{PRI-X}KPRI−X
- 密封算法:KPUB−S{VPCR−x,K{M}}K_{PUB-S}\{V_{PCR-x},K\{M\}\}KPUB−S{VPCR−x,K{M}}
密封的解密过程:
- 由TPM用KPRI−SK_{PRI-S}KPRI−S对KPUB−S{VPCR−x,K}K_{PUB-S}\{V_{PCR-x},K\}KPUB−S{VPCR−x,K}进行解密
- TPM检查GPCR−xG_{PCR-x}GPCR−x的值是否与VPCR−xV_{PCR-x}VPCR−x相等,如果相等,TPM提供KKK,否则不提供。
在密封中,把信息M与TPM的一个状态关联起来,只有当TPM的状态与密封时的状态相同时,才有可能把密封过的信息恢复到原来的信息。换言之,当且仅当密封时的TPM状态与解密封时的TPM状态相同时,解密封操作才能成功。
16)什么是Binding Keys?主要用途是什么?
绑定密钥用于在一个平台中加密小规模数据,然后再另一个TPM平台上进行解密。由于使用平台所特有的密钥加密,所以与该平台绑定。
这个密钥的用法同传统非对称密钥加密相同。
(喵酱猜的)可迁移密钥
17)描述一下远程证明的过程?
【可信计算】TPM核心功能相关推荐
- Springboot总结,核心功能,优缺点
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:lizmit https://blog.csdn.net/q ...
- 一文带你看懂Springboot核心功能及优缺点
点击上方[视学算法]→右上角[...]→[设为星标⭐] SpringBoot核心功能 1.独立运行Spring项目 Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项 ...
- SAP PLM 进阶 2 – 主要核心功能
SAP PLM 进阶 2 – 主要核心功能 SAP PLM 核心业务逻辑 功能1:产品创意的组合管理 SAP产品组合管理概要 产品组合管理的主要对象 产品组合管理结构示例 新产品立项审批过程 功能2: ...
- Shiro 核心功能案例讲解 基于SpringBoot 有源码
Shiro 核心功能案例讲解 基于SpringBoot 有源码 从实战中学习Shiro的用法.本章使用SpringBoot快速搭建项目.整合SiteMesh框架布局页面.整合Shiro框架实现用身份认 ...
- 产品设计认知:如何构建A/B测试系统,其核心功能有哪些?
前言 不管在精益创业还是增长黑客理论中,A/B测试作为一种成熟的数据驱动产品优化的科学方法,其核心意义并不在于某一次试验的成功或者失败,而是这种通过试验和数据驱动的产品不断进化过程.A/B测试系统就是 ...
- 【阿里云课程】1小时快速掌握Tensorflow核心功能,完成完整的项目实践
大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第7课中一节,介绍如下: Tensorflow快速入门与实践 本节课内容为:深度学习系列课程第7期,Tensorflow快速 ...
- 【阿里云课程】1小时快速掌握Caffe核心功能,完成完整的项目实践
大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第7课中一节,介绍如下: Caffe快速入门与实践 本节课内容为:深度学习系列课程第7期,Caffe快速入门与实践,讲述Ca ...
- 【阿里云课程】从零开始1小时快速掌握Pytorch核心功能,完成完整的项目实践...
大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第7课中一节,介绍如下: Pytorch快速入门与实践 本节课内容为:深度学习系列课程第7期,Pytorch快速入门与实践, ...
- 自己实现spring核心功能 三
前言 前两篇已经基本实现了spring的核心功能,下面讲到的参数绑定是属于springMvc的范畴了.本篇主要将请求到servlet后怎么去做映射和处理.首先来看一看dispatherServlet的 ...
最新文章
- 养成一个新习惯,只需要这个大脑区域兴奋0.5秒
- Spring中继承配置的注入方法
- 怎么读取mysql库绘制柱状图_从数据库中取出最近三十天的数据并生成柱状图
- c语言常考的程序,C语言 一些常考得东西
- java swing 图片切换_在一个界面中要实现图片切换,用java要肿么实现??
- Sophos 修复 Cyberoam OS 中的 SQL 注入漏洞
- 【优化算法】多目标蝗虫优化算法(MOGOA)【含Matlab源码 937期】
- 古代汉语复习资料与练习题(适合王力版教材)
- 5G时代的到来对直播的影响
- kernal tch 下载 天正_tch_kernal.arx
- 利用继电器实现防抖自锁功能
- Deeplink(深度链接)拉起App,我是这样做到的
- 【电商业务】外行为何难区别 商品属性与商品规格
- Android作业批改系统(后台管理+前台app)
- picpick设置自动截屏方法
- 【导数术】6.端点效应
- python用哪种字体比较好_你在用哪种编程字体?
- 对HackTheBox里面的Netmon进行攻破
- java动态创建代理对象
- MIKE 21 教程 2.10 结果输出(Outputs)