近來,嵌入式應(yīng)用正在包括硬件在內(nèi)的各個層次上構(gòu)建安全性。不過,廣泛的加密應(yīng)用、標(biāo)準(zhǔn)和協(xié)議使得人們很難創(chuàng)建一個通用的平臺。表1所示的常用加密標(biāo)準(zhǔn)和表2所示的常用加密協(xié)議只是給出了一些可選擇的加密線索。嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適用于應(yīng)用系統(tǒng)對功能,對可靠性、成本、體積、功耗有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)本身是一個相對模糊的定義。目前嵌入式系統(tǒng)已經(jīng)滲透到我們生活中的每個角落,工業(yè)、服務(wù)業(yè)、消費(fèi)電子……,而恰恰由于這種范圍的擴(kuò)大,使得“嵌入式系統(tǒng)”更加難于明確定義。
根據(jù)IEEE(電氣和電子工程師協(xié)會)的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助裝置、機(jī)器和設(shè)備運(yùn)行的裝置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)械等附屬裝置。目前國內(nèi)一個普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。
如為了加快處理過程可以將Rabbit 4000的加密加速功能可以與SSL堆在一起使用,但它只能為于8位微控制器和另一個網(wǎng)絡(luò)設(shè)備之間傳送的數(shù)據(jù)提供安全性。這樣,硬件也可以提供一些安全保障。不過它不能保證信息的正確性,或來自特定的源,只能保證從A點(diǎn)到B點(diǎn)傳輸?shù)臄?shù)據(jù)不會被篡改或?yàn)g覽。
雖然SSL/TLS提供端點(diǎn)的認(rèn)證和加密,但錯誤的配置很容易受到如中間人攻擊(man-in-the-middle attack)之類的影響。由于會被不恰當(dāng)?shù)氖褂?,所以開發(fā)人員在了解怎樣使安全使用的同時還要了解怎樣不濫用它們。安全數(shù)字音樂協(xié)會(SDMI)呵用基于硬件的密鑰系統(tǒng)實(shí)現(xiàn)數(shù)字水印方案,雖是一個數(shù)字版權(quán)管理(DRM)機(jī)構(gòu),但是被發(fā)現(xiàn)是有缺陷的,因此在互聯(lián)網(wǎng)檔案中不見蹤影,它與DVD電影中使用的內(nèi)容加擾系統(tǒng)(CSS)非常相似。
表1:常用加密標(biāo)準(zhǔn)。
表2:常用加密協(xié)議。
1999年,音樂界及有關(guān)人士組成了SDMI(安全數(shù)字音樂促進(jìn):Secure Digital Music Initiative)組織,目前加入SDMI的技術(shù)和娛樂公司已經(jīng)超過了160家。SDMI建議所有在Internet上發(fā)行的CD和音樂數(shù)據(jù)都應(yīng)該加入數(shù)字水印編碼,而與SDMI相容的播放器或播放軟件就可以知道音樂數(shù)據(jù)被拷貝的次數(shù),若超出限制次數(shù)則無法播放。
SDMI最初是使用唯一的、不可更改的密鑰。但通常情況下,這樣做必須使用更多的硬件來防止篡改。對于物理安全不成問題的許多系統(tǒng)來說,諸如Trusted Computing Group公司的信任平臺模塊(TPM)這樣的平臺就可以為系統(tǒng)提供基本的安全性。 威盛科技(VIA)公司開發(fā)的Padlock版本則增加了像AES加密之類的性能。這類平臺可以支持許多操作系統(tǒng)特性,比如Vista的加密文件系統(tǒng)BitLocker。
Zilog公司開發(fā)的基于32位ARM922T的Zatara微控制器集成了保證微控制器安全所要求的大部分功能,包括安全啟動ROM和篡改檢測支持(圖1)。更值得一提的是它帶有40kB的安全RAM,如果篡改檢測電路受到攻擊,這部分RAM將歸零。
圖1:Zilog公司的32位Zatara安全事務(wù)微控制器采用了ARM922內(nèi)核,與安全有關(guān)的特性包括安全啟動ROM和電池支撐的SRAM。
在篡改檢測變的越來越普遍的同時,在向食物鏈上游的更大處理器轉(zhuǎn)移,大多數(shù)64位處理器配備了外部硬件電路來解決這個問題。誠然,從里到外保證系統(tǒng)的安全對整個安全系統(tǒng)來說至關(guān)重要。當(dāng)然,極端安全的系統(tǒng)只有在某些特殊環(huán)境下才有要求,例如控制核反應(yīng)堆或管理大量匯款。在這些情況下,為控制微處理器而增加成本和復(fù)雜性不是問題。
軟件端的安全保障
計(jì)算機(jī)系統(tǒng)由計(jì)算機(jī)硬件和軟件兩部分組成。
軟件系統(tǒng)的最內(nèi)層是系統(tǒng)軟件,它由操作系統(tǒng)、實(shí)用程序、編譯程序等組成。操作系統(tǒng)實(shí)施對各種軟硬件資源的管理控制。實(shí)用程序是為方便用戶所設(shè),如文本編輯等。編譯程序的功能是把用戶用匯編語言或某種高級語言所編寫的程序,翻譯成機(jī)器可執(zhí)行的機(jī)器語言程序。支援軟件有接口軟件、工具軟件、環(huán)境數(shù)據(jù)庫等,它能支持用機(jī)的環(huán)境,提供軟件研制工具。支援軟件也可認(rèn)為是系統(tǒng)軟件的一部分。應(yīng)用軟件是用戶按其需要自行編寫的專用程序,它借助系統(tǒng)軟件和支援軟件來運(yùn)行,是軟件系統(tǒng)的最外層 。
誠然,運(yùn)行軟件來保持系統(tǒng)的安全性,需要由系統(tǒng)提供一部分資源,所以這并不是最好的處理方法。
General Software公司推出的帶StrongFrame的嵌入式BIOS是解決系統(tǒng)基礎(chǔ)軟件問題的一種方法。它的啟動安全程序(BSA)是一種固件應(yīng)用程序,能在硬件和應(yīng)用程序之間建立信任關(guān)系。它設(shè)計(jì)用于防止由于BIOS、操作系統(tǒng)或應(yīng)用程序進(jìn)行的未授權(quán)篡改而變得不再安全的系統(tǒng)操作。它使用數(shù)字簽名跟蹤受信任的對象。20kB模塊可以在ROM中壓縮50%。系統(tǒng)可以使用Firmbase Technology公司的信任運(yùn)算庫(TCB)進(jìn)行擴(kuò)展,而TCB支持允許定制認(rèn)證和授權(quán)的插件式安全認(rèn)證機(jī)制。
General Software公司的方法可用于許多標(biāo)準(zhǔn)處理器架構(gòu)和操作系統(tǒng),而飛思卡爾公司的Mocana設(shè)備安全框架(DSF)則主要用于飛思卡爾的處理器,如PowerQUICC系列。PowerQUICC幾乎從推出伊始就有了加密引擎,因?yàn)樗氖褂脤ο蟀颂峁┨摂M專用網(wǎng)(VPN)支持的路由器和網(wǎng)關(guān)。硬件加密功能顯著提高了安全信息的吞吐量。
Mocana公司有許多軟件產(chǎn)品,如嵌入式安全套件(ESS)。Mocana針對飛思卡爾處理器開發(fā)的設(shè)備安全框架模塊可以將這個軟件與PowerQUICC安全引擎集成在一起,因此開發(fā)人員不必直接處理硬件。這些模塊支持SSL服務(wù)器、SSL客戶端、SSH服務(wù)器、SSH客戶端、IPsec/IKEv1和IKEv2以及認(rèn)證管理客戶端(CMC)?;陂_放標(biāo)準(zhǔn)設(shè)計(jì)的系統(tǒng)兼容RFC,并能很好地支持多核環(huán)境。
提升安全性能
將安全加速和支持合并在硬件中有它的優(yōu)勢,但這并不是唯一的方式。將支持功能放在微控制器外面實(shí)現(xiàn)通常更容易,并且可能更適合某些特殊的應(yīng)用場合。
使用安全存儲產(chǎn)品是在具有I2C接口的任何微控制器上增加基本安全支持的一種簡單方法,比如使用Atmel公司的AT88SC25616C加密存儲器(圖2)。系統(tǒng)自身具有完備的安全要素,認(rèn)證全部在芯片內(nèi)部完成。
圖2:Atmel的AT885C2561C有多個密碼用來限制對EEPROM中區(qū)內(nèi)數(shù)據(jù)的訪問。在成功進(jìn)行認(rèn)證交換后才能訪問數(shù)據(jù)。
通常,主微控制器上的一個應(yīng)用可用作進(jìn)入安全存儲器的網(wǎng)關(guān),而該存儲器使用外部源(如用戶或遠(yuǎn)端程序)提供的密鑰。這樣就能訪問芯片內(nèi)部的存儲器,而這個芯片通常是另外一個密鑰,可被主機(jī)用來執(zhí)行其它安全功能,如認(rèn)證一個下載的更新或獲得對遠(yuǎn)程系統(tǒng)的訪問權(quán)。
大多數(shù)安全存儲器提供這一等級的支持。Atmel還提供具有多個密鑰的更復(fù)雜的層次結(jié)構(gòu),可選擇訪問芯片內(nèi)不同的存儲區(qū)。不同的密鑰可以訪問重疊區(qū)域,從而允許對信息的共享式訪問。正常情況下這些芯片只存儲附加的加密密碼或索引,不過也能存儲少量的數(shù)據(jù)。存儲密鑰可以使附加的加密數(shù)據(jù)被存儲在芯片外面。例如,密鑰可以用來解密硬盤上的數(shù)據(jù)。Atmel的13.56MHz RFID CryptoRF采用同樣的方式工作,不同的是芯片通過RFID閱讀器進(jìn)行訪問。該芯片采用了具有雙認(rèn)證能力的64位加密引擎,存儲容量可達(dá)64kbits。通過將數(shù)據(jù)存放在象希捷的Momentus 5400 PDE.2這樣的硬盤上這種方式可以把大量存儲數(shù)據(jù)鏈接到微控制器(圖3)。安全硬盤提供了對龐大存儲數(shù)據(jù)的訪問能力,但在主機(jī)和硬盤之間轉(zhuǎn)移的是明碼(未加密)數(shù)據(jù)。
圖3:希捷的Momentus 5400 FDE.2可以存儲大量數(shù)據(jù),同時提供基于硬件的全盤加密(FDE)。
將加密引擎放在硬盤上的一大優(yōu)點(diǎn)是它可以根據(jù)硬盤的傳輸速率進(jìn)行調(diào)整,硬盤支持多用戶和管理密碼,Momentus 5400 FDE.2也兼容于信任平臺模塊(TPM)。
新加密方法 -DES
DES的原始思想可以參照二戰(zhàn)德國的恩格瑪機(jī),其基本思想大致相同。傳統(tǒng)的密碼加密都是由古代的循環(huán)移位思想而來,恩格瑪機(jī)在這個基礎(chǔ)之上進(jìn)行了擴(kuò)散模糊。但是本質(zhì)原理都是一樣的?,F(xiàn)代DES在二進(jìn)制級別做著同樣的事:替代模糊,增加分析的難度。
它是一種不再被經(jīng)常使用的加密標(biāo)準(zhǔn),很早以前就被許多更強(qiáng)大的技術(shù)所代替。同樣,3DES(三重DES)已經(jīng)被更具魯棒性的AES所替代。當(dāng)然,AES也不是終極標(biāo)準(zhǔn)。這正是為什么片上加密系統(tǒng)要不斷發(fā)展以適合最新安全技術(shù)的原因。片上加速器通常支持多種加密標(biāo)準(zhǔn)。
另外一種正在部署的流行加密系統(tǒng)采用的是橢圓形曲線加密法(ECC)。ECC是一種公鑰加密系統(tǒng),基于的是有限域上橢圓曲線的代數(shù)結(jié)構(gòu)。對ZigBee等無線技術(shù)來說這是一項(xiàng)可選功能。使用它的原因是可擴(kuò)展性。不管是理論上還是實(shí)踐上,ECC的擴(kuò)展性都要好于最流行的加密標(biāo)準(zhǔn)AES。
DES 使用一個 56 位的密鑰以及附加的 8 位奇偶校驗(yàn)位,產(chǎn)生最大 64 位的分組大小。這是一個迭代的分組密碼,使用稱為 Feistel 的技術(shù),其中將加密的文本塊分成兩半。使用子密鑰對其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行“異或”運(yùn)算;接著交換這兩半,這一過程會繼續(xù)下去,但最后一個循環(huán)不交換。DES 使用 16 個循環(huán),使用異或,置換,代換,移位操作四種基本運(yùn)算。
DES是一種比較安全的算法,前只有一種方法可以破解該算法,那就是窮舉法。采用64位密鑰技術(shù),實(shí)際只有56位有效,8位用來校驗(yàn)的。譬如,有這樣的一臺PC機(jī)器,它能每秒計(jì)算一百萬次,那么256位空間它要窮舉的時間為2285年。所以這種算法還是比較安全的一種算法。
盡管從推出到被大眾接受往往都需要很長時間,但加密技術(shù)一直在不斷創(chuàng)新。挑戰(zhàn)一種新方法通常要求更新的思路。來自SecureRF的lgebraic Eraser就是一個很好的例子。它使用線性的安全協(xié)議,適用于對稱(秘鑰)和不對稱(公鑰)加密算法。
DRM無很好的安全保障
DRM,英文全稱Digital Rights Management, 可以翻譯為:內(nèi)容數(shù)字版權(quán)加密保護(hù)技術(shù)。 由于數(shù)字化信息的特點(diǎn)決定了必須有另一種獨(dú)特的技術(shù),來加強(qiáng)保護(hù)這些數(shù)字化的音視頻節(jié)目內(nèi)容的版權(quán),該技術(shù)就是數(shù)字權(quán)限管理技術(shù)---DRM(digital right management)。
DRM分為兩類,一類是多媒體保護(hù),例如加密電影、音樂、音視頻、流媒體文件。另外一類是加密文檔,例如Word, Excel, PDF等。DRM主要通過技術(shù)手段來保護(hù)文檔、電影、音樂不被盜版。 這項(xiàng)技術(shù)通過對數(shù)字內(nèi)容進(jìn)行加密和附加使用規(guī)則對數(shù)字內(nèi)容進(jìn)行保護(hù),其中,使用規(guī)則可以斷定用戶是否符合播放。
DRM對許多系統(tǒng)來說很重要,甚至是很多不安全因素的克星,但它傾向于固定鏈接基于硬件的安全和加密。它之所以要依賴于硬件支持,部分原因是它需要端到端的內(nèi)容保護(hù)以及滿足系統(tǒng)要求的吞吐量。例如,音頻流或視頻流的加密/解密必須以線速進(jìn)行,否則回放質(zhì)量將受到影響。
DRM技術(shù)的工作原理是,先建立數(shù)字節(jié)目授權(quán)中心。編碼壓縮后的數(shù)字節(jié)目內(nèi)容,可以利用密鑰(Key)進(jìn)行加密保護(hù)(lock),加密的數(shù)字節(jié)目頭部存放著KeyID和節(jié)目授權(quán)中心的URL。用戶在點(diǎn)播時,根據(jù)節(jié)目頭部的KeyID和URL信息,就可以通過數(shù)字節(jié)目授權(quán)中心的驗(yàn)證授權(quán)后送出相關(guān)的密鑰解密(unlock),節(jié)目方可播放。需要保護(hù)的節(jié)目被加密,即使被用戶下載保存,沒有得到數(shù)字節(jié)目授權(quán)中心的驗(yàn)證授權(quán)也無法播放,從而嚴(yán)密地保護(hù)了節(jié)目的版權(quán)。
消費(fèi)者要求似乎在推動DRM退出音頻領(lǐng)域,但它在視頻領(lǐng)域仍很重要。高帶寬數(shù)字內(nèi)容保護(hù)(HDCP)技術(shù)可以保護(hù)當(dāng)前的一些HDTV內(nèi)容,并且它已被集成進(jìn)包括藍(lán)光和HDTV驅(qū)動設(shè)備在內(nèi)的HDTV源和目標(biāo)設(shè)備中。幸運(yùn)的是,這些器件之間傳送的數(shù)據(jù)一般被認(rèn)為是明碼數(shù)據(jù),因此它不涉及任何加密或保護(hù)。一般來說,只有作為端點(diǎn)的設(shè)備需要滿足這種類型的DRM。
另一方面,保護(hù)應(yīng)用程序的目標(biāo)代碼經(jīng)常是需要的。當(dāng)代碼來自不安全的片外器件(如閃存芯片)時,就可能需要加密。在這種情況下,處理器必須在執(zhí)行時進(jìn)行數(shù)據(jù)解碼。這種情況并不常見,但有多種微控制器可以完成這個功能,比如美信公司基于8051的DS5250。
另外一種方法是復(fù)用啟動裝載工具(boot loader)將片外代碼解密到片上RAM,然后從RAM執(zhí)行。當(dāng)斷電時解密代碼會丟失。典型的替代方法是使用片上代碼保護(hù)機(jī)制,它通常能防止閃存被常用的調(diào)試方法所讀取。在沒有附加密鑰的情況下它通常會阻止對閃存進(jìn)行編程。否則一個欺詐應(yīng)用程序可能被裝載進(jìn)存儲器的一小部分空間中,這段程序再將剩下的代碼下載進(jìn)攻擊器。
多級安全
微控制器的存儲器和系統(tǒng)保護(hù)系統(tǒng)的一部分功能是控制代碼和對代碼的訪問。高安全性系統(tǒng)一般會將這個功能與安全啟動及安全存儲等功能結(jié)合起來形成一個安全的操作系統(tǒng),如來自美國國家安全署(NSA)的安全增強(qiáng)型Linux(SE Linux)。據(jù)悉今后還可擴(kuò)展支持虛擬機(jī)。
除了安全啟動和安全存儲外,加密并不是系統(tǒng)安全的必要部分。相反,標(biāo)準(zhǔn)微控制器對虛擬存儲器和虛擬機(jī)的支持能力足夠用來實(shí)現(xiàn)多級安全(MLS)。系統(tǒng)中雖然可以集成很多的硬件特性,但在標(biāo)準(zhǔn)微控制器上很少見到。
開發(fā)人員需要了解這些安全因素的理由是,他們不需要額外的硬件,但軟件確實(shí)對系統(tǒng)的起點(diǎn)做了某種假設(shè),如啟動過程和操作系統(tǒng)。無法滿足這些假設(shè)的系統(tǒng)如果不借助于任何加密手段的話通常會降低性能。遺憾的是,這些安全因素超出了本文討論的范圍,因此不要認(rèn)為只要簡單地包含了硬件加密或者甚至只是包含了安全啟動特性就能夠提供足夠安全的系統(tǒng)。