第2章 国密标准体系与政策背景
2.1 国密标准体系全景
国密标准体系,说白了就是一套从法律到技术、从算法到协议的完整框架。我2016年第一次接触国密时,面对一堆GM/T标准号,整个人是懵的。后来摸清了层级关系,才发现它其实很清晰。
整个体系分三层:
- 法律层——以《密码法》为核心,定调子、划红线。
- 标准层——GM/T系列行业标准,把法律要求变成可执行的技术规范。
- 技术层——包含算法、协议、应用三个子层,是咱们工程师每天打交道的部分。
我个人的习惯是,看任何标准先看它属于哪一层。这样就不容易被大量文档带偏。
下面这张图,帮你把整个体系串起来:
你想想看,没有法律层,标准就没有强制力;没有算法层,协议就是空中楼阁。每一层都不可或缺。
2.2 核心国密算法标准
算法层是咱们工程师的主战场。国密目前有五个核心算法,各有各的看家本事。
| 算法 | 类型 | 密钥长度 | 主要用途 | 标准号 |
|---|---|---|---|---|
| SM2 | 公钥密码 | 256 位 | 数字签名、密钥交换 | GM/T 0003 |
| SM3 | 杂凑算法 | 256 位 | 完整性校验 | GM/T 0004 |
| SM4 | 分组密码 | 128 位 | 数据加密 | GM/T 0002 |
| SM9 | 标识密码 | 256 位 | 签名、密钥封装 | GM/T 0044 |
| ZUC | 序列密码 | 128 位 | 数据加密 | GM/T 0001 |
我在项目中踩过SM2签名的坑。有一次签名数据没做摘要直接传,结果验签死活过不了。回头一看标准,SM2签名前必须先用SM3做哈希。嗯,这种细节,文档里写得很清楚,但忙起来容易忽略。
至于SM9,它的好处是不需要证书。用手机号或邮箱就能做公钥。我之前帮一家物联网公司做方案,设备量太大,证书管理扛不住,最后就是用SM9解套的。
关键认知:国密五个算法不是替代品,是互补品。SM2管签名和密钥协商,SM3管完整性,SM4管大数据量加密,SM9管无证书场景,ZUC在资源受限设备上更有优势。选型时一定要看场景。
2.3 政策法规与合规要求
光懂算法还不够。你得清楚哪些场景必须用国密,哪些可以缓缓。
目前三条红线:
- 《密码法》(2020年实施)——将密码分为核心、普通、商用三类。国密属于商用密码,等保三级及以上系统必须使用。
- 等保 2.0——明确要求“使用国家密码管理主管部门认可的密码算法”。说白了,等保三级以上的网络设备、安全设备,国密是刚需。
- 《关基保护条例》(2021年实施)——关键信息基础设施运营者,必须采购国密产品,并进行密码应用安全性评估(密评)。
我曾经帮一家金融机构做合规改造。他们原有的HTTPS用的是国际算法,密评时被判定“不符合”。整改周期只有3个月,全量替换TLS证书、升级加密库、改造业务接口……那段时间真是连轴转。
注意:密评不是一次性的。合规改造完成后,每年都要复评。很多团队改造时只改了主链路,忽略了日志、备份、管理通道这些“边角”,结果复评时被揪出来返工。我建议一开始就把所有通信链路都列出来,一条一条过。
2.4 国密改造时间线
国密改造不是一蹴而就的。我梳理了几个关键节点:
- 2010–2012 年:SM2、SM3、SM4 标准陆续发布,国密算法体系初具雏形。
- 2016 年:SM9 标准发布,标识密码补全最后一块拼图。
- 2019–2020 年:《密码法》通过并实施,国密从“推荐”变成“强制”。同年等保 2.0 落地。
- 2021 年:关基保护条例实施,密评成为关键基础设施的必选项。
- 2023 年:金融、政务等行业国密改造迎来最终截止期,大批系统集中切换。
- 2024–2025 年:国密改造向能源、交通、医疗等更多行业蔓延,同时 TLS 国密套件开始大规模商用。
你可能会问,为什么花了十几年才推起来?其实不是技术难,而是生态。早期浏览器、操作系统、中间件都不支持国密,改一套就得动全身。这几年生态起来了,Chrome、Nginx、OpenSSL 都陆续支持了国密套件,落地阻力小了很多。
2.5 落地现状与挑战
说到现状,我直接给几个真实数据:
- 目前金融行业国密改造覆盖率超过 80%,政务行业约 60%。
- 但 TLS 国密套件的实际使用率,我估计不到 30%。很多系统只是“双证书”模式——国际算法和国密算法并行,默认走国际,国密只在审计时亮个相。
- 性能方面,SM2 签名比 RSA 慢一些,但 SM4 加密速度已经追上 AES。
最大的挑战是什么?我觉得是“兼容性”。你在内网跑国密没问题,一跟外部系统对接,对方不支持国密,你就得降级回国际算法。嗯,这种割裂状态可能会持续好几年。
一个建议:做国密改造时,不要一上来就全量替换。先做“双栈”模式——同时支持国密和国际算法,用策略控制流量走向。等生态成熟了,再逐步关停国际算法。我在两个项目中都用了这个策略,每次都很稳。
还有一点,国密标准本身也在迭代。比如 GM/T 0024 与 GM/T 0068 对 TLS 国密扩展字段的定义有细微差异。我见过有人混用标准,导致握手失败。所以选型时,一定要确认你用的加密库遵循的是哪个版本的国密标准。