[PDF] GM/T 0058-2018 - 自动发货. 英文版
| 标准号码 | 美元 | 购买PDF | 工期 | 标准名称(英文版) |
| GM/T 0058-2018 | 610 | GM/T 0058-2018 | 9秒内发货PDF | 可信计算 TCM服务模块接口规范 |
| 基本信息 | |
|---|---|
| 标准编号 | GM/T 0058-2018 (GM/T0058-2018) |
| 中文名称 | 可信计算 TCM服务模块接口规范 |
| 英文名称 | Trusted computing - TCM service module interface specification |
| 行业 | Chinese Industry Standard (推荐) |
| 中标分类 | L80 |
| 字数估计 | 193,184 |
| 发布日期 | 2018-05-02 |
| 实施日期 | 2018-05-02 |
| 发布机构 | 国家密码管理局 |
GM/T 0058-2018: 可信计算 TCM服务模块接口规范
GM/T 0058-2018 英文名称: Trusted computing-TCM service module interface specification
中 华 人 民 共 和 国 密 码 行 业 标 准
GM/T 0058—2018
可信计算 TCM 服务模块接口规范
国家密码管理局 发 布
1 范围
本标准规定了 TCM 服务模块的组成和接口标准,包含TSP、TCS 和 TDDL, 是面向 TCM 应用层
的接口标准。
本标准适用于基于TCM 的应用开发。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文 件,凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 32905—2016 SM3 密码杂凑算法
GB/T 32907—2016 SM4 分组密码算法
GB/T 32918.2—2016 SM2 椭圆曲线公钥密码算法 第2部分:数字签名算法 GB/T 32918.4—2016 SM2 椭圆曲线公钥密码算法 第4部分:公钥加密算法 GM/T 0005—2012 随机性检测规范
GM/T 0009—2012 SM2 密码算法使用规范
GM/T 0015—2012 基于SM2 密码算法的数字证书格式规范
4 缩略语
下列缩略语适用于本文件。
EK 可信计算密码模块密钥(TCM Endorsement Key)
HMAC 带密钥的消息验证码算法(the keyed-hash message authentication code)
NV 非易失性(Non-Volatility)
PCR 平台配置寄存器(Platform Configuration Register)
PEK 平台加密密钥(Platform Encryption Key)
PIK 平台身份密钥(Platform Identity Key)
SMK 存储主密钥(Storage Master Key)
TCM 可信密码模块(Trusted Cryptography Module)
TSM TCM 服务模块(TCM service module)
TSP TCM 应用服务(TCM Service Provider)
TCS TCM 核心服务(TCM Core Services)
TDD TCM 设备驱动(TCM Device Driver)
TDDL TCM 设备驱动库(TCM Device Driver Library)
TDDLI TCM 设备驱动库接口(TCM Device Driver Library Interface)
5 软件架构
TCM 服务模块软件架构如图1所示,包括 TCM 应用服务、TCM 核心服务和 TCM 设备驱动库3个组成部分。
6 TCM 应用服务
6.1 类定义
TCM 应用服务定义如下类:
a) 上下文管理类(Context class)
上下文管理类包含关于 TSM 对象的执行环境的信息。
b) 策略管理类(Policy class)
策略管理类用于为不同用户应用程序配置相应的安全策略与行为。
应用程序通过策略管理为授权机制提供专门的授权秘密信息的处理操作(如回调,生命周期)。
c) TCM 管理类(TCM class)
TCM 管理类用于表示 TCM 的所有者。 TCM 的所有者可以看成是PC 环境中的系统管理员。因 此,每个上下文仅有一个TCM 管理类的实例。这个对象自动与一个策略对象相关联,用于处理 TCM 所有者的授权数据。此外,它还提供一些基本控制和报告的功能。
d) 密钥管理类(Key class)
密钥管理类用于表示 TSM 密钥管理功能的入口。每个密钥对象的实例代表 TSM 密钥树中一个 具体的密钥节点。每个需授权的密钥对象,需要分配一个策略对象,用于管理授权秘密信息。
e) 数据加解密类(Encrypted Data class)
该类用于将外部(例如用户,应用程序)产生的数据与系统关联起来(与平台或 PCR 绑定),或者用 于为外部提供数据加密/解密服务。
进行授权处理时,可以给该类分配一个策略对象。
f) PCR 操作类(PCR Composite class)
PCR 操作类可用于建立系统平台的信任级别。该类提供了对PCR 进行选择、读、写等操作的简便 方法。
所有需要 PCR 信息的函数,在其参数表中都使用了这个类的对象句柄。
g) NV 存储管理类(NV Store class)
NV 存储管理类用于管理 TCM 的非易失性存储区域中存储属性信息。用于 NV 区域的定义、读、 写和释放
该类建立 NV 存储区的大小、索引、各种读写授权,其中授权可以基于PCR 值或者授权数据,但不 能基于Locality。
h) 杂凑计算类(Hash class)
杂凑计算类为数字签名操作提供了一种密码学安全的方法。
i) 密钥协商类(Exchange Key class)
密钥协商类用于执行密钥交换协议操作。
6.2 类与对象的关系
工作对象可再分为授权工作对象和非授权工作对象。非授权工作对象包括 PCR 组合对象和杂凑 对象,见图2。授权对象包括TCM 对象、密钥对象、NV 存储对象、迁移数据对象和加密数据对象,见 图3。
在非授权工作对象中,可以创建多个PCR 组合对象和杂凑对象。
6.3 接口
6.3.1 通用接口
6.3.1.1 Tspi SetAttribUint32
功能描述:
本函数设置对象的32-bit 属性。如果请求的数据长度小于UINT32, 必须将数据转换成32-bit长 度的数据。
6.3.1.2 Tspi GetAttribUint32
功能描述:
本函数获取对象的32-bit 属性。
6.3.1.3 Tspi SetAttribData
功能描述:
本函数设置对象的非32-bit 属性。属性数据的结构和大小依属性而定
6.3.1.4 Tspi GetAttribData
功能描述:
本函数获取对象的非32-bit 属性。属性数据的结构和大小依属性而定。为属性数据所分配的内存 块必须用 Tspi Context FreeMemory 来释放。
6.3.1.5 Tspi ChangeAuth
功能描述:
改变实体(对象)的授权数据(秘密)并将该对象指派给策略对象。所有使用授权数据的类都提供本函数用以改变它们的授权数据。
6.3.1.6 Tspi GetPolicyObject
功能描述:
返回当前工作对象的策略。
如果应用程序没有创建策略对象,且在调用前没有为该工作对象指派策略,本函数将返回默认的策 略。为默认策略设置新的授权数据信息,将影响与其相关的所有对象的后续操作。
6.3.2 上下文管理
6.3.2.1 Tspi Context Create
功能描述:
创建一个上下文对象,返回该对象句柄。
6.3.2.2 Tspi Context Close
功能描述:
销毁一个上下文对象,并释放所分配的所有资源。
6.3.2.3 Tspi SetAttribUint32(整型参数)
功能描述:
本函数设置上下文对象的32-bit 属性。如果请求的数据长度小于 UINT32, 必须将数据转换成32-bit 长度的数据。
6.3.2.4 Tspi GetAttribUint32(整型参数)
功能描述:
本函数获取上下文对象的32-bit 属性。
6.3.2.5 Tspi SetAttribData(变长参数)
功能描述:
本函数设置上下文对象的非32-bit属性。属性数据的结构和大小依属性而定。
6.3.2.6 Tspi GetAttribData(变长参数)
功能描述:
本函数获取上下文对象的非32-bit属性。属性数据的结构和大小依属性而定。为属性数据所分配 的内存块必须用Tspi Context FreeMemory 来释放。
6.3.2.7 Tspi Context Connect
功能描述:
建立 TSP 与 TCS 的连接,TCS 可以为本地的或远程的。
6.3.2.8 Tspi Context FreeMemory
功能描述:
释放由TSP 所分配的上下文内存资源。
6.3.2.9 Tspi Context GetDefaultPolicy
功能描述:
获取上下文的默认策略对象。
6.3.2.10 Tspi Context CreateObject
功能描述:
创建并初始化一个指定类型的空对象,返回该对象的句柄。
该空对象将与一个已经打开的上下文对象相关联。
6.3.2.11 Tspi Context CloseObject
功能描述:
销毁一个上下文对象句柄所关联的对象,释放该对象相关的资源。
6.3.2.12 Tspi Context GetCapability
功能描述:
获取TSM 应用服务或核心服务的功能/性能/属性数据。
6.3.2.13 Tspi Context GetTCMObject
功能描述:
获取TCM 对象的上下文, 一个给定的上下文只对应一个TCM 对象实例,代表TCM 所有者。
6.3.2.14 Tspi Context LoadKeyByBlob
功能描述:
根据 key blob 中包含的信息创建密钥对象,并加载到TCM 中,用hUnwrappingKey 指向的密钥解 密 key blob。hUnwrappingKey 指向的密钥必须先被加载到TCM 内。
6.3.2.15 Tspi Context LoadKeyByUUID
功能描述:
密钥管理器根据 UUID 获取密钥信息,填充密钥对象,并将密钥加载到TCM 中。加载密钥时所需
的父密钥信息可从永久性存储器获得。
使用此命令时,需要考虑父密钥的授权要求:
a) 如果该密钥的所有父密钥都不需要授权,应用程序可以直接调用 Tspi Context LoadKey-ByUUID() 来加载当前密钥。
b) 如果有一个密钥需要授权,并且应用程序知道密钥缓存信息,则应用程序必须通过调用函数 Tspi Context GetKeyByUUID()从密钥库中获得密钥信息,并为其指派策略后,用Tspi Key LoadKey() 加载密钥。
c) 如果有一个密钥需要授权,并且应用程序不知道密钥缓存信息,则应用程序必须通过调用 Tspi Context GetRegisteredKeysByUUID()从密钥库中获取密钥缓存信息。然后为其指派 策略,用Tspi Key LoadKey()加载密钥。
6.3.2.16 Tspi Context RegisterKej
功能描述:
将密钥注册到 TSP 永久性存储数据库中。
6.3.2.17 Tspi Context UnregisterKey
功能描述:
将密钥从TSP 永久性存储数据库中注销。
6.3.2.18 Tspi Context......
英文网页English: GM/T 0058-2018
相关标准: GB/T 15843.1|GM/T 0067|GM/T 0066|GM/T 0065|GM/T 0058-2018|GM/T 0058|