查看原文
其他

密码模块浅析

谢永泉 计算机与网络安全 2022-06-01

一次性进群,长期免费索取教程,没有付费教程。

教程列表见微信公众号底部菜单

进微信群回复公众号:微信群;QQ群:16004488


当前,网络信息技术全面融入社会生产生活,深刻改变着国际国内经济格局、利益格局、安全格局,日益成为创新驱动发展的先导力量,同时“永恒之蓝”勒索病毒事件、FACEBOOK泄密门事件也深刻揭示着网络信息技术作为双刃剑所带来的巨大安全风险。习近平总书记多次指出,网络安全与信息化是相辅相成的,安全是发展的前提,发展是安全的保障,要统筹协调、同步推进。密码技术作为保障网络与信息系统安全的核心技术和基础支撑,近年来在国民经济各领域得到广泛应用,有力保障了国家信息安全、网络安全和经济安全。密码模块及其安全等级作为刻画商用密码产品自身防护能力的度量尺度,越来越展示出重要意义,得到广泛认可。也有单位和个人反映密码模块相关信息了解渠道较少,本文介绍了密码模块的涵义、与密码产品的关系、安全等级划分、应用选型建议等方面的有关情况,亦作为一种反馈渠道。

什么是密码模块


密码模块是指一系列包含于密码边界之中的硬件、软件、固件或其组合的集合,至少使用一个经国家密码管理局认可的密码算法、协议,实现一项或多项已定义的密码服务 ( 如加 /解密、数字签名 / 验证、密钥管理等 )。密码边界是实现密码模块安全防护能力的硬件、软件、固件或其组合形成的相对明确的逻辑区域。密码边界应当至少包含密码模块内所有安全相关的算法、安全功能相关的部件。


2014 年、2015 年国家密码管理局分别发布了 GM/T0028 -2014《密码模块安全技术要求》和 GM/T0039-2015《密码模块安全检测要求》,两个标准是从业单位在广泛消化吸收国内外相关技术标准的基础上,结合国内在密码安全技术上的研究探索、技术创新和应用实践编制的,适用于除安全芯片和密码系统外的密码产品类型,如智能 IC 卡、智能密码钥匙、密码机、密码卡、VPN网关、支付终端等,是今后密码行业产品安全性要求、测评和应用的指导性文件。


密码模块与密码产品的关系


密码产品是密码技术的实现载体,直接为各种应用提供机密性、完整性、不可抵赖性保护,在网络和信息安全风险不断增强的情况下,密码产品自身安全防护能力的强弱也成为产品选型的重要参考。密码模块是针对密码产品自身安全防护能力进行度量而引入的一种描述。目前,国家密码管理局已开始将密码产品达到安全等级列入商用密码产品型号审批的重要因素。新的《商用密码产品型号证书》中不仅包含商用密码产品遵循的技术标准,也包括了防护能力达到的安全级别。


密码模块主要类型


按照密码边界划分方式不同,密码模块可分为硬件密码模块、软件密码模块、固件密码模块、混合密码模块。


硬件密码模块的密码边界为硬件边线,包括部件之间提供互联的物理配线的物理结构,如电路板、基板或其它表面贴装;有效电器元件,如半集成、定制集成或通用集成的电路、处理器、内存、电源、转换器等;封套、灌封或封装材料、连接器和接口之类的物理结构;可以包含操作系统。典型密码产品如服务器密码机。


软件密码模块的密码边界为执行在可修改运行环境中的纯软件部件和数据组件,包括构成密码模块的可执行文件或文件集;保存在内存中并由一个或多个处理器执行的密码模块的实例 ; 可执行文件运行实例依赖的数据或文件集合。不包括其运行环境所包含的计算平台和操作系统,如移动终端密码模块(可修改运行环境指能够对系统功能进行增加、删除和修改等操作的可配置运行环境,如 Windows/Linux/ MacOS/Android/iOS 等通用操作系统)。


固件密码模块的密码边界为执行在受限的或不可修改的运行环境中的纯固件部件,包括可执行文件或文件集;保存在内存中并由一个或多个处理器执行的可执行文件,不包括运行环境所包含的计算平台和操作系统 , 如 JavaCard中的 Java 虚拟机(受限运行环境指允许受控更改的软件或者固件模块、基于可信执行环境技术的 TEE 操作系统等,不可修改运行环境指不可编程的固件模块或者硬件模块)。


混合密码模块的密码边界为软件 / 固件和不相交的硬件部件(即软件 / 固件不在硬件模块边界中)及相关端口和接口集合,不包括运行环境所包含的计算平台和操作系统。


特别需要指出,密码模块的密码边界是相对的,一个密码模块产品有可能包含另一个或几个规模更小的密码模块。如一个实现复杂密码服务功能的加密机,其本身可定义为一个密码模块,而该密码机内部可能包含了一个或多个密码卡,而密码卡本身也可以作为独立的密码模块来定义。对于宏观上的同一款产品,由于划定的边界不同,则其模块类型也会有所不同,如采用 Native 技术的智能密码钥匙产品,在外壳边界之内的硬件和固件部分可以定义为一个硬件模块;而如果将智能密码钥匙依赖的上位机中间件(如密码接口、CSP/PKCS#11 接口等)包含在边界之内,则可以将其定义为一个混合密码模块。


密码模块的安全级别


《安全技术要求》指定了密码模块应该满足的安全需求,涵盖了密码模块安全设计和实现的 11 个领域,包括:密码模块的规格说明;密码模块端口和接口;角色、服务和认证;软件 / 固件安全;运行环境;物理安全;非入侵安全;敏感安全参数管理;自测试;生命周期保障和其它攻击的缓解。按防护能力从弱到强定义了四个级别,每个领域在特定的安全级别上分别开展评估,综合后形成密码模块达到的安全等级。


安全一级。基础级,阐明了密码模块的基本安全要求。在安全一级密码模块设计时,“软件 / 固件安全”、“非入侵安全”和“自测试”等 3 个安全域需要着重考虑,其他域的安全要求相对容易满足。安全一级密码模块不要求具有物理安全防护能力,可用于保护价值较低的数据。因此,安全一级密码模块的使用场景是已经配置了物理安全、网络安全以及管理过程等控制措施的运行环境。


安全二级。在安全一级的基础上增加了拆卸证据、基于角色鉴别的功能。硬件密码模块的拆卸证据可使用拆卸存迹的涂层或封条,或者在封盖或门上加防撬锁等手段以提供拆卸证据。角色鉴别要求密码模块鉴别并验证操作员的角色,以确定其是否有权执行对应的服务。软件密码模块能够达到的最大整体安全等级为安全二级。安全二级密码模块可以抵抗使用简单工具的主动攻击,但其安全应当由操作员负责。在无保护运行环境下,安全二级密码模块只能用于保护价值一般的数据。尤其应当注意,为保证数据信息安全,必要时应对安全二级软件密码模块的运行环境设置有效安全防护措施。


安全三级。在安全二级的基础上,增强了物理安全、身份鉴别、环境保护、非入侵式攻击缓解、敏感参数管理等安全机制。安全三级密码模块能够检测并防护直接访问和探测的物理攻击,能有效保护明文关键安全参数或密钥分量的输入和输出,当密码模块的封盖 / 门被打开时,可以提供主动防护的功能;执行服务时会验证操作员的身份和权限;能够有效防止电压、温度等环境异常对模块安全性的破坏;具备非入侵式攻击缓解技术的有效性证据和测试方法;安全三级密码模块可以抵抗使用简单工具的中等强度攻击,在无保护运行环境下,安全三级密码模块可用于保护价值较高的数据。


安全四级。安全四级是标准中的最高安全等级。该等级包括安全一级、安全二级、安全三级中所有的安全特性,并增加了一些扩展特性。安全四级的密码模块提供完整的封套保护,无论外部电源是否供电,都能够检测并响应所有非授权的物理访问,从任何方向穿透密码模块的外壳都会以很高的概率被检测到,并立刻置零所有未受保护的敏感安全参数;支持多因素身份鉴别,至少包括“已知某物、拥有某物、物理属性”中的两个;还要实现规定的非入侵式攻击的缓解方法。安全四级密码模块可以抵抗使用特制工具的高强度长时间攻击。在无保护运行环境下,安全四级密码模块可用于保护价值高的数据。


密码模块选型建议


一方面,应考虑运行环境提供的防护能力。密码模块及其运行环境共同构成了密码安全防护系统。在低安全防护能力的运行环境中选用高安全等级的密码模块,也可能达到较高的安全防护效果;在高安全防护能力的运行环境中,也可选用较低安全等级的密码模块。


另一方面,还要考虑所保护信息资产的重要程度。信息资产包括数据、系统提供的服务以及相关的各类资源,其重要程度与所在的行业、业务场景以及影响范围有很大关系。信息资产重要程度的界定由用户机构或其主管机构负责,可参考标准 GB/T 22240-2008《信息安全技术 信息系统安全保护等级定级指南》和 GB/T 20984-2007《信息安全技术 信息安全风险评估规范》。重要信息系统中密码模块的选用还要符合其业务主管部门的相关要求。


另外,不同系统的重要程度不同,同一系统中的不同功能模块的重要程度也不尽相同。以电子银行系统为例,后台系统与银行账户资金直接相关,用户终端仅影响单一账户资金安全,性质不同。同一个密码模块在不同的场景中,随着配套环境的安全防护能力、访问控制等方面的差异,能够保护的信息资产重要程度也有所区别。


经专家研讨,应综合考虑密码模块的运行环境自身的安全防护能力、被保护系统和被保护资产的价值等各方面因素,选择合适安全等级的密码模块。用于基础信息网络、重要信息系统、重要工业控制系统和面向社会服务的政务信息系统的软件类密码产品,应达到安全二级或以上的安全要求。建议用户尽量选用采取硬件保护密钥机制的密码产品。确需选用软件的,要提醒用户注意防范风险,定期进行风险评估。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存