「TCG 规范解读」基础设施架构和协议 (1)

news2024/11/15 13:03:52

可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强在相异计算机平台上的计算环境的安全性。TCG于2003年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alliance,TCPA)所开发的规范。现在的规范都不是最终稿,都还在不断的更新中,比如:TPM的规范就从原来的v1.0更新到v1.2,现在还在不断的修订。

该规范在文档路线图中的位置

 
TCG 定义了 5 种类型的凭证,每种类型用来提供执行特定操作所必须的信息。

凭证采用 ASN.1 表示,这个借用了公钥基础设施中的元素。

凭证类型包括:

背书或 EK 凭证
符合性凭证
平台凭证
验证凭证
身份或 AIK 凭证
1. 背书凭证

背书凭证由生成背书密钥 EK 方颁发,EK 是在制作过程中生成的,即 TPM 制造商会生成 EK。不过,EK 可以在发给终端用户前的任意点生成,只要 TPM 制造商声明 EK 已经正常创建并嵌入到可用的 TPM 中。

EK密钥对在客户拿到平台后生成的话,密钥生成的条件可能会影响背书的提供。

背书凭证包含的信息有:

TPM 制造商名称
TPM 零件号
TPM 版本或阶段
EK 公钥
虽然 EK 公钥是公开的,但因为其和 TPM 一一绑定并会对平台进行扩展,所以属于敏感隐私。TCG 预期每个 TPM 需要有一个 EK 凭证。

2. 符合性凭证

这些证书由具有足够可信度的任何人发布,以评估TPM或包含TPM的平台。这些评估可以由平台制造商、供应商或独立实体来进行。这个符合性凭证表明评估方根据评估指南同意可信构建元素TBB 的设计和实现。通过签发凭证,评估者可以证明评估结果,这些会被用于后期的检查。TCG 通过定义有意义的评估标准和准则来促进评估。

评估方可以像一个平台签发多个符合性凭证,一个是给 TPM 的,其他是签给各个可信构成元素 TBB 组件的。

符合性凭证可能包含以下信息:

评估方名称
平台制造商名称
平台型号
平台版本(如果有的话)
TPM 制造商名称
TPM 型号
TPM 版本号或阶段
符合性凭证不包含任何唯一识别任何平台特定的信息。

TCG设想每个平台模型可能存在多个一致性证书,但同一品牌和型号的多个平台只需要一组证书。

3. 平台凭证

平台凭证由平台制造商、供应商或者任何具有足够信用的相关方颁发,平台凭证能够唯一识别平台的制造商并描述平台属性。平台凭证会引用 TPM 背书凭证以及相关的符合性凭证。这些引用由引用凭证的消息签名构成。平台凭证可以被看做是隐私敏感信息,这个凭证和特定平台相关,而不是和一类平台相关。

平台凭证包含如下信息:

平台制造商名称
平台型号
平台版本(如果适用)
背书凭证
符合性凭证
平台凭证根据背书凭证证明平台包含一个 TPM。TCG 建议每个平台实例只有一个平台凭证。

4. 验证(资格)凭证

TCG 建议可测量组件(软硬件)能够在功能测试后能够生成其度量值,形成对应的凭证。当然,这只是对那些能够对安全造成威胁的组件。这些度量值需要在安全环境下生成,并形成签名文档,即验证凭证,在运行时进行度量值比较。

以下一些组件通常需要验证证书:

视频适配器
磁盘存储适配器
通信控制器/网络适配器
处理器
键盘和鼠标
软件
验证凭证由验证实体颁发,任何愿意并有能力度量、证明这些度量值的实体都可以视作验证实体。通常,组件制作商产生这些值的最佳选择。组件描述中的任何一部分可能成为信任决策的原料。然而,验证凭证的候选组件可能会造成安全威胁。

组件描述至少包含如下元素:

验证实体名称
组件制造商名称
组件型号
组件版本或阶段
度量值
组件能力(比如不可改,这个是可选的)
一个型号中的一组组件可以颁布一份凭证,也可以颁发多个凭证。

组件更新、升级流程由供应商自定义,比如如何使原来的验证凭证无效等。

5. 身份证明凭证

证明身份凭证(身份证)是用来证明 AIK 私钥的凭证,由 AIK 公钥和其他签发者认为有用的信息组成,证明凭证是由可信服务方颁发并能验证各种凭证同时保证客户端的隐私条款。

通过签发证明身份凭证,签发者能够证明 TPM 的真实性,证明 TPM 的一些事实。证明的目的是 TPM 拥有 AIK 并且这个 AIK 绑定了有效的背书凭证、符合性凭证、平台凭证。受信方进一步保证了其遵守的隐私保护满足用户期望,这些隐私包括在注册过程中暴漏的个人隐私数据。

证明身份凭证参考其他凭证如下:

证明身份凭证包含了一个TPM 制造商和型号的引用,如下图中 C,没有引用隐私敏感的 EK
证明身份凭证同时包含了平台制造商和型号如图 D,值得注意的是这个引用并不是引用平台凭证本身,而是引用平台凭证中信息不敏感的信息
最后,证明身份凭证包含一个指向 TPM 和平台符合性的条目,如图 E
挑战者可以使用该信息以及证书中的其他信息,通过认证协议信任平台。

附录

The TCG TPM 1.2 Main specification defines a subsystem with protected storage and protected capabilities. This subsystem is the Trusted Platform Module (TPM). Since the TPM is both a subsystem intended to provide trust and to be an inexpensive component, resources within it are restricted.

This narrowing of the resources, while making the security properties easier and cheaper to build and verify, causes the interfaces and capabilities to be cumbersome. The TCG architecture has solved this by separating the functions requiring the protected storage and capabilities from the functions that do not; putting those that do not into the platformÍs main processor and memory space where processing power and storage exceed that of the TPM. The modules and components that provide this supporting functionality comprise the TSS.

Latest Version:

TCG Software Stack (TSS) Specification, Version 1.2, Errata A

  • Header File: TCG Software Stack (TSS) Specification, Version 1.2 (ZIP)

Previous Version:

TCG Software Stack (TSS) Specification Version 1.2

  • Header File: TCG Software Stack (TSS) Specification, Version 1.2, Errata A

TCG Software Stack (TSS) Specification Version 1.10

  • Header File: TCG Software Stack (TSS) Specification, Version 1.1

TCG Software Stack Specification 1.2 FAQs

What are we announcing?
TCG is announcing the Trusted Computing Group Software Stack Specification (TSS) 1.2. Applications based on this will be able to access the many features of the Trusted Platform Module (TPM) 1.2. These features include Direct Anonymous Attestation (DAA) and the ability to run and generate a new Attestation Identity Key (AIK); locality; delegation; non-volatile storage; optimized transport protection; and time stamping.

How is this version different from the existing one?
We have added support for all the new functionality that was added into the TPM 1.2 from 1.1, while maintaining backwards compatibility for TPMs based on the 1.1 specification.

Will applications developed based on this be compatible with applications based on a previous version of the TSS?
1.1 applications will continue to run with the exception of those using the GetCapabilitySigned function, which was eliminated in TPM 1.2.

Will TSS 1.2 support only TPM 1.2? Will it support TPM 1.1?
Applications based on the TSS 1.2 using the specific features of the TPM 1.2 will only work on platforms with the TPM 1.2. Applications compiled with the TSS 1.2 but using functions of the TPM 1.1 will work on either TSS 1.1 or TSS 1.2 software stacks. Applications that were compiled with the TSS 1.1 will continue to work on either TSS 1.1 or TSS 1.2.

What is required of developers to start using the spec?
Developers need the header file, which TCG will make available in March of this year, and a 1.2 TSS DLL, which should be shipping soon from many members.

What applications are anticipated to be developed?
New applications that can be developed using TSS 1.2 include those supporting features of the TPM 1.2, such as delegation functions, DAA (using group signature like structure for anonymity), time stamping, or non-volatile storage on the TPM should use this new spec.

What are some new features in the TSS 1.2?
One of these is extensions to DAA, or Direct Anonymous Attestation.

What extension to DAA have been incorporated into TSS that are not available with the TPM itself?
The original mechanism of DAA was to allow for privacy-friendly (anonymous) attestation. That is, it allows a TPM to prove that it is a certified TPM without being identified or transactions being linkable. For TSS, DAA has been extended to include arbitrary attributes in the certificates issued to the TPM. This extension allows for a fine-grained privacy-friendly attestation as well as to prove properties about the included attributes (e.g., that the date included in the certificate is still valid). Finally, in order to comply with regulations in some countries, anonymity revocation is supported: at the time a TPM proves that it is certified, a third (passive) party can be designed who will later on be able to identify the TPM in case of misuse.

What applications can be developed using DAA?
Any applications that wants to support privacy-friendly authentication. An example would be an anonymous yet restricted web access to a newspaper or patent database.

When will we see these new applications?
Some members have started shipping applications based on preliminary specifications. NTRU and Infineon support the TSS 1.2 with its products. It is expected that all new applications will take advantage of the additional functionality provided in the specification, especially as many of these have been added based on demands from the market.

Are there any tools or other requirements to start using the new TSS? If so, who is providing and when are the necessary tools available?
TCG is making available a header file for developers, which will be available in March 2006 via the TCG website, https://trustedcomputinggroup.org/developers/software_stack.

皮格马利翁效应心理学指出,赞美、赞同能够产生奇迹,越具体,效果越好~

“收藏夹吃灰”是学“器”练“术”非常聪明的方法,帮助我们避免日常低效的勤奋~

下一篇 「TCG 规范解读」TCG 软件栈 TSS (中) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

9、STM32 SDIO FATFS(SD卡)

本篇文章使用STM32对SD卡通过SDIO配置,读写文件 在使用FATFS时值得注意得是若通信SDIO不启动DMA方式读写,容易导致其他任务中断打断读写时序,导致FATFS的执行出现异常,常见返回为FR_DISK_ERR, / (1) A hard error occurred in the…

【论文阅读】Robust Invertible Image Steganography (CVPR 2022)

作者来自北大深研院 网上已有介绍:https://news.pkusz.edu.cn/info/1002/6538.htm 针对传统图像隐写方法对高斯噪声、泊松噪声和有损压缩鲁棒性差的问题,提出了一种基于流的鲁棒可逆图像隐写框架RIIS。框架如下图 一、方法概述: 基于流的可…

计算机组成原理4小时速成6:输入输出系统,io设备与cpu的链接方式,控制方式,io设备,io接口,并行串行总线

计算机组成原理4小时速成6:输入输出系统,io设备与cpu的链接方式,控制方式,io设备,io接口,并行串行总线 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人&#xff0c…

计算机网络--网络层 IPv4地址概述(day05)

网络层 网络层提供的两种服务 IPv4地址概述 IPv4地址就是给因特网(Internet)上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符 IPv4地址的编址方法经历了如下三个历史阶段: 分类编址 1981划分子网 1985无分类编址…

JavaScript Array 数组对象

文章目录JavaScript Array 数组对象什么是数组?创建一个数组访问数组JavaScript Array 数组对象 数组对象的作用是:使用单独的变量名来存储一系列的值。 创建数组, 为其赋值: 实例 var mycars new Array(); mycars[0] "Saab"; mycars[1]…

【虚幻引擎】UE4源码解析FWorldContent、UWorld、ULevel、UGameInstance、UEngine

一、UEngine Engine,因为也是很基础的类,再加上开发过程中会经常访问到该类型,因此UE4引擎也在代码全局范围内定义了一个该类型的全局变量:UEngine* GEngine供开发者直接调用。该最基础的类型分化成了两个子类:UGameE…

【面试题】 JavaScript 字符串截取方法有哪些?

大厂面试题分享 面试题库后端面试题库 (面试必备) 推荐:★★★★★地址:前端面试题库在 JavaScript 中,可以使用 substr()、slice() 和 substring() 方法截取字符串。substring()substring() 方法返回一个字符串在开始…

Lock锁心得

lock接口最常见的实现类ReentrantLock,通常情况下,lock只允许一个线程访问共享资源,也有特殊情况,比如读写锁里的读锁。lock和synchronizrd是常见的锁,都可以让代码变得安全。但是功能上有差别,二者不是能替…

笃行不怠勾勒人才图,望城区人才工作为高质量发展增添强劲动力

功以才成,业以才广。人才是经济高质量发展的重要资源。党的二十大报告明确“深入实施人才强国战略”,指出“实施更加积极、更加开放、更加有效的人才政策”。作为湖南“一核两副三带四区”区域经济发展格局的战略支点,望城区积极发挥着政策主…

TCP协议详解—TCP各个报头属性的作用

文章目录一.TCP是什么二.TCP协议格式1.报头属性解释TCP首部长度/如何解包分用三.确认应答机制-tcp如何保证可靠性1.确认应答机制2.序号/确认序号-如何保证报文按序到达3.为什么要两个序号四.16位窗口大小-调整发送策略五.6个标志位一.TCP是什么 首先我们需要知道TCP是什么,TCP全…

你知道Object类和Objects的常用方法吗

文章目录Object的常用方法Objects的常用方法hashCodehashisNullequalsrequireNonNullcomparenonNull大家好,Leo又来了!!!最近在网上看到别人分析Objects中isNullfanfan方法来判断,我就想到之前写的一坨坨null,突然很惭愧,特地去研…

IIC总线式驱动开发(mpu6050)

目录 一、I2C总线背景知识 二、Exynos4412 I2C收发实现之裸机版 2.1 发送 2.2 接收 三、Linux内核对I2C总线的支持 四、MPU6050 五、应用层直接使用I2C通道 5.1 预备工作: 5.1.1 5.1.2 5.2 应用层直接使用i2c总线的代码实现 5.2.1 调用read、write实现接…

解决“vue“不是内部或外部命令问题

通过vue指令使用脚手架初始化项目时,在cmd中输入vue init webpack vue_project,终端报错: vue 不是内部或外部命令,也不是可运行的程序或批处理文件。解决方案: 1、确定npm是否已正确安装,在cmd中输入如下…

AcWing算法提高课-3.1.3香甜的黄油

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 题目传送门点这里 题目描述 农夫John发现了做出全威斯康辛州最甜的黄油的方法&#xff1a;糖。 把糖放在一片牧场上&#xff0c;他知道 N 只奶牛会过来舔它&#xff0c;这样就能做出能卖好价…

Dynamics 365 环境搭建 之 SQL Server 2019问题汇总

前言 随着产品的迭代&#xff0c;SQL Server 2016 已经是7-8年前的产品&#xff0c;新环境的搭建必然要随之更新。截至目前&#xff08;2023年3月&#xff09;Dynamics 365 9.1 op版本的软件要求如下。 Windows ServerSQL ServerWindows Server 2019 标准 Windows Server 20…

Vue2与Vue3响应式的详解与比对

目录前言一&#xff0c;响应式的理解1.1 Mvvm模式的复习1.2 什么是响应式二&#xff0c; Vue2中响应式的应用三&#xff0c;Vue2响应式的原理及实现3.1 数据代理3.2 数据代理的原理3.3 数据劫持四&#xff0c;Vue3中响应式的应用3.1 ref与reactive3.2 ref函数的使用讲解3.3 为什…

Anaconda配置Python新版本tensorflow库(CPU、GPU通用)的方法

本文介绍在Anaconda环境中&#xff0c;下载并配置Python中机器学习、深度学习常用的新版tensorflow库的方法。 在之前的两篇文章基于Python TensorFlow Estimator的深度学习回归与分类代码——DNNRegressor&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/detail…

圣杯布局的实现方式

1.什么是圣杯布局&#xff1f; 左右盒子固定&#xff0c;中间盒子自适应 2.实现方式 &#xff08;1&#xff09;flex布局 思路&#xff1a;左右盒子给固定的宽高&#xff0c;中间盒子flex:1 <!DOCTYPE html> <html lang"en"> <head> <met…

JavaSE学习进阶 day1_01 static关键字和静态代码块的使用

好的现在我们进入进阶部分的学习&#xff0c;看一张版图&#xff1a; 前面我们已经学习完基础班的内容了&#xff0c;现在我们已经来到了第二板块——基础进阶&#xff0c;这部分内容就不是那么容易了。学完第二板块&#xff0c;慢慢就在向java程序员靠拢了。 面向对象进阶部分…

入门力扣自学笔记240 C++ (题目编号:2373)

2373. 矩阵中的局部最大值 题目&#xff1a; 给你一个大小为 n x n 的整数矩阵 grid 。 生成一个大小为 (n - 2) x (n - 2) 的整数矩阵 maxLocal &#xff0c;并满足&#xff1a; maxLocal[i][j] 等于 grid 中以 i 1 行和 j 1 列为中心的 3 x 3 矩阵中的 最大值 。 换句…