CN113728319A - 用于监测硬件-应用的方法和可配置硬件模块 - Google Patents
用于监测硬件-应用的方法和可配置硬件模块 Download PDFInfo
- Publication number
- CN113728319A CN113728319A CN202080032687.0A CN202080032687A CN113728319A CN 113728319 A CN113728319 A CN 113728319A CN 202080032687 A CN202080032687 A CN 202080032687A CN 113728319 A CN113728319 A CN 113728319A
- Authority
- CN
- China
- Prior art keywords
- hardware
- application
- hac
- application component
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Abstract
在硬件‑应用组件运行时监测和控制硬件‑应用组件(HAG)的传入和传出通信。以此方式,提供了一种防火墙(NBF,SBF),以用于确保在现场可编程门阵列(CHM)上执行安全性关键功能的硬件‑应用(HA)的安全且未更改的操作。硬件‑应用组件可以直接地和/或经由片上总线与其他组件交互。当使用第三方硬件‑应用或软件应用(即,由不可信方开发的应用)时,对传入和/或传出通信进行监测是特别有利的。另一个优点是监测和控制硬件‑应用、硬件‑应用和软件应用、硬件‑应用和外围设备(PD)、IO控制器等之间的所有通信的可能性。这在硬件‑应用受到损害并试图损害嵌入式设备(ED)的其余部分的情况下、或者在损坏的软件应用试图在运行时损害相关联的硬件‑应用的情况下尤其是有益的。
Description
诸如电子控制单元(ECU)、工业个人计算机(PC)或物联网(IoT)设备之类的嵌入式设备被用于工业过程中的各种任务。所述设备的正确和未被操纵的运转是至关重要的,这是因为它们也用于监测和/或控制关键过程(例如,可用性、可靠性、实时性和保险性(safety))。附加地,工业4.0场景的增长趋势已经导致了用于各种目的(诸如,监测、远程控制和分析)的工业设备联网的增加。随着联网设备的增加,工业设备变得更容易受到攻击。
由于工业嵌入式设备在现场(工业环境)中在长使用时段(通常为10至20年,有时为30至40年)内进行服务,因此它们会经历动态改变的环境。这可能导致要求开发出可以应对不断改变的环境的灵活嵌入式设备。这可以通过采用类似于智能电话应用的方法来实现,该智能电话应用可以在运行时下载/安装/升级。在未来,工业设备将支持类似的方法。
除了软件应用之外,硬件-应用组件也可以通过使用可重新配置硬件来实现。硬件-应用组件利用例如现场可编程门阵列(FPGA)、FPGA片上系统(SoC)、具有嵌入式FPGA的专用集成电路(ASIC)SoC、以及具有嵌入式FPGA的专用标准产品(ASSP)SoC的部分重新配置特征。硬件-应用可以是诸如硬件-应用组件之类的单独的独立应用,或者它可以是软件-硬件-应用捆绑包(bundle)的一部分。
利用部分重新配置来重新配置活动中的(on-the-go)部分硬件的FPGA是在市场上可获得的,诸如Intel Cyclone V、Intel Arria 10。在部分可重新配置的FPGA上,硬件-应用可以在可重新配置硬件的部分重新配置区域内被实例化为硬件-应用组件。
本发明的目的是改进执行硬件-应用的可配置硬件模块的安全性(security)。
根据用于监测硬件-应用的方法,执行以下步骤:
- 由可配置硬件模块、特别是现场可编程门阵列来接收硬件-应用,其中接收到的硬件-应用包括配置数据,配置数据描述了作为可配置硬件模块上的硬件-应用组件的实例化,
- 由可信硬件组件、特别是位于可配置硬件模块内的片上逻辑在可配置硬件模块的执行环境中、特别是部分重新配置区域中将接收到的硬件-应用实例化为硬件-应用组件,以及
- 在硬件-应用组件运行时监测硬件-应用组件的传入和/或传出通信。
用于监测硬件-应用的可配置硬件模块包括:
- 至少一个执行环境,其可配置用于执行硬件-应用组件,
- 可信硬件组件,其被配置用于在执行环境内将硬件-应用实例化为硬件-应用组件,以及
- 第一单元和/或第二单元,其被配置用于在硬件-应用组件运行时监测硬件-应用组件的传入和/或传出通信。
以下优点和解释不一定是独立权利要求的目的的结果。而是,它们可能是仅适用于某些实施例或变型的优点和解释。
在可重新配置硬件的每个部分重新配置区域内,仅能够同时实例化单个硬件-应用。然而,硬件/软件应用捆绑包可以包含若干个硬件-应用,每个硬件-应用可以在不同的时间点处在可重新配置硬件的相同部分重新配置区域内被实例化为硬件-应用组件。此外,其他硬件-应用可以在可重新配置硬件的其他部分重新配置区域内被实例化为硬件-应用组件。对硬件-应用组件的传入和/或传出通信的监测可以针对仅单个硬件-应用组件、针对若干个硬件-应用组件、或针对所有硬件-应用组件来执行。
硬件-应用组件可以直接地和/或经由片上总线与其他组件交互。传入和/或传出通信意味着沿通信路径去往以及来自硬件-应用组件的任何种类的交互,例如访问操作、输入和输出。监测可以通过一种“防火墙”机制来实现,这将在下面更详细地描述。
结合本发明,“硬件-应用”可以理解为意味着例如用超高速集成电路硬件描述语言(VHDL)或用Verilog HDL编写并且在可配置硬件模块(例如,FPGA)上被实例化的组件。硬件-应用的配置数据描述了硬件-应用组件的布局,该硬件-应用组件可以在可配置硬件模块上的硬件中被实例化。因此,硬件-应用描述了例如可以在可配置硬件模块的执行环境中上传的数字电路的配置。硬件-应用组件是被实例化并执行的硬件-应用。可配置硬件模块可以包括由配置规范描述的多个可重新配置部分。配置规范包括例如描述了可配置硬件模块的哪些部分在运行时可重新配置的平面图(floor plan)。这具有以下优点:在运行时,包括例如不同和/或其他硬件功能的硬件-应用可以被上传到可配置硬件模块上。
确保硬件-应用的安全(即,无恶意)且未更改的操作是至关重要的,尤其是如果在可配置硬件模块上被实例化为硬件-应用组件的硬件-应用执行安全性关键功能(诸如,加密/解密、密钥管理、密钥协定)或者例如通过控制设备IO而促成保险性关键操作的话。
当使用第三方硬件-应用或软件应用(即,由不可信方开发的应用)时,对传入和/或传出通信进行监测是特别有利的。
可以从可信软件组件、特别是重新配置和更新管理器来接收硬件-应用。
在优选实施例中,可以监测以及控制所有硬件-应用组件的所有通信。
该实施例的优点是:监测和控制在硬件-应用、硬件-应用和软件应用、硬件-应用和外围设备、IO控制器等之间的所有通信的可能性。该实施例引入了监测和过滤硬件-应用的所有输入和输出的能力。这在硬件-应用受到损害并试图损害该设备的其余部分的情况下、或者在损坏的软件应用试图在运行时损害相关联的硬件-应用的情况下尤其是有益的。
在该方法的实施例中,受监测的通信传入自和/或传出到如下各项:
- 由处理器执行的操作系统的内核,
- 由处理器执行的软件应用,
- 另一硬件-应用组件,
- 通用输入/输出,
- 计算机端口,
- 外围设备,和/或
- 片上逻辑。
受监测的通信可以传入自和/或传出到任何数量的这些示例及其组合,例如1个内核、17个硬件-应用组件、64个通用输入/输出、8个计算机端口、7个外围设备和1个片上逻辑。片上逻辑可以是可配置硬件模块内的任何逻辑/IP核,例如加密核。
该方法的实施例包括如下附加步骤:特别地通过阻止和/或修改硬件-应用组件的至少一些传入和/或传出通信从而在硬件-应用组件运行时控制硬件-应用组件的至少一些传入和/或传出通信。
该实施例提供了一种用于监测、控制和过滤去往每个硬件-应用的输入和输出的解决方案。此外,在由第三方开发的应用的情况下,它可以确保可能的后门不能够被有效地使用。它提供了一种机制来限制硬件-应用,使得它们不能够访问该设备上的其他组件和数据、尤其是该设备的安全性关键部分。
通过约束去往以及来自不可信应用的通信路径,只有被允许的数据才能够利用被允许的接口集合来交换。因此,支持对硬件-应用进行沙盒化(sandboxing),使得受损害或不可信的硬件-应用被约束,以免访问该设备的其余部分。附加地,控制传入和/或传出通信可以帮助确保所部署的硬件-应用永远不能够获得足够的权限来损害该设备的其余部分——即软件-应用、操作系统、其他硬件-应用等——的操作。
该实施例还可以便于对安全性关键(并且甚至可能是保险性关键)应用的认证,因为它允许一定程度的关注分离(separation of concern)。这开启了其中仅需要评估产品的修改部分的复合认证过程的可能性。
在该方法的另一个实施例中,监测步骤包括:检测对硬件-应用组件的未授权的访问和/或来自硬件-应用组件的未授权的访问,并且控制步骤包括:
- 阻止未授权的访问,
- 禁用对硬件-应用组件和/或可配置硬件模块的至少一个功能的访问,
- 阻止硬件-应用组件的所有通信,
- 将未授权的访问记入日志,
- 将硬件-应用组件替换为安全的硬件-应用组件,和/或
- 终止硬件-应用组件。
虽然前三个措施可以由如下所描述的第一单元和/或第二单元来执行,但是其他步骤可以由不同的实体来执行。例如,记入日志可以由内核模块来执行。对硬件-应用组件的替换可以通过在执行环境中实例化已知安全的硬件-应用组件来执行。终止可以通过禁用硬件-应用组件的时钟信号来执行。可以实现该实施例的六个措施中的单个或任何组合。
在该方法的另外的实施例中,监测步骤和控制步骤由第一单元和/或第二单元来执行。
例如,两个单元都能够监测和控制通信,但是处理不同种类的通信。
在该方法的另一个实施例中,第一单元是内核模块,该内核模块监测和控制传入自和/或传出到如下各项的通信:
- 由处理器执行的操作系统的内核,和/或
- 由处理器执行的软件应用。
内核模块是定制的,并且包含用于扩展操作系统的运行内核或所谓的基础内核的代码。
在该方法的另一个实施例中,第二单元监测和控制传入自和/或传出到如下各项的通信:
- 至少一个其他硬件-应用组件,
- 至少一个通用输入/输出,
- 至少一个计算机端口,
- 至少一个外围设备,和/或
- 至少一个片上逻辑。
在该方法的另一个实施例中,第二单元:
- 在实例化步骤中被实例化为在执行环境内的围绕硬件-应用的包装器(wrapper),
- 是切换模块、特别是IP核,其对硬件-应用组件的所有输入和输出进行门控(gate),或者
- 是控制器。
包装器是控制实例化硬件-应用的所有输入和输出的逻辑。
控制器可以实现为定制的接口控制器。硬件-应用组件的传入和/或传出通信经过控制器。例如,控制器可以是外围总线控制器的扩展,或者直接集成到外围总线控制器中。
在该方法的另一个实施例中,第一单元和/或第二单元实现固定策略和/或可重新配置策略,以用于控制硬件-应用组件的传入和/或传出通信。
固定策略和/或可重新配置策略由例如规则组成。固定策略也可以隐式地被包括在第二单元的静态逻辑中。
这些策略提供了可以针对每个硬件-应用而被个性化的静态且可加载规则的混合。
由于每个硬件-应用可能与片上外围设备、控制器或其他硬件-应用的不同集合进行通信,因此这些策略可以针对每个硬件-应用而被个性化,以便在所有实现场景中应用足够的安全性措施。因此,现场的嵌入式设备被保护从而不仅免于硬件攻击(诸如,硬件木马、受损害的硬件-应用、侧通道攻击、故障注入、IC去封装(depackaging)和去分层(delayering)),而且还免于软件攻击。
在这些个性化策略的帮助下,提供了用于每个硬件-应用的安全执行环境,即使每个硬件-应用可能需要访问输入/输出(IO)接口和对应控制器的不同集合。
在该方法的另一个实施例中,第一单元和/或第二单元的可重新配置策略在可配置硬件模块运行时被更新。
例如,如果第二单元在实例化步骤中被实例化为在执行环境内的围绕硬件-应用的包装器,那么为了更新可重新配置策略,可以在执行环境内重新实例化包装器和硬件-应用。
可配置硬件模块的实施例包括现场可编程门阵列、专用集成电路或专用标准产品。
在可配置硬件模块的另一个实施例中,
- 可配置硬件模块是现场可编程门阵列或包含现场可编程门阵列,
- 执行环境是部分重新配置区域,和/或
- 可信硬件组件是片上逻辑、特别是PR逻辑。
由于重新配置现场可编程门阵列的部分重新配置区域的可能性,以更灵活的方式来使用硬件并且根据不断改变的需求和要求来适配该硬件是可能的。尤其在运行时重新配置可配置硬件模块是可能的。
可配置硬件模块的另一个实施例包括硬件总线,该硬件总线被硬件-应用组件用于传入和/或传出通信。第一单元和/或第二单元被配置用于监测传入自和/或传出到连接到硬件总线的至少一个设备或组件的通信。
在可配置硬件模块的另一个实施例中,硬件总线选自包括至少如下各项的一组硬件总线:高级微控制器总线架构、高级高性能总线、高级可扩展总线、叉骨总线(wishbonebus)和/或外围组件互连快速总线。
在可配置硬件模块的另一个实施例中,第二单元是:
- 在执行环境内的围绕硬件-应用的包装器,
- 切换模块、特别是IP核,其对硬件-应用组件的所有输入和输出进行门控,或者
- 控制器。
在另一个实施例中,可配置硬件模块被配置用于执行该方法。
嵌入式设备包含可配置硬件模块。
计算机可读存储介质包含硬件/软件应用包,硬件/软件应用包包括对于该方法的自动化执行所需的配置信息。配置信息包括至少一个硬件-应用,该至少一个硬件-应用可以被实例化为硬件-应用组件并且由执行环境来执行。配置信息还包括固定策略和/或可重新配置策略,以用于对硬件-应用组件的传入和/或传出通信的自动化监测和/或控制。
在计算机可读存储介质的实施例中,硬件/软件应用包还包含软件应用和签名。软件应用包含可由处理器执行的指令。
当结合附图阅读时,从以下详细描述中最好地理解本发明的前述和其他方面。出于说明本发明的目的,在附图中示出了目前优选的实施例,然而,要理解的是,本发明不限于所公开的具体手段。附图中包括的是以下各图:
图1示出了用于说明利用可配置硬件模块来监测硬件-应用的具体示例的示意图,
图2示出了硬件/软件应用包,以及
图3示出了用于监测硬件-应用的方法的可能示例性实施例的流程图。
在以下描述中,将描述本发明及其实施例的各个方面。然而,本领域技术人员将理解,实施例可以利用其仅一些方面或所有方面来实践。出于解释的目的,阐述了具体数字和配置,以便提供全面的理解。然而,对于本领域技术人员也将清楚的是,可以在没有这些具体细节的情况下实践实施例。
图1示意性地示出了说明根据本发明的利用可配置硬件模块来监测硬件-应用的具体示例。在所图示的示例性实施例中,嵌入式设备ED(例如,工业设备)可以包括可配置硬件模块CHM(诸如,FPGA)和处理器CPU。可配置硬件模块CHM和处理器CPU被提供为分离的组件。在替代实施例中,处理器CPU和可配置硬件模块CHM可以由片上系统设计来实现,其中这些组件在单个芯片上实现。在另外的替代实施例中,处理器CPU由可重新配置的ASIC来提供。因此,软件应用可以将硬件-应用部署到硬件,从而要么以更灵活的方式来使用该硬件、要么简单地以更高效的方式来重新使用可用资源。
由于不断改变的工业环境,嵌入式设备ED中的可配置硬件模块CHM的使用正在获得增长。在部分可重新配置FPGA的上下文中,硬件-应用HA在执行环境PRR(例如,FPGA的部分可重新配置区域)内被实例化。
可信软件组件——即,重新配置和更新管理器RUM——向每个硬件-应用HA分配执行环境PRR,并且管理对应的用户和内核空间设置。操作系统的内核K由处理器CPU执行,并且形成了硬件-应用组件HAC与具有软件应用SA的用户空间US之间的接口,并且包括用于操作系统的驱动器。
在可配置硬件模块CHM侧,对应的片上逻辑PRL实现了部分重新配置逻辑(PR-逻辑)。片上逻辑PRL接管重新配置过程,并且将每个执行环境PRR锁定到其被分配的硬件-应用HA。与片上逻辑PRL结合的内核K确保了每个执行环境PRR仅能够由所分配的软件应用SA来配置。附加地,内核K和/或片上逻辑PRL确保了:在利用适当的硬件-应用HA(例如,如部分比特流那样不同的硬件-应用HA)来重新配置执行环境PRR期间,用于在硬件-应用组件运行时监测硬件-应用组件的传入和/或传出通信的对应接口设置被放置到位(put intoplace)。这些接口设置可以是一种防火墙配置(例如,具有策略的防火墙配置),并且将在下面详细描述。
非易失性存储装置NVS存储对于重新启动嵌入式设备ED所必要的所有信息。该信息包括操作系统以及硬件/软件应用包HSP,该硬件/软件应用包HSP包括采用策略形式的接口设置/防火墙配置。
结合本发明,每个硬件/软件应用包HSP包括一个或多个硬件-应用HA。每个硬件-应用HA可能是例如可以在执行环境PRR中上传的部分比特流,该执行环境PRR例如是部分可重新配置区域。部分比特流可以用于配置执行环境PRR,并且在执行环境PRR中实例化硬件-应用组件HAC,使得软件应用SA可以使用执行环境PRR进行进一步处理。部分比特流指定了将如何配置执行环境PRR以及被实例化的硬件-应用组件HAC。
在图1中,示例性地示出了在两个执行环境PRR中被实例化的两个硬件-应用组件HAC。可配置硬件模块CHM上的硬件-应用组件HAC以及执行环境PRR的数量不限于图1中所示的数量。相当可设想的是,可以生成并实例化另外的执行环境PRR和硬件-应用组件HAC。将当前在执行环境PRR内被实例化的硬件-应用HA与另一个硬件-应用HA进行交换也是可能的。如图2中所示,硬件应用HA可以与软件应用SA捆绑在一起,或者它可以独立工作。
为了在硬件-应用组件运行时监测、或者甚至控制硬件-应用组件的传入和/或传出通信,使用了一种防火墙机制。防火墙是从计算机网络中已知的。使用采用规则集形式的策略,它们允许或阻止网络设备的传入和/或传出网络通信。关于所描述的实施例,术语“防火墙”被用作类比(analogy)。
受监测的通信可以传入自和/或传出到内核K、由处理器CPU执行的对应软件应用SA、另一个硬件-应用组件HAC、通用输入/输出GPIO、计算机端口、外围设备PD和/或片上逻辑PRL。
可以在硬件-应用组件HAC运行时阻止和/或修改硬件-应用组件HAC的至少一些传入和/或传出通信。
硬件-应用组件HAC的受监测的传入和/或传出通信可以包括源自于硬件-应用组件HAC的访问操作,诸如总线访问或对外围设备PD的访问。
当该监测检测到未授权的访问时,可以阻止未授权的访问和/或将未授权的访问记入日志(记入日志可以包括向重新配置和更新管理器RUM提供信息,使得后者可以决定要采取的动作),可以生成警报,或者可以终止硬件-应用组件HAC的操作,例如通过停用其时钟信号。此外、或者作为替代方案,可以禁用对硬件-应用组件HAC和/或可配置硬件模块CHM的某些功能的访问,或者可以擦除硬件-应用组件HAC的敏感数据。
然而,阻止未授权的访问不一定需要预先检测,这是由于可以简单地对例如硬件-应用组件HAC的接口的某些总线信号进行门控。
为了实现对嵌入式设备ED内的硬件-应用组件HAC的交互的这种监测和控制,使用了第一单元NBF和第二单元SBF。第一单元NBF可以使用来自上文的类比而理解为“北向(northbound)防火墙”。
第一单元NBF是定制的(可加载的)内核模块,该内核模块监测和控制传入自和/或传出到内核K的通信、和/或传入自和/或传出到由处理器CPU执行的软件应用SA的通信。换句话说,第一单元NBF监测硬件-应用组件HAC与其对应软件应用SA之间的通信路径。例如,第一单元NBF可以阻止来自任何其他未授权的软件应用SA的访问。
第二单元SBF可以使用来自上文的类比而理解为“南向防火墙”。它监测和控制传入自和/或传出到其他硬件-应用组件HAC、通用输入/输出GPIO、计算机端口、外围设备PD、IO控制器和/或片上逻辑PRL的通信。硬件-应用组件HAC可能直接地或经由片上总线来访问这些。片上总线可以是选自包括如下各项的一组硬件总线的硬件总线:高级微控制器总线架构、高级高性能总线、高级可扩展总线、叉骨总线或外围组件互连快速总线。
第一单元NBF和第二单元SBF实现了固定策略以及可重新配置策略,以用于控制硬件-应用组件HAC的传入和传出通信。固定策略是始终就位的基本规则集。它可以由设备开发者来开发。可重新配置策略是可更新的规则集,该可更新的规则集可以连同硬件-应用一起被掉换(swap)(或更新)。以此方式,可以根据需要来约束对安全性关键接口的访问。
作为替代实施例,可以仅使用固定策略。固定策略可以被硬编码在可配置硬件模块CHM中。
第二单元SBF可能例如由内核K、特别是由第一单元NBF来配置。
图2示出了可以被传送到图1中所示的嵌入式设备ED的硬件/软件应用包HSP。它由如下各项组成:软件应用SA、采用第一部分比特流PB-A和第二部分比特流PB-B形式的一个或多个硬件-应用HA、清单(manifest)M和签名S。清单M包括关于硬件/软件应用包HSP的元信息。它包括一般信息GI以及如先前段落中描述的可重新配置策略。换句话说,清单M包含用于执行环境PRR的“防火墙”的配置,硬件-应用HA将在该执行环境PRR中被实例化。
硬件/软件应用包HSP可以被存储在计算机可读存储介质(例如,USB闪存驱动器)上。
回到图1,第二单元SBF的实现方式可以采取多种形式。它可以例如被实例化为在执行环境PRR内的围绕硬件-应用HA的包装器,该包装器要么作为硬件-应用组件HAC的一部分、要么在它旁边。然后,它监测和/或过滤硬件-应用HA的所有输入和输出。附加地,它强制执行基本策略以及可重新配置策略,这些策略定义了硬件-应用HA与嵌入式设备ED的其余部分之间所允许的交互集合。
第二单元的另一变型是切换模块、特别是IP核,其对硬件-应用组件HAC的所有输入和输出进行过滤和/或门控。切换模块通过仅启用所允许的接口来强制执行基本策略以及可重新配置策略。基本策略和/或可重新配置策略可以要么在系统启动/初始配置期间、要么在硬件-应用HA被加载到可重新配置执行环境PRR时被上传到切换模块中。例如,基本策略可以在初始配置期间被上传到切换模块中,并且可重新配置策略可以在硬件-应用HA被加载到执行环境PRR时被上传到切换模块中。
用于实现第二单元SBF的另一种可能性是接口控制器或定制控制器。在这种场景中,硬件-应用组件HAC的所有传入和传出通信都经过接口控制器,接口控制器能够强制执行基本策略以及可重新配置策略。此外,第二单元SBF的功能可以被集成到外围总线控制器中,该外围总线控制器使用基本策略以及可重新配置策略来确定由硬件-应用组件HAC进行的给定访问操作是否被允许。
图3示出了用于监测硬件-应用的方法的可能示例性实施例的流程图。在所图示的示例性实施例中,该方法包括若干个主要步骤。在接收步骤S1中,由可配置硬件模块接收硬件-应用,其中接收到的硬件-应用包括配置数据,配置数据描述了作为可配置硬件模块上的硬件-应用组件的实例化。
在另外的实例化步骤S2中,可信硬件组件、特别是位于可配置硬件模块内的片上逻辑在可配置硬件模块的执行环境、特别是部分重新配置区域中将接收到的硬件-应用实例化为硬件-应用组件。
在随后的监测步骤S3中,在硬件-应用组件运行时监测硬件-应用组件的传入和/或传出通信。
最后,在控制步骤S4中,在硬件-应用组件运行时控制硬件-应用组件的至少一些传入和/或传出通信。
当然,监测步骤S3和控制步骤S4可以要么交替地要么同时地实现。在后一种情况下,监测是控制的一部分。
该方法可以由处理器(诸如,微控制器或微处理器)、由专用集成电路(ASIC)、由任何种类的计算机(包括移动计算设备,诸如平板计算机、智能电话或笔记本电脑)或者由控制室或云中的一个或多个服务器来执行。例如,计算机系统的处理器、控制器或集成电路和/或另一个处理器可以被配置成实现本文中描述的动作。
上面描述的方法可以经由计算机程序产品来实现,该计算机程序产品包括一个或多个计算机可读存储介质,其上存储有可由计算系统的一个或多个处理器执行的指令。指令的执行使得计算系统执行与上面描述的方法的动作相对应的操作。
用于实现本文中描述的过程或方法的指令可以被提供在非暂时性计算机可读存储介质或存储器上,非暂时性计算机可读存储介质或存储器诸如高速缓存、缓冲器、RAM、闪存、可移除介质、硬盘驱动器、或其他计算机可读存储介质。计算机可读存储介质包括各种类型的易失性和非易失性存储介质。各图中所图示或本文中描述的功能、动作或任务可以响应于存储在计算机可读存储介质中或存储在其上的一个或多个指令集来执行。这些功能、动作或任务可以独立于特定类型的指令集、存储介质、处理器或处理策略,并且可以由单独或组合地操作的软件、硬件、集成电路、固件、微代码等来执行。同样,处理策略可以包括多处理、多任务、并行处理等等。
已经参考本发明的实施例和示例详细描述了本发明。然而,在权利要求所覆盖的本发明的精神和范围内,可以实现变型和修改。短语“A、B和C中的至少一个”作为替代表达可以规定:可以使用A、B和C中的一个或多个。
Claims (20)
1.一种用于监测硬件-应用的方法,包括以下步骤:
- 由可配置硬件模块(CHM)、特别是现场可编程门阵列来接收(S1)硬件-应用(HA),其中接收到的硬件-应用(HA)包括配置数据,配置数据描述了作为可配置硬件模块(CHM)上的硬件-应用组件(HAC)的实例化,
- 由可信硬件组件、特别是位于可配置硬件模块(CHM)内的片上逻辑(PRL)在可配置硬件模块(CHM)的执行环境(PRR)、特别是部分重新配置区域中将接收到的硬件-应用(HA)实例化(S2)为硬件-应用组件(HAC),以及
- 在硬件-应用组件(HAC)运行时监测(S3)硬件-应用组件(HAC)的传入和/或传出通信。
2.根据权利要求1所述的方法,其中受监测的通信传入自和/或传出到如下各项:
- 由处理器(CPU)执行的操作系统的内核(K),
- 由处理器(CPU)执行的软件应用(SA),
- 另一个硬件-应用组件(HAC),
- 通用输入/输出(GPIO),
- 计算机端口,
- 外围设备(PD),和/或
- 位于可配置硬件模块(CHM)内的片上逻辑。
3.根据前述权利要求中任一项所述的方法,
- 具有如下附加步骤:特别地通过阻止和/或修改硬件-应用组件(HAC)的至少一些传入和/或传出通信从而在硬件-应用组件(HAC)运行时控制(S4)硬件-应用组件(HAC)的至少一些传入和/或传出通信。
4.根据权利要求3所述的方法,
- 其中监测步骤(S3)包括:检测对硬件-应用组件(HAC)的未授权的访问和/或来自硬件-应用组件(HAC)的未授权的访问,以及
- 其中控制步骤(S4)包括:
- 阻止未授权的访问,
- 禁用对硬件-应用组件(HAC)和/或可配置硬件模块(CHM)的至少一个功能的访问,
- 阻止硬件-应用组件(HAC)的所有通信,
- 将未授权的访问记入日志,
- 将硬件-应用组件(HAC)替换为安全的硬件-应用组件(HAC),和/或
- 终止硬件-应用组件(HAC)。
5.根据前述权利要求3和4中任一项所述的方法,
- 其中监测步骤(S3)和控制步骤(S4)由第一单元(NBF)和/或第二单元(SBF)来执行。
6.根据权利要求5所述的方法,
- 其中第一单元(NBF)是内核模块,所述内核模块监测和控制传入自和/或传出到如下各项的通信:
- 由处理器(CPU)执行的操作系统的内核(K),和/或
- 由处理器(CPU)执行的软件应用(SA)。
7.根据前述权利要求5-6中任一项所述的方法,
- 其中第二单元(SBF)监测和控制传入自和/或传出到如下各项的通信:
- 至少一个其他硬件-应用组件(HAC),
- 至少一个通用输入/输出(GPIO),
- 至少一个计算机端口,
- 至少一个外围设备(PD),和/或
- 至少一个片上逻辑。
8.根据前述权利要求5-7中任一项所述的方法,其中第二单元(SBF)是:
- 在实例化步骤(S1)中被实例化为在执行环境(PRR)内的围绕硬件-应用的包装器,
- 切换模块、特别是IP核,其对硬件-应用组件(HAC)的所有输入和输出进行门控,或者
- 控制器。
9.根据前述权利要求5-8中任一项所述的方法,
- 其中第一单元(NBF)和/或第二单元(SBF)实现固定策略和/或可重新配置策略,以用于控制硬件-应用组件(HAC)的传入和/或传出通信。
10.根据权利要求9所述的方法,
- 其中第一单元(NBF)和/或第二单元(SBF)的可重新配置策略在可配置硬件模块(CHM)运行时被更新。
11.一种用于监测硬件-应用(HA)的可配置硬件模块(CHM),包括:
- 至少一个执行环境(PRR),其可配置用于执行硬件-应用组件(HAC),
- 可信硬件组件,其被配置用于在执行环境(PRR)内将硬件-应用(HA)实例化(S2)为硬件-应用组件(HAC);以及
- 第一单元(NBF)和/或第二单元(SBF),其被配置用于在硬件-应用组件(HAC)运行时监测硬件-应用组件(HAC)的传入和/或传出通信。
12.根据权利要求11所述的可配置硬件模块(CHM),
- 包括现场可编程门阵列、专用集成电路或专用标准产品。
13.根据前述权利要求11-12中任一项所述的可配置硬件模块(CHM),其中
- 可配置硬件模块(CHM)是现场可编程门阵列或包含现场可编程门阵列,
- 执行环境(PRR)是部分重新配置区域,和/或
- 可信硬件组件是片上逻辑(PRL)、特别是PR逻辑。
14.根据前述权利要求11-13中任一项所述的可配置硬件模块(CHM),
- 包括硬件总线,硬件总线被硬件-应用组件(HAC)用于传入和/或传出通信,
- 其中第一单元(NBF)和/或第二单元(SBF)被配置用于监测传入自和/或传出到连接到硬件总线的至少一个设备或组件的通信。
15.根据权利要求14所述的可配置硬件模块(CHM),
- 其中硬件总线选自包括至少如下各项的一组硬件总线:高级微控制器总线架构、高级高性能总线、高级可扩展总线、叉骨总线和/或外围组件互连快速总线。
16.根据前述权利要求11-15中任一项所述的可配置硬件模块(CHM),其中第二单元(SBF)是:
- 在执行环境(PRR)内的围绕硬件-应用(HA)的包装器,
- 切换模块、特别是IP核,其对硬件-应用组件(HAC)的所有输入和输出进行门控,或者
- 控制器。
17.根据前述权利要求11-16中任一项所述的可配置硬件模块(CHM),
- 其被配置用于执行根据前述权利要求1-10中任一项所述的方法。
18.一种嵌入式设备(ED),
- 其包含根据前述权利要求11-17中任一项所述的可配置硬件模块(CHM)。
19.一种计算机可读存储介质,其上存储有:
- 硬件/软件应用包(HSP),包括对于根据前述权利要求1-10中任一项所述的方法的自动化执行所需的配置信息,
- 其中配置信息包括至少一个硬件-应用(HA),所述至少一个硬件-应用(HA)可以被实例化为硬件-应用组件(HAC)并且由执行环境(PRR)来执行,以及
- 其中配置信息包括固定策略和/或可重新配置策略,以用于对硬件-应用组件(HAC)的传入和/或传出通信的自动化监测和/或控制。
20.根据权利要求19所述的计算机可读存储介质,
- 其中硬件/软件应用包还包含软件应用(SA)和签名(S),并且其中软件应用(SA)包含可由处理器(CPU)执行的指令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19160232.5 | 2019-03-01 | ||
EP19160232.5A EP3702947B1 (en) | 2019-03-01 | 2019-03-01 | Method for verifying at runtime of a hardware-application component a current configuration setting of an execution environment provided by a configurable hardware module |
EP19197579.6A EP3702948A1 (en) | 2019-03-01 | 2019-09-16 | Method and configurable hardware module for monitoring a hardware-application |
EP19197579.6 | 2019-09-16 | ||
PCT/EP2020/054969 WO2020178089A1 (en) | 2019-03-01 | 2020-02-26 | Method and configurable hardware module for monitoring a hardware-application |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113728319A true CN113728319A (zh) | 2021-11-30 |
Family
ID=65717715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080032687.0A Pending CN113728319A (zh) | 2019-03-01 | 2020-02-26 | 用于监测硬件-应用的方法和可配置硬件模块 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220164485A1 (zh) |
EP (3) | EP3702947B1 (zh) |
CN (1) | CN113728319A (zh) |
WO (1) | WO2020178089A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3709201A1 (en) * | 2019-03-13 | 2020-09-16 | Siemens Aktiengesellschaft | Method for verifying an execution environment used for execution of at least one hardware-application provided by a configurable hardware module |
EP3985541A1 (de) * | 2020-10-15 | 2022-04-20 | Siemens Aktiengesellschaft | Verfahren zur integritätsprüfung von nachladbaren funktionseinheiten |
US20220321403A1 (en) * | 2021-04-02 | 2022-10-06 | Nokia Solutions And Networks Oy | Programmable network segmentation for multi-tenant fpgas in cloud infrastructures |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8316158B1 (en) * | 2007-03-12 | 2012-11-20 | Cypress Semiconductor Corporation | Configuration of programmable device using a DMA controller |
US9531718B2 (en) * | 2013-09-19 | 2016-12-27 | Google Inc. | Confirming the identity of integrator applications |
DE102013227184A1 (de) * | 2013-12-27 | 2015-07-02 | Robert Bosch Gmbh | Verfahren zur Absicherung eines Systems-on-a-Chip |
US9357411B2 (en) * | 2014-02-07 | 2016-05-31 | Qualcomm Incorporated | Hardware assisted asset tracking for information leak prevention |
DE102015110729A1 (de) * | 2014-07-21 | 2016-01-21 | Dspace Digital Signal Processing And Control Engineering Gmbh | Anordnung zur teilweisen Freigabe einer Debuggingschnittstelle |
US9491111B1 (en) * | 2014-09-03 | 2016-11-08 | Amazon Technologies, Inc. | Securing service control on third party hardware |
US20160180078A1 (en) * | 2014-12-23 | 2016-06-23 | Jasmeet Chhabra | Technologies for enhanced user authentication using advanced sensor monitoring |
US9900310B2 (en) * | 2016-02-24 | 2018-02-20 | Intel Corporation | Local verification of code authentication |
US10223317B2 (en) * | 2016-09-28 | 2019-03-05 | Amazon Technologies, Inc. | Configurable logic platform |
US10768863B2 (en) * | 2017-03-31 | 2020-09-08 | Intel Corporation | Security monitoring agent for field programmable gate array (FPGA) in-memory controller |
US10860357B1 (en) * | 2017-04-18 | 2020-12-08 | Amazon Technologies, Inc. | Secure reconfiguring programmable hardware with host logic comprising a static portion and a reconfigurable portion |
US10031993B1 (en) * | 2017-06-12 | 2018-07-24 | Intel Corporation | Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA) |
-
2019
- 2019-03-01 EP EP19160232.5A patent/EP3702947B1/en active Active
- 2019-09-16 EP EP19197579.6A patent/EP3702948A1/en not_active Withdrawn
-
2020
- 2020-02-26 CN CN202080032687.0A patent/CN113728319A/zh active Pending
- 2020-02-26 EP EP20710788.9A patent/EP3918499A1/en active Pending
- 2020-02-26 US US17/434,872 patent/US20220164485A1/en active Pending
- 2020-02-26 WO PCT/EP2020/054969 patent/WO2020178089A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP3702947A1 (en) | 2020-09-02 |
US20220164485A1 (en) | 2022-05-26 |
EP3702948A1 (en) | 2020-09-02 |
EP3702947B1 (en) | 2021-10-20 |
WO2020178089A1 (en) | 2020-09-10 |
EP3918499A1 (en) | 2021-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7840763B2 (en) | Methods and systems for achieving high assurance computing using low assurance operating systems and processes | |
Lentz et al. | Secloak: Arm trustzone-based mobile peripheral control | |
US9081911B2 (en) | Mediating communication of a universal serial bus device | |
EP3274846B1 (en) | Dynamic configuration and peripheral access in a processor | |
JP2023162405A (ja) | 最小特権ベースのプロセス制御ソフトウェアセキュリティアーキテクチャ、コンピュータデバイス | |
Tian et al. | Making {USB} great again with {USBFILTER} | |
CN113728319A (zh) | 用于监测硬件-应用的方法和可配置硬件模块 | |
US10972449B1 (en) | Communication with components of secure environment | |
EP3074865B1 (en) | Hardware virtualization module for exclusive controlled access to cpu | |
US10257166B2 (en) | Guest netfilter protection by virtual machine function | |
US20210397700A1 (en) | Method and apparatus for isolating sensitive untrusted program code on mobile device | |
JP2016516228A (ja) | システムオンチップ内のスレーブユニットへの、コントロール下でのアクセス方法および回路装置 | |
US10795742B1 (en) | Isolating unresponsive customer logic from a bus | |
US10250595B2 (en) | Embedded trusted network security perimeter in computing systems based on ARM processors | |
Siddiqui et al. | Embedded policing and policy enforcement approach for future secure IoT technologies | |
CN112639788A (zh) | 安全感知总线系统上的外围设备访问 | |
KR102547547B1 (ko) | 데이터 센터 내의 프로그램 가능 디바이스를 위한 보안 | |
US20230009470A1 (en) | Workspace-based fixed pass-through monitoring system and method for hardware devices using a baseboard management controller (bmc) | |
Masti et al. | Isolated execution on many-core architectures | |
JP7027664B2 (ja) | ハッキング耐性のあるコンピュータ設計 | |
US20050154910A1 (en) | Security measures in a partitionable computing system | |
TW202314494A (zh) | 用於內核保護的系統、命令集線器以及主虛擬機 | |
Leroux | Secure by design: Using a microkernel rtos to build secure, fault-tolerant systems | |
WO2008025036A2 (en) | Data processing systems utilizing secure memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |