本应用笔记介绍了FPGA (现场可编程门阵列)及其如何保护系统的关键功能和知识产权(IP)。本文探讨了IP保护的各种途径。SHA-1质询-响应认证被认为是最安全的方法。本文提出了一种能够保护基于SRAM的FPGA设计IP的高性价比认证方案。介绍了DS28E01和DS28CN01器件的特性。
在过去20年中,FPGA (现场可编程门阵列)已经从原型开发工具演变为消费和工业应用的灵活解决方案。随着FPGA逻辑复杂性从几千个逻辑门升至数百万个逻辑门,器件可以容纳更多的系统关键功能(即知识产权,IP)。
如今,设计者可以选择FPGA,利用各种技术保护配置数据—OTP (一次性可编程)反熔丝、基于闪存的可重复编程存储单元以及可重复编程、基于SRAM的可配置逻辑单元。由于配置数据存储于FPGA芯片,并且芯片具有防止存储数据读取的机制,反熔丝和基于闪存的解决方案都提供了相对安全的方案。此外,除非采用非常复杂的方法,例如解包、微探针、电压对比电子束显微镜和聚焦离子束(FIB)探测,来“窃听”硅体并使安全机制失效1,否则数据遭到破坏的可能性非常低(关于FPGA的简要背景资料,请参考附录A,FPGA工艺及相关事项)。
然而,基于静态RAM (SRAM)的FPGA几乎没有任何安全措施保护IP (配置数据),防止数据被非法复制和剽窃。原因在于,一旦加载数据,则被存储于SRAM存储器单元,而该存储器很容易被侦测确定其内容。此外,缺乏一定的安全机制保护加载到芯片之前的配置数据,该数据对各种侦测措施敞开了大门。由于比特流通常储存在独立的存储器芯片,并由FPGA在上电加载配置的模式下进行读取,所以有可能遍历数据。尽管如此,还是可以找到一些简单方式保护数据,防止人为复制配置数据、剽窃IP。
基于SRAM的FPGA的弱点
由于两芯片方案(FPGA和配置存储器)中,配置数据比特流在上电阶段暴露在外部,而FPGA不能分辨比特流是“真实数据”还是非法获得的复本,配置数据所包含的IP完全不受保护。通过密钥和比特流加密可以部分地解决这个问题。但是,由于这种保护方法成本高昂,只能用于高端FPGA,并不适合消费类产品。
没有保护
在没有比特流加密的情况下,基于SRAM的FPGA设计特别容易被盗版。可以捕获配置比特流,并将其重新编程写入配置PROM,或简单回放,对原始设计进行克隆。从而使克隆产品与原版产品竞争,窃取研究和开发投资,降低原制造商的市场份额和效益。
即使没有加密,反熔丝或基于闪存的FPGA也比基于SRAM的FPGA更加安全,因为配置数据没有暴露在外部。但如果由装配厂编程FPGA,装配厂即有可能对更多的设备(多于授权数量)进行编程并自行销售,无需投入任何研发成本。这种非授权器件与授权器件很难区分,会严重影响公司效益。
在一定程度上提高基于SRAM的FPGA设计安全性的一种方法是:采用多芯片封装,并将非易失存储器与FPGA封装在一起。但如果有人打开封装,存储器和FPGA之间的数据接口仍然会暴露在外部,配置模式的安全性仍有可能受到威胁。
配置比特流的结构(即数据位的顺序、如何编码和识别)基本没有正式的文件说明。尽管理论上可行,但比特流的模糊度、复杂性及其尺寸,使得逆向工程非常困难且耗时1。如果逆向工程成功,即使只对配置数据流进行部分逆向工程,仍有可能非法侵入机顶盒以窃取服务或篡改交通工具的动力设置,导致原厂的责任问题。
设计挑战。..
为了防止系统成本剧增,设计人员还必须继续使用不带加密的基于SRAM的FPGA。但他们必须找到IP保护的方法,并将安全措施的成本控制在尽可能低的等级,而且不会对生产流程造成大的影响。
把用于安全保护的硬件电路装入电路板允许的空间而且不会增加整体功耗,这一点对于设计非常重要。并且,安全性对于FPGA资源(例如:引脚和逻辑单元的数量)的影响必须尽可能小。
响应:认证
认证过程的目的是在两个或多个实体之间建立标识验证。基于密钥的认证方法是把密钥和被验证数据(即“信息”)作为输入,计算信息验证代码(MAC)。然后将MAC附加在信息中,信息接收方进行相同的计算并将其计算的MAC与随信息传送的MAC进行比较。如果两个MAC一致,则判断信息可靠。
该基本模型有一个缺点:被拦截的消息可以由非验证发出方随后重新发送,并且被误认为是经过认证的。如果MAC计算包含了由MAC接收方选择的随机质询,则将避免这种简单的“重放攻击”的成功几率。图1所示为该模式的通用概念。质询码越长,潜在的重放就越难以记录所有可能的响应。
图1. 质询-响应认证过程验证MAC发送方的真实性