GM/T 0011-2023 可信计算 可信密码支撑平台功能与接口规范

GM/T 0011-2023 Trusted computing—Trusted computing functionality and interface specification of cryptographic support platform

行业标准-密码 中文简体 现行 页数:165页 | 格式:PDF

基本信息

标准号
GM/T 0011-2023
相关服务
标准类型
行业标准-密码
标准状态
现行
中国标准分类号(CCS)
国际标准分类号(ICS)
-
发布日期
2023-12-04
实施日期
2024-06-01
发布单位/组织
国家密码管理局
归口单位
密码行业标准化技术委员会
适用范围
本文件给出可信计算密码支撑平台的体系框架和功能原理,规定了可信密码模块的接口规范,描述了对应的证实方法。本文件适用于可信计算密码支撑平台相关产品的研制、生产、测评与应用开发。

研制信息

起草单位:
国民技术股份有限公司、中国科学院软件研究所、北京信息科技大学、联想(北京)有限公司、中国电子技术标准化研究院、武汉大学、北京大学、北京奇虎科技有限公司、大唐高鸿信安(浙江)信息科技有限公司、中电科技(北京)有限公司、神州网信技术有限公司、浪潮电子信息产业股份有限公司、兴唐通信科技有限公司、阿里云计算有限公司、深圳数字电视国家工程实验室股份有限公司、国家计算机网络与信息安全管理中心、公安部第三研究所、国民认证科技(北京)有限公司、北京蚂蚁云金融信息服务有限公司、华为技术有限公司、郑州迪维勒普科技有限公司、北京卓识网安技术股份有限公司、同方股份有限公司、长春吉大正元信息技术股份有限公司、联想(北京)信息技术有限公司、新华三技术有限公司、中电科网络安全科技股份有限公司、无锡江南信息安全工程技术中心、中国人民解放军国防科学技术大学
起草人:
秦宇、刘鑫、付月朋、刘大遒、吴秋新、韦卫、李汝鑫、张严、王惠莅、孙彦、王娟、严飞、沈晴霓、张晓磊、张屹、郑驰、张佳建、陈小春、孙亮、王强、杨尚欣、吴保锡、白欣璐、王悦、付颖芳、肖鹏、李新国、岳志军、王晖、陶源、柴海新、李俊、初晓博、张小虎、张梦良、许东阳、刘韧、刘锋、姚金龙、吴会军、杜克宏、卢卫疆、冯伟、李为、张立强、余发江、赵波、李业旺、秦文杰、罗武
出版信息:
页数:165页 | 字数:308 千字 | 开本: 大16开

内容描述

ICS35.030

CCSL80

中华人民共和国密码行业标准

GM/T0011—2023

代替GM/T0011—2012

可信计算

可信密码支撑平台功能与接口规范

Trustedcomputing—Trustedcomputingfunctionalityandinterface

specificationofcryptographicsupportplatform

2023⁃12⁃04发布2024⁃06⁃01实施

国家密码管理局发布

GM/T0011—2023

目次

前言··························································································································Ⅲ

引言··························································································································Ⅴ

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.21NV操作命令···································································································64

GM/T0011—2023

8可信密码模块证实方法·····························································································73

8.1概述················································································································73

8.2符合性实现原理说明···························································································73

附录A(规范性)数据结构···························································································76

附录B(资料性)可信密码模块证实实例········································································134

附录C(资料性)与参考标准章条编号对照情况·······························································152

附录D(资料性)典型应用中接口依赖关系示例······························································154

参考文献··················································································································159

GM/T0011—2023

前言

本文件按照GB/T1.1—2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规

定起草。

本文件代替GM/T0011—2012《可信计算可信密码支撑平台功能与接口规范》,与GM/T0011—

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),定义了命令码、返回码、常量和数据结构。

请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。

本文件由密码行业标准化技术委员会提出并归口。

本文件起草单位:国民技术股份有限公司、中国科学院软件研究所、北京信息科技大学、联想(北

京)有限公司、中国电子技术标准化研究院、武汉大学、北京大学、北京奇虎科技有限公司、大唐高鸿信

安(浙江)信息科技有限公司、中电科技(北京)有限公司、神州网信技术有限公司、浪潮电子信息产业股

份有限公司、兴唐通信科技有限公司、阿里云计算有限公司、深圳数字电视国家工程实验室股份有限公

司、国家计算机网络与信息安全管理中心、公安部第三研究所、国民认证科技(北京)有限公司、北京蚂

蚁云金融信息服务有限公司、华为技术有限公司、郑州迪维勒普科技有限公司、北京卓识网安技术股份

有限公司、同方股份有限公司、长春吉大正元信息技术股份有限公司、联想(北京)信息技术有限公司、

新华三技术有限公司、中电科网络安全科技股份有限公司、无锡江南信息安全工程技术中心、中国人民

解放军国防科学技术大学。

本文件主要起草人:秦宇、刘鑫、付月朋、刘大遒、吴秋新、韦卫、李汝鑫、张严、王惠莅、孙彦、王娟、

严飞、沈晴霓、张晓磊、张屹、郑驰、张佳建、陈小春、孙亮、王强、杨尚欣、吴保锡、白欣璐、王悦、付颖芳、

GM/T0011—2023

肖鹏、李新国、岳志军、王晖、陶源、柴海新、李俊、初晓博、张小虎、张梦良、许东阳、刘韧、刘锋、姚金龙、

吴会军、杜克宏、卢卫疆、冯伟、李为、张立强、余发江、赵波、李业旺、秦文杰、罗武。

本文件及所代替文件的历次版本发布情况为:

——2012年首次发布GM/T0011—2012;

——本次为第一次修订。

GM/T0011—2023

引言

为满足可信计算产业不断发展的新需求,本文件以密码算法应用为核心,以可信计算技术应用需

求为基础,描述了可信计算密码支撑平台的功能,参考了我国密码算法在国际上可信计算标准中的采

纳情况及我国可信计算技术、国际上可信计算技术的应用成果,定义了可信计算密码支撑平台接口形

式。本文件符合不同应用场景下可信计算密码支撑平台设计需求,兼容各种硬件平台、宿主机软件系

统、应用系统,确保产业界产品的统一性和兼容性,用于指导我国可信计算相关产品开发和应用。

GM/T0011—2023

可信计算

可信密码支撑平台功能与接口规范

1范围

本文件给出可信计算密码支撑平台的体系框架和功能原理,规定了可信密码模块的接口规范,描

述了对应的证实方法。

本文件适用于可信计算密码支撑平台相关产品的研制、生产、测评与应用开发。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文

件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于

本文件。

GB/T20518信息安全技术公钥基础设施数字证书格式

GB/T25069信息安全技术术语

GB/T32905信息安全技术SM3密码杂凑算法

GB/T32907信息安全技术SM4分组密码算法

GB/T32915信息安全技术二元序列随机性检测方法

GB/T32918.2信息安全技术SM2椭圆曲线公钥密码算法第2部分:数字签名算法

GB/T32918.3信息安全技术SM2椭圆曲线公钥密码算法第3部分:密钥交换协议

GB/T32918.4信息安全技术SM2椭圆曲线公钥密码算法第4部分:公钥加密算法

GB/T35276信息安全技术SM2密码算法使用规范

GM/T0012可信计算可信密码模块接口规范

GM/T0058可信计算TCM服务模块接口规范

GM/Z4001密码术语

3术语和定义

GB/T25069和GM/Z4001界定的以及下列术语和定义适用于本文件。

3.1

存储主密钥storagemasterkey

用于保护操作系统密钥和用户密钥的主密钥。

3.2

可信计算平台trustedcomputingplatform

构建在计算系统中,用于实现可信计算功能的支撑系统。

3.3

可信计算密码支撑平台cryptographicsupportplatformfortrustedcomputing

可信计算平台的重要组成部分,包括密码算法、密钥管理、证书管理、密码协议、密码服务内容,为

可信计算平台自身的完整性、身份真实性和数据保密性提供密码支持。

1

GM/T0011—2023

3.4

可信度量根rootoftrustformeasurement

一个可信的完整性度量单元,是可信计算平台内进行可信度量的基础。

注:可信度量根由硬件、固件、软件等方式实现或组合构成。

3.5

可信存储根rootoftrustforstorage

存储主密钥,是可信计算平台内进行可信存储的基础。

3.6

可信报告根rootoftrustforreporting

可信计算密码模块密钥,是可信计算平台内进行可信报告的基础。

3.7

可信密码模块trustedcryptographymodule

可信计算平台中,提供密码运算功能,具有受保护存储空间的密码模块。

3.8

TCM服务模块TCMservicemodule

可信计算密码支撑平台外部的软件模块,提供访问可信密码模块的软件服务接口。

3.9

背书密钥endorsementkey

可信密码模块中的一个非对称密钥,不可以迁移,生成于平台的生产过程,代表着每个平台的

身份。

3.10

平台配置寄存器platformconfigurationregister

可信密码模块内部用于存储平台完整性度量值的存储单元。

3.11

完整性度量integritymeasurement

采用密码杂凑算法对被度量对象计算其杂凑值的过程。

3.12

完整性度量值integritymeasurementvalue

组件被度量后得到的杂凑值。

3.13

信任链trustedchain

在计算系统启动和运行过程中,使用完整性度量方法在组件之间所建立的信任传递关系。

3.14

授权值authenticationvalue

用于访问授权的八比特的字节字符串,用作口令或者派生出一个用于HMAC计算的密钥。

[来源:ISO/IEC11889⁃1:2015,3.2]

3.15

授权策略authenticationpolicy

执行策略命令所生成的、并用于访问授权的杂凑值。

[来源:ISO/IEC11889⁃1:2015,3.3]

3.16

上下文context

提供有关数据对象访问信息的数据集合,用来将数据对象与同一类型的其他数据区分开、或将数

2

GM/T0011—2023

据对象的不同版本区分开。

[来源:ISO/IEC11889⁃1:2015,3.9]

3.17

背书授权endorsementauthorization

使用背书认证或者背书策略完成的授权。

[来源:ISO/IEC11889⁃1:2015,3.20]

3.18

平台固件platformfirmware

系统引导和平台初始化操作所需的代码,由平台制造商添加到平台中。

注:通常但不完全特指BIOS或UEFI代码。

[来源:ISO/IEC11889⁃1:2015,3.48]

3.19

主密钥primarykey

从与内部层次结构关联的主种子创建的主密钥。

[来源:ISO/IEC11889⁃1:2015,3.49]

3.20

主对象primaryobject

主密钥或具有敏感区域的数据区,该数据区使用从对象的公共区域和主种子创建的对称密钥

加密。

[来源:ISO/IEC11889⁃1:2015,3.50]

3.21

主种子primaryseed

包含在从中派生主密钥和主对象的TCM中的大随机值。

[来源:ISO/IEC11889⁃1:2015,3.52]

3.22

可信根rootoftrust

始终以预期方式运行的单元。是系统的可信基点,也是实施安全控制的基点。

注:完整的可信根集至少具有一组最小的功能,以便能够描述影响平台可信度量的平台特性。

[来源:ISO/IEC11889⁃1:2015,3.59,有修改]

3.23

存储密钥storagekey

用于保护存储在TCM外部对象的子密钥。

[来源:ISO/IEC11889⁃1:2015,3.72,有修改]

4缩略语

下列缩略语适用于本文件。

AK:证明密钥(AttestationKey)

CRTM:可信度量根核(CoreRootofTrustforMeasurement)

DRTM:动态可信度量根(DynamicRootofTrustMeasurement)

ECDH:基于椭圆曲线的密钥交换(EllipticCurveDiffie⁃Hellman)

EK:背书密钥(EndorsementKey)

EPS:背书密钥主种子(EndorsementPrimarySeed)

3

GM/T0011—2023

GPIO:通用输入输出(GeneralPurposeI/O)

HMAC:采用带密钥杂凑的消息鉴别码(Keyed⁃hashMessageAuthenticationCode)

IPL:初始化程序加载器(InitialProgramLoader)

KDF:密钥导出函数(KeyDerivationFunction)

MBR:主引导分区(MasterBootRecord)

NV:非易失性(Non-Volatility)

PCR:平台配置寄存器(PlatformConfigurationRegister)

PP:物理存在(PhysicalPresence)

PPS:平台主种子(PlatformPrimarySeed)

RNG:随机数发生器(RandomNumeralGenerator)

RTM:可信度量根(RootofTrustforMeasurement)

RTR:可信报告根(RootofTrustforReporting)

RTS:可信存储根(RootofTrustforStorage)

SPS:存储主种子(StoragePrimarySeed)

SMK:存储主密钥(StorageMasterKey)

SRTM:静态可信度量根(StaticRootofTrustMeasurement)

TBB:可信构件(TrustedBuildingBlock)

TCB:可信计算基(TrustedComputingBase)

TCM:可信密码模块(TrustedCryptographyModule)

TSM:TCM服务模块(TCMServiceModule)

UEFI:统一可扩展固件接口(UnifiedExtensibleFirmwareInterface)

5可信计算密码支撑平台概述

5.1可信计算

可信计算是一种旨在增强计算机系统可信性的综合性信息安全技术。可信技术在计算机系统中,

建立一个可信根,从可信根开始到硬件平台、到操作系统、再到应用,逐级度量,逐级认证,逐级信任,把

这种信任扩展到整个计算机系统,并采取防护措施,确保计算资源的完整性和计算行为的可预期性,从

而提高计算机系统的可信性。

5.2可信构件

一个可信构件是由一个或一组可完成可信根实例化的部件组成。

5.3可信计算基

可信计算基(TCB)是负责维持系统安全策略的系统软硬件资源。TCB的一个重要属性是它应防

止自身被任何不属于TCB的硬件或软件所破坏。

5.4可信边界

可信构件(TBB)和可信根组成了可信边界,在其中包括了对计算机的最小配置进行完整性度量、

存储和报告的实体。在更复杂的系统里,应基于可信度量根核(CRTM),对其他代码进行可信度量,并

且在平台配置寄存器(PCR)记录度量结果,将信任扩展到其他代码。

4

GM/T0011—2023

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)平台身份可信:利用密码机制,标识系统平台身份,实现系统平台身份管理功能,并向外部实

体提供系统平台身份证明。

5

GM/T0011—2023

c)平台数据安全保护:利用密码机制,保护系统平台敏感数据。其中数据安全保护包括平台自

身敏感数据的保护和用户敏感数据的保护。另外也可为用户数据保护提供服务接口。

6.1.2平台组成结构

可信计算密码支撑平台的技术结构如图2所示。

注:图2中TCM服务模块和应用软件以灰色图绘制,表示非本文件重点内容。

图2可信密码支撑平台技术结构

可信计算密码支撑平台以可信密码模块为可信根,通过如下三类机制及平台自身安全管理功能,

实现平台安全功能:

a)以可信度量根为起点,计算系统平台完整性度量值,建立计算机系统平台信任链,确保系统平

台可信;

b)可信报告根标识平台身份的可信,可信报告根基于报告根凭证派生,报告根凭证具有唯一性,

以可信报告根为基础,实现平台身份证明和完整性报告;

c)基于可信存储根,实现密钥管理、平台数据安全保护功能,提供相应的密码服务。

6.1.3可信密码模块

可信密码模块定义了一个具有存储保护和执行保护的子系统,该子系统将为计算平台建立可信根

基,并且其独立的计算资源将建立严格隔离的安全保护机制。TCM是一个系统组件,它的状态独立于

该系统并向其报告。TCM和系统之间的唯一交互是通过本文件中定义的接口进行的。

6.1.4TCM服务模块

可信密码模块定义了一个具有存储保护和执行保护的子系统,该子系统将为计算平台建立信任根

基,并且其独立的计算资源将建立严格隔离的安全保护机制。应将子系统中需执行保护的功能与无需

执行保护的功能划分开,应由计算平台主处理器执行无需执行保护的功能,而这些支持功能构成了

TCM服务模块。

6

GM/T0011—2023

注:本文件只说明TCM服务的功能原理,不涉及TCM服务模块接口规范,TCM服务模块接口规范见

GM/T0058。

TCM服务主要为用户使用TCM基础资源提供支持,由多个部分组成,每个部分间的接口定义应

具有互操作性。TCM服务应提供规范化的函数接口。

TCM服务的设计目标如下:

a)为应用程序调用TCM安全保护功能提供入口点;

b)提供对TCM的同步访问;

c)向应用程序隐藏TCM功能命令的复杂度;

d)管理TCM资源。

6.2平台接口功能

6.2.1可信根

可信根是可信计算机的可信基点,也是实施安全控制的基点。可信根提供了描述平台可信度的特

征所需的最小功能。

可信计算密码支撑平台中有三个可信根:可信度量根(RTM)、可信存储根(RTS)和可信报告根

(RTR)。

a)RTM是对平台进行可信度量的基点。RTM将完整性信息发送给RTS。当一条新的信任链

建立时,第一组被执行的指令就是可信度量根核(CRTM)。当系统复位时,CPU开始执行

CRTM。然后,CRTM向RTS发送表明其身份的度量值。这样就建立了信任链的起点。

b)RTS是对可信度量值进行安全存储的基点。TCM内部存储不能被外部实体非授权访问,

TCM可作为RTS。TCM可阻止对敏感信息的非授权访问,TCM也可存储一些不敏感的

信息。

c)RTR是平台向访问客体提供平台可信性状态报告的基点。RTR是对于RTS内容进行报

告,RTR报告是TCM内选择内容签名后的报告。

TCM包含了RTR可验证的加密标识。这个标识采用背书密钥或背书证书的形式表现,背书密

钥生成的种子与每个芯片绑定,因此两个TCM不会具有相同的背书密钥。

可信计算平台至少提供上述描述RTM、RTS和RTR三个可信根。这三个根都使用认证和证明

来提供信息的证据。可信计算平台还将为受托的密钥和数据对象提供受保护的存储。可信计算平台

可提供完整性度量以确保平台的可信。

6.2.2证明和认证

证明方式

.1分类

可信计算平台提供以下证明方式。

a)第一类,外部实体对TCM进行证明,TCM应符合本文件。这种证明依据TCM中的背书

密钥。

b)第二类,外部实体对平台进行认证,以确保平台包含RTM、真实的TCM。

c)第三类,“认证CA”对TCM中的非对称密钥对进行证明,以确保密钥受到TCM的保护,并

且具有特定的自身属性。这种证明采用证书的形式,为包括密钥对的公钥在内的信息提供

担保。

d)第四类,可信计算平台对非对称密钥对进行证明,以保证密钥对受到TCM保护,并且具有特

7

GM/T0011—2023

定的自身属性。该认证方式采用在平台的TCM对描述密钥对的信息签名的形式,使用

TCM保护的认证密钥,以及为该认证密钥提供担保的类型认证。

e)第五类,可信计算平台对度量进行证明,以保证平台中存在特定的软件/固件状态。这种证明

方式使用TCM保护的认证密钥对PCR中的软件/固件测量值进行签名的形式认证。

f)第六类,外部实体对软件/固件测量进行证明。这种认证采用凭证的形式,为测量值和状态在

内的信息提供签名。

.2证明密钥和证明密钥身份证书

上述第三类和第四类的认证要求使用密钥对TCM屏蔽位置的内容进行签名。

a)证明密钥(AK)即平台身份密钥。AK是一种特殊类型的签名密钥,其使用受到限制,以防止

伪造(外部数据的签名具有与真实认证数据相同的格式)。当TCM要创建

定制服务

    推荐标准