使用安全FPGA器件保护网络设计以避免入侵
2015年10月22日 13:40 发布者:看门狗
作者: Tim Morin随着设备互联越来越多的应用在物联网和机器至机器连接中,基于闪存的FPGA提供安全IP和硬件信任根,可以用于保护设计避免入侵。
对于基于数字信号处理器(DSP)的设计,如果DSP没有足够的安全能力,便特别容易受到入侵。在许多应用中,如果使用FPGA以作配合来卸载DSP的部分工作,便可以轻易实施先进的安全功能。而且,如果配合的FPGA使用flash存储技术,在芯片上存储结构中的配置位流以及关键性密匙信息,便可以实现固有的防止复制或克隆的安全性,使得设计人员能够自动保护设计避免这些类型的偷窃。
DSP和FPGA系统结构
在使用FPGA或DSP的系统中(图1),DSP实施高级信号处理算法,而FPGA实施前端抽取功能。高速串行RapidIO总线用于连接FPGA和DSP;FPGA还连接至PCIe总线,经由互联网用作远程接入管理端口。PCIe总线还可桥接进入和离开RapidIO总线的通信量,以期把扩展远程管理连接至DSP。FPGA控制一个外部DDR3 DRAM,后者用作无线接口所收发数据包的缓存,并且允许FPGA从DSP卸载任何低层数据协议处理和缓存管理功能。
图1: 使用FPGA和DSP的无线通信系统.
FPGA还将负责从外部SPI Flash “导引”DSP,FPGA使用自身的SPI存储器作为DSP代码来源,通过来自DSP的SPI端口的导引功能来映射引导过程。一旦代码传送完成,FPGA便允许DSP开始执行。
安全根
如果系统不保护导引过程,侵入者便能够以自己的代码替代,然后有效地劫持整个系统,这可能导致系统的损坏、重大的财务损失以及可能的个人责务。我们必需使用安全的导引过程来最大限度地减小此类攻击,而硬件信任根是实施安全导引过程的必要条件。
硬件信任根支持系统数据完整性和保密性的验证,同时可以将这个信任扩展至内部和外部实体。硬件信任根可避免被侵入或修改,也能够作为安全地铺设更高级功能的起点。在嵌入式系统中,信任根与其它系统组件共同工作,以确保主处理器仅使用授权代码进行安全导引,从而扩展信任区域至处理器及其应用。
硬件信任根必需在安全的FPGA上构建,其配置位流必需保护避免复制或反向工程,以避免被恶意入侵者破坏信任根。所以,保护FPGA器件的知识产权(IP)就是保护嵌入式系统其余部分的必要条件。
多级导引过程的安全要求
从其它部分进行嵌入处理系统的初始化,需要安全的导引过程,以执行不受恶意内容或泄漏影响的受信任代码。图2所示为安全导引过程为充分保护嵌入式系统的初始化而必需经过的各个不同阶段。每一个阶段都必需由先前的成功阶段来验证,以确保直到顶层应用层的“信任链(chain-of-trust)”。不可修改的引导加载程序(阶段0)代码能够嵌入在FPGA器件中,并且通过安全的信任根,使用受保护的安全密匙和相关的安全算法进行验证,以确保代码的完整性和真实性。把代码和执行转移至每个安全导引的顺序阶段前,这些阶段都必须经过先前受信任的系统进行验证。
图2: 多级安全导引过程概述
实施安全的嵌入式系统
加密位流数据是保护用于上电的配置位流(就象用于基于SRAM的 FPGA配置位流)的一个常用方法。这使得在配置启动过程中仅通过观察来捕获位流变得更加困难。解密密匙存储在FPGA中,用于在配置FPGA之前解密数据。通常需要使用电池,以期在掉电时保留安全密匙。
另一个保护FPGA配置位流的方法是使用非易失性存储器将其完全存储在片上,避免在启动中暴露。一些FPGA器件,比如美高森美的SmartFusion2和IGLOO2系列,还通过在制造期间进行编程时将位流加密以提供额外的保护功能。这还保护设计避免不道德的合同制造商进行复制或反向工程,使得所需的硬件信任根被破坏。
一旦我们创建了安全的FPGA,下一个主要要求就是实施硬件信任根。FPGA必需保护安全密匙和片上不可改变的初始阶段(Phase 0)导引载入程序,使得恶意侵入者完全无法攻击或修改它们。如果使用基于Flash 的FPGA在片上存储不可改变的代码和安全密匙,还可以经由配置过程来加载配置位流以获得安全性。安全密匙仅是整个设计的一小部分,然而,它对于保护设计避免其它形式的攻击是十分重要的。
阻止攻击
一个常见的攻击方法是使用侧通道分析(比如观察安全密匙相关运作期间的功率或定时签名)来试图找出片上的安全信息。这种侧通道方法类似保险箱窃贼不断操纵锁具和侦听机心的噪声来找出保险箱组合的方法。在这种情况下,侧通道就是通过物理方法实施安全“功能”所造成的声音。实施经设计耐受通道攻击的解密算法,可以耐受更先进的差分功率分析(DPA)形式的侧通道攻击。
如果不使用耐受DPA的技术,观察者便能够测量设计在处理密匙和算法时所使用的功率。此外,频繁改变安全密匙将会限制攻击者用于数据分析的测量数目,使得他们难以利用这类方法入侵。而且,预充电寄存器和总线等电路设计技巧将会限制侵入者所能够利用的“噪声”。
综合概览
现在已保护了FPGA IP的安全,而我们的设计也建立了信任根,便能够更详细地检视整个嵌入式系统实施方案。图3所示为安全的嵌入式系统的实施方案,其中描述了安全导引过程的不同组件。不可改变的导引代码与密匙存储在片上,外部SPI存储器存储余下的DSP代码 (包括任何所需的OS加载程序和OS代码,以及应用程序代码),全部均使用信任根管理的安全的挑战和响应系统来验证。在过程结束时,安全的代码被载入DSP片上的SRAM,FPGA允许DSP开始运作,可以确信仅有授权代码被执行。此外,使用FPGA I/O可以轻易实施低成本PCB篡改检测方案以检测任何钻孔或切割迹线的企图及实施保护措施。
图3: 使用 SmartFusion2或 IGLOO2 FPGA的安全实施方案
一旦完成了安全导引,FPGA便能够实施系统所需的其它功能,比如桥接PCIe和RapidIO接口、连接JESD204x总线、通过FPGA模块预处理无线信号,以及控制DDR3缓存。当需要附加的算法处理能力时,SmartFusion2具有片上处理器可供选择;当FPGA模块足以实施所需的控制功能时,IGLOO2也能够选择。
保护用于物联网的新DSP设计的安全
基于Flash的 FPGA提供安全IP和硬件信任根,用于构建更高层次安全功能,如安全导引等,以保护设计避免侵入。未来的安全需求将以这些功能为基础,例如,传送安全数据和授权安全设备将成为新兴的IoT和M2M应用的主要要求,这些应用将瞄准许多新的DSP相关设计。这将需要数种附加的设计安全层以保护嵌入式系统设计IP。此外,预计新的数据安全性要求将显著增长,需要先进的安全技术和方法来完全满足较低功率、较小占位面积和更高的处理效率需求,才可在这些新市场上取得成功。