CN113795839A - 用于验证由可配置硬件模块提供的用于至少一个硬件应用的执行的执行环境的方法 - Google Patents
用于验证由可配置硬件模块提供的用于至少一个硬件应用的执行的执行环境的方法 Download PDFInfo
- Publication number
- CN113795839A CN113795839A CN202080035556.8A CN202080035556A CN113795839A CN 113795839 A CN113795839 A CN 113795839A CN 202080035556 A CN202080035556 A CN 202080035556A CN 113795839 A CN113795839 A CN 113795839A
- Authority
- CN
- China
- Prior art keywords
- hardware
- execution environment
- application component
- configurable
- hardware application
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- 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
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
总的来说,本发明涉及一种用于验证由可配置硬件模块(12)提供的执行环境(13)的方法,其中可配置硬件模块(12)中的执行环境(13)用于至少一个硬件应用(16)的执行。在第一步骤(S1)中,由可配置硬件模块(12)来接收硬件应用(16),其中硬件应用(16)包括配置数据,所述配置数据描述了作为可配置硬件模块(12)上的硬件应用组件(14)的实例化。在进一步的步骤(S2)中,在可配置硬件模块(12)的执行环境(13)中将接收到的硬件应用(16)实例化为硬件应用组件(14)。在进一步的步骤(S3)中,由被实例化的硬件应用组件(14)来分析可配置硬件模块(12)的执行环境(13),执行环境(13)执行相应执行环境(13)中的硬件应用组件(14),其中硬件应用组件(14)与表征单元(24、25、26)进行通信,表征单元(24、25、26)提供了可配置硬件模块(12)的执行环境(13)的表征参数,并且在进一步的步骤(S4)中,如果所分析的执行环境(13)与表征单元(24、25、26)所提供的表征参数相匹配,则将可配置硬件模块(12)的所分析的执行环境(13)验证为对于硬件应用组件(14)的执行是可容许的。由于本发明,硬件应用组件可以验证所述硬件应用组件在哪个可配置硬件模块中或者在可配置硬件模块的哪个执行环境中被执行。
Description
本发明涉及一种用于验证由可配置硬件模块提供的用于至少一个硬件应用的执行的执行环境的方法。
诸如电子控制单元(ECU)、工业个人计算机(IPC)、物联网(IoT)和边缘设备之类的嵌入式设备被采用,以用于工业过程中的各种任务,诸如控制和监测技术过程以及执行保险性(safety)关键和安全性关键功能。所述设备的正确和未被操纵的运转是至关重要的,这是因为它们还用于监测和/或控制关键过程(例如,可用性、可靠性、实时性和保险性)。此外,工业4.0和工业互联网场景的增长趋势已经导致了用于各种目的(诸如,监测、远程控制和分析)的工业设备的联网的增加。随着联网设备的增加,工业设备变得更容易受到攻击。
由于工业嵌入式设备在现场(工业环境)中在长使用时段(通常为10至20年,有时为30至40年)内进行服务,因此它们会经历动态改变的环境。这可能导致要求开发出可以应对不断改变的环境的灵活嵌入式设备。这可以通过采用类似于智能电话应用的方法来实现,该智能电话应用可以在运行时下载/安装/升级。在未来,工业设备将支持类似的方法。
除了软件应用之外,还可以通过使用可重新配置硬件来实现硬件应用组件。硬件应用组件利用例如现场可编程门阵列(FPGA)、FPGA片上系统(SoC)、具有嵌入式FPGA的专用集成电路(ASIC)、以及具有嵌入式FPGA的专用标准产品(ASSP)的部分重新配置特征。硬件应用可以是诸如硬件应用组件之类的单独的独立应用,或者它可以是软件-硬件应用捆绑包(bundle)的一部分。
利用部分重新配置来重新配置活动中的(on-the-go)部分硬件的FPGA是在市场上可获得的,诸如Intel Cyclone V、Intel Arria 10。在部分可重新配置的FPGA上,硬件应用可以在可重新配置硬件的部分重新配置区域内被实例化为硬件应用组件。
硬件应用执行环境的完整性保护是至关重要的,尤其是当在可重新配置硬件上被实例化为硬件应用组件的硬件应用执行安全性关键功能(诸如,加密/解密、密钥管理或密钥协定)的情况下。硬件应用环境包括其允许的接口集合以及周围的逻辑。当嵌入式设备在现场时,存在如下可能性:硬件应用组件不仅受到硬件攻击(诸如,硬件木马、受损害的硬件app、侧通道攻击、故障注入、IC去封装(depackaging)和去分层(delayering))的损害,而且还受到软件攻击的损害。
在预备(provision)安全环境和用于验证该环境的上下文中的常见方法是使用密钥blob。经加密的密钥(密钥blob)的导出以及与硬件实例的对应绑定是已知的,例如如由i.MX6处理器系列或可信平台模块(TPM)提供的那样。i.MX6密码协处理器允许:在生成密钥blob时,还可以将制造商选择的值(例如,密钥修饰符)加载到密码模块中。以这种方式,生成了密钥blob与密钥修饰符之间的绑定。
此外,物理不可克隆函数(PUF)是已知的。半导体制造过程中的小波动(fluctuation)确保了在其他方面相同的芯片中的电气行为的最小差异。这包括其中每个样本不同地做出行为(behave)的硬件。如果针对每个硬件副本,这种不同的行为以相同的方式一次又一次地发生,则这是特别有利的。PUF可以用作指纹,从而唯一地标识芯片或创建密码图形密钥。因此,PUF是数字/混合信号电路,该电路放大了行为以生成芯片特定标识符(硬件的认证)和/或密钥(基于PUF的密钥得出(derivation))。特别地,鲁棒的密钥得出与表征阶段以及帮助文件(helper file)的创建和存储相关联。
附加地,利用安装在芯片上或集成到芯片中的传感器(温度、电压、时钟频率、光、辐射)进行篡改检测是已知的。传感器验证对于正确功能而言所需的物理特性。因此,可以标识攻击(例如,故障注入),并且可以实现反措施(提供针对软件的篡改事件并且设置切换信号、删除密码密钥)。该机制例如被用于i-MX6处理器系列的安全非易失性存储(SNVS)组件中。
此外,丝网(wire mesh)是已知的。丝网是包括精细导电信号线的结构,例如作为芯片的顶部层的一部分。可以检测对该层的突破(break through),例如通过侵入性攻击对该层的突破。基于电容和电阻改变的进一步方法是已知的。
这些方法不提供验证可配置硬件模块的执行环境的功能,该执行环境执行被实例化的硬件应用组件。仅基于硬编码的标识符或芯片序列号来标识硬件是可能的。
因此,本发明的目的是提供一种解决方案,该解决方案通过硬件应用组件本身来验证由可配置硬件模块提供的执行环境,以仅在安全环境中提供例如安全性关键功能。
根据本发明的第一方面,该目的通过包括权利要求1的特征的一种用于验证由可配置硬件模块提供的执行环境的方法来实现。
根据第一方面,本发明提供了一种用于验证由可配置硬件模块提供的执行环境的方法,其中可配置硬件模块中的执行环境用于至少一个硬件应用的执行,该方法包括以下步骤:
由可配置硬件模块接收硬件应用,其中硬件应用包括配置数据,该配置数据描述了作为可配置硬件模块上的硬件应用组件的实例化;
在可配置硬件模块的执行环境中将接收到的硬件应用实例化为硬件应用组件;
由被实例化的硬件应用组件来分析可配置硬件模块的执行环境,执行环境执行相应执行环境中的硬件应用组件,其中硬件应用组件与表征单元进行通信,表征单元提供了可配置硬件模块的执行环境的表征参数;以及
如果所分析的执行环境与表征单元所提供的表征参数相匹配,则将可配置硬件模块的所分析的执行环境验证为对于硬件应用组件的执行是可容许的(admissible)。
结合本发明,“硬件应用”可以被理解为意指例如组件,特别是数字逻辑组件的描述,例如比特流的网表。它例如以超高速集成电路硬件描述语言(VHDL)或以Verilog HDL来编写,并且在处理(例如,合成、放置和路由)之后在可配置硬件组件(例如FPGA)上被实例化。硬件应用的配置数据描述了可以在可配置硬件模块上的硬件中被实例化(特别是通过要么配置整个可配置硬件模块、要么配置可配置硬件模块上可用的至少一个动态可重新配置部分而被实例化)的硬件应用组件的布局。因此,硬件应用描述了例如可以被上传在可配置硬件模块的执行环境中的数字电路的配置。
硬件应用组件是被实例化并执行的硬件应用。可配置硬件组件可以包括由配置规范描述的多个可重新配置部分。配置规范包括例如描述了可重新配置硬件组件的哪些部分在运行时可重新配置的平面图(floor plan)。这具有以下优点:在运行时,包括例如不同和/或其他硬件功能的硬件应用可以被上传在可重新配置硬件模块上,而不影响在可重新配置硬件模块上被实例化的剩余逻辑。
以下优点和解释不一定是独立权利要求的目的的结果。而是,它们可能是仅适用于某些实施例或变型的优点和解释。
用于验证由可配置硬件模块提供的执行环境的方法的优点在于,硬件应用组件可以验证:硬件应用组件是否在与它在先前实例化中被执行时的硬件配置模块相同的硬件配置模块上执行,或者硬件应用组件是否仍然在硬件配置模块的特定部分(部分重新配置区域)中运行。验证的结果可以用于保护由硬件应用组件实现的安全性关键功能。
有利地,本发明将硬件应用组件的机制与用于表征芯片(例如,FPGA)的物理特性的方法进行组合。这允许将硬件应用组件绑定到特定的物理芯片设计和/或特定的物理芯片实例。
此外,根据本发明的使用其被分配的硬件应用组件的软件应用组件可以直接绑定到所使用的物理硬件。硬件应用组件可以实现对于执行软件应用组件所需的特定功能。有利地,可以防止对软件和/或硬件应用组件的未经授权的复制。
此外,有利的是,对执行环境的验证增加了硬件应用组件的安全性以及针对建模攻击的鲁棒性。
此外,当嵌入式设备被部署在工业环境中时,本发明尤其在保护硬件应用组件的完整性的情况下是有益的。嵌入式设备被更好地保护,从而免受攻击者的有害使用,同时仍然确保了高度的灵活性。
根据第二方面,本发明进一步提供了一种用于验证由可配置硬件模块提供的执行环境的装置,其中可配置硬件模块中的执行环境用于至少一个硬件应用的执行。该装置包括被配置成提供硬件应用的处理单元,其中硬件应用包括配置数据,该配置数据描述了作为可配置硬件模块上的硬件应用组件的实例化。处理单元进一步被配置成:在可配置硬件模块的执行环境中将所提供的硬件应用实例化为硬件应用组件。处理单元进一步被配置成:接收来自对可配置硬件模块的执行环境的分析的结果,执行环境执行由被实例化的硬件应用组件处理的硬件应用组件,其中硬件应用组件与表征单元进行通信,表征单元提供了可配置硬件模块的执行环境的表征参数;以及如果所分析的执行环境与表征单元所提供的表征参数相匹配,则基于接收到的结果将可配置硬件模块的所分析的执行环境验证为对于硬件应用组件的执行是可容许的。
根据本发明的第一方面的方法还可以被实现为一种具有微处理器计算机程序的计算机程序产品,由此当在计算机上或计算机的处理器上执行该计算机程序时,促使该计算机执行上面描述的方法。替代的解决方案是:当在计算机上运行具有计算机程序代码的计算机程序时,运行该计算机程序以执行上面要求保护或描述的方法的所有步骤。该计算机程序也可以被存储在机器可读存储介质上。替代的解决方案是:将上面描述的计算机实现方法存储在计算机或处理器可读的存储介质上。该计算机程序产品可以由硬件应用所实现的处理单元来执行。
本发明的一部分是:并非该过程的所有步骤都一定必须在相同的组件或计算机实例上执行,而是也可以在不同的计算机实例上执行。本发明的另外部分是:并非该过程的所有步骤都一定必须在相同的集成电路上或多芯片模块的相同管芯上执行,而是也可以在不同的集成电路上或不同的管芯上执行。
在根据本发明的第一方面的方法的可能实施例中,如果所分析的执行环境与表征单元所提供的表征参数不匹配,则硬件应用组件改变成硬件操作模式,其中硬件应用组件的硬件操作模式包括错误模式和/或调试模式。
以这种方式,可以警告与硬件应用组件或另一硬件组件进行通信的交互式用户或软件应用,并且硬件应用组件保持在良好定义的状态中,并且可以例如由硬件应用组件开发者来评估。替代地,硬件应用组件可以将该状态存储在寄存器中,另外的硬件逻辑或软件应用能够查询该寄存器。
因此,保护了由硬件app实现的安全性关键功能。此外,在调试模式中,硬件应用开发者可以按照逐步过程来检查硬件应用组件,以找到改变硬件操作模式的原因。
在根据本发明的第一方面的方法的进一步可能实施例中,如果所分析的执行环境与表征单元所提供的表征参数不匹配,则硬件应用组件改变成硬件操作模式,其中硬件应用组件的操作模式包括其功能的限制集合。
以这种方式,应用硬件组件进一步运行,但是具有有限的功能,例如不提供安全性关键功能(例如,密钥存储、加密和解密算法、签名算法)。因此,保护了安全性关键功能。不应当发布安全性关键功能,直到用于执行的区域或硬件未被验证为止。
在根据本发明的第一方面的方法的仍进一步可能实施例中,如果所分析的执行环境与表征单元所提供的表征参数不匹配,则硬件应用组件改变成硬件操作模式,其中硬件应用组件的操作模式包括对其功能的停用。
以这种方式,硬件应用组件以及例如其安全性关键功能被停止,并且不再可用。这降低了机密信息(诸如,密码密钥)变得被包含的风险。
在根据本发明的第一方面的方法的仍进一步可能实施例中,如果所分析的执行环境与表征单元所提供的表征参数不匹配,则硬件应用组件改变成硬件操作模式,其中硬件应用组件的操作模式包括对所分析的执行环境的验证的重复。
以这种方式,可以排除验证期间的错误,并且该方法针对可能在表征单元所提供的表征参数中产生噪声的物理干扰是更加鲁棒的。例如,如果验证的结果不是可容许的,则所分析的执行环境与表征参数的比较可以被重复5次,并且如果例如5次验证尝试中的3次验证尝试包括了匹配作为结果,则可以假定硬件应用组件在正确的可配置硬件模块上执行和/或在可配置硬件模块的正确的部分重新配置区域上执行。
在根据本发明的第一方面的方法的仍进一步可能实施例中,可以针对硬件应用组件的每个动作执行验证。
在根据本发明的第一方面的方法的仍进一步可能实施例中,可配置硬件模块的执行环境包括可配置硬件模块的重新配置区域RR和/或可配置硬件模块的重新配置区域RR中的至少一个部分重新配置区域PRR。
由于对可配置硬件模块的区域进行重新配置或者对重新配置区域中的区域进行部分重新配置的可能性,有可能以更灵活的方式来使用硬件,并且根据改变的需求和要求来适配硬件。尤其是,可以在运行时重新配置可配置硬件模块,即改变可配置硬件的一部分的功能,同时其余逻辑保持运行。
在根据本发明的第一方面的方法的仍进一步可能实施例中,可配置硬件模块包括现场可编程门阵列FPGA、专用集成电路ASIC、或专用标准产品ASSP。
在根据本发明的第一方面的方法的仍进一步可能实施例中,表征单元包括物理不可克隆函数(physical unclonable function)PUF。
以这种方式,PUF逻辑可以被实现为提供特性参数的测量单元。特性参数允许表征和/或标识可配置硬件模块(硬件芯片、FPGA)和/或硬件芯片中的区域。PUF可以被实现为全局PUF和局部PUF。全局PUF表征整个硬件芯片(例如,FPGA),并且可以用于标识特定芯片或特定硬件。局部PUF表征芯片和/或硬件上的特定区域的行为,并且可以用于标识执行硬件应用组件的可配置硬件模块的特定区域。
有利地,如果表征单元参数在某个可配置程度上匹配,例如以与参考参数的最大5%偏差而匹配,则PUF不需要错误校正。这使得能够容易实现和使用该方法,以验证可配置硬件模块的执行环境。
在根据本发明的第一方面的方法的仍进一步可能实施例中,表征单元包括环形振荡器RO。
环形振荡器是由奇数个“非(NOT)”门(反相器)在环中组成的器件,其输出在两个电压电平之间振荡,这两个电压电平表示真和假。环形振荡器生成对于每个硬件(即,芯片、管芯、或相同芯片/管芯上的放置)都不同的频率。可以测量该频率并且标识所表征的硬件。振荡器可以与计数器结合使用。这可以增加验证过程的鲁棒性。
在根据本发明的第一方面的方法的仍进一步可能实施例中,表征单元包括环形振荡器-物理不可克隆函数RO-PUF。
通过这种构造,增加了针对物理扰动的鲁棒性,对于硬件中的实现所需的逻辑元件的数量较低,并且因此减少了可配置硬件模块的资源消耗。
在根据本发明的第一方面的方法的仍进一步可能实施例中,表征单元包括指定了可配置硬件模块的重新配置区域RR的表征参数。
重新配置区域描述了可配置硬件模块(例如,具有集成FPGA的SoC)的如下区域:该区域可以通过传送配置描述(硬件应用)来配置和重新配置。在有利的实施例中,所传送的配置描述进一步与软件应用和配置设置一起使用。重新配置区域也是部分可配置的。
如果电路设计以VHDL来实现并且在硬件上(例如,在FPGA上)执行,则从时钟视角来看,该电路设计与具有相同设计的第二电路具有相同的切换行为。然而,由于可配置硬件模块的制造过程期间的工艺波动,可配置硬件模块的晶体管具有例如不同的阈值电压,特别是如果两个不同的芯片或相同芯片的两个不同区域实现了相同的电路设计的话。这导致了不同的定时行为,该不同的定时行为描述了可配置硬件模块、特别是可以被确定的可配置硬件模块的重新配置区域的不同特性。
PUF提取不同的表征参数并且将它们放大,使得可以对它们进行测量。因此,制造过程中的最小差异可以用于生成可配置硬件模块特定且唯一的标识符或密钥。这些特定标识符或密钥表征了可配置硬件模块、特别是可配置硬件模块的重新配置区域或可配置硬件模块的部分重新配置区域。
在根据本发明的第一方面的方法的仍进一步可能实施例中,表征单元被包括在可配置硬件模块中。在该实施例中,表征单元与每个被实例化的硬件应用组件进行通信。
以这种方式,表征单元(例如,PUF)可以被实现为表征可配置硬件模块(例如,FPGA芯片)的全局PUF。因此,可以标识其执行环境执行了该硬件应用组件的FPGA芯片。如果包含相同逻辑的硬件应用组件在不同于第一个FPGA的第二个FPGA上执行,PUF将针对第二个FPGA提供不同的结果。
在优选实施例中,硬件应用组件包括评估单元,用于评估由全局PUF提供的表征数据。以这种方式,当在FPGA上执行时,评估单元可以确定所提供的数据是否与预期结果相匹配。如果该数据与预期结果相匹配,则可以批准使用安全性关键功能,这是因为硬件应用组件已经将其执行环境验证为可信且可容许的。如果该数据与预期结果不匹配或者比较失败,则可以禁止使用安全性关键功能。替代地,仅激活或解锁用于所标识硬件的功能。
在根据本发明的第一方面的方法的仍进一步可能实施例中,表征单元包括指定了可配置硬件模块的重新配置区域RR中的至少一个部分重新配置区域PRR的表征参数。
部分重新配置区域描述了可配置硬件模块的重新配置区域中的如下区域:该区域可以通过传送配置描述(例如,硬件应用)来配置和重新配置。在有利的实施例中,所传送的配置描述此外包括软件应用和配置设置。可能有不同种类的软件应用。首先,硬件应用可能包括允许执行软件的处理器,并且其次,其中独立于硬件应用的处理器可以与硬件应用进行通信。
每个部分重新配置区域使用可配置硬件模块(例如,FPGA)的不同晶体管,以在其执行环境中将硬件应用组件实例化。如果两个相同的硬件应用在不同的部分重新配置区域中被实例化,则使用不同的晶体管,这是因为被实例化的硬件应用组件在FPGA的不同区域中执行。这可能导致不同的表征参数,例如可以被评估的定时和延迟行为。
在根据本发明的第一方面的方法的仍进一步可能实施例中,表征单元被包括在硬件应用组件中。
以这种方式,表征单元由硬件应用来提供,并且被包括在硬件应用组件中。以这种方式,硬件应用组件可以验证其执行环境、特别是执行硬件应用组件的部分重新配置区域。此外,如果硬件应用实现并提供了PUF,则可以假定PUF尚未受到所定义的攻击和工程的损害。
在替代实施例中,每个被实例化的硬件应用组件与单独的表征单元进行通信。因此,每个部分重新配置区域与单独的表征单元进行通信,并且根据被实例化的硬件应用单元的数量,可配置硬件模块包括多个表征单元。
以这种方式,局部PUF被提供,并且与被实例化的硬件应用组件的每个执行环境(区域)进行通信。因此,每个区域可以从外部得到其局部PUF,该局部PUF被提供给硬件应用。硬件应用组件可以标识和验证其执行环境。
在根据本发明的第一方面的方法的仍进一步可能实施例中,使用改变的比特的汉明距离来验证表征参数。
以这种方式,可以根据参考值来评估PUF响应的改变的比特的数量。例如,相等长度的两个字符串之间的汉明距离是对应符号在其处不同的位置的数量。它测量将一个字符串改变成另一个字符串所需的替换的最小数量、或可能已经使一个字符串变换成另一个字符串的错误的最小数量。
例如,PUF可以提供32个比特。可以评估汉明距离并且将其与预期参考值进行比较,并且如果汉明距离以例如1%至10%、3%至7%的范围或针对小于5%的值而偏离预期参考值,则例如可以将硬件应用组件的执行环境验证为可容许的,并且可以假定硬件应用组件在预期执行环境中执行。上面描述的范围和值不表示对本发明的限制。而是,可设想到可以用于验证执行环境的汉明距离的另外范围和值。
可以通过读出PUF从而在被实例化的硬件应用组件的第一次执行内生成参考值。
在根据本发明的第一方面的方法的仍进一步可能实施例中,表征参数包括参考值,该参考值包括具有所定义的稳定或不稳定状态的比特。
以这种方式,在参考值的确定期间表征PUF。参考值包括作为稳定逻辑“1”和“0”的比特的数量。此外,参考值定义了哪些比特具有稳定逻辑状态“1”或“0”、以及哪些比特是不稳定的。与参考值的偏离可能指示不容许的执行环境。
在根据本发明的第一方面的方法的仍进一步可能实施例中,参考值是加密的。
在根据本发明的第一方面的方法的仍进一步可能实施例中,参考值由硬件应用组件利用硬件应用组件特定的密钥来签名。密码图形消息认证码或非对称数字签名可以用作签名。
以这种方式,所生成的参考值可以由硬件应用组件利用硬件应用组件特定的密钥来加密或签名。经加密或签名的参考值可以保存在存储设备中。
在根据本发明的第一方面的方法的仍进一步可能实施例中,表征参数用于生成和验证质询-响应-列表。
以这种方式,硬件应用组件可以生成局部质询-响应-列表,以通过执行来验证和标识其执行环境。
质询-响应-列表从质询-响应-认证中已知,质询-响应-认证是基于知识的安全认证过程。第一个参与者提出问题“质询”,并且另一个参与者必须提供有效的回答“响应”以便被认证。因此,来自不同硬件的对相同质询的响应可以用于标识硬件,这是因为对于每个硬件,响应都将是不同的。
质询-响应-列表可以在硬件应用组件的第一次执行内(预备阶段)生成。在这个时候,必须对PUF进行评估。可以利用某些熔丝(fuse)或外部信号的设置来完成对应的预备阶段。熔丝只能够被烧一次,并且因此参考值是固定的。
替代地,可以在硬件应用中提供质询-响应-列表。
在根据本发明的第一方面的方法的仍进一步可能实施例中,表征参数包括由硬件应用组件生成的经加密的密钥。
以这种方式,硬件应用组件可以通过其自己例如以密钥blob来生成秘密(例如,密码密钥)以及硬件模块和执行环境的有限制的导出(bounded export)。因此,特别地,作为密钥blob生成的一部分,PUF(全局/本地)的响应可以被集成到所导出的数据结构中,并且由此用作参考值。可以由硬件应用组件来检查密钥blob,这取决于变型,即,它是在当前可配置硬件模块上运行(全局),还是在当前部分重新配置区域中运行(局部)。如果不是这种情况,则硬件应用组件可以拒绝解密或使用该密钥blob。相比于用于密钥存储的PUF的典型使用,这是有利的——既不需要使用帮助数据也不需要使用多个质询。这改进了可用性,并且使对PUF的建模攻击复杂化。
此外,本发明可以用于检测执行环境中的改变(例如,温度中的强烈升高)。硬件应用组件的安全性关键功能(例如,密钥blob的导入)然后将仅在所定义的条件下工作。例如,当嵌入式设备过热时,PUF响应可能会显著改变。这种改变可能指示关键情形(例如,操纵),在该关键情形中,应当不再提供安全性关键功能。
上述实施例并不相互排斥,并且可以以任何适当的组合来使用。
在下文中,参考附图更详细地描述了本发明的不同方面的可能实施例。
图1示出了用于说明对执行环境的基于PUF的验证的第一特定示例的示意图;
图2示出了用于说明对执行环境的基于PUF的验证的第二特定示例的示意图;
图3示出了用于说明对执行环境的基于PUF的验证的第三特定示例的示意图;
图4示出了用于验证由可配置硬件模块提供的执行环境的方法的可能示例性实施例的流程图。
在以下描述中,将描述本发明的各个方面及其实施例。然而,本领域技术人员将理解,实施例可以仅利用其一些或所有方面来实践。出于解释的目的,阐述了具体的数字和配置,以便提供全面的理解。然而,对于本领域技术人员将同样明显的是,这些实施例可以在没有这些具体细节的情况下实践。遍及以下描述,相似的附图标记指代相似的元件或具有类似功能的元件。
图1示意性地示出了说明根据本发明的对执行环境的基于PUF的验证的第一特定示例。在所图示的示例性实施例中,嵌入式设备10(例如,工业设备)可以包括可配置硬件模块12(诸如,FPGA)和中央处理单元11(CPU)。FPGA和CPU作为分离的组件来提供。在替代实施例中,CPU和存储单元可以通过片上系统设计来实现,其中组件在单个芯片上实现。在另外的替代实施例中,可配置硬件模块12由可重新配置的ASIC、或由包括嵌入式FPGA的ASIC来提供。因此,软件应用可以将硬件应用部署到硬件,以便要么以更灵活的方式来使用该硬件,要么简单地以更高效的方式来重新使用可用资源。
由于改变的工业环境,在嵌入式设备10中对动态可重新配置模块12的使用正在得到增长。在部分可重新配置FPGA的上下文中,硬件应用16在部分可重新配置区域(PRR)内被实例化,并且它们的执行环境13由硬件应用可以与之通信的周围逻辑以及PRR配置组成。当应用捆绑包被传送到嵌入式设备10时,它由软件应用15、一个或多个硬件应用16、以及包括PRR接口配置设置的清单组成。应用捆绑包是在完整性保护以及验证该捆绑包的真实性的可能性的情况下被传送的。这可以例如通过对应用捆绑包进行数字签名来实现,并且使得能够检测传送期间的操纵。完整性和真实性是在安装之前被验证的。
可信软件组件(即,重新配置和更新管理器21(RUM))向每个硬件应用指派PRR区域,并且管理对应的用户和内核空间设置。操作系统/内核组件18形成硬件应用组件14和用户空间17及其软件应用15之间的接口,并且包括用于操作系统的驱动器。操作系统提供了软件运行时环境。
在可配置硬件模块12侧,对应的硬件模块22实现部分重新配置逻辑(PR逻辑)。PR逻辑22接管重新配置过程,并且将PPR锁定到所指派的硬件应用16。与内核组件18中的驱动器相结合的PR逻辑22确保了每个PRR只能够由所指派的软件组件来配置。附加地,它确保了在利用适当硬件应用16(例如,如部分比特流(PB)那样有区别的硬件应用)的PRR重新配置期间,硬件应用组件所需的任何对应接口设置也被放置到位(put in-place)。
非易失性存储器单元19存储对于引导(boot)嵌入式设备10所必要的所有信息。该信息包括引导加载器、操作系统、硬件/软件应用包20、以及软件运行时环境的其他软件包部分。
结合本发明,软件应用15和硬件应用16(例如,部分比特流)可以被上传在执行环境13(例如,部分可重新配置区域)中。部分比特流可以用于配置部分区域,并且在该执行环境13中将硬件应用组件14实例化,使得软件应用15可以使用该区域进行进一步处理。部分比特流指定了将如何配置执行环境13以及被实例化的硬件应用组件14。
在图1中,示例性地示出了在两个执行环境13中被实例化的两个硬件应用组件14。可配置硬件模块12上的硬件应用组件14以及执行环境13的数量不限于图1中所示的数量。相当可设想的是,可以生成并实例化另外的部分可重新配置区域和硬件应用组件14。
被实例化的硬件应用组件14可以验证并标识其中硬件应用组件14被实例化的执行环境13,并且因此验证该硬件(FPGA)和/或验证执行硬件应用组件14的该硬件的区域。对执行环境13的验证使用硬件特定特性来执行,该硬件特定特性例如由表征单元24(例如,PUF)来提供。
如图1中所示的硬件应用组件14使用相同的表征单元24,例如由静态FPGA逻辑提供的全局PUF,用以验证执行硬件应用组件14的执行环境13。如果硬件应用组件14在不同的可配置硬件模块12上被实例化,则对全局PUF所提供的数据的评估的结果将显著不同。差异或偏离指示硬件应用组件14没有如预期的那样在执行环境13中执行。
全局PUF的数据由与全局PUF通信的评估组件23来评估。当在该可配置硬件模块上执行硬件应用组件时,评估单元23验证全局PUF的结果是否与预期结果相匹配。因此,硬件应用组件能够通过评估该结果来查明硬件应用组件14是在哪个可配置硬件模块12上被执行的。在使用正确的执行环境的情况下,安全性关键功能可以被激活,否则保持不可访问。如果执行环境中的执行是不容许的,则可以停用安全性关键功能,或者硬件应用组件14启用针对执行硬件应用组件14的执行环境13所定义的功能的不同范围(spectrum)。
图2示意性地示出了说明根据本发明的对执行环境的基于PUF的验证的第二特定示例。
在图2中,每个硬件应用组件14使用单个表征单元25,例如由静态FPGA逻辑提供的局部PUF,用以验证执行硬件应用组件14的执行环境13。针对每个执行环境13、特别是针对每个部分重新配置区域来提供局部PUF,并且因此局部PUF对于每个执行环境13、特别是对于每个部分重新配置区域是局部的。如果硬件应用组件14在不同的可配置硬件模块12上被实例化,则对全局PUF所提供的数据的评估的结果将显著不同。差异或偏离指示硬件应用组件14没有如预期的那样在执行环境13中执行。此外,对局部PUF的使用允许硬件应用组件检测它是否在相同可配置硬件模块12上的不同执行环境13中被实例化。
全局PUF的数据由与局部PUF通信的评估组件23来评估。当在该可配置硬件模块12上执行硬件应用组件14时,评估单元23验证局部PUF的结果是否与预期结果相匹配。因此,硬件应用组件14能够通过评估来结果来查明硬件应用组件14是在哪个可配置硬件模块12上被执行的。在使用正确的执行环境的情况下,安全性关键功能可以被激活或者保持解锁。此外,对局部PUF的使用允许硬件应用组件检测它是否在相同可配置硬件模块12上的不同执行环境13中被实例化。
图3示意性地示出了说明根据本发明的对执行环境的基于PUF的验证的第三特定示例。
在图3中,每个硬件应用组件14包括其自己的表征单元26,例如局部PUF。与图2中的示意图形成对照,表征单元26由硬件应用16来提供。表征单元26与每个硬件应用组件14的评估组件23进行通信。在本发明的该实施例中,硬件应用组件14能够验证并标识执行环境13、特别是执行硬件应用组件14的重新配置区域的部分重新配置区域。如果硬件应用组件14在不同的FPGA上、或在相同FPGA的另一个部分重新配置区域中被实例化,则PUF的评估的结果将是不同的,并且因此对执行环境13的验证对于硬件应用组件14的执行是不容许的。
图4示出了用于验证由可配置硬件模块提供的执行环境的方法的可能示例性实施例的流程图。
在所图示的示例性实施例中,该方法包括若干个主要步骤。在第一步骤S1中,由可配置硬件模块12来接收硬件应用16,其中硬件应用16包括配置数据,该配置数据描述了作为可配置硬件模块12上的硬件应用组件14的实例化。
在进一步的步骤S2中,在可配置硬件模块12的执行环境13中将接收到的硬件应用16实例化为硬件应用组件14。
在进一步的步骤S3中,由被实例化的硬件应用组件14来分析可配置硬件模块12的执行环境13,执行环境13执行相应执行环境13中的硬件应用组件14,其中硬件应用组件14与表征单元24、25、26进行通信,表征单元24、25、26提供了可配置硬件模块12的执行环境13的表征参数。
在进一步的步骤S4中,如果所分析的执行环境13与表征单元24、25、26所提供的表征参数相匹配,则将可配置硬件模块12的所分析的执行环境13验证为对于硬件应用组件14的执行是可容许的。
在进一步的实施例中,如果例如在预备阶段或第一次执行期间计算的所分析的执行环境13的参考值与表征单元24、25、26所提供的表征参数相匹配,则将可配置硬件模块12的所分析的执行环境13验证为对于硬件应用组件14的执行是可容许的。
硬件应用组件14是可配置硬件模块12的执行环境13中的硬件应用16的示例。硬件应用组件14可以验证硬件应用组件14在哪个硬件中(例如,在哪个FPGA中)被执行。特别地,硬件应用组件14可以验证硬件应用组件14在哪个执行环境(例如,可配置硬件模块12的重新配置区域、或重新配置区域的部分重新配置区域)中被执行。
总的来说,本发明涉及一种用于验证由可配置硬件模块12提供的执行环境13的方法,其中可配置硬件模块12中的执行环境13用于至少一个硬件应用16的执行。在第一步骤S1中,由可配置硬件模块12来接收硬件应用16,其中硬件应用16包括配置数据,该配置数据描述了作为可配置硬件模块12上的硬件应用组件14的实例化。在进一步的步骤S2中,在可配置硬件模块12的执行环境13中将接收到的硬件应用16实例化为硬件应用组件14。在进一步的步骤S3中,由被实例化的硬件应用组件14来分析可配置硬件模块12的执行环境13,执行环境13执行相应执行环境13中的硬件应用组件14,其中硬件应用组件14与表征单元24、25、26进行通信,表征单元24、25、26提供了可配置硬件模块12的执行环境13的表征参数,并且在进一步的步骤S4中,如果所分析的执行环境13的参考值与表征单元24、25、26所提供的表征参数相匹配,则将可配置硬件模块12的所分析的执行环境13验证为对于硬件应用组件14的执行是可容许的。
由于本发明,硬件应用组件可以验证所述硬件应用组件在哪个可配置硬件模块中或者在可配置硬件模块的哪个执行环境中被执行。
Claims (15)
1.一种用于验证由可配置硬件模块(12)提供的执行环境(13)的方法,其中可配置硬件模块(12)中的执行环境(13)用于至少一个硬件应用(16)的执行,所述方法包括以下步骤:
由可配置硬件模块(12)来接收(S1)硬件应用(16),其中硬件应用(16)包括配置数据,所述配置数据描述了作为可配置硬件模块(12)上的硬件应用组件(14)的实例化;
在可配置硬件模块(12)的执行环境(13)中将接收到的硬件应用(16)实例化(S2)为硬件应用组件(14);
由被实例化的硬件应用组件(14)来分析(S3)可配置硬件模块(12)的执行环境(13),执行环境(13)执行相应执行环境(13)中的硬件应用组件(14),其中硬件应用组件(14)与表征单元(24、25、26)进行通信,表征单元(24、25、26)提供了可配置硬件模块(12)的执行环境(13)的表征参数;以及
如果所分析的执行环境(13)与表征单元(24、25、26)所提供的表征参数相匹配,则将可配置硬件模块(12)的所分析的执行环境(13)验证(S4)为对于硬件应用组件(14)的执行是可容许的。
2.根据权利要求1所述的方法,其中如果所分析的执行环境(13)与表征单元(24、25、26)所提供的表征参数不匹配,则硬件应用组件(14)改变成硬件操作模式,所述硬件操作模式包括至少以下各项:
- 将硬件应用组件(14)的硬件操作模式改变成错误模式和/或调试模式;
- 限制硬件应用组件(14)的功能;
- 停用硬件应用组件(14)的功能;
- 对所述验证步骤的重复。
3.根据前述权利要求1和2中任一项所述的方法,其中可配置硬件模块(12)的执行环境(13)包括可配置硬件模块(12)的重新配置区域RR、和/或可配置硬件模块(12)的重新配置区域RR中的至少一个部分重新配置区域PRR。
4.根据前述权利要求1至3中任一项所述的方法,其中可配置硬件模块(12)包括现场可编程门阵列FPGA、专用集成电路ASIC、或专用标准产品ASSP。
5.根据前述权利要求1至4中任一项所述的方法,其中表征单元(24、25、26)包括物理不可克隆函数PUF、环形振荡器RO、或环形振荡器-物理不可克隆函数RO-PUF。
6.根据前述权利要求2至5中任一项所述的方法,其中表征单元(24、25、26)包括指定了可配置硬件模块(12)的重新配置区域RR的表征参数。
7.根据权利要求6所述的方法,其中表征单元(24、25、26)被包括在可配置硬件模块(12)中。
8.根据前述权利要求2至5中任一项所述的方法,其中表征单元(24、25、26)包括指定了可配置硬件模块(12)的重新配置区域RR中的至少一个部分重新配置区域PRR的表征参数。
9.根据权利要求8所述的方法,其中表征单元(24、25、26)被包括在硬件应用组件(14)中。
10.根据前述权利要求5至9中任一项所述的方法,其中表征参数包括参考值,所述参考值用于计算改变的比特的汉明距离。
11.根据前述权利要求5至9中任一项所述的方法,其中表征参数包括参考值,所述参考值包括具有所定义的稳定或不稳定状态的比特。
12.根据前述权利要求10和11中任一项所述的方法,其中所述参考值由硬件应用组件(14)利用硬件应用组件(14)特定的密钥来加密或签名。
13.根据前述权利要求5至9中任一项所述的方法,其中表征参数包括质询-响应-列表。
14.根据前述权利要求5至9中任一项所述的方法,其中表征参数包括由硬件应用组件(14)生成的经加密的密钥。
15.一种用于验证由可配置硬件模块(12)提供的执行环境的装置,其中可配置硬件模块(12)中的执行环境(13)用于至少一个硬件应用(16)的执行,
所述装置包括处理单元,所述处理单元被配置成:
提供硬件应用(16),其中硬件应用(16)包括配置数据,所述配置数据描述了作为可配置硬件模块(12)上的硬件应用组件(14)的实例化;
在可配置硬件模块(12)的执行环境(13)中将所提供的硬件应用(16)实例化为硬件应用组件(14);
接收来自对可配置硬件模块(12)的执行环境(13)的分析的结果,执行环境(13)执行由被实例化的硬件应用组件(14)处理的硬件应用组件(14),其中硬件应用组件(14)与表征单元(24、25、26)进行通信,表征单元(24、25、26)提供了可配置硬件模块(12)的执行环境(13)的表征参数;
如果所分析的执行环境(13)与表征单元(24、25、26)所提供的表征参数相匹配,则基于接收到的结果将可配置硬件模块(12)的所分析的执行环境(13)验证为对于硬件应用组件(14)的执行是可容许的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19162488.1 | 2019-03-13 | ||
EP19162488.1A EP3709201A1 (en) | 2019-03-13 | 2019-03-13 | Method for verifying an execution environment used for execution of at least one hardware-application provided by a configurable hardware module |
PCT/EP2020/054927 WO2020182467A1 (en) | 2019-03-13 | 2020-02-25 | Method for verifying an execution environment used for execution of at least one hardware—application provided by a configurable hardware module |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113795839A true CN113795839A (zh) | 2021-12-14 |
Family
ID=65812048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080035556.8A Pending CN113795839A (zh) | 2019-03-13 | 2020-02-25 | 用于验证由可配置硬件模块提供的用于至少一个硬件应用的执行的执行环境的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11783039B2 (zh) |
EP (2) | EP3709201A1 (zh) |
CN (1) | CN113795839A (zh) |
WO (1) | WO2020182467A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705141A (zh) * | 2021-07-19 | 2021-11-26 | 深圳市紫光同创电子有限公司 | Fpga芯片验证方法、系统、设备及存储介质 |
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 |
US11803644B2 (en) * | 2019-07-23 | 2023-10-31 | SDG Logic Inc. | Security hardened processing device |
US11763018B2 (en) * | 2021-02-22 | 2023-09-19 | Imperva, Inc. | System and method for policy control in databases |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8166477B1 (en) * | 2007-03-23 | 2012-04-24 | Parallels IP Holdings GmbH | System and method for restoration of an execution environment from hibernation into a virtual or physical machine |
WO2009004757A1 (ja) * | 2007-07-05 | 2009-01-08 | Panasonic Corporation | データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路 |
US8214402B2 (en) * | 2009-06-15 | 2012-07-03 | Microsoft Corporation | Interactive physical design tuning |
CN102073507B (zh) * | 2009-11-20 | 2014-06-04 | 华为技术有限公司 | 微件Widget调用的方法、装置和系统 |
US8850396B2 (en) * | 2010-05-27 | 2014-09-30 | Red Hat Israel, Ltd. | Performing software testing based on grouping of tests using test list entity |
US9053042B2 (en) * | 2012-06-27 | 2015-06-09 | Intel Corporation | Method, system, and device for modifying a secure enclave configuration without changing the enclave measurement |
US8938490B2 (en) * | 2012-11-07 | 2015-01-20 | Ca, Inc. | System and method for accessing mainframe system automation from a process automation application |
DE102013227184A1 (de) * | 2013-12-27 | 2015-07-02 | Robert Bosch Gmbh | Verfahren zur Absicherung eines Systems-on-a-Chip |
US9571472B2 (en) * | 2014-05-06 | 2017-02-14 | Cryptography Research, Inc. | Establishing an initial root of trust for individual components of a distributed security infrastructure |
US20150363765A1 (en) * | 2014-06-16 | 2015-12-17 | Mobeewave Inc. | Method and system for managing a device with a secure element used as a payment terminal |
US20190305927A1 (en) * | 2016-03-18 | 2019-10-03 | University Of Florida Research Foundation Incorporated | Bitstream security based on node locking |
US10402566B2 (en) * | 2016-08-01 | 2019-09-03 | The Aerospace Corporation | High assurance configuration security processor (HACSP) for computing devices |
US10528765B2 (en) * | 2016-09-16 | 2020-01-07 | Intel Corporation | Technologies for secure boot provisioning and management of field-programmable gate array images |
US10972277B2 (en) * | 2017-03-15 | 2021-04-06 | Intel Corporation | Confidential verification of FPGA code |
US10768863B2 (en) * | 2017-03-31 | 2020-09-08 | Intel Corporation | Security monitoring agent for field programmable gate array (FPGA) in-memory controller |
US10387992B2 (en) * | 2017-04-07 | 2019-08-20 | Intel Corporation | Apparatus and method for dynamic provisioning, quality of service, and prioritization in a graphics processor |
US10496563B2 (en) * | 2017-04-07 | 2019-12-03 | Intel Corporation | Apparatus and method for dynamic provisioning, quality of service, and scheduling in a graphics processor |
CN109039591B (zh) * | 2017-06-08 | 2022-04-01 | 佛山芯珠微电子有限公司 | 基于fpga的物联网络信息加密系统的实现方法 |
US10031993B1 (en) * | 2017-06-12 | 2018-07-24 | Intel Corporation | Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA) |
US10761951B2 (en) * | 2017-12-28 | 2020-09-01 | Intel Corporation | FPGA based functional safety control logic (FFSCL) |
EP3702947B1 (en) * | 2019-03-01 | 2021-10-20 | Siemens Aktiengesellschaft | Method for verifying at runtime of a hardware-application component a current configuration setting of an execution environment provided by a configurable hardware module |
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 |
WO2020215324A1 (en) * | 2019-04-26 | 2020-10-29 | Splunk Inc. | Two-tier capacity planning |
-
2019
- 2019-03-13 EP EP19162488.1A patent/EP3709201A1/en not_active Withdrawn
-
2020
- 2020-02-25 CN CN202080035556.8A patent/CN113795839A/zh active Pending
- 2020-02-25 US US17/438,618 patent/US11783039B2/en active Active
- 2020-02-25 EP EP20710784.8A patent/EP3918502A1/en active Pending
- 2020-02-25 WO PCT/EP2020/054927 patent/WO2020182467A1/en unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113705141A (zh) * | 2021-07-19 | 2021-11-26 | 深圳市紫光同创电子有限公司 | Fpga芯片验证方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220188418A1 (en) | 2022-06-16 |
EP3709201A1 (en) | 2020-09-16 |
US11783039B2 (en) | 2023-10-10 |
EP3918502A1 (en) | 2021-12-08 |
WO2020182467A1 (en) | 2020-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113795839A (zh) | 用于验证由可配置硬件模块提供的用于至少一个硬件应用的执行的执行环境的方法 | |
Asokan et al. | Mobile trusted computing | |
Maes et al. | A pay-per-use licensing scheme for hardware IP cores in recent SRAM-based FPGAs | |
Sadeghi et al. | TCG inside? A note on TPM specification compliance | |
Eisenbarth et al. | Reconfigurable trusted computing in hardware | |
US20110145934A1 (en) | Autonomous distributed programmable logic for monitoring and securing electronic systems | |
US11354417B2 (en) | Enhanced secure boot | |
Dessouky et al. | SoK: Secure FPGA multi-tenancy in the cloud: Challenges and opportunities | |
US9367708B2 (en) | Method for producing a hardware device and hardware device | |
EP3702947B1 (en) | Method for verifying at runtime of a hardware-application component a current configuration setting of an execution environment provided by a configurable hardware module | |
EP3511858A1 (en) | Update of mac security settings in autonomous industrial control devices | |
Zeitouni et al. | SoK: On the security challenges and risks of multi-tenant FPGAs in the cloud | |
Proulx et al. | A survey on fpga cybersecurity design strategies | |
Mohammad et al. | Required policies and properties of the security engine of an SoC | |
US20220043900A1 (en) | Method and device for authenticating an fpga configuration | |
Farag | Architectural enhancements to increase trust in cyber-physical systems containing untrusted software and hardware | |
Murti et al. | Security in embedded systems | |
Nicholas et al. | A Secure Boot Framework with Multi-security Features and Logic-Locking Applications for Reconfigurable Logic | |
US11977628B2 (en) | Semiconductor device | |
US20200401690A1 (en) | Techniques for authenticating and sanitizing semiconductor devices | |
Weippl et al. | Hardware Malware | |
Belay | Securing the boot process of embedded Linux systems | |
Siddiqui | Design of Secure Boot Process for Reconfigurable Architectures | |
Heins | Ingredients for Secure Design | |
Saha et al. | FPGA-Based IP and SoC Security |
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 |