用于分析逻辑电路的方法与流程

文档序号:12177484阅读:425来源:国知局
用于分析逻辑电路的方法与流程

本发明一般地涉及电子逻辑电路、尤其是集成电路的领域,所述集成电路诸如例如所谓的专用集成电路或ASIC、所谓的现场可编程门阵列或FPGA以及所谓的片上系统系统。具体地,本发明涉及用于分析逻辑电路的方法,所述逻辑电路包括多个部件和用于部件之间的数据的交换的通道(channel),其中为了模拟逻辑电路运行的方式,在电路模型中给每个部件和每个通道指派功能性质。



背景技术:

逻辑电路被用在许多电气和电子设备或系统中。这样的电路一般地包括衬底(例如半导体衬底),在其上不同的电路元件或电路元件块被容纳并彼此接线。这些电路元件或电路元件块也被称为部件。集成电路通常包括被容纳在单晶衬底上的多个不同的部件。如果在一个芯片上实现所期望功能中的全部或大部分,则这被称为片上系统。依靠该集成,全面的功能和应用在最小的空间中可用。技术开发中的迅速进步意味着当前存在在单个半导体芯片上容纳具有大量部件的复杂逻辑电路的可能性。

通常依靠基于计算机的帮助来设计这样的复杂的电路。在这样的情况下,首先创建虚拟电路模型以便模拟期望方式的运行。具体而言(in concrete terms),通过功能部件模型来表示每个部件(硬件部件;包括硬件和软件部分的系统部件等),以便由此构造逻辑电路的或者逻辑系统的电路模型。基于该电路模型,能够依靠模拟来检查和核实对应电路的功能。这尤其适用于具有高程度的抽象的电路模型,其也被称为高级模型。使用诸如C++、SystemC、系统Verilog等的高级编程语言,可以捕捉、表示功能部件模型和逻辑电路的电路模型,并且可以模拟逻辑电路的功能行为以及逻辑电路的单独部件。具体而言,在该情况下,例如单独的功能部件的运行时间和性能被定义为参数,使得电路模型在模拟期间像对应的真实电路或像真实的硬件模型一样行为。

复杂电路(系统)的开发中的重要目的是保护其免受攻击(安全攻击)。为了致使所述攻击更困难或为了避免它们,将安全措施集成到电路的设计中。利用所述措施,在系统中存储或处理的安全相关数据将被保护。为了确定这些安全措施并以最佳的方式布置它们,要求对设计的分析。在该分析中,调查系统的哪些部件可以被攻击显式或隐式地影响以及对于相应的用例而言哪些安全措施在给定的程度上是明智的(sensitive)。

通常,这样的分析在开发过程期间基于通过开发者(架构师)的对系统的进行的检查和回顾而发生。还已知对所谓的攻击树分析的使用。

因为逻辑电路的渐增的大小和复杂度,所以全面地调查可能的攻击对功能和安全的影响变得越来越困难。



技术实现要素:

本发明的根本目的是进一步开发开始陈述的方法以便能够执行可靠的安全分析。

通过根据权利要求1所述的方法来实现该目的。本发明的有利实施例和发展是从属权利要求的主题。

在该方法中,在方法的部分中通过用于安全分析的机制以相应的部件和/或相应的通道被指派至少一个定义的安全性质并且安全相关数据被链接到至少一个定义的安全要求和安全状态的方式来扩展电路模型,并且在方法的进一步部分中依靠模拟单元执行以下方法步骤:

- 检查相应的部件和/或相应的通道的安全性质是否对应于安全相关数据的安全要求,并且如果其不对应则生成安全风险报告,

- 将所建模的攻击应用到部件和/或通道,

- 确定所应用的攻击能够妨碍部件和/或通道的安全的程度,并且针对安全性质的给定的脆弱性(vulnerability),生成攻击报告。

因此,已经基于模拟在设计阶段进行(undertake)了利用关于安全性质集的适合性和关于所述性质能够被虚拟地执行的攻击妨碍的程度的报告的安全分析。如果例如在受攻击的部件中存在对数据的操纵,则该数据通过进一步部件根据电路模型的功能而移植。也针对这些部件,确定作为处理被操纵的数据的结果的安全性质的脆弱性。在必要时,为了优化系统,可以随后引入或移除附加的安全措施。

这确保被操纵的数据的所有作为结果的影响被识别并且逻辑电路相对于所有建模的和应用的攻击充分地稳健。

利用该方法,还能够检查针对其的模拟通常花费大量时间的攻击,诸如例如密码加密算法的重构。在本方法中,仅必须确定所建模的攻击是否具有充分的潜力来克服受攻击的部件的定义的安全性质。如果其具有,则依靠所生成的攻击报告确认给定的脆弱性。

此外,已经依靠模拟单元在电路模型的设计阶段中识别并通知了数据的安全要求与部件的安全性质之间的偏差。

对于每个部件和每个通道有利的是通过其自己的模拟单元来扩展。该单元然后针对相应的通道或针对相应的部件在模拟期间执行测试步骤,并且如果识别到安全风险则生成对应的报告。

在该情况下,作为所应用的攻击的结果而生成事件数据是明智的。该事件数据描述可能发生了的对数据的任何操纵,通过其使得较精确的分析是可能的。

在本发明的进一步有利变体中,为了确定相应的安全性质的脆弱性,生成概率数据。然后在攻击报告中指定(specify)攻击成功的概率。此外,概率数据可以提供关于在妨碍所涉及的安全性质之前攻击可能持续多久的信息。

因此,明智地从概率数据导出风险数据,用于评估相应的安全性质。能够基于该风险数据以简单的方式建立安全性质是否必须被扩展或者可以被降低。如果例如针对将被开发的电路定义可容忍的风险级别,则进行风险数据与该风险级别的调和。如果所建立的风险超过了用于部件的规范,则必须扩展安全性质。相反地,也通过该方法识别夸大的安全性质。

本发明的简单发展提供了将从先前创建的库选择的攻击。这意味着不必针对每个用例创建新的攻击。代之以,通过从库简单地选择攻击并在必要的情况下适配攻击参数来对攻击建模。

在这里对每个攻击而言有利的被指派攻击潜力和/或攻击类型和/或攻击时间触发器。基于这些属性,能够以简单的方式选择攻击或者能够在经修改的变体中对攻击建模。

为了进一步增加本方法的效率,在发展中提供了具有将被建模的多个图节点的攻击图以及对应于被应用到特定部件和/或特定通道的攻击的每个图节点。因此添加进一步的方法步骤,其中根据所建模的攻击图将附加攻击应用到单独的部件或通道,并且其中继而确定所涉及的部件的相应的安全性质的能力。可以从所确定的多个攻击的影响导出用于适配安全措施的必要步骤。

作为结果的优点是,当将多个攻击图链接到一起时,使得根据执行一个攻击图的执行的进展来执行另一攻击图。因此,进一步增加了能够被应用的攻击场景的复杂度。在该渐增的复杂度的情况下,将被开发的电路的安全也相对于任何形式的攻击而增加。

针对逻辑电路的电路模型,有利地提供了将被具体化为高级模型、尤其被具体化为所谓的电子系统级模型的所述模型。在用于逻辑电路(尤其用于ASIC)的设计过程的不同步骤期间,利用不同级别的抽象来创建不同的电路模型。利用这些电路模型,还可以测试逻辑电路的不同功能。在设计过程的开始处,设计逻辑电路的所谓的高级模型或尤其是所谓的电子系统级模型或ESL模型。利用该模型,一方面可以对单独的部件以及逻辑电路的功能、算法等建模或者创建部件和电路的功能模型,并且另一方面可以有效地测试攻击的影响和安全性质集的脆弱性。

此外,提供集成电路、尤其是所谓的专用集成电路或所谓的片上系统是有利的。集成电路可以包括多个电气连接的电子部件的组合——大部分是半导体部件(例如,二极管、晶体管等)和/或进一步是有源和无源部件(例如,电阻器等)。在例如在处理器、控制器、数据存储器等的构建中的具有高安全要求的许多领域中存在对集成电路的应用。

集成电路的具体形式是当前用在许多不同的电子设备中的所谓的专用集成电路(ASIC)。在ASIC中,逻辑电路的功能已经在开发和制造期间被唯一地定义并且其后不再能够被改变。这意味着ASIC具有对将被处理的数据的严格的依赖性并且在ASIC中实现的逻辑具有与将被执行的一个或多个功能的紧密关系。因此,在ASIC的情况下,对于已经以简单且划算的方式在设计和开发阶段中建立并测试的系统安全而言尤其重要的是例如所需求或期望的风险规范是否被遵守。

集成电路的进一步形式是所谓的片上系统系统或单片系统。在该情况下存在对系统(例如,嵌入式计算机等)的功能中的全部或大部分的集成。系统被认为是诸如例如逻辑电路、定时、微技术传感器、存储器单元、处理器、接口、总线系统等的不同部件的组合,通过其全部来提供具体功能。本方法尤其适用于这些类型的变体,因为作为渐增的系统大小和复杂度的结果,利用常规方法,仅对安全情况的较不适当的评价在这里是可能的。

进一步有利的改进提供了将被作为逻辑电路提供的所谓的现场可编程逻辑门阵列。依靠这样的现场可编程逻辑门阵列或FPGA,通过内部结构(例如,门、逻辑块等)的具体配置,可以实现——从诸如例如计数器电路之类的简单电路到诸如例如微处理器之类的高度复杂的电路的——不同的电路。在数字技术的所有领域中、尤其在其中快速信号处理和修改电路灵活性的能力很重要的领域中使用FPGA。通过与其他逻辑电路、尤其是ASIC的比较,FPGA具有较低的开发成本和非常短的实现时间的优点。FPGA的特定优点是它们能够被重新配置并且因此利用FPGA实现的逻辑电路能够容易地被校正并且——在必要时——能够利用安全机制被扩展。

附图说明

下文通过示例的方式解释本发明,所述示例指附图。在图中,在示意图中:

图1示出了逻辑电路的虚拟电路模型

图2示出了部件的或通道的扩展

图3示出了具有不同攻击的库

图4示出了不同的攻击图

图5示出了具有对电路模型的不同部件的攻击的攻击图

图6示出了具有对电路模型的不同部件的攻击以及对安全相关数据的处理的攻击图。

具体实施方式

本方法的开始点是在适当的基于计算机的模拟环境中的虚拟电路模型1。电路模型1模拟诸如例如片上系统或ASIC之类的逻辑电路并且例如在设计或开发阶段中利用诸如例如SystemC之类的高级编程语言在系统级别处被描述为高级模型(例如,ESL模型)。

在根据图1的示例中,虚拟电路模型1在第一模块2中具有三个示例部件3并且在第二模块4中具有一个部件3。这些部件3可以例如是硬件部件(例如,电子电路元件等)或系统部件(例如,逻辑电路、具有硬件和软件部分的部件等)。为了设计或开发或为了逻辑电路的电路模型1的模拟——例如用以针对预确定的用例测试逻辑电路的功能——将每个部件3创建为功能模型(同样地作为诸如例如SystemC之类的编程语言中的高级模型)。在功能部件模型的帮助下,可以模拟相应的部件3的功能行为。在该情况下,将运行时间和/或性能预确定为可以针对每个部件3设置的参数。在模拟期间,然后存在根据具有近似对应于真实的逻辑电路的运行时间和性能的这些设置的所模拟的数据处理。

部件3被互连并通过通道5连接到外部部件(未示出)。照例,出于该目的提供适当的总线。

在图2中示出了利用发明的属性扩展的部件3。部件3被指派定义的安全性质6。将诸如机密性、完整性、真实性和不可否认性之类的在数据处理中已知的安全概念用在例如安全性质6的确定中。

因此利用例如安全性质6来确定相应的部件3以其处理数据的机密性和/或完整性和/或真实性和/或不可否认性的程度。因此,进行用于保护安全相关数据的相对于其安全性质6的对每个单独的部件3的分类。

同样适用于通道5。在这里也利用定义的安全性质6来确定由相应的通道5以其传输安全相关数据的机密性和/或完整性和/或真实性和/或不可否认性的程度。

例如,以由此在模拟环境中每个部件3和每个通道5被链接到安全参数的方式定义安全性质6。相应的安全参数然后定义机密性和/或完整性和/或真实性和/或不可否认性等的程度多高,如在0和10之间的数。

为了处理安全相关数据,部件3包括适当的存储器设施7。在该情况下,针对安全相关数据确定定义的安全要求8。具体而言,这涉及关于所需求的机密性和/或完整性和/或真实性和/或不可否认性的程度的确定。以该方式,还对将依靠部件3处理或将依靠通道5传输的安全相关数据分类。还能够例如通过被链接到数据的安全参数在模拟环境中确定安全要求8。

此外,将所有安全相关数据链接到安全状态。该安全状态提供关于如下的信息:对应的数据对于示例而言是否仍值得信任,或者是否存在数据操纵已经发生的概率。

利用模拟单元9扩展电路模型1的每个部件3。这最初测试在相应的部件3中处理的数据的安全状态和安全要求8是否对应于该部件3的安全性质6。例如,数据需求高级别的机密性,其是这为什么具有作为安全要求8的加密。如果然后未加密地处理或转发这样的数据,则在数据的安全要求8与所涉及的部件3的或通道5的安全要求8之间不存在匹配。作为这样的不对应的结果,依靠模拟单元9生成安全报告并将其运送到输出单元。

在进一步方法步骤中建模并应用对部件3或通道5的攻击10、11、12。在该情况下,例如部件3的模拟单元9从先前创建的库选择攻击10、11、12,如在图3中示出的那样。

攻击10、11、12具有不同的攻击性质,所述攻击性质例如从分类机密性、完整性、真实性和不可否认性导出。例如,将攻击强度定义为攻击潜力。进一步标识涉及攻击类型,例如密钥重构。为了定义攻击点,攻击10、11、12被指派攻击触发器。后者向模拟单元9指定相应的部件3,在攻击被发起(激活)时通过其取决于配置立即或仅稍后做出攻击10、11、12。

本发明的本质是所触发的攻击10、11、12在模拟期间与虚拟电路模型1交互。在该情况下,相应的攻击10、11、12能够访问数据,其中存在操纵可能性。具体而言,这些操纵可能性取决于所涉及的部件3或所涉及的通道5具有哪些安全性质6以及导向该部件3或该通道5的攻击10、11、12具有哪些攻击性质。

例如,从库选择具有性质——作为攻击类型的“密钥重构”、作为攻击潜力的“高”以及作为攻击时间触发器的“立即”的攻击10。例如,能够在模拟环境中将这些性质设置为攻击参数。

在该攻击10的选择之后,这被立即应用到被指派的部件3。如果该部件具有加密性质,其强度的程度小于攻击潜力的强度的程度(例如,“中”),则攻击10 获得对在该部件3中处理的数据的访问并且可以操纵所述数据。相应地,修改该数据的安全状态并且生成具有结果数据的攻击报告并将其输出到输出单元。在该情况下,存在指定攻击成功的概率的选项。然后在安全状态中和在攻击报告中指定对应的概率数据,例如,数据有70%的概率已经被操纵。

此外,将针对对应的攻击的代码、针对所涉及的部件的代码以及用于执行攻击等的时间点或持续时间作为结果数据输出。还存在针对的不同持续时间计算不同的概率数据的选项。在这样的情况下,基于部件3的、数据的和攻击10的安全参数来计算攻击10将必须持续多久使得将存在作为结果的妨碍的具体概率。因此,可以从概率数据导出风险数据。例如,作为攻击模拟的结果,针对每个部件3和每个通道5输出风险值(安全风险数)。这些风险数然后给出关于部件3和通道5相对于所应用的攻击10-12多么易受攻击的信息。与所需求的风险级别的比较然后立即示出安全措施在何处具有弱点或者可能在何处设置了不必要的安全措施。例如,可以通过用例的模拟来示出在较小程度上的密码功能的执行比原始假定的更充分用于保护系统。

在本发明的发展中,通过攻击10、11、12、13的选择和组合,可以形成一个或多个攻击图14、15,如在图4中示出的那样。在该情况下,例如攻击图14的执行取决于另一攻击图15的结束。在这样的情况下,将攻击图14的分辨(resolution)定向到对电路模型1的攻击10、11、12或10、13的预确定的序列。

具体而言,对攻击图14到电路模型1的映射的模拟发生在模拟期间,如在图5中示出的那样。在这样的情况下,可以将一个或多个攻击10-13应用到一个或多个部件3。

以该方式,创建将不同的用例应用到虚拟电路模型1的选项。可以例如利用所谓的任务图方法(根据纲要的平台架构师)来创建这样的用例。

不同的攻击图14、15可以被用于电路模型的模拟和分析,其中通过攻击10-13的适当组合,可以揭露针对所模拟的用例的安全缺口。例如,利用攻击10,任务可以依靠MAC检查来测试数据分组并且在必要时请求新的分组。

在相应的部件3中的模拟单元9监视所建模的电路模型1并且经由输出单元依靠对应的报告来通知对应的安全妨碍。因此,可以在模拟期间跟踪并记录数据和数据质量。这允许对安全相关事件的追溯。此外,建立被操纵的数据对电路模型1的影响。

在图6中的示例模拟中,通过攻击10、11操纵机密数据16。在该情况下,电路模型1包括四个部件3、3'、3''、3''',其中第一部件3经由第一总线被连接到第二部件3',并且其中第二部件3'经由进一步总线被连接到第三和第四部件3''、3'''。

第一攻击10的最初影响是对先前利用其保护第一总线的密钥的重构17。这意味着解密了通过该通道5'运送的数据16。被解密的数据16'已经到达部件3'。该模拟过程的影响是与数据16'连接的安全状态改变以及对应的攻击报告18被输出。在所述报告中,陈述了例如通过所述通道5'运送的数据16已在具体时间点被解密。

通过根据预确定的攻击图14被应用到第二部件3'的第二攻击11,存在对被解密的数据16'的操纵19。因此,最初经由进一步总线将被操纵的数据16''运送到第三部件3''中并最终将其运送到第四部件3'''中。在该情况下,在数据经过每个部件3''、3'''和每个通道5时,依靠相应的模拟单元9生成和输出攻击报告18。这使得能够相对于被操纵的数据16''的原因和影响来分析整个系统。

具体而言,能够通过被操纵的数据建立部件3、3'、3''、3'''是否展示不同的行为。因此,通过对攻击图和安全措施的假设分析或探测性使用,优化了逻辑电路的设计。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1