一、核心定义与边界概念
| 术语 |
定义 / 要点 |
| 密码模块 |
包含于密码边界之内,执行已批准安全功能(算法、密钥生成)的硬件、软件和/或固件集合 |
| 密码边界 |
明确定义的物理或逻辑边线,是区分模块内外、进行安全评估的基础。边界内包含所有安全相关部件 |
| 核准模式 |
模块仅使用核准的安全功能(算法、协议)的工作模式 |
| 非核准模式 |
使用了非核准的安全功能,需明确区分 |
| 安全策略 |
模块运行应遵从的安全规则说明,需为每个工作模式定义完整服务集合 |
密码模块5种类型(按密码边界划分)
| 类型 |
边界特征 |
运行环境位置 |
| 硬件模块 |
硬件物理边线 |
固件/软件可包含在边界内 |
| 软件模块 |
纯软件部件边界 |
OS/计算平台在边界外(可修改环境) |
| 固件模块 |
纯固件部件边界 |
OS/计算平台在边界外,但与固件绑定(受限环境) |
| 混合软件模块 |
软件+不相交硬件 |
OS/计算平台在边界外 |
| 混合固件模块 |
固件+不相交硬件 |
同混合软件,但固件绑定 |
二、11个安全域 与 整体评级原则
完整安全域列表
| 序号 |
安全域 |
简要说明 |
| 1 |
密码模块规格 |
模块类型、边界、工作模式描述 |
| 2 |
模块接口 |
物理/逻辑接口划分,数据/控制/状态分离 |
| 3 |
角色、服务和鉴别 |
角色分离、身份鉴别机制 |
| 4 |
软件/固件安全 |
完整性测试(自检)、代码形式 |
| 5 |
运行环境 |
可修改/受限/不可修改环境的安全控制 |
| 6 |
物理安全 |
抗物理拆卸、探测、环境攻击 |
| 7 |
非入侵式攻击安全 |
抗旁路攻击(功耗、时间、电磁等) |
| 8 |
敏感安全参数(SSP)管理 |
生成、存储、传输、置零全生命周期 |
| 9 |
自测试 |
上电自检、条件自检、完整性测试 |
| 10 |
生命周期保障 |
配置管理、设计、FSM、开发、测试、配送、文档 |
| 11 |
其他攻击的缓解 |
对未归类攻击的缓解说明 |
整体评级规则(木桶效应)
- 每个域独立评级(1~4级)
- 模块整体安全等级 = 11个域中的最低评级
三、四个安全等级核心特征
| 等级 |
核心特征 |
典型适用场景 |
| 一级 |
基本功能合规(核准算法),无特殊物理防护;自检使用核准完整性技术(MAC) |
外部已有物理/网络安全保护的环境(如PC加密卡) |
| 二级 |
增加拆卸存迹/防撬锁(物理);基于角色的鉴别;软件模块需运行在DAC(自主访问控制)环境下;完整性升级为数字签名或带密钥MAC |
需要基本防篡改和访问控制 |
| 三级 |
拆卸检测+置零电路;基于身份的鉴别;CSP明文输入/输出必须加密或通过可信信道;抗环境失效(电压/温度);抗非入侵式攻击;生命周期保障加强 |
部分物理保护但风险较高的环境 |
| 四级 |
完整封套(全方位物理攻击检测);多因素鉴别(双因素);形式化一致性验证;错误注入缓解 |
无物理保护的危险环境 |
等级递进逻辑速记
一级:能用就行 → 二级:防拆+角色 → 三级:防拆+身份+加密信道+抗环境/旁路 → 四级:全封套+多因素+形式化验证
四、关键技术指标与测评方法速查
1. 接口分类(6类)
- 数据输入 / 数据输出(控制与数据分离)
- 控制输入 / 控制输出(错误状态时禁止控制输出,除非策略允许)
- 状态输出(显式或隐式)
- 电源接口
重点:错误状态下,数据输出接口必须禁止输出(防敏感信息泄露)
2. 软件/固件安全(完整性测试)
- 一级:核准完整性技术(MAC),失败则进错误状态;临时值置零
- 二级:仅可执行代码(无源码/目标码);禁用调试接口;完整性用数字签名或带密钥MAC
- 三/四级:强制核准的数字签名,任何一个子签名失败即进入错误状态
3. 敏感安全参数(SSP)管理
| 参数类型 |
定义 |
保护要求 |
| 关键安全参数(CSP) |
私钥、对称密钥等 |
防非授权访问、使用、泄露、修改、替换 |
| 公共安全参数(PSP) |
IV、随机数种子、口令杂凑值等 |
防非授权修改和替换 |
生命周期管理要点:
- 生成:需保证破坏生成方法的代价 ≥ 猜测SSP的代价
- 输入/输出:
- 加密的CSP输入时不得显示明文
- 无线传输CSP必须加密
- 三级以上:明文对称密钥/私钥必须使用知识拆分(至少2个分量)并通过可信信道
- 四级:每个分量输入/输出需多因素鉴别
- 存储:必须与实体(人/角色/进程)关联,错配则拒绝操作
- 置零(清零):
- 置零后不可恢复/重用
- 临时SSP使用完毕立即置零
- 置零可用全0/全1/随机数据覆盖
4. 可信信道(三级及以上)
- 要求:防非授权修改、替换、泄露
- 实现:物理端口隔离 + 逻辑接口隔离
- 测评:尝试篡改/替换/侦听,必须被阻止
五、测评通用流程
测评关注四大方面
- 密码模块边界:是否明确,边界内部件清单完整
- 密码模块功能:是否提供规定功能(加解密、签名、密钥管理)
- 密码模块资源:算法、密钥、协议是否合规
- 安全防护措施:物理/逻辑防护是否到位
常规检测手段(方法论)
- 文档审查:核实送检单位提供的规格、设计、安全策略、自检说明
- 实物核查:对照文档检查模块实际物理/逻辑实现
- 功能测试:启动核准模式、执行各服务、检查状态转换
- 渗透尝试:
- 尝试非授权访问/修改CSP → 应拒绝
- 破坏完整性(篡改代码)→ 应进入错误状态
- 错误实体输入SSP → 应拒绝
- 尝试绕过可信信道 → 应失败
- 置零验证:执行置零指令后,所有明文CSP不可访问且不可恢复
六、常见考试问答方向
| 可能问题 |
答题要点 |
| 密码模块与一般密码产品的区别 |
强调“密码边界”概念,以及模块是可独立评估的最小安全单元 |
| 为什么软件模块最高只能到二级? |
因为软件运行在可修改的OS环境中,无法实现三级要求的物理防护、置零电路和环境失效检测 |
| 整体评级为什么取最低域? |
木桶效应,任何域的安全短板都会导致整体安全性下降 |
| 可信信道与普通加密信道有何不同? |
不仅加密,还要防篡改、防替换,且物理/逻辑接口需隔离 |
| 知识拆分的作用 |
防止单点权限过高,至少需要M个分量(M≥2)才能恢复密钥,降低泄露风险 |
| 置零的时机有哪些? |
错误状态进入时、自检临时值生成后、手动置零指令、检测到物理入侵时、掉电时(硬件) |