一 前言
商用密码产品认证,在提交认证申请是需同步提交密码模块分级检测材料。
该材料立足于 GM/T 0028-2014《密码模块安全技术要求》和 GM/T 0039-2015《密
码模块安全检测要求》。由于这两个规范里面都是抽象的概念,对于初次编写这
个材料的人来说存在一定的困难。
本文的目的是为初次编写《密码模块分级检测申请材料》的人提供基本的入
门指引。虽不能对每种类型的产品都能具体举例,但编写文档时用到基本的概念、
编写思路和关键点会重点介绍。
二 材料编写说明
2.1 总体说明
总体而言,《密码模块分级检测申请材料》编写者需将送检产品与 GM/T 0028
和 GM/T 0039 对应,从密码规格、接口、角色服务与鉴别、软件固件安全、运
行环境、物理安全、非入侵式安全、敏感安全参数管理、自测试、生命周期保障、
对其他攻击的缓解等共 11 个域分析产品情况,是否满足密码模块相关等级的安
全要求。
密码模块的整体评级为 11 个域中对应的最低评级。因此对于一个产品,应
提前熟悉规范,确定产品能达到的评级(安全等级)。在编写材料时超出自身安
全等级的不必关注,但产品达不到该安全等级要求的需及时调整,避免被检测降
级。总体而言,目前通过商密检测的产品多数为安全一级和安全二级,极个别为
三级,目前没有四级。在密评时会对商密产品的安全等级进行要求,目前来说具
备硬件的产品应尽量按照安全二级来申报。
《密码模块分级检测申请材料》中采用“安全要求+产品实现情况”形式实
现对产品的安全评估。其中安全要求采用(安全级别)的形
式,在文档模板中已经写好,编写者不要修改;产品实现情况为产品针对安全要
求的具体实现,由编写者编写。材料应回答安全要求中提出的问题,描述产品实
现方式,最终得出产品符合安全要求的结论。在编写时应尽量避免出现“抄规范”
或者直接“写结论”这两种情况。
下面的章节会选取部分重要安全要求进行解读并附示例。
2.2 密码模块规格
(安
全级别 1,2,3,4)
密码模块类型包括硬件模块、软件模块、固件模块、混合软件模块和混合固
件模块,应根据送检产品的特征定义该模块类型,并写出判断依据,以及说明送
检产品的软硬件组成部分。在确定密码模块的类型前,需首先划定密码边界,边
界非常非常重要,涉及产品名称、类型、材料和检测等所有重要的环节。密码边
界即为报送的产品要明确哪些软件和硬件包含在内,哪些不包含。
例:智能密码钥匙是由硬件实体以及在硬件实体上运行的嵌入式软件组合的
集合,该集合使用 SM2、SM3 和 SM4 等算法,完成存储个人证书和私钥并进行
密码运算等功能。依据《GM/T 0028-2014 密码模块安全技术要求》对密码模块
类型的划分,该智能密码钥匙可归类为硬件模块。
硬件实体由主控芯片(如安全芯片)、外围元器件、电路印刷板、USB 接口、
显示屏、按键和外壳组成。嵌入式软件在主控芯片内部存储和执行,完成维护应
用内部逻辑、读取证书或密钥和调用底层硬件模块的功能,最终实现保护用户身
份认证和交易安全的目的。
(安全级别 1,2,3,4)
密码边界由定义明确的边线(例如,硬件、软件或固件部分的集合)组成,
该边线建立了密码模块所有部件的边界,该边界至少包含密码模块内所有安全相
关的算法、安全功能、过程和部件。
例:芯片:说明相关功能,实现算法;电气元件:用于辅助主控芯片实现其
接口功能所必备的电气元件,如 LDO、发光二极管、电池、电阻、电感和电容
等。
电路板:搭载主控芯片和其他有效电气元件的印刷电路板。
(安全
级别 1,2,3,4)
本部分要描述实现算法、实现过程(比如密码卡实现加解密、签名验签运算,
比如 pos 采用 xx 算法实现 pin 管理,安全协议、交易)。一定要写出产品具体实
现什么功能,怎么用算法实现的功能,不能所有产品写的都像抽象的产品。部件
不能简单只写密码卡、芯片、智能密码钥匙,要有详细清单。
(安全级别 1,2,3,4)
规范说了每个工作模式的服务集合,就要分每个工作模式的讲,每个工作模
式实现什么功能,比如初始化模式只能做设备密钥生成/恢复、管理员注册等,
就行模式可以执行密码运算、xxx 密码功能。再回答怎么启用初始模式。
注:按照 0028 附录 B 中的要求提交文档,提交本文档时一并附上。
描述模块的各个工作模式下实现了怎样的密码服务。
例:初始工作模式下实现了怎样的密码服务。
就绪工作模式下当送检产品通过 USB 接口接入上位机后,用户可通过获取
设备信息指令读取送检产品相关信息,包括产品版本、厂商信息等。
送检产品上电后,会自动进入上电初始化状态,此时会执行运行前自测试,
自测试包括算法自检、随机数自检….。
送检产品上电自测试通过后即进入运行状态,此时产品可进行外部认证、
PIN 认证、…..等操作。
送检产品可以通过应用删除…..指令置零内部敏感安全参数。
2.3 密码模块接口
应说明密码模块所有的物理端口与逻辑接口,并且明确物理端口的输入输出、
逻辑接口的类型;对于逻辑接口,应说明密码模块与外部交互的协议所遵照标准,
若无标准则应详细描述协议过程。
例:送检产品存在四个物理接口,分别为 USB 接口、音码接口、显示屏和
按键。其中 USB 接口和音码接口在逻辑上是分时复用接口,根据数据流向和指
令功能的不同,可以作为数据输入、数据输出、控制输入、控制输出和状态输出
接口;按键是控制输入接口,用于控制送检产品的开关机、控制显示信息和在关
键签名时用于提供相应权限;显示屏是状态输出接口,用于显示设备的相关提示
信息,提示用户进行相应操作。USB 接口与上位机之间,传输层协议为 USB CCID
协议,应用层协议遵循 GM/T 0017 进行数据和控制输入输出。
应说明送检产品支持几种逻辑接口和物理端口,物理端口与逻辑接口之间的
关系,各个接口实现的功能是什么。
密码模块接口这个章节要讲物理端口有哪些,逻辑端口有哪些,物理端口就
是 usb、7816、RJ45、串口等等,逻辑接口就比如软件 API、SDF 等各种接口,要
定义出来有哪些物理和逻辑,输入输出什么输入,参数是什么。上面两个标黄的
问题,要每个问题都回答。特别是 CY03.02 中逻辑接口与物理接口的映射,比如
PCI 各种 SDF 接口,那怎么对应到一个 PCI 接口上,这么多逻辑接口都用一个物
理端口做输入输出,那怎么区分,怎么隔离,怎么知道这个数据是这个逻辑接口
的。
例:支持五种逻辑接口:数据输入接口、数据输出接口、控制输入接口、控
制输出接口和状态输出接口。其中,数据输入逻辑接口 xxx 映射到 USB 接口和蓝
牙接口;数据输出逻辑接口 xxx 映射到 USB 接口和蓝牙接口;控制输入接口 xxx
映射到 USB 接口、蓝牙接口和按键接口;控制输出接口 xxx 映射到 USB 接口和蓝
牙接口;状态输出接口映射到 USB 接口、蓝牙接口和显示屏。如蓝牙型智能密
码钥匙作为硬件密码模块,需具备电能来源才能正常工作,送检产品内部具备锂
电池,可以为蓝牙接口工作时提供电能来源;USB 接口作为送检产品使用 USB
接口工作时的电源来源接口。
2.4 角色、服务和鉴别
(安全级别 1,2,3,4)
送检单位的文档中需描述密码主管角色的功能,密码主管角色的权限和许可
的服务。密码主管的定义需要与其执行的操作关联,并赋予其相应权限,包括执
行密码初始化、CSP 和 PSP 的管理、审计功能。
例:送检产品由管理员或其它定义角色担任密码主管角色,执行模块初始化、
产生密钥、制作证书、销毁密钥、清除敏感数据等。
(安全级别 1,2,3,4)
要与 CY02.19 回答的对应,各个模式,各个功能。
任角色的鉴别。>
这部分问题要回答遵循了 0028 附录 E 中哪个规范做的鉴别,具体如何实现,
拼接数据的方式,如何跟规范对应的。不能简单说明发送签名给服务端或者验证
口令。要写清楚怎么拼接,如何认证,几次鉴别。
2.5 软件/固件安全
(安全级别 1,2,3,4)
注:SFMI 为软件或固件模块接口,定义为用于请求软件或固件模块服务的
命令全集,请求服务的命令中包括输入到密码模块或者由密码模块输出的参数。
HSMI 或 HFMI 为混合软件或混合固件模块接口,定义为用于请求混合软件
或混合固件模块服务的命令全集,请求服务的命令中包括输入到密码模块或者由
密码模块输出的参数。
例:送检产品的 SFMI 中定义了请求执行软件完整性自测试的接口,用户可
按需执行核准的完整性自测试。
这个问题回答要看 0039 中相应 AY 的要求,不能只看这一句话断章取义。
2.6 运行环境
先分析属于可修改\不可修改\受限的哪种运行环境
像 pci\密码机这样硬件模块基本都是不可修改的,协同签名这样软件模块安
装到安卓\ios 操作系统的都是可修改的,因为操作系统可以再安装其他软件.
对于不可修改和受限的运行环境,一级和二级都回答(安全级别 1,2,3,4)
注:送检单位根据产品情况表明所达到的安全级别并划分物理实体类型:
单芯片密码模块:单个集成电路(IC)芯片构成的模块,该芯片可以作为独
立模块使用,或者可以嵌入可能没有物理保护的外壳或其它模块中。这个单芯片
由片装和外部输入/输出连接器组成,其中片装使用统一的外部材料如塑料或陶
瓷包装。例如:单 IC 芯片、单 IC 芯片智能卡或者包含实现密码功能的单 IC 芯片
的其它系统。
多芯片嵌入式密码模块:模块由两个或两个以上互相连接的 IC 芯片构成,
并物理嵌入到其他产品或未被物理保护的外壳中。例如:适配器和扩展板。
多芯片独立密码模块:两个或两个以上互相连接的 IC 芯片嵌入到完全受到
物理保护的外壳中。例如:加密路由器、安全无线电话和 USB 令牌。
物理部件可包括外壳(如材质组成、缝合原理等)、内部元器件、IC 芯片或
其它硬件部件,能够监测或执行触发机制,以保证内部敏感信息安全。
例:送检产品采用 XX 材质的金属/塑料外壳包裹电路板等元器件,防止磨
损等,内部敏感信息存储及运算均在 SSX1234 安全芯片内部,由安全芯片提供
安全防护,芯片之间采用 SPI 通信,整个核心安全区设有触发检测机制等。
2.8 非入侵式安全
通常指密码模块实现的,首先要写出怎么缓解的,具体方法是什么,不是笼统
的介绍。要说清楚具体措施和机制。附录 F 的非入侵式攻击包括能量分析、计时
分析、电磁泄漏,具体缓解方法详见附录 F.2。
(安全级别 1,2,3, 4)
有效性,要能够证明的,要有数据说话的,不是吧 8.4 再复制一遍.要给出证明文
件,加缓解措施和没加缓解措施效果对比。
2.9 敏感安全参数管理通用要求
像第九章要对每个密钥都展开描述,不是一句话 csp 能够保障 xxx 就行的,要
分开 A 密钥 xxxx 措施 xxxx 保障使用,xxx 措施保障泄露,B 密钥 xxxx 措施 xxxx 保
障使用,xxx 措施保障泄露。
例:送检产品采用三级密钥机制,分别为主密钥、次主密钥、数据密钥,主
密钥采用微电保护存储方式,存储在 XXX 型 PCI-E 密码卡中,依靠送检产品的销
毁密钥的触发装置,当触发装置被触发时,销毁存储的所有密钥;次主密钥由主
密钥采用 SM4 算法加密后存储在 XXX 型 PCI-E 密码卡中,数据密钥由次主密钥采
用 SM4 算法加密后存储在数据库中。
要给出这样的表格说明是最好的
A 密 钥
(xx 算法密
钥)
密钥生成/导入
Who、when、how 注意每一项回答内
容,谁有权限,什么时间(生成),怎么生
密钥导出
密钥分发
密钥存储
成
Who、when、how
Who、when、how
怎么存储,存储位置,明文密文存储,
密文存储被 C 密钥加密,注意这个 C 密钥
也要有这么一个生命周期表格描述,这样