您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > GMT0028-2014《密码模块安全技术要求》详细解读
GM/T0028—2014密码模块安全技术要求详细解读李勃2018年11月20日引言•密码的安全性与可靠性直接取决于实现它们的密码模块。•本标准规定了四个递增的、定性的安全要求等级。•本标准规定的安全要求涵盖了有关密码模块的安全设计、实现、运行与废弃的安全元素(域)。•本标准对密码模块提出了安全要求,但不对密码模块的正确应用和安全部署进行规范。1范围•本标准针对用于保护计算机与电信系统内敏感信息的安全系统所使用的密码模块,规定了安全要求。•本标准为密码模块定义了4个安全等级,以满足敏感数据以及众多应用领域的、不同程度的安全需求。•针对密码模块的11个安全域,本标准分别给出了四个安全等级的对应要求,高安全等级在低安全等级的基础上进一步提高了安全性。5.1密码安全等级概述•密码模块是指实现密码运算、密钥管理等功能的硬件、软件、固件或者其组合。•为了保护密码模块和密码模块中包含和控制的敏感安全参数,本标准规定了4个要求递增的安全等级。5.2安全一级•安全一级提供了最低等级的安全要求。例如:•模块应当使用至少一个核准的安全功能或核准的敏感安全参数建立方法。•软件或固件模块可以运行在不可修改的、受限的或可修改的运行环境中。•安全一级硬件密码模块除了需要达到产品级部件的基本要求之外,没有其他特殊的物理安全机制要求。•安全一级密码模块的例子有:•个人计算机中的硬件加密板卡•运行在手持设备或通用计算机上的密码工具包•当模块外部的应用系统已经配置了物理安全、网络安全以及管理过程等控制措施时,安全一级的模块就非常适用(经济性)。5.3安全二级1/2•安全二级在安全一级的基础上增加了拆卸证据的要求,例如使用拆卸存迹的涂层或封条,或者在封盖或门上加防撬锁等手段以提供拆卸证据。•拆卸存迹的封条或防撬锁应安装在封盖或门上,以防止非授权的物理访问。•当物理访问模块内的安全参数时,模块上拆卸存迹的涂层或封条就必须破碎。5.3安全二级2/2•安全二级要求基于角色的鉴别。密码模块需要鉴别并验证操作员的角色,以确定其是否有权执行对应的服务。•安全二级的软件密码模块可以运行在可修改的环境中,该环境应实现基于角色的访问控制或自主访问控制,但自主访问控制应当能够定义新的组,通过访问控制列表(ACL)分配权限,以及将一个用户分配给多个组。•访问控制措施应防止非授权地执行、修改以及读取实现密码功能的软件。5.4安全三级1/3•除了安全二级中要求的拆卸存迹物理安全机制外,安全三级还要求更强的物理安全机制,以进一步防止对密码模块内敏感安全参数的非授权访问。•这些物理安全机制应该能够以很高的概率检测到以下行为并作出响应,这些行为包括:•直接物理访问•密码模块的使用或修改•以及通过通风孔或缝隙对模块的探测•上述物理安全机制可以包括坚固的外壳、拆卸检测装置以及响应电路。当密码模块的封盖/门被打开时,响应电路应当将所有的关键安全参数置零。5.4安全三级2/3•安全三级要求基于身份的鉴别机制,以提高安全二级中基于角色的鉴别机制的安全性。密码模块需要鉴别操作员的身份,并验证经鉴别的操作员是否被授权担任特定的角色以及是否能够执行相应的服务。•安全三级要求手动建立的明文关键安全参数是经过加密的、使用可信信道或使用知识拆分来输入或输出。•安全三级的密码模块应有效防止电压、温度超出模块正常运行范围对密码模块安全性的破坏。攻击者可以故意让密码模块的环境参数偏离正常运行范围,从而绕过密码模块的防护措施。密码模块应当设计有环境保护特性,用以检测环境异常并置零关键安全参数,或者能够通过环境失效测试从而提供一个合理的保障,确保不会因环境异常破坏模块的安全性。5.4安全三级3/3•安全三级的密码模块应提供非入侵式攻击缓解技术的有效性证据和测试方法。•对于软件密码模块,并没有在本标准的所有条款中给出安全三级的要求。因此,软件密码模块能够达到的最大整体安全等级限定为安全二级。•安全三级的密码模块增加了生命周期保障的要求,比如自动配置管理、详细设计、底层测试以及基于厂商所提供的鉴别信息的操作员鉴别。5.5安全四级1/3•安全四级是本标准中的最高安全等级。该等级包括较低等级中所有的安全特性,以及一些扩展特性。•安全四级的物理安全机制应当在密码模块周围提供完整的封套保护,其目的是无论外部电源是否供电,当模块包含敏感安全参数时,检测并响应所有非授权的物理访问。•从任何方向穿透密码模块的外壳都会以很高的概率被检测到,并将导致所有未受保护的敏感安全参数立刻被置零。•由于安全四级的密码模块自身具有较高的安全机制,所以它特别适用于无物理保护的环境。5.5安全四级2/3•安全四级要求对操作员进行多因素鉴别。•最低限度下,要求使用下列因素中的两个:已知某物,如秘密口令;拥有某物,如物理钥匙或令牌;物理属性,如生物特征。5.5安全四级3/3•安全四级的密码模块应有效防止电压、温度超出模块正常运行范围对密码模块安全性的破坏。密码模块应当设计有环境保护特性,专门用以检测环境异常并置零关键安全参数,从而提供一个合理的保障,确保不会因环境异常破坏模块的安全性。•按照国家相关部门规定的、安全四级的非入侵式攻击缓解测试指标,测试密码模块中实现的、7.8中规定的针对非入侵式攻击的缓解方法。•安全四级要求模块的设计应通过一致性验证,即验证前置和后置条件与功能规格之间的一致性。6功能性安全目标使用并正确实现核准的安全功能,以保护敏感信息;防止非授权地操作或使用密码模块;防止非授权地泄露密码模块的内容,其中包括关键安全参数;防止对密码模块和密码算法进行非授权或检测不到的修改,包括非授权地修改、替换、插入和删除敏感安全参数;提供密码模块运行状态的指示;保证密码模块在核准的工作模式下能够正确运行;检测出密码模块运行中的错误,防止这些错误非授权地公开、修改、替换或使用关键安全参数,或者非授权地修改或替换公开安全参数;保证正确地设计、分配和实现密码模块。7.1安全要求:通用要求•本条规定了符合本标准的密码模块应当满足的安全要求。这些安全要求涵盖了密码模块的设计、实现、操作以及废弃相关的域。•密码模块应当针对各个域的要求进行测试。密码模块应当在每个域中独立地进行评级。•密码模块在这些域中获得的评级反映了模块在该域中所能达到的最高安全等级,即密码模块必须满足该域针对该等级的所有安全要求。•除了在每个安全域中获得独立的评级之外,密码模块还将获得一个整体评级。整体评级设定为11个域所获得的最低评级。7.2密码模块规格•密码模块应当是硬件、软件、固件,或它们之间组合的集合,该集合至少使用一个核准的密码算法、安全功能或过程实现一项密码服务,并且包含在定义的密码边界内。7.2.2密码模块类型1/2•硬件模块密码边界规定为硬件边线。固件和/或软件,其中还可以包括操作系统,可以被包含在硬件密码边界内。•软件模块密码边界为执行在可修改的运行环境中的纯软件部件(可以是一个或多个软件部件)划定界线。软件密码模块的运行环境所包含的计算平台和操作系统,在定义的密码边界之外。•固件模块密码边界为执行在受限的或不可修改的运行环境中的纯固件部件划定界线。固件密码模块的运行环境所包含的计算平台和操作系统,在定义的密码边界之外,但是与固件模块明确绑定。•混合软件模块密码边界为软件部件和分离的硬件部件(即软件部件不在硬件模块边界中)的集合划定界线。软件运行的环境所包含的计算平台和操作系统,在定义的混合软件模块边界之外。•混合固件模块密码边界为固件部件和分离的硬件部件(即固件部件不在硬件模块边界中)的合成划定界线。固件运行的环境所包含的计算平台和操作系统,在定义的混合固件模块边界之外,但是与混合固件模块明确绑定。7.2.2密码模块类型2/2•对于运行于可修改环境中的软件模块,7.7中规定的物理安全和7.8中规定的非入侵式安全要求是可选的。•对于硬件和固件模块,7.7中规定的物理安全和7.8中规定的非入侵式安全要求应当适用。•对于混合模块,软件和固件部件应当满足7.5中规定的软件/固件安全和7.6中规定的运行环境中的所有适用要求。硬件部件应当满足7.7中规定的物理安全和7.8中规定的非入侵式安全中的所有适用要求。7.2.3.1密码边界通用要求•密码边界应当由定义明确的边线(例如,硬件、软件或固件部件的集合)组成,该边线建立了密码模块所有部件的边界。密码边界应当至少包含密码模块内所有安全相关的算法、安全功能、过程和部件。非安全相关的算法、安全功能、过程和部件也可以包含在密码边界内。•密码模块的名称应当代表密码边界内的部件构成,不应代表大于实际范围的构成或产品。密码模块应当至少具有代表每个互不相同的硬件、软件和/或固件部件的特定版本信息。•密码边界内的某些硬件、软件和/或固件部件可以从本标准的要求中排除。被排除的硬件、软件或固件部件的实现应当不干扰或破坏密码模块核准的安全运行。应当阐明被排除的硬件、软件或固件(附录A)。7.2.3.2密码边界的定义a)硬件密码模块的密码边界:硬件部件集合,可包括:在部件之间提供互联的物理配线的物理结构,包括电路板、基板或其他表面贴装;有效电器元件,如半集成、定制集成或通用集成的电路、处理器、内存、电源、转换器等;封套、灌封或封装材料、连接器和接口之类的物理结构;固件,可以包含操作系统;上面未列出的其他部件类型。b)软件密码模块的密码边界:构成密码模块的可执行文件或文件集;保存在内存中并由一个或多个处理器执行的密码模块的实例。c)固件密码模块的密码边界:构成密码模块的可执行文件或文件集;保存在内存中并由一个或多个处理器执行的密码模块的实例。d)混合密码模块的密码边界:由模块硬件部件的边界以及分离的软件或固件部件的边界构成;包含每个部件所有端口和接口的集合。混合密码模块除了分离的软件或固件部件,模块的硬件部件还可以包含嵌入式的软件或固件。7.2.4工作模式•密码模块可以有核准的工作模式和非核准的工作模式。核准的工作模式是指密码模块在该工作模式下只能使用核准的安全功能提供安全相关服务。•非核准的密码算法、安全功能和过程或其它未规定于7.4.3中的服务不应当被操作员用于核准的工作模式中,除非非核准的密码算法或安全功能是核准的过程的一部分,而且与核准的过程的安全无关。例如,使用非核准的密码算法或非核准的方式生成的密钥,混淆数据或关键安全参数,结果也被视为未受保护的明文,且不能提供安全相关功能。•当服务正在以核准的方式使用核准的密码算法、安全功能或过程,以及其它规定于7.4.3中的服务或过程的时候,该服务应当给出相应的状态指示。7.3密码模块接口•所有进出密码模块的逻辑信息流,都应当只能通过已定义的物理端口和逻辑接口,这些端口和接口是出入模块密码边界的入口和出口。•密码模块逻辑接口应当是相互分离的,这些逻辑接口可以共享一个物理端口,也可以分布在一个或多个物理端口上。•密码模块软件部件的应用程序接口(API)可以定义为一个或多个逻辑接口。7.3.2接口类型•硬件模块接口(HMI)定义为用于请求硬件模块服务的命令全集,请求服务的命令中包括输入到密码模块或者由密码模块输出的参数。•软件或固件模块接口(SFMI)定义为用于请求软件或固件模块服务的命令全集,请求服务的命令中包括输入到密码模块或者由密码模块输出的参数。•混合软件或混合固件模块接口(HSMI或HFMI)定义为用于请求混合固件模块服务的命令全集,请求服务的命令中包括输入到密码模块或者由密码模块输出的参数。7.3.3接口定义•密码模块应当具备下列五种接口(输入/输出是相对于模块而言的):•数据输入接口•数据输出接口•控制输入接口•控制输出接口•状态输出接口•除软件密码模块以外,所有模块还应当具备电源接口(通过内部电池供电的,电源接口可以不存在)。•密码模块应当区分数据、控制信息和电源输入,以及数据、控制信息和状态信息输出。•密码模块规格应当明确规定输入数据以及控制信息的格式,包括对所有可变长度输入的长度限制。7.3.4可信信道1/2•可信信道是在密码模块和发送者或接收者之间建
本文标题:GMT0028-2014《密码模块安全技术要求》详细解读
链接地址:https://www.777doc.com/doc-6326315 .html