使用Spartan FPGA实现灵活的低成本安全解决方案
扫描二维码
随时随地手机看文章
1.Spartan-3AN FPGA中的Flash存储器和隐藏比特流
Spartan-3AN器件带有可以用于存储配置数据的片上Flash存储器,如果在设计中Flash存储器没有与外部相连,则其无法从I/0引脚读取数据。由于∏ash存储器在FPGA内部,因此配置过程中Spartan-3AN器件比特流处于隐藏状态。这一配置成为设计安全的起点,因为无法直接从Flash存储器中复制设计。
2.配置安全
保护Spartan-3器件不加载未知配置的最简单方法是硬连接模式引脚,只允许Fash存储器自动配置和连接数据引脚。此外,任何人想要从BGA或CS封装中直接接入引脚都极其困难,因为所有电路连接都在封装之下。如果引脚是硬连接,为了加载不同的配置则需要直接攻击PCB。
3.比特流发生器的安全级别
在设计的测试利调试阶段,设计者可以决定将内部配置访问端口(ICAP)或ChipScope TM Pro分析器核留在设计以来方便设计投产后可能进行的维护或随机检查。一些软件工具(如ChipScope Pro分析器)需要这些宏命令来读取内部逻辑的状态,虽然这为设计者带来了方便,但会留下安全漏洞。
比特流发生器基于名为“NOD”的物理实现文件的内容创建配置.bit文件,.bit文件规定已编程FPGA的行为。比特流发生器包括许多选项,其中一个选项是安全级别设置。比特流发生器有4个安全级别设置,第1个是默认值,其余3个选项则提供额外的安全保护。读回命令操作可以被完全禁用,或者仅限于有限访问。比特流发生器安全级别设置如表1所示。
表1 比特流发生器的安全级别设置
4. Device DNA安全
Xilinx在Spartan-3A/3AN/3A DSP平台上提供了Device DNA安全,用于保护设计、IP和嵌入式代码等。Device DNA是一个51位ID,每个Spartan-3A/3AN/3ADSP FPGA的DeviceDNA都是独一无二的,这个ID可以用于将设计与特定FPGA关联起来。设计者的个性化算法也存储在FPGA中,这是一种算法方程式,定义了如何获得独一无二的Device DNA并生成结果。利用设计者的个性化算法将这个D结合起来,然后将结果存储在设计者选择的外部存储器或内部Flash存储器(仅限于Spartan-3AN FPGA器件)中。该算法是机密的,因为只有设计者知道。