GM/T 0028-2014 密码模块安全技术要求:安全等级划分、技术域解读与合规实践

标准规范 · 2026-06-05

概述

GM/T 0028-2014《密码模块安全技术要求》是我国商用密码领域的核心安全标准之一,由国家密码管理局发布。该标准针对用于保护计算机与电信系统内敏感信息的安全系统所使用的密码模块,规定了全面的安全要求。

密码模块在标准中被定义为:硬件、软件、固件或其组合的集合,该集合至少使用一个经国家密码管理局核准的密码算法、安全功能或过程来实现一项密码服务,并且包含在定义的密码边界以内。

该标准于 2014 年发布,对应的国家标准为 GB/T 37092-2018《信息安全技术 密码模块安全要求》。2024 年 12 月发布了 GM/T 0028-2024(修订版),将于 2025 年 7 月实施,对术语定义、安全要求等进行了优化。本文以 2014 版为基础进行解读,同时标注与 2024 版的主要差异。

配套标准:

标准编号标准名称用途
GM/T 0028-2014密码模块安全技术要求规定安全要求
GM/T 0039-2015密码模块安全检测要求规定检测方法和流程
GM/T 0008-2012安全芯片密码检测准则安全芯片专用检测标准

密码模块的分类

按形态分类

GM/T 0028-2014 将密码模块按物理形态分为四类:

模块类型密码边界典型产品运行环境
硬件密码模块硬件边线服务器密码机、PCI-E 密码卡包含在硬件边界内的固件/软件
软件密码模块可执行文件/文件集密码算法库、软件密码组件通用操作系统(Windows/Linux 等)
固件密码模块可执行文件/文件集嵌入式密码固件受限/不可修改的运行环境(Java Card 等)
混合密码模块软/固件 + 分离硬件智能密码钥匙 + 驱动软件分离的运行环境
密码边界是密码模块的核心概念。它定义了密码模块所有部件的边界,至少包含所有安全相关的算法、功能、进程和部件。密码边界可以是相对的——一个密码模块产品可能包含一个或多个更小的密码模块。

核准的安全功能

GM/T 0028-2014 核准的安全功能包括:

  • 分组密码算法(如 SM4)
  • 流密码算法(如 ZUC)
  • 公钥密码算法和技术(如 SM2)
  • 消息鉴别码(MAC)
  • 杂凑函数(如 SM3)
  • 实体鉴别
  • 密钥管理
  • 随机比特生成器

安全等级体系

GM/T 0028-2014 定义了四个安全等级,从一级到四级安全性逐次增强。高等级必须满足低等级的全部要求,并新增强化措施。

CODE
安全等级递增
┌────────────────────────────────────────────────────────────┐
│  一级 ──────> 二级 ──────> 三级 ──────> 四级              │
│  (最低)                                (最高)              │
│                                                            │
│  基础加密    增强防护      物理攻击      完整封套           │
│  功能+文档   环境失效      检测响应+     保护+抗错误       │
│             测试能力      环境异常防护    注入能力          │
└────────────────────────────────────────────────────────────┘

安全一级(最低)

安全一级适用于密码模块在受信任环境中使用的场景。核心要求:

  • 密码算法:必须使用经国家密码管理局核准的商用密码算法
  • 随机数生成:至少 2 个随机数源
  • 敏感安全参数(SSP)管理:SSP 不能以明文形式出现在模块外部
  • 自测试:模块上电时必须执行自测试,验证密码算法和关键功能的正确性
  • 文档要求:提供基本的安全策略文档和使用说明
  • 角色鉴别:至少支持一种身份鉴别机制

安全二级

在安全一级基础上增加:

  • 随机数生成:至少 4 个随机数源
  • 物理安全:具备防篡改封套或防篡改涂层
  • SSP 管理:SSP 以密文形式存储,核心运算需要专用硬件
  • 环境失效测试:密码模块需通过环境失效测试(如高低温、电压波动等极端条件下的功能验证)
  • 角色与服务鉴别:支持基于身份的角色鉴别
  • 审计:记录关键安全事件
典型应用:金融 IC 卡芯片(GM/T 0008-2012 要求金融 IC 卡芯片不低于安全二级)、智能密码钥匙。

安全三级

在安全二级基础上增加:

  • 随机数生成:至少 8 个随机数源
  • 物理安全:具备物理攻击检测和响应机制(如主动屏蔽层、传感器)
  • 环境失效保护:必须具备环境失效保护机制(而非仅测试)
  • 可信信道:管理员与模块之间需建立可信信道
  • SSP 零化:SSP 使用后必须立即安全零化
  • 抗错误注入:具备抗错误注入攻击的能力
  • 生命周期保障:完整的生命周期管理,包括安全销毁
典型应用:等保四级关键基础设施中的密码设备、高安全等级的服务器密码机。

安全四级(最高)

在安全三级基础上增加:

  • 完整封套保护:密码模块必须被完整的防篡改封套包围
  • 环境失效保护:必须实施环境失效保护机制(强制要求)
  • 抗错误注入:必须实施抗错误注入能力
  • 最高等级物理安全:抵御所有已知的物理攻击手段
典型应用:军事、国防等最高安全等级场景。

安全等级对比表

安全域一级二级三级四级
密码模块规格基本增强增强最高
密码模块接口基本增强增强最高
角色、服务和鉴别较弱中等最高
软件/固件安全较弱中等最高
运行环境较弱中等最高
物理安全可选封套/涂层检测+响应完整封套
非入侵式安全可选环境失效测试环境失效保护环境失效保护
SSP 管理较弱中等最高
自测试能够能够能够能够
生命周期保障较弱中等最高
攻击缓解较弱中等最高
整体评级规则: 密码模块的整体安全等级 = 11 个安全域中获得的最低评级。

11 个安全域详解

1. 密码模块规格

规定密码模块的算法实现、参数选择和文档要求。

  • 算法必须符合国家标准或行业标准(如 GM/T 0001-2012、GM/T 0002-2012)
  • 参数选择必须符合推荐值(如 SM2 使用 sm2p256v1 曲线)
  • 必须提供安全策略文档,描述模块的安全功能、SSP 管理和操作限制

2. 密码模块接口

规定模块与外部环境的接口规范。

  • 必须明确定义所有输入/输出接口
  • 数据在接口上的表示格式必须标准化
  • 必须区分数据端口、控制端口和状态端口
  • 接口必须防止未授权访问和信息泄露

3. 角色、服务和鉴别

规定访问控制和身份鉴别机制。

  • 必须定义明确的角色(如用户、管理员、安全管理员)
  • 每个角色必须关联特定的服务和权限
  • 身份鉴别必须基于密码技术(如数字证书、口令)
  • 高等级要求多因素鉴别

4. 软件/固件安全

规定软件/固件的安全要求。

  • 软件/固件必须经过完整性校验
  • 必须防止未授权的修改
  • 高等级要求代码签名和安全启动

5. 运行环境

规定模块运行环境的安全要求。

  • 必须评估运行环境的安全风险
  • 运行环境不能破坏模块的安全功能
  • 高等级要求运行环境具备特定的安全能力

6. 物理安全

规定物理防护措施。

等级要求
一级可选
二级防篡改封套或涂层
三级物理攻击检测 + 响应机制
四级完整封套保护
物理攻击类型包括:探针攻击、电磁分析、电压/温度操纵、光学分析等。

7. 非入侵式安全

规定抗非入侵式攻击的能力。

  • 环境失效测试(二级):验证模块在极端环境条件下(高温、低温、电压波动、电磁干扰等)不会泄露 SSP
  • 环境失效保护(三级/四级):模块在检测到环境异常时自动采取保护措施(如清零 SSP)
  • 抗错误注入(四级):抵御通过激光、电磁脉冲等方式注入错误以提取密钥的攻击

8. 敏感安全参数管理

规定 SSP(如私钥、主密钥等)的全生命周期管理。

  • SSP 不能以明文形式出现在模块外部
  • SSP 在模块内部必须安全存储
  • SSP 必须支持安全销毁(零化)
  • 高等级要求 SSP 使用后立即清零
  • SSP 的导入/导出必须使用加密方式(如数字信封)

9. 自测试

规定模块的自我检测能力。

  • 上电自测试:每次上电必须执行,验证密码算法正确性
  • 条件自测试:在特定条件下触发(如定期、操作前)
  • 自测试失败处理:自测试失败时模块必须进入错误状态,不能继续提供密码服务
  • 测试内容包括:已知答案测试(KAT)、软件/固件完整性测试、随机数生成器测试

10. 生命周期保障

规定模块从生产到销毁的全生命周期安全。

  • 安全开发和生产过程
  • 安全的运输和交付
  • 安全的初始化和配置
  • 安全的维护和更新
  • 安全的退役和销毁

11. 对其他攻击的缓解

规定抗已知攻击的能力。

  • 抗侧信道攻击(时间分析、功耗分析、电磁分析)
  • 抗故障注入攻击
  • 抗重放攻击
  • 抗中间人攻击

与 FIPS 140-3 的对比

GM/T 0028-2014 与国际通用的 FIPS 140-3(Federal Information Processing Standard)在框架上高度相似,但存在重要差异:

维度GM/T 0028-2014FIPS 140-3
发布机构国家密码管理局NIST(美国)
安全等级四级四级
算法要求必须使用国密算法(SM2/SM3/SM4)必须使用 NIST 核准算法(AES/SHA/ECDSA)
物理安全三级要求检测+响应三级要求防篡改+零化
非入侵式安全环境失效测试/保护非入侵式攻击缓解
适用范围中国商用密码产品全球(美国主导)
认证机构国家密码管理局认可的实验室NIST CMVP 认可的实验室
对应国标GB/T 37092-2018ISO/IEC 19790:2012
关键差异:

  • 算法体系不同:GM/T 0028 强制要求国密算法,FIPS 140-3 强制要求 NIST 算法。两者在对方体系中均不被认可。
  • 安全域划分不同:GM/T 0028 有 11 个安全域,FIPS 140-3 有 11 个安全域,但具体内容和侧重点不同。
  • 混合模块:GM/T 0028 明确定义了混合密码模块类型,FIPS 140-3 在 2019 年修订版中也增加了类似概念。

检测认证流程

认证依据

密码模块的检测认证依据以下标准:

  • GM/T 0028-2014:规定安全要求
  • GM/T 0039-2015:规定检测方法和流程
  • GM/T 0039-2015 附录:送检材料要求

检测流程

CODE
┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
│  申请     │───>│  送检     │───>│  检测     │───>│  认证     │
│          │    │          │    │          │    │          │
│ ·提交申请 │    │ ·提交样品 │    │ ·文档审查 │    │ ·颁发证书 │
│ ·确定等级 │    │ ·提交文档 │    │ ·功能测试 │    │ ·公告发布 │
│ ·选择实验室│    │ ·签署协议 │    │ ·渗透测试 │    │ ·定期监督 │
└──────────┘    └──────────┘    │ ·环境测试 │    └──────────┘
                                 │ ·物理测试 │
                                 └──────────┘

送检材料要求

送检单位需向检测机构提交以下材料:

  • 密码模块安全策略文档:描述模块的安全功能、SSP 管理、操作限制等
  • 设计文档:模块的架构设计、接口定义、算法实现说明
  • 源代码/固件:用于代码审查和漏洞分析
  • 测试报告:内部测试结果
  • 样品:用于实际检测的硬件/软件样品

检测项目

检测类别检测内容适用等级
安全功能检测密码算法正确性、密钥管理、随机数质量一级至四级
接口安全检测接口定义完整性、输入验证、错误处理一级至四级
角色鉴别检测身份鉴别强度、访问控制有效性一级至四级
物理安全检测防篡改能力、攻击检测响应二级至四级
环境测试高低温、电压波动、电磁干扰二级至四级
渗透测试侧信道分析、故障注入、软件漏洞三级至四级
生命周期检测开发过程、交付安全、销毁机制一级至四级

认证后监督

获得认证后,密码模块还需接受定期监督:

  • 年度监督:每年进行一次简化检测
  • 变更申报:模块设计、算法、固件发生重大变更时需重新检测
  • 证书有效期:一般为 3-5 年,到期需重新认证

合规实践要点

等保与密评要求

在网络安全等级保护(等保)和商用密码应用安全性评估(密评)中,密码模块的安全等级是关键评估要素:

等保等级密码模块最低要求典型场景
二级安全一级一般信息系统
三级安全二级重要信息系统
四级安全三级关键信息基础设施
GM/T 0054-2018《信息系统密码应用基本要求》中明确规定:

  • 物理和环境安全层面:应采用符合 GM/T 0028 相应安全等级的密码模块
  • 网络和通信安全层面:VPN 设备中的密码模块应满足相应安全等级
  • 设备和计算安全层面:服务器密码机等设备应通过 GM/T 0028 认证
  • 应用和数据安全层面:签名验签服务器应通过 GM/T 0028 认证

密码法要求

2020 年 1 月 1 日实施的《中华人民共和国密码法》规定:

  • 涉及国家安全、国计民生、社会公共利益的商用密码产品,应当依法列入网络关键设备和网络安全专用产品目录,经认证合格后方可销售或者提供
  • 商用密码产品检测认证适用《中华人民共和国认证认可条例》
  • GM/T 0028 是商用密码产品安全认证的核心依据

产品选型建议

选择密码模块时,应考虑以下因素:

  • 运行环境:运行环境越不安全,应选择越高等级的密码模块
  • 信息资产重要程度:保护的信息越重要,应选择越高等级的密码模块
  • 合规要求:满足等保、密评、行业监管的最低等级要求
  • 成本平衡:高等级模块成本更高,需在安全和成本之间取得平衡
  • 供应链安全:选择有资质、信誉好的厂商产品

与 GM/T 0008 安全芯片标准的对比

GM/T 0008-2012《安全芯片密码检测准则》是专门针对安全芯片的检测标准,与 GM/T 0028 形成互补关系:

维度GM/T 0028-2014GM/T 0008-2012
适用范围所有密码模块安全芯片专用
安全等级四级三级
安全域11 个9 个
检测要求通用芯片专用(含 EMC、ESD 等)
典型产品密码机、软件模块金融 IC 卡芯片、安全芯片
金融领域特殊要求: 根据中国人民银行要求,金融 IC 卡芯片必须满足 GM/T 0008-2012 安全二级及以上要求。

参考来源

  • GM/T 0028-2014《密码模块安全技术要求》
  • GM/T 0039-2015《密码模块安全检测要求》
  • GB/T 37092-2018《信息安全技术 密码模块安全要求》
  • GM/T 0008-2012《安全芯片密码检测准则》
  • GM/T 0054-2018《信息系统密码应用基本要求》
  • FIPS 140-3: Security Requirements for Cryptographic Modules (NIST)
  • ISO/IEC 19790:2012: Security requirements for cryptographic modules
  • 《中华人民共和国密码法》(2020 年)
  • 《商用密码管理条例》(2023 年修订)

相关实践