如果使用FPGA配合DSP来提升安全能力?

2018-10-10 17:23:51 来源:elecfans
标签:

 

对于基于数字信号处理器(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卸载任何低层数据协议处理和缓存管理功能。

 

 

FPGA还将负责从外部SPI Flash “导引”DSP,FPGA使用自身的SPI存储器作为DSP代码来源,通过来自DSP的SPI端口的导引功能来映射引导过程。一旦代码传送完成,FPGA便允许DSP开始执行。

 

安全根

如果系统不保护导引过程,侵入者便能够以自己的代码替代,然后有效地劫持整个系统,这可能导致系统的损坏、重大的财务损失以及可能的个人责务。我们必需使用安全的导引过程来最大限度地减小此类攻击,而硬件信任根是实施安全导引过程的必要条件。

 

硬件信任根支持系统数据完整性和保密性的验证,同时可以将这个信任扩展至内部和外部实体。硬件信任根可避免被侵入或修改,也能够作为安全地铺设更高级功能的起点。在嵌入式系统中,信任根与其它系统组件共同工作,以确保主处理器仅使用授权代码进行安全导引,从而扩展信任区域至处理器及其应用。

 

硬件信任根必需在安全的FPGA上构建,其配置位流必需保护避免复制或反向工程,以避免被恶意入侵者破坏信任根。所以,保护FPGA器件的知识产权(IP)就是保护嵌入式系统其余部分的必要条件。

 

多级导引过程的安全要求

从其它部分进行嵌入处理系统的初始化,需要安全的导引过程,以执行不受恶意内容或泄漏影响的受信任代码。图2所示为安全导引过程为充分保护嵌入式系统的初始化而必需经过的各个不同阶段。每一个阶段都必需由先前的成功阶段来验证,以确保直到顶层应用层的“信任链(chain-of-trust)”。不可修改的引导加载程序(阶段0)代码能够嵌入在FPGA器件中,并且通过安全的信任根,使用受保护的安全密匙和相关的安全算法进行验证,以确保代码的完整性和真实性。把代码和执行转移至每个安全导引的顺序阶段前,这些阶段都必须经过先前受信任的系统进行验证。

 

 

实施安全的嵌入式系统

加密位流数据是保护用于上电的配置位流(就象用于基于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篡改检测方案以检测任何钻孔或切割迹线的企图及实施保护措施。

 

 

一旦完成了安全导引,FPGA便能够实施系统所需的其它功能,比如桥接PCIe和RapidIO接口、连接JESD204x总线、通过FPGA模块预处理无线信号,以及控制DDR3缓存。当需要附加的算法处理能力时,SmartFusion2具有片上处理器可供选择;当FPGA模块足以实施所需的控制功能时,IGLOO2也能够选择。

 

保护用于物联网的新DSP设计的安全

基于Flash的 FPGA提供安全IP和硬件信任根,用于构建更高层次安全功能,如安全导引等,以保护设计避免侵入。未来的安全需求将以这些功能为基础,例如,传送安全数据和授权安全设备将成为新兴的IoT和M2M应用的主要要求,这些应用将瞄准许多新的DSP相关设计。这将需要数种附加的设计安全层以保护嵌入式系统设计IP。此外,预计新的数据安全性要求将显著增长,需要先进的安全技术和方法来完全满足较低功率、较小占位面积和更高的处理效率需求,才可在这些新市场上取得成功。

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
物联网当道,智能家居如何落实安全性?

依托于物联网技术,近年来智能家居市场越来越火热。智能家居给生活带来了极大的便利,但也成为了黑客进行网络攻击的对象,如入侵智能摄像头系统,窃取信息,甚至是将用户的生活放在网上进行直播。

几款小而美的FPGA学习板
几款小而美的FPGA学习板

任何一种开发板,我都对小个头的感兴趣,因为越是小个头的其实越强大,从中也越能够体会出原设计者的用心和技术含量。

Lattice FPGA的集成化开发环境Diamond的安装配置

为什么要使用Lattice的FPGA?因为真的好用,用过的人都说好!

从概念到FPGA逻辑实现的设计流程
从概念到FPGA逻辑实现的设计流程

今天再啰嗦点玄学 - fpga的设计流程,因为“流程”我们学习任何一门技术都必须事先清楚的重要信息。

FPGA是什么?里面有什么?能做什么?
FPGA是什么?里面有什么?能做什么?

今天在群里有工程师问我,怎么才叫学会了FPGA,怎么才叫学好了FPGA?我相信有很多朋友有类似的问题,因为在多数人的潜意识里,FPGA是非常高深莫测的技术,能够玩转FPGA的都是大神级的人物。

更多资讯
简单几步让你看懂单片机时序图

操作时序永远是使用任何一片IC芯片的最主要的内容,看懂时序图,再操控这个芯片就非常容易了。而提取芯片器件手册上有用的信息是使用芯片的最基本步骤。

如何实现SoC全生命周期的监测?

SoC的设计越来越复杂,上市时间、软硬件集成、系统级验证、系统性能、异构、网络安全/功能安全等都是设计人员需要考虑的因素。流片前,设计师能通过仿真软件进行验证,但是流片过程中很多意想不到的结果,需要在流片后仍能被准确的检测出来。

如何将单片机的波特率作为形参的函数

不管是什么单片机,在使用串口通信的时候,有一个非常重要的参数:波特率。什么是波特率:波特率就是每秒传送的字节数。双方在传输数据的过程中,波特率一致,这是通讯成功的基本保障。

代码分享教你如何使用msp430单片机延时函数

今天看示例程序中出现了__delay_cycles()这个函数,在查找msp430x54x.h这个头文件的时候,发现这个头文件中没有该函数的声明,原来这个函数已经在IAR这个编译器中集成,这里总结一下__delay_cycles();这个函数的具体用法

如何控制51单片机液晶实现计时器的功能?

要想实现人机交互,显示装置是不可缺少的。前面讲到了如何利用单片机控制数码管的显示,这篇文章主要关于如何控制液晶显示,并在此基础上加上定时器的功能,把原来已用数码管显示的定时器搬到液晶屏上来。

Moore8直播课堂