对TCG的概要分析和对TPM的学习-可信存储根RTS(三)

2024-01-15 15:18

本文主要是介绍对TCG的概要分析和对TPM的学习-可信存储根RTS(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

(YOUXIANG:lichunwen1987ATqq。com)

参考TCG Specification Architecture Overview 1.4 。http://www.trustedcomputinggroup.org/ 检索TCG Specification Architecture Overview

   

 RTS是一个准确的记录完整度量的摘要值和顺序计算引擎,它将完整性度量保存在日志中,将它们的散列值保存在PCR中。RTR是一个可靠报告RTS的计算引擎。RTS保存委托给TPM的密钥和数据,并管理少量的内存,其中存放的密钥用于完成解密和签名的操作。

 

TPM中的密钥管理架构

    上图为TPM的密钥管理架构。TPM定位于一个造价低廉的组件,可以供普通消费者使用。所以TPM内部只有有限的易失性和非易失性存储以减少成本,那么TPM之外就需要无限的外部存储扩展。所以需要有外部存储(External Storage)和密钥缓存管理(Key Cache Management:KCM)模块。EK和SRK是仅有的两个只存在于TPM中的密钥。密钥属性,可以分为可迁移密钥和不可迁移密钥,表明key是否可以由一个TPM迁移到另外一个TPM。AIK是一个典型的不可迁移密钥。可迁移的密钥可以用来在两个TPM平台间交换信息。

先介绍TPM中的密钥类型,TPM中有7中Key类型:

l  EndorsementKey

EK是一个至少2048-bit的RSA不可迁移密钥,由TPM的生产商生成的,EK证书与之对应;EK证书是为了确保key是EK,是由TPM中保存的EK。

EK私钥不会离开TPM,只存在与TPM的保护区中。

它通常只用来做两件事情:创建Owner(解密SRK)和生成AIK证书(解密CA发送过来的AIK证书)。

EK与TPM是一一对应关系,一个TPM只有一个EK。

EK不能被用来加密或者签名。

l  IdentityKeys

1)  如果直接使用EK签名,则可能会带来隐私问题,所有EK的签名都能够具体找到是哪个TPM。 所以不能直接使用EK签名。

2)  EK需要一直保存在TPM中,不能被暴露,所以不能直接使用EK对PCR进行签名。使用AIK(Attestation Identity Keys)作为EK密钥的别名(代理)。

3)  又称之为 AIK,不可迁移的签名密钥,但是仅对TPM产生的数据进行签名,例如TPM的配置和PCR值。这种操作是Quote,区别于一般的签名。

4)  AIK作为一种特殊的密钥,它存储在一个通用的存储设备中,当它离开TPM时,必须提供完整性保护。而且它是不可迁移的。(以AIK证书形式发送)

5)  AIK是一个2048位的RSA密钥

6)  AIK可以确保是与TPM进行通信,但不具体到哪一个TPM

7)  签名的key仅对TPM中的信息进行签名(所以不能使用AIK对外部数据进行其签名)。

8)  可以有多个AIK。

l  StorageRoot Key (SRK)

Storage Root Key (SRK) and the Endorsement Key (EK) 这两个Key是永久保存在TPM中的,下图为TPM中RTS存储的Key的关系。SRK是由TPM产生的,SRK的密码在创建一个TPM账户时由EK进行了加密。SRK用来保护其他存储在TPM之外的密钥。

l  Signingkeys:

签名密钥是用来对应用数据或消息进行签名的非对称密钥,可以是可迁移的或不可迁移的。

l  Storagekeys

存储密钥一般是用来加密数据或其他密钥的非对称密钥,用来产生存在于TPM之外的密钥和数据。

l  Bindkeys

May be used to encryptsmall amounts of data (such as a symmetric key) on one platform and decrypt iton another. 用来加密一个平台的少量数据(例如对称密钥),然后在另一个平台解密。

– happens outside of the TPM

– encrypt data with the public part of aTPM key

– only the TPM the key pair belongs tocan decrypt the data

与Seal的区别:

– without using PCRs: bind/unbind

– with using PCRs: seal/unseal

l  LegacyKeys

在TPM外创建的密钥。在进行签名或者加密操作之后再导入到TPM中,可迁移密钥。

l  AuthenticationKeys

用来保护涉及到TPM的传输会话的对称密钥。Authentication Keys are symmetric keys used to protect transportsessions involving the TPM

 

几个小知识点:

Ø  只有EK和SRK是永久存储在TPM中的

Ø  TPM的key都是在TPM中产生的

Ø  使用TPM的key,需要先将key加载到TPM中

Ø  TPM中的key的slot是有数量限制的

Ø  对TPM中的key slot的管理由TSS完成

TPM中的key的产生方式:

指定一个父key,由RSA Engine创建一个新的RSA对, 由于key slot数量是一定的,需要一定安全机制将TPM中的key换出来。、

如果一个key离开TPM,需要使用父key的公钥进行加密。

因为父key是在TPM中的,所以TPM的key的私钥只能在TPM中解密和使用

SRK,是最顶层的key,永远驻留在TPM中

SK组成了key的层次,签名key经常在TPM之外

 

下图为TPM的key层次结构,顶层root密钥为SRK,其他key都为通过SRK生成。产生一个key或者在keyslot中已有的key私钥离开TPM,应该使用其父key的公钥进行加密。而key的使用都在TPM中(因为经过层层加密,只有在TPM中的SRK才能最终将其解开),所以TPM的外部key需要通过key的树结构返回到SRK,经解密后使用。

 

TPM Key Hierarchy

 

Unloading TPM Keys

 

下面为一个使用红圈标示的signing key的例子。

Loading TPM Keys

 

1、首先将SR key1load到TPM中,使用SRK解密,放入key slot中,

Loading TPM Keys

 

2、然后再将SK key2 load到TPM中,使用SRkey 1将key 2解密,放入到key slot中。

Loading TPM Keys

 

3、最后将signing key load到TPM中,使用SR key 2解密。然后将其放在key slot中,再在TPM中使用其进行一些签名操作。

Loading TPM Keys

 

这篇关于对TCG的概要分析和对TPM的学习-可信存储根RTS(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/609323

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss