GM/T 0028-2014 密码模块安全技术要求
摘要
北京成众志科技有限公司
技术参考资料
2020 年 3 月
资料整理人:丁爱民
第 1 章: 概述
本文是国家密码行业标准《GM/T 0028-2014 密码模块安全技术要求》的要
点摘抄和详细解读,完全覆盖了原标准的内容,但比原标准更易于理解,并且提
供了目录导航,便于阅读和复制。
《 GM/T 0028-2014 密 码 模 块 安 全 技 术 要 求 》 简 称 028 标 准 , 与
《GM/T0039-2015 密码模块安全检测要求》(简称 039 标准)配对,是最常用的
产品检测标准。
1.1标准总体说明
密码模块是指实现密码运算、密钥管理等功能的硬件、软件、固件或者其组
合。
本标准规定了 4 个递增的、定性的安全要求等级。
本标准规定的安全要求涵盖了有关密码模块的安全设计、实现、运行与废弃
的安全元素(域),共计 11 个安全域。
对密码模块提出了安全要求,但不对密码模块的正确应用和安全部署进行规
范
1.2摘要说明的覆盖范围
本标准前四部分目录为:
1、 范围
2、 规范性引用文件
3、 术语和定义
4、 缩略语
鉴于本标准共计 60 页,并且用词较多冗余,这里做了摘要。
本文从第五部分开始做摘要。
1.3特殊提醒
根据本标准送测产品还需满足前置条件:
第 2 章: 密码模块安全等级(第 5 部分)
为了保护密码模块和密码模块中包含和控制的敏感安全参数,本标准规定了
4 个要求递增的安全等级。
2.1安全一级
安全一级提供了最低等级的安全要求。例如:
模块应当使用至少一个核准的安全功能或核准的敏感安全参数建立方
法。
软件或固件模块可以运行在不可修改的、受限的或可修改的运行环境中。
安全一级硬件密码模块除了需要达到产品级部件的基本要求之外,没有
其他特殊的物理安全机制要求。
安全一级密码模块的例子有:
个人计算机中的硬件加密板卡
运行在手持设备或通用计算机上的密码工具包
当模块外部的应用系统已经配置了物理安全、网络安全以及管理过程等控制
措施时,安全一级的模块就非常适用(经济性)。
2.2安全二级
1、安全二级在安全一级的基础上增加了拆卸证据的要求,例如使用拆卸存
迹的涂层或封条,或者在封盖或门上加防撬锁等手段以提供拆卸证据。
• 拆卸存迹的封条或防撬锁应安装在封盖或门上,以防止非授权的物
理访问。
• 当物理访问模块内的安全参数时,模块上拆卸存迹的涂层或封条就
必须破碎。
2、安全二级要求基于角色的鉴别。密码模块需要鉴别并验证操作员的角色,
以确定其是否有权执行对应的服务。
• 安全二级的软件密码模块可以运行在可修改的环境中,该环境应实
现基于角色的访问控制或自主访问控制,但自主访问控制应当能够
定义新的组,通过访问控制列表(ACL)分配权限,以及将一个用
户分配给多个组。
• 访问控制措施应防止非授权地执行、修改以及读取实现密码功能的
软件。
2.3安全三级
一、除了安全二级中要求的拆卸存迹物理安全机制外,安全三级还要求更强
的物理安全机制,以进一步防止对密码模块内敏感安全参数的非授权访问。
1. 这些物理安全机制应该能够以很高的概率检测到以下行为并作出响应,这
些行为包括:
直接物理访问
密码模块的使用或修改
以及通过通风孔或缝隙对模块的探测
2. 上述物理安全机制可以包括坚固的外壳、拆卸检测装置以及响应电路。当
密码模块的封盖/门被打开时,响应电路应当将所有的关键安全参数置零。
二、安全三级要求基于身份的鉴别机制,以提高安全二级中基于角色的鉴别
机制的安全性。密码模块需要鉴别操作员的身份,并验证经鉴别的操作员是否被
授权担任特定的角色以及是否能够执行相应的服务。
三、安全三级要求手动建立的明文关键安全参数是经过加密的、使用可信信
道或使用知识拆分来输入或输出。
四、安全三级的密码模块应有效防止电压、温度超出模块正常运行范围对密
码模块安全性的破坏。攻击者可以故意让密码模块的环境参数偏离正常运行范围,
从而绕过密码模块的防护措施。密码模块应当设计有环境保护特性,用以检测环
境异常并置零关键安全参数,或者能够通过环境失效测试从而提供一个合理的保
障,确保不会因环境异常破坏模块的安全性。
五、安全三级的密码模块应提供非入侵式攻击缓解技术的有效性证据和测试
方法。
六、对于软件密码模块,并没有在本标准的所有条款中给出安全三级的要求。
因此,软件密码模块能够达到的最大整体安全等级限定为安全二级。
七、安全三级的密码模块增加了生命周期保障的要求,比如自动配置管理、
详细设计、底层测试以及基于厂商所提供的鉴别信息的操作员鉴别。
2.4安全四级
• 安全四级是本标准中的最高安全等级。该等级包括较低等级中所有的安全
特性,以及一些扩展特性。
• 安全四级的物理安全机制应当在密码模块周围提供完整的封套保护,其目
的是无论外部电源是否供电,当模块包含敏感安全参数时,检测并响应所
有非授权的物理访问。
• 从任何方向穿透密码模块的外壳都会以很高的概率被检测到,并将导致所
有未受保护的敏感安全参数立刻被置零。
• 由于安全四级的密码模块自身具有较高的安全机制,所以它特别适用于无
物理保护的环境。
• 安全四级要求对操作员进行多因素鉴别。
• 最低限度下,要求使用下列因素中的两个:
• 已知某物,如秘密口令;
• 拥有某物,如物理钥匙或令牌;
• 物理属性,如生物特征。
• 安全四级的密码模块应有效防止电压、温度超出模块正常运行范围对密码
模块安全性的破坏。密码模块应当设计有环境保护特性,专门用以检测环
境异常并置零关键安全参数,从而提供一个合理的保障,确保不会因环境
异常破坏模块的安全性。
• 按照国家相关部门规定的、安全四级的非入侵式攻击缓解测试指标,测试
密码模块中实现的、7.8 中规定的针对非入侵式攻击的缓解方法。
• 安全四级要求模块的设计应通过一致性验证,即验证前置和后置条件与功
能规格之间的一致性。
第 3 章: 功能性安全目标(第 6 部分)
使用并正确实现核准的安全功能,以保护敏感信息;
防止非授权地操作或使用密码模块;
防止非授权地泄露密码模块的内容,其中包括关键安全参数;
防止对密码模块和密码算法进行非授权或检测不到的修改,包括非授权地
修改、替换、插入和删除敏感安全参数;
提供密码模块运行状态的指示;
保证密码模块在核准的工作模式下能够正确运行;
检测出密码模块运行中的错误,防止这些错误非授权地公开、修改、替换
或使用关键安全参数,或者非授权地修改或替换公开安全参数;
保证正确地设计、分配和实现密码模块。
第 4 章: 安全要求(第 7 部分)
4.1通用要求(7.1)
• 本条规定了符合本标准的密码模块应当满足的安全要求。这些安全要求涵
盖了密码模块的设计、实现、操作以及废弃相关的域。
• 密码模块应当针对各个域的要求进行测试。密码模块应当在每个域中独立
地进行评级。
• 密码模块在这些域中获得的评级反映了模块在该域中所能达到的最高安
全等级,即密码模块必须满足该域针对该等级的所有安全要求。
• 除了在每个安全域中获得独立的评级之外,密码模块还将获得一个整体评
级。整体评级设定为 11 个域所获得的最低评级。
4.2密码模块规格(7.2)
4.2.1 密码模块规格通用要求
密码模块应当是硬件、软件、固件,或它们之间组合的集合,该集合至少使
用一个核准的密码算法、安全功能或过程实现一项密码服务,并且包含在定义的
密码边界内。
4.2.2 密码模块类型
密码模块的类型如下:
• 硬件模块。密码边界规定为硬件边线。固件和/或软件,其中还可以包括
操作系统,可以被包含在硬件密码边界内。
• 软件模块。密码边界为执行在可修改的运行环境中的纯软件部件(可以是
一个或多个软件部件)划定界线。软件密码模块的运行环境所包含的计算
平台和操作系统,在定义的密码边界之外。
• 固件模块。密码边界为执行在受限的或不可修改的运行环境中的纯固件部
件划定界线。固件密码模块的运行环境所包含的计算平台和操作系统,在
定义的密码边界之外,但是与固件模块明确绑定。
• 混合软件模块。密码边界为软件部件和分离的硬件部件(即软件部件不在
硬件模块边界中)的集合划定界线。软件运行的环境所包含的计算平台和
操作系统,在定义的混合软件模块边界之外。
• 混合固件模块。密码边界为固件部件和分离的硬件部件(即固件部件不在
硬件模块边界中)的合成划定界线。固件运行的环境所包含的计算平台和
操作系统,在定义的混合固件模块边界之外,但是与混合固件模块明确绑
定。
• 对于运行于可修改环境中的软件模块,7.7 中规定的物理安全和 7.8 中规
定的非入侵式安全要求是可选的。
• 对于硬件和固件模块,7.7 中规定的物理安全和 7.8 中规定的非入侵式安
全要求应当适用。
• 对于混合模块,软件和固件部件应当满足 7.5 中规定的软件/固件安全和
7.6 中规定的运行环境中的所有适用要求。硬件部件应当满足 7.7 中规定
的物理安全和 7.8 中规定的非入侵式安全中的所有适用要求。
4.2.3 密码边界
4.2.3.1 通用要求
• 密码边界应当由定义明确的边线(例如,硬件、软件或固件部件的集合)
组成,该边线建立了密码模块所有部件的边界。密码边界应当至少包含密
码模块内所有安全相关的算法、安全功能、过程和部件。非安全相关的算
法、安全功能、过程和部件也可以包含在密码边界内。
• 密码模块的名称应当代表密码边界内的部件构成,不应代表大于实际范围
的构成或产品。密码模块应当至少具有代表每个互不相同的硬件、软件和
/或固件部件的特定版本信息。
• 密码边界内的某些硬件、软件和/或固件部件可以从本标准的要求中排除。
被排除的硬件、软件或固件部件的实现应当不干扰或破坏密码模块核准的
安全运行。应当阐明被排除的硬件、软件或固件(附录 A)。
4.2.3.2 密码边界的定义
a) 硬件密码模块的密码边界:
• 硬件部件集合,可包括: