新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式系統(tǒng)應(yīng)用安全問(wèn)題解決之道研究

嵌入式系統(tǒng)應(yīng)用安全問(wèn)題解決之道研究

作者: 時(shí)間:2009-01-11 來(lái)源:網(wǎng)絡(luò) 收藏
近來(lái),應(yīng)用正在包括硬件在內(nèi)的各個(gè)層次上構(gòu)建安全性。不過(guò),廣泛的加密應(yīng)用、標(biāo)準(zhǔn)和協(xié)議使得人們很難創(chuàng)建一個(gè)通用的平臺(tái)。表1所示的常用加密標(biāo)準(zhǔn)和表2所示的常用加密協(xié)議只是給出了一些可選擇的加密線索。

  硬件可以解決許多安全性問(wèn)題。例如,Rabbit Semiconduct公司Rabbit 4000中的高級(jí)加密標(biāo)準(zhǔn)(AES)加密加速功能可以與SSL堆棧一起使用。它能加快處理過(guò)程,但它只能為于8位微控制器和另一個(gè)網(wǎng)絡(luò)設(shè)備之間傳送的數(shù)據(jù)提供安全性。它不能保證信息的正確性,或來(lái)自特定的源,只能保證從A點(diǎn)到B點(diǎn)傳輸?shù)臄?shù)據(jù)不會(huì)被篡改或?yàn)g覽。

  SSL/TLS提供端點(diǎn)的認(rèn)證和加密,但錯(cuò)誤的配置很容易受到如中間人攻擊(man-in-the-middle attack)之類的影響。由于會(huì)被不恰當(dāng)?shù)氖褂?,所以開(kāi)發(fā)人員不但需要了解怎樣使用安全軟件和硬件還要了解怎樣不濫用或錯(cuò)用它們。簡(jiǎn)單的在硬件上做文章并不意味著這種方法在長(zhǎng)期運(yùn)行中也能一直管用。安全數(shù)字音樂(lè)協(xié)會(huì)(SDMI)是一個(gè)數(shù)字版權(quán)管理(DRM)機(jī)構(gòu),它使用基于硬件的密鑰系統(tǒng)實(shí)現(xiàn)數(shù)字水印方案。SDMI被發(fā)現(xiàn)是有缺陷的,并因此在互聯(lián)網(wǎng)檔案中不見(jiàn)蹤影。它與DVD電影中使用的內(nèi)容加擾系統(tǒng)(CSS)非常相似。

表1:常用加密標(biāo)準(zhǔn)。
表1:常用加密標(biāo)準(zhǔn)。

表2:常用加密協(xié)議。
表2:常用加密協(xié)議。

  SDMI最初是使用唯一的、不可更改的密鑰。但通常情況下,這樣做必須使用更多的硬件來(lái)防止篡改。對(duì)于物理安全不成問(wèn)題的許多系統(tǒng)來(lái)說(shuō),諸如Trusted Computing Group公司的信任平臺(tái)模塊(TPM)這樣的平臺(tái)就可以為系統(tǒng)提供基本的安全性。

  最早以獨(dú)立安全芯片方式實(shí)現(xiàn)的許多TPM已被廣泛用于IBM筆記本電腦等PC主板中。威盛科技(VIA)公司開(kāi)發(fā)的Padlock版本則增加了像AES加密之類的性能。這類平臺(tái)可以支持許多操作系統(tǒng)特性,比如Vista的加密文件系統(tǒng)BitLocker。

  Zilog公司開(kāi)發(fā)的基于32位ARM922T的Zatara微控制器集成了保證微控制器安全所要求的大部分功能,包括安全啟動(dòng)ROM和篡改檢測(cè)支持(圖1)。更值得一提的是它帶有40kB的安全RAM,如果篡改檢測(cè)電路受到攻擊,這部分RAM將歸零。

圖1:Zilog公司的32位Zatara安全事務(wù)微控制器采用了ARM922內(nèi)核,與安全有關(guān)的特性包括安全啟動(dòng)ROM和電池支撐的SRAM。

  篡改檢測(cè)早已有之。但它變得越來(lái)越普遍,并在向食物鏈上游的更大處理器轉(zhuǎn)移。大多數(shù)64位處理器配備了外部硬件電路來(lái)解決這個(gè)問(wèn)題,就像附加了一個(gè)TPM一樣。誠(chéng)然,從里到外保證系統(tǒng)的安全對(duì)整個(gè)安全系統(tǒng)來(lái)說(shuō)至關(guān)重要。

  當(dāng)然,極端安全的系統(tǒng)只有在某些特殊環(huán)境下才有要求,例如控制核反應(yīng)堆或管理大量匯款。在這些情況下,為控制微處理器而增加成本和復(fù)雜性不是問(wèn)題。

  軟件端的安全性

  不管從哪里開(kāi)始,軟件對(duì)系統(tǒng)安全性都至關(guān)重要。顯然,一開(kāi)始就運(yùn)行安全代碼是一個(gè)最好用硬件方案解決的問(wèn)題。但一旦運(yùn)行,系統(tǒng)就需要額外的安全軟件來(lái)管理系統(tǒng)安全性。

  General Software公司推出的帶StrongFrame的BIOS是解決系統(tǒng)基礎(chǔ)軟件問(wèn)題的一種方法。它的啟動(dòng)安全程序(BSA)是一種固件應(yīng)用程序,能在硬件和應(yīng)用程序之間建立信任關(guān)系。它設(shè)計(jì)用于防止由于BIOS、操作系統(tǒng)或應(yīng)用程序進(jìn)行的未授權(quán)篡改而變得不再安全的系統(tǒng)操作。它使用數(shù)字簽名跟蹤受信任的對(duì)象。20kB模塊可以在ROM中壓縮50%。系統(tǒng)可以使用Firmbase Technology公司的信任運(yùn)算庫(kù)(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)樗氖褂脤?duì)象包括了提供虛擬專用網(wǎng)(VPN)支持的路由器和網(wǎng)關(guān)。硬件加密功能顯著提高了安全信息的吞吐量。

  Mocana公司有許多軟件產(chǎn)品,如安全套件(ESS)。Mocana針對(duì)飛思卡爾處理器開(kāi)發(fā)的設(shè)備安全框架模塊可以將這個(gè)軟件與PowerQUICC安全引擎集成在一起,因此開(kāi)發(fā)人員不必直接處理硬件。這些模塊支持SSL服務(wù)器、SSL客戶端、SSH服務(wù)器、SSH客戶端、IPsec/IKEv1和IKEv2以及認(rèn)證管理客戶端(CMC)?;陂_(kāi)放標(biāo)準(zhǔn)設(shè)計(jì)的系統(tǒng)兼容RFC,并能很好地支持多核環(huán)境。

  提高安全性

  將安全加速和支持合并在硬件中有它的優(yōu)勢(shì),但這并不是唯一的方式。將支持功能放在微控制器外面實(shí)現(xiàn)通常更容易,并且可能更適合某些特殊的應(yīng)用場(chǎng)合。

  使用安全存儲(chǔ)產(chǎn)品是在具有I2C接口的任何微控制器上增加基本安全支持的一種簡(jiǎn)單方法,比如使用Atmel公司的AT88SC25616C加密存儲(chǔ)器(圖2)。系統(tǒng)自身具有完備的安全要素,認(rèn)證全部在芯片內(nèi)部完成。

圖2:Atmel的AT885C2561C有多個(gè)密碼用來(lái)限制對(duì)EEPROM中區(qū)內(nèi)數(shù)據(jù)的訪問(wèn)。在成功進(jìn)行認(rèn)證交換后才能訪問(wèn)數(shù)據(jù)。

  通常,主微控制器上的一個(gè)應(yīng)用可用作進(jìn)入安全存儲(chǔ)器的網(wǎng)關(guān),而該存儲(chǔ)器使用外部源(如用戶或遠(yuǎn)端程序)提供的密鑰。這樣就能訪問(wèn)芯片內(nèi)部的存儲(chǔ)器,而這個(gè)芯片通常是另外一個(gè)密鑰,可被主機(jī)用來(lái)執(zhí)行其它安全功能,如認(rèn)證一個(gè)下載的更新或獲得對(duì)遠(yuǎn)程系統(tǒng)的訪問(wèn)權(quán)。

  大多數(shù)安全存儲(chǔ)器提供這一等級(jí)的支持。Atmel還提供具有多個(gè)密鑰的更復(fù)雜的層次結(jié)構(gòu),可選擇訪問(wèn)芯片內(nèi)不同的存儲(chǔ)區(qū)。不同的密鑰可以訪問(wèn)重疊區(qū)域,從而允許對(duì)信息的共享式訪問(wèn)。

  正常情況下這些芯片只存儲(chǔ)附加的加密密碼或索引,不過(guò)也能存儲(chǔ)少量的數(shù)據(jù)。存儲(chǔ)密鑰可以使附加的加密數(shù)據(jù)被存儲(chǔ)在芯片外面。例如,密鑰可以用來(lái)解密硬盤(pán)上的數(shù)據(jù)。

  Atmel的13.56MHz RFID CryptoRF采用同樣的方式工作,不同的是芯片通過(guò)RFID閱讀器進(jìn)行訪問(wèn)。該芯片采用了具有雙認(rèn)證能力的64位加密引擎,存儲(chǔ)容量可達(dá)64kbits。

  通過(guò)將數(shù)據(jù)存放在象希捷的Momentus 5400 PDE.2這樣的硬盤(pán)上這種方式可以把大量存儲(chǔ)數(shù)據(jù)鏈接到微控制器(圖3)。安全硬盤(pán)提供了對(duì)龐大存儲(chǔ)數(shù)據(jù)的訪問(wèn)能力,但在主機(jī)和硬盤(pán)之間轉(zhuǎn)移的是明碼(未加密)數(shù)據(jù)。

圖3:希捷的Momentus 5400 FDE.2可以存儲(chǔ)大量數(shù)據(jù),同時(shí)提供基于硬件的全盤(pán)加密(FDE)。

  將加密引擎放在硬盤(pán)上的一大優(yōu)點(diǎn)是它可以根據(jù)硬盤(pán)的傳輸速率進(jìn)行調(diào)整。硬盤(pán)支持多用戶和管理密碼。Momentus 5400 FDE.2也兼容于信任平臺(tái)模塊(TPM)。

  新的加密方法

  DES(數(shù)據(jù)加密標(biāo)準(zhǔ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)。對(duì)ZigBee等無(wú)線技術(shù)來(lái)說(shuō)這是一項(xiàng)可選功能。使用它的原因是可擴(kuò)展性。不管是理論上還是實(shí)踐上,ECC的擴(kuò)展性都要好于最流行的加密標(biāo)準(zhǔn)AES。

  盡管從推出到被大眾接受往往都需要很長(zhǎng)時(shí)間,但加密技術(shù)一直在不斷創(chuàng)新。挑戰(zhàn)一種新方法通常要求更新的思路。來(lái)自SecureRF的lgebraic Eraser就是一個(gè)很好的例子。它使用線性的安全協(xié)議,適用于對(duì)稱(秘鑰)和不對(duì)稱(公鑰)加密算法。

  DRM不提供安全性

  DRM對(duì)許多系統(tǒng)來(lái)說(shuō)很重要,甚至是很多不安全因素的克星,但它傾向于固定鏈接基于硬件的安全和加密。它之所以要依賴于硬件支持,部分原因是它需要端到端的內(nèi)容保護(hù)以及滿足系統(tǒng)要求的吞吐量。例如,音頻流或視頻流的加密/解密必須以線速進(jìn)行,否則回放質(zhì)量將受到影響。

  消費(fèi)者要求似乎在推動(dòng)DRM退出音頻領(lǐng)域,但它在視頻領(lǐng)域仍很重要。高帶寬數(shù)字內(nèi)容保護(hù)(HDCP)技術(shù)可以保護(hù)當(dāng)前的一些HDTV內(nèi)容,并且它已被集成進(jìn)包括藍(lán)光和HDTV驅(qū)動(dòng)設(shè)備在內(nèi)的HDTV源和目標(biāo)設(shè)備中。幸運(yùn)的是,這些器件之間傳送的數(shù)據(jù)一般被認(rèn)為是明碼數(shù)據(jù),因此它不涉及任何加密或保護(hù)。一般來(lái)說(shuō),只有作為端點(diǎn)的設(shè)備需要滿足這種類型的DRM。

  另一方面,保護(hù)應(yīng)用程序的目標(biāo)代碼經(jīng)常是需要的。當(dāng)代碼來(lái)自不安全的片外器件(如閃存芯片)時(shí),就可能需要加密。在這種情況下,處理器必須在執(zhí)行時(shí)進(jìn)行數(shù)據(jù)解碼。這種情況并不常見(jiàn),但有多種微控制器可以完成這個(gè)功能,比如美信公司基于8051的DS5250。

  另外一種方法是復(fù)用啟動(dòng)裝載工具(boot loader)將片外代碼解密到片上RAM,然后從RAM執(zhí)行。當(dāng)斷電時(shí)解密代碼會(huì)丟失。典型的替代方法是使用片上代碼保護(hù)機(jī)制,它通常能防止閃存被常用的調(diào)試方法所讀取。在沒(méi)有附加密鑰的情況下它通常會(huì)阻止對(duì)閃存進(jìn)行編程。否則一個(gè)欺詐應(yīng)用程序可能被裝載進(jìn)存儲(chǔ)器的一小部分空間中,這段程序再將剩下的代碼下載進(jìn)攻擊器。

  多級(jí)安全

  控制代碼和對(duì)代碼的訪問(wèn)通常是微控制器的存儲(chǔ)器和系統(tǒng)保護(hù)系統(tǒng)的一部分功能。高安全性系統(tǒng)一般會(huì)將這個(gè)功能與安全啟動(dòng)及安全存儲(chǔ)等功能結(jié)合起來(lái)形成一個(gè)安全的操作系統(tǒng),如來(lái)自美國(guó)國(guó)家安全署(NSA)的安全增強(qiáng)型Linux(SE Linux)。今后還將擴(kuò)展支持虛擬機(jī)。

  除了安全啟動(dòng)和安全存儲(chǔ)外,加密并不是系統(tǒng)安全的必要部分。相反,標(biāo)準(zhǔn)微控制器對(duì)虛擬存儲(chǔ)器和虛擬機(jī)的支持能力足夠用來(lái)實(shí)現(xiàn)多級(jí)安全(MLS)。系統(tǒng)中還可以集成更多的硬件特性,但在標(biāo)準(zhǔn)微控制器上很少見(jiàn)到。

  開(kāi)發(fā)人員需要了解這些安全因素的理由是,他們不需要額外的硬件,但軟件確實(shí)對(duì)系統(tǒng)的起點(diǎn)做了某種假設(shè),如啟動(dòng)過(guò)程和操作系統(tǒng)。無(wú)法滿足這些假設(shè)的系統(tǒng)如果不借助于任何加密手段的話通常會(huì)降低性能。遺憾的是,這些安全因素超出了本文討論的范圍,因此不要認(rèn)為只要簡(jiǎn)單地包含了硬件加密或者甚至只是包含了安全啟動(dòng)特性就能夠提供足夠安全的系統(tǒng)。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉