中国信息安全评估中心Shi Li Hexin Yang Yang
在信息安全性的基本支持技术中,密码学技术是最深入的研究,也是最困难的研究内容之一。经过40多年的发展,由于基本数学和计算复杂性理论的相互促进,现代密码学研究逐渐成熟,基本概念及其相互依存关系已连续清除,并不断开发了五颜六色的应用形式。当然,现代密码学研究远非完美,尽管可以在理想的世界中构建一些可以构建的解决方案,并且它们的安全在现实世界中并不乐观。为了确保密码应用程序的安全性,有必要对密码模块进行安全评估。在这个问题上,距离测量的概念已逐渐认可。简而言之,我们可以从差距分析的角度来测量理想世界与现实世界之间的距离,然后评估该距离对安全性的影响。这个概念反映在许多评估标准中,其中GB/T 18336(即,一般评估标准的CC标准)和GM/T 0028(即“加密模块安全性的技术要求”)是这方面的示例。
In order to the of , this will the faced by on the basis of the of , the that have, and to the level to sort out the two , the based on GB/T 18336年和GM/T 0028,希望帮助读者了解加密模块评估技术,并为随后改进加密模块评估方法的想法提供了想法,并提高了加密模块的安全性。
1。加密算法的理论安全性
加密模块的实际安全性取决于三个方面:首先,加密算法必须在理论上安全(理论上的安全性);其次,加密算法的实现方法和过程必须是安全的(实施安全);其次,加密模块的操作和管理必须是安全的(操作环境安全性)。并不难发现这三个方面实际上与加密模块设计,实现和操作的三个生命周期阶段相对应。与密码算法的理论研究不同,安全评估很少涉及加密算法的理论安全证明过程,但是本节将讨论这一点,因为算法安全性的定义直接影响了安全评估。在此之前,我们将达成两项协议:首先,本文主要关注技术安全问题,并且不会讨论密码操作和管理的安全问题。其次,为了简化讨论过程,除非需要单独讨论加密算法和加密协议,否则本文中提到的加密算法还包括加密协议。
1。理论安全分类
加密算法的理论安全性可以从两个角度分开,如图1所示。第一种方法是根据算法安全性的可靠条件对第一个方法进行了分类。有两种类型:(1)启发式安全性()。目前,加密算法的安全性是根据目前已知的最有效的攻击算法的复杂性(例如对称的加密算法,例如DES,AES,AES,SM3,常用的Hash算法,以及基于这些算法构建的加密方案和协议)。 (2)可靠安全性(),其中包括两种情况。一个是,可以将加密算法的安全性降低到在特定模型下解决某些基本数学问题的复杂性(例如单向函数,伪随机数生成器,RSA,RSA,EL GAMAL,SM2,RABIN,RABIN,, ,以及基于这些技术的构建的密码和协议等);另一个是它仅依赖于自然世界的基本定律,从信息理论的意义上讲,它通过证明信息泄漏和其他目标的有限性来定义安全性(例如一个核心加密算法,阈值秘密共享方案,随机提取器,随机提取器,量子密钥分配协议等)。
第二种方法是对攻击所需的计算复杂性进行分类,并将加密算法的安全性分为两类:在信息理论中,在计算意义上和安全性()中的()。与第一个分类方法的主要区别在于,目前,可以将可以将其减去为数学困难的启发式安全性和安全性合并为计算类别(从意义上)安全性。计算安全算法依赖于攻击者计算能力的当前认知水平。如果攻击者的计算能力急剧增加,则可能难以保证其安全性,这与信息理论安全算法是一个本质上的区别。
有趣的是,现实世界应用程序中的加密模块可能会实施一些私人,但是安全性没有严格分析的算法。由于根据安全评估领域的常规做法,理论上不可能讨论这些算法是否安全,因此除特殊情况外,该算法的安全性将被排除在评估范围之外。
2。攻击者能力模型
攻击者的能力模型是建立理论安全的基础。最初的理论安全研究是在黑匣子模型下开发的。目前,除了了解密码算法的具体描述外,攻击者只能操纵密码算法的输入或输出值,并且不能监视算法的操作,即在算法执行过程中的中间变量信息。随着诸如侧渠道分析等技术的发展,理论研究模型也得到了改进,例如弹性泄漏密码学()研究加密算法的理论安全性,假设攻击者可以获得中间变量的部分信息。这种更改使理论上的安全性更接近实际安全性,但是从当前的处理技术来看,两者之间的距离仍然很明显。
安全评估需要首先了解理论安全分析过程,比较攻击者的能力模型和在应用程序方案中实际攻击者的能力,并找到两者之间的不一致程度,并分析最初的理论安全分析过程是否涵盖了这种不一致。如果不能涵盖它,则需要采取其他保护措施来抵抗实际攻击者的“剩余能力”,从而将加密模块的安全分析目标转移到对特定保护措施的分析中。图2提供了此概念的直观描述。
2。密码模块的实际安全性
如果加密模块中的加密算法符合理论安全定义,为什么它仍然无法保证其应用程序安全?这是关于加密模块的实际安全性的问题,本节将继续深入分析此问题的性质。
1。密码模块面临的威胁
密码模块的最核心部分是密码算法本身的实现。在此基础上,密码模块可以通过提供密码服务来响应用户需求。通常以接口的形式访问此服务,这也为攻击者创造条件。一般而言,针对加密模块的攻击有两种主要类型:一种是通过使用加密服务提供的逻辑说明界面来发起的逻辑攻击,另一种是由侧通道界面引发的物理安全攻击,该物理安全攻击在执行加密算法时,如图3所示(如图3所示)(如图3所示)(如图3所示),这两种现实攻击者都可以使用两种型互动。
根据第1节中的讨论,密码模块所面临的实际威胁可能与理论分析结果不一致。例如,由于安全参数的产生错误,访问控制措施不正确以及未能考虑侧通道泄漏,实际的加密模块可能会面临各种安全风险。由于理论分析模型通常缺乏考虑,因此这给加密应用留下了安全风险。因此,需要将更多的保护措施添加到加密模块中,并通过评估来验证其有效性。
2。密码模块的保护系统
更具体地说,根据密码模块的一般结构,可以从四个级别分析由保护措施组成的加密模块保护系统:加密算法安全性,物理保护安全性,数据保护和访问控制安全性以及通信界面安全性,如图4所示。
(1)密码算法安全性。该级别主要关注加密算法实现本身的安全性,其测试方法与其理论安全性的分类有关。对于计算安全性的算法,有必要了解目前最有效的攻击进度,并判断算法安全参数是否足以支持密码实现的安全性。因此,参数配置和生成过程,随机数,操作模式的使用,操作模式等需要安全性分析。对于信息理论意义上的安全算法,由于其安全性不取决于特定的计算模型,因此攻击者计算能力的增加不会对算法的安全构成新的威胁。因此,随机性和算法实现的正确性是需要检测到的主要内容。
(2)物理保护和安全。这是在实施加密算法之外的第一层保护,主要抵抗各种形式的侧通道攻击,包括功率消耗的攻击,电磁辐射攻击,耗时的攻击,缓存攻击,故障注射攻击和侵入性攻击。显然,无论是什么理论安全定义都可以满足加密算法的满足,只要其证明模型不完全考虑侧渠道攻击,就必须添加此级别的保护。安全评估过程需要分析所有措施的有效性。
(3)数据保护和访问控制安全性。密码算法的参数和实现代码通常需要以文件或数据的形式保存。需要保护这些数据,以防止未经授权的访问或篡改,完整性错误或信息泄漏。安全评估过程需要分析访问控制和完整性保护措施的有效性。
(4)通信接口安全性。通信接口是加密模块为外界提供服务的主要方式。一些接口与安全没有直接关系,不需要特殊保护,但是对于关键的谈判或通道加密接口,需要保护以防止攻击者窃取信息或破坏渠道上的完整性。安全评估过程需要注意实施安全协议的正确性和协议执行状态的安全性。
3。加密模块安全评估标准系统
由于密码技术在维护信息安全方面的基本价值,加密模块一直是安全评估的重要对象。在我国加密模块安全评估相关的现有技术标准中,GB/T 18336和GM/T 0028的认可最高,并且已用于大量加密模块安全评估实践中。基于先前对一般评估方法的讨论,我们将根据这两个特定标准简要讨论评估方法。
1。在GB/T框架下的评估方法18336
GB/T 18336标准是国际通用评估标准(IE CC)标准的同等翻译。目前在我国家使用的最新版本于2015年发布。为了简化描述,它仍然称为CC标准。 CC标准的目的是为信息技术产品的安全评估提供一般评估模型和方法。当有必要评估特定产品时,可以通过详细操作和更清晰的评估路线来实施安全评估。 CC官方网站发布的认证产品列表包含数千种与密码模块相关的产品,包括通用网络基本设备,芯片和嵌入式软件产品等,涉及与密码相关的功能,例如访问控制,消息身份验证,密钥协商和数据加密。因此,尽管CC标准清楚地排除了标准范围的加密算法的理论安全分析,但它仍然适用于加密实施中的安全评估。
使用CC标准进行安全评估的关键是解决安全要求的描绘和评估方法的两个问题。以下简要讨论了这方面的内容。
(1)描述安全要求。从安全评估的角度来看,安全要求决定了范围和评估方法。为了得出加密模块的安全要求,包括功能要求和保证要求(确定评估的深度和严格性),有必要严格分析加密模块的预期应用程序场景,可能的安全威胁和环境假设,并证明威胁和要求之间的对应关系。从第2节的角度来看,此过程是要找出所有可能的攻击,以及在实际情况下的理论分析模型和攻击者的功能的差异,并确定加密模块需要采取哪些保护性措施。通常,这些内容需要由开发人员,评估人员和用户之间的协作来定义,这些内容称为CC中的保护配置文件(,PPS)。在对安全要求的标准化描述方面,CC标准预定了一些与密码相关的安全功能组件(例如FCS,FIA,FPT,FPT,FTP和其他类中的组件)。如果这些组件不足以描述某些独特的安全功能要求,则该问题也可以通过组件扩展方法解决。
此外,当开发人员提交一个清晰的密码模块进行评估时,有必要根据产品的实际特征进一步完善和改善PP,请根据第2节中的讨论方法澄清各种保护措施,并确定所需的评估保证水平。这些经常在安全目标(,ST)文档以及更精致的设计和实施文档中描述。只有在此基础上,评估者才能满足进行实际评估的条件。
(2)评估方法。在CC评估框架下,了解攻击路径始终在整个评估过程中运行,因此CC采用了一种“面向攻击”的评估方法(基于攻击)来标准化产品评估过程。根据这种方法,开发人员需要根据上述方法阐明安全要求和保护措施,并进行安全性。在此基础上,评估者需要分析这些保护措施在理论上是否足以抵抗所有威胁并确定保护措施的充分性;此外,评估者一方面设计了测试用例本身,一方面测试了实施各种功能和安全要求的合规性,以验证加密模块中各种保护措施的正确性;另一方面,基于评估者对测试对象的理解和对最新攻击方法的掌握,在模拟操作环境中实现了穿透测试,以评估每个攻击路径的可行性和复杂性。如果保护措施的充分性和正确性符合ST中描述的安全级别的要求,则可以认为密码模块在正确配置时可以在预期的使用环境中提供足够的安全性。有关特定测试方法,请参阅ISO/IEC 18045(IE CC测试方法,CEM)标准。
2。在GM/T 0028框架下的评估方法
GM/T 0028标准是我国家根据美国-2/3标准(即ISO/IEC 19790)开发的密码模块安全评估的技术标准。最新版本于2014年发布,已被广泛用于我国加密模块的安全评估。与CC标准的通用目的不同,GM/T 0028标准是为加密模块安全评估编写的。因此,直接描述安全评估要求的方法用于标准化加密模块的评估过程,消除了安全威胁的分析过程,并从安全威胁中得出了安全要求。这些要求包括密码功能规范,接口,角色/服务/身份验证,软件/固件完整性保护,操作环境可扩展性,物理保护,侧渠道安全性,敏感数据管理,自我测试,生命周期控制以及缓解其他攻击。开发人员需要根据这些评估要求准备证据,以描述保护措施及其有效性;测试人员使用此证据来验证安全功能的正确性。应该指出的是,尽管保护机制的组织方式有所不同,但与这些要求中的安全功能相关的内容可以包含在第2.2节中的密码模块安全保护系统中。
在此基础上,GM/T 0028标准通过权衡环境安全保护功能和加密模块自我保护功能,将对加密模块的评估分为4个级别。其中,1级是基线保护水平。在此级别上,加密模块具有满足安全要求的最低能力,并且只能依靠强大的环境保护来满足应用程序安全要求;第4级要求密码模块具有足够的自我保护功能,并且可以适合具有低环境保护功能的应用。
由于GM/T 0028清楚地描述了加密模块的评估要求,因此该框架下的评估方法通常称为“面向需求的”测试方法(基于需求的”测试方法(基于需求),也就是说,可以围绕评估要求设计测试用例。只要满足这些要求,就可以认为加密模块可以实现预期的安全目标。该测试方法不再需要穿透测试,这与CC评估是显着差异。为了指导实际测试,GM/T 0039标准(即“加密模块安全检查要求”)为基于GM/T 0028的测试过程提供了详细的规格(与CC对CC的补充效应在功能上相似),并且可以根据其评估要求进行实际评估工作。
4。摘要和前景
标准化方法对于确保密码模块安全评估的标准化至关重要,但不能将其视为静态模板。他们需要在理解最新的密码设计和攻击技术的过程中不断改进,并基于差距分析不断丰富框架想法,以发挥实际的应用程序价值。对于特殊问题,例如量子光学系统,仍然存在许多理论问题,需要解决加密算法,侧渠道分析,随机性检测和脆弱性检测技术的合规性测试。在对密码模块进行深入评估的必要途径上,我们仍然需要直接研究这些挑战,以便为信息安全保证工作提供真正有价值的技术方法。
(本文发表在《中国信息安全》第9期中,2018年)
本站简单学堂,主要教新手怎么在网上开店,分享网店运营知识,全力为学员打造一个电商学习的综合平台,欢迎您的关注。
还没有评论,来说两句吧...