1. gzyueqian
      13352868059

      嵌入式開發(fā):保護(hù)嵌入式系統(tǒng)的要素3——安全啟動(dòng)

      更新時(shí)間: 2022-01-19 14:37:35來源: 粵嵌教育瀏覽量:11157

        安全啟動(dòng)是在使用之前針對硬件驗(yàn)證代碼和圖像的過程。這個(gè)想法是系統(tǒng)不應(yīng)該信任任何代碼或圖像,直到它被驗(yàn)證為真實(shí)并且其完整性得到確認(rèn)。如前所述,系統(tǒng)應(yīng)該使用基于硬件的信任根 (RoT) 來驗(yàn)證代碼。我在職業(yè)生涯中遇到的許多系統(tǒng)只是假設(shè)其閃存中的代碼是正確的,并在處理器啟動(dòng)的那一刻開始執(zhí)行它,幾乎沒有檢查(如果有的話)。如果嵌入式開發(fā)人員想要保護(hù)他們的系統(tǒng),這是一種可以長期遵循的做法。系統(tǒng)需要安全啟動(dòng)并驗(yàn)證將要加載和執(zhí)行的所有代碼。


        從信任根引導(dǎo)


        安全啟動(dòng)可能是我們一直在討論的第一個(gè)使用基于硬件的隔離和 RoT 的元素。在第一階段,建立 RoT 的 ROM 代碼用于計(jì)算引導(dǎo)代碼內(nèi)容的哈希值并驗(yàn)證其內(nèi)容。計(jì)算出的散列通常與不可變的散列進(jìn)行比較,并且在制造過程中已“燒錄”到閃存中。初始安全啟動(dòng)階段將內(nèi)置配置信息,然后允許啟動(dòng)序列驗(yàn)證后續(xù)啟動(dòng)階段。


        例如,該階段可能會(huì)經(jīng)過并計(jì)算引導(dǎo)加載程序上的散列,并將該散列與存儲(chǔ)在閃存中的另一個(gè)散列進(jìn)行比較,以幫助在該階段建立信任。然后可以驗(yàn)證和執(zhí)行引導(dǎo)加載程序,然后在運(yùn)行應(yīng)用程序之前通過并驗(yàn)證其應(yīng)用程序映像。一個(gè)示例過程如下所示:



        安全啟動(dòng)階段


        現(xiàn)在,如你所見,安全啟動(dòng)是分階段發(fā)生的,但安全啟動(dòng)也經(jīng)常發(fā)生在隔離的內(nèi)存區(qū)域中。安全系統(tǒng)通常會(huì)首先啟動(dòng)到被認(rèn)為是安全執(zhí)行環(huán)境的內(nèi)存區(qū)域。有幾種不同的方法可以做到這一點(diǎn)。一種方法是使用多核微控制器,其中一個(gè)內(nèi)核專用于安全功能和代碼執(zhí)行,另一個(gè)內(nèi)核分配給應(yīng)用豐富的代碼。在此設(shè)置中,處理器間通信 (IPC) 用于在內(nèi)核之間進(jìn)行通信。


        或者,嵌入式開發(fā)人員可以使用單核技術(shù)將內(nèi)存和執(zhí)行環(huán)境分為安全和非安全環(huán)境。一個(gè)例子是 Arm TrustZone。使用 TrustZone,開發(fā)人員能夠指定哪些內(nèi)存區(qū)域應(yīng)該分配給安全處理,哪些不應(yīng)該。這些區(qū)域不僅包括代碼,還包括外設(shè)、閃存和 RAM 存儲(chǔ)器。應(yīng)用程序?qū)⑦\(yùn)行其執(zhí)行豐富的代碼,當(dāng)它需要調(diào)用安全功能時(shí),處理器將轉(zhuǎn)換到隔離的安全模式并允許執(zhí)行安全功能。這有助于確保如果黑客獲得對功能豐富的執(zhí)行環(huán)境的訪問權(quán)限,則無法訪問諸如私鑰、數(shù)據(jù)等安全信息。


        安全處理


        在隔離環(huán)境中使用安全啟動(dòng)時(shí),安全處理區(qū)域通常最先開始執(zhí)行。換句話說,安全啟動(dòng)操作是從安全執(zhí)行環(huán)境中執(zhí)行的,這是有道理的。一旦安全環(huán)境啟動(dòng)并運(yùn)行,將在應(yīng)用程序豐富的代碼上計(jì)算另一個(gè)哈希值,以確保其完整性和真實(shí)性。通過此檢查后,安全執(zhí)行環(huán)境將允許該代碼運(yùn)行。


        在啟動(dòng)序列中的每個(gè)點(diǎn),安全啟動(dòng)都必須驗(yàn)證下一個(gè)將要執(zhí)行的代碼或映像并驗(yàn)證其完整性。從 RoT 開始,然后通過引導(dǎo)加載程序進(jìn)入執(zhí)行映像。在多核系統(tǒng)中,甚至可能有多個(gè)圖像需要跨多個(gè)處理器進(jìn)行驗(yàn)證。



        安全啟動(dòng)不僅僅是簡單地向系統(tǒng)添加一個(gè)軟件。安全啟動(dòng)需要嵌入式開發(fā)人員仔細(xì)考慮啟動(dòng)順序并開發(fā)源自信任根的信任鏈。在系統(tǒng)啟動(dòng)時(shí),每個(gè)映像和代碼都經(jīng)過驗(yàn)證,然后才允許在系統(tǒng)上執(zhí)行。如果檢測到問題,系統(tǒng)可以停止引導(dǎo)序列,甚至可以恢復(fù)到早期已知的工作代碼版本。為了恢復(fù)代碼或?qū)⑵涓碌叫掳姹荆@需要系統(tǒng)具有安全的引導(dǎo)加載程序。

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文字幕乱码2国语自产 | 亚洲男人的天堂在线va拉文 | 日韩在线观看免费一二三区 | 亚洲高清一线视频在线播放 | 亚洲天堂精品在线 | 伊人久久婷婷综合五月97色 |