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