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