設(shè)計安全否?
設(shè)計安全否?
Is it safe?
Philip Ling
對于海外制造來說,設(shè)計的安全性是關(guān)鍵。
對各行各業(yè)來說,失竊都是一個嚴(yán)重的問題,但設(shè)計的被盜會造成極大的經(jīng)濟(jì)損失;對于資源有限的公司來說,它可能是災(zāi)難性的。
然而,海外制造——人們都知道它本質(zhì)上對設(shè)計的安全性構(gòu)成了威脅——依然存在,部分原因是它使資源有限的公司能角逐全球市場。設(shè)計公司傾向于采用標(biāo)準(zhǔn)化的部件,因而其知識產(chǎn)權(quán)無法從本質(zhì)上深埋到一個芯片中,這一點加深了上述對立的兩方面(設(shè)計安全性的降低與全球市場的競爭力)之間的矛盾。因此,對一個設(shè)計實施逆向工程并生產(chǎn)出功能相同的產(chǎn)品就變得相對容易。
以這種方式盜用IP,是設(shè)計被盜方面的一個例子,令人吃驚的是,在某些領(lǐng)域中,也是可以容忍的。另一種方式則是過度制造——合同承包制造商制造的產(chǎn)品數(shù)量超出客戶要求其制造的數(shù)量,而制造商將多余的產(chǎn)品以較低的價格在“灰色”市場上出售。也許最卑劣的設(shè)計偷竊形式是克隆——不僅僅是功能的復(fù)制,而是設(shè)計的本身的復(fù)制,連最后一個字節(jié)都不放過。然后,利用在公開市場上能合法采購到的部件來繁殖出相應(yīng)的設(shè)計。
上述的最后一種實例對設(shè)計的合法擁有者提出的挑戰(zhàn)也許是最大的,特別是當(dāng)設(shè)計主要由軟件來定義的時候,因為,要證明發(fā)生了上述有意的欺詐或者專利權(quán)的侵犯是十分困難的。FPGA的制造商們正是將其努力集中在此處,他們現(xiàn)在將對設(shè)計的保護(hù)視為一種重要的、體現(xiàn)其鮮明特色的功能特性。
努力的目標(biāo)正是保護(hù)配置的比特流——在基于SRAM的部件中,它將會儲存在一個外部的非易失性存儲中。如果定義配置的比特流在調(diào)往FPGA的途中被截獲,作奸犯科者可以對代碼實施逆向工程,從而獲取設(shè)計,或者,更簡單的是,用它來配置另一種器件,而無需明白它的工作原理。對數(shù)據(jù)進(jìn)行加密則意味著,當(dāng)它被截獲時,如果沒有密鑰就毫無意義,設(shè)計的保密性仍得到保證。
代碼的破解
Xilinx是第一家利用Triple DES(數(shù)據(jù)加密標(biāo)準(zhǔn))實現(xiàn)數(shù)據(jù)加密的廠商。該標(biāo)準(zhǔn)基于DES而建立,使用了56bit的加密密鑰。它已被軍方和其他領(lǐng)域所采用,時間以長達(dá)20年,直到被證明是可以被破解的為止(參見圖框中的背景介紹)。該解決方案是用兩個密鑰將DES重復(fù)3次——3重DES。當(dāng)Xilinx決定將加密技術(shù)嵌入Virtex II系列中時,這是為人們所接受的、得以應(yīng)用的安全保密標(biāo)準(zhǔn)。各密鑰存儲到器件中的易失性存儲中,這樣做有其自身的考慮。盡管這意味著如有必要可替換密鑰,但也意味著需要采用外部的后備電源(一般是電池),以防備電源被切斷時密鑰不至于丟失。這種方法為Xilinx的競爭者所詬病,但只是到最近一段時間才有人提出了一種替代方案。
去年,Altera推出了Stratix II,它是首款能在FPGA架構(gòu)中以硬連線方式實現(xiàn)先進(jìn)加密標(biāo)準(zhǔn)(AES)算法的FPGA。這些方法的關(guān)鍵,確切的說,是密鑰——在這個實例中,就是用于對數(shù)據(jù)進(jìn)行加密的128bit AES密鑰。
背景介紹
AES
根據(jù)美國政府的分類,AES廣泛用于“敏感但不保密”的信息?!奥?lián)邦信息處理標(biāo)準(zhǔn)”公文192公布了相應(yīng)的標(biāo)準(zhǔn),它通過稱為Rijndael的算法來實現(xiàn),這種算法從5種算法中選出。
它取代了數(shù)據(jù)加密標(biāo)準(zhǔn)(DES),該標(biāo)準(zhǔn)采用56bit的密鑰。雖然DES存在了接近20年的時間,但并行處理方面的進(jìn)步使得它最終遭到破解,人們決定,需要采用一種更為安全的標(biāo)準(zhǔn)。
美國國家標(biāo)準(zhǔn)與技術(shù)局的計算機(jī)安全資源中心于1999年正式公開征集算法,而最終選中了5種候選方案。所有這些方案的算法采用了塊密碼,也就是說,它們一次對一個數(shù)據(jù)塊進(jìn)行運算,處理的遍數(shù)預(yù)先給定。AES提供了128、192和256bit的密鑰,雖然大多數(shù)商業(yè)實現(xiàn)方案采用128bit,因為即使這樣的大小,其安全性也比DES要高出許多倍。為了理解這一點,不妨設(shè)想一個強(qiáng)大到足以在1s內(nèi)破解DES密鑰的海量并行處理機(jī)(在當(dāng)今是無法實現(xiàn)的),據(jù)估計,這樣的一臺機(jī)器要花上149萬億年才能破解一個128bit的AES密鑰。相比之下,宇宙的壽命也不過有200億年的歷史。
配置代碼的加密通過Altera的編程環(huán)境Quartus II來完成,而密鑰則被燒入器件內(nèi)部只能編程一次的內(nèi)存中。這可以由Altera公司來完成,或者在現(xiàn)場實現(xiàn),雖然Altera承認(rèn),目前是由它來完成這一過程以確保其可靠性。
后勤供應(yīng)方面的惡夢?
這里存在的危險是客戶會大批訂購器件而“丟失”密鑰——使得整批庫存不可用。此外,由于每一個器件采用唯一的一個密鑰,這也使得每個FPGA及其相應(yīng)的配置器件獨一無二——很顯然是一種非常安全的解決方案,但會給后勤供應(yīng)帶來巨大的麻煩。
近來,Actel推出了ProAsic3系列,它還在FPGA架構(gòu)中嵌入了一個128bit密鑰AES解密引擎。該公司相信,這是第一款能提供AES解密的“超值” (低價)FPGA,其安全性功能和低成本的特性使之成為工程師實難割舍的最愛。
基于SRAM的FPGA對AES加密配置數(shù)據(jù)的需求是顯而易見的——配置代碼儲存在芯片之外。而Actel的ProAsic3系列則是基于閃存的,在這種情況下,它的重要性勢必有所降低。不過,Actel的閃存器營銷主管Martin Mason相信:“在基于價值的市場上,安全性更為重要?!?br/>雖然該公司的防熔斷技術(shù)的性能和安全性方面仍然是終極的解決之道,Mason還是宣稱閃存是兩者中成本經(jīng)濟(jì)性更好的一種。AES密鑰應(yīng)該在安全的、或者可信任的編程中心中完成編程,可以安全地存儲在專用的、無法被讀取的閃存器中。與其它方案一樣,是由設(shè)計軟件以同一密鑰來進(jìn)行加密的。
你必須掌握密鑰
Actel系列的一個附加的功能特性是消息的認(rèn)證控制機(jī)制,如果密鑰不匹配的話,它們可以防止配置數(shù)據(jù)對架構(gòu)進(jìn)行編程。
此外,在AES功能激活以前,以總鑰(pass key)形式還可以實現(xiàn)更高層次的安全性——必須輸入它才能訪問器件。用戶可以用總鑰鎖閉器件或者解鎖器件;器件被鎖住時,無法訪問FPGA,這樣器件寫入、檢驗和擦除等功能都被禁用。該系列產(chǎn)品均不支持回讀(read back)機(jī)制。
配置數(shù)據(jù)在本器件內(nèi)進(jìn)行的加密,將使得克隆變得更為困難,因為,即使作奸者可以獲取配置數(shù)據(jù),如果沒有正確的密鑰的話,它也是無用的。
雖然芯片廠商們正在試圖從正面解決安全性問題,但開發(fā)者需要完成若干步驟,才能使得軟件也變得更為安全,如電子水印或者嵌入式序列號。不過,歸根結(jié)底,這只是些需要依賴法治手段來維護(hù)的、威懾性的措施而已。也許人們真正需要的,是可以運用于外部程序存儲而不會對總的系統(tǒng)性能造成負(fù)面影響的AES版本。
評論