能夠驗證軍事和其他應用中使用的系統(tǒng)的完整性以確保它們沒有被修改或損壞至關重要。當然,最好防止系統(tǒng)被篡改。如果無法做到這一點,則檢測篡改至關重要。在許多情況下,如果您不能確定系統(tǒng)未被修改,最好阻止系統(tǒng)運行。在所有情況下,保護系統(tǒng)上的信息,尤其是加密密鑰等關鍵機密至關重要。
操作系統(tǒng)級別的各種工具有助于確保軟件的完整性。其中包括存儲加密、軟件包的加密簽名、文件的校驗和以及用于檢查系統(tǒng)的工具。但是,可以做些什么來確保底層系統(tǒng)沒有受到損害 - 驗證硬件,BIOS和其他固件以及引導加載程序?如果檢測到問題,該怎么辦?
讓我們考慮一下使用硬件信任根可以做什么,以及 Linux 操作系統(tǒng)中的最新發(fā)展,這些開發(fā)提供了底層系統(tǒng)完整性的視圖。
第一個因素是LUKS,這是Linux內置的強大而安全的存儲加密功能。LUKS 對從磁盤驅動器到 USB 驅動器、SD 卡甚至網(wǎng)絡存儲的所有內容進行加密。LUKS 在卷級別加密,Linux 系統(tǒng)可以配置為單個卷或單個驅動器上的多個獨立卷。這為配置和保護嵌入式系統(tǒng)上的信息提供了相當大的靈活性和功能。
LUKS 的用例之一是加密系統(tǒng)驅動器。完成此操作后,必須提供LUKS密碼才能引導系統(tǒng)。對于筆記本電腦等系統(tǒng),這通常通過輸入密碼來完成。網(wǎng)絡綁定磁盤加密 (NBDE) 是一種新的 Linux 軟件包,它使用網(wǎng)絡服務或硬件信任根來提供 LUKS 密鑰來引導系統(tǒng)。
NBDE 是一個靈活的加密框架,它使用各種引腳或加密引擎來加密和解密 LUKS 密鑰等機密。NBDE 旨在擴展,目前支持兩個引腳:網(wǎng)絡唐服務器和 TPM 2.0 硬件信任根??梢蚤_發(fā)其他引腳,例如系統(tǒng)集成商可能會實現(xiàn)支持 CAC 卡的 NBDE 引腳。(作為旁注,開源Linux社區(qū)歡迎提交NBDE的其他引腳。NBDE 還實施了允許組合多個引腳的策略。
帶有 TPM2 的 NBDE 是沒有安全網(wǎng)絡連接的遠程位置嵌入式系統(tǒng)的不錯選擇。這可確保僅當操作系統(tǒng)磁盤位于具有正確配置的 TPM2 模塊的系統(tǒng)中并且已綁定到該 TPM2 模塊時,系統(tǒng)才會啟動。
下一個要考慮的元素是安全啟動。這是在 UEFI 固件中實現(xiàn)的,并要求引導加載程序和操作系統(tǒng)使用已知且批準的軟件密鑰進行簽名,然后才能允許系統(tǒng)引導。安全啟動是確保操作系統(tǒng)有效的好工具。行業(yè)標準安全啟動密鑰通常安裝在出廠時的 UEFI 固件中。這些鍵可以按原樣使用,可以添加自定義鍵,也可以刪除標準鍵,并且僅使用自定義鍵。
安全啟動是一種有效的工具,應使用。但是,安全啟動無法驗證底層硬件、固件或安全啟動本身是否正在運行。這就是 TPM2 和測量啟動發(fā)揮作用的地方。測量的引導有時稱為受信任的引導。
測量的引導在多個級別工作。TPM2 模塊包含一組 24 個平臺配置寄存器或 PCR。 軟件(如 UEFI 固件)使用 SHA-256 等算法進行哈希處理,哈希存儲在 PCR 中。但是,哈希不會直接寫入 PCR。相反,哈希使用 TPM2 中的加密操作擴展到 PCR 中。多個測量可以組合成一個PCR。PCR中的最終值取決于每個文件的哈希值和文件的評估順序。這個過程是確定性的,給定一組文件和一個測量順序,你每次都會得到相同的結果。這些測量和擴展操作可以在 TPM 外部復制 - 您可以提前確定 PCR 中的最終值應該是多少。
測量啟動按一系列操作更新 PCR:一個非常低級別的軟件例程(本質上是硬件的一部分)測量 UEFI 固件和選項 rom,例如 NIC 和存儲控制器。UEFI 固件測量主引導記錄和引導加載程序。引導加載程序測量內核和相關文件。然后,其他工具(如 Linux 完整性測量體系結構 (IMA))可以測量系統(tǒng)的其余部分。測量可以包括文件和配置。其中 8 個 PCR 寄存器已預定義供系統(tǒng)使用,8 個寄存器可供應用定制使用。
TPM和PCR模型旨在使未經(jīng)檢測就無法修改PCR測量,并且在不檢測的情況下很難干擾測量過程。
PCR測量可用于多種目的,包括系統(tǒng)完整性的本地和遠程證明。它們還可用于 TPM 內部的密封操作。在 TPM 密封中,TPM 保護的機密進一步受到 TPM 策略的保護,該策略在解密機密之前根據(jù)批準的值檢查 PCR 值。
舉個具體的例子,使用 NBDE,您可以根據(jù) PCR 0、2 和 7 密封 LUKS 密碼。這將測量 UEFI BIOS (PCR0)、系統(tǒng)中其他設備上的固件 (PCR2) 和安全啟動 (PCR7)。僅當 UEFI 固件未修改、其他設備固件未修改且仍啟用安全啟動時,才會提供 LUKS 密碼。請注意,這些檢查是在 TPM 內部完成的。這些測量可確保固件未損壞,并且未添加任何 rootkit。雖然不是絕對的保護,但它顯著提高了系統(tǒng)的完整性。
在此示例中,無需接觸 TPM 即可輕松更新操作系統(tǒng)和應用程序。固件仍然可以更新 - 這需要使用新值重新密封 TPM。
不應在倉庫甚至工廠級維護之外更改的安全軍事系統(tǒng)可以更嚴格地鎖定,也許使用多個PCR和其他因素,例如連接到網(wǎng)絡服務;傳感器陣列必須通信才能有用,因此這可能是一種合理的方法。
可以使用此處描述的方法保護任何機密。加密密鑰可以直接從 TPM2 加載到內存中,然后在不再需要時立即擦除;它們沒有理由保留在磁盤上。并且可以通過發(fā)出TPM_reset命令立即擦除整個TPM。
審核編輯:郭婷
-
嵌入式
+關注
關注
5083文章
19131瀏覽量
305544 -
Linux
+關注
關注
87文章
11310瀏覽量
209621 -
操作系統(tǒng)
+關注
關注
37文章
6834瀏覽量
123350
發(fā)布評論請先 登錄
相關推薦
評論