GM/T 0131-2023 电子签章应用接口规范:国密签章互操作的标准接口
标准概述
GM/T 0131-2023《电子签章应用接口规范》于2023年发布,是国家密码管理局公布的国密标准系列之一。该标准与GM/T 0031-2025《安全电子签章密码技术规范》、GM/T 0047-2024《安全电子签章密码检测规范》共同构成了完整的电子签章标准体系。
电子签章是国家电子政务、企业数字化、金融交易等场景的核心基础设施。GM/T 0131-2023的核心价值在于统一接口——解决不同厂商签章系统之间的互操作性问题,避免厂商锁定(vendor lock-in)。
标准定位
| 标准编号 | 定位 | 核心内容 |
|---|---|---|
| GM/T 0031-2025 | 密码技术规范 | 签章的密码算法要求、数据结构、签名验证逻辑 |
| GM/T 0131-2023 | 接口规范 | 签章系统与应用系统的接口定义、服务调用协议 |
| GM/T 0047-2024 | 检测规范 | 符合性的检测方法、测试用例、判定准则 |
核心接口设计
接口分层架构
GM/T 0131-2023将签章接口分为三层:
┌─────────────────────────────────────┐
│ 应用层接口(Application Layer) │
│ - 签章请求/响应 │
│ - 证书查询 │
│ - 时间戳请求 │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ 服务层接口(Service Layer) │
│ - 签章服务(Sealing Service) │
│ - 验签服务(Verification Service) │
│ - 证书状态服务(Status Service) │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ 密码层接口(Crypto Layer) │
│ - SM2签名/验签 │
│ - SM3杂凑 │
│ - SM4加密 │
└─────────────────────────────────────┘核心服务接口
#### 1. 签章服务(Seal Service)
接口名:createSeal()
输入参数:
documentId:文档唯一标识(UUID格式)documentHash:SM3杂凑值(64位十六进制字符串)sealInfo:签章信息(含签章人ID、签章位置、签章原因)certChain:证书链(PEM格式,包含根证书到叶子证书)timestampFlag:是否附加可信时间戳(布尔值)
sealBlob:签章二进制数据(Base64编码)status:成功/失败状态码errorMsg:错误描述(失败时)
- 签章过程中必须使用SM2算法进行数字签名
- 文档哈希必须使用SM3算法
- 证书链验证需遵循GM/T 0015-2023证书格式规范
接口名:verifySeal()
输入参数:
sealBlob:签章数据(Base64编码)documentHash:待验证的文档哈希(可选,如未提供则从签章中提取)certChain:验证所需的证书链(可选)ocspCheck:是否进行OCSP状态检查(布尔值)
isValid:签名是否有效(布尔值)signerId:签章人标识signTime:签名时间certValid:证书是否在有效期内certRevoked:证书是否被吊销revocationReason:吊销原因(如被吊销)
#### 3. 证书状态服务(Certificate Status Service)
接口名:getCertStatus()
支持两种查询模式:
- OCSP模式:实时查询,返回"正常/吊销/未知"
- CRL模式:批量查询,返回吊销列表的更新时间
{
"serialNumber": "0123456789ABCDEF",
"issuer": "CN=国密根CA,O=某认证中心",
"status": "revoked",
"revocationTime": "2023-06-15T10:30:00+08:00",
"revocationReason": "keyCompromise",
"nextUpdate": "2023-07-01T00:00:00+08:00"
}与相关标准的协同
与GM/T 0031-2025的关系
GM/T 0031-2025规定了电子签章的密码技术要求和数据结构。GM/T 0131-2023在此基础上定义了调用这些密码服务的接口。
关键对应关系:
- 0031定义签章数据结构 → 0131定义如何传递签章数据
- 0031定义SM2签名算法 → 0131定义调用SM2签名的接口参数
- 0031定义可信时间戳要求 → 0131定义时间戳请求接口
与GM/T 0047-2024的关系
GM/T 0047-2024是电子签章密码检测规范,定义了如何检测签章系统是否符合要求。
检测项与接口的对应:
| 检测项 | 对应接口 |
|---|---|
| 签章功能测试 | createSeal() |
| 验签功能测试 | verifySeal() |
| 证书状态查询测试 | getCertStatus() |
| 接口安全测试 | 所有接口(传输加密、身份认证) |
与GM/T 0015-2023的关系
GM/T 0015-2023《数字证书格式》定义了国密证书的二进制格式。0131接口中传递的证书链必须遵循此格式规范。
常见陷阱:某些实现将X.509证书直接嵌入接口参数,但未遵循GM/T 0015-2023的国密证书扩展字段定义,导致跨系统互操作失败。
实际部署中的兼容性问题
问题一:接口版本兼容
GM/T 0131-2023是2023年新版标准,替代了之前的厂商自定义接口。但市场上大量存量系统仍使用旧版接口。
兼容性策略:
- 新增接口支持0131-2023标准
- 保留旧版接口作为过渡
- 在接口层增加版本协商机制(通过
apiVersion参数)
问题二:时间戳服务对接
GM/T 0131-2023要求签章必须附加可信时间戳。但时间戳服务可能来自不同厂商,接口实现存在差异。
解决方案:
- 统一使用RFC 3161兼容的时间戳请求格式
- 支持GM/T 0033-2023《时间戳接口规范》定义的国密时间戳服务
- 在签章接口中封装时间戳获取逻辑,对上层透明
问题三:证书链完整性
部分实现仅在签章时返回叶子证书,未返回完整证书链。这会导致验签时无法完成信任链验证。
标准要求:签章服务应返回完整证书链(从叶子证书到根证书),或至少返回验证所需的全部中间证书。
密评关注点
根据GM/T 0054-2018和密评FAQ第四版,电子签章系统的密评检查要点包括:
1. 接口安全
- 接口传输是否使用国密TLS(GM/T 0024)
- 接口调用是否进行身份认证(双向证书认证)
- 敏感参数(如私钥)是否通过安全信道传递
2. 密码算法合规
- 签名算法是否为SM2WithSM3(OID: 1.2.156.10197.1.501)
- 杂凑算法是否为SM3
- 是否存在使用非国密算法的"混合模式"
3. 时间戳合规
- 时间戳是否由具备资质的 TSA 签发
- 时间戳格式是否符合GM/T 0033-2023
- 时间戳验证是否独立于签章验证
4. 证书管理
- 证书有效期是否符合GM/T 0015-2023要求
- 吊销状态是否实时可查
- 证书链验证是否完整
实施建议
1. 分阶段推进
阶段一(1-2个月):接口迁移准备
- 梳理现有接口使用情况
- 制定新旧接口兼容方案
- 开发0131-2023标准接口
阶段二(2-3个月):试点部署
- 选择1-2个核心业务系统试点
- 验证接口兼容性
- 收集问题并优化
阶段三(3-6个月):全面推广
- 所有新系统强制使用标准接口
- 存量系统逐步迁移
- 建立接口符合性测试机制2. 测试验证
建议建立以下测试用例:
- 功能测试:验证签章、验签、证书查询等核心功能
- 互操作测试:与不同厂商的签章系统进行接口对接
- 性能测试:验证高并发场景下的接口响应时间
- 安全测试:验证接口的安全属性和抗攻击能力
3. 监控运维
建立接口调用监控体系:
- 接口调用成功率
- 平均响应时间
- 异常错误分类统计
- 证书吊销状态变化告警
总结
GM/T 0131-2023《电子签章应用接口规范》是国密电子签章体系中的重要接口标准,其核心价值在于统一接口、促进互操作、避免厂商锁定。实施时需注意与GM/T 0031-2025、GM/T 0047-2024等相关标准的协同,以及存量系统的兼容性问题。
对于正在推进国密改造的组织,建议优先完成接口梳理和兼容性评估,制定分阶段迁移计划,确保电子签章系统的平滑升级。
相关实践
参考标准
- GM/T 0131-2023《电子签章应用接口规范》
- GM/T 0031-2025《安全电子签章密码技术规范》
- GM/T 0047-2024《安全电子签章密码检测规范》
- GM/T 0015-2023《数字证书格式》
- GM/T 0054-2018《信息系统密码应用基本要求》
- GM/T 0033-2023《时间戳接口规范》