| 标准编号 | GM/T 0011-2023 (GM/T0011-2023) | | 中文名称 | 可信计算 可信密码支撑平台功能与接口规范 | | 英文名称 | Trusted computing - Trusted computing functionality and interface specification of cryptographic support platform | | 行业 | Chinese Industry Standard (推荐) | | 中标分类 | L80 | | 字数估计 | 167,110 | | 发布日期 | 2023-12-04 | | 实施日期 | 2024-06-01 | | 发布机构 | 国家密码管理局 |
GM/T 0011-2023: 可信计算 可信密码支撑平台功能与接口规范
中华人民共和国密码行业标准
ICS 35.030CCS L 80
可信计算
可信密码支撑平台功能与接口规范
Trusted computing-Trusted computing functionality and interface
2023⁃12⁃04 发布
2024⁃06⁃01 实施
国家密码管理局 发 布
代替 GM/T 0011-2012
目次
前言·····Ⅲ
引言·····Ⅴ
1 范围·····1
2 规范性引用文件····1
3 术语和定义·····1
4 缩略语·····3
5 可信计算密码支撑平台概述····4
5.1 可信计算·····4
5.2 可信构件·····4
5.3 可信计算基····4
5.4 可信边界·····4
5.5 可信传递·····5
5.6 可信授权·····5
6 可信计算密码支撑平台功能····5
6.1 平台体系结构···5
6.2 平台接口功能···7
7 可信密码模块接口···11
7.1 通用要求····11
7.2 启动命令····11
7.3 检测命令····12
7.4 会话命令····14
7.5 对象命令····16
7.6 复制命令····23
7.7 非对称算法命令····25
7.8 对称算法命令····29
7.9 随机数发生器命令···30
7.10 杂凑/HMAC 命令····31
7.11 证明命令····36
7.12 临时 EC 密钥命令····39
7.13 签名及签名验证命令····41
7.14 度量命令····42
7.15 增强授权命令····44
7.16 分层命令····53
7.17 字典攻击命令····58
7.18 管理功能命令····59
7.19 上下文管理命令····60
7.20 属性命令····62
7.21 NV 操作命令···64
8 可信密码模块证实方法····73
8.1 概述·····73
8.2 符合性实现原理说明····73
附录 A (规范性) 数据结构····76
附录 B (资料性) 可信密码模块证实实例····134
附录 C (资料性) 与参考标准章条编号对照情况·····152
附录 D (资料性) 典型应用中接口依赖关系示例····154
参考文献·····159
前言
本文件按照 GB/T 1.1-2020《标准化工作导则 第 1 部分:标准化文件的结构和起草规则》的规
定起草。
本文件代替 GM/T 0011-2012《可信计算 可信密码支撑平台功能与接口规范》,与 GM/T 0011-
2012 相比,除结构调整和编辑性改动外,主要技术内容变化如下:
a) 删除了“术语和定义”中的部件(见 2012 年版的 3.1.1)、对象(见 2012 年版的 3.1.3)、密码模块
密钥(见 2012 年版的 3.1.12)、密钥管理中心(见 2012 年版的 3.1.13)、平台身份密钥(见 2012
年版的 3.1.15)、平台加密密钥(见 2012 年版的 3.1.16)、双证书(见 2012 年版的 3.1.17)、实体
(见 2012 年版的 3.1.18);
b) 增加了“术语和定义”中的背书密钥(见 3.9)、授权值 (见 3.14)、授权策略 (见 3.15)、上下文
(见 3.16)、 背书授权(见 3.17)、平台固件(见 3.18)、 主密钥(见 3.19)、 主对象(见 3.20)、主种
子(见 3.21)、存储密钥(见 3.23);
c) 删除了缩略语 NV、PIK 和 PEK(见 2012 年版的 3.2);
d) 增加了缩略语 AK、CRTM、DRTM、ECDH、EPS、GPIO、HMAC、IPL、KDF、MBR、PP、PPS、
RNG、RTM、RTR、RTS、SPS、SRTM、TBB、TCB 和 UEFI(见第 4 章);
e) 更改了“缩略语”EK 的名称(见第 4 章);
f) 更改了“平台体系架构”和 “功能原理”的一些内容(见 6.1 和 6.2,2012 年版的 4.1 和 4.3);
g) 删除了“密码算法要求”(见 2012 年版的 4.2);
h) 删除了“可信计算密码支撑平台功能接口”(见 2012 年版的第 5 章);
i) 增加了“可信计算密码支撑平台概述”(见第 5 章);
j) 增加了“可信计算密码支撑平台功能”(见第 6 章);
k) 增加了“可信密码模块接口”(见第 7 章);
l) 增加了 SM2 非对称加解密的指令实现要求(见 7.7);
m) 增加了“可信密码模块证实方法”(见第 8 章);
n) 删除了规范性附录 A、附录 B 和附录 C(见 2012 版附录 A、附录 B 和附录 C);
o) 增加了规范性附录 A(见附录 A),定义了命令码、返回码、常量和数据结构。
请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。
本文件由密码行业标准化技术委员会提出并归口。
本文件起草单位:国民技术股份有限公司、中国科学院软件研究所、北京信息科技大学、联想(北
京)有限公司、中国电子技术标准化研究院、武汉大学、北京大学、北京奇虎科技有限公司、大唐高鸿信
安(浙江)信息科技有限公司、中电科技(北京)有限公司、神州网信技术有限公司、浪潮电子信息产业股
份有限公司、兴唐通信科技有限公司、阿里云计算有限公司、深圳数字电视国家工程实验室股份有限公
司、国家计算机网络与信息安全管理中心、公安部第三研究所、国民认证科技(北京)有限公司、北京蚂
蚁云金融信息服务有限公司、华为技术有限公司、郑州迪维勒普科技有限公司、北京卓识网安技术股份
有限公司、同方股份有限公司、长春吉大正元信息技术股份有限公司、联想(北京)信息技术有限公司、
新华三技术有限公司、中电科网络安全科技股份有限公司、无锡江南信息安全工程技术中心、中国人民
解放军国防科学技术大学。
本文件主要起草人:秦宇、刘鑫、付月朋、刘大遒、吴秋新、韦卫、李汝鑫、张严、王惠莅、孙彦、王娟、
严飞、沈晴霓、张晓磊、张屹、郑驰、张佳建、陈小春、孙亮、王强、杨尚欣、吴保锡、白欣璐、王悦、付颖芳、
肖鹏、李新国、岳志军、王晖、陶源、柴海新、李俊、初晓博、张小虎、张梦良、许东阳、刘韧、刘锋、姚金龙、
吴会军、杜克宏、卢卫疆、冯伟、李为、张立强、余发江、赵波、李业旺、秦文杰、罗武。
本文件及所代替文件的历次版本发布情况为:
--2012 年首次发布 GM/T 0011-2012;
--本次为第一次修订。
引 言
为满足可信计算产业不断发展的新需求,本文件以密码算法应用为核心,以可信计算技术应用需
求为基础,描述了可信计算密码支撑平台的功能,参考了我国密码算法在国际上可信计算标准中的采
纳情况及我国可信计算技术、国际上可信计算技术的应用成果,定义了可信计算密码支撑平台接口形
式。本文件符合不同应用场景下可信计算密码支撑平台设计需求,兼容各种硬件平台、宿主机软件系
统、应用系统,确保产业界产品的统一性和兼容性,用于指导我国可信计算相关产品开发和应用。
可信计算
可信密码支撑平台功能与接口规范
1 范围
本文件给出可信计算密码支撑平台的体系框架和功能原理,规定了可信密码模块的接口规范,描
述了对应的证实方法。
本文件适用于可信计算密码支撑平台相关产品的研制、生产、测评与应用开发。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文
件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于
本文件。
GB/T 20518 信息安全技术 公钥基础设施 数字证书格式
GB/T 25069 信息安全技术 术语
GB/T 32905 信息安全技术 SM3 密码杂凑算法
GB/T 32907 信息安全技术 SM4 分组密码算法
GB/T 32915 信息安全技术 二元序列随机性检测方法
GB/T 32918.2 信息安全技术 SM2 椭圆曲线公钥密码算法 第 2 部分:数字签名算法
GB/T 32918.3 信息安全技术 SM2 椭圆曲线公钥密码算法 第 3 部分:密钥交换协议
GB/T 32918.4 信息安全技术 SM2 椭圆曲线公钥密码算法 第 4 部分:公钥加密算法
GB/T 35276 信息安全技术 SM2 密码算法使用规范
GM/T 0012 可信计算 可信密码模块接口规范
GM/T 0058 可信计算 TCM 服务模块接口规范
GM/Z 4001 密码术语
3 术语和定义
GB/T 25069 和 GM/Z 4001 界定的以及下列术语和定义适用于本文件。
3.1
存储主密钥 storage master key
用于保护操作系统密钥和用户密钥的主密钥。
3.2
可信计算平台 trusted computing platform
构建在计算系统中,用于实现可信计算功能的支撑系统。
3.3
可信计算密码支撑平台 cryptographic support platform for trusted computing
可信计算平台的重要组成部分,包括密码算法、密钥管理、证书管理、密码协议、密码服务内容,为
可信计算平台自身的完整性、身份真实性和数据保密性提供密码支持。
3.4
可信度量根 root of trust for measurement
一个可信的完整性度量单元,是可信计算平台内进行可信度量的基础。
注: 可信度量根由硬件、固件、软件等方式实现或组合构成。
3.5
可信存储根 root of trust for storage
存储主密钥,是可信计算平台内进行可信存储的基础。
3.6
可信报告根 root of trust for reporting
可信计算密码模块密钥,是可信计算平台内进行可信报告的基础。
3.7
可信密码模块 trusted cryptography module
可信计算平台中,提供密码运算功能,具有受保护存储空间的密码模块。
3.8
TCM服务模块 TCM service module
可信计算密码支撑平台外部的软件模块,提供访问可信密码模块的软件服务接口。
3.9
背书密钥 endorsement key
可信密码模块中的一个非对称密钥,不可以迁移,生成于平台的生产过程,代表着每个平台的
身份。
3.10
平台配置寄存器 platform configuration register
可信密码模块内部用于存储平台完整性度量值的存储单元。
3.11
完整性度量 integrity measurement
采用密码杂凑算法对被度量对象计算其杂凑值的过程。
3.12
完整性度量值 integrity measurement value
组件被度量后得到的杂凑值。
3.13
信任链 trusted chain
在计算系统启动和运行过程中,使用完整性度量方法在组件之间所建立的信任传递关系。
3.14
授权值 authentication value
用于访问授权的八比特的字节字符串,用作口令或者派生出一个用于 HMAC 计算的密钥。
[来源:ISO/IEC 11889⁃1:2015,3.2]
3.15
授权策略 authentication policy
执行策略命令所生成的、并用于访问授权的杂凑值。
[来源:ISO/IEC 11889⁃1:2015,3.3]
3.16
上下文 context
提供有关数据对象访问信息的数据集合,用来将数据对象与同一类型的其他数据区分开、或将数
据对象的不同版本区分开。
[来源:ISO/IEC 11889⁃1:2015,3.9]
3.17
背书授权 endorsement authorization
使用背书认证或者背书策略完成的授权。
[来源:ISO/IEC 11889⁃1:2015,3.20]
3.18
平台固件 platform firmware
系统引导和平台初始化操作所需的代码,由平台制造商添加到平台中。
注: 通常但不完全特指 BIOS或UEFI代码。
[来源:ISO/IEC 11889⁃1:2015,3.48]
3.19
主密钥 primary key
从与内部层次结构关联的主种子创建的主密钥。
[来源:ISO/IEC 11889⁃1:2015,3.49]
3.20
主对象 primary object
主密钥或具有敏感区域的数据区,该数据区使用从对象的公共区域和主种子创建的对称密钥
加密。
[来源:ISO/IEC 11889⁃1:2015,3.50]
3.21
主种子 primary seed
包含在从中派生主密钥和主对象的 TCM 中的大随机值。
[来源:ISO/IEC 11889⁃1:2015,3.52]
3.22
可信根 root of trust
始终以预期方式运行的单元。是系统的可信基点,也是实施安全控制的基点。
注: 完整的可信根集至少具有一组最小的功能,以便能够描述影响平台可信度量的平台特性。
[来源:ISO/IEC 11889⁃1:2015,3.59,有修改]
3.23
存储密钥 storage key
用于保护存储在 TCM 外部对象的子密钥。
[来源:ISO/IEC 11889⁃1:2015,3.72,有修改]
4 缩略语
下列缩略语适用于本文件。
AK:证明密钥(Attestation Key)
CRTM:可信度量根核(Core Root of Trust for Measurement)
DRTM:动态可信度量根(Dynamic Root of Trust Measurement)
ECDH:基于椭圆曲线的密钥交换(Elliptic Curve Diffie⁃Hellman)
EK:背书密钥(Endorsement Key)
EPS:背书密钥主种子(Endorsement Primary Seed)
GPIO:通用输入输出(General Purpose I/O)
HMAC:采用带密钥杂凑的消息鉴别码(Keyed⁃hash Message Authentication Code)
IPL:初始化程序加载器(Initial Program Loader)
KDF:密钥导出函数(Key Derivation Function)
MBR:主引导分区(Master Boot Record)
NV:非易失性 (Non-Volatility)
PCR:平台配置寄存器(Platform Configuration Register)
PP:物理存在(Physical Presence)
PPS:平台主种子(Platform Primary Seed)
RNG:随机数发生器(Random Numeral Generator)
RTM:可信度量根(Root of Trust for Measurement)
RTR:可信报告根(Root of Trust for Reporting)
RTS:可信存储根(Root of Trust for Storage)
SPS:存储主种子(Storage Primary Seed)
SMK:存储主密钥(Storage Master Key)
SRTM:静态可信度量根(Static Root of Trust Measurement)
TBB:可信构件(Trusted Building Block)
TCB:可信计算基(Trusted Computing Base)
TCM:可信密码模块(Trusted Cryptography Module)
TSM:TCM 服务模块(TCM Service Module)
UEFI:统一可扩展固件接口(Unified Extensible Firmware Interface)
5 可信计算密码支撑平台概述
5.1 可信计算
可信计算是一种旨在增强计算机系统可信性的综合性信息安全技术。可信技术在计算机系统中,
建立一个可信根,从可信根开始到硬件平台、到操作系统、再到应用,逐级度量,逐级认证,逐级信任,把
这种信任扩展到整个计算机系统,并采取防护措施,确保计算资源的完整性和计算行为的可预期性,从
而提高计算机系统的可信性。
5.2 可信构件
一个可信构件是由一个或一组可完成可信根实例化的部件组成。
5.3 可信计算基
可信计算基(TCB)是负责维持系统安全策略的系统软硬件资源。TCB 的一个重要属性是它应防
止自身被任何不属于 TCB 的硬件或软件所破坏。
5.4 可信边界
可信构件(TBB)和可信根组成了可信边界,在其中包括了对计算机的最小配置进行完整性度量、
存储和报告的实体。在更复杂的系统里,应基于可信度量根核(CRTM),对其他代码进行可信度量,并
且在平台配置寄存器(PCR)记录度量结果,将信任扩展到其他代码。
5.5 可信传递
可信传递是基于可信根逐个对被度量的模块进行可信度量并扩展信任链的过程。
可信传递应通过 TCM 支持以下两种方法之一来实现:
a) 按照安全策略执行的一个操作,以允许后续的操作应获得 TCB 的控制权;
b) 对于后续操作的度量,建立独立评估的信任关系。
5.6 可信授权
当可信度量根(RTM)开始执行可信度量根核(CRTM)时,由可信构件的生产者来保证其正确性。
当该系统执行可信度量根核之外的代码时,该信任链可通过对该代码进行可信度量的方式来进行
维护。如果代码的执行取决于它的可信度量,则该代码的执行授权将仍然保持不变。
以下是两种允许评估平台的信任权限的不同方法。
a) 对代码进行度量(杂凑计算),并将度量值记录在可信存储根(RTS)中。如果代码运行时不考
虑其度量值,则其信任授权来自于可信报告根(RTR)提供的摘要值。
b) 对代码进行签名,通过验证签名判断该代码是否可信。如果其身份被记录在 RTS 中,那么这
个评估可被修改。
6 可信计算密码支撑平台功能
6.1 平台体系结构
6.1.1 平台功能与密码算法的关系
密码与平台功能的支撑关系见图 1。
图 1 密码算法对平台功能的支撑关系图
平台的算法模块提供密码算法功能,支持和实现平台的完整性、平台身份可信及平台数据安全
保护。
a) 平台完整性:利用密码机制,通过对系统平台组件的完整性度量,获取系统平台完整性信息,
并向外部实体可信地报告平台完整性。
b) 平台身份可信:利用密码机制,标识系统平台身份,实现系统平台身份管理功能,并向外部实
体提供系统平台身份证明。
c) 平台数据安全保护:利用密码机制,保护系统平台敏感数据。其中数据安全保护包括平台自
身敏感数据的保护和用户敏感数据的保护。另外也可为用户数据保护提供服务接口。
6.1.2 平台组成结构
可信计算密码支撑平台的技术结构如图 2 所示。
注: 图 2中TCM服务模块和应用软件以灰色图绘制,表示非本文件重点内容。
图 2 可信密码支撑平台技术结构
可信计算密码支撑平台以可信密码模块为可信根,通过如下三类机制及平台自身安全管理功能,
实现平台安全功能:
a) 以可信度量根为起点,计算系统平台完整性度量值,建立计算机系统平台信任链,确保系统平
台可信;
b) 可信报告根标识平台身份的可信,可信报告根基于报告根凭证派生,报告根凭证具有唯一性,
以可信报告根为基础,实现平台身份证明和完整性报告;
c) 基于可信存储根,实现密钥管理、平台数据安全保护功能,提供相应的密码服务。
6.1.3 可信密码模块
可信密码模块定义了一个具有存储保护和执行保护的子系统,该子系统将为计算平台建立可信根
基,并且其独立的计算资源将建立严格隔离的安全保护机制。TCM 是一个系统组件,它的状态独立于
该系统并向其报告。TCM 和系统之间的唯一交互是通过本文件中定义的接口进行的。
6.1.4 TCM服务模块
可信密码模块定义了一个具有存储保护和执行保护的子系统,该子系统将为计算平台建立信任根
基,并且其独立的计算资源将建立严格隔离的安全保护机制。应将子系统中需执行保护的功能与无需
执行保护的功能划分开,应由计算平台主处理器执行无需执行保护的功能,而这些支持功能构成了
TCM 服务模块。
注: 本文件只说明 TCM 服务的功能原理,不涉及 TCM 服务模块接口规范,TCM 服务模块接口规范见
GM/T 0058。
TCM 服务主要为用户使用 TCM 基础资源提供支持,由多个部分组成,每个部分间的接口定义应
具有互操作性。TCM 服务应提供规范化的函数接口。
TCM 服务的设计目标如下:
a) 为应用程序调用 TCM 安全保护功能提供入口点;
b) 提供对 TCM 的同步访问;
c) 向应用程序隐藏 TCM 功能命令的复杂度;
d) 管理 TCM 资源。
6.2 平台接口功能
6.2.1 可信根
可信根是可信计算机的可信基点,也是实施安全控制的基点。可信根提供了描述平台可信度的特
征所需的......
|