如何为基于FPGA的嵌入式系统进行安全升级?

图4 美高森美SmartFusion2 SoC FPGA拥有主流特点及可靠的安全和远程更新能力
利用“在应用中编程”来实现安全可靠的升级
SmartFusion2和IGLOO2提供的IAP机制是一种安全可靠地远程更新配置比特流的方法。IAP在FPGA内由专用系统控制器执行,因此并不需要使用任何FPGA结构或其它用户可配置逻辑。IAP功能采用一个外部SPI闪存器件,是一个两步过程。在第一步中,外部SPI闪存器件通过任何可用的接口,比如PCIe、USB、JTAG甚至以太网,用需要的比特流编程。用于SmartFusion2器件编程的所有比特流都进行了加密,以确保它们不会被篡改。
在第二步中,系统控制器通过系统服务请求执行IAP服务。用户向系统控制器提供指针,指向外部SPI闪存内比特流位置的初始地址。IAP系统服务请求也有三个用户选项:认证、编程或验证。认证通常是在FPGA配置存储器编程之前执行的,以验证SPI闪存内的比特流适用于正在编程的器件。在认证期间,器件正常运行。
包含新比特流的外部SPI闪存还包含一个额外的镜像,即用作恢复目的的一个好版本。用户可以在任何时间点使用恢复镜像将FPGA配置为良好状态。恢复镜像可以 “原样”保存,也可在需要时进行更新以便用于关键漏洞的修复。
IAP功能实施期间可以使用程序恢复功能。若编程期间断电,启动编程恢复,系统控制器会以可控的方式将编程FPGA的内部电荷泵禁动。在接下来的供电周期中,在启动FPGA结构之前,系统控制器将检测到器件编程操作已经被中断,它将从外部SPI闪存中的比特流启动编程周期。用户可选择从好的镜像进行更新或从刚刚推送到SPI闪存的远程更新镜像进行更新。当外部比特流被载入到SmartFusion2 FPGA内时,它采用内置的DPA对抗逻辑,以确保没有电磁探针能够将加密匙解密,从而为嵌入式系统提供可信任的安全器件。
与安全加密比特流和比特流验证一起使用,程序恢复可提供目前连接的嵌入式系统需要的安全可靠的远程编程更新机制,即使FPGA配置存储器在编程的过程中断电也一样。
评论