可編程器件設計的安全性
時間:2007-05-24 10:28:00來源:yangliu
導語:?可編程邏輯器件在電子工業(yè)中得到了日漸廣泛的應用。
自1970年代PAL器件的問世以來,可編程邏輯器件在電子工業(yè)中得到了日漸廣泛的應用。得益于摩爾定律,可編程邏輯器件單個芯片的容量從最初只有幾十門發(fā)展到目前的幾百萬門;應用范圍從最初簡單的粘合邏輯到目前復雜的SOC級設計;價格也從最初的幾十門/1美元降到鼻暗募蓋?1美元。隨著設計規(guī)模的上升和器件價格的下降,設計成本在系統(tǒng)中實現(xiàn)所占比重越來越大。因此如何有效地保護客戶的設計版權就變成可編編程器件的一個重要議題。因為當設計可編程的FPGA或定制ASIC時,產(chǎn)品之間的差別通常就存在于所設計的芯片中。若設計安全重視不夠,設計就可能被競爭對手或破解者復制并以他們的產(chǎn)品重新在市場上出現(xiàn)。
本文就各類芯片的特點介紹它們的安全性以及可能的設計復制技術(即逆向設計和克?。?,并介紹Quicklogic公司專利的Vialink技術在設計安全上的作用。
逆向工程
集成電路的逆向工程有以下幾步:
1.通過化學腐蝕和打磨去掉芯片封裝;
2.如果芯片完好無恙,則可以利用電壓對比顯微鏡掃描正在工作的目標芯片,并觀察其電平隨時間的變化,并借助于層的物理剝離技術對不同層進行分析;
3.對芯片的各金屬連接層依次進行照相和剝離以得到芯片結構;
4.在剝離各層之后,可以利用模式識別軟件進行處理或者人工校對來獲得網(wǎng)表以及電路圖。目前已有多家公司提供對標準單元/標準門芯片進行掃描并自動生成網(wǎng)表的服務。
5.利用上述步驟獲取的信息來制作新的集成電路。
一些專業(yè)從事逆向工程的公司表示只要有足夠的資金和時間,就一定可以破解任何芯片的保密措施,這類工作的費用介于1萬~100萬美元之間。幸運的是,防止逆向工程或者使之經(jīng)濟上不可行的方法還是存在的,本文將討論其中的幾種方法。
克隆與復制
克隆是指芯片內(nèi)容的原樣復制。對SRAM FPGA而言,克隆只需讀出FPGA的外部非易失性配置存貯器中的配置數(shù)據(jù)。對定制集成電路,唯一的克隆方法是用前面所提到的芯片逐層剝離照相復制方法以提取實際電路圖然后進行復制。而對采用金屬-金屬反熔絲技術的FPGA而言,這兩種方法都不適用,唯一的方法是獲得設計文件才能對芯片進行復制。
基于SRAM的FPGA的安全問題
在所有FPGA類型中,SRAM FPGA上的設計是最容易被復制的。SRAM FPGA的設計信息以數(shù)位流的形式存貯于外部的PROM或者Flash中。當數(shù)據(jù)從外部PROM/Flash下載至FPGA時能被通用儀器追蹤并記錄,此外PROM/Flash本身也易于被復制。
隨著時間推移,SRAM FPGA廠商使用了不少方案來避免設計被復制。一種保密方法是使用電池后備數(shù)據(jù)保存方式,數(shù)位流在產(chǎn)品生產(chǎn)時即被載入芯片,此后當系統(tǒng)處于關機狀態(tài)時FPGA的配置信息就由電池供電,使之不消失。然而一旦配置信息丟失,產(chǎn)品就需要送回廠商進行維修。而電池失電則不僅需要重新載入數(shù)據(jù),還需要更換電池。另外,額外的電池也增加了SRAM FPGA的成本。另一種方法對數(shù)位流進行加密,一些FPGA將密鑰存貯于芯片內(nèi)的特定RAM內(nèi),這種方法同樣需要備用電池的支持。
基于Flash的FPGA安全問題
Flash FPGA的安全性優(yōu)于SRAM FPGA,由于配置信息存貯于非易失的 FPGA,由于配置信息存貯于非易失的Flash結構中,避免了使用易于讀取的數(shù)位流來進行芯片配置。Flash FPGA通過對配置晶體管的浮柵進行充放電來決定兩根金屬連線的導通與否,這種連接信息是非易失性的,在掉電后能夠繼續(xù)保持。
盡管復制Flash FPGA中的設計稍有困難,但是破解的辦法仍然存在。一種方法是用電學方法檢查配置晶體管浮柵上的電位來獲取連接信息,另一種方法是將Flash FPGA芯片加電后置于真空艙,然后用電子顯微鏡檢測其輻射。這些方法實現(xiàn)起來較為困難,但是仍然可能被破解者成功利用來對設計進行復制。
ASIC的安全問題
ASIC的安全性介于SRAM FPGA與Flash FPGA之間。ASIC相對而言比較安全,但是同樣存在破解的辦法。由于所需要的昂貴工具和較長的處理時間,對ASIC進行逆向工程的成本相對較高。
對ASIC進行逆向工程的方法各異,從很平常的方法到很先進的方法都有。一種常用的方法是每次從硅片上腐蝕掉一層,并進行照像,然后利用Schottly效應顯示N摻雜區(qū)和P摻雜區(qū)。該方法的原理是將一薄層金或鈀沉積到硅片表面以形成二極管,這些二極管可以在電子束作用下可以被觀測到。芯片的各層圖像錄入計算機后經(jīng)圖形軟件處理,從而可以確定芯片基本參數(shù)和掩膜板,電路圖以及庫單元列表,這種方法曾被成功用于Intel 80386處理器的逆向工程。
QuickLogic的ViaLink技術
業(yè)界專家認為,反熔絲技術是市場上可用的最為可靠的安全技術。下面介紹QuickLogic的反熔絲ViaLink專利技術在可編程器件上的安全機制。
ViaLink是QuickLogic器件使用的一種速度極快,功耗低,非易失性的連接技術。該技術使用金屬電極和非晶硅構成的反熔絲,非晶硅在其中充當可編程材料。ViaLink未編程時阻抗極高,而一旦編程,則阻抗極低至類似于金屬-金屬連接。
ViaLink技術所有配置信息存在于芯片內(nèi)部,因而無法通過配置數(shù)位流來竊取設計。QuickLogic設計文件是一個包含編程連接信息的ASCII文件,編程器用一個特定的數(shù)據(jù)庫對之進行匹配,從而將所有連接名轉(zhuǎn)換為芯片上的位置,并且指定編程器對這些連接進行熔斷。而克隆這樣的芯片,破解者必需要擁有編程文件以及空白芯片。
標準的ASIC逆向工程方法根本不適用于QuickLogic器件。由于ViaLink尺寸極小,直徑僅僅約為0.3 m,而且ViaLink頂端的化學特性與金屬相似,因而任一位置都可能是普通通道、已編程或未編程的ViaLink。已編程和未編程的ViaLink表面輪廓幾乎完全相同。蝕刻照相識別方法對之無能為力。
化學蝕刻是逆向工程的一種方法,然而化學蝕刻會破壞ViaLink編程點的結構。
觀測每個反熔絲狀態(tài)的唯一方法是對芯片進行縱向剖切,這種代價昂貴的方法稱為聚焦離子束切割方法,但這種方法幾乎肯定會破壞芯片的其它部位。而且要成功破解QuickLogic芯片,破解者還需要知道所有的ViaLink位置。理論上而言,只有在確定了連接點的位置,才可以用掃描電子顯微鏡對之觀測。即便如此,區(qū)分已編程和未編程的ViaLink仍非易事。
另一困難則來源于芯片中龐大ViaLink的數(shù)目。Quick Logic芯片含有數(shù)量眾多的ViaLink,然而一般只有其中很少的一部分會被編程,而每個編程連接對整個設計的功能都有重要影響。例如QL7180 Eclipse Plus器件大約含有8,000,000個ViaLink連接,而典型的設計僅會使用其中的2%~4%,即被編程的ViaLink連接通常只有160K~320K。被編程的ViaLink連接中又有3/4用于短接閑置邏輯單元,僅有1/4用于設計本身,約為40K~80K。只需誤讀一個ViaLink就可能導致克隆芯片的功能異常,所以掃描定位所有的ViaLink位置往往需要數(shù)年的時間,這就使逆向工程對QuickLogic器件根本不具可行性。至今,仍沒有一個對采用Quicklogic 反熔絲FPGA進行成功破解的先例。
標簽:
中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(www.connectcrack.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。