为基于FPGA的嵌入式系统进行安全升级
tFusion2和IGLOO2 FPGA使用了一种称为"在应用中编程"(IAP)的高级编程机制,即便在编程期间有功率损耗的情况下,仍可提供可靠且安全的编程。让我们看看如何采用IAP机制来实现目前嵌入式系统需要的可靠远程升级的能力。
在基于FPGA的嵌入式系统中实现可靠且安全的远程更新
嵌入闪存的FPGA可以提供更容易支持安全可靠的远程更新所需的关键功能。例如,SmartFusion2拥有实施关键桥接功能及安全和IAP功能需要的所有主流FPGA特点。如图3所示,低速接口可以采用I2C和GPIO连接。高速主机接口PCIe则作为不需要FPGA结构的专用端口。
图3 SmartFusion2"在应用中编程"(IAP)支持机箱控制平面桥,以实现安全可靠的远程更新
片上处理器可以利用高速存储子系统(HSMS)访问大型内部闪存来进行代码储存,访问大型内部SRAM来进行数据缓冲,而专用DDR控制器则在有需要时访问其它外部存储器。专用系统控制器提供编程期间使用的安全功能,以及远程更新期间使用的IAP功能。图4详细描述了SmartFusion2 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配置存储器在编程的过程中断电也一样。
- 嵌入式系统在电源设计中的运用(09-20)
- 基于4G通信的嵌入式数据通信系统设计(10-10)
- 汽车安全性能亟待升级 嵌入式系统把关护航(05-07)
- USB端口找到新居,落户嵌入式系统(02-11)
- 嵌入式系统在电力变压器监测中的应用研究(09-18)
- 基于OMAP架构的嵌入式指纹识别系统设计与应用(04-29)