|
保护系统设计 维护知识产权 |
Secure Your PLDs from Attack
|
■ Actel公司产品市务总监 Jon Ewald Actel公司中国区经理 夏明威
|
保护可编程逻辑设计免受攻击
过去,军事项目是设计盗窃行为的主要攻击目标。但如今,知识产权(IP)保护已成为主流商用产品开发人员所关心的主要问题,以及消费电子制造商关心的重要事项,因为伪造产品会侵占其市场份额,影响利润。用户也希望其系统不会被篡改,特别是涉及金融交易的产品。但随着半导体集成密度的提高及单位逻辑门成本的直线下降,使用可编程逻辑器件的系统所面对潜在的克隆和反向工程问题,已经成为真正的威胁。因此,系统设计人员必须时刻考虑知识产权保护问题及所用器件的保密性。
典型的保密性破坏方法之一是协作欺诈,即设计公司将生产转包给独立的承包商,而承包商则超额生产,在黑市市场上转售。由于这些产品通常与原设计产品一模一样,但往往以较低价格发售,因而严重影响设计者的利益。设计盗窃非常容易,因为大多数消费电子产品都采用容易辨识的现成标准产品。许多此类系统都使用可编程逻辑器件将这些现成组件互连起来。因此,复制系统的难易程度取决于克隆可编程逻辑器件的难易程度。由此可见,设计人员需要一种机制以阻止未经许可的超额生产,如采用保密的可编程逻辑器件技术。设计人员可在公司内完成所有器件的编程工作,并只向合约制造商提供预先编程的部件。
反向工程是盗窃设计的另一种常用方法。竞争对手可以了用物理实体重建原理图,从而复制设计。过程中,盗窃者掌握了设计的原理,并懂得如何改进设计,以及伪装设计以掩饰产品的非原创性。由于这种方法利用了某些器件容易被复制的特性,如基于SRAM的FPGA设计(见图1),使克隆成为了更受关注的问题。竞争对手可从存储器复制器件的配置数据,又或截取器件的配置位流然后复制代码。他可以不知道原始设计的工作原理,也无需要这些信息。他只需复制所有以SRAM为基础FPGA所要的配置数据,即可窃取整个设计。
另一种更诡异的保密破坏方法是拒绝服务攻击,其恶意在于耗尽站点的所有资源,阻止经授权的用户访问该站点。这种攻击方式一直被视为信息科技专业人员所面对最严峻的保密问题。现在,研究人员和设计人员正从能影响可重置FPGA用户的角度,研究这个问题。在这种情况下,对方能够截取下载到用户器件中的位流,并且保留其特性,但利用随机位来替代余下的位流部分。这样极有可能造成内部的电气冲突,从而破坏器件。供货商的竞争对手通常采用这种拒绝服务进行攻击。
保密FPGA可防止设计遭盗窃
知识产权(IP)的保密性主要取决于三个因素:所保护的设计的价值、实现保密措施的成本及破坏这些安全措施的成本。设计团体一般认为,设计人员愿意花费在安全上的费用与设计的价值成正比。但是,如今的市场发展正促使许多FPGA技术所需的克隆费用和工作量迅速减少,而这些技术是从前不为人注意并被视为安全的。如果不希望系统代码被公开,检查所选择的可编程逻辑技术是明智之举。
反向工程的传统方法是让可编程逻辑器件循环运行所有可能的输入组合,并捕获相应的输出模式,然后对数据模式做出关联。这样,窃取者便可推导出定义内部逻辑的布尔(Boolean)方程。但是,克隆以SRAM为基础FPGA的设计则更为简单,因为其配置位流非常易于被复制。尽管供应商在所有FPGA中集成了各种安全机制,但仅用供应商提供的保密位锁定SRAM芯片难以防止设计被盗窃。某些器件系列只需在引脚上施加高压序列,即可突破其保密防护。施加高压序列可使器件在生产测试模式下工作,因而会重新访问器件内部状态。当意识到以SRAM为基础
FPGA存在这些保密漏洞时,一些供应商己懂得采用板载电池等技术来保护已编程器件内的加密密钥(见图2)。尽管这种防卫技术有效,却需付出包括维护加密密钥数据库的实施费用。更糟的是,当电池电力耗尽时,电路板便会失效,这时可能需要使用冗余组件以维持系统的完整性。
ASIC、门阵列及标准单元技术易遭受先进的技术攻击。反向工程方法包括逐步蚀刻掉器件的各层,以获取每层的图像。对这些图像进行后期处理,可以得出电路的多边形图像,这样就有可能重建器件的原理图。曾经有人利用这技术在两周内反向复制Intel的80386芯片。相对而言,反熔丝及以Flash为基础FPGA便较为保密安全。由于这些器件具备非挥发性的特质,因此毋须进行以SRAM为基础FPGA所需的位流配置。这些器件可在出货之前,在保密的环境中进行配置。而且,与ASIC易于辨识的互联电路相比,确定反熔丝或Flash开关组件的状态并不容易。试图确定具有百万个开关组件的大型FPGA的配置则更加困难。
采用传统技术对反熔丝FPGA进行反向工程是徒劳无功的。反熔丝技术使用非晶硅层构建信道的互连(见图3)。如果没有编程,非晶硅的阻抗非常高,可将金属层隔离开。施加编程电压后,非晶硅变为低阻状态,并形成金属与金属的互连。蚀刻掉器件的表层也只能看到电路的顶部,而不是非晶硅的状态。有一种方法可以确定已编程链路,就是采用电子显微镜查看每个反熔丝链路。但是因为典型的反熔丝FPGA具有数以百万个链路,而且仅有2-3%进行了编程,因此需要数年时间才能确定每个链路的状态。
图1 (略)
图2 (略)
图3 (略)
以Flash为基础的FPGA由于采用浮动闸来设定开关状态以构成互连,因此其保密性非常高。鉴于在开关组件中没有任何物理变化,编程仅仅改变浮动闸的电子数目,因此材料分析并没有作用。此外,反熔丝及以Flash为基础器件的设计都是利用编程器或其它电子方式,防止受到攻击。这些器件一般都包含可锁定芯片的电路,可在配置完成后停止其编程和读回功能。设计防范措施可确保锁定电路难以在电子或物理攻击中被破坏。就反熔丝FPGA而言,一旦编程完成后,便不能再确定先前所编程的熔丝。因此,即使未使用锁定机制,也无法读回以反熔丝为基础的器件。
100%的保密并不存在
随着FPGA的复杂性与日俱增,设计的价值也随之提高。某些技术可用来攻击任何IC技术,但却花费巨大或难以进行。举例说,IBM已发现将铌酸锂晶体放置在需监测的特征点上,可以显示金属线的逻辑状态。当铌酸锂的折射率随着所加电场变化时,采用紫外激光束照射晶体,可以确定下方金属的电势。这种方法可以读取高达25
MHz 的 5V信号。另有一种最近才公开的技术,是由Sandia实验室开发的,它采用对硅片透明的红外激光波长,通过照射激光,诱导出受逻辑状态影响的光电流,从而确定特定晶体管的状态。
所有机构都应该采取步骤保护其知识产权的安全。知识产权盗窃者喜欢攻击自满的设计者,因此需要经常检查设计的保密性。尽管大家都相信核弹发射控制的安全性比商用可编程逻辑设计更为关键,但所有知识产权都是有价值的,一旦受到侵害,通常后果都会非常严重。对自身保密要求的评估包括考虑知识产权的价值,以及对比设计受侵犯的潜在风险。但如果使用FPGA,并希望限制知识产权遭盗窃的潜在损失,应该选择以非挥发性Flash或反熔丝为基础的FPGA,此类产品对系统成本的影响甚微,却可提供高度的设计保密性。
|
|