主页 购物车 询价 关于我们
www.GB-GBT.com
收录标准: 221972 (2026-04-19) 搜索
路径: 主页 > MISC > 第118页 > GM/T 0110-2021

[PDF] GM/T 0110-2021 - 英文版

标准搜索结果: 'GM/T 0110-2021'
标准号码美元购买PDF工期标准名称(英文版)
GM/T 0110-2021 2705 GM/T 0110-2021 9秒内发货PDF 密钥管理互操作协议规范
基本信息
标准编号 GM/T 0110-2021 (GM/T0110-2021)
中文名称 密钥管理互操作协议规范
英文名称 Key management interoperability protocol specification
行业 Chinese Industry Standard (推荐)
中标分类 L80
字数估计 159,159
发布日期 2021-10-18
实施日期 2022-05-01
发布机构 国家密码管理局

GM/T 0110-2021: 密钥管理互操作协议规范 ICS 35.030 CCSL80 中华人民共和国密码行业标准 密钥管理互操作协议规范 2021-10-18发布 2022-05-01实施 国家密码管理局 发 布 目次 前言 Ⅰ 引言 Ⅱ 1 范围 1 2 规范性引用文件 1 3 术语和定义 1 4 缩略语 2 5 概述 3 6 密钥管理互操作协议 3 6.1 协议模型 3 6.2 对象 4 6.3 属性 17 6.4 操作 50 6.5 消息 81 7 安全要求 116 7.1 密码算法 116 7.2 密钥生成 117 7.3 存储安全 117 7.4 传输安全 117 7.5 身份认证 117 7.6 访问控制 117 附录A(资料性) 标准应用示例 118 附录B(规范性) TTLV编码 120 附录C(规范性) 错误处理 123 附录D(资料性) 配置文件示例 140 参考文献 142 索引 146 前言 本文件按照GB/T 1.1-2020《标准化工作导则 第1部分:标准化文件的结构和起草规则》的规定 起草。 本文件由密码行业标准化技术委员会提出并归口。 本文件起草单位:三未信安科技股份有限公司、北京数字认证股份有限公司、北京信安世纪科技股 份有限公司、上海众人网络安全技术有限公司、中金金融认证中心有限公司、兴唐通信科技有限公司、成 都卫士通信息产业股份有限公司、北京赛博兴安科技有限公司、北京融通高科科技发展有限公司、北京 数码视讯科技股份有限公司、北京江南天安科技有限公司、北京宏思电子技术有限责任公司、北京智芯 微电子科技有限公司、数安时代科技股份有限公司、格尔软件股份有限公司、山东大学、中国移动通信集 团设计院有限公司、暨南大学。 本文件主要起草人:高志权、董坤朋、鹿淑煜、刘晓东、李向锋、汪宗斌、李坤、刘海涛、姜晓新、成明、 韩浩、王亚伟、张向辉、马晓艳、王妮娜、罗俊、张旭、张妍、张钊、张永强、谭武征、张高山。 引 言 在密码系统中,密钥的生成、使用和管理至关重要,密钥的安全是密码系统安全的基础。密钥管理 是指根据安全策略,对密钥的产生、分发、存储、更新、归档、撤销、备份、恢复和销毁等密钥全生命周期的 管理。在密码应用方案中,应用服务器、数据库系统、云计算平台、大数据平台等多种环境中需要对数据 进行加密保护,都需要使用密钥管理系统对数据加密密钥等密钥的全生命周期进行安全管理,亟需定义 统一的密钥管理接口规范。 本文件目标是为密码应用系统和密钥管理系统之间通信制定统一的密钥管理协议。通过该密钥管 理协议,解决需要使用密钥的应用系统与生成和管理这些密钥的密钥管理系统之间的通信标准化问题。 本文件制定的密钥管理协议为密钥管理系统的开发、使用及检测提供依据和指导,有利于提高密钥 管理系统的产品化和规范化。 密钥管理互操作协议规范 1 范围 本文件规定了密钥客户端和密钥管理服务端之间通信的密钥管理协议,通过该协议完成密钥管理 服务端中对象的生成、存储和状态转换等操作,并规定了协议应用的安全要求。 不涉及密钥管理服务端的内部逻辑结构和安全性设计,也不涉及密钥客户端的业务逻辑。 2 规范性引用文件 下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文 件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于 本文件。 GB/T 15852.1 信息技术 安全技术 消息鉴别码 第1部分:采用分组密码的机制 GB/T 32905 信息安全技术SM3密码杂凑算法 GB/T 32907 信息安全技术SM4分组密码算法 GB/T 32918(所有部分) 信息安全技术SM2椭圆曲线公钥密码算法 GB/T 35276 信息安全技术SM2密码算法使用规范 GM/T 0024 SSLVPN技术规范 GM/Z4001 密码术语 3 术语和定义 GM/Z4001界定的以及下列术语和定义适用于本文件。 3.1 归档 archive 将不会被频繁访问的信息放进长期存储区。 3.2 授权 authorization 授予实体的访问权限;表达了对执行某项安全功能或活动的“正式”许可。 3.3 失信 compromise 未经授权泄露、篡改、替换或使用敏感数据(例如密钥材料和与安全相关的其他信息)。 3.4 消息摘要 messagedigest 消息经过密码杂凑运算得到的结果。 3.5 一种对密钥进行加密、MAC/签名或加密与 MAC/签名都执行的一种方法。 3.6 配置文件 profile 对对象、属性、操作、消息元素和认证方法的一种规范说明,这些对象、属性、操作、消息元素和认证 方法将用于特定背景下的密钥管理服务与客户端之间的互动。 3.7 恢复 recover 复原已被存档长期保存的信息。 3.8 拆分密钥 splitkey 使用秘密共享技术把一个密钥拆分成n个密钥分量的过程,其中每个密钥分量都不能单独推算出 原密钥,而组合到一起可以重建出原密钥。如果需要k个密钥分量(k≤n)才能重建原密钥,那么若只 知道k-1个密钥分量,无法获取原密钥的密钥信息。 3.9 添加变量 salt 作为单向或加密函数的二次输入而加入的随机变量,可用于导出口令验证数据。 3.10 密钥派生 keyderivation 使用伪随机函数从主密钥、口令或密码短语的秘密值导出一个或多个秘密密钥。可用于将密钥扩 展为更长的密钥或获得所需格式的密钥。 3.11 基于XEX(XOR-ENCRYPT-XOR)的密文挪用算法的可调整的密码本模式,该加密模式主要用于 以数据单元(包括扇区、逻辑磁盘块等)为基础结构的存储设备中静止状态数据的加密。 3.12 被管理对象 managedobject 密钥管理服务端管理的对象,包括对称密钥、非对称密钥、证书、秘密数据、不透明对象等。 4 缩略语 下列缩略语适用于本文件。 CTR:计数器(Counter) DNS:域名系统(DomainNameSystem) IP:互联网协议(InternetProtocol) TTLV:标签,类型,长度,值(tag,type,length,value) 5 概述 本文件旨在定义一套密钥客户端和密钥管理服务端之间的通信协议规范,通过该协议可以完成密 钥管理服务端中对象的创建、存储、使用和销毁等操作。这些对象在本文件中统称被管理对象。本文件 中被管理对象包括对称密钥、非对称密钥、数字证书等。被管理对象具有一系列属性,属性信息存储在 密钥管理服务中,通过密钥管理服务可以对这些属性进行添加、修改或删除操作。密钥管理服务端可以 支持的对象管理操作包括生成加密密钥、导入密码对象、查询对象、获取对象以及销毁对象等。标准应 用示例和主要应用场景详见附录A。 6 密钥管理互操作协议 6.1 协议模型 密钥管理互操作协议的交互模型如图1所示。 图1 密钥管理互操作协议交互模型 如图1所示,客户端向密钥管理服务端发送请求消息,请求消息中应包含用于进行客户端身份认 证、操作标识、操作参数等信息。密钥管理服务端按照请求消息进行相应操作并将操作结果作为响应消 息返回给客户端。响应消息中包含结果状态和结果数据。本文件描述的协议具备以下特性: a) 消息与消息之间是无关的,实现者无须维持消息相关状态。具体消息的数据格式和编解码见 6.5。 b) 消息中可以包含单个操作请求或响应,也可包含多个操作请求或响应。 c) 消息可以为同步消息或异步消息。消息的形式与具体操作和实现有关。 d) 根据操作的不同或操作目标对象的不同,可以分为: 1) 无须认证直接操作,例如对公共对象的查询等操作; 2) 需要进行认证方可操作,例如对私有对象的创建、获取等。 6.2 对象 6.2.1 对象类型 以下小节描述客户端和密钥管理服务端之间传递的对象。 被管理对象是密钥管理操作(见6.4)的对象。被管理对象包括密码对象(包含密钥材料的对象,例 如证书、密钥和秘密数据)和非密码对象(例如不透明对象)。 有些对象类型只用于协议本身,不作为被管理对象,称为基础对象。 对象描述中引用到的原始数据类型包括: ---整数(Integer); ---长整数(LongInteger); ---大整数(BigInteger); ---枚举(Enumeration),从预定义的数值表中选择; ---布尔(Boolean),True为真,False为假; ---文本串(TextString),可读的文本字符串; ---字节串(ByteString),未编码的字节值序列; ---日期-时间(Date-Time),日期和时间,单位为秒; ---间隔(Interval),以秒为单位的时间长度; ---结构(Structures),由原始数据类型或子结构的有序列表组成。 6.2.2 基础对象 6.2.2.1 属性 属性对象是用于发送和接收被管理对象属性的结构,如表1所示。属性名是用来标识属性的文本 串。属性索引是由密钥管理服务分配的索引号。属性索引用于标识特定的实例。属性索引从0开始。 在添加或删除其他实例时,属性的属性索引不应更改。单实例属性(对象只有一个实例的属性)应该具 有属性索引为0的属性。根据属性不同,属性值可以是原始数据类型,也可以是结构化对象。 当属性结构用于指定或返回属性的特定实例,且在未指定属性索引的情况下,应假定为0。 表1 属性对象结构 对象 编码 是否必需 属性 结构 属性名称 文本串 是,具体属性及说明见6.3 属性索引 整型 否 属性值 各不相同,取决于属性(参考6.3) 是,通知操作除外(见6.4.2.2) 6.2.2.2 凭证 凭证是一个用于识别客户端的结构,如表2所示。凭证(例如用户名和口令、令牌等)并不由密钥管 理服务端管理,它主要用于认证客户端。 表2 凭证对象结构 对象 编码 是否必需 凭证 结构 凭证类型 枚举型,见6.5.3.2.1凭证类型枚举 是 凭证值 各不相同,取决于凭证类型 是 如果凭证中的凭证类型是用户名和口令,则凭证值的结构,如表3所示。用户名字段标识客户端, 口令字段对客户端进行认证。 表3 用户名和口令凭证的凭证值结构 对象 编码 是否必需 凭证值 结构 用户名 文本串 是 口令 文本串 否 如果凭证中的凭证类型是设备,则凭证值的结构,如表4所示。设备序列号、网络标识符、机器标识 符和媒介标识符的组合是唯一的。服务端实现可以执行针对单个字段的唯一性策略。还可以使用共享 密码对客户端进行认证。客户应至少提供一个字段。 表4 设备凭证的凭证值结构 对象 编码 是否必需 凭证值 结构 设备序列号 文本串 否 密码 文本串 否 设备标识 文本串 否 网络标识 文本串 否 机器标识 文本串 否 媒介标识 文本串 否 如果凭证中的凭证类型为认证,则凭证值结构如表5所示。随机值的取值从随机值对象的密钥管 理服务端中获得。如果服务端不能从客户端验证认证数据,则认证凭证对象可以包含来自客户端的度 量或第三方的声明。任何类型的认证数据(认证度量或认证声明)对于服务端都不是必需的,但客户应 在认证度量或认证声明字段中提供认证数据。 表5 认证凭证的凭证值结构 对象 编码 是否必需 凭证值 结构 随机值 结构,见6.2.2.14随机值 是 表5 认证凭证的凭证值结构 (续) 对象 编码 是否必需 认证类型 枚举,见6.5.3.2.36认证类型枚举 是 认证度量 字节串 否 认证声明 字节串 否 6.2.2.3 密钥块 密钥块对象结构,如表6所示。用于封装与密钥密切相关的所有信息。它包含的密钥值有以下格 式类型: ---Raw,只包含加密密钥材料的密钥,编码为一个字节串; ---Opaque,编码密钥,其编码对密钥管理服务端来说是未知的,它被编码为一个字节串; ---PKCS1,编码私钥,表示为DER-encodedASN.1PKCS#1对象; ---PKCS8,编码私钥,表示为DER-encodedASN.1PKCS#8对象,支持RSAPrivateKey语法和 EncryptedPrivateKey; ---X.509,编码的对象,表示为DER-encodedASN.1X.509对象; ---SM2PrivateKey,编码的SM2私钥,格式符合GB/T 35276; ---透明密钥类型,指定算法结构,其中包含了各种密钥类型的定义值,如6.2.2.7; ---Extensions,这些是特定于供应商的扩展,允许用于专有或遗留的密钥格式。 密钥块可能包含密钥压缩类型,后者表示椭圆曲线公钥的格式。默认情况下,公钥是未压缩的。 密钥块还包含密钥值字段范围内的密钥加密算法和加密长度。 如果密钥值字段内的密钥已经封装(即加密、MAC/签名,或两者都有),密钥块应包含密钥封装数 据结构。 表6 密钥块对象结构 对象 编码 是否必需 密钥块 结构 密钥格式类型 枚举,见6.5.3.2.3 是 密钥压缩类型 枚举,见6.5.3.2.2 否 密钥值 字节串:封装的密钥值; 结构:明文密钥值,见6.2.2.4 加密算法 枚举,见6.5.3.2.13 是。只有当可从密钥值中获取此信息时, 才可 以 省 略。不 适 用 于 秘 密 数 据 (见 6.2.3.6)或不透明对象(见6.2.3.7)。如显 示,加密长度也应显示 加密长度 整型 是。只有当可从密钥值中获取此信息时, 才可 以 省 略。不 适 用 于 机 密 数 据 (见 6.2.3.6)或不透明对象(见6.2.3.7)。如显 示,加密算法也应显示 密钥封装数据 结构,见6.2.2.5 否。只有密钥封装是显示 6.2.2.4 密钥值 密钥值只在密钥块中使用,并且是字节串或结构,如表7所示。 ---密钥值结构包含密钥材料,无论是字节串、透明的密钥结构(见6.2.2.7),还是与密钥材料相关 联并封装的可选属性信息。这个属性信息不同于被管理对象的相关属性,因为它被密封在(可 能是封装)密钥材料本身,并且可通过获取属性操作获得。 ---密钥值字节串是封装的TTLV编码(见附录B)的密钥值结构,或是字节串密钥材料字段的未 编码的值。 表7 密钥值对象结构 对象 编码 是否必需 密钥值 结构 密钥材料 字节串:原始的、不透明的、PKCS1、PKCS8、 ECPrivateKey或扩展密钥格式类型; 结构:透明、拓展密钥格式类型 属性 属性对象,见6.2.2.1 否。可能重复 6.2.2.5 密钥封装数据 密钥封装数据结构,如表8所示。只用于密钥块内部,密钥块还可以提供关于用于封装密钥值的加 密密钥封装机制的可选信息。 表8 密钥封装数据对象结构 对象 编码 是否必需 密钥封装数据 结构 封装方法 枚举,见6.5.3.2.4 是 加密密钥信息 结构,见下文 否。对应用于加密密钥值的密钥 MAC/签名密钥信息 结构,见下文 否。对应的对称密钥用于 MAC密钥值, 或私钥用于签名密钥值 MAC/签名 字节串 否 IV/计数器/随机值 字节串 否 编码选项 枚举,见6.5.3.2.32 否。指定编码密钥值字节串。如不显示, 封装的密钥值结构应为TTLV编码 加密密钥信息结构,如表9所示,MAC/签名密钥信息,如表10所示。 表9 加密密钥信息对象结构 对象 编码 是否必需 加密密钥信息 结构 唯一标识符 文本串,见6.3.2 是 密码参数 结构,见6.3.7 否 表10 MAC/签名密钥信息对象结构 对象 编码 是否必需 MAC/签名密钥信息 结构 唯一标识符 文本串,见6.3.2 是。可以是用于 MAC的对称密钥的唯一 标识符,也可以是用于签名的私钥(或其 对应的公钥)的唯一标识符 密码参数 结构,见6.3.7 否 6.2.2.6 密钥封装规格 密钥封装规格定义为提供返回封装密钥的选项,如表11所示。如果客户要求服务端返回封装好的 密钥,则“密钥封装规格”应包含在操作请求中。如果在加密密钥信息和/或密钥封装规格的 MAC/签 名密钥信息中指定了加密参数,则服务端将验证它们是否与相应密钥的加密参数属性的实例相匹配。 如果省略加密参数,则服务端应使用相应密钥加密参数属性的最小属性索引。如果对应的密钥没有加 密参数属性,或发现不匹配,则返回错误。 表11 密钥封装规格对象结构 对象 编码 是否必需 密钥封装规格 结构 封装方式 枚举,见6.5.3.2.4 是 加密密钥信息 结构,见6.2.2.5 否,MAC/签名密钥信息省略时显示 MAC/签名密钥信息 结构,见6.2.2.5 否,加密密钥信息省略时显示 属性名称 文本串 否,可能重复 编码选项 枚举,见6.5.3.2.32 否。如编码选项不显示,则封装的密钥值 将以TTLV编码 6.2.2.7 透明密钥 6.2.2.7.1 透明密钥结构 透明密钥结构描述获取密钥材料的必要参数,在密钥值结构中使用。在其他标准中指定的参数映 射如表12所示。 表12 参数映射 对象 描述 映像 P RSA模的素因子 [PKCS#1]中的p Q RSA模的素因子 [PKCS#1]中的q N RSA模PQ,P和Q是不同的素数 [PKCS#1]中的n d RSA私钥指数 [PKCS#1]中的d e RSA公钥指数 [PKCS#1]中的e 表12 参数映射 (续) 对象 描述 映像 dP CRT格式中主因子P的RSA私钥指数,即 dmod(P-1) [PKCS#1]中的dP dQ CRT格式中主因子 Q的RSA私钥指数,即 dmod(Q-1) [PKCS#1]中的dQ qInv CRT系数,即Q-1modP [PKCS#1]中的qInv D 椭圆曲线私钥 见GB/T 32918 Q字符串 椭圆曲线公钥 见GB/T 32918 6.2.2.7.2 透明对称密钥 如果密钥块中的密钥格式类型为透明对称密钥,那么密钥材料是如表13所示的结构。 表13 透明对称密钥的密钥材料对象结构 对象 编码 是否必需 密钥材料 结构 密钥 字节串 是 6.2.2.7.3 透明RSA私钥 如果密钥块中的密钥格式类型是透明的RSA私钥,那么密钥材料是如表14所示的结构。 表14 透明RSA私钥的密钥材料对象结构 对象 编码 是否必需 密钥材料 结构 N 大整数 是 d 大整数 否 e 大整数 否 P 大整数 否 Q 大整数 否 dP 大整数 否 dQ 大整数 否 qInv 大整数 否 至少存在以下之一(参考[PKCS#1]): ---d; ---P和Q; ---dP和dQ。 6.2.2.7.4 透明RSA公钥 如果密钥块中的密钥格式类型是透明的RSA公钥,那么密钥材料对象结构如表15所示。 表15 透明RSA公钥的密钥材料对象结构 对象 编码 是否必需 密钥材料 结构 N 大整数 是 e 大整数 是 6.2.2.7.5 透明SM2私钥 如果密钥块中的密钥格式类型是透明的SM2私钥,那么密钥材料对象结构如表16所示。 表16 透明SM2私钥的密钥材料对象结构 对象 编码 是否必需 密钥材料 结构 推荐曲线 枚举,见6.5.3.2.5 是 D 大整数 是 6.2.2.7.6 透明SM2公钥 如果密钥块中的密钥格式类型是透明的SM2公钥,那么密钥材料对象结构如表17所示。 表17 透明SM2公钥的密钥材料对象结构 对象 编码 是否必需 密钥材料 结构 推荐曲线 枚举,见6.5.3.2.5 是 QString 字节串 是 6.2.2.8 属性集 属性集对象用于在请求中提供所需的多个属性/属性集合的值和/或名称,并在响应中返回实际的 属性值。属性集对象可用于各种操作。 属性集、通用属性集、私钥属性集和公钥属性集结构的定义是相同的。属性集对象结构如表18所示。 表18 属性集对象结构 对象 编码 是否必需 属性集,通用属性集、私 钥属性集、公钥属性集 结构 名称 结构,见6.3.3 否,可重复 属性 属性对象,见6.2.2.1 否,可重复 6.2.2.9 扩展信息 扩展信息对象是一个结构,如表19所示,在扩展范围内用项标签值描述对象。扩展名是用来命名 对象(如表253所示)的文本串。扩展标记是对象的项标签值(如表253所示)。扩展类型是对象的项类 型值(如表B.1所示)。 表19 扩展信息对象结构 对象 编码 是否必需 扩展信息 结构 扩展名 文本串 是 扩展标签 整型 否 扩展类型 整型 否 6.2.2.10 数据 数据对象用于在客户端和服务端之间传递数据的加密操作中的请求和响应。数据结构如表20所示。 表20 数据对象结构 对象 编码 数据 字节串 6.2.2.11 数据长度 数据长度用于加密操作中的请求,以指示响应中预期的数据量,如表21所示。 表21 数据长度结构 对象 编码 数据长度 整型 6.2.2.12 签名数据 签名数据用于密码操作中......