用Spartan-3A和Spartan-3AN平台实现低成本安全解决方案
2012-02-09
安全已成为如今的热门话题。对于电子设计工程师来说,最大的威胁莫过于市场上出现由于设计盗版而引起的大量假冒产品。根据反盗版联盟(Ant i -Counterfeiting Coalition)的统计,2003 年,全美国涉及盗版的交易额达2 8 7 0 亿美元,占全球盗版产品年销售总量(4560 亿美元)的63%。本文将介绍能够保护低成本FPGA设计的安全措施。
三大安全威胁
电子设计中最常见的侵权行为就是反向工程。当盗版者以在公开市场低价销售为目的而企图重新设计或制作某产品时,这种行为就会发生。通过反向工程,盗版者能够非常迅速地完成设计,由于无需研发经费,因此成本可以很低。
目前, 许多公司采取了外包生产的方式,因而面临着两种新侵权行为的威胁,即超量生产和克隆。在超量生产中,承包制造商只需生产出多于OEM(原始设备制造商)订货量的产品,这些超量生产的产品会在未经OEM 授权的情况下售出。
克隆是指盗版者以相同或不同的品牌复制设计、IP或产品。同样,克隆者不必花费任何研发成本。而且,超量生产和克隆的产品都能快速上市。
还未得到重视的是与这类侵权行为有
关的无形资产流失。无论产品遭到反向工程、超量生产还是克隆,都意味着OEM 销售额的重大损失。除了损失销售额,还会发生以退货量形式表现出来的质量成本,可能会影响品牌形象。并且,随着RMA(退货授权书)数量增多,OEM需要提供技术支持以确定症结所在并解决最终客户的问题,又进一步增加了成本。最终,产品可能变得真伪难辨。这些都是无法补偿的永久性损失。
使用Device DNA 实现安全功能
传统的FPGA 使用比特流加密技术来防范反向工程和克隆。虽然以往的效果不错,但现在,比特流加密已无法保护设计免遭超量生产的侵权。
为了保护设计不被以上三种行为所盗版,Xilinx 提供了几种解决方案,并在最近推出了带有DeviceDNA 的Spartan-3A 和Spartan-3AN器件系列,可帮助防范克隆者、超量生产者和反向工程者。这种DeviceDNA 设计级安全功能可以保护设计、IP和嵌入式代码。DeviceDNA 是一种特殊的57 位ID,对于每个器件都是独一无二的。这种57 位ID 是在Xilinx 工厂中固化或设定的,因而不能更改。Spartan-3A 和Spartan-3AN 两种FPGA 在每个出厂的器件中都包含独一无二的ID。
然后,该ID 会与设计师的个性化算法结合起来储存在FPGA 上。该算法基本上是一个算术方程式,它规定如何提取DeviceDNA, 并创建一个结果。此结果可以存储在任何地方,如外部存储器或Flash 中。该算法是安全性的秘密所在,因为只有设计师才知道它。尽管它存储在FPGA 上,但在旁观者看来,这只是一部分比特流。
Spartan-3A 的安全性
对于Spartan-3A 器件,该算法将使用DeviceDNA 的结果与器件配置后存储在Flash 中的结果相比较。如果二者匹配,则认可该设计。如果二者不匹配,该设计会被设置成多种行为方式,从轻微故障到严重功能障碍。
为了便于理解,可以把DeviaDNA比作ATM银行卡,把个性算法比作ATM卡的密码。其潜在的弱点是,可能出现有人同时得到了ATM 卡和密码的情况。这个性化算法一旦为人知晓便很容易被克隆,这正是设计本身集成授权算法的原因。该算法置于可编程逻辑内部最隐秘的位置,可以选择数百万种配置方案。
Spartan-3AN 的安全性
对于Spartan-3AN 平台(即新型非易失性FPGA 平台),此过程大同小异,只是有几个增强项。第一个安全增强项是,比特流隐藏在FPGA 内部。这样更难于被人窥见。
S p a r t a n -3AN FPGA 的第二个安全增强项是两个特有的序列号,即DeviceDNA和工厂预设Flash ID,存储在Flash 中。这两个特有的ID 提供长达70个字节的序列号,可产生大量可能的算法,从而延长了破解认证算法所需的时间。于是,设计既要受FPGA 约束,又要受Flash ID 的约束。
第三项改进是在存储的授权代码中。在Spartan-3AN 平台上,可以将授权代码存储在片上一个叫做Flash 用户字段的专用一次性可编程64字节寄存器中。这样可使整个安全系统自成一体。由于不需要外部接口或存储器,整体安全性得以提高,使反向工程更加困难。
该认证算法由用户定义,这使用户能在设计预算内实现恰当的安全等级。该认证算法也是安全系统中的主要秘密。认证过程中必须有不为人知的秘密,才能保护安全系统不被破解。因为算法是未知的,所以它是设计级安全性的关键。算法是在FPGA 架构中实现的,因此便成为FPGA中数百万配置位当中的少数几个配置位。除非知道这些位如何组合在一起,或者知道是哪种算法,否则这看起来仅仅是一堆数字。应用Spartan-3AN 器件的一种可能的流程如图1 所示。
图1 可用Spartan-3AN FPGA实现的安全设置
Spartan-3AN 设计级安全功能是完全自成一体的安全解决方案,如图2 所示。Flash 中既包含FPGA 配置比特流,也包含预生成的授权代码。此代码由可信/安全制造商或注册流程存储在一次性可编程Flash 用户字段中。
图2 安全Spartan-3AN器件
通电后,FPGA 进行正常配置。一旦配置完成,FPGA 应用程序便包括了批准已授权设计在相关Spartan-3AN FPGA 上运行的电路。认证算法将读取DeviceDNA和工厂预设Flash ID,然后生成一个主动授权代码,并将此授权代码与Flash 用户字段中存储的预生成授权代码进行比较。如果两个代码相等,则器件通过认证。否则,器件属非法而无法获得授权。
拒绝访问
失败认证的处理是DeviceDNA 设计级方案的又一强项。认证可以完全集成到设计中。这样
,未经授权的设计可以引起多种反应,例如:
- 无功能-该设计完全停止工作。
- 有限功能-主电路或关键电路被禁用或旁路。
- 定时炸弹-仅在限期内提供全部功能。
- 主动防御-系统监测各项活动并抵御攻击。
- 永久性自毁-删除所有Flash 内容,并且将Flash 永远锁定在全零状态。
本文所述的设计级安全功能是Spartan-3A 和Spartan-3AN 平台中可实现的基本安全级别。
结语
在开始进行下一代电路设计时,安全是一个重要的问题,Spartan-3A 和Spartan-3AN 平台中的安全措施为防范反向工程、超量生产和克隆提供了多种方法。