引言
设计安全性一直是人们关注的一个话题。特别是电子产品,研发人员花费数月甚至数年的时间研发出来的产品,面市还不到几周,市面上就会出现其复制品。在窃取技术和攻击技术日益发达的今天,我们不禁要问:您关心设计的安全性吗?您对您的设计采取了哪些安全措施?您知道他们最有可能采用哪种方式攻击您的产品吗?
攻击者的常见手段和分类
Cloning(克隆)
指攻击者拷贝PROM 或在程序加载时截取其码流并进行复制。因此该类FPGA如果没有加密措施的话,该设计的安全性异常脆弱。
Tampering(篡改)
篡改属于恶意破坏的行为,攻击者通过重新编程您系统上的FPGA而使您的系统运行其他的程序或不能运行。篡改使厂家的声誉、产品的质量等形象将遭到破坏。
Over-building(过建)
过建是指在把您的产品交给无道德的合同制造商生产时,他们在市场上购买额外的FPGA,然后在厂家没有允许的情况下,生产额外的产品,在无开发成本和无需技术支持的条件下,以更低的价格在市场上售卖,从而牟取利润。
Reverse Engineering(反向工程)
指攻击者对您的器件进行解体和破坏性研究,通过各种光学和电子仪器,运用各种科学测试、分析手段,反向求解器件的结构机制、技术原理等,从而重建您的设计原理图或网表来复制您的设计。
攻击者一般分为三类:第一类,个人或hacker;第二类,一般的公司;第三类,专业机构(如美国的FBI、CIA、NSA或政府机构)和专门从事反向工程的公司,专业机构拥有庞大资金进行反向工程活动,专门反向工程的公司为用户提供晶片分析服务、晶片分析软体和咨询服务。
如何保护您设计的安全性
Actel基于Flash的FPGA,从物理结构和加密措施方面对各种攻击手段进行了预防,被公认为是业界保密性最好的FPGA,因此在这里以Actel为例进行具体说明:
物理结构:
单芯片结构。由于是单芯片,上电就运行,不需要加载的码流,因此根本不会提供让你克隆的机会。
Flash开关位于七层布线金属下。不可能在不干扰已被编程的Flash晶体管上的电荷下移除这些金属层。有效防止了反向工程这种攻击方式。
Flash开关编程后,不会出现任何物理变化。因为它是通过改变浮动栅的电荷数来改变开关的状态,通过材料分析探测不到任何物理变化。有效防止了反向工程这种攻击方式。
无回读数据校验的机制。传统的FPGA都有一个回读功能,让器件可在编程后进行验证。无回读功能避免了产生回读的码流,杜绝了克隆。
加密措施:
具有FlashLock的功能。采用由用户定义的密钥机制,设置了密钥,就不能对器件进行读、写、验证或擦除操作,有效防止了篡改的攻击方式。下图1,在Custom level中选择要加密的操作,如:对Verify和Write进行保护,然后在Pass key中输入密码,点击Generate random key产生随机码,最后生成具有FlashLock的可下载文件。
图1
AES加密标准。AES密钥存储在专门的片内非挥发性Flash内存中,不能被读取。将经AES加密的配置文件提供给代工厂商,只有与拥有正确密钥的器件配合时才能使用,如下图2。防止了过建这种攻击方式,使得设计人员保护了其知识产权。
图2
最后:FPGA的设计安全性,您关心吗?FPGA的设计安全性,您准备好了吗?FPGA的设计安全性,足够安全吗?
在窃取技术日益发达的今天,我们都要考虑FPGA的设计安全性,Actel的FPGA提供了各种先进的安全功能,在业界首屈一指,对产品选用Actel具有先进的安全性设计的器件会免除您的后顾之忧。