|
可编程器件设计的安全性 |
Design40 Security of Programmable Devices
|
■ Quicklogic公司上海代表处
|
自1970年代PAL器件的问世以来,可编程逻辑器件在电子工业中得到了日渐广泛的应用。得益于摩尔定律,可编程逻辑器件单个芯片的容量从最初只有几十门发展到目前的几百万门;应用范围从最初简单的粘合逻辑到目前复杂的SOC级设计;价格也从最初的几十门/1美元降到鼻暗募盖?1美元。随着设计规模的上升和器件价格的下降,设计成本在系统中实现所占比重越来越大。因此如何有效地保护客户的设计版权就变成可编编程器件的一个重要议题。因为当设计可编程的FPGA或定制ASIC时,产品之间的差别通常就存在于所设计的芯片中。若设计安全重视不够,设计就可能被竞争对手或破解者复制并以他们的产品重新在市场上出现。
本文就各类芯片的特点介绍它们的安全性以及可能的设计复制技术(即逆向设计和克隆),并介绍Quicklogic公司专利的Vialink技术在设计安全上的作用。
逆向工程
集成电路的逆向工程有以下几步:
1.通过化学腐蚀和打磨去掉芯片封装;
2.如果芯片完好无恙,则可以利用电压对比显微镜扫描正在工作的目标芯片,并观察其电平随时间的变化,并借助于层的物理剥离技术对不同层进行分析;
图1 ViaLink剖面图(略)
图2 蚀刻侧视图(略)
图3 蚀刻顶视图(略)
图4 扫描电子显微镜(略)
3.对芯片的各金属连接层依次进行照相和剥离以得到芯片结构;
4.在剥离各层之后,可以利用模式识别软件进行处理或者人工校对来获得网表以及电路图。目前已有多家公司提供对标准单元/标准门芯片进行扫描并自动生成网表的服务。
5.利用上述步骤获取的信息来制作新的集成电路。
一些专业从事逆向工程的公司表示只要有足够的资金和时间,就一定可以破解任何芯片的保密措施,这类工作的费用介于1万~100万美元之间。幸运的是,防止逆向工程或者使之经济上不可行的方法还是存在的,本文将讨论其中的几种方法。
克隆与复制
克隆是指芯片内容的原样复制。对SRAM FPGA而言,克隆只需读出FPGA的外部非易失性配置存贮器中的配置数据。对定制集成电路,唯一的克隆方法是用前面所提到的芯片逐层剥离照相复制方法以提取实际电路图然后进行复制。而对采用金属-金属反熔丝技术的FPGA而言,这两种方法都不适用,唯一的方法是获得设计文件才能对芯片进行复制。
基于SRAM的FPGA的安全问题
在所有FPGA类型中,SRAM FPGA上的设计是最容易被复制的。SRAM FPGA的设计信息以数位流的形式存贮于外部的PROM或者Flash中。当数据从外部PROM/Flash下载至FPGA时能被通用仪器追踪并记录,此外PROM/Flash本身也易于被复制。
随着时间推移,SRAM FPGA厂商使用了不少方案来避免设计被复制。一种保密方法是使用电池后备数据保存方式,数位流在产品生产时即被载入芯片,此后当系统处于关机状态时FPGA的配置信息就由电池供电,使之不消失。然而一旦配置信息丢失,产品就需要送回厂商进行维修。而电池失电则不仅需要重新载入数据,还需要更换电池。另外,额外的电池也增加了SRAM
FPGA的成本。另一种方法对数位流进行加密,一些FPGA将密钥存贮于芯片内的特定RAM内,这种方法同样需要备用电池的支持。
基于Flash的FPGA安全问题
Flash FPGA的安全性优于SRAM FPGA,由于配置信息存贮于非易失的 FPGA,由于配置信息存贮于非易失的Flash结构中,避免了使用易于读取的数位流来进行芯片配置。Flash
FPGA通过对配置晶体管的浮栅进行充放电来决定两根金属连线的导通与否,这种连接信息是非易失性的,在掉电后能够继续保持。
尽管复制Flash FPGA中的设计稍有困难,但是破解的办法仍然存在。一种方法是用电学方法检查配置晶体管浮栅上的电位来获取连接信息,另一种方法是将Flash
FPGA芯片加电后置于真空舱,然后用电子显微镜检测其辐射。这些方法实现起来较为困难,但是仍然可能被破解者成功利用来对设计进行复制。
ASIC的安全问题
ASIC的安全性介于SRAM FPGA与Flash FPGA之间。ASIC相对而言比较安全,但是同样存在破解的办法。由于所需要的昂贵工具和较长的处理时间,对ASIC进行逆向工程的成本相对较高。
对ASIC进行逆向工程的方法各异,从很平常的方法到很先进的方法都有。一种常用的方法是每次从硅片上腐蚀掉一层,并进行照像,然后利用Schottly效应显示N掺杂区和P掺杂区。该方法的原理是将一薄层金或钯沉积到硅片表面以形成二极管,这些二极管可以在电子束作用下可以被观测到。芯片的各层图像录入计算机后经图形软件处理,从而可以确定芯片基本参数和掩膜板,电路图以及库单元列表,这种方法曾被成功用于Intel
80386处理器的逆向工程。
QuickLogic的ViaLink技术
业界专家认为,反熔丝技术是市场上可用的最为可靠的安全技术。下面介绍QuickLogic的反熔丝ViaLink专利技术在可编程器件上的安全机制。
ViaLink是QuickLogic器件使用的一种速度极快,功耗低,非易失性的连接技术。该技术使用金属电极和非晶硅构成的反熔丝,非晶硅在其中充当可编程材料,图1是ViaLink的剖面图。ViaLink未编程时阻抗极高,而一旦编程,则阻抗极低至类似于金属-金属连接。
ViaLink技术所有配置信息存在于芯片内部,因而无法通过配置数位流来窃取设计。QuickLogic设计文件是一个包含编程连接信息的ASCII文件,编程器用一个特定的数据库对之进行匹配,从而将所有连接名转换为芯片上的位置,并且指定编程器对这些连接进行熔断。而克隆这样的芯片,破解者必需要拥有编程文件以及空白芯片。
标准的ASIC逆向工程方法根本不适用于QuickLogic器件。由于ViaLink尺寸极小,直径仅仅约为0.3 m,而且ViaLink顶端的化学特性与金属相似,因而任一位置都可能是普通通道、已编程或未编程的ViaLink。已编程和未编程的ViaLink表面轮廓几乎完全相同。图2是ViaLink的蚀刻侧视图。蚀刻照相识别方法对之无能为力。
化学蚀刻是逆向工程的一种方法,然而化学蚀刻会破坏ViaLink编程点的结构,图3是一张化学蚀刻的顶视图。
观测每个反熔丝状态的唯一方法是对芯片进行纵向剖切,这种代价昂贵的方法称为聚焦离子束切割方法,但这种方法几乎肯定会破坏芯片的其它部位。而且要成功破解QuickLogic芯片,破解者还需要知道所有的ViaLink位置。理论上而言,只有在确定了连接点的位置,才可以用扫描电子显微镜对之观测。即便如此,区分已编程和未编程的ViaLink仍非易事。图4是一张扫描电子显微镜照片。
另一困难则来源于芯片中庞大ViaLink的数目。QuickLogic芯片含有数量众多的ViaLink,然而一般只有其中很少的一部分会被编程,而每个编程连接对整个设计的功能都有重要影响。例如QL7180
Eclipse Plus器件大约含有8,000,000个ViaLink连接,而典型的设计仅会使用其中的2%~4%,即被编程的ViaLink连接通常只有160K~320K。被编程的ViaLink连接中又有3/4用于短接闲置逻辑单元,仅有1/4用于设计本身,约为40K~80K。只需误读一个ViaLink就可能导致克隆芯片的功能异常,所以扫描定位所有的ViaLink位置往往需要数年的时间,这就使逆向工程对QuickLogic器件根本不具可行性。至今,仍没有一个对采用Quicklogic
反熔丝FPGA进行成功破解的先例。
|
|