2022-01-20 13:52:15|已瀏覽:4899次
安全啟動是在使用之前針對硬件驗證代碼和圖像的過程。這個想法是系統不應該信任任何代碼或圖像,直到它被驗證為真實并且其完整性得到確認。如前所述,系統應該使用基于硬件的信任根 (RoT) 來驗證代碼。
我在職業生涯中遇到的許多系統只是假設其閃存中的代碼是正確的,并在處理器啟動的那一刻開始執行它,幾乎沒有檢查(如果有的話)。如果嵌入式開發人員想要保護他們的系統,這是一種可以長期遵循的做法。系統需要安全啟動并驗證將要加載和執行的所有代碼。
從信任根引導安全啟動可能是我們一直在討論的第一個使用基于硬件的隔離和 RoT 的元素。在第一階段,建立 RoT 的 ROM 代碼用于計算引導代碼內容的哈希值并驗證其內容。計算出的散列通常與不可變的散列進行比較,并且在制造過程中已“燒錄”到閃存中。
初始安全啟動階段將內置配置信息,然后允許啟動序列驗證后續啟動階段。例如,該階段可能會經過并計算引導加載程序上的散列,并將該散列與存儲在閃存中的另一個散列進行比較,以幫助在該階段建立信任。然后可以驗證和執行引導加載程序,然后在運行應用程序之前通過并驗證其應用程序映像。
安全啟動階段在隔離環境中使用安全啟動時,安全處理區域通常最先開始執行。換句話說,安全啟動操作是從安全執行環境中執行的,這是有道理的。一旦安全環境啟動并運行,將在應用程序豐富的代碼上計算另一個哈希值,以確保其完整性和真實性。通過此檢查后,安全執行環境將允許該代碼運行。在啟動序列中的每個點,安全啟動都必須驗證下一個將要執行的代碼或映像并驗證其完整性。從 RoT 開始,然后通過引導加載程序進入執行映像。在多核系統中,甚至可能有多個圖像需要跨多個處理器進行驗證。
安全啟動不僅僅是簡單地向系統添加一個軟件。安全啟動需要嵌入式開發人員仔細考慮啟動順序并開發源自信任根的信任鏈。在系統啟動時,每個映像和代碼都經過驗證,然后才允許在系統上執行。如果檢測到問題,系統可以停止引導序列,甚至可以恢復到早期已知的工作代碼版本。為了恢復代碼或將其更新到新版本,這需要系統具有安全的引導加載程序。注:尊重原創文章,轉載請注明出處和鏈接 http://www.hebeijilong.cn/news-id-16913.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注嵌入式開發頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050