如何设计FPGA器件保护网络
对于基于数字信号处理器(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在片上存储不可改变的代码和安全密匙,还可以经由配置过程来加载配置位流以获得安全性。安全密匙仅是整个设计的一小部分,然而,它对于保护设计避免其它形式的攻击是十分重要的。
- 大咖谈数字音频解决方案,百年电声华人第一次(04-23)
- 掌控时局,看芯片商如何争夺汽车互联市场!(05-02)
- 从1.0到3.0,Hi-Fi颠覆了智能手机行业!(05-21)
- 一位台湾工程师透露,大陆从台湾挖高端IC人才很疯狂(02-23)
- USB Type-C芯片稀缺时代将成过去时(09-12)
- 国产“安防芯”腾空出世 凸显“芯”地位(02-11)