GMT0028 《密码模块安全技术要求》详细解读课件.ppt

上传人:牧羊曲112 文档编号:1829387 上传时间:2022-12-21 格式:PPT 页数:98 大小:3.96MB
返回 下载 相关 举报
GMT0028 《密码模块安全技术要求》详细解读课件.ppt_第1页
第1页 / 共98页
GMT0028 《密码模块安全技术要求》详细解读课件.ppt_第2页
第2页 / 共98页
GMT0028 《密码模块安全技术要求》详细解读课件.ppt_第3页
第3页 / 共98页
GMT0028 《密码模块安全技术要求》详细解读课件.ppt_第4页
第4页 / 共98页
GMT0028 《密码模块安全技术要求》详细解读课件.ppt_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《GMT0028 《密码模块安全技术要求》详细解读课件.ppt》由会员分享,可在线阅读,更多相关《GMT0028 《密码模块安全技术要求》详细解读课件.ppt(98页珍藏版)》请在三一办公上搜索。

1、GM/T 00282014密码模块安全技术要求,详细解读李 勃2018年11月20日,引言,密码的安全性与可靠性直接取决于实现它们的密码模块。本标准规定了四个递增的、定性的安全要求等级。本标准规定的安全要求涵盖了有关密码模块的安全设计、实现、运行与废弃的安全元素(域)。本标准对密码模块提出了安全要求,但不对密码模块的正确应用和安全部署进行规范。,1 范围,本标准针对用于保护计算机与电信系统内敏感信息的安全系统所使用的密码模块,规定了安全要求。本标准为密码模块定义了4个安全等级,以满足敏感数据以及众多应用领域的、不同程度的安全需求。针对密码模块的11个安全域,本标准分别给出了四个安全等级的对应要

2、求,高安全等级在低安全等级的基础上进一步提高了安全性。,5.1 密码安全等级 概述,密码模块是指实现密码运算、密钥管理等功能的硬件、软件、固件或者其组合。为了保护密码模块和密码模块中包含和控制的敏感安全参数,本标准规定了4个要求递增的安全等级。,5.2 安全一级,安全一级提供了最低等级的安全要求。例如:模块应当使用至少一个核准的安全功能或核准的敏感安全参数建立方法。软件或固件模块可以运行在不可修改的、受限的或可修改的运行环境中。安全一级硬件密码模块除了需要达到产品级部件的基本要求之外,没有其他特殊的物理安全机制要求。安全一级密码模块的例子有:个人计算机中的硬件加密板卡运行在手持设备或通用计算机

3、上的密码工具包当模块外部的应用系统已经配置了物理安全、网络安全以及管理过程等控制措施时,安全一级的模块就非常适用(经济性)。,5.3 安全二级 1/2,安全二级在安全一级的基础上增加了拆卸证据的要求,例如使用拆卸存迹的涂层或封条,或者在封盖或门上加防撬锁等手段以提供拆卸证据。拆卸存迹的封条或防撬锁应安装在封盖或门上,以防止非授权的物理访问。当物理访问模块内的安全参数时,模块上拆卸存迹的涂层或封条就必须破碎。,5.3 安全二级 2/2,安全二级要求基于角色的鉴别。密码模块需要鉴别并验证操作员的角色,以确定其是否有权执行对应的服务。安全二级的软件密码模块可以运行在可修改的环境中,该环境应实现基于角

4、色的访问控制或自主访问控制,但自主访问控制应当能够定义新的组,通过访问控制列表(ACL)分配权限,以及将一个用户分配给多个组。访问控制措施应防止非授权地执行、修改以及读取实现密码功能的软件。,5.4 安全三级 1/3,除了安全二级中要求的拆卸存迹物理安全机制外,安全三级还要求更强的物理安全机制,以进一步防止对密码模块内敏感安全参数的非授权访问。这些物理安全机制应该能够以很高的概率检测到以下行为并作出响应,这些行为包括:直接物理访问密码模块的使用或修改以及通过通风孔或缝隙对模块的探测上述物理安全机制可以包括坚固的外壳、拆卸检测装置以及响应电路。当密码模块的封盖/门被打开时,响应电路应当将所有的关

5、键安全参数置零。,5.4 安全三级 2/3,安全三级要求基于身份的鉴别机制,以提高安全二级中基于角色的鉴别机制的安全性。密码模块需要鉴别操作员的身份,并验证经鉴别的操作员是否被授权担任特定的角色以及是否能够执行相应的服务。安全三级要求手动建立的明文关键安全参数是经过加密的、使用可信信道或使用知识拆分来输入或输出。安全三级的密码模块应有效防止电压、温度超出模块正常运行范围对密码模块安全性的破坏。攻击者可以故意让密码模块的环境参数偏离正常运行范围,从而绕过密码模块的防护措施。密码模块应当设计有环境保护特性,用以检测环境异常并置零关键安全参数,或者能够通过环境失效测试从而提供一个合理的保障,确保不会

6、因环境异常破坏模块的安全性。,5.4 安全三级 3/3,安全三级的密码模块应提供非入侵式攻击缓解技术的有效性证据和测试方法。对于软件密码模块,并没有在本标准的所有条款中给出安全三级的要求。因此,软件密码模块能够达到的最大整体安全等级限定为安全二级。安全三级的密码模块增加了生命周期保障的要求,比如自动配置管理、详细设计、底层测试以及基于厂商所提供的鉴别信息的操作员鉴别。,5.5 安全四级 1/3,安全四级是本标准中的最高安全等级。该等级包括较低等级中所有的安全特性,以及一些扩展特性。安全四级的物理安全机制应当在密码模块周围提供完整的封套保护,其目的是无论外部电源是否供电,当模块包含敏感安全参数时

7、,检测并响应所有非授权的物理访问。从任何方向穿透密码模块的外壳都会以很高的概率被检测到,并将导致所有未受保护的敏感安全参数立刻被置零。由于安全四级的密码模块自身具有较高的安全机制,所以它特别适用于无物理保护的环境。,5.5 安全四级 2/3,安全四级要求对操作员进行多因素鉴别。最低限度下,要求使用下列因素中的两个:已知某物,如秘密口令;拥有某物,如物理钥匙或令牌;物理属性,如生物特征。,5.5 安全四级 3/3,安全四级的密码模块应有效防止电压、温度超出模块正常运行范围对密码模块安全性的破坏。密码模块应当设计有环境保护特性,专门用以检测环境异常并置零关键安全参数,从而提供一个合理的保障,确保不

8、会因环境异常破坏模块的安全性。按照国家相关部门规定的、安全四级的非入侵式攻击缓解测试指标,测试密码模块中实现的、7.8中规定的针对非入侵式攻击的缓解方法。安全四级要求模块的设计应通过一致性验证,即验证前置和后置条件与功能规格之间的一致性。,6 功能性安全目标,使用并正确实现核准的安全功能,以保护敏感信息;防止非授权地操作或使用密码模块;防止非授权地泄露密码模块的内容,其中包括关键安全参数;防止对密码模块和密码算法进行非授权或检测不到的修改,包括非授权地修改、替换、插入和删除敏感安全参数;提供密码模块运行状态的指示;保证密码模块在核准的工作模式下能够正确运行;检测出密码模块运行中的错误,防止这些

9、错误非授权地公开、修改、替换或使用关键安全参数,或者非授权地修改或替换公开安全参数;保证正确地设计、分配和实现密码模块。,7.1 安全要求:通用要求,本条规定了符合本标准的密码模块应当满足的安全要求。这些安全要求涵盖了密码模块的设计、实现、操作以及废弃相关的域。密码模块应当针对各个域的要求进行测试。密码模块应当在每个域中独立地进行评级。密码模块在这些域中获得的评级反映了模块在该域中所能达到的最高安全等级,即密码模块必须满足该域针对该等级的所有安全要求。除了在每个安全域中获得独立的评级之外,密码模块还将获得一个整体评级。整体评级设定为11个域所获得的最低评级。,7.2 密码模块规格,密码模块应当

10、是硬件、软件、固件,或它们之间组合的集合,该集合至少使用一个核准的密码算法、安全功能或过程实现一项密码服务,并且包含在定义的密码边界内。,7.2.2 密码模块类型 1/2,硬件模块密码边界规定为硬件边线。固件和/或软件,其中还可以包括操作系统,可以被包含在硬件密码边界内。软件模块密码边界为执行在可修改的运行环境中的纯软件部件(可以是一个或多个软件部件)划定界线。软件密码模块的运行环境所包含的计算平台和操作系统,在定义的密码边界之外。固件模块密码边界为执行在受限的或不可修改的运行环境中的纯固件部件划定界线。固件密码模块的运行环境所包含的计算平台和操作系统,在定义的密码边界之外,但是与固件模块明确

11、绑定。混合软件模块密码边界为软件部件和分离的硬件部件(即软件部件不在硬件模块边界中)的集合划定界线。软件运行的环境所包含的计算平台和操作系统,在定义的混合软件模块边界之外。混合固件模块密码边界为固件部件和分离的硬件部件(即固件部件不在硬件模块边界中)的合成划定界线。固件运行的环境所包含的计算平台和操作系统,在定义的混合固件模块边界之外,但是与混合固件模块明确绑定。,7.2.2 密码模块类型 2/2,对于运行于可修改环境中的软件模块,7.7中规定的物理安全和7.8中规定的非入侵式安全要求是可选的。对于硬件和固件模块,7.7中规定的物理安全和7.8中规定的非入侵式安全要求应当适用。对于混合模块,软

12、件和固件部件应当满足7.5中规定的软件/固件安全和7.6中规定的运行环境中的所有适用要求。硬件部件应当满足7.7中规定的物理安全和7.8中规定的非入侵式安全中的所有适用要求。,7.2.3.1 密码边界 通用要求,密码边界应当由定义明确的边线(例如,硬件、软件或固件部件的集合)组成,该边线建立了密码模块所有部件的边界。密码边界应当至少包含密码模块内所有安全相关的算法、安全功能、过程和部件。非安全相关的算法、安全功能、过程和部件也可以包含在密码边界内。密码模块的名称应当代表密码边界内的部件构成,不应代表大于实际范围的构成或产品。密码模块应当至少具有代表每个互不相同的硬件、软件和/或固件部件的特定版

13、本信息。密码边界内的某些硬件、软件和/或固件部件可以从本标准的要求中排除。被排除的硬件、软件或固件部件的实现应当不干扰或破坏密码模块核准的安全运行。应当阐明被排除的硬件、软件或固件(附录A)。,7.2.3.2 密码边界的定义,a)硬件密码模块的密码边界:硬件部件集合,可包括:在部件之间提供互联的物理配线的物理结构,包括电路板、基板或其他表面贴装;有效电器元件,如半集成、定制集成或通用集成的电路、处理器、内存、电源、转换器等;封套、灌封或封装材料、连接器和接口之类的物理结构;固件,可以包含操作系统;上面未列出的其他部件类型。b)软件密码模块的密码边界:构成密码模块的可执行文件或文件集;保存在内存

14、中并由一个或多个处理器执行的密码模块的实例。c)固件密码模块的密码边界:构成密码模块的可执行文件或文件集;保存在内存中并由一个或多个处理器执行的密码模块的实例。d)混合密码模块的密码边界:由模块硬件部件的边界以及分离的软件或固件部件的边界构成;包含每个部件所有端口和接口的集合。混合密码模块除了分离的软件或固件部件,模块的硬件部件还可以包含嵌入式的软件或固件。,7.2.4 工作模式,密码模块可以有核准的工作模式和非核准的工作模式。核准的工作模式是指密码模块在该工作模式下只能使用核准的安全功能提供安全相关服务。非核准的密码算法、安全功能和过程或其它未规定于7.4.3中的服务不应当被操作员用于核准的

15、工作模式中,除非非核准的密码算法或安全功能是核准的过程的一部分,而且与核准的过程的安全无关。例如,使用非核准的密码算法或非核准的方式生成的密钥,混淆数据或关键安全参数,结果也被视为未受保护的明文,且不能提供安全相关功能。当服务正在以核准的方式使用核准的密码算法、安全功能或过程,以及其它规定于7.4.3中的服务或过程的时候,该服务应当给出相应的状态指示。,7.3 密码模块接口,所有进出密码模块的逻辑信息流,都应当只能通过已定义的物理端口和逻辑接口,这些端口和接口是出入模块密码边界的入口和出口。密码模块逻辑接口应当是相互分离的,这些逻辑接口可以共享一个物理端口,也可以分布在一个或多个物理端口上。密

16、码模块软件部件的应用程序接口(API)可以定义为一个或多个逻辑接口。,7.3.2 接口类型,硬件模块接口(HMI)定义为用于请求硬件模块服务的命令全集,请求服务的命令中包括输入到密码模块或者由密码模块输出的参数。软件或固件模块接口(SFMI)定义为用于请求软件或固件模块服务的命令全集,请求服务的命令中包括输入到密码模块或者由密码模块输出的参数。混合软件或混合固件模块接口(HSMI或HFMI)定义为用于请求混合固件模块服务的命令全集,请求服务的命令中包括输入到密码模块或者由密码模块输出的参数。,7.3.3 接口定义,密码模块应当具备下列五种接口(输入/输出是相对于模块而言的):数据输入接口数据输

17、出接口控制输入接口控制输出接口状态输出接口除软件密码模块以外,所有模块还应当具备电源接口(通过内部电池供电的,电源接口可以不存在)。密码模块应当区分数据、控制信息和电源输入,以及数据、控制信息和状态信息输出。密码模块规格应当明确规定输入数据以及控制信息的格式,包括对所有可变长度输入的长度限制。,7.3.4 可信信道 1/2,可信信道是在密码模块和发送者或接收者之间建立的链路,用于安全传输未受保护的明文关键安全参数、密钥分量以及鉴别数据。可信信道在模块定义的输入或输出端口以及预期的发送者或接收者终端的通信链路上,可以防止窃听以及来自恶意的操作员/实体、进程或其他设备的物理或逻辑篡改。对于安全一级

18、和二级,没有可信信道要求。,7.3.4 可信信道 2/2,对于安全三级:密码模块应当实现可信信道;可信信道应当防止在通信链路上的非授权修改、替换和泄露;可信信道使用的物理端口应当与其他物理端口实现物理隔离;可信信道使用的逻辑接口应当与其他逻辑接口实现逻辑隔离;基于身份的鉴别应当用于所有使用可信信道的服务;当可信信道在使用时,应当提供状态指示器。对于安全四级,除了安全三级的要求以外,基于身份的多因素鉴别应当用于所有使用可信信道的服务。,7.4 角色、服务和鉴别,密码模块应当支持操作员的授权角色以及与每个角色相对应的服务。一个操作员可以担任多种角色。如果密码模块支持多个操作员同时操作,那么模块内部

19、应当确保各个操作员担任的角色相隔离及相应的服务相隔离。当服务执行不会修改、泄露或替换关键安全参数和公开安全参数时,例如显示状态、自测试或者其他不影响模块安全的服务,操作员无需担任一个授权角色。密码模块可能需要鉴别机制,以鉴别操作员对模块的访问,以及验证操作员是否被授权担任请求的角色和执行该角色下的服务。,7.4.2 角色,密码模块应当至少支持密码主管角色。密码主管角色应当负责执行密码初始化或管理功能,以及常用的安全服务,例如,模块初始化、关键安全参数和公开安全参数的管理以及审计功能。密码模块可以支持用户角色。如果密码模块支持用户角色,那么用户角色应当负责执行一般的安全服务,包括密码操作和其他核

20、准的安全功能。密码模块可以支持维护员角色。维护员角色是指在物理维护服务(例如,打开模块封盖)和/或逻辑维护服务(例如,运行某种诊断如内置的自测试(BIST)时担任的角色。当进入或退出维护员角色时,所有不受保护的敏感安全参数应当被置零。除了上述角色以外,密码模块还可以支持其他角色。,7.4.3 服务,服务指密码模块所能执行的所有服务、操作或功能。服务输入应当包括密码模块在启动或获取特定服务、操作或功能时,所使用的所有数据或控制输入。服务输出应当包括由服务输入启动或获取的服务、操作或功能,所产生的所有数据和状态输出。每个服务输入应当产生一个服务输出。密码模块应当为操作员提供下列服务:显示模块版本号

21、。密码模块应当输出名称或模块标识符以及版本信息,这些信息可以与模块的审验记录相关联。显示状态。密码模块应当输出当前的状态。其中可以包括响应服务请求的状态指示器的输出。执行自测试。密码模块应当执行初始化和规定于7.10.2中的运行前自测试。执行核准的安全功能。密码模块应当至少执行一个在7.2.4中规定的核准的工作模式中使用的核准的安全功能。执行置零。密码应当按照7.9.7中的规定执行参数置零。除了上述规定的服务以外,密码模块还可以提供其他的服务、操作或功能,包括核准的和非核准的。一些特定的服务可能不止一个角色使用它,例如,用户角色和密码主管角色都可以使用密钥输入服务。,7.4.3.2 旁路能力,

22、旁路能力是指某种服务所具备的部分或全部绕过密码功能的能力。如果密码模块输出的数据是受到密码技术保护的(例如,经过加密),但是通过更改密码模块的配置或者由于操作员的干预,密码模块能够将数据直接输出(例如,不再经过加密),此时,应当定义该模块具有旁路能力。如果密码模块实现了旁路能力,那么:在开启密码模块的旁路功能之前,操作员应当担任相应的授权角色。应当使用两个独立的内部操作来激活旁路能力,以防止单个错误造成不经意地输出明文数据。这两个独立的内部操作应当能够改变用于控制旁路能力的软件和/或硬件配置(例如,设置两个不同的软件或硬件标志位,其中一个可以由用户发起)。对于安全四级模块,上述两个独立的内部操

23、作应当由两个不同的操作员完成。模块应当显示其状态以指示旁路能力是否:未被激活,表明模块此时只提供使用密码功能的服务(例如,明文数据经过加密之后输出模块);被激活,表明模块此时只提供没有使用密码功能的服务(例如,明文数据未经过加密就输出模块);同时存在激活和去活,表明模块此时提供的某些服务使用了密码功能,而某些服务没有使用密码功能(例如,对于拥有多个通信信道的模块,明文数据是否被加密取决于每个信道的配置)。,7.4.3.3 自启动密码服务能力,自启动密码服务能力是指无需外界操作员请求,模块就能够执行密码操作和其他核准的安全功能或敏感安全参数管理技术。自启动密码服务能力应当由密码主管配置,而且该配

24、置可以在模块经过重置、重启或开关电源之后保留下来。如果密码模块实现了自启动密码服务能力,那么:应当需要两个独立的内部操作来激活该能力,以防止单个错误造成不经意的输出。对于安全四级模块,上述两个独立的内部操作应当由两个不同的操作员完成。模块应当显示其状态以指示自启动密码服务能力是否被激活。,7.4.3.4 软件/固件加载,如果密码模块具有加载外部软件或固件的能力,那么应当满足下列要求:加载的软件或固件应当在加载之前经过审验机构的审验,以维持审验效力。应当禁止通过数据输出接口输出数据,直到软件/固件加载完成以及加载测试成功通过。在运行加载的代码之前应当执行7.10.3.4中规定的软件/固件加载条件

25、自测试。密码模块应当拒绝运行任何已经加载的或已被修改的核准安全功能,直到成功执行7.10.2中规定的运行前自测试。应当修改模块的版本信息,以表示增加和/或更新了最新加载的7.4.3中的软件或固件。如果新软件或固件的加载是镜像的完全替换,它应当构成一个全新的模块,需要由审验机构重新审验,以维持审验效力。新加载的软件或固件镜像应当在模块上电重置之后才能运行。所有敏感安全参数应当在运行新镜像之前被置零。,7.4.4 鉴别 1/4,密码模块可能需要鉴别机制以鉴别访问模块的操作员,并验证该操作员能否担任其请求的角色,以及能否执行相应的服务。基于角色的鉴别密码模块应当要求操作员隐式地或显式地选择一个或多个

26、角色,并且应当鉴别其能否担任所选定的角色(或角色的集合)。不要求密码模块鉴别操作员的个人身份。基于身份的鉴别密码模块应当要求单独且唯一标识操作员,应当要求操作员隐式地或显式地选择一个或多个角色,并且应当鉴别操作员的身份,以及操作员是否被授权担任所选定的角色(或角色的集合)。,7.4.4 鉴别 2/4,密码模块可以允许通过鉴别的操作员执行其授权角色所允许的所有服务,或者也可以针对每个服务或一组服务分别进行鉴别。当密码模块被重置、重启、关闭且随后又被打开时,模块应当要求重新鉴别操作员。密码模块可能需要多种类型的鉴别数据以实现模块支持的鉴别机制,包括(但不限于)知道或拥有口令、PIN、密钥等;拥有物

27、理钥匙、令牌等;或具备个人特征(例如,生物特征)。应当保护密码模块内的鉴别数据以防止非授权的泄露、修改和替换。核准的安全功能可被用于鉴别机制。鉴别机制的初始化允许特殊处理。如果第一次访问密码模块时,模块不包含鉴别操作员所需的鉴别数据,那么应当使用其他被授权的方法(例如,过程控制,使用出厂设置或默认的鉴别数据)对模块进行访问控制和初始化鉴别。如果使用了默认的鉴别数据来控制对模块的访问,那么默认的鉴别数据应当在第一次鉴别后被更换。该默认的鉴别数据不需要满足7.9.7中置零要求。,7.4.4 鉴别 3/4,模块应当实现附录E中规定的一种核准的鉴别机制。对称加密、数字签名、密码校验、零知识技术在模块的

28、安全策略文档(见附录B)中应当描述鉴别机制的强度。对于每次核准鉴别机制的尝试使用,模块应当满足鉴别强度要求。对于在一分钟之内对核准鉴别机制的多次尝试使用,模块应当满足鉴别强度要求。核准的鉴别机制应当依赖于模块的具体实现,而不依赖于在文档中的过程控制或安全规则(例如,口令长度限制)。对于安全二级的软件密码模块,操作系统可以实现鉴别机制。如果操作系统实现了鉴别机制,那么鉴别机制应当满足本条款的要求。在鉴别过程中,应当隐藏鉴别数据给操作员的反馈信息(例如,在输入口令时没有可视的字符显示)。无意义的字符可以代替实际的鉴别数据显示。在尝试鉴别的过程中,提供给操作员的反馈信息应当防止削弱鉴别机制强度。,7

29、.4.4 鉴别 4/4,对于安全一级,不要求密码模块采用鉴别机制以控制对模块的访问。如果模块不支持鉴别机制,模块应当要求操作员隐式或显式地选择一个或多个角色。对于安全二级,密码模块应当至少采用基于角色的鉴别以控制对模块的访问。对于安全三级,密码模块应当采用基于身份的鉴别机制以控制对模块的访问。对于安全四级,密码模块应当采用基于身份的多因素鉴别机制以控制对模块的访问。,7.5 软件/固件安全 1/3,密码模块定义为7.2.2中规定的硬件、软件、固件或混合模块。本条的要求“应当05.01适用于密码模块的软件和固件部件。完全由硬件实现的密码模块无需满足本标准的软件/固件安全要求。模块代码中,含有的公

30、开验证密钥或带密钥消息鉴别的密钥,它们不被视为敏感安全参数。,7.5 软件/固件安全 2/3,对于安全一级,下列安全要求应当适用于密码模块内的软件和固件部件:所有的软件和固件应当符合7.11.7中的规定,确保安装前未被修改。密码边界内的所有软件和固件部件应当使用核准的完整性技术进行保护,这些完整性技术可以由该密码模块提供,也可以由另一个经审验的密码模块提供。如果完整性测试失败,模块应当进入错误状态。核准的完整性技术可以包含单个鉴别码或签名,或者多个分离的消息鉴别码或签名。在多个分离的消息鉴别码或签名中,任何一个消息鉴别码或签名验证失败都应当导致模块进入错误状态。一旦完成了完整性测试,模块软件或

31、固件的完整性测试的过程中生成的临时值应当被置零。操作员应当能够通过7.3.2中规定的SFMI、HSMI或HFMI服务按需执行核准的完整性技术。7.3.3中规定的密码模块的所有数据和控制输入,数据、控制和状态输出,以及7.4.3中规定的服务,应当通过定义的HMI、SFMI、HFMI或HSMI完成。对于软件或固件模块,如果加载的软件或固件镜像完全替换或覆盖了已审验的模块镜像,则软件/固件加载测试是不适用的,因为替换或覆盖将形成一个新的模块。如果新加载的软件或固件是密码模块运行所必须的,但不是完全替换或覆盖经审验的模块,那么软件/固件加载测试是适用的,并且应当由经过审验的模块执行该测试。,7.5 软

32、件/固件安全 3/3,对于安全二级,除了安全一级的要求:模块的软件和固件部件应当只包含可运行形式的代码,例如,不包括源代码、目标代码或实时编译的代码。应当确保操作员无法通过HMI、SFMI、HFMI或HSMI接口的服务或控制设置,启动或执行调试技术。密码边界内的所有软件和固件应当使用核准的数字签名或带密钥的消息鉴别码进行保护。如果计算的结果不等于之前生成的结果,则测试失败,并且模块应当进入错误状态。对于安全三级和四级,除了安全一级和二级的要求:密码边界内的所有软件和固件应当使用核准的数字签名进行保护。如果计算的结果不等于之前生成的结果,则测试失败,并且模块应当进入错误状态。数字签名技术可以包含

33、单个签名,或者多个分离的签名,分离的签名中任何一个签名的验证失败都应当导致模块进入错误状态。签名私钥应当保存在模块外。,7.6 运行环境,密码模块运行环境涉及对模块运行所需的软件、固件、和/或硬件的管理。软件、固件或混合模块的运行环境至少包括模块部件、计算平台、以及控制或支持软件或固件在计算平台上运行的操作系统。硬件模块内部可以包含一个运行环境,该环境可以包含支持模块内部软件或固件运行的操作系统。如果适用的话,虚拟机(系统和/或进程)和运行时环境(例如Java运行时环境JRE)也可以视为操作系统的一部分。通用运行环境是指使用商用的通用操作系统(即资源管理器)来管理软件和固件部件,以及管理系统和

34、操作员进程(线程),其中包括了通用的应用程序软件,如文字处理器等。,7.6.1 运行环境通用要求 1/2,7.6.1 运行环境通用要求 2/2,对于不可修改或受限制的运行环境,用于保证该环境不可修改或受限制的控制部件可以包括计算平台的、操作系统的或密码模块本身的属性,或者包括上述全部的属性。在不可修改或受限制的环境下执行的代码在本标准中被视为固件。在可修改的环境下执行的代码在本标准中被视为软件。如果运行环境是不可修改或受限制的,7.6.2中规定的操作系统要求应当适用。如果运行环境是可修改的,7.6.3中规定的操作系统要求应当适用。,7.6.2 受限或不可修改运行环境的操作系统要求,对于安全一级

35、:如果模块在7.7中达到安全一级,则7.6.3中规定的安全一级的要求应当适用。对于安全二级、三级、四级:没有额外的要求。,7.6.3 可修改运行环境的操作系统要求(安全一级),每一个密码模块的实例应当能够控制和支配自己的敏感安全参数。运行环境应当提供应用进程间相互隔离的能力,以阻止进程间对关键安全参数不受控的访问以及对敏感安全参数不受控的修改,无论关键安全参数和敏感安全参数是在进程内存中还是存储在运行环境内的永久性存储体中。这保证了只有密码模块和运行环境的可信部分可以直接访问敏感安全参数。对运行环境配置的规定应当记录在密码模块的安全策略中。密码模块产生的进程应当由模块自己所有,不由外部进程/操

36、作员所有。不能通过管理文档和流程来实施这些要求,而是必须由密码模块本身来实施。,7.6.3 可修改运行环境的操作系统要求 (安全二级) 1/3,所有密码软件、敏感安全参数、控制和状态信息应当在操作系统的控制之下。操作系统实现了基于角色的访问控制,或者实现了自主访问控制,该自主访问控制可通过访问控制列表(ACL)来定义新的组和分配权限,并且能够给每个用户分配多个组。操作系统应当正确配置,以防止非授权地执行、修改和读取敏感安全参数、控制和状态数据。为了保护明文数据、密码软件、敏感安全参数和鉴别数据,操作系统的访问控制机制:应当定义和实现了有权运行模块中密码软件的角色或组以及与它们相关的权限。应当定

37、义和实现了有权修改(写、替换和删除)存储在密码边界内软件的角色或组以及与它们相关的权限,这些软件包括执行密码功能的程序、密码操作相关数据(例如,密码操作的审计数据)、敏感安全参数和明文数据。应当定义和实现了有权读取密码操作相关数据(例如,密码操作的审计数据)、关键安全参数和明文数据的角色或组以及与它们相关的权限。应当定义和实现了有权输入敏感安全参数的角色或组以及与它们相关的权限。,7.6.3 可修改运行环境的操作系统要求 (安全二级) 2/3,下列规定应当与密码模块安全策略文档中已定义的角色和服务相一致。当密码模块不支持维护员角色时,操作系统应当防止所有操作员和运行的进程修改正在运行的密码进程

38、(例如,已加载的和正执行的密码程序镜像)。在这种情况下,运行的进程是指所有不由操作系统所拥有或启动的进程(例如,由操作员启动的进程),无论该进程是密码相关的还是非密码相关的。操作系统应当防止用户进程对其他进程的敏感安全参数以及系统敏感安全参数进行读或写操作。满足以上要求的操作系统配置应当在管理员指南中阐明。管理员指南应当声明:操作系统必须按照需要保护的模块内容所指定的要求进行配置。操作系统的身份标识和鉴别机制应当满足7.4.4中规定的要求,并在模块安全策略文档中具体阐明。,7.6.3 可修改运行环境的操作系统要求 (安全二级) 3/3,所有密码软件、敏感安全参数、控制和状态信息应当在操作系统的

39、控制之下,操作系统应当至少拥有以下属性:操作系统应当提供具有审计事件日期和时间的审计机制。密码模块应当不把敏感安全参数写入任何审计记录中。下列事件应当被操作系统的审计机制记录下来(略)操作系统的审计机制应当能够审计下列操作系统相关事件(略)操作系统应当正确配置以防止操作员,除安全策略中给出的、拥有特权的操作员以外,修改存储在密码模块运行环境中的密码模块软件和审计数据。无论密码模块是否在核准的工作模式下运行,应当只有配置成满足以上安全要求的操作系统才符合该安全等级。应当通过使用核准的安全功能对审计记录进行保护,以防止非授权的修改。,7.6.3 可修改运行环境的操作系统要求 (安全三级、四级),标

40、准对可修改运行环境的操作系统不提供安全三级和四级的要求。因此,可修改运行环境的操作系统无法达到安全三级和四级。,7.7 物理安全,密码模块应当采用物理安全机制以限制对模块内容的非授权物理访问,并阻止对已安装模块的非授权使用或修改(包括整个模块的替换)。密码边界内的所有硬件、软件、固件、数据分量以及敏感安全参数应当受到保护。若密码模块完全由软件实现,使得物理安全仅由计算平台提供,那么该模块将不受本标准物理安全要求的限制。本条中的要求应当适用于硬件和固件模块,以及混合模块中的硬件和固件部件。本条的要求应当适用于已定义的模块物理边界。物理安全要求是针对下列三类密码模块物理实体做出规定的:单芯片密码模

41、块是指由单个集成电路(IC)芯片构成的模块,该芯片可以作为独立模块使用,或者可以嵌入到一个可能没有物理保护的外壳或产品内。单芯片密码模块的例子有单IC芯片和单IC芯片智能卡。多芯片嵌入式密码模块是指由两个或多个互相连接的IC芯片构成的模块,这些芯片嵌入到一个可能没有物理保护的外壳或产品内。多芯片嵌入式密码模块的例子有适配器和扩展板。多芯片独立式密码模块是指由多个互相连接的IC芯片构成的模块,该模块的整个外壳受到物理保护。多芯片独立密码模块的例子有加密路由器、安全无线电话和USB令牌。,7.7.1 物理安全实体 1/2,7.7.1 物理安全实体 2/2,安全一级提出了最基本的安全要求。安全二级增

42、加了拆卸存迹机制的要求,以及确保无法对模块关键区域的内部操作收集信息的要求。安全三级增加了使用坚固或硬质的保形或非保形外壳的要求,要求外壳的封盖和门具有拆卸检测和响应机制,并且要求抵抗通过开口或入口的直接探测。安全三级还要求具备环境失效保护(EFP)或环境失效测试(EFT)。安全四级进一步增加了使用坚固或硬质的保形或非保形外壳的要求,要求整个外壳具有拆卸检测和响应机制。安全四级还要求具备环境失效保护(EFP),以及防止错误注入攻击。,7.7.2 通用物理安全要求,模块文档应当阐述密码模块的物理实体以及所实现的物理安全机制达到的安全等级。每当为物理安全进行置零操作时,应当在极短的时间内执行置零,

43、以防止敏感数据在检测到拆卸行为与模块置零之间泄露出去。如果模块包含的维护角色需要对模块内容进行物理访问,或者模块被设计成允许物理访问(例如,被模块厂商或其他授权个体访问),那么:应当定义维护访问接口。维护访问接口应当包括所有通向密码模块内容的物理访问路径,包括任何封盖或门。维护访问接口内包含的任何封盖或门应当使用适当的物理安全机制来进行安全保护。,7.7.2 通用物理安全要求(一级),下列要求应当适用于安全一级的所有密码模块:密码模块应当由产品级部件组成,这些产品级部件采用了标准钝化技术,例如,对整个模块电路使用保形涂料或封闭底漆,以防止环境损害或其他物理损害。当维护密码模块时,应当由操作员按

44、照规定的程序执行置零,或由密码模块自动执行。,7.7.2 通用物理安全要求(二级),除了安全一级的通用要求,安全二级的所有密码模块还应当满足下列要求:在尝试物理访问模块时,密码模块应当提供显式的拆卸证据(例如,在封盖、外壳或封条上);拆卸存迹的材料、涂层或外壳应当在可见光谱内(即波长范围为400nm750nm)是不透明或者半透明的,从而防止对模块关键区域的内部操作进行信息收集。如果密码模块包含通风孔或缝,那么孔或缝应当具有特殊的构造,从而防止通过直接观察模块内部的构造或部件进行信息收集。上述直接观察利用了模块内部结构或部件发出的可见光。,7.7.2 通用物理安全要求(三级),除了对安全一级和二

45、级的通用要求,安全三级的所有密码模块还应当满足下列要求:如果模块含有任何门或封盖,或者定义了维护访问接口,那么模块应当包含拆卸响应与置零电路。在打开门、封盖或维护访问接口时,拆卸响应与置零电路应当立即置零所有未受保护的敏感安全参数。当密码模块内包含未受保护的敏感安全参数时,拆卸响应与置零电路应当保持运行状态。如果密码模块含有通风孔或缝,那么孔或缝应当具有特殊的构造,从而防止未被检测到的对模块内部的物理探测(例如,防止使用单铰链探头探测)。当模块温度超出运行、存放和分发的预期温度范围时,坚固或硬质的保形或非保形的外壳、涂层或灌封材料应当维持强度和硬度特征。如果使用了拆卸封条,那么应当使用被唯一编

46、号或者能够独立识别的封条(例如,唯一编号的存迹胶带或可唯一识别的手写封条)。模块应当具有EFP特性或经过EFT。(环境故障保护),7.7.2 通用物理安全要求(四级),除了安全一级、二级和三级的通用要求,安全四级的所有模块还应当满足下列要求:密码模块应当使用抗移除的硬质不透明涂层或具有拆卸响应和置零能力的拆卸检测封套保护起来。密码模块应当具有EFP特性。密码模块应当提供保护措施,以防止错误注入攻击。错误注入攻击的缓解技术以及采用的缓解指标应当在文档中按照附录B规定的要求进行记录。,7.7.3.1 单芯片密码模块,对于安全一级的单芯片密码模块没有其他额外要求。对于安全二级的单芯片密码模块还应当满

47、足下列要求:应当使用拆卸存迹涂层把密码模块覆盖起来,或者将模块装在一个拆卸存迹的外壳中,以阻止直接观察、探测或操控模块,并在企图拆卸或移动模块后留下证据。对于安全三级的单芯片密码模块还应当满足下列要求:应当使用拆卸存迹的硬质不透明涂层把模块覆盖起来。或应当实现模块的外壳,以致企图或穿透外壳的行为应当极有可能对密码模块造成严重损害,即模块将不能工作。对于安全四级的单芯片密码模块还应当满足下列要求:应当使用抗移除的硬质不透明涂层将密码模块覆盖起来,该涂层具有硬度与黏力特性,以致企图剥落或撬开涂层的行为将极有可能对模块造成严重损害,即模块将不能工作。抗移除的涂层应当具有溶解特性,以致企图溶解涂层的行

48、为将极有可能溶解或严重损害模块,即模块将不能工作。,7.7.3.2多芯片嵌入式密码模块,对于安全一级,如果密码模块被装在一个外壳或封盖中,那么应当使用产品级的外壳或封盖。对于安全二级,还应当满足下列要求:应当使用拆卸存迹的涂层或灌封材料把模块部件覆盖起来,以阻止直接观察,并提供企图拆卸或移动模块部件的证据。或模块应当被整个地包在金属或硬质塑料的产品级外壳中,该外壳可以有门或封盖。如果外壳包含任何门或封盖,则门或封盖应当使用带有物理或逻辑钥匙的防撬锁,或者应当被拆卸存迹的封条保护起来。对于安全三级,还应当满足下列要求:应当使用硬质涂料或灌封材料把密码模块内的多芯片实体电路覆盖起来,或模块应当被封

49、装在坚固的外壳内。以致企图移除或穿透外壳的行为将极有可能对模块造成严重损害,即模块将不能工作。对于安全四级,还应当满足下列要求:密码模块部件应当封装在坚固或硬质的保形或非保形的外壳中。外壳应当用拆卸检测封套封装起来,该封套应当能够检测到企图访问敏感安全参数的拆卸行为,包括切、钻、磨、碾、烧、熔、溶解灌封材料或外壳等。密码模块应当包含拆卸响应和置零电路。拆卸响应和置零电路应当能够持续地监控拆卸检测封套,并且一旦检测到拆卸行为就应当立即置零所有未受保护的敏感安全参数。当密码模块内包含未受保护的敏感安全参数时,拆卸响应电路应当保持运行状态。,7.7.3.3 多芯片独立式密码模块,对于安全一级,密码模

50、块应当整个被封装在金属或硬质塑料的产品级外壳内,外壳可以有门或封盖。对于安全二级,还应当满足下列要求:如果密码模块的外壳含有任何门或封盖,那么门或封盖应当安装带有物理或逻辑钥匙的防撬机械锁,或者应当使用拆卸存迹的封条(例如,存迹胶带或全息封条)进行保护。对于安全三级,还应当满足下列要求:模块应当被封装在坚固的外壳内,以致企图移除或穿透外壳的行为将极有可能对模块造成严重损害,即模块将不能工作。对于安全四级,还应当满足下列要求:密码模块的外壳应当封装在使用下列一种或多种拆卸检测机制的拆卸检测封套内,拆卸检测机制包括:封盖开关(如微型开关、磁霍尔效应开关、永磁驱动器等)、动作探测器(如超声波、红外线

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号