CN112041845B - 可配置硬件设备 - Google Patents
可配置硬件设备 Download PDFInfo
- Publication number
- CN112041845B CN112041845B CN201980028657.XA CN201980028657A CN112041845B CN 112041845 B CN112041845 B CN 112041845B CN 201980028657 A CN201980028657 A CN 201980028657A CN 112041845 B CN112041845 B CN 112041845B
- Authority
- CN
- China
- Prior art keywords
- hardware device
- configurable hardware
- partition
- configuration memory
- configurable
- 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.)
- Active
Links
- 238000005192 partition Methods 0.000 claims abstract description 58
- 230000003068 static effect Effects 0.000 claims abstract description 30
- 230000007246 mechanism Effects 0.000 claims abstract description 24
- 238000004422 calculation algorithm Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 5
- 238000010200 validation analysis Methods 0.000 description 27
- 238000000034 method Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 239000004744 fabric Substances 0.000 description 8
- 238000013459 approach Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000004026 adhesive bonding Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010237 hybrid technique Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Logic Circuits (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种可配置硬件设备,包括:‑总大小已知的配置存储器,‑可配置构造,其布置成用于根据来自所述配置存储器的信息来被配置,并且被分割为静态分区和至少一个动态分区,所述静态分区被布置成用于接收比特流和密码随机数,并且包括用于与所述配置存储器交互的读/写机制,其中所述收到比特流被存储在所述配置存储器中,并被用来在所述动态分区中配置预期的应用,并且其中所述静态分区被布置成用于基于所述密码随机数来计算整个配置存储器的校验和并输出所述校验和。
Description
技术领域
本发明总体上涉及可配置硬件设备的领域。
发明背景
在过去的几十年中,例如,随着现场可编程门阵列(FPGA)的广泛采用,可配置硬件设备变得越来越流行。FPGA是可在构造后配置的硅芯片。它们为嵌入式***提供了比通用微处理器更高的每耗能单位性能,同时还提供了部署后的可配置性。与专用集成电路(ASIC)相比,FPGA应用的上市时间更短,并且可以以更低的非经常性工程成本进行设计。FPGA的大量生产使供应商可以以合理的成本密切关注最新的技术节点。此外,在过去的几十年中,为集成因应用而异的构建块所做的持续努力缩短了与ASIC的性能差距。得益于这些发展,FPGA在嵌入式***中的受欢迎程度正在增长。
如本发明中所考虑的可配置硬件设备(例如,FPGA)的基本结构被简要地复述。可配置硬件设备包括可配置构造,该可配置构造从配置存储器获取其配置,如图1所示。通过该配置,确定了可配置构造的功能性。存储在配置存储器中的数据被称为比特流。配置存储器可以是(易失性)SRAM或(非易失性)闪存。基于SRAM的FPGA是最常用的FPGA类型。
可配置构造的基本构建块包括:一个或多个可配置逻辑电路,其包括组合逻辑和分布式存储元件;提供集中式存储器的嵌入式存储器块;布置成用于输入/输出操作,并通过设备的引脚将内部硬件连接到外部环境,并切换矩阵以将构件块彼此互连的块。可配置硬件设计的实际功能性在逻辑电路和嵌入式存储器上进行配置。所有构建块均通过配置存储器中的比特进行配置。FPGA还包含其他专用硬件原语,其可以与上述构建块结合使用。
像FPGA这样的可配置硬件设备可以进行逻辑分区,这意味着可配置构造被分割为两个或更多个分区。这些分区可以在其他分区继续正常操作的同时被单独配置。然后在运行时通过大小与特定分区大小成比例的比特流来更新配置存储器中配置该特定分区的部分。这被称为局部重配置。
FPGA的配置存储器不仅可以从FPGA外部访问,还可以从FPGA内部的可配置构造访问。这是通过专用读/写机制达成的。当处置多个分区时,一个分区通常保持不变,并包含读/写机制以及控制逻辑。该分区被称为静态分区。通常,在打开电源时,静态分区的配置会从板载非易失性闪存加载到基于(非易失性)SRAM的配置存储器中。
在静态分区旁边,可存在一个或多个运行时可配置分区,其可被称为动态分区。这在图2中示出,其中使用读/写机制将比特流写入连接到动态分区的配置存储器的所述部分。这导致动态分区的重配置。在图2中,作为示例示出了Xilinx FPGA方案。在这种FPGA中,读/写机制是被称为内部配置访问端口(ICAP)的专用原语。原则上,读/写机制能够更新整个配置存储器,包括静态分区。不过,此设置在实践中很少使用,因为静态分区中与读/写机制交互的控制逻辑不应被更改。
考虑到在配置存储器中发生(意外)预期故障的应用,该机制的回读能力可被用于检错和纠错。这在例如空间应用中很重要,在该应用中,单事件翻转(Single Event Upset)会导致配置存储器中的比特反转。配置存储器回读机制允许读出整个配置存储器。
典型的基于FPGA的嵌入式***将通用微处理器与可配置硬件结合在一起。对于微处理器,已经提出了若干种技术来验证其是否正在运行预期的软件应用。设备或***的证实是验证嵌入式设备/***是否正在运行预期的应用代码的规程。这样,可以提供对抗针对嵌入式软件的物理攻击和远程攻击两者的保护。用于微处理器的许多证实机制都依赖于防篡改的硬件模块。假设该防篡改硬件模块本身可以被远程重配置,则硬件证明者核心需要能够向验证者证明其自身状态,即,可配置硬件需要执行自证实。这在图3中示出,其中μP和TR HW分别指示微处理器和防篡改硬件模块。该图解说了传统的攻击者模型,在该模型中假定该攻击者能够更改处理器中的软件代码。
通常,证实是验证者和非受信证明者之间的质询-响应协议。通过证实,验证者确定证明者的“健康”。在典型的证实协议中,证明者应验证者的请求而发送其当前状态的密码校验和。根据接收到的校验和,验证者确定证明者是否正在预期状态下操作。为了确保响应的新鲜度,由验证者生成的密码随机数(即只能使用一次的任意数字)被包括在校验和中。
在本领域中已经提出了各种方法来执行远程证实。粗略地讲,这些方法可以分为三类:基于软件的证实、基于硬件的证实以及采用最少硬件支持的混合技术。
通常,大多数基于软件的证实机制不需要硬件支持,而是依赖于质询-响应协议。通常,在基于软件的证实方法中,验证者(Vrf)向证明者(Prv)(设备)发送质询。Prv计算其自身存储器或底层软件的密码校验和以及Vrf所提供的质询,并将其发送回Vrf。根据收到的响应,Vrf验证Prv的“状态”。对基于软件的证实方案的关注点在于它们简便且低成本的“无硬件”办法。但是,由于严格的时序约束、由于缺少数据存储器证实和/或由于在节点受到威胁时缺乏对所存储秘密的保护,大多数方案都存在缺陷或不实用。
基于硬件的证实方法主要依赖于专用硬件的使用。例如,Arbaugh等人在“Asecure and reliable bootstrap architecture(安全且可靠的引导程序体系结构)”(1997年IEEE安全与隐私研讨会论文集(Proceedings 1997IEEE Symposium on Securityand Privacy),1997年5月)中提出一种用于确保证明者的完整性的体系结构。从上电到加载内核,会对BIOS执行一列表的安全检查。如果这些检查中的任何一项失败,将重引导证明者并将其返回到已知的保存状态。
混合证实方案采用软件/硬件协同设计,其在无需专用硬件模块(例如TPM)的情况下促进有效、低成本、安全的解决方案,以阻止基于软件的证实方案的低效率。混合体系结构的目标是对抗除物理攻击者之外的所有攻击者来向证实方案提供更多的安全性。
在本领域中,已经提出了用于证实设备的解决方案,其中假定处理器平台包含少量的不可变的只读存储器(ROM),该ROM存储基本程序,并负责通信和存储器读/写。更具体地说,不可变ROM负责接收代码更新和将它们写入设备的存储器,并且负责读出校验和并将其发送回验证者。然而,诸如FPGA之类的可配置硬件设备无法在一件不可变ROM中直接存储和访问其基本程序/功能性。由于此基本功能性被存储在可配置存储器中,因此无法将这种解决方案直接转置于FPGA。
在论文“A Protocol for Secure Remote Updates of FPGA Configurations(用于FPGA配置的安全远程更新的协议)”(S.Drimer等人,应用可重配置计算国际研讨会,ARC2009,可重配置计算:体系结构、工具和应用(Int’l Workshop on AppliedReconfigurable Computing,ARC2009,Reconfigurable Computing:Architectures,Toolsand Applications),第50-61页,2009年3月)中,提出了一种协议,该协议提供对运行中配置以及上载过程的状态的远程证实。但是,比特流存储在非易失性存储器中,并且假定配置存储器是防篡改的。
在论文“On-the-Fly Attestation of Reconfigurable Hardware(可重配置硬件的运行时证实)”(R.Chaves等人,现场可编程逻辑和应用国际会议(Int’l Conf.on FieldProgrammable Logic and Applications),FPL2008,2008年9月,第71-76页)中,运行时证实是对加载到可重配置设备的硬件结构执行的。假定可重配置设备的可加载硬件结构由二进制比特流描述,则可以计算该比特流的哈希值以验证硬件结构。假定FPGA中实现的证实核心是防篡改的,因为该核心应确保局部配置更新只能在预定的受限区域内进行。
在US2014/043059中,公开了一种用于验证数据被正确加载到个体可编程逻辑设备中的方法。计算要加载到个体可编程逻辑设备中的数据的参考摘要,并加载数据。接下来,在个体可编程逻辑设备内部,计算、读出经加载数据的编程摘要,并将其与参考进行比较。然而,没有提供任何机制来保证配置的新鲜度,因此重放攻击是可能的。此外,为了使所提出的办法可操作,FPGA被认为具有安全的密钥存储。
因此,在使用可配置硬件设备并且没有防篡改硬件模块可用的情况下,需要针对基于硬件的证实的解决方案。
发明内容
本发明的实施例的目的是提供一种适用于基于硬件的自证实的可配置硬件设备。
上述目的通过根据本发明的解决方案来实现。
在第一方面,本发明涉及一种可配置硬件设备,包括
-总大小已知的配置存储器,
-可配置构造,其布置成用于根据来自所述配置存储器的信息来被配置,并且被分割为静态分区和至少一个动态分区,所述静态分区被布置成用于接收比特流和密码随机数(cryptographic nonce),并且包括用于与所述配置存储器交互的读/写机制,其中所述收到比特流被存储在所述配置存储器中,并被用来在所述动态分区中配置预期的应用,并且其中所述静态分区被布置成用于基于所述密码随机数来计算整个配置存储器的校验和并输出所述校验和。
所提出的解决方案确实虑及可配置设备的自证实。收到比特流被用来配置预期的应用,并由此盖写所有先前代码。然后,设备使用接收到的密码随机数来计算校验和。校验和随后被发送回验证者。所提出的体系结构不需要使用外部存储器来存储收到比特流。因此,不需要依赖证明者与可配置硬件设备之间的防篡改连接。所提出的可配置硬件设备的体系结构可以容易地在例如现成的FPGA上实现。
在一优选实施例中,配置存储器包括对应于静态分区的部分和对应于至少一个动态分区的一个或多个部分。
优选地,可配置构造包括寄存器以存储随机数。在某些实施例中,可配置构造包括用于随机数的单独分区。
在本发明的实施例中,配置存储器是易失性的。在一些实施例中,配置存储器的对应于静态分区的部分被布置成用于从外部非易失性存储器加载。这可以在上电时完成。
在另一实施例中,配置存储器是非易失性的。
有利地,比特流包括用于计算校验和的算法。
在优选实施例中,可配置硬件设备包括消息认证码核心,以计算校验和。
在一个实施例中,可配置硬件设备包括以太网核心作为外部通信链路。
在一实施例中,静态分区包括物理上不可克隆的功能电路,以生成用于计算所述校验和的密钥。
在另一实施例中,至少一个动态分区中的至少一个动态分区包括物理上不可克隆的功能电路,以生成用于计算校验和的密钥。
有利地,可配置硬件设备包括数字时钟管理器,以用于生成用于读/写机制的时钟信号。静态分区包括接收部分,该接收部分被布置成使用从接收到的数据导出的接收时钟来接收外部数据。
在一实施例中,可配置硬件设备是现场可编程门阵列。
出于对本发明以及超出现有技术所实现的优势加以总结的目的,以上在本文中已描述了本发明的某些目的和优势。当然,应当理解,不必所有此类目的或优势都可根据本发明的任何特定实施例来实现。因此,例如,本领域的技术人员将认识到,本发明能以实现或优化如本文中所教导的一个优势或一组优势的方式来具体化或执行,而不必实现如本文中可能教导或建议的其他目的或优势。
从本文以下描述的(多个)实施例,本发明的以上和其他方面将是显而易见的,并且参考本文以下描述的(多个)实施例对本发明的以上和其他方面进行阐明。
附图简述
现在将通过示例,参考附图进一步描述本发明,其中类似的附图标记指代各附图中的类似的要素。
图1解说了本领域中已知的可配置硬件设备的基本结构。
图2解说了读/写机制,其回读整个配置存储器的配置。
图3解说了传统的基于硬件的证实设置中的攻击者模型。
图4解说了本发明的设备的体系结构的高层概览。
图5解说了用于存储MAC的密钥的两个可能的选项。
图6解说了所提出的协议。
图7解说了本发明的设备中的静态分区的可能实现。
具体实施方式
将就具体实施例并且参考特定附图来描述本发明,但是本发明不限于此而仅由权利要求书来限定。
此外,说明书中和权利要求中的术语第一、第二等等用于在类似的要素之间进行区分,并且不一定用于在时间上、空间上、以排名或以任何其他方式描述顺序。应理解,如此使用的术语在适当的情况下是可互换的,并且本文中所描述的本发明的实施例能够以与本文中所描述或图示的不同的顺序来进行操作。
应当注意,权利要求中使用的术语“包括”不应被解释为限定于其后列出的手段;它并不排除其他要素或步骤。因此,该术语应被解释为指定如所提到的所陈述的特征、整数、步骤或组件的存在,但不排除一个或多个其他特征、整数、步骤或组件、或其群组的存在或添加。因此,表述“一种包括装置A和B的设备”的范围不应当被限定于仅由组件A和B构成的设备。这意味着对于本发明,该设备的仅有的相关组件是A和B。
贯穿本说明书对“一个实施例”或“实施例”的引用意指结合该实施例描述的特定的特征、结构或特性被包括在本发明的至少一个实施例中。因此,短语在“在一个实施例中”或“在实施例中”贯穿本说明书在各个地方的出现并不一定全部指代同一实施例,而是可以指代同一实施例。此外,在一个或多个实施例中,如通过本公开将对本领域普通技术人员显而易见的,特定的特征、结构或特性能以任何合适的方式进行组合。
类似地,应当领会,在本发明的示例性实施例的描述中,出于精简本公开和辅助对各个发明性方面中的一个或多个的理解的目的,本发明的各个特征有时一起被编组在单个实施例、附图或其描述中。然而,该公开方法不应被解释为反映要求保护的发明要求比每一项权利要求中明确记载的特征更多的特征的意图。相反,如所附权利要求所反映,发明性方面存在于比单个前述公开的实施例的全部特征更少的特征中。因此,具体实施方式之后所附的权利要求由此被明确纳入本具体实施方式中,其中每一项权利要求本身代表本发明的单独实施例。
进一步,如本领域技术人员将会理解的,虽然本文中描述的一些实施例包括但不限于其他实施例中包括的其他特征,但是不同实施例的特征的组合亦在本发明的范围之内,并且形成不同的实施例。例如,在以下权利要求中,任何所要求保护的实施例可以用于任何组合。
应当注意,在描述本发明的某些特征或方面时使用特定术语不应被当作暗示该术语在本文中被重新定义成限于包括该术语与其相关联的本发明的这些特征或方面的任何特定特性。
在本文中所提供的描述中,阐述了众多具体细节。然而,应当理解,可以在没有这些具体细节的情况下实施本发明的实施例。在其他实例中,公知的方法、结构和技术未被详细示出,以免混淆对本描述的理解。
本发明公开了一种布置成用于执行自证实的可配置硬件设备,例如FPGA。这样,硬件设备(FPGA)可以在基于硬件的证实方案中用作受信硬件模块。这些方案通常依赖于受信任的防篡改专用硬件模块的存在。本发明允许在这些受信硬件模块内使用诸如FPGA之类的可配置设备,该可配置设备在部署之后是可配置的,并因而固有地不是防篡改的。
更特别地,本发明旨在提出一种解决方案,其中可配置硬件设备上的证明者核心被布置成执行整个设备的证实,包括自证实。这样,该设备可用于对嵌入或外部连接到该设备的处理器执行基于硬件的证实,从而保护整个硬件/软件***免受恶意代码更新的侵害。
证实机制依赖于安全擦除的证明。当验证者向证明者发送数据或代码时,该数据或代码填充了证明者嵌入式设备的整个(有限)存储器,这意味着所有先前代码都将被盖写并因而被擦除。这样,目标不是检测恶意代码的存在,而是确保在代码擦除/更新之后没有剩余恶意代码。然后可以执行安全代码更新,以确保更新嵌入式设备的存储器/状态。然后,设备可以计算整个存储器内容的密码校验和,并将其发送回验证者。校验和的计算算法可以被包括在由验证者作为协议一部分发送的代码中。替换地,它可以被包含在设备的静态分区中。在根据本发明的办法中,证实质询和随机数对应于由验证者为填充实现证明者的可配置设备的整个存储器而发送的代码。假定验证者通过这种办法知道配置存储器的确切大小。
根据本发明的可配置硬件设备克服了由于嵌入式处理器平台与诸如FPGA之类的可配置硬件设备之间的差异而引起的挑战。所得体系结构使用局部重配置和配置存储器回读(已在背景技术部分中进行了简要说明)以确保其不包含恶意硬件模块。这样,可配置设备可以执行自证实,这对于使用此类设备作为受信硬件模块的基于硬件的证实解决方案至关重要。
所提出的解决方案提高了基于可配置硬件设备的证实方法的安全性。根据对受信硬件模块本身在基于可配置硬件(例如,FPGA)时需要进行验证的观察,提出了一种体系结构和证实协议。这允许可配置硬件模块的自证实,从而当设备用于处理器上运行的软件的基于硬件的证实时,验证者可以信任该设备。尽管焦点在于可配置设备的自证实而不是受信模块与处理器的连接,但是根据本发明的设备可以容易地与现有的基于硬件的证实机制结合。
在本发明的设备中,假定可配置硬件设备的配置存储器具有已知的大小。此外,人们依赖于这样的观察,即可配置构造中没有足够的存储器来存储由验证者发送的配置数据,因此确保配置数据被存储在配置存储器中。这自动暗示可配置结构正在运行包含在所存储配置中的应用。提出了一种利用局部重配置的体系结构。可配置硬件设备的静态分区被称为StatPart,并且每个动态分区被称为DynPart。StatPart的配置存储器被表示为StatMem,而DynPart的配置存储器被表示为DynMem。在提出的解决方案中,在StatPart中实现了与验证者的通信以及用于访问配置存储器的读/写机制。代码更新被应用于具有已知大小的DynMem。在包括StatMem在内的整个配置存储器上计算出密码校验和。
图4给出了FPGA体系结构的高层概览。在StatPart中,读/写机制(ICAP)负责写入配置存储器,以便(重)配置DynPart。它还被用于读出整个配置存储器,其中包含StatMem和DynMem。此外,以太网(ETH)核心提供与验证者的通信链路。消息认证代码(MAC)核心计算整个配置存储器内容的密码校验和。MAC保证校验和是由可配置硬件设备计算的,而不是由模仿该设备的另一设备计算的。这是通过证明者和验证者之间的共享密钥来达成的。MAC还保证配置数据不会被篡改。
各种选项可用于在设备中存储MAC的所述密钥。一种选项是在生成密钥的StatPart中实现(弱)物理(地)无法克隆功能(PUF)。即使攻击者可以访问StatMem中的PUF电路,也无法检索密钥来克隆设备。图5a中解说了该选项。另一选项是在DynPart中包括PUF,作为来自验证者的新硬件模块,以作为证实协议的一部分(参见图5b)。这允许验证者通过更新PUF电路来更新共享密钥。在这种情况下,在可配置硬件设备的部署之前,由验证者发送的每个PUF电路都必须经过登记阶段。
静态分区(StatPart)需要被配置并始终在可配置设备上运行。如果可配置硬件设备是基于SRAM的,则配置存储器是易失性的。这意味着每次打开设备电源时,都需要从非易失性存储器加载静态配置。因此,在一些实施例中,可配置硬件设备被布置成用于连接到小型非易失性存储器(例如,闪存),以在上电时加载可配置设备的StatMem。以下将该非易失性存储器称为BootMem。在一个方面,本发明还涉及一种包括如前所述的可配置硬件设备的***,其中还提供了这种小型非易失性存储器(例如,闪存)。BootMem的大小被最小化,使得其无法存储DynPart的配置比特流。如已经所述,动态配置比特流只能被存储在配置存储器中。为了达成最小大小的静态配置比特流,并因而达成最小大小的BootMem,使StatPart的区域尽可能得小,并且绝对比DynPart的区域显著小得多。需要注意,在商用FPGA板上,只能通过将BootMem从板上解耦并将其连接到编程设备来对其进行编程。这意味着,即使BootMem能够存储FPGA的完整比特流,其仍将无法存储由证明者远程发送的动态比特流。因此可以安全地假定由验证者发送的比特流只能被存储在配置存储器中。
动态分区(DynPart)包含可配置设备的预期配置以及存储随机数(即只能被使用一次的任意数字)的寄存器。验证者可以更新随机数,以便在从证明者请求MAC时获得新鲜度。可选地,动态分区包含用于密钥生成的PUF。实践中,对于随机数,优选使用单独的分区,这样就可以在无需更新DynPart中的预期应用的情况下更新随机数。这样,验证者可以请求证明者的配置的新鲜校验和,而无需更改预期应用。
图6示出了在验证者和证明者之间所应用的证实协议。具有所提出的体系结构的设备位于证明者侧。首先,验证者将配置比特流发送到证明者,该证明者通过读/写机制(例如,ICAP)将比特流存储在配置存储器中。该体系结构促进了预期应用和随机数的独立配置。因此,动态配置在两个步骤中被执行,如图6所示。在这两个配置步骤之后,整个动态配置存储器由验证者写入(盖写)。即使预期应用和随机数寄存器不需要动态分区的可配置构造中的所有资源,动态比特流仍会填充整个动态配置存储器。可选地,配置预期应用的比特流还包含用于密钥生成PUF的配置数据。
当比特流被写入配置存储器时,可配置设备运行预期应用,其包含存储接收到的随机数的寄存器。为了向验证者证明这一点,整个配置存储器由读/写机制读出。生成MAC并将其发送回验证者,该验证者使用共享密钥生成相同MAC并比较这两个值以验证整个设备的内部配置。
图4给出了所提出的体系结构的高层视图。在图7中示出了根据本发明的实施例的静态分区StatPart的实现的框图。同样,作为示例考虑了Xilinx FPGA方案。StatPart被分为三个部分,每个部分都在不同时钟域中操作:
-用于从验证者接收数据的接收(RX)时钟域:RX时钟是从传入网络分组导出的;其以125MHz运行,并驱动以太网(ETH)核心的接收端口和RX域中的其他组件
-用于从配置存储器读取数据或向配置存储器写入数据的机制的时钟域(在这种特定情况下为ICAP):ICAP时钟由数字时钟管理器(DCM)生成;其以100MHz运行,并驱动ICAP和ICAP域中的其他组件
-用于向验证者传送数据的传输(TX)时钟域:TX时钟由数字时钟管理器(DCM)生成;其以125MHz运行,并驱动ETH核心的传输端口和TX域中的其他组件
DCM是时钟合成器,其从板载200MHz***时钟导出TX时钟和ICAP时钟。需要注意,RX和TX时钟以相同频率运行。但是,它们不能源自同一时钟源,因为传入和传出网络分组之间可能存在相移。下面阐述了这三个域中的组件的作用。图7中两个组件之间的云提供了粘合逻辑,该粘合逻辑将来自一个组件的信号转换为另一组件所期望的格式。ETH核心通过在每125MHz时钟个周期接收/传送一个字节来提供千兆比特网络连接。
在RX时钟域中,来自验证者的传入网络分组由ETH核心接收。网络分组被存储在基于BRAM的存储器中。RX时钟域的有限状态机(RX FSM)或者触发TX时钟域中的粘合逻辑以启动ICAP程序的运行,或者触发TX时钟域的有限状态机(TX FSM)以将网络分组传送回验证者。
在ICAP时钟域中,存储在基于BRAM的存储器中的命令由ICAP执行。如果所存储的命令是ICAP config(ICAP配置),则ICAP获取也存储在BRAM中的配置帧,并将其写入配置存储器。如果所存储的命令是ICAP回读,则由ICAP读出的帧被存储在FIFO中,该FIFO可以在TX时钟域中被读出。
在TX时钟域中,生成传出网络分组。首先,分组报头被加载到FIFO队列中。然后,或者帧被加载到FIFO中(通过复制来自先前FIFO的内容),或者由MAC块(通过AES-CMAC算法)生成的校验和被加载到FIFO中。FIFO的内容由ETH核心传送至验证者。如果使用用于AES-CMAC算法的128比特AES,则需要存储/生成128比特密钥。
在图7的实现中,StatPart中的密钥寄存器被用来存储密钥。对于万无一失的解决方案,需要实现密钥生成PUF而不是密钥寄存器。
相较于上述US2014/043059的公开,根据本发明的办法提供了若干优点。所提出的协议利用密码随机数,并且各种配置帧以随机顺序发送。因此,由FPGA计算的哈希值也基于所述随机顺序。与US2014/043059相反,在本发明中不需要假设安全密钥存储,因为在配置中提供了PUF。如先前已提到的,在FPGA的DynPart中提供PUF允许更新PUF,并因此也允许更新共享密钥。
尽管在附图和前述描述中已经详细地图示和描述了本发明,但此类图示和描述应被认为是说明性或示例性的而不是限制性的。前面的描述具体说明了本发明的某些实施例。然而,应当领会,不论前述在文本中显得如何详细,本发明能以许多方式来实施。本发明不限于所公开的实施例。
在实施所要求保护的发明时,所公开的实施例的其他变型可以由本领域技术人员从对附图、本公开以及所附权利要求的研究而理解和实现。在权利要求中,词语“包括”不排除其他元件或步骤,并且不定冠词“一(a/an)”不排除复数。单个处理器或其他单元可完成权利要求中所记载的若干项目的功能。在相互不同的从属权利要求中记载某些措施的纯粹事实并不指示不能有利地使用这些措施的组合。计算机程序可被存储/分布在合适的介质(诸如,与其他硬件一起或作为其他硬件的一部分而被供应的光学存储介质或固态介质)上,但也能以其他形式(诸如,经由因特网或者其他有线或无线电信***)来分布。权利要求中的任何附图标记不应被解释为限制范围。
Claims (12)
1.一种可配置硬件设备,包括
-总大小已知的配置存储器,
-可配置构造,所述可配置构造布置成用于根据来自所述配置存储器的信息来被配置,并且被分割为静态分区和至少两个动态分区,所述静态分区被布置成用于接收比特流和密码随机数,并且包括用于与所述配置存储器交互的读/写机制,其中收到的比特流被存储在所述配置存储器中,并被用来在第一动态分区中配置预期的应用,不同于所述第一动态分区的第二动态分区包括用以存储所述密码随机数的寄存器,
并且其中所述静态分区被布置成用于基于所述密码随机数来计算整个配置存储器的校验和,包括所述静态分区和所述至少两个动态分区,并输出所述校验和。
2.如权利要求1所述的可配置硬件设备,其中,所述配置存储器包括与所述静态分区相对应的部分以及与所述至少一个动态分区相对应的一个或多个部分。
3.如权利要求1或2所述的可配置硬件设备,其中,所述配置存储器是易失性的。
4.如权利要求3所述的可配置硬件设备,其中,所述配置存储器的与所述静态分区相对应的部分被布置成用于从外部非易失性存储器加载。
5.如权利要求中1或2所述的可配置硬件设备,其中,所述比特流包括用于计算所述校验和的算法。
6.如权利要求中1或2所述的可配置硬件设备,包括消息认证代码核心以计算所述校验和。
7.如权利要求中1或2所述的可配置硬件设备,包括以太网核心作为外部通信链路。
8.如权利要求中1或2所述的可配置硬件设备,其中,所述静态分区包括物理上不可克隆的功能电路,以生成用于计算所述校验和的密钥。
9.如权利要求1或2所述的可配置硬件设备,其中,所述至少一个动态分区中的至少一个动态分区包括物理上不可克隆的功能电路,以生成用于计算所述校验和的密钥。
10.如权利要求中1或2所述的可配置硬件设备,包括:数字时钟管理器,以用于为所述读/写机制生成时钟信号。
11.如权利要求10所述的可配置硬件设备,其中,所述静态分区包括接收部分,所述接收部分被布置成使用从所述接收到的数据导出的接收时钟来接收外部数据。
12.如权利要求中1或2所述的可配置硬件设备,其是现场可编程门阵列。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1806997.1 | 2018-04-30 | ||
GBGB1806997.1A GB201806997D0 (en) | 2018-04-30 | 2018-04-30 | Configurable hardware device |
PCT/EP2019/060382 WO2019211125A1 (en) | 2018-04-30 | 2019-04-23 | Configurable hardware device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112041845A CN112041845A (zh) | 2020-12-04 |
CN112041845B true CN112041845B (zh) | 2024-05-17 |
Family
ID=62495083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980028657.XA Active CN112041845B (zh) | 2018-04-30 | 2019-04-23 | 可配置硬件设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11640483B2 (zh) |
EP (1) | EP3788537B1 (zh) |
CN (1) | CN112041845B (zh) |
GB (1) | GB201806997D0 (zh) |
WO (1) | WO2019211125A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3867785A1 (en) * | 2018-10-17 | 2021-08-25 | Nokia Solutions and Networks Oy | Secure cryptoprocessor |
US11763018B2 (en) * | 2021-02-22 | 2023-09-19 | Imperva, Inc. | System and method for policy control in databases |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103560980A (zh) * | 2012-05-22 | 2014-02-05 | 马维尔国际贸易有限公司 | 用于内部/外部存储器分组和字节计数的方法和装置 |
CN104704768A (zh) * | 2012-10-04 | 2015-06-10 | 本质Id有限责任公司 | 用于从用作物理不可克隆功能的存储器中生成密码密钥的*** |
CN107026729A (zh) * | 2015-12-17 | 2017-08-08 | 罗伯特·博世有限公司 | 用于传输软件的方法和装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217247A1 (en) * | 2002-05-17 | 2003-11-20 | Sun Microsystems, Inc. | Method and system for storing field replaceable unit static and dynamic information |
DE10324507A1 (de) * | 2003-05-28 | 2004-12-30 | Francotyp-Postalia Ag & Co. Kg | Verfahren zum Laden von Daten in eine Speichereinrichtung |
US7366803B1 (en) * | 2005-02-23 | 2008-04-29 | Xilinx, Inc. | Integrated circuit for buffering data by removing idle blocks to create a modified data stream when memory device is not near empty |
WO2012074724A1 (en) * | 2010-12-03 | 2012-06-07 | Rambus Inc. | Memory refresh method and devices |
US9824013B2 (en) * | 2012-05-08 | 2017-11-21 | Qualcomm Incorporated | Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors |
US20140043059A1 (en) * | 2012-08-10 | 2014-02-13 | Microsemi Soc Corp. | Secure digest for pld configuration data |
US9137289B2 (en) * | 2012-08-14 | 2015-09-15 | Siemens Aktiengesellschaft | Facilitating a stateless transmission of data in an information technology system |
US9307015B1 (en) * | 2013-12-27 | 2016-04-05 | Emc Corporation | Cloud black box for cloud infrastructure |
US10146464B2 (en) * | 2016-06-30 | 2018-12-04 | Nxp B.V. | Method for performing multiple enrollments of a physically uncloneable function |
US10833969B2 (en) * | 2016-07-22 | 2020-11-10 | Intel Corporation | Methods and apparatus for composite node malleability for disaggregated architectures |
US20180054359A1 (en) * | 2016-08-19 | 2018-02-22 | International Business Machines Corporation | Network attached reconfigurable computing device |
US10958452B2 (en) * | 2017-06-06 | 2021-03-23 | Analog Devices, Inc. | System and device including reconfigurable physical unclonable functions and threshold cryptography |
US10503792B1 (en) * | 2019-05-10 | 2019-12-10 | Georgetown University | Cache optimization via topics in web search engines |
-
2018
- 2018-04-30 GB GBGB1806997.1A patent/GB201806997D0/en not_active Ceased
-
2019
- 2019-04-23 CN CN201980028657.XA patent/CN112041845B/zh active Active
- 2019-04-23 US US17/051,526 patent/US11640483B2/en active Active
- 2019-04-23 WO PCT/EP2019/060382 patent/WO2019211125A1/en unknown
- 2019-04-23 EP EP19720104.9A patent/EP3788537B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103560980A (zh) * | 2012-05-22 | 2014-02-05 | 马维尔国际贸易有限公司 | 用于内部/外部存储器分组和字节计数的方法和装置 |
CN104704768A (zh) * | 2012-10-04 | 2015-06-10 | 本质Id有限责任公司 | 用于从用作物理不可克隆功能的存储器中生成密码密钥的*** |
CN107026729A (zh) * | 2015-12-17 | 2017-08-08 | 罗伯特·博世有限公司 | 用于传输软件的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112041845A (zh) | 2020-12-04 |
EP3788537B1 (en) | 2023-06-07 |
US20210365592A1 (en) | 2021-11-25 |
EP3788537A1 (en) | 2021-03-10 |
WO2019211125A1 (en) | 2019-11-07 |
US11640483B2 (en) | 2023-05-02 |
GB201806997D0 (en) | 2018-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10685143B2 (en) | Secure boot sequence for selectively disabling configurable communication paths of a multiprocessor fabric | |
US11880468B2 (en) | Autonomous, self-authenticating and self-contained secure boot-up system and methods | |
Johnson et al. | A PUF-enabled secure architecture for FPGA-based IoT applications | |
US8095800B2 (en) | Secure configuration of programmable logic device | |
US8909941B1 (en) | Programmable integrated circuit and a method of enabling the detection of tampering with data provided to a programmable integrated circuit | |
Vliegen et al. | SACHa: Self-attestation of configurable hardware | |
US20200082091A1 (en) | Trusted booting by hardware root of trust (hrot) device | |
CN112041845B (zh) | 可配置硬件设备 | |
Johnson et al. | Fault attack on AES via hardware Trojan insertion by dynamic partial reconfiguration of FPGA over ethernet | |
WO2018038829A1 (en) | Systems and methods for authenticating firmware stored on an integrated circuit | |
de Oliveira Nunes et al. | Pure: Using verified remote attestation to obtain proofs of update, reset and erasure in low-end embedded systems | |
CN111200490A (zh) | 使用小型间接随机预充电以防范旁通道攻击的电子元件 | |
Streit et al. | Secure boot from non-volatile memory for programmable SoC architectures | |
Duncan et al. | SeRFI: secure remote FPGA initialization in an untrusted environment | |
CN116830110A (zh) | 多芯片安全可编程***和方法 | |
Vliegen et al. | A novel FPGA architecture and protocol for the self-attestation of configurable hardware | |
CN112257119B (zh) | 一种身份认证方法及用于保证加密装置安全的保护方法 | |
Unterstein et al. | SCA secure and updatable crypto engines for FPGA soc bitstream decryption | |
Chen et al. | Stealthy hardware trojan based algebraic fault analysis of hight block cipher | |
US9582686B1 (en) | Unique secure serial ID | |
Adetomi | Dynamic reconfiguration frameworks for high-performance reliable real-time reconfigurable computing | |
CN112437924A (zh) | 用于可编程逻辑器件的安全引导***和方法 | |
Jafarzadeh et al. | Real vulnerabilities in partial reconfigurable design cycles; case study for implementation of hardware security modules | |
Saarinen | Accelerating SLH-DSA by Two Orders of Magnitude with a Single Hash Unit | |
WO2022227641A1 (zh) | 一种安全保护方法、装置及*** |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40039864 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |