TPM Key相关概念


1. Storage Keys:存储密钥,用来加密数据和其它密钥的通用非对称密钥,这里的其它密钥可以是另外一个存储密钥,也可以是绑定密钥或签名密钥。它本身是长度2048bit的RSA私钥;它既可以是可迁移密钥,也可以是不可迁移密钥。
2. SRK:storage Root Key,存储根密钥,是存储密钥的一个特例。整个系统拥有一个最高权限的存储密钥,这个最高级密钥也就是存储根密钥。它很特殊,在每个用户创建的时候生成,管理这个用户的所有数据,也就是存储可信根(Root of Trust for Storage, RTS).和签署密钥(Endorsement Key,EK)一样,一个TPM仅存在唯一一个。所有其它的密钥都在存储根密钥的保护之下。
3. 签名密钥(Signing Key):是非对称密钥,用于对应用数据和信息签名。签名密钥可以是可迁移或不可迁移的。可迁移密钥能够在TPM之间传递,通过迁移密钥传递保密数据。TPM中的签名密钥都遵循RSA签名密钥的标准,它们有若干种不同长度。TPM能够正确地进行处理的最大密钥长度是2048bit。
4. 签署密钥,或背书密钥(Endorsement Key,EK)是一个TPM平台的不可迁移的解密密钥,它是一个2048bit的RSA密钥对。它生成于平台的生产过程中,代表着每个平台的真实身份,每个平台都拥有唯一的一个。在确定平台所有者时,用于解密所有者的授权数据,还有解密与生成AIK相关的数据。签署密钥从不用作数据加密和签名。签署密钥的主要功能是生成身份证明密钥(AIK)和建立TPM平台的所有者,由TPM的所有者来生成存储根密钥SRK,使用SRK来加密、存储其他的密钥。
EK可以通过密钥生成服务器,采用两种方法来产生:一种使用TPM命令,TCG规范定义了一组背书密钥操作命令,其中创建背书密钥对的命令为TPM_CreateEndorsementKeyPair,产生密钥长度要求至少2048位。另外一种方法是密钥注入技术,在信任制造商的前提下,由TPM制造商产生背书密钥对,然后采用人工方式注入,注入方法有:键盘输入、软盘输入、专用密钥抢输入等。
对比这两种方法,前者必须依赖硬件中提供受保护的功能和被隔离的位置,从而保证在设备内部产生密钥对,而且密钥对是在篡改保护的环境下产生,能够很好地减少密钥对泄露的风险。
5. AIK:认证身份密钥,或平台身份认证密钥(Attestation Identity Key)是不可迁移密钥。专用于对TPM产生的数据(如TPM功能、PCR寄存器的值等)进行签名,用来证明平台的身份和平台的环境配置,凡是经过AIK签名的实体,都表明已经经过TPM的处理。每个用户可以拥有多个AIK,每个AIK的生成都需要可信第三方的支持。
6. 绑定密钥(Binding Keys):用于在一个平台中加密小规模数据(如对称密钥),然后在另一个TPM平台上进行解密。由于使用平台所特有的密钥加密,所以与该平台绑定。这个密钥的用法同传统非对称密钥加密相同。
7. 密封密钥(Sealing Keys):内置TPM的计算机可以创建一个密钥,该密钥不仅被绑定,而且还被连接到特定硬件或软件条件,这就是密封密钥。首次创建密封密钥时TPM将记录配置值和文件哈希的快照。仅在这些当前系统值与快照中的值想匹配时才能解封或释放密封密钥。
8. 遗留密钥(legacy Keys):在TPM之外生成,它们被定义为可迁移的,在被用来签名或加密之后才能载入TPM。这些密钥用在一些需要在平台之间传递数据的场合。
9. 鉴别密钥(Authentication Keys):用来保护涉及TPM传输会话的对称密钥。
10. Key Management:为了更有效地管理存储在TPM外边的密钥,引进一种密钥缓冲管理机制(Key Cache Manager),它主要管理TPM中受限制的资源,并且对应用程序调用隐藏这些限制。应用程序可以通过利用KCM来载入密钥到TPM中,并假定此密钥可以进一步利用。KCM负责保证当应用程序某个命令需要密钥时,这个已经被应用程序载入的密钥存在于TPM中。如果所有TPM资源被占用,KCM需要释放资源将不经常使用的密钥从TPM取出来,以便为那些经常进出TPM的密钥腾出空间,将需要的密钥放入TPM。应用程序需要利用KCM来将密钥载入TPM中。
11. 可迁移密钥和不可迁移密钥:在整个TPM/TCM的密钥体系中,每个密钥在开始创建的时候都需要指定密钥属性。密钥按照属性不同分为:可迁移密钥(Migratable Key)和不可迁移密钥(Non-Migratable Key)。可迁移密钥并不局限于某个特定平台,可以由平台用户的控制在平台之间迁移。不可迁移密钥则永久地与某个指定平台关联。不可迁移密钥能够用来加密保护可迁移密钥,反之则不可。
不可迁移密钥由TPM内部产生,在TPM产生之后就被打上了TPM的标记。不可迁移密钥本身的安全性要比可迁移密钥高,因为不可迁移密钥全部由TPM内部产生并且从产生到销毁整个周期私钥部分都不会离开TPM(除非不可迁移密钥转化为可迁移密钥,这个时候安全级别降低,注意的是由于可迁移密钥安全级别低所以无法转化为不可迁移密钥)。同时不可迁移密钥可以被TPM签名,从而可以向挑战者或者用户证明其不可迁移的属性,从而证明其安全性。
摘自:TPM核心功能
TPM Key相关概念的更多相关文章
- linux tpm 测试完整记录,亲测有效。
没有tpm芯片,采用模拟器的方式来测试. 实验环境:内核版本 3.10.0-327 软件包准备: 内网,没有仓库,自己网上下载: 1. cmake-3.9.6-Linux-x86_64.tar.gz ...
- 面试一个小公司,TPM相关概念
准备面试一个小公司,在面试邀请邮件中提出了这样一个要求(not required): ".. one item we will likely discuss with you is soft ...
- linux 磁盘加密和tpm搭配使用1
一.基本名称,容易混淆 1.dm-crypt是linux的2.6内核开始集成的一种磁盘加密功能.十几年来,连sche调度算法都被改了N次,但dm-crypt一直稳定在内核中,稳定性还是很好的. 2.c ...
- Hive篇--相关概念整理一
一.前述 hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低 ...
- JDBC相关概念介绍
一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...
- 类(class)相关概念小结
参考在线文档,整理php中类的相关概念如下 $this 在类的内部可以使用伪变量$this,这个伪变量为一个到主叫对象(经个人测试理解这应该是在运行时的真实对象,不是类,运行时绑定)的引用,所以一 ...
- TPM及TSS协议栈的安装使用
TPM及TSS协议栈的安装 标签: 可信计算. 目录 安装环境介绍 TPM及TSS安装 软件包下载 TPM 安装 安装TSS 安装tpm-tools 交互过程 编写代码测试TPM是否可用 编写代码测试 ...
- 智能家居中的物联网网关的可信计算平台模块(TPM)设计
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/BlueCloudMatrix/article/details/24184461 摘要: 随着智能家居 ...
- JPush相关概念
JPush相关概念 连接极光服务器前提 在连接极光服务器之前需要先将APP进行注册,连接Server时需要用到下发的两个字段:AppKey:应用唯一标识.Master Secret:服务器秘钥,用于服 ...
随机推荐
- noip2017集训测试赛(三) Problem B: mex [补档]
Description 给你一个无限长的数组,初始的时候都为0,有3种操作: 操作1是把给定区间[l,r][l,r] 设为1, 操作2是把给定区间[l,r][l,r] 设为0, 操作3把给定区间[l, ...
- Scala实战高手****第4课:零基础彻底实战Scala控制结构及Spark源码解析
1.环境搭建 基础环境配置 jdk+idea+maven+scala2.11.以上工具安装配置此处不再赘述. 2.源码导入 官网下载spark源码后解压到合适的项目目录下,打开idea,File-&g ...
- Asp.Net MVC part2 View、Controller详解
View详解Razor视图引擎简介HtmlHelper强类型页面 Razor视图引擎简介强大的@:表示使用C#代码,相当于aspx中的<%%>可以完成输出功能当遇到html标签时会认为C# ...
- RxJava 1.x 理解-3
在 RxJava 1.x 理解-1 中,我们说到了RxJava的简单用法,但是这还远远不够,因为 输入的数据 ---> 被监听者(订阅源)对这些数据进行操作,或者执行响应的处理 --> 产 ...
- Microsoft office(1)分页符和分节符
Microsoft office下的页面布局中的分页符和分节符的区别: 分页符:标记一页的终止并开始下一页的点 分节符:插入分节符并在下一页开始新节 一般情况下,分节符在分页符外围,分节符一般是各种格 ...
- Restful Web Service部署到weblogic 12c
介绍一下环境: 首先需要下载一个jaxrs-ri-2.22.2.zip的包 采用Jdeveloper 12c版本,jdk1.8 WebLogic Server 12.2.1版本 Restful项目建立 ...
- jenkins报错 not a queue url
使用Python的jenkinsapi执行job时报错:not a queue url 虽然任务还是构建了,但是错误还是处理的. 原因是:Jenkins的配置,和jenkinsapi里的配置的URL内 ...
- http://www.binghe.org/2010/03/use-httpsurlconnection-in-java/
http://www.binghe.org/2010/03/use-httpsurlconnection-in-java/
- 代码这样写更优雅(Python 版)(转载)
转载:https://mp.weixin.qq.com/s?timestamp=1498528588&src=3&ver=1&signature=DfFeOFPXy44ObCM ...
- Tempter of the Bone——DFS(王道)
Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. However, ...