Presentation is loading. Please wait.

Presentation is loading. Please wait.

密码模块安全检测要求 崔永娜 国家密码管理局商用密码检测中心 2019年1月17日.

Similar presentations


Presentation on theme: "密码模块安全检测要求 崔永娜 国家密码管理局商用密码检测中心 2019年1月17日."— Presentation transcript:

1 密码模块安全检测要求 崔永娜 国家密码管理局商用密码检测中心 2019年1月17日

2 目 录 一、标准介绍 二、标准结构 三、安全等级要求 四、安全检测要求

3 标准介绍 1、 GM/T 0039—2015,是中华人民共和国密码行业标准,2015年4月1日发布和实施。
3、参考ISO/IEC 24759:2014《信息技术-安全技术-密码模块检测要求》编制,与ISO/IEC 24759:2014的一致性程度为非等效。

4 标准结构 第六章:检测要求 11个安全域 6个附录 范围 规范性引用文件 术语和定义 缩略语 文档结构 附录:安全等级对应表 密码模块规格
密码模块接口 角色、服务和鉴别 软件/固件安全 运行环境 物理安全 非入侵式安全 敏感安全参数管理 自测试 生命周期保障 对其它攻击的缓解 6个附录 文档要求 密码模块安全策略 核准的安全功能 核准的敏感安全参数生成和建立方法 核准的鉴别机制 非入侵式攻击及常用的缓解方法 范围 规范性引用文件 术语和定义 缩略语 文档结构 附录:安全等级对应表

5 标准结构 AY: 安全要求 四个安全级别 GM/T 中的相应安全要求 CY:文档要求 JY:检测要求

6 安全等级要求—安全一级 安全一级提供了最低等级的安全要求。
安全一级阐明了密码模块的基本安全要求,例如,模块应当使用至少一个核准的安全功能或核准的敏感安全参数建立方法。 软件或固件模块可以运行在不可修改的、受限的、或可修改的运行环境中。 安全一级硬件密码模块除了需要达到产品级部件的基本要求之外,没有其它特殊的物理安全机制要求。 模块实现的针对非入侵式攻击或其它攻击的缓解方法需要有文档记录。 安全一级密码模块的例子有:个人计算机(PC)中的硬件加密板卡、运行在手持设备或通用计算机上的密码工具包。 当模块外部的应用系统已经配置了物理安全、网络安全以及管理过程等控制措施时,安全一级的模块就非常适用。如外部已经提供了全面的安全保护,使用一级模块就非常的经济。这使得密码模块的使用者可以选择多种密码解决方案来满足安全需求。

7 安全等级要求—安全二级 安全二级在安全一级的基础上增加了拆卸证据机制或者防盗锁机制,以提高物理安全性。拆卸证据机制包括使用拆卸存迹的涂层或封条。防盗锁机制是指在密码模块的封盖或门上加防盗锁。 拆卸存迹的封条或防盗锁应安装在封盖或门上,以防止非授权的物理访问。当物理访问模块内的安全参数时,模块上拆卸存迹的涂层或封条就必须破碎。 安全二级要求基于角色的鉴别。密码模块需要鉴别并验证操作员的角色,以确定其是否有权执行对应的服务。 安全二级的软件密码模块可以运行在可修改的环境中,该环境应实现基于角色的访问控制,该环境也可以实现自主访问控制,但是应当至少能够定义新的分组,通过访问控制列表(ACL)分配权限,以及将一个用户分配给多个分组。访问控制措施应防止非授权地执行、修改以及读取实现密码功能的软件。

8 安全等级要求—安全三级(1) 除了安全二级中要求的拆卸存迹物理安全机制外,安全三级还要求更强的物理安全机制,以防止对密码模块内SSP的非授权访问。这些物理安全机制应该能够以很高的概率对以下行为进行检测及响应,这些行为包括:直接物理访问、密码模块的使用或修改、以及通过通风孔或缝隙对模块的探测。上述物理安全机制可能包括坚固的外壳、拆卸检测装置以及置零响应电路。当密码模块的封盖/门被打开时,置零响应电路应当将所有的CSP置零。 安全三级要求基于身份的鉴别机制,以提高安全二级中基于角色的鉴别机制的安全性。密码模块需要鉴别操作员的身份,并验证经鉴别的操作员是否被授权担任特定的角色以及是否能够执行相应的服务。 安全三级要求手动建立的明文CSP是经过加密的,使用可信通道或使用知识拆分来输入或输出。

9 安全等级要求—安全三级(2) 安全三级的密码模块应有效防止环境因素或电压、温度超出模块正常运行范围对密码模块安全性的破坏。正常运行范围的故意偏离可以被攻击者利用,从而绕过密码模块的防护措施。密码模块应当设计有特殊的环境保护特性,用以检测环境异常和置零CSP,或者能够通过环境失效测试从而提供一个合理的保障,保障不会因环境异常破坏模块的安全性。 针对安全三级的测试指标,测试密码模块中实现的、第7.8节中规定的针对非入侵式攻击的缓解方法。 对于软件密码模块,本标准的所有条款没有安全三级的要求。因此,软件密码模块能够达到的最大整体安全等级限定为安全二级。 安全三级的密码模块增加了生命周期保障的要求,比如自动配置管理、详细设计、底层测试以及基于供应商所提供的鉴别信息的操作员鉴别。

10 安全等级要求—安全四级(1) 安全四级是本标准中的最高安全等级。该等级包括较低等级中所有的安全特性,以及一些扩展特性。
安全四级的物理安全机制应当在密码模块周围提供完整的封套保护,其目的是无论外部电源是否供电,当模块包含SSP时,检测并响应所有非授权的物理访问。从任何方向穿透密码模块的外壳都会以很高的概率被检测到,并将导致所有未保护的SSP立刻被置零。安全四级的密码模块适用于无物理保护的环境。 安全四级要求对操作员进行多因素鉴别。最低限度下,要求使用下列因素中的两个: ——已知某物,如秘密口令; ——拥有某物,如物理钥匙或令牌; ——物理属性,如生物特征。

11 安全等级要求—安全四级(2) 安全四级的密码模块应有效防止环境因素或电压、温度超出模块正常运行范围对密码模块安全性的破坏。密码模块应当设计有特殊的环境保护特性,用以检测环境异常和置零CSP,从而提供一个合理的保障,保障不会因环境异常破坏模块的安全性。 针对安全四级的测试指标,测试密码模块中实现的、第7.8节中规定的针对非入侵式攻击的缓解方法。 对于软件密码模块,本标准的所有条款没有安全四级的要求。因此,软件密码模块能够达到的最大整体安全等级限定为安全二级。 安全四级要求模块的设计应通过一致性验证,即证明前置和后置条件与功能规格之间的一致性。

12 安全等级要求—总表(1) 安全等级 1 安全等级 2 安全等级 3 安全等级 4 1. 密码模块规格 2. 密码模块接口
安全等级 1 安全等级 2 安全等级 3 安全等级 4 1. 密码模块规格 密码模块、密码边界、核准的密码功能以及正常的或降级的工作模式的说明。密码模块的描述,包括所有硬件、软件和固件部件。所有服务提供状态信息以指示服务何时按照核准的方式使用核准的密码算法、安全功能或进程。 2. 密码模块接口 要求的和可选的接口。所有接口和所有输入输出数据路径的说明。 可信信道。 3. 角色、服务与鉴别 要求的和可选的角色和服务的逻辑分离。 基于角色或基于身份的操作员鉴别。 基于身份的鉴别。 多因素鉴别。 4. 软件/固件安全 核准的完整性技术,以及定义的SFMI、HFMI以及HSMI。 可执行代码。 基于核准的数字签名或带密钥消息鉴别码的完整性测试。 基于核准的数字签名的完整性测试。 5. 运行环境 不可修改的、受限的或可修改的。 对SSP的控制。 可修改的。 基于角色或自主访问控制。 审计机制。 6. 物理安全 产品级部件。 拆卸证据。 不透明的遮盖物或外壳。 封盖和门上的拆卸检测与响应电路。牢固的外壳或涂层。防止直接探测的保护。EFP或EFT。 拆卸检测和响应封壳。EFP。故障注入的缓解。 7. 非入侵安全 模块设计成能够缓解附录F中规定的非入侵式攻击。 附录F中规定的缓解技术的文档和有效性。 缓解测试。

13 安全等级要求—总表(2) 8. 敏感安全参数管理 9. 自测试 10. 生命周期保保障 11.其它攻击的缓解 安全等级 1 安全等级 2
安全等级 1 安全等级 2 安全等级 3 安全等级 4 8. 敏感安全参数管理 随机比特生成器、SSP生成、建立、输入和输出、存储以及置零。 自动的SSP传输或SSP协商使用核准方法。 手动建立的SSP可能以明文的形式输入或输出。 必须使用可信信道。 手动建立的SSP可以以加密的形式,或通过可信信道、或使用知识拆分过程输入或输出。 9. 自测试 运行前:软件/固件完整性测试、旁路测试以及关键功能测试。 条件:密码算法、配对一致性、软件/固件加载、手动输入、条件旁路以及关键功能测试。 10. 生命周期保保障 配置管理 密码模块、部件和文档的配置管理系统。每一项在整个生命周期中都有唯一标识并可追踪。 自动配置管理系统。 设计 模块设计成允许对所有提供的安全相关服务进行测试。 FSM 有限状态模型 开发 有注释的源代码、版图或HDL。 软件高级语言。 硬件高级描述语言。 文档注明模块部件执行的前置条件,以及当部件执行完毕时预期为真的后置条件。 测试 功能测试。 底层测试。 配送与操作 初始化流程。 配送流程。 使用供应商提供的鉴别信息的操作员鉴别。 指导文档 管理员和非管理员指南。 11.其它攻击的缓解 文档说明对其他攻击的缓解,但不需要提供测试要求。 有可测试要求的缓解攻击说明。

14 安全检测 要求—密码模块规格(1) 密码模块规格 密码模块规格通用要求 密码模块类型 密码边界 工作模式
AY02.01:(安全级别1,2,3,4) 密码模块应当是硬件、软件、固件,或其中组合的集合,该集合至少使用一个核准的密码算法、安全功能或过程实现一项密码服务,并且包含在明确的密码边界内。 密码模块类型 AY02.03:(安全级别1,2,3,4) 密码模块应当定义为下列一种模块类型: 硬件模块、软件模块、固件模块、混合软件模块 、混合固件模块 CY :送检单位的文档中应描述密码模块类型,并解释选择这一类型的依据。 CY :送检单位应提供密码模块的规格,以标识所有密码模块的的硬件、软件和/或固件部件。 JY :检测人员应核实送检单位的文档中标识了AY02.03中定义的一种模块类型。 JY :检测人员应通过审查送检单位提供的规格文档,并识别所有硬件、软件和/或固件部件,核实该密码模块与AY02.03中定义的密码模块类型一致。 密码边界 工作模式 AY02.03:硬件模块、软件模块、固件模块、混合软件模块 、混合固件模块的定义在0028规范中有明确定义,根据送检产品的实际情况进行模块类型分类

15 安全检测 要求—密码模块规格(2) 密码模块规格 密码模块规格通用要求 密码模块类型 密码边界 工作模式
AY02.07:(安全级别1,2,3,4) 密码边界应当由定义明确的边线(例如:硬件、软件或固件部件的集合)组成,该边线建立了密码模块所有部件的边界。啊 CY :送检单位的文档中应详细说明密码边界内的所有部件。 JY :检测人员应通过文档审查和模块检查核实所有部件在密码边界内。 JY :检测人员应通过文档审查和模块检查核实没有未标识的部件在密码边界内。 工作模式 混合软件模块:密码边界为软件部件和不相交的硬件部件。 混合固件模块:密码边界为固件部件和不相交的硬件部件。

16 安全检测 要求—密码模块规格(3) 密码模块规格 密码模块规格通用要求 密码模块类型 密码边界 工作模式
AY02.19:(安全级别1,2,3,4) 操作员应当能够在核准的工作模式下操作模块。 CY :送检单位的文档中应说明密码模块核准的工作模式。 CY :送检单位的文档中应描述如何启用核准的工作模式及方法。 JY :检测人员应核实送检单位的文档包含了对核准的工作模式的描述。 JY :检测人员应核实可以按照送检单位的文档中描述的方法启用核准的工作模式。 JY :检测人员应核实操作员可以在核准的工作模式下操作密码模块。 密码模块可以有核准的工作模式和非核准的工作模式。核准的工作模式是指密码模块在该工作模式下只能使用核准的安全功能。非核准的工作模式是指密码模块在该工作模式下使用了非核准的安全功能。 正常工作是指算法、安全功能、服务或进程的完整集合都是可用的和/或可配置的。 降级工作:如果模块进入错误状态,密码模块可以设计成支持降级功能。

17 安全检测 要求—密码模块规格(4) 安全一级 安全二级 安全三级 安全四级 AY02.01 √ AY02.02 AY02.03
安全一级 安全二级 安全三级 安全四级 AY02.01 AY02.02 AY02.03 AY02.04 AY02.05 AY02.06 AY02.07 AY02.08 AY02.09 AY02.10 AY02.11 AY02.12 AY02.13 AY02.14 AY02.15 AY02.16 AY02.17 AY02.18 AY02.19 AY02.20 AY02.21 AY02.22 AY02.23 AY02.24

18 安全检测 要求—密码模块接口(1) 密码模块接口 密码模块接口通用要求 接口类型 接口定义 可信信道
AY03.01:(安全级别1,2,3,4) 所有进出密码模块的逻辑信息流,都应当只能通过已定义的物理端口和逻辑接口,这些端口和接口是出入模块的密码边界的入口和出口。 CY :送检单位的文档中应说明密码模块的每个物理端口和逻辑接口,包括: ——物理端口和引脚分配; ——物理封盖,门或开口; ——逻辑接口(如,API和所有其他的数据/控制/状态信号)、信号名称和功能; ——用于物理控制输入的手动控制(如,按钮或开关); ——用于物理状态输出的物理状态指示仪(如,指示灯或显示器); ——逻辑接口到物理端口、手动控制和模块物理状态显示之间的映射; ——上述端口和接口的物理的,逻辑的和电气的特性。 CY :送检单位文档中应通过GM/T 附录A.2.2和B.2.2要求提供的框图、设计规格、源代码以及原理图,说明密码模块的信息流和物理接入点。同时还需提供其他有助于明确说明信息流、物理接入点和物理端口、逻辑接口的关系的文档。 CY :对于密码模块的每一个物理或逻辑的输入,以及物理或逻辑的输出,送检单位的文档中应明确逻辑接口所对应的物理输入或输出。 JY :检测人员应核实送检单位的文档说明了密码模块的每个物理端口和逻辑接口。 JY :检测人员应通过检查GM/T 附录A.2.2和B.2.2要求提供的框图、设计规格、源代码以及原理图,以核实送检单位的文档说明了密码模块的所有信息流和物理接入点信息。文档还应说明密码模块信息流和物理访问点与密码模块逻辑接口和物理端口之间的关系。 JY :检测人员应核实对于每个密码模块的物理或逻辑输入,以及物理或逻辑输出,送检单位的文档明确逻辑接口所对应的物理输入或输出。 JY :检测人员应通过检查密码模块,核实送检单位文档中的说明与密码模块的实际设计一致。 接口类型 接口定义 可信信道

19 安全检测 要求—密码模块接口(2) 密码模块接口 密码模块接口通用要求 接口类型 接口定义 可信信道
无检测要求。 ——硬件模块接口(HMI)定义为用于请求硬件模块服务的命令全集,请求服务的命令中包括输入到密码模块或者由密码模块输出的参数。 ——软件或固件模块接口(SFMI)定义为用于请求软件或固件模块服务的命令全集,请求服务的命令中包括输入到密码模块或者由密码模块输出的参数。 ——混合软件或混合固件模块接口(HSMI或HFMI)定义为用于请求混合固件模块服务的命令全集,请求服务的命令中包括输入到密码模块或者由密码模块输出的参数。 接口定义 本条款不单独进行检测。 AY03.04:(安全级别1,2,3,4) 密码模块应当具备下列五种接口(“输入”和“输出”是相对于模块而言的): ——数据输入接口 ——数据输出接口 ——控制输入接口 ——控制输出接口 ——状态输出接口 可信信道 电源接口:不是必须的,当所有能量由密码模块的密码边界内部提供或维持时,电源接口可以不存在。

20 安全检测 要求—密码模块接口(3) 密码模块接口 密码模块接口通用要求 接口类型 接口定义 可信信道
AY03.17:(安全级别3,4) 可信信道应当防止在通信链路上的非授权修改、替换和泄露。 CY :送检单位的文档中应说明可信信道可以防止在通信链路上的非授权修改、替换和泄露。 JY :检测人员未授权修改可信信道上传输的数据,应该不被接受。 JY :检测人员替换可信信道上传输的数据,应该不被接受。 JY :检测人员应无法侦听获取到可信信道上传输的数据。 可信信道是在密码模块和发送者或接收者之间建立的链路,用于安全传输未保护的明文CSP、密钥分量以及鉴别数据。可信信道在模块定义的输入或输出端口以及预期的发送者或接收者终端的通信链路上,可以防止窃听以及来自恶意的操作员/实体、进程或其它设备的物理或逻辑篡改。

21 安全检测 要求—密码模块接口(4) 安全一级 安全二级 安全三级 安全四级 AY03.01 √ AY03.02 AY03.03
安全一级 安全二级 安全三级 安全四级 AY03.01 AY03.02 AY03.03 AY03.04 AY03.05 AY03.06 AY03.07 AY03.08 AY03.09 AY03.10 AY03.11 AY03.12 AY03.13 AY03.14 AY03.15 AY03.16 AY03.17 AY03.18 AY03.19 AY03.20 AY03.21 AY03.22

22 安全检测 要求—角色、服务和鉴别(1) 角色、服务和鉴别 角色、服务和鉴别通用要求 角色 服务 鉴别
AY04.01:(安全级别1,2,3,4) 密AY04.02:(安全级别1,2,3,4) 如果密码模块支持多个操作员同时操作,那么模块内部应当确保各个操作员担任的角色相隔离及相应的服务相隔离。 码模块应当支持操作员的授权角色以及与每个角色相对应的服务。 CY :送检单位的文档中应说明是否支持多个操作员同时操作。 CY :如果密码模块支持多个操作员同时操作,送检单位应描述怎样实现每一个操作员担任角色相隔离及相应服务相隔离的方法。 CY :送检单位的文档还应描述对多个操作员的限制(例如,不允许一个操作员既是维护员角色又是用户角色)。 JJY :检测人员应核实送检单位的文档中如实描述密码模块实现的多个操作员角色与服务强制相隔离的方法。 JY :检测人员应担任两个独立操作员的身份:操作员1和操作员2。操作员应赋予不同的角色。检测人员应核实,每个角色只执行分配于其角色的服务。对于每一个操作员,检测人员应测试其可否执行其他操作员担任角色的服务,以此来核实不同操作员角色与服务的分离。 JY :如果送检单位的文档给出关于多个操作员行为的限制条件,检测人员应尝试以独立操作员身份并行地担任受限角色,尝试违反限制条件,以此核实模块通过阻止第二操作员担任角色,强制执行这些约束。 角色 服务 鉴别

23 安全检测 要求—角色、服务和鉴别(2) 角色、服务和鉴别 角色、服务和鉴别通用要求 角色 服务 鉴别
AY04.07:(安全级别1,2,3,4) 当进入或退出维护员角色时,所有不受保护的SSP应当被置零。 CY :送检单位的文档中应说明当维护员角色登录或退出时,模块的SSP是怎样动态清零的。 JY :如果送检单位的文档说明密码模块实现了维护员角色,检测人员应核实送检单位的文档说明当进入或退出维护员角色时,清零所有未经加密的SSP的方法。 JY :在非维护员角色状态下,检测人员应为所有未经加密的SSP加载非零值。进入维护员角色后,检测人员应核实清零已被执行。 JY :在维护员角色状态下,检测人员应为所有未经加密的SSP加载非零值,从维护员角色退出后,检测人员应核实清零已被执行。 服务 鉴别 密码模块可以支持维护角色。维护角色是指在物理维护服务(例如,打开模块封盖)和/或逻辑维护服务(例如,运行某种诊断如内置的自测试(BIST))时担任的角色。

24 安全检测 要求—角色、服务和鉴别(3) 角色、服务和鉴别 角色、服务和鉴别通用要求 角色 服务 鉴别
旁路能力是指某种服务所具备的部分或全部绕过密码功能的能力。密码模块输出的数据是受到密码技术保护的(例如,经过加密),但是通过更改密码模块的配置或者由于操作员的干预,密码模块能够将数据直接输出(例如,不再经过加密),此时,应当[04.18]定义该模块具有旁路能力。 角色、服务和鉴别 角色、服务和鉴别通用要求 角色 服务 旁路能力 自启动密码输出能力 软件/固件加载 鉴别 自启动密码输出能力是指无需外界操作员请求,模块就能够执行密码操作和其它核准的安全功能或SSP管理技术。自启动密码输出能力应当[04.23]由密码主管配置,而且该配置可能在模块经过重置、重启或开关电源之后可以保留下来。 服务应当[04.08]指的是密码模块所能执行的所有服务、操作或功能。服务输入应当[04.09]包括密码模块在启动或获取特定服务、操作或功能时,所使用的所有数据或控制输入。服务输出应当[04.10]包括由服务输入启动或获取的服务、操作或功能,所产生的所有数据和状态输出。每个服务输入应当[04.11]产生一个服务输出。

25 安全检测 要求—角色、服务和鉴别(4) 角色、服务和鉴别 角色、服务和鉴别通用要求 角色 服务 鉴别
AY04.46:(安全级别1,2,3,4) 应当保护密码模块内的鉴别数据以防止非授权的泄露、修改和替换。 CY :送检单位的文档中应描述模块所有鉴别数据的保护措施。保护措施应包括防止未经授权的泄露、修改和替换机制。 JY :检测人员应审查送检单位的文档,核实文档描述了鉴别数据的保护措施。检测人员应核实文档描述了如何保护数据,从而防止未经授权的泄露、修改和替换。 JY :检测人员应进行如下测试: ——尝试访问(绕开文件保护机制)未给检测人员授权访问的鉴别数据。如果模块拒绝访问或只不允许访问加密数据或其他保护形式的数据,符合规定。 ——使用送检单位的文档未说明的方法修改鉴别数据,并尝试输入修改后的数据。模块应不允许检测人员使用修改后的数据进行鉴别。 密码模块可能需要多种类型的鉴别数据以实现模块支持的鉴别机制,包括(但不限于)知道或拥有口令、PIN、密钥之类;拥有物理钥匙、令牌之类;或验证个人特征(例如,生物特征)。

26 安全检测 要求—角色、服务和鉴别(5) … 安全一级 安全二级 安全三级 安全四级 AY04.01 √ AY04.02 AY04.03
安全一级 安全二级 安全三级 安全四级 AY04.01 AY04.02 AY04.03 AY04.04 AY04.05 AY04.06 AY04.07 AY04.08 AY04.09 AY04.10 AY04.11 AY04.12 AY04.13 AY04.14 AY04.15 AY04.16 AY04.17 AY04.18 AY04.19 AY04.20 AY04.37 安全一级 安全二级 安全三级 安全四级 AY04.38 AY04.39 AY04.40 AY04.41 AY04.42 AY04.43 AY04.44 AY04.45 AY04.46 AY04.47 AY04.48 AY04.49 AY04.50 AY04.51 AY04.52 AY04.53 AY04.54 AY04.55 AY04.56 AY04.57 AY04.58 AY04.59 AY04.60 AY04.61

27 安全检测 要求—软件/固件安全(1) 软件/固件安全 送检文档应说明核准的数字签名机制。 AY05.05:(安全级别1,2,3,4)
密码边界内的所有软件和固件部件应当使用核准的完整性技术进行保护,这些完整性技术可以由该密码模块提供,也可以由另一个经审验的密码模块提供。 AY05.06:(安全级别1,2,3,4) 如果完整性测试失败,模块应当进入错误状态。 AY05.15:(安全级别2,3,4) 密码边界内的所有软件或固件应当使用核准的数字签名或带密钥的消息鉴别码进行保护。 AY05.16:(安全级别2,3,4) {接AY05.15}如果计算的结果不等于之前生成的结果,则测试失败,并且模块应当进入错误状态。 AY05.18:(安全级别3,4) 密码边界内的所有软件和固件应当使用核准的数字签名进行保护。 CY :送检文档应说明核准的数字签名机制。 JY :检测人员应通过检查密码模块核实密码边界内的所有软件和固件部件使用的加密机制了包含已核准的数字签名机制。 JY :检测人员应使用已核准的数字签名计算的结果与之前生成的结果进行比较,如果不相等,则测试失败,模块进入错误状态。 送检文档应说明核准的数字签名机制。

28 安全检测 要求—软件/固件安全(2) 安全一级 安全二级 安全三级 安全四级 AY05.01 √ AY05.02 AY05.03
安全一级 安全二级 安全三级 安全四级 AY05.01 AY05.02 AY05.03 AY05.04 AY05.05 AY05.06 AY05.07 AY05.08 AY05.09 AY05.10 AY05.11 AY05.12 AY05.13 AY05.14 AY05.15 AY05.16 AY05.17 AY05.18 AY05.19 AY05.20 AY05.21

29 安全检测 要求—运行环境(2) 密码模块运行环境是指对模块运行所需的软件、固件、和/或硬件的管理。
通用运行环境是指使用商用的通用操作系统(即资源管理器)来管理软件和固件部件,以及管理系统和操作员进程/线程。 运行环境可以是不可修改的、受限制的或可修改的。 受限或不可修改运行环境的操作系统要求 AY06.04:(安全级别1)如果模块在“物理安全”这一安全域达到安全一级,则需满足安全一级操作系统的安全。 AY06.06:(安全级别1,2)运行环境应当提供应用进程间相互隔离的能力,以阻止进程间对CSP不受控的访问以及对SSP不受控的修改,无论CSP和SSP是在进程内存中还是存储在运行环境内的永久性存储体中。 AY06.10:(安全级别2)所有密码软件、SSP、控制和状态信息应当在操作系统的控制之下。操作系统实现了基于角色的访问控制,或者实现了自主访问控制,该自主访问控制可通过访问控制列表(ACL)来定义新的组和分配权限,并且能够给每个用户分配多个组。 AY06.11:(安全级别2) 操作系统应当正确配置,以防止非授权地执行、修改和读取SSP、控制和状态数据。

30 操作系统能够达到的最大整体安全等级限定为安全二级。
安全检测 要求—运行环境(2) 安全一级 安全二级 安全三级 安全四级 AY06.01 AY06.02 AY06.03 AY06.04 AY06.05 AY06.06 AY06.07 AY06.08 AY06.09 AY06.10 AY06.11 AY06.12 AY06.13 AY06.14 AY06.15 安全一级 安全二级 安全三级 安全四级 AY06.16 AY06.17 AY06.18 AY06.19 AY06.20 AY06.21 AY06.22 AY06.23 AY06.24 AY06.25 AY06.26 AY06.27 AY06.28 AY06.29 操作系统能够达到的最大整体安全等级限定为安全二级。

31 安全检测 要求—物理安全(1) 物理安全 物理安全实体 通用物理安全要求 物理安全实体的物理安全要求 环境失效保护/测试 单芯片密码模块
多芯片密码模块 多芯片独立式密码模块 环境失效保护/测试 通用要求 环境失效保护特性 环境失效测试程序

32 安全检测 要求—物理安全(2) 物理安全 物理安全实体 通用物理安全要求 物理安全实体的物理安全要求 环境失效保护/测试 单芯片密码模块
单芯片密码模块是指由单个集成电路(IC)芯片构成的模块,该芯片可以作为独立模块使用,或者可以嵌入一个可能没有物理保护的外壳或产品内。单芯片密码模块的例子有单IC芯片和单IC芯片智能卡 物理安全 物理安全实体 通用物理安全要求 物理安全实体的物理安全要求 单芯片密码模块 多芯片密码模块 多芯片独立式密码模块 环境失效保护/测试 通用要求 环境失效保护特性 环境失效测试程序 多芯片嵌入式密码模块是指由两个或多个互相连接的IC芯片构成的模块,这些芯片嵌入在一个可能没有物理保护的外壳或产品内。多芯片嵌入式密码模块的例子有适配器和扩展板。 多芯片独立式密码模块是指由多个互相连接的IC芯片构成的模块,该模块的整个外壳受到物理保护。多芯片独立密码模块的例子有加密路由器、安全无线电话和USB令牌。

33 安全检测 要求—物理安全(3) 所有实体的通用要求 单芯片密码模块 多芯片嵌入式密码模块 多芯片独立密码模块 安全一级 产品级部件。 标准钝化处理。 当访问维护访问接口时,按照规程置零或自动置零。 无额外要求。 产品级的外壳或封盖。 安全二级 显示拆卸的证据 在可见光谱下不透明或半透明。 防止通过孔或缝直接观察。 芯片或外壳上拆卸存迹的涂层。 拆卸存迹的封装材料或外壳,其门上、封盖上带有拆卸存迹的封条或防撬锁。 安全三级 拆卸响应与置零电路。 当访问维护访问接口时,自动置零。 防止通过孔和缝进行探测。 针对温度和电压的EFP或EFT。 芯片上拆卸存迹的硬质涂层,或者抗擦除、抗穿透的坚固外壳。 拆卸存迹的硬质封装材料或坚固外壳。 安全四级 拆卸检测和响应封套。 针对温度与电压的EFP。 防止错误注入。 芯片上抗擦除的硬质涂层。 拆卸检测和具有置零能力的响应封套。 安全一级提出了最基本的安全要求。安全二级增加了拆卸存迹机制的要求,以及确保无法对模块关键区域的内部操作收集信息的要求。安全三级增加了使用坚固或硬质的保形或不保形外壳的要求,要求外壳的封盖和门具有拆卸检测和响应机制,并且要求抵抗通过开口或入口的直接探测。安全三级还要求具备环境失效保护(EFP)或环境失效测试(EFT)。安全四级进一步增加了使用坚固或硬质、保形或不保形外壳的要求,要求整个外壳具有拆卸检测和响应机制。安全四级还要求具备环境失效保护(EEP),以防止错误注入攻击。

34 安全检测 要求—物理安全(4) AAY07.81:(安全级别4)
温度范围应当按照下列方式测试:从正常运行温度范围内下降到最低温度,此时要么模块关闭防止继续运行,要么立即置零所有未受保护的SSP;并且应从正常运行温度范围内上升到最高温度,此时要么模块关闭防止继续运行,要么立即置零所有未受保护的SSP。 AY07.82:(安全级别4) 温度的测试范围应当为-100℃~+200℃。 AY07.83:(安全级别4) {接AY07.82}而且,一旦模块被关闭以防止继续运行,或所有未受保护的SSP被立即置零,或模块进入故障模式,则测试应当立即中断。 AY07.84:(安全级别4) 应当在敏感部件和关键设备处,而不仅在物理边界内,对温度进行内部实时监测。 CY :如果EFP在特定条件下使用,模块应在AY07.82中提到的温度和电压范围内进行检测。模块应满足: ——继续正常运行;或者 ——停止;或者 ——置零所有未经加密的SSP 文档应描述选择的方法,并且提供对EFT的详细描述。 JC :检测人员应按照AY07.82的要求说明配置环境条件(周围的温度和电压),并核实模块要么继续正常运行,要么停止以阻止进一步操作,要么置零所有未经加密的CSP。 JC :如果模块的设计可置零所有未经加密的SSP,并且在恢复正常环境条件后模块仍然运行,则检测人员应完成需要密钥的任务以核实模块自身不能完成这些任务。 a

35 安全检测 要求—物理安全(5) 安全一级 安全二级 安全三级 安全四级 安全一级 安全二级 安全三级 安全四级 AY07.54 √
安全一级 安全二级 安全三级 安全四级 AY07.17 AY07.18 AY07.19 AY07.20 AY07.21 AY07.22 AY07.23 AY07.24 AY07.25 AY07.26 AY07.27 AY07.28 AY07.29 AY07.30 AY07.31 AY07.32 AY07.33 AY07.34 AY07.35 AY07.36 AY07.37 AY07.38 AY07.39 AY07.40 AY07.41 AY07.42 AY07.43 AY07.44 AY07.45 AY07.46 AY07.47 AY07.48 AY07.49 AY07.50 AY07.51 AY07.52 AY07.53 安全一级 安全二级 安全三级 安全四级 AY07.54 AY07.55 AY07.56 AY07.57 AY07.58 AY07.59 AY07.60 AY07.61 AY07.62 AY07.63 AY07.64 AY07.65 AY07.66 AY07.67 AY07.68 AY07.69 AY07.70 AY07.71 AY07.72 AY07.73 AY07.74 AY07.75 AY07.76 AY07.77 AY07.78 AY07.79 AY07.80 AY07.81 AY07.82 AY07.83 AY07.84 AY07.85 AY07.86

36 安全检测 要求—非侵入式安全(1) 附录F:非侵入式攻击及常用的缓解方法
AY08.04:(安全级别1,2,3,4) 文档中应当阐明用于保护模块CSP免受{GM/T }附录F中的所有非入侵式攻击的缓解技术。 AY08.05:(安全级别1,2,3,4) 如果有相应措施,文档应当包括可以证明每个缓解技术有效性的证据。 AY08.06:(安全级别3) 密码模块应当实现用于保护CSP免受{GM/T }附录F中的所有非入侵式攻击的缓解技术。 AY08.07:(安全级别3) 文档应当包括可以证明每个缓解技术有效性的证据,并提供测试方法。 AY08.08:(安全级别4) 密码模块应当接受测试以满足核准的非入侵式攻击缓解测试指标的要求。 附录F:非侵入式攻击及常用的缓解方法 能量分析:使用电容、使用内部电源、随机化密码算法或过程中的指令序列、采用双轨预充电电路来平滑能量消耗;或者采用掩码的方法,改变导致能量消耗变化的中间值。 计时分析:通过控制算法或者过程中各指令的运行,可以降低过程中的时间波动,这是降低计时攻击风险的一种方法。 电磁泄漏:通过对包括网络线在内的全部组件添加屏蔽套,可以降低电磁泄露攻击的风险。

37 安全检测 要求—非侵入式安全(2) 安全一级 安全二级 安全三级 安全四级 AY08.01 √ AY08.02 AY08.03
安全一级 安全二级 安全三级 安全四级 AY08.01 AY08.02 AY08.03 AY08.04 AY08.05 AY08.06 AY08.07 AY08.08

38 安全检测 要求—敏感安全参数管理(1) 敏感安全参数管理 通用要求 随机比特生成器 敏感安全参数的生成 敏感安全参数的建立
加密的CSP是指使用核准的安全功能加密的CSP。在本标准范围内,采用非核准的安全功能加密的CSP在本标准中被认为是未受保护的明文。 敏感安全参数管理 通用要求 随机比特生成器 敏感安全参数的生成 敏感安全参数的建立 敏感安全参数的输入和输出 敏感安全参数的存储 敏感安全参数的置零 敏感安全参数(SSP)包括关键安全参数(CSP)和公共安全参数(PSP)。SSP管理的安全要求涵盖了模块中SSP的整个生命周期。

39 安全检测 要求—敏感安全参数管理(2) 敏感安全参数管理 通用要求 随机比特生成器 敏感安全参数的生成 敏感安全参数的输入和输出
敏感安全参数的建立 敏感安全参数的存储 敏感安全参数的置零 AY09.01:(安全级别1,2,3,4) CSP应当在模块内受保护以防止非授权的访问、使用、泄露、修改和替换。 AY09.02:(安全级别1,2,3,4) PSP应当在模块内受保护以防止非授权的修改和替换。 AY09.04:(安全级别1,2,3,4) 口令的杂凑值、随机比特生成器状态信息和密钥生成的中间值应当被视为受保护的CSP。 AY09.15:(安全级别1,2,3,4) 所有受密码技术保护的SSP,无论是输入模块的或从模块输出的,都应当使用核准的安全功能进行加密。 AY09.16:(安全级别1,2,3,4) 如果加密的SSP直接输入到模块,则SSP的明文值不应当显示出来。 AY09.22:(安全级别3,4) CSP、密钥分量和鉴别数据应当以加密的形式或通过可信信道输入或输出模块。 AY09.23:(安全级别3,4) 作为CSP,明文形式的对称密钥和私钥应当使用知识拆分过程,并使用可信信道输入或输出模块。

40 安全检测 要求—敏感安全参数管理(3) Y09.32:(安全级别2,3,4)
密码模块应当对未受保护的SSP执行置零(例如,使用全0或全1或随机数据覆盖)。 CY :送检单位文档应详细说明以下SSP置零信息: ——置零技术 ——约束(当明文SSP能被置零时) ——置零的明文SSP ——未置零的明文SSP和原理 ——说明如何在危害明文SSP之前执行置零技术 JY :检测人员应核实送检单位的文档满足了CY 的要求。检测人员应核实送检单位提供的基本原理的准确性。送检单位负责提供相关证明;如果有任何不确定或模糊之处,检测人员应要求送检单位提供需要的附加信息。 JY :检测人员应核实模块中有哪些密钥可初始化置零指令。置零指令完成之后,检测人员应尝试用存储在模块中的每一个明文SSP执行密码操作。检测人员应核实所有明文SSP都不可访问。 JY :检测人员应初始化置零指令,确认可在危害明文SSP之前执行密钥销毁。 JY :检测人员应核实不能被置零指令置零的所有明文SSP是经过核准的算法加密的,或受其他经审验的嵌入式模块(满足GM/T 0028—2014要求)在逻辑或物理上保护的。

41 安全检测 要求—敏感安全参数管理(4) 安全一级 安全二级 安全三级 安全四级 AY09.01 √ AY09.02 AY09.03

42 安全检测 要求—自测试(1) 自测试 通用要求 运行前自测试 条件自测试 运行前自测试通用要求 运行前软件/固件完整性测试 运行前旁路测试
运行前关键功能测试 条件自测试 条件自测试通用要求 密码算法条件自测试 配对一致性条件测试 软件、固件加载条件测试 手动输入条件测试 旁路条件测试 关键功能条件测试 周期自测试 运行前自测试应当[在模块提供任何数据输出(通过数据输出接口)之前被执行,并成功通过。 条件自测试应当在相应的安全功能或进程被调用时执行。

43 安全检测 要求—自测试(2) 自测试 通用要求 运行前自测试 条件自测试 运行前自测试通用要求 运行前软件/固件完整性测试 运行前旁路测试
AY10.05:(安全级别1,2,3,4)、AY10.06:(安全级别1,2,3,4) 密码模块应当对其实现的{GM/T }附录C、附录D、附录E中定义的密码算法,执行对应的自测试。 AY10.06:(安全级别1,2,3,4) 如果密码模块自测试失败,模块应当进入错误状态。 AY10.08:(安全级别1,2,3,4) 在错误状态下,密码模块不应当执行任何密码操作,或通过控制、数据输出接口输出控制和数据。 自测试 通用要求 运行前自测试 运行前自测试通用要求 运行前软件/固件完整性测试 运行前旁路测试 运行前关键功能测试 条件自测试 条件自测试通用要求 密码算法条件自测试 配对一致性条件测试 软件、固件加载条件测试 手动输入条件测试 旁路条件测试 关键功能条件测试 周期自测试 AY10.34:(安全级别1, 2,3,4) 如果一个密码模块生成公私钥对,配对一致性测试应当对每对生成的公钥和私钥(由{GM/T }附录C、附录D、附录E规定的适用的密码算法生成)执行。 AY10.52:(安全级别1, 2,3,4) 密码模块应当允许操作员在有周期测试需求的情况下,启动运行前自测试和条件自测试。请求启动周期自测试的方法包括:利用已有自测试服务、复位、重启、上电循环。 Y10.53:(安全级别3, 4) 模块应当在已定义的时间周期内,自动重复执行运行前或条件自测试,而无需外部的输入或控制。

44 安全检测 要求—自测试(3) AY10.36:(安全级别1, 2,3,4) 密码模块应当实现核准的鉴别技术以验证加载软件或固件是经过审验的。
CY :送检文档应描述密码模块为验证加载软件或固件完整性而实现的核准的鉴别技术。 CY :如果模块实现了核准的鉴别技术,送检单位应按照CY 的要求提交相关的有效证明。 CY :送检文档应描述在软件/固件加载之前,如何将核准的鉴别技术所需的鉴别密钥独立地加载到模块中的。 CY :如果软件/固件加载测试失败,则加载的软件/固件不可使用,送检文档应描述这一实现机制。 JY :检测人员应通过文档审查确定软件/固件加载测试采用了哪些核准的鉴别技术。 JY :检测人员应确认针对模块实现的核准的鉴别技术,送检单位提交了符合CY 要求的有效证明。 JY :如果模块在软件/固件的加载测试中采用了核准的鉴别技术,那么检测人员应确认送检文档包含以下内容: 所采用的核准的鉴别技术的具体说明; 采用该核准的鉴别技术的软件和固件; 当软件和固件加载完成后,所采用的核准的鉴别技术的计算; 当加载测试启动后,所采用核准的鉴别技术的验证; 如果核准的鉴别技术认证失败,则该项自测试失败。 JY :检测人员应通过代码和/或设计文档审查,确认软件/固件的加载测试与JY 、 JY 和JY 一致。 JY :检测人员应通过修改加载的软件或固件或实施认证机制,启动自测试,并从状态输出接口观察输出指示来测试模块。如果未检测到软件/固件加载测试不通过的输出指示,则该项检测不通过。如果检测人员不能修改加载的软件或固件或实施认证机制,则送检单位应为检测人员提供合理的解释,以说明该测试不能通过的原因。 JY :检测人员应运行密码模块,修改加载的软件、固件或参考的鉴别签名或实施认证机制,然后启动软件/固件加载测试。在自测试失败后,检测人员应确认加载的软件或固件不可使用,且模块的版本信息未改变。 JY :检测人员应通过代码和/或设计文档审查,确认参考的鉴别签名的加载与软件/固件的加载是互相独立的。 JY :检测人员应通过代码和/或设计文档审查,确认如果没有在软件/固件加载之前加载参考的鉴别签名,软件/固件加载测试将失败。 JY :检测人员应运行密码模块,且在不加载参考的鉴别签名的情况下启动软件/固件加载测试。如果加载测试成功,则本项检测不通过。

45 安全检测 要求—自测试(4) 安全一级 安全二级 安全三级 安全四级 AY10.01 √ AY10.02 AY10.03 AY10.04

46 安全检测 要求—生命周期保障(1) 生命周期保障 通用要求 配置管理 设计 有限状态模型 开发 供应商测试 配送与操作 生命终止 指南文档
密码模块的操作应当使用有限状态模型(或同等模型)来说明,该有限状态模型是用状态转移图、状态转移表和状态描述来表示的。有限状态模型应当足够详细,以证明密码模块符合本标准的所有要求。 生命周期保障 通用要求 配置管理 设计 有限状态模型 开发 供应商测试 配送与操作 生命终止 指南文档 安全一级 安全二级 安全三级 安全四级 AY10.01 AY10.02 AY10.03 AY10.04 AY10.05 AY10.06 AY10.07 AY10.08 AY10.09 AY10.10 AY10.11 AY10.12 AY10.13 AY10.14 AY10.15 AY10.16 AY10.17 AY10.18 AY10.19 AY10.20 AY10.21 AY10.22 AY10.23 AY10.24 AY10.25 密码模块的FSM至少包括: 电源开启/关闭状态 、普通初始化状态 密码主管状态、CSP输入状态 用户状态、核准的状态 自测试状态、错误状态 可能包括: 旁落状态、不活动状态

47 安全检测 要求—生命周期保障(2) 生命周期保障 通用要求 配置管理 开发 有限状态模型 设计 供应商测试 配送与操作 生命终止 指南文档
AY11.03:(安全级别1,2,3,4) 密码模块及其部件的开发过程以及相关文档都应当使用配置管理系统管理。 AY11.06:(安全级别3,4) 应当使用自动的配置管理系统对配置条目进行管理。 AY11.16:(安全级别1,2,3,4) 如果密码模块包含软件或固件,那么源代码应当用注释进行标注,注释应该描述出软件或固件与模块设计的对应关系。 AY11.17:(安全级别1,2,3,4) 如果密码模块包含硬件,若适用,文档应当阐明电路图和/或硬件描述语言(HDL)。 AY11.18:(安全级别1,2,3,4) 如果密码模块包含硬件,HDL代码应当用注释进行标注,注释应当描述出硬件与模块设计的对应关系。 AY11.23:(安全级别2,3,4) 密码模块内所有软件或固件应当采用高级非私有语言实现。{或满足AY011.24的要求}。 AY11.24:(安全级别2,3,4) {如果不满足AY011.23的要求}如果低级语言对模块的性能有重要作用或在高级语言无法使用的情况下,应当在使用低级语言(例如,汇编语言或微指令)时给出根据。 AY11.25:(安全级别2,3,4) 密码模块内的定制集成电路应当采用高级硬件描述语言(HDL)实现(例如,VHDL或Verilog)。 AY11.28:(安全级别4) 对于每个密码模块的硬件和软件部件,文档应当具有注释,以阐明:进入模块部件、功能或程序时,为确保执行正确所需要的前置条件;模块部件、功能和程序完成时,预期值为真的后置条件。 安全一级 安全二级 安全三级 安全四级 AY10.01 AY10.02 AY10.03 AY10.04 AY10.05 AY10.06 AY10.07 AY10.08 AY10.09 AY10.10 AY10.11 AY10.12 AY10.13 AY10.14 AY10.15 AY10.16 AY10.17 AY10.18 AY10.19 AY10.20 AY10.21 AY10.22 AY10.23 AY10.24 AY10.25

48 安全检测 要求—生命周期保障(3) 安全一级 安全二级 安全三级 安全四级 AY10.01 √ AY10.02 AY10.03

49 安全检测 要求—对其它攻击的缓解 AY12.02:(安全级别1,2,3,4)
密码模块可能还容易受到一些在本标准内其它章节未定义的攻击,模块对攻击的敏感性取决于模块的类型、实现以及实现环境。恶意环境(例如,攻击者可能是模块的授权操作员)中的密码模块可能特别关注这些攻击。这些攻击通常从模块物理外部获得一些信息并依靠分析这些信息进行攻击。在任何情况下,这些攻击都将试图确定关于密码模块中CSP的某些信息。 AY12.02:(安全级别1,2,3,4) 如果将密码模块设计为可缓解一种或多种在本标准中未定义的特定攻击,那么模块的相关文档应当列举出模块能够缓解的攻击。 AY12.04:(安全级别4) 如果声明了能够缓解本标准未定义的特定攻击,则文档应当说明缓解攻击的方法以及测试该缓解技术有效性的方法。 安全一级 安全二级 安全三级 安全四级 AY12.01 AY12.02 AY12.03 AY12.04

50 安全检测 要求 文档要求 密码模块规格 密码模块接口 角色、服务和鉴别 软件/固件安全 运行环境 物理安全 非入侵式安全 敏感安全参数管理
自测试 生命周期保障 对其它攻击的缓解 文档要求

51 谢 谢!


Download ppt "密码模块安全检测要求 崔永娜 国家密码管理局商用密码检测中心 2019年1月17日."

Similar presentations


Ads by Google