GM/T 0037-2014 证书认证系统检测规范:国密 CA 合规检测的完整框架
概述
GM/T 0037-2014《证书认证系统检测规范》是国家密码管理局于 2014 年发布的国密 PKI 体系核心检测标准之一。该标准规定了基于 SM2 密码算法的证书认证系统(CA 系统)的检测要求、检测方法和合格判定准则,是国密 CA 系统建设、验收和密评合规的权威依据。
标准编号为 GM/T 0037-2014,发布日期 2014-02-13,实施日期同日,归口单位密码行业标准化技术委员会,主管部门国家密码管理局。该标准与 GM/T 0034-2014(CA系统安全技术规范)和 GM/T 0038-2014(密钥管理系统检测规范)构成国密 CA 系统的完整标准体系。
重要说明:GM/T 0037-2014 是针对 2014 年版 CA 系统架构的检测规范。2023 年发布的 GM/T 0014-2023(数字证书认证系统密码协议规范)和 GM/T 0015-2023(数字证书格式)已对部分技术细节进行了更新。在实际检测和合规评估中,应以最新有效版本为准,同时兼顾与旧版标准的兼容性要求。
标准定位与适用场景
| 属性 | 说明 |
|---|---|
| 标准编号 | GM/T 0037-2014 |
| 标准名称 | 证书认证系统检测规范 |
| 发布日期 | 2014-02-13 |
| 实施日期 | 2014-02-13 |
| 归口单位 | 密码行业标准化技术委员会 |
| 主管部门 | 国家密码管理局 |
| 状态 | 现行有效 |
| 配套标准 | GM/T 0034-2014、GM/T 0038-2014 |
- 国密 CA 系统的建设与验收
- 密评机构对 CA 系统的现场检测
- 企业内部 PKI 合规性自查
- 密码产品认证申请前的预检测
第一章:检测框架总览
1.1 检测范围
GM/T 0037-2014 的检测范围涵盖基于 SM2 密码算法的证书认证系统的完整技术体系,包括:
- 密码算法合规性:SM2、SM3、SM4 等国产密码算法的正确实现
- 密码模块安全性:符合 GM/T 0028 要求的密码模块安全等级
- 密钥管理体系:密钥生成、存储、分发、使用、备份、恢复、销毁的全生命周期管理
- 证书生命周期管理:证书申请、审核、签发、更新、吊销、归档的完整流程
- 系统安全管理:物理安全、网络安全、主机安全、应用安全、数据安全等多层次防护
- 审计与日志:关键操作的完整审计记录,满足可追溯性要求
1.2 检测依据体系
GM/T 0037-2014 不是孤立的标准,而是国密 PKI 标准体系的重要组成部分。其检测依据包括:
| 标准编号 | 标准名称 | 检测作用 |
|---|---|---|
| GM/T 0034-2014 | 基于 SM2 的证书认证系统密码及安全规范 | 系统架构和功能的基准要求 |
| GM/T 0028-2014 | 密码模块安全技术要求 | 密码模块安全等级判定依据 |
| GM/T 0038-2014 | 证书认证密钥管理系统检测规范 | 密钥管理专项检测依据 |
| GM/T 0014-2023 | 数字证书认证系统密码协议规范 | 协议合规性检测依据(新版) |
| GM/T 0015-2023 | 数字证书格式 | 证书格式合规性检测依据(新版) |
| GB/T 39786-2021 | 信息系统密码应用基本要求 | 密评合规基准参考 |
| GM/T 0018-2023 | 密码设备应用接口规范 | 接口合规性检测依据 |
检测实践提示:在实际检测中,检测人员会同时引用多个标准进行交叉验证。例如,证书格式的合规性检测会引用 GM/T 0015-2023,而不是仅依赖 GM/T 0037-2014。
1.3 检测方法与流程
GM/T 0037-2014 规定的检测方法主要包括:
- 文档审查:检查系统设计文档、安全策略文档、操作规程等书面材料
- 功能测试:验证系统各项功能是否符合标准要求的正确行为
- 性能测试:评估系统在高负载下的稳定性和响应能力
- 安全性测试:通过渗透测试、代码审计等方式验证安全防护能力
- 配置检查:核查系统配置参数是否符合安全基线要求
启动阶段 → 文档审查 → 功能检测 → 安全检测 → 结果汇总 → 报告编制
↓ ↓ ↓ ↓ ↓ ↓
确定范围 资料收集 逐项验证 漏洞扫描 综合判定 出具报告第二章:密码算法合规性检测
2.1 算法实现要求
GM/T 0037-2014 明确规定,证书认证系统必须使用国产密码算法,禁止使用国际算法作为主算法。具体要求如下:
#### 签名算法(SM2)
- 必须使用 SM2 椭圆曲线公钥密码算法进行数字签名
- 密钥长度必须为 256 位
- 曲线参数必须使用 GM/T 0003.5 定义的 SM2 曲线参数
- 签名方案必须遵循 GM/T 0003.2 定义的 SM2 签名算法
- 检查签名实现是否使用了正确的 SM2 曲线参数(p、a、b、G、n、h)
- 验证签名过程是否正确计算 ZA 值(身份标识哈希)
- 检查签名输出是否符合 ASN.1 DER 编码格式
- 必须使用 SM3 密码杂凑算法
- 输出长度为 256 位
- 适用于证书指纹计算、消息摘要等场景
- 验证 SM3 实现是否正确(可通过标准测试向量验证)
- 检查证书指纹计算是否使用 SM3 而非 SHA-256
- 确认证书签名哈希算法标识符为 SM3(OID: 1.2.156.10197.1.401)
- 必须使用 SM4 分组密码算法
- 密钥长度 128 位,分组长度 128 位
- 适用于密钥封装、数据加密等场景
- 验证 SM4 S 盒是否正确(可通过置换验证)
- 检查加密模式是否符合标准要求
- 确保证书加密和密钥封装使用 SM4-CBC 或等效模式
2.2 算法标识符合规性
证书和证书相关数据结构中的算法标识符必须符合国密 OID 规范:
| 用途 | OID | 标识符名称 |
|---|---|---|
| SM2 签名 | 1.2.156.10197.1.501 | sm2WithSM3 |
| SM2 加密 | 1.2.156.10197.1.301 | sm2enc |
| SM3 杂凑 | 1.2.156.10197.1.401 | sm3WithSM2 |
| SM4 加密 | 2.15.156.10197.1.1101 | sm4 |
- ❌ 证书中使用
sha256WithRSAEncryption(OID: 1.2.840.113549.1.1.11) - ❌ 签名算法标识为
ecdsa-with-SHA256(OID: 1.2.840.10045.4.3.2) - ❌ 密钥封装使用 RSA-OAEP(非 SM2 加密)
第三章:密钥管理体系检测
3.1 密钥分类与管理要求
GM/T 0037-2014 将 CA 系统密钥分为以下几类,每类有严格的管理要求:
| 密钥类型 | 用途 | 生成方 | 保管方 | 可恢复性 |
|---|---|---|---|---|
| 根密钥对 | CA 根证书签名 | 人工生成 | KMC 托管 | 可恢复 |
| 签名密钥对 | 用户证书签名 | CA 生成 | CA 托管 | 可恢复 |
| 用户签名密钥对 | 用户证书持有者 | 用户生成 | 用户保管 | 不可恢复 |
| 用户加密密钥对 | 数据加密 | KMC 生成 | KMC 托管 | 可恢复 |
| 会话密钥 | 通信加密 | 临时生成 | 内存中 | 不恢复 |
3.2 密钥生命周期检测
#### 3.2.1 密钥生成检测
检测要点:
- 密钥生成是否使用符合 GM/T 0005 的随机数发生器
- 密钥生成过程是否有审计日志
- 根密钥对的生成是否在 HSM 中进行
- 用户密钥对的生成方式是否符合要求(签名密钥用户自生成,加密密钥 KMC 生成)
检测要点:
- 私钥是否存储在符合 GM/T 0028 安全等级的密码模块中
- 密钥是否加密存储(KMS 托管密钥)
- 是否有密钥访问控制机制(多因素认证、权限分离)
- 根密钥是否分片存储(Shamir 秘密共享)
检测要点:
- 密钥分发通道是否加密(使用 TLS/TLCP)
- 分发过程是否有身份认证
- 是否有密钥分发审计日志
- 分发介质(如 USB Key)是否安全封装
检测要点:
- 备份密钥是否加密存储
- 备份过程是否完整(密钥值、元数据、时间戳)
- 恢复流程是否有审批机制
- 恢复后旧密钥是否正确销毁
检测要点:
- 销毁操作是否有审批记录
- 销毁方法是否符合要求(多次覆写、物理销毁)
- 销毁后密钥是否可恢复(应该是不可恢复)
- 是否有销毁审计日志
3.3 密钥管理操作审计
GM/T 0037-2014 要求所有密钥管理操作必须有完整审计记录,审计日志应包含:
- 操作类型(生成、导入、导出、备份、恢复、销毁等)
- 操作时间(精确到秒)
- 操作主体(操作员身份)
- 操作客体(涉及哪些密钥)
- 操作结果(成功/失败)
- 操作原因(审批单号或业务关联)
- 日志保存期限不少于 5 年
- 日志防篡改(使用 SM3 哈希链或类似机制)
- 日志访问权限控制(仅授权审计员可查看)
第四章:证书生命周期管理检测
4.1 证书申请与审核
#### 4.1.1 申请流程检测
检测要点:
- 证书申请表是否包含必要字段(申请人信息、公钥、用途、有效期等)
- 身份审核流程是否完整(个人/组织身份验证)
- 审核操作是否有审计记录
- 是否存在自动化审核机制及其安全性
| 证书类型 | 验证要求 |
|---|---|
| 个人证书 | 身份证号码 + 生物特征(可选) |
| 组织证书 | 营业执照 + 法人身份证明 + 经办人授权 |
| 设备证书 | 设备唯一标识 + 管理员授权 |
| 代码签名证书 | 开发者身份验证 + 代码哈希绑定 |
4.2 证书签发检测
#### 4.2.1 证书格式检测
证书必须符合 GM/T 0015-2023《数字证书格式》的要求:
- 版本字段:必须为 v3
- 序列号:长度 ≥ 64 位,唯一性由 CA 保证
- 签名算法标识:必须为 sm2WithSM3
- 签发者字段:CA 的 Distinguished Name
- 有效期字段:包含 notBefore 和 notAfter
- 主体字段:证书持有者的 DN
- 主体公钥信息:包含 SM2 公钥和算法标识
- 扩展字段:
- 签名值:CA 使用私钥对 TBS 证书的 SM3 哈希进行 SM2 签名
- ❌ 证书使用 v1 或 v2 格式
- ❌ 序列号长度不足 64 位
- ❌ KeyUsage 缺少 keyCertSign(CA 证书)
- ❌ BasicConstraints 缺少 CA:TRUE
GM/T 0037-2014 要求国密 CA 系统必须支持双证书体系:
| 证书类型 | 密钥用途 | 私钥保管 | 备份恢复 |
|---|---|---|---|
| 签名证书 | 数字签名、身份鉴别 | 用户保管 | 不可恢复 |
| 加密证书 | 密钥加密、数据加密 | KMC 托管 | 可恢复 |
- 系统是否为每个用户同时签发签名证书和加密证书
- 签名证书和加密证书的密钥对是否独立生成
- 签名私钥是否由用户自行保管(不可备份)
- 加密私钥是否由 KMC 托管(可备份恢复)
4.3 证书更新与吊销检测
#### 4.3.1 证书更新检测
检测要点:
- 更新申请是否有原证书持有者授权
- 更新后的证书序列号是否重新生成
- 更新后的证书有效期是否合理(不超过原有效期 + 延长期)
- 更新流程是否有完整审计记录
证书吊销是 CA 系统安全的关键环节。检测要点:
- 吊销请求处理:
- CRL 生成与发布:
- OCSP 响应:
吊销原因码对照表:
| 原因码 | 英文名称 | 适用场景 |
|---|---|---|
| 0 | unspecified | 未指定原因 |
| 1 | keyCompromise | 密钥泄露 |
| 2 | caCompromise | CA 密钥泄露 |
| 3 | affiliationChanged | 隶属关系变更 |
| 4 | superseded | 证书被替代 |
| 5 | cessationOfOperation | 业务终止 |
第五章:系统安全管理检测
5.1 物理安全检测
CA 系统的物理环境是安全的基础。检测要点:
- 机房选址:避开洪水、地震等自然灾害高风险区域
- 访问控制:双层门禁 + 生物特征识别
- 视频监控:24 小时监控,录像保存不少于 90 天
- 环境监控:温湿度、电力、消防等环境参数实时监控
- 冗余设计:双路供电、UPS、备用发电机
5.2 网络安全检测
CA 系统的网络架构应有明确的分区和安全隔离:
| 网络区域 | 功能 | 安全要求 |
|---|---|---|
| 核心生产网 | CA 服务器、HSM | 最高安全等级,物理隔离 |
| 管理服务网 | RA 服务器、管理终端 | 访问控制,VPN 接入 |
| 对外服务网 | 证书查询、OCSP 响应 | WAF 防护,DDoS 缓解 |
| 审计日志网 | 日志服务器 | 独立网络,防篡改存储 |
- 各网络区域之间是否有防火墙隔离
- 核心生产网是否物理隔离
- 管理访问是否通过 VPN + 双因素认证
- 对外服务是否有 DDoS 防护
5.3 主机安全检测
#### 5.3.1 操作系统安全
检测要点:
- 操作系统是否经过安全加固(关闭非必要服务、最小权限原则)
- 补丁更新是否及时(高危漏洞 72 小时内修复)
- 是否部署主机入侵检测系统(HIDS)
- 日志审计是否完整
CA 系统使用的密码模块必须满足 GM/T 0028 的安全等级要求:
| 系统等级 | 密码模块最低安全等级 |
|---|---|
| 一级系统 | 无强制要求 |
| 二级系统 | 安全一级 |
| 三级系统 | 安全二级 |
| 四级系统 | 安全三级 |
- 密码模块是否有商用密码产品认证证书
- 证书上的安全等级是否满足系统要求
- 密码模块固件版本是否最新
- 是否有模块安全策略配置文档
5.4 应用安全检测
#### 5.4.1 身份认证机制
CA 系统的管理操作必须实施强身份认证:
- 操作员登录:用户名 + 密码 + USB Key(三因素认证)
- 管理操作审批:关键操作需要双人审批(Maker-Checker 机制)
- 远程管理:必须通过 VPN + 堡垒机访问
- 特权操作: root/admin 权限必须审计,禁止直接使用
检测要点:
- 是否实施最小权限原则(用户只拥有完成任务所需的最低权限)
- 权限变更是否有审批流程
- 离职人员权限是否及时回收
- 是否有权限定期复审机制
5.5 数据安全检测
#### 5.5.1 敏感数据存储
CA 系统的敏感数据包括:
- 根密钥对和根证书
- 用户加密私钥
- 操作员身份凭证
- 审计日志
- 敏感数据是否加密存储
- 加密密钥是否与数据分离存储
- 数据传输是否加密(TLS/TLCP)
- 数据备份是否加密
检测要点:
- 证书数据库是否有完整性校验(哈希校验)
- 审计日志是否防篡改(哈希链或区块链机制)
- 配置文件是否有完整性保护
第六章:审计与合规性检测
6.1 审计日志要求
GM/T 0037-2014 对审计日志有严格要求:
日志内容要求:
- 所有关键操作必须有审计记录
- 日志条目包含:时间戳、操作者、操作类型、目标对象、操作结果、源 IP 地址
- 日志格式应标准化,便于后续分析
- 保存期限:不少于 5 年
- 存储位置:独立日志服务器,与生产系统分离
- 防篡改:使用 SM3 哈希链或类似机制
- 访问控制:仅授权审计员可读取
6.2 合规性判定标准
GM/T 0037-2014 采用分级判定机制:
| 判定级别 | 含义 | 处理方式 |
|---|---|---|
| 符合 | 完全满足标准要求 | 通过检测 |
| 基本符合 | 主要要求满足,个别非关键项不符合 | 限期整改后复测 |
| 不符合 | 关键要求不满足 | 检测不通过,需全面整改 |
| 不适用 | 该项要求不适用于当前系统 | 记录原因,不做判定 |
- 使用非国密算法(如 RSA、SHA-256)
- 根密钥管理不符合安全要求
- 密钥泄露事件后未及时吊销相关证书
- 审计日志存在被篡改痕迹
6.3 检测报告编制
检测报告应包含以下内容:
- 检测概况:检测时间、检测人员、检测范围
- 系统描述:CA 系统架构、部署环境、关键组件
- 检测项目与结果:逐项列出检测内容和判定结果
- 不符合项清单:详细列出不符合项及整改建议
- 结论与建议:总体判定结论和改进建议
- 附件:检测截图、日志样本、配置片段等
第七章:与密评法规的映射关系
7.1 与 GB/T 39786-2021 的对应
GM/T 0037-2014 是 GB/T 39786-2021《信息系统密码应用基本要求》在 CA 系统领域的具体化。主要对应关系如下:
| GB/T 39786 要求 | GM/T 0037 检测项 |
|---|---|
| 物理和环境安全 | 机房选址、访问控制、环境监控 |
| 网络和通信安全 | 网络分区、传输加密、边界防护 |
| 设备和计算安全 | 主机加固、密码模块安全、访问控制 |
| 应用和数据安全 | 身份认证、证书管理、数据加密 |
| 密钥管理 | 密钥全生命周期管理、密钥存储安全 |
7.2 与密评 FAQ 第四版的关联
密评 FAQ 第四版中有多条与 CA 系统检测相关的答疑:
- FAQ 第 8 条:自建 CA 的合规判定——必须使用符合 GM/T 0034 和 GM/T 0037 要求的密码产品
- FAQ 第 3.1 条:密码产品认证证书有效性判定——采购合同签订时间应在认证证书有效期内
- FAQ 第 3.4 条:密码产品部署与使用合规性——必须按照产品配套的安全策略文档部署和使用
第八章:检测实践与常见问题
8.1 检测准备建议
#### 8.1.1 文档准备清单
| 文档类型 | 具体内容 |
|---|---|
| 系统架构文档 | CA 系统整体架构图、网络拓扑图 |
| 安全策略文档 | 密码应用策略、密钥管理策略、访问控制策略 |
| 操作规程 | 密钥管理操作规程、证书管理操作规程、应急处理规程 |
| 产品认证证书 | 密码模块认证证书、CA 软件产品认证证书 |
| 审计报告 | 近一年安全审计报告、渗透测试报告 |
| 培训记录 | 操作员培训计划、考核记录 |
检测期间,被测单位应:
- 指定专人负责检测协调
- 提供必要的测试环境和测试账号
- 安排技术骨干现场答疑
- 及时提供检测所需的截图和日志
8.2 常见问题与整改建议
#### 问题一:证书格式不符合 GM/T 0015-2023
现象:检测时发现证书字段缺失或格式错误。
原因:
- 证书生成代码使用了过时的模板
- 扩展字段配置错误
- 对照 GM/T 0015-2023 逐字段检查证书格式
- 更新证书生成模板
- 增加证书格式自动化校验环节
现象:审计日志缺少关键字段或保存期限不足。
原因:
- 日志采集方案不完善
- 日志存储容量规划不足
- 完善日志采集方案,确保覆盖所有关键操作
- 增加日志存储容量,确保 5 年以上保存
- 部署日志审计分析系统,实现自动告警
现象:现有密码模块安全等级低于系统要求。
原因:
- 采购时未明确安全等级要求
- 模块版本过旧
- 评估系统安全等级要求
- 采购符合 GM/T 0028 对应安全等级的密码模块
- 升级现有密码模块固件版本
总结
GM/T 0037-2014《证书认证系统检测规范》是国密 PKI 体系建设的重要标准,为 CA 系统的检测提供了完整的方法论和判定依据。理解和掌握该标准,对于从事国密 CA 系统建设、运维和合规工作的专业人员至关重要。
核心要点回顾:
- 证书认证系统必须使用国密算法(SM2/SM3/SM4),禁止使用国际算法作为主算法
- 双证书体系是国密 CA 的核心特征,签名密钥用户自管,加密密钥 KMC 托管
- 密钥全生命周期管理必须完整,每个环节都应有审计日志
- 密码模块安全等级必须满足系统安全等级要求
- 证书格式必须符合 GM/T 0015-2023 规范
- 检测前充分准备文档,确保材料完整
- 检测中积极配合,及时提供所需信息和环境
- 检测后认真整改,形成闭环管理
相关实践文章
- GM/T 0034-2014 基于SM2的证书认证系统密码及安全规范:CA架构、密钥管理与双证书体系
- GM/T 0039-2015 密码模块安全检测认证实施细则
- 国密SM2证书全生命周期管理实战
- SM2 证书链验证:从根证书到业务证书的完整信任链
*本文基于 GM/T 0037-2014《证书认证系统检测规范》编写,仅供参考学习,实际检测请以官方标准原文为准。*