vertex系列芯片和zynq系列芯片结构的异同_不可修复的芯片:Xilinx 7系列FPGA 比特流加密的全面突破(三)...

本文承接:不可修复的芯片:Xilinx 7系列FPGA 比特流加密的全面突破(一)不可修复的芯片:Xilinx 7系列FPGA 比特流加密的全面突破(二)

5对策以及防御技术

在本节中,我们讨论两种可能的对策和四种防御技术。我们将对策定义为防御当前7系列设备的技术(例如硬件开发人员可以使用的技术),将防御技术定义为需要更新芯片的措施(例如Xilinx等平台公司可以提供的技术)。请注意,我们的攻击基于FPGA芯片中硬编码的协议缺陷。因此,如果不重新设计FPGA硬件,就不可能对安全协议进行任何类型的重大改变,并且目前不适用于7系列和Virtex-6器件。表3概述了我们提出的防御技术和对策,本节对此进行了讨论。我们将本节分为两部分。在第一部分中,我们讨论了用于新开发的四种防御技术,而(似乎)在新的Xilinx系列中实现了前两种。在第二部分中,我们讨论了有关设计混淆和PCB补丁的问题,这是当前7系列设备的增强对策。

8496616937a3d297c86c64beb614ad38.png

5.1  通用防御技术

在这里,我们讨论了通用防御技术,这些技术可以由Xilinx提供,并且已经在新的UltraScale(+)和Zynq系列中部分使用。

5.1.1 使用前验证

在可靠的安全设计中,在进行密码验证之前不会解释任何数据。但是,解密攻击的根本原因之一是FPGA的加密引擎违反了这一原理,即在对加密的位流标头的数据进行验证之前先对其进行解释。因此,明确的对策是在执行任何操作之前验证配置头。如果可以实现,则在操作标头时将检测到攻击。尽管如此,据我们所知,无法在当前设备上更新比特流加密引擎,因为它是在芯片中实现的,因此需要重新设计。 看看Xilinx的新的FPGA系列是有指导意义的。似乎Xilinx在UltraScale和UltraScale+系列中引入了连续校验和,因为我们无法对此类设备发起攻击。Xilinx在新系列中使用了AES-GCM方案,其中每256位加密数据块的前32位是未知的(似乎是随机的),配置逻辑也不对其进行寻址。我们推测这32位是一种用于验证/完整性的校验和。然而,据我们所知,Xilinx没有正式声明这32位。 5.1.2 可修补比特流加密 具有讽刺意味的是,可重新配置设备的安全措施不可重新配置。Unterstein等人的研究表明Zynq-7000平台上可修补比特流加密方案的实现[54],这是[38]的重新实现。参考文献[19,21,22]报道了同一观点的几种变体。请注意,Zynq-7000、UltraScale和UltraScale+设备具有所需的公钥方案,而7系列和更旧的设备则没有。因此,该对策不适用于7系列。简言之,FPGA加载一个初始比特流并只验证它。该初始比特流包含一个硬比特流加密引擎(就侧信道阻力而言)和一个生成加密密钥的物理不可克隆函数(PUF)。此引擎解密原始比特流,并通过对结构的部分重新配置来加载它。 引擎是可修补的,因为它驻留在结构中,并且没有硬编码到FPGA中。因此,如果出现新的攻击,例如增强的侧信道攻击,或者如果在系统中发现错误(如我们在本工作中的攻击),则可以改进引擎。此外,由于使用了PUF,因此不需要密钥存储,这降低了攻击的风险,并且消除了Xilinx实现的BBRAM和eFUSES密钥存储的缺陷。例如,在[28,53]中示出了如何读出存储在各种fpga的寄存器单元中的键。 唯一的要求是验证初始比特流,并避免运行无效的比特流。因此,[54]的作者使用了Xilinx Zynq-7000系列,其中集成了公共密钥签名方案。除了Zynq-7000系列之外,UltraScale和UltraScale +系列还包括这样的嵌入式公共密钥签名。在7系列设备中,不存在这样的签名方案。验证可防止任何修改,例如,插入硬件木马,如修改加密引擎以泄漏密钥或解密比特流。因为初始比特流只需要验证,所以不加密。因此,攻击者可以看到它是如何实现和实现的。因此,攻击者知道PUF的实现和确切位置。因此,FPGA必须抑制任何未经验证的比特流,否则,攻击者可以修改比特流来读取PUF响应,即秘密。 不可否认,该方案基于对公钥签名方案的信任及其实现。尽管它只将不可修补的攻击面降低到签名方案,但就好像成功的攻击以加密方案为目标一样,它仍然是可修补的。但是,存在一个不可修补的攻击面。因此,我们讨论模型检查和信息流分析(IFA)作为另一个对策。

5.1.3 信息流分析与模型检验

对Xilinx官方文件的详细研究[56]并进行了实验,使我们受到了攻击。但是,由于记录了比特流加密和WBSTAR寄存器的行为,因此可以想象已经开发出一种正式模型来查找错误。在过去的几年中,科学界出现了正式验证和模型检查的趋势。Dessouky的最新出版物[5]讨论了各种发现硬件错误的技术。其中三个可以应用于我们的发现:证明助手和定理证明,模型检查以及IFA。请注意,仅根据规范对设计进行形式验证是不够的,因为该错误已在文档(即配置规范)中可见。此外,更改规格后,应复制当前设备以应用此对策。

在证明辅助和定理证明中,对安全性进行了数学建模和证明。例如,VeriCoq[4]将Verilog代码传输到Coq语言和证明系统中。通过对信号进行附加标记,跟踪信息流,即,如果信号发送或不发送机密信息,则对信号进行分类。数学证明确保没有秘密信息泄露。然而,每个信号的精确标记容易出错且费时费力,并且证明对于大型设计是不可行的。

更一般的模型检查主要基于布尔可满足性问题。工程师制定了规范的抽象模型,并测试了预定义为模型正确的摘要,例如,解密后的比特流无法流入配置寄存器。

由于模型检查器是一种通用方法,除了规范和HDL代码外,还需要编写其他模型,因此IFA直接检查设计。通常,输入数据大多以高低标记,例如私人和公共信息。然后,在设计过程中跟踪这些标签。如果任何带有私人标签的数据影响了公共数据,则可能检测到漏洞。为了执行IFA,存在各种在不同抽象层运行的工具。

5.1.4 开源硬件

在考虑重新设计时,可以考虑使用开源硬件。至少从理论上讲,开源硬件具有可从大型社区进行验证的优势,类似于软件项目(例如OpenSSL)中已完成的工作[3]。因此,它是通过透明而不是模糊获得信任的,并遵循Kerckhoffs原则[18]的方法。最近发布的OpenTitan [36,37]信任的根基正朝着这个方向发展。它为系统安全性提供了一个信任锚,并可用作定制设备的IP核心。

5.2 当前设备的对策

受到我们的攻击后,需要将使用7系列(或Virtex-6)设备的产品升级为具有完善的比特流加密引擎的产品,因为我们的发现暗示完全丧失了真实性和机密性,并且没有可用的补丁程序。但是,更新所有产品中使用的FPGA既不可能也不可行。低预算的设备通常使用旧的Virtex-6和当前的7系列。因此,在许多应用中提高对攻击者的标准的对策就足够了。在本节中,我们首先介绍混淆处理作为对

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值