一種特別陰險的惡意軟件形式是通過rootkit(或bootkit)攻擊注入系統(tǒng)的固件,因為它在操作系統(tǒng)啟動之前加載并且可以隱藏普通的反惡意軟件。Rootkit 也很難檢測和刪除。防御 rootkit 攻擊的一種方法是使系統(tǒng)能夠使用安全啟動設(shè)備,該設(shè)備旨在檢測預(yù)操作系統(tǒng)環(huán)境中的未授權(quán)固件。
使用硬件信任根進(jìn)行安全啟動至關(guān)重要,因為它可以在威脅加載到系統(tǒng)之前保護(hù)系統(tǒng)免受威脅。安全引導(dǎo)過程僅允許系統(tǒng)使用制造商信任的軟件引導(dǎo)。什么使安全啟動安全?安全引導(dǎo)有兩個主要方面:
? 安全引導(dǎo)加載程序存儲在不可變的內(nèi)存中 - 換句話說,它無法更改
? 安全引導(dǎo)加載程序在系統(tǒng)內(nèi)執(zhí)行第一階段固件引導(dǎo)加載程序之前對其進(jìn)行身份驗證,以驗證它是否已由受信任的原始設(shè)備制造商 (OEM) 簽名。
讓我們研究一下安全啟動,以及如何在支持安全啟動的嵌入式和 PC 平臺中將嵌入式控制器用作主啟動加載程序(即信任根)。
嵌入式控制器
嵌入式控制器長期以來一直是個人計算機(jī) (PC) 移動平臺的一部分,包括筆記本電腦、上網(wǎng)本和平板電腦。嵌入式控制器也是服務(wù)器、工業(yè)、電信和工業(yè)領(lǐng)域嵌入式設(shè)計不可或缺的一部分。當(dāng)今的嵌入式控制器具有高度可配置性,OEM 使用它為其系統(tǒng)實現(xiàn)差異化功能,包括待機(jī)電源排序、熱監(jiān)控、風(fēng)扇控制和電池充電。
嵌入式控制器還用作系統(tǒng)中的信任根或信任錨,以支持安全啟動。圖 1 顯示了系統(tǒng)及其基本組件的示例。
系統(tǒng)中可能有許多嵌入式處理器用于執(zhí)行固件。任何執(zhí)行可在系統(tǒng)中更新的固件的處理器都必須經(jīng)過固件身份驗證,然后才能允許運(yùn)行。嵌入式控制器安全引導(dǎo)加載程序是存儲在ROM中的不可變代碼,是系統(tǒng)中執(zhí)行的第一個代碼。它負(fù)責(zé)驗證和執(zhí)行存儲在系統(tǒng)閃存中的 OEM 第一階段固件引導(dǎo)加載程序。
由于 OEM 第一階段引導(dǎo)加載程序駐留在閃存中,并且可以在系統(tǒng)中更新,因此此代碼不能被視為不可變或信任根。在支持安全啟動的系統(tǒng)中執(zhí)行之前,必須對其進(jìn)行身份驗證。安全啟動可防止惡意或未經(jīng)授權(quán)的代碼在系統(tǒng)中執(zhí)行。一旦系統(tǒng)完全運(yùn)行并且主 CPU 正在執(zhí)行代碼,它就可以使用本地受信任的平臺模塊或遠(yuǎn)程服務(wù)器來驗證或證明硬件平臺的完整性。
系統(tǒng)啟動順序
當(dāng)系統(tǒng)通電時,不可變的安全啟動加載程序初始化嵌入式控制器子系統(tǒng),然后加載并驗證存儲在系統(tǒng)閃存中的 OEM 固件。OEM 固件通過驗證下一層固件(如系統(tǒng) BIOS)來維護(hù)信任鏈,配置系統(tǒng)并啟動使系統(tǒng)退出重置的過程。每一層固件都對下一層進(jìn)行身份驗證,直到安全啟動過程完成。引導(dǎo)過程完成后,主系統(tǒng) CPU 將從重置中釋放并開始執(zhí)行操作系統(tǒng)。
UEFI(統(tǒng)一可擴(kuò)展固件接口規(guī)范)是廣泛接受的標(biāo)準(zhǔn),用于描述固件啟動順序和系統(tǒng)操作系統(tǒng)之間的接口。
安全啟動身份驗證
安全啟動是在執(zhí)行之前對系統(tǒng)中的所有固件或軟件進(jìn)行身份驗證的操作。惡意軟件的一種形式是通過 rootkit 攻擊注入系統(tǒng)的固件,它可以取代 OEM 的第一階段固件引導(dǎo)加載程序并隱藏反惡意軟件,加載正常操作系統(tǒng),沒有任何跡象表明存在任何問題并且無法檢測到(參見圖 2a)。
圖 2a:UEFI 引導(dǎo)序列示例。
圖 2b:具有硬件信任錨的 UEFI 啟動序列示例。
Microchip的嵌入式控制器是固件信任根。它的工作是驗證 OEM 第一階段引導(dǎo)加載程序的數(shù)字簽名。OEM 的第一階段引導(dǎo)加載程序?qū)Φ诙A段固件加載程序進(jìn)行身份驗證,后者又將驗證要在系統(tǒng)中運(yùn)行的下一個固件或軟件代碼。這稱為信任鏈。嵌入式控制器安全引導(dǎo)加載程序是鏈中的第一個環(huán)節(jié),稱為信任錨。
數(shù)字簽名
數(shù)字簽名
提供兩個功能:完整性檢查和身份驗證。使用數(shù)字簽名的公鑰預(yù)配的信任根或信任錨可以驗證固件映像是否是 OEM 批準(zhǔn)的代碼映像,以便在系統(tǒng)中使用。
若要創(chuàng)建數(shù)字簽名,OEM 首先生成滿足所選簽名算法(如 RSA-2048 或橢圓曲線)要求的非對稱密鑰對。消息(即代碼消息)通過散列算法(例如SHA-384)進(jìn)行處理,并使用私鑰進(jìn)行簽名(參見圖3)。
為了驗證數(shù)字簽名,消息(即代碼圖像)通過用于對圖像進(jìn)行簽名的相同哈希算法進(jìn)行處理。數(shù)字簽名使用生成的非對稱公鑰與簽名期間提供的公鑰進(jìn)行比較進(jìn)行驗證。如果兩個結(jié)果相同,則圖像的真實性已經(jīng)過驗證,表明消息未被更改,并且與最初簽名的消息相同(請參閱圖 4)。
圖 4:驗證數(shù)字簽名。
Microchip的嵌入式控制器安全引導(dǎo)加載程序
Microchip最近宣布推出一款新的支持加密技術(shù)的微控制器(MCU),即帶有Soteria-G2定制固件的CEC1712 MCU,旨在阻止rootkit攻擊為從外部串行外設(shè)接口(SPI)閃存啟動的系統(tǒng)注入的惡意惡意軟件。
Microchip嵌入式控制器安全引導(dǎo)加載程序是指存儲在EC只讀存儲器(ROM)中的固件,該固件執(zhí)行用于加載、驗證和執(zhí)行配置和打開系統(tǒng)電源的 OEM 第一階段引導(dǎo)加載程序的受信任代碼。
Microchip的嵌入式控制器被假定為可信的(即信任錨)。Microchip的嵌入式控制器引導(dǎo)ROM負(fù)責(zé)加載、驗證和執(zhí)行存儲在外部SPI閃存中的OEM引導(dǎo)固件,同時保持系統(tǒng)復(fù)位。根據(jù)設(shè)計,嵌入式控制器是平臺中第一個上電的組件。安全引導(dǎo)加載程序(在ROM中硬編碼)使系統(tǒng)的其余部分處于復(fù)位狀態(tài),直到它加載并驗證負(fù)責(zé)初始化系統(tǒng)、電源排序和使系統(tǒng)退出復(fù)位的OEM應(yīng)用程序固件。
首次通電時,應(yīng)用處理器和更高級別的組件將保持復(fù)位狀態(tài),直到嵌入式控制器啟動 ROM 加載、驗證并執(zhí)行 OEM 啟動固件(參見圖 5)。
圖 5:系統(tǒng)中 Microchip 的嵌入式控制器。
OEM 使用簽名映像對外部 SPI 閃存進(jìn)行編程。映像使用 OEM 的私鑰、SHA-384 哈希算法和橢圓曲線數(shù)字簽名算法 (ECDSA) 進(jìn)行簽名。使用的橢圓曲線是NIST標(biāo)準(zhǔn)的P-384橢圓曲線。OEM 必須始終對此密鑰保密。OEM 在嵌入式控制器的 OTP(一次性可編程)存儲器中對用于驗證簽名的公鑰進(jìn)行編程。嵌入式控制器安全引導(dǎo)加載程序使用存儲在 OTP 中的 ECDSA 公鑰對 OEM 固件映像進(jìn)行身份驗證,作為嵌入式控制器安全啟動序列的一部分。
嵌入式控制器安全啟動順序
下面總結(jié)了Microchip在多個器件(包括CEC1712)中實現(xiàn)的嵌入式控制器安全啟動序列:
1. 在POR或芯片復(fù)位后,RSMRST#引腳為三態(tài),并在外部拉低以保持系統(tǒng)復(fù)位。
2. 嵌入式控制器引導(dǎo)ROM初始化設(shè)備(即采樣帶,清除內(nèi)存等)。
3. 嵌入式控制器引導(dǎo) ROM 執(zhí)行安全引導(dǎo)加載程序,用于驗證 SPI 閃存映像的 ECDSA 簽名。
4. 如果映像加載成功(成功 = 有效真實映像),啟動 ROM 將保護(hù)設(shè)備(例如,清除加密內(nèi)存、鎖定密鑰等)并跳轉(zhuǎn)到固件應(yīng)用程序代碼(即 OEM 啟動代碼)。
5. 如果映像未成功加載(即簽名檢查失?。?,引導(dǎo) ROM 將保護(hù)設(shè)備(例如,清除加密內(nèi)存、鎖定密鑰等)并等待 POR 事件。系統(tǒng)無法引導(dǎo)。
隨著 5G 蜂窩基礎(chǔ)設(shè)施的快速增長、不斷增長的網(wǎng)絡(luò)和數(shù)據(jù)中心支持不斷擴(kuò)展的云計算,開發(fā)人員需要新的方法來確保操作系統(tǒng)保持安全和不受影響。
Microchip在其功能齊全的CEC1712 Arm? Cortex-M4?微控制器上推出的新型Soteria-G2定制固件,可為從外部SPI閃存啟動的操作系統(tǒng)提供預(yù)啟動模式下的硬件信任根保護(hù)的安全啟動。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19259瀏覽量
229649 -
控制器
+關(guān)注
關(guān)注
112文章
16332瀏覽量
177803 -
嵌入式
+關(guān)注
關(guān)注
5082文章
19104瀏覽量
304796
發(fā)布評論請先 登錄
相關(guān)推薦
評論