GM/T 0034-2014 基于SM2的证书认证系统密码及安全规范:CA架构、密钥管理与双证书体系
概述
GM/T 0034-2014《基于SM2密码算法的证书认证系统密码及其相关安全技术规范》于 2014 年 2 月 13 日发布并实施,由密码行业标准化技术委员会归口,国家密码管理局主管部门。该标准由上海市数字证书认证中心有限公司、上海格尔软件股份有限公司等单位起草,是国密 PKI 体系的核心标准之一。
该标准规定了基于 SM2 密码算法的数字证书认证系统的密码及相关安全技术要求,涵盖证书认证中心(CA)、密钥管理中心(KMC)、注册管理系统(RA)、密码算法、密码设备及接口等多个模块。它是国密双证书体系的制度基石,也是 GM/T 0037-2014(证书认证系统检测规范)和 GM/T 0038-2014(证书认证密钥管理系统检测规范)的上位标准。
标准定位
| 属性 | 说明 |
|---|---|
| 标准编号 | GM/T 0034-2014 |
| 发布日期 | 2014-02-13 |
| 实施日期 | 2014-02-13 |
| 归口单位 | 密码行业标准化技术委员会 |
| 主管部门 | 国家密码管理局 |
| 备案号 | 44635-2014 |
| 中国标准分类号 | L80 |
| 配套标准 | GM/T 0037-2014(检测规范)、GM/T 0038-2014(密钥管理系统检测规范) |
与其他标准的关系
| 标准编号 | 名称 | 与 GM/T 0034 的关系 |
|---|---|---|
| GM/T 0014-2012 | 数字证书认证系统密码协议规范 | 协议层规范,定义证书签发/吊销的密码协议 |
| GM/T 0015-2023 | 数字证书格式 | 证书格式约束,本系统签发的证书需符合此格式 |
| GM/T 0028-2014 | 密码模块安全技术要求 | 本系统使用的密码模块需满足此标准的安全等级 |
| GM/T 0018-2023 | 密码设备应用接口规范 | 密码设备接口需符合此规范 |
| GM/T 0037-2014 | 证书认证系统检测规范 | 本标准的配套检测规范 |
核心架构:CA + KMC + RA 三组件分离
GM/T 0034-2014 的核心设计原则是功能分离、职责明确。证书认证系统由三个独立子系统组成:
证书认证中心(CA)
CA 是证书签发和管理的核心,负责:
- 证书签发:根据 RA 的审核请求,为用户签发数字证书
- 证书吊销:维护证书吊销列表(CRL),发布吊销信息
- 证书更新:处理证书续期请求
- 证书发布:将证书发布到目录服务(LDAP 等)
| 证书类型 | 密钥用途 | 密钥生成方 | 私钥保管方 |
|---|---|---|---|
| 签名证书 | 数字签名、身份鉴别 | 用户自行生成 | 用户自己保管(不可备份和恢复) |
| 加密证书 | 密钥加密、数据加密 | KMC 生成 | KMC 托管,可备份和恢复 |
密钥管理中心(KMC)
KMC 是国密 PKI 体系区别于国际 PKI 的核心组件。其主要职责:
- 加密密钥生成:为用户生成加密用途的 SM2 密钥对
- 密钥托管:安全存储用户加密私钥的备份
- 密钥恢复:在用户丢失加密私钥时,经身份鉴别后恢复密钥
- 密钥备份与归档:定期备份密钥数据,满足合规审计要求
关键设计:签名密钥由用户自己生成和保管,不做备份,不能恢复——这确保了签名的不可抵赖性。加密密钥由 KMC 生成和托管,可备份和恢复——这确保了加密数据的可恢复性。
注册管理系统(RA)
RA 是用户与 CA 之间的桥梁:
- 身份审核:审核用户提交的申请材料
- 证书申请:将审核通过的申请提交给 CA
- 密钥生成请求:向 KMC 请求为用户生成加密密钥对
- 证书分发:将 CA 签发的证书分发给用户
架构关系图
用户
│
├── 申请证书 ──→ RA(注册管理系统)
│ │
│ ├── 审核身份
│ ├── 请求 KMC 生成加密密钥对
│ └── 向 CA 提交签发请求
│
├── 签名密钥对(自行生成)──→ CA 签发签名证书
│ │
│ ├── 签发证书
│ ├── 发布证书/LDAP
│ └── 管理 CRL
│
└── 加密密钥对(KMC 生成)──→ KMC 托管备份
│
├── 密钥生成
├── 密钥存储
└── 密钥恢复密钥生命周期管理
GM/T 0034-2014 对密钥的全生命周期提出了明确的安全要求:
密钥生成
- 签名密钥对由用户在本地生成,使用符合 GM/T 0005-2012 的随机数发生器
- 加密密钥对由 KMC 生成,生成过程应在符合 GM/T 0028 安全等级要求的密码模块中进行
- 密钥生成时应进行随机性检测,确保密钥质量
密钥存储
- 签名私钥由用户自行保管,应存储在安全的介质中(如智能密码钥匙、USB Key 等)
- 加密私钥由 KMC 托管存储,应加密存储在安全的数据库中
- CA 签名私钥应存储在硬件密码模块中,安全等级不低于 GM/T 0028 规定的三级
密钥备份与恢复
| 密钥类型 | 是否备份 | 备份方 | 恢复机制 |
|---|---|---|---|
| CA 签名密钥 | ✅ 必须备份 | CA 内部 | 多份备份,分权限控制 |
| 用户签名密钥 | ❌ 禁止备份 | — | 不可恢复 |
| 用户加密密钥 | ✅ 必须备份 | KMC 托管 | 经身份鉴别后恢复 |
| KMC 根密钥 | ✅ 必须备份 | KMC 内部 | 分片备份,多人控制 |
密钥更新与销毁
- 证书到期前应进行密钥更新,生成新的密钥对
- 密钥销毁时应确保密钥材料不可恢复
- CA 签名密钥更新时,应妥善处理旧密钥签发的证书的验证
双证书分离机制
国密 PKI 体系的核心特色是签名证书与加密证书的分离。GM/T 0034-2014 明确要求:
为什么需要双证书?
在单证书体系(如 X.509 传统 PKI)中,一张证书同时用于签名和加密。这带来一个根本性矛盾:
- 签名需要不可抵赖性:私钥必须由用户独占,不可备份
- 加密需要可恢复性:私钥需要备份,以防数据丢失
证书对比
| 维度 | 签名证书 | 加密证书 |
|---|---|---|
| 密钥算法 | SM2 | SM2 |
| 密钥生成 | 用户本地生成 | KMC 生成 |
| 私钥保管 | 用户独占 | KMC 托管 + 用户持有 |
| 备份策略 | 禁止备份 | KMC 备份 |
| 恢复机制 | 不可恢复 | 经身份鉴别后可恢复 |
| 典型用途 | 身份认证、数字签名、TLS 客户端认证 | 加密通信、密钥封装、安全邮件 |
| 标准依据 | GM/T 0003.2(签名算法) | GM/T 0003.4(加密算法) |
双证书在国际标准中的映射
国际 PKI 体系(RFC 5280)通常使用 single-certificate 模式。GM/T 0034 的双证书体系在证书格式上仍遵循 X.509 v3 结构(GM/T 0015),但在密钥用途(Key Usage)扩展项中进行明确区分:
- 签名证书:
digitalSignature+nonRepudiation - 加密证书:
keyEncipherment+dataEncipherment+keyAgreement
密码设备安全要求
GM/T 0034-2014 要求证书认证系统使用的密码模块应符合 GM/T 0028-2014《密码模块安全技术要求》。
安全等级
GM/T 0028 定义了四个安全等级:
| 等级 | 安全要求 | 典型应用场景 |
|---|---|---|
| 一级 | 最低 | 个人使用 |
| 二级 | 一般 | 商业应用 |
| 三级 | 较高 | 企业级 CA |
| 四级 | 最高 | 根 CA、关键基础设施 |
密码设备接口
密码设备与应用系统之间的接口应遵循 GM/T 0018-2023《密码设备应用接口规范》,该规范定义了 C 语言接口的函数和数据结构,确保不同厂商的密码设备可以互操作。
密码协议要求
GM/T 0034-2014 引用了 GM/T 0014-2012《数字证书认证系统密码协议规范》,定义了证书签发、吊销、更新等操作的密码协议。
证书签发协议
- 用户向 RA 提交证书申请(包含签名公钥)
- RA 审核用户身份
- RA 向 KMC 请求生成加密密钥对
- KMC 生成密钥对,将加密私钥安全存储,将公钥返回给 RA
- RA 向 CA 提交证书签发请求(包含签名公钥和加密公钥)
- CA 分别签发签名证书和加密证书
- CA 将签名证书直接返回给用户,加密证书通过安全通道分发
证书吊销协议
- 证书持有者或授权管理员提出吊销请求
- CA 验证请求的合法性
- CA 更新 CRL 并发布
- CA 通知 KMC 更新加密密钥状态
系统安全要求
访问控制
- 各子系统应设置有效的访问控制机制
- CA 签名操作应有多人授权机制
- KMC 密钥恢复操作应有严格的审批流程
审计日志
- 所有关键操作应记录审计日志
- 日志应包含操作人员、操作时间、操作内容
- 日志应防篡改,并定期归档
通信安全
- 各子系统之间的通信应使用加密通道
- RA 与 CA 之间的证书签发请求应使用数字签名保护
- KMC 与 CA 之间的密钥传输应使用加密证书保护
与 GB/T 39786 的衔接
GB/T 39786-2021《信息安全技术 信息系统密码应用基本要求》在密码应用层面引用了 GM/T 0034 的相关要求。在密评(密码应用安全性评估)中,证书认证系统的合规性评估主要依据以下标准链:
GM/T 0034(系统要求)
├── GM/T 0037(CA 系统检测)
├── GM/T 0038(KMC 检测)
└── GM/T 0028(密码模块安全)实施建议
分部署策略
GM/T 0034 支持 CA、RA、KMC 独立部署:
- RA 可面向用户部署在网络边缘
- CA 应部署在安全的核心区域
- KMC 应部署在最高安全区域,建议与 CA 物理隔离
高可用设计
- CA 签名模块应采用集群部署,确保签发服务的连续性
- KMC 密钥存储应有多重备份,防止单点故障
- 数据库应实时同步,确保证书数据的一致性
合规检查清单
- [ ] CA 签名密钥是否在 GM/T 0028 三级以上密码模块中
- [ ] KMC 是否实现密钥备份与恢复功能
- [ ] 签名证书和加密证书是否严格分离
- [ ] 是否建立了完整的审计日志体系
- [ ] 密码设备接口是否符合 GM/T 0018
- [ ] 证书格式是否符合 GM/T 0015
参考来源
- GM/T 0034-2014 全国标准信息公共服务平台
- GM/T 0028-2014 密码模块安全技术要求
- GM/T 0015-2023 数字证书格式
- GM/T 0054-2018 信息系统密码应用基本要求
- 国密双证书体系详解
相关实践
- 如需了解企业内部 PKI 系统的建设和部署方案,请参阅《企业内部 PKI 建设实战:从根 CA 到证书自动化管理》
- 如需了解国密 HTTPS 部署中的证书配置,请参阅《国密 HTTPS 踩坑实录:从编译到上线的 12 个坑》
- 如需了解证书吊销机制的详细实现,请参阅《OCSP 与 CRL:证书吊销机制的原理与协议分析》