嵌入式引導(dǎo)代碼安全性是技術(shù)提供商正在研究的漏洞分析的一個(gè)重要領(lǐng)域。但是,在添加數(shù)字簽名或身份驗(yàn)證步驟后,營(yíng)銷部門會(huì)立即將解決方案標(biāo)記為“安全啟動(dòng)”?,F(xiàn)在是時(shí)候研究安全boot_的真正含義,以及如何根據(jù)終端系統(tǒng)中的安全風(fēng)險(xiǎn)對(duì)安全啟動(dòng)技術(shù)進(jìn)行分級(jí)。關(guān)鍵考慮因素包括保護(hù)的內(nèi)容和方式、可用的安全啟動(dòng)功能、將要求與功能和聲明相匹配以及開(kāi)放標(biāo)準(zhǔn)工作。
隨著“網(wǎng)絡(luò)安全意識(shí)”成為2010年白宮的首要任務(wù),很明顯,當(dāng)今大多數(shù)意識(shí)工作都集中在互聯(lián)網(wǎng)系統(tǒng)上。很少有外展活動(dòng)關(guān)注嵌入式系統(tǒng)的安全漏洞,除非這樣的安全漏洞成為新聞。
嵌入式處理器中的頭號(hào)漏洞來(lái)源是設(shè)備的初始啟動(dòng)階段。這是作者的斷言,但可以通過(guò)搜索有關(guān)嵌入式安全的學(xué)術(shù)論文、安全會(huì)議上的討論以及設(shè)備制造商的反饋來(lái)獨(dú)立評(píng)估這一陳述的真實(shí)性,這些設(shè)備制造商可以證明他們的產(chǎn)品在市場(chǎng)上被篡改和克隆的方式。
在過(guò)去幾年中,這些已發(fā)布和未發(fā)布的安全事件的數(shù)量促使軟件行業(yè)關(guān)注微處理器和嵌入式處理器啟動(dòng)過(guò)程的安全性。本文進(jìn)行分析的原因很簡(jiǎn)單:通過(guò)評(píng)估使用任何安全啟動(dòng)解決方案在系統(tǒng)中真正設(shè)計(jì)了多少安全性,設(shè)計(jì)人員可以更明智地決定他們從研發(fā)和采購(gòu)資金中獲得多少實(shí)際終端系統(tǒng)安全性。
您在保護(hù)什么 - 以及如何保護(hù)?
負(fù)責(zé)系統(tǒng)安全的架構(gòu)師應(yīng)該提出兩個(gè)關(guān)鍵問(wèn)題(圖 1)。評(píng)估安全啟動(dòng)技術(shù)安全級(jí)別的第一個(gè)問(wèn)題是該功能是否實(shí)際上阻止了嵌入式設(shè)備或系統(tǒng)的啟動(dòng)代碼和軟件IP的暴露。有權(quán)訪問(wèn)引導(dǎo)設(shè)備或進(jìn)程的最復(fù)雜的對(duì)手是否可以訪問(wèn)代碼,然后將其用于逆向工程目的?
圖1:安全啟動(dòng)要求的兩個(gè)關(guān)鍵問(wèn)題
如果是這樣,黑客將擁有克隆系統(tǒng)、插入惡意軟件、制定對(duì)策或利用其他方法根據(jù)漏洞或缺陷禁用系統(tǒng)所需的所有信息。不保護(hù)代碼本身的安全啟動(dòng)技術(shù)無(wú)法提供針對(duì)最堅(jiān)定的攻擊者的真正安全性,并且可能會(huì)泄露關(guān)鍵的知識(shí)產(chǎn)權(quán)。
關(guān)于安全啟動(dòng)技術(shù)的下一個(gè)問(wèn)題是:它解決了哪些類型的威脅?這個(gè)問(wèn)題有點(diǎn)復(fù)雜。一些安全啟動(dòng)技術(shù)旨在防止替換更改的啟動(dòng)代碼(“未經(jīng)授權(quán)的替換”),這可能會(huì)在初始化處理器后將惡意軟件或安全后門引入處理器。其他功能嘗試限制可更改的啟動(dòng)參數(shù),例如加載設(shè)備時(shí)的多階段啟動(dòng)代碼源,以便對(duì)手無(wú)法中斷啟動(dòng)過(guò)程并將錯(cuò)誤命令或安全后門替換到設(shè)備設(shè)置中。
安全啟動(dòng)功能
目前,各種方法都作為安全啟動(dòng)技術(shù)實(shí)施。這包括數(shù)字簽名二進(jìn)制文件、安全和受信任的引導(dǎo)加載程序、引導(dǎo)文件加密和安全微處理器。
數(shù)字簽名的引導(dǎo)文件為防止 Internet 上跟蹤的一些最廣泛的引導(dǎo)加載攻擊提供了重要的第一步。雖然一些制造商稱此功能為“安全啟動(dòng)”,因?yàn)樗黾恿藢?duì)重復(fù)攻擊的抵抗力,但如果驗(yàn)證模塊未集成到嵌入式處理器中,則在驗(yàn)證過(guò)程中仍然容易受到攻擊。此外,這種安全啟動(dòng)不解決嵌入在啟動(dòng)文件本身中的專有和敏感信息的保護(hù)問(wèn)題。
提高引導(dǎo)加載程序的信任和安全級(jí)別也是行業(yè)安全和意識(shí)的重要一步。證明引導(dǎo)加載程序的安全性或信任級(jí)別本身就是一個(gè)多變量問(wèn)題,在很大程度上取決于引導(dǎo)過(guò)程的復(fù)雜性。例如,當(dāng)通過(guò)網(wǎng)絡(luò)加載引導(dǎo)代碼時(shí),引導(dǎo)加載程序的安全性和信任可能僅與網(wǎng)絡(luò)本身一樣安全。保護(hù)大型多方網(wǎng)絡(luò)是一個(gè)比嵌入式處理器的安全啟動(dòng)更大的問(wèn)題。這是啟用遠(yuǎn)程固件更新的系統(tǒng)中的安全因素。
引導(dǎo)文件加密/解密和專用安全微處理器是安全嵌入式處理器相對(duì)較新的設(shè)計(jì)特征。它們提供硅電路嵌入式功能,以保護(hù)操作代碼并管理安全啟動(dòng)。
將需求與功能、聲明和標(biāo)準(zhǔn)相匹配
目前導(dǎo)致組件功能“安全啟動(dòng)”的主要機(jī)制是由嵌入式處理器在啟動(dòng)過(guò)程中驗(yàn)證的數(shù)字簽名軟件啟動(dòng)映像。此過(guò)程幾乎可以與任何軟件映像加密方案共存。
毫無(wú)疑問(wèn),與沒(méi)有數(shù)字驗(yàn)證的系統(tǒng)相比,添加數(shù)字簽名驗(yàn)證步驟可以提高安全性。但是,在審查核查過(guò)程以及使用數(shù)字簽字和核實(shí)數(shù)字簽字的方法之前稱這一系統(tǒng)為“安全啟動(dòng)”,并不一定是真正的主張。它也是一個(gè)命名法,不允許將一個(gè)“安全啟動(dòng)”方案與另一個(gè)方案進(jìn)行比較,以確定哪個(gè)更安全,或者哪個(gè)提供分層的安全啟動(dòng)功能。
目前只有一個(gè)主要的行業(yè)組織專注于為處理器和嵌入式處理器的啟動(dòng)完整性制定商用標(biāo)準(zhǔn):可信計(jì)算組織(TCG)。這個(gè)國(guó)際行業(yè)聯(lián)盟包括許多最大的操作系統(tǒng)和處理器提供商;TCG聯(lián)盟致力于創(chuàng)建一個(gè)通用的非專有標(biāo)準(zhǔn),以提高用戶計(jì)算環(huán)境的“信任”級(jí)別。該小組顯著推進(jìn)了提高運(yùn)行時(shí)代碼執(zhí)行完整性的事業(yè)。
TCG 開(kāi)發(fā)了一種稱為“可信平臺(tái)模塊”(TPM)[1] 的通用標(biāo)準(zhǔn),用于監(jiān)控系統(tǒng)內(nèi)的運(yùn)行內(nèi)核,包括啟動(dòng)階段和操作階段。還指定了移動(dòng)信任模塊 (MTM)。TPM 旨在對(duì)加載的操作系統(tǒng)映像進(jìn)行數(shù)字簽名,并確定在啟動(dòng)階段或其他階段是否存在任何篡改。TPM 標(biāo)準(zhǔn)的最新版本有一些零星的采用和規(guī)范,尤其是在政府系統(tǒng)中[2]。
使用商用開(kāi)放標(biāo)準(zhǔn)通常是實(shí)現(xiàn)新特性和功能的最具成本效益的方法,盡管并不總是最安全或防篡改的。軍事客戶傾向于采用強(qiáng)大的縱深防御方法來(lái)實(shí)現(xiàn)分層安全和冗余,這通常與開(kāi)放標(biāo)準(zhǔn)的成本效益目標(biāo)背道而馳。
“安全”對(duì)產(chǎn)品的真正含義
當(dāng)CPU Tech的工程師談?wù)撉度胧较到y(tǒng)中的“安全啟動(dòng)”時(shí),他們將其定義為具有多級(jí)加密的完全加密的啟動(dòng)文件,由安全工程師在受控環(huán)境中實(shí)施。這涉及配置設(shè)備,使其僅從可通過(guò)唯一硬件 ID 與安全處理器匹配的加密文件啟動(dòng)。此過(guò)程保護(hù)引導(dǎo)代碼和其中的任何專有信息,通過(guò)專用的內(nèi)部安全處理器管理引導(dǎo)過(guò)程以防止代碼篡改,并遵循安全操作系統(tǒng)的引導(dǎo)加載程序準(zhǔn)則來(lái)約束未知的配置狀態(tài)。安全啟動(dòng)的這些元素如圖 2 所示。
圖2:安全啟動(dòng)系統(tǒng)的分離元素
最終目標(biāo):更安全的系統(tǒng)
正如系統(tǒng)架構(gòu)師所熟知的那樣,安全啟動(dòng)本身并不是目標(biāo)。安全啟動(dòng)功能的目的是設(shè)計(jì)一個(gè)更安全的整體系統(tǒng),其中初始化過(guò)程和操作代碼本身受到保護(hù),不會(huì)被篡改和反向工程。沒(méi)有一個(gè)系統(tǒng)是萬(wàn)無(wú)一失的,因此在嵌入式系統(tǒng)設(shè)計(jì)中使用術(shù)語(yǔ)“安全啟動(dòng)”時(shí),我們應(yīng)該謹(jǐn)慎和明智。
作者主張嵌入式技術(shù)提供商和工程師將描述符“數(shù)字簽名引導(dǎo)文件”、“加密引導(dǎo)”、“引導(dǎo)代碼身份驗(yàn)證”和“可信引導(dǎo)加載程序”指定為需求和系統(tǒng)規(guī)范中的單獨(dú)功能。此外,安全性極高的系統(tǒng)的購(gòu)買者可能希望更詳細(xì)地指定引導(dǎo)功能。這將避免當(dāng)前圍繞術(shù)語(yǔ)“安全啟動(dòng)”的混淆,該術(shù)語(yǔ)現(xiàn)在是一個(gè)抽象術(shù)語(yǔ),指的是各種單點(diǎn)解決方案和功能。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19286瀏覽量
229838 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19126瀏覽量
305185
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論