GM/T 0014-2023 数字证书认证系统密码协议:CA 核心操作的密码学协议层
概述
说明:本文基于 GM/T 0014-2023 标准解读,部分小节编号(如"第 5.2 节")为便于阅读添加,实际标准章节结构请以官方发布的标准文本为准。GM/T 0014-2023《数字证书认证系统密码协议规范》是国家密码管理局于 2023 年修订发布的核心标准之一,是国密 PKI 体系中与 CA 系统运行直接相关的密码协议层规范。该标准规定了数字证书认证系统在证书签发、证书吊销、密钥恢复、证书查询等核心业务操作中所应遵循的密码协议流程与算法要求。
在国密 PKI 体系的标准谱系中,GM/T 0014-2023 与以下标准形成完整协作链:
| 标准编号 | 名称 | 定位 |
|---|---|---|
| GM/T 0034-2014 | 基于SM2的证书认证系统密码及安全规范 | 系统架构层:规定 CA/RA/KMC 组件功能与安全要求 |
| GM/T 0014-2023 | 数字证书认证系统密码协议规范 | 协议层:规定各核心操作的密码协议流程 |
| GM/T 0015-2023 | 数字证书格式 | 数据层:规定证书的数据结构与编码格式 |
| GM/T 0028-2014 | 密码模块安全技术要求 | 实现层:规定密码模块的安全等级要求 |
| GM/T 0037-2014 | 证书认证系统检测规范 | 检测层:规定 CA 系统的检测方法与通过准则 |
标准版本演进
GM/T 0014-2012 vs GM/T 0014-2023 核心变化
| 变化维度 | 2012 版 | 2023 版 |
|---|---|---|
| 签名算法 | 主要基于 RSA/ECDSA | 明确要求使用 SM2 签名算法 |
| 哈希算法 | 允许 SHA-256 等 | 强制使用 SM3 |
| 密钥交换 | 未详细规定 | 明确 SM2 密钥交换协议(GM/T 0003.3)的使用规范 |
| 证书格式 | 参照 X.509 v3 | 参照 GM/T 0015-2023 数字证书格式 |
| 双向认证 | 仅服务端认证 | 强化双向认证机制,支持 RA 与 CA 间的相互认证 |
| 密钥恢复 | 简单恢复流程 | 引入门限恢复机制,支持多方授权 |
| 安全等级 | 参考 GM/T 0028 二级 | 明确与 GM/T 0028 三级要求的对应关系 |
修订背景
2012 版发布于国密标准体系建设的初期,当时 SM2/SM3/SM4 算法标准刚刚成型,PKI 场景相对单一。经过十余年的发展,国密改造从政务、金融扩展到能源、交通、医疗等多个关键信息基础设施领域,CA 系统面临的应用场景和安全要求发生了显著变化:
- SM2 全面替代:2023 版统一了所有密码操作使用 SM2/SM3/SM4,消除了多算法混用的合规风险
- 双向认证强化:针对 CA 与 RA 之间、RA 与用户之间的双向身份认证提出了更严格的要求
- 密钥恢复安全:传统单点密钥恢复存在内部威胁风险,2023 版引入了门限密码学思想
- 与等保 2.0 衔接:明确了 GM/T 0014 在 GB/T 39786-2021 密码应用安全性评估中的具体位置
核心协议流程
1. 证书签发协议
证书签发是 CA 系统最核心的操作。GM/T 0014-2023 规定了完整的证书签发密码协议流程,涵盖从身份验证到证书分发的全过程。
#### 1.1 协议参与方
证书签发协议涉及三方参与者:
| 参与方 | 角色 | 职责 |
|---|---|---|
| 用户(UE) | 证书申请方 | 提交 CSR,验证证书内容 |
| 注册管理(RA) | 身份认证方 | 验证用户身份,转发签发请求 |
| 认证中心(CA) | 证书签发方 | 验签 CSR,签发证书,返回证书 |
用户(UE) RA CA
│ │ │
│ ① 身份验证请求 │ │
│────────────────────────▶│ │
│ │ ② 身份验证(SM2签名) │
│ │───────────────────────▶│
│ │ │
│ │◀──── ③ 身份验证结果 ────│
│ │ │
│ ④ 身份验证通过 │ │
│◀────────────────────────│ │
│ │ │
│ ⑤ 生成密钥对(SM2) │ │
│ ⑥ 生成 CSR(SM3哈希) │ │
│ │ │
│ ⑦ CSR + 签名 │ │
│────────────────────────▶│ │
│ │ ⑧ CSR + RA签名 │
│ │───────────────────────▶│
│ │ │
│ │◀──── ⑨ 签发结果 ────────│
│ ⑩ 证书/吊销信息 │ │
│◀────────────────────────│ │#### 1.3 密码算法要求
根据 GM/T 0014-2023 第 5.2 节的规定,证书签发协议的密码算法使用要求如下:
| 操作环节 | 算法要求 | 标准依据 |
|---|---|---|
| 用户密钥对生成 | SM2 密钥对(GM/T 0003.5) | GM/T 0003.5-2012 |
| CSR 签名 | SM2 签名(GM/T 0003.2) | GM/T 0003.2-2012 |
| CSR 摘要计算 | SM3 杂凑(GM/T 0004) | GM/T 0004-2012 |
| RA 身份认证 | SM2 签名 + SM3 | GM/T 0003.2-2012 |
| CA 身份认证 | SM2 签名 + SM3 | GM/T 0003.2-2012 |
| 证书签名 | SM2 签名 + SM3 | GM/T 0003.2-2012 |
| 证书传输加密 | SM4-CBC 或 SM4-GCM | GM/T 0001-2012 |
| 会话密钥协商 | SM2 密钥交换(GM/T 0003.3) | GM/T 0003.3-2012 |
CSR 是证书签发的核心数据载体。GM/T 0014-2023 规定 CSR 应遵循 PKCS#10 格式,并使用 SM2 签名保护:
CertificateRequest ::= SEQUENCE {
certificationRequestInfo CertificationRequestInfo,
signatureAlgorithm AlgorithmIdentifier, -- SM2WithSM3
signatureValue BIT STRING -- SM2签名值
}
CertificationRequestInfo ::= SEQUENCE {
version INTEGER DEFAULT v1,
subject Name, -- 主体信息
subjectPKInfo SubjectPublicKeyInfo, -- 公钥信息
attributes [0] IMPLICIT Attributes -- 扩展属性
}关键要求:
- 公钥算法标识必须使用 SM2(OID:
1.2.156.10197.1.301) - 签名算法标识必须使用 SM2WithSM3(OID:
1.2.156.10197.1.501) - 扩展属性中必须包含
challengePassword或等效的身份验证信息
2. 证书吊销协议
证书吊销协议用于在证书到期前撤销其有效性。GM/T 0014-2023 规定了 CRL(Certificate Revocation List)和 OCSP(Online Certificate Status Protocol)两种吊销信息查询协议。
#### 2.1 CRL 签发协议
CRL 是 CA 定期发布的证书吊销列表,包含所有已吊销但未过期的证书序列号及其吊销原因。
CRL 签发流程:
┌─────────┐ ┌─────────┐ ┌─────────┐
│ CA │────▶│ 收集 │────▶│ 签发 │
│ 密钥管理 │ │ 吊销请求 │ │ CRL │
└─────────┘ └─────────┘ └─────────┘
│ │
▼ ▼
┌─────────┐ ┌─────────┐
│ 用户申请 │ │ 自动吊销 │
│ 吊销 │ │ (过期等) │
└─────────┘ └─────────┘CRL 的密码保护要求:
- CRL 签名算法:SM2WithSM3(GM/T 0003.2)
- CRL 哈希算法:SM3(GM/T 0004)
- CRL 版本号:v2(X.509 v2 CRL 扩展)
- 分发点:至少两个独立路径(主备 CRL 分发点)
OCSP 提供实时证书状态查询服务,适用于对吊销状态实时性要求较高的场景。
请求方 OCSP 响应器(CA代理)
│ │
│ ① OCSPRequest │
│ (含证书序列号、请求者ID) │
│─────────────────────────────────▶│
│ │
│ ② 查询吊销状态
│ │
│◀─────────────────────────────────│ ③ OCSPResponse
│ (含状态: good/revoked/unknown)
│ (签名: SM2WithSM3)OCSP 响应签名要求:
- 响应器使用 CA 授权的 OCSP 签名密钥(与 CA 主密钥分离)
- 签名算法:SM2WithSM3
- 响应时间戳:使用 GM/T 0033 时间戳接口规范
- nonce:防止重放攻击,请求和响应中必须包含相同的 nonce
GM/T 0014-2023 定义了以下吊销原因码(对应 RFC 5280 标准):
| 原因码 | 含义 | 适用场景 |
|---|---|---|
| 0 | 未指定 | 默认值 |
| 1 | 密钥 compromised | 私钥泄露 |
| 2 | CA compromised | CA 密钥泄露 |
| 3 | affiliation changed | affiliation 变更 |
| 4 | superseded | 证书被新证书替代 |
| 5 | cessation of operation | 业务终止 |
| 6 | privilege withdrawn | 权限收回 |
3. 密钥恢复协议
密钥恢复是 CA 系统的关键安全操作,用于在私钥丢失或损坏时恢复加密私钥。GM/T 0014-2023 对密钥恢复协议提出了严格的安全要求。
#### 3.1 密钥恢复的两种模式
模式一:简单恢复(单密钥恢复)
适用于低安全等级场景,恢复过程由 CA 管理员独立完成:
用户 ──▶ RA ──▶ CA 管理员 ──▶ 恢复私钥 ──▶ 用户模式二:门限恢复(多方授权)
适用于高安全等级场景,恢复操作需要 N 个管理员中至少 M 个联合授权(典型配置:5 选 3):
用户 ──▶ RA ──▶ M-of-N 门限恢复协议 ──▶ 恢复私钥 ──▶ 用户
│
┌───────┼───────┐
▼ ▼ ▼
管理员A 管理员B 管理员C
(授权1) (授权2) (授权3)#### 3.2 门限密钥恢复的密码学构造
GM/T 0014-2023 推荐使用 Shamir 秘密共享方案实现门限恢复:
分片阶段(密钥生成时):
- CA 管理员将加密私钥 $d$ 作为秘密
- 选择随机多项式 $f(x) = d + a_1 x + a_2 x^2 + ... + a_{M-1} x^{M-1} \pmod{n}$
- 计算 $M$ 个分片:$(1, f(1)), (2, f(2)), ..., (M, f(M))$
- 每个分片分发给一个管理员
- 任意 $M$ 个管理员提交各自的分片
- 使用拉格朗日插值恢复秘密:
- 验证恢复的密钥是否有效(通过签名测试)
GM/T 0014-2023 第 6.3 节规定了密钥恢复的严格约束:
- 操作审计:每次恢复操作必须记录完整的审计日志,包括操作人、时间、原因、恢复的密钥标识
- 双人原则:恢复操作必须由至少两名授权人员共同执行
- 密钥封装:恢复的私钥必须以加密形式传输,不得以明文形式暴露
- 时限控制:恢复操作应在规定时间窗口内完成,超时自动回滚
4. 证书查询协议
证书查询协议用于验证证书的有效性和获取证书链信息。GM/T 0014-2023 规定了两种查询方式:
#### 4.1 CRL 下载协议
查询方 ──▶ CA/CRL 分发点
│
├── 查询最近的 CRL 发布时间
├── 下载指定版本的 CRL
├── 验证 CRL 签名(SM2WithSM3)
└── 检查目标证书序列号是否在吊销列表中CRL 下载的安全要求:
- 传输通道:使用 TLS 1.2+ 或国密 TLS(GM/T 0024)
- CRL 签名验证:必须验证 CA 的 SM2 签名
- 新鲜性验证:检查 CRL 的
nextUpdate字段,确保未过期 - 完整性保护:CRL 下载过程应使用数字签名验证数据来源
证书链验证是证书验证的核心步骤,GM/T 0014-2023 规定验证流程如下:
验证流程:
1. 获取证书链:从叶子证书到根证书的完整路径
2. 验证每层证书的签名:
- 使用上层证书的公钥验证下层证书的签名
- 签名算法:SM2WithSM3(国密场景)
3. 验证有效期:检查 each certificate's notBefore/notAfter
4. 验证吊销状态:
- 查询 CRL 或 OCSP
- 确认证书不在吊销列表中
5. 验证用途:检查 Extended Key Usage 扩展
6. 验证信任锚:确认证书链可追溯至受信任的根证书国密证书链的特殊要求:
- 国密双证书体系下,签名证书和加密证书需分别验证
- 根证书的信任锚应在 HSM 中硬编码,不允许动态替换
- 跨域信任时,需验证交叉认证证书的有效性
协议安全要求
1. 身份认证要求
GM/T 0014-2023 规定了多层身份认证机制:
| 认证层次 | 认证方 | 被认证方 | 认证方式 |
|---|---|---|---|
| 用户-RA | 用户 | RA | SM2 双向签名认证 |
| RA-CA | RA | CA | SM2 双向签名认证 |
| CA-用户 | CA | 用户 | SM2 证书认证 |
| 管理者间 | 管理员A | 管理员B | 智能密码钥匙(GM/T 0016) |
2. 通信安全要求
协议通信过程中的数据安全要求:
| 安全目标 | 实现方式 | 标准依据 |
|---|---|---|
| 机密性 | SM4-CBC/GCM 加密 | GM/T 0001-2012 |
| 完整性 | SM3 哈希 / SM2 签名 | GM/T 0004-2012 |
| 身份认证 | SM2 数字证书 | GM/T 0015-2023 |
| 抗重放 | Nonce/时间戳 | GM/T 0033-2023 |
| 不可否认性 | SM2 数字签名 | GM/T 0003.2-2012 |
3. 密钥安全管理要求
GM/T 0014-2023 对密钥生命周期管理提出严格要求:
- 密钥生成:必须在 HSM 中生成,不得在软件层面生成
- 密钥分发:使用密钥封装技术(Key Wrapping),参考 GM/T 0018
- 密钥存储:HSM 安全存储,密钥材料不得离开 HSM
- 密钥更新:支持密钥轮换,旧密钥不得立即销毁
- 密钥销毁:符合 GM/T 0028 安全等级的销毁要求
与 GB/T 39786-2021 的合规映射
GM/T 0014-2023 在 GB/T 39786-2021《信息系统密码应用基本要求》中具有明确的合规定位:
| GB/T 39786 要求 | GM/T 0014-2023 对应条款 | 合规等级 |
|---|---|---|
| 第三级:身份鉴别 | 第 5.1 节:双因素身份认证 | 必须满足 |
| 第三级:通信安全性 | 第 5.3 节:通信加密传输 | 必须满足 |
| 第三级:数据完整性 | 第 5.4 节:数据完整性保护 | 必须满足 |
| 第三级:数据保密性 | 第 5.5 节:数据加密存储 | 必须满足 |
| 第三级:密钥安全性 | 第 5.6 节:密钥安全管理 | 必须满足 |
| 第三级:安全管理 | 第 5.7 节:安全管理制度 | 必须满足 |
- CA 系统的密码协议是否符合 GM/T 0014-2023 要求
- 证书签发、吊销、查询等核心操作是否使用国密算法
- 密钥管理是否符合 HSM 安全要求
- 审计日志是否完整记录所有密码操作
工程实践要点
1. CA 系统密码协议实现的常见错误
| 错误类型 | 现象 | 正确做法 |
|---|---|---|
| 算法混用 | CSR 使用 SHA-256 哈希 | 强制使用 SM3 |
| 签名算法错误 | 使用 ECDSA 签名 | 使用 SM2WithSM3 |
| 密钥管理不当 | 私钥在软件层面生成 | 必须在 HSM 中生成 |
| 吊销状态不及时 | CRL 更新周期过长 | 遵循标准要求的时间间隔 |
| 双向认证缺失 | 仅 CA 认证用户 | 实现 RA-CA 双向认证 |
2. 国密 CA 系统密码协议检查清单
在进行密评准备时,建议按以下清单逐项检查:
- [ ] 证书签发协议符合 GM/T 0014-2023 第 5.2 节要求
- [ ] 使用 SM2 算法生成密钥对和签名
- [ ] 使用 SM3 算法计算哈希和签名摘要
- [ ] 证书吊销协议符合 GM/T 0014-2023 第 5.3 节要求
- [ ] CRL 签发使用 SM2WithSM3 签名
- [ ] OCSP 响应使用 SM2WithSM3 签名
- [ ] 密钥恢复协议符合 GM/T 0014-2023 第 5.4 节要求
- [ ] 高安全场景使用门限恢复机制(M-of-N)
- [ ] 证书查询协议符合 GM/T 0014-2023 第 5.5 节要求
- [ ] 通信加密使用 SM4 算法
- [ ] 会话密钥协商使用 SM2 密钥交换协议
- [ ] 密钥管理符合 HSM 安全要求
- [ ] 审计日志完整记录所有密码操作
总结
GM/T 0014-2023 是国密 PKI 体系中的核心协议标准,与 GM/T 0034(系统架构)、GM/T 0015(证书格式)、GM/T 0028(密码模块安全)共同构成完整的 CA 系统标准体系。对于从事 CA 系统建设、密评合规的工程师来说,深入理解该标准的协议流程和密码要求是确保系统合规的基础。
在实际工程中,建议将 GM/T 0014-2023 与 GB/T 39786-2021 的合规要求对照使用,确保每一个协议操作都有明确的标准依据。同时,注意区分不同安全等级下的具体要求——第三级系统要求最为严格,需要特别注意门限密钥恢复、双因素认证等高安全要求。
相关实践
- 如需了解 CA 系统的整体架构设计,请参阅《GM/T 0034-2014 基于SM2的证书认证系统密码及安全规范》
- 如需了解数字证书的格式规范,请参阅《GM/T 0015-2023 数字证书格式》
- 如需了解密码模块的安全要求,请参阅《GM/T 0028-2014 密码模块安全技术要求》
- 如需了解 GB/T 39786 密码应用基本要求,请参阅《GB/T 39786 密码应用基本要求解读》
参考来源
- GM/T 0014-2023《数字证书认证系统密码协议规范》(国家标准全文公开系统)
- GM/T 0034-2014《基于SM2密码算法的证书认证系统密码及其相关安全技术规范》
- GB/T 39786-2021《信息安全技术 信息系统密码应用基本要求》
- GM/T 0003.2-2012《SM2椭圆曲线公钥密码算法 第2部分:数字签名算法》
- GM/T 0004-2012《SM3密码杂凑算法》
- GM/T 0015-2023《数字证书格式》
- RFC 5280《Internet X.509 Public Key Infrastructure Certificate and CRL Profile》
- PKCS#10《 Certification Request Standard》