GM/T 0126-2023 HTML密码应用置标语法:国密浏览器的技术基石

标准规范 · 2026-08-28

核心结论:GM/T 0126-2023定义了HTML页面中嵌入国密密码能力的标准语法,是国密浏览器实现身份认证、数据加密等功能的底层规范。与GM/T 0128(DTLSCP)配合,构成国密Web应用的完整技术栈。

一、标准背景

1.1 为什么需要这个标准

传统HTTPS使用RSA/ECC证书实现网页加密,但无法满足国密改造需求。2024年6月1日实施的GM/T 0126-2023《HTML密码应用置标语法》,正是为解决国密浏览器"如何识别和处理密码标签"这一核心问题而生。

该标准由海泰方圆等企业参与编制,是国家密码管理局第45号公告发布的25项新标准之一。它的发布标志着我国安全浏览器技术实现了标准化突破。

1.2 标准定位

维度内容
标准号GM/T 0126-2023
发布部门国家密码管理局
发布日期2023年12月4日
实施日期2024年6月1日
标准性质制定(非修订)
CCS分类号L80
ICS分类号35.030

二、核心概念:密码标签

2.1 什么是密码标签

密码标签是GM/T 0126定义的一种HTML扩展标签,用于在网页中嵌入密码操作指令。浏览器解析这些标签后,可调用国密算法库完成签名、验签、加密、解密等操作。

基本结构:

HTML
<crypto-action operation="sign" algorithm="SM2" key="userKey">
  <!-- 标签内容 -->
</crypto-action>

2.2 密码标签类型

标准定义了以下几类密码标签:

标签类型功能典型用途
crypto-auth身份认证登录页SM2签名认证
crypto-sign数字签名电子签章、文件签名
crypto-encrypt数据加密敏感字段加密传输
crypto-decrypt数据解密解密返回的敏感数据
crypto-hash杂凑运算文件指纹计算

2.3 标签属性规范

每个密码标签包含以下核心属性:

属性说明示例值
operation操作类型sign/verify/encrypt/decrypt
algorithm算法标识SM2/SM3/SM4
key密钥标识符引用密钥库中的密钥ID
mode工作模式CBC/GCM(仅SM4)
output输出格式base64/hex/pem

三、交互流程

3.1 标签解析过程

国密浏览器处理密码标签的标准流程:

CODE
① 页面加载 → ② DOM解析 → ③ 识别crypto-*标签 → ④ 验证属性合法性
     ↓
⑤ 调用水密模块API → ⑥ 执行密码运算 → ⑦ 返回结果到DOM

3.2 密钥管理

密码标签中的密钥不直接以明文形式存在,而是通过密钥标识符引用:

  • 内嵌密钥:key="embedded" — 密钥嵌入标签内部(不推荐,安全性低)
  • 密钥库引用:key="km:///user/sign_key" — 引用国密密钥管理服务
  • 外部传递:通过JavaScript API动态注入

3.3 与GM/T 0128的配合

GM/T 0126处理的是网页内的密码标签,而GM/T 0128-2023《数据报传输层密码协议规范》处理的是传输层的密码通信。两者配合使用:

层级标准作用
应用层GM/T 0126页面内密码标签定义
传输层GM/T 0128国密DTLS数据传输
应用协议GM/T 0024SSL VPN网关规范

四、典型应用场景

4.1 电子签章页面

HTML
<form action="/api/seal/sign" method="POST">
  <crypto-sign id="seal-sign" algorithm="SM2" hash="SM3" key="enterpriseKey">
    <input type="hidden" name="docHash" value="">
    <button type="submit">签署并发送</button>
  </crypto-sign>
</form>
<script>
  // 获取文档指纹并绑定到隐藏字段
  document.querySelector('#seal-sign').addEventListener('hash', function(e) {
    this.querySelector('input[name="docHash"]').value = e.detail.hash;
  });
</script>

4.2 敏感数据传输

HTML
<crypto-encrypt algorithm="SM4" mode="CBC" key="sessionKey">
  <input type="text" name="idCard" placeholder="身份证号">
</crypto-encrypt>

浏览器在提交表单前自动完成SM4加密,服务端解密后处理。

五、安全要求

5.1 浏览器合规检查项

根据GM/T 0126,国密浏览器必须满足:

检查项要求测试方法
标签解析支持所有定义的crypto-*标签构造测试页面验证
属性校验非法属性值应拒绝执行注入恶意标签测试
密钥安全密钥不得以明文存储内存 dump 检查
错误处理运算失败时返回明确错误码模拟密钥丢失场景

5.2 开发者注意事项

  • 禁止硬编码密钥:密钥必须通过密钥管理系统获取
  • 算法版本匹配:确保浏览器支持的算法版本与标准要求一致
  • 传输层配合:密码标签数据应通过国密TLS或GM/T 0128传输

六、与相关标准的关系

标准关系
GM/T 0009-2023SM2算法使用规范,密码标签中签名操作的基础
GM/T 0004-2012SM3算法标准,密码标签默认杂凑算法
GM/T 0001-2012SM4算法标准,密码标签加密操作基础
GM/T 0128-2023DTLSCP协议,配合密码标签实现传输安全
GM/T 0024-2023SSL VPN技术规范,网关层密码能力定义

七、实施建议

7.1 浏览器厂商

  • 实现完整的密码标签解析引擎
  • 提供标准化的JavaScript API
  • 建立密钥安全存储机制

7.2 应用开发者

  • 遵循标签规范编写HTML页面
  • 做好密钥管理方案设计
  • 进行兼容性测试和安全性评估

7.3 密评机构

  • 将密码标签合规性纳入检查范围
  • 验证浏览器实现是否符合GM/T 0126
  • 检查密钥管理是否符合GM/T 0028

八、总结

GM/T 0126-2023填补了国密浏览器密码标签的技术空白,是国密Web应用基础设施的关键一环。它与GM/T 0128等传输层标准共同构成了国密网络安全的完整技术体系。

随着2024年6月1日全面实施,各浏览器厂商和应用开发者都应尽快完成适配,确保国密改造工作的顺利推进。


相关实践:GM/T 0128 DTLSCP 国密协议实战