1. gzyueqian
      13352868059

      嵌入式開發(fā):深入挖掘 ARMv8-M 的 TrustZone

      更新時(shí)間: 2022-03-21 10:42:26來源: 粵嵌教育瀏覽量:9927

        TrustZone 旨在幫助從事資源受限設(shè)備的嵌入式開發(fā)人員改進(jìn)其安全架構(gòu)。它為開發(fā)人員提供了一種容器化和隔離軟件的方法,同時(shí)仍提供 Cortex-M 處理器所期望的特性,例如低中斷延遲。TrustZone 將內(nèi)存、處理域和應(yīng)用程序分成兩個(gè)獨(dú)立的域 — 安全和非安全,有時(shí)也分別稱為可信應(yīng)用程序和用戶應(yīng)用程序。


        用戶域包含用戶應(yīng)用程序、RTOS、設(shè)備驅(qū)動(dòng)程序、協(xié)議棧和通用外圍設(shè)備等項(xiàng)目。用戶域的行為與當(dāng)今典型的 Cortex-M 應(yīng)用程序完全相同。事實(shí)上,開發(fā)人員可以使用禁用 TrustZone 的 TrustZone 處理器,他們不會(huì)注意到任何差異。不過,這會(huì)破壞整個(gè)目的。安全域包含幾個(gè)旨在保護(hù)系統(tǒng)的項(xiàng)目,例如安全啟動(dòng)、安全存儲(chǔ)、加密庫,甚至 RTOS 任務(wù)和內(nèi)核代碼。這些項(xiàng)目肯定存在于當(dāng)今的用戶應(yīng)用程序中。但是有了 TrustZone,他們現(xiàn)在能夠在沒有明確這樣做的情況下以不再直接訪問的狀態(tài)存在。


        第一次使用 TrustZone 的開發(fā)人員會(huì)發(fā)現(xiàn),即使是軟件的開發(fā)方式也不同。開發(fā)人員現(xiàn)在需要將他們的應(yīng)用程序分成兩個(gè)獨(dú)立的應(yīng)用程序,而不是使用單個(gè)代碼項(xiàng)目:固件項(xiàng)目和用戶項(xiàng)目。固件項(xiàng)目包含應(yīng)用程序的所有安全代碼,并將駐留在安全內(nèi)存位置。外部世界或用戶應(yīng)用程序無法訪問這些內(nèi)存位置,除非嵌入式開發(fā)人員專門在其代碼中創(chuàng)建安全網(wǎng)關(guān)以公開安全功能。不過,重要的是要知道,安全區(qū)域可以完全訪問所有內(nèi)存位置。這意味著,如果為安全域編寫的軟件計(jì)劃訪問不太安全的用戶應(yīng)用程序空間中的數(shù)據(jù)或固件,則需要非常小心。


        用戶應(yīng)用程序是標(biāo)準(zhǔn)的,是目前每個(gè) Cortex-M 開發(fā)人員都習(xí)慣的類型。如前所述,用戶應(yīng)用程序受限于它可以訪問的內(nèi)存位置、功能和外圍設(shè)備。如果需要執(zhí)行安全功能,用戶應(yīng)用程序可以通過安全網(wǎng)關(guān)調(diào)用安全域。如果用戶應(yīng)用程序嘗試訪問任何其他安全內(nèi)存區(qū)域,則會(huì)導(dǎo)致錯(cuò)誤。這可以防止錯(cuò)誤的用戶程序隨機(jī)訪問安全內(nèi)存或以任何方式對(duì)其進(jìn)行操作。



        TrustZone 應(yīng)用程序首先在安全域中執(zhí)行。開發(fā)人員從他們的安全啟動(dòng)應(yīng)用程序開始,并可以啟動(dòng)他們的處理器。一旦完成,執(zhí)行可以從安全狀態(tài)切換到用戶狀態(tài)并開始執(zhí)行用戶代碼。


        當(dāng)處理器從用戶狀態(tài)切換到安全狀態(tài)時(shí),硬件處理轉(zhuǎn)換,開發(fā)人員無需添加代碼。相反,編譯器會(huì)自動(dòng)添加一條 CPU 指令,指示切換到安全狀態(tài)。在兩種狀態(tài)之間切換的最壞情況確定性開銷是三個(gè)時(shí)鐘周期。根據(jù)應(yīng)用程序,如果嵌入式開發(fā)人員正在進(jìn)行函數(shù)調(diào)用并且需要驗(yàn)證函數(shù)參數(shù)或測試在域之間傳遞的指針,則開銷可能會(huì)更大。


        當(dāng)開發(fā)人員第一次遇到 Cortex-M 的 TrustZone 時(shí),他們會(huì)發(fā)現(xiàn)他們編寫應(yīng)用程序的方式將永遠(yuǎn)改變。他們實(shí)際上必須設(shè)置兩個(gè)應(yīng)用程序,其中一個(gè)將存在于用戶域中,另一個(gè)存在于安全域中。當(dāng)存在提高系統(tǒng)安全性的機(jī)會(huì)時(shí),必須以不同的方式開發(fā)軟件不一定是壞事。開發(fā)人員需要仔細(xì)考慮他們的應(yīng)用程序架構(gòu),并確保他們正確地識(shí)別他們的軟件和數(shù)據(jù)應(yīng)該存在的領(lǐng)域。TrustZone 是嵌入式開發(fā)人員可以用來提高系統(tǒng)安全性的工具。但只有通過正確使用,任何系統(tǒng)都會(huì)變得更加安全。

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

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

      
      

      1. 中字幕久久国产精品免费 | 亚洲欧美另类中文字幕 | 亚洲日韩精品欧美国产动漫第一页 | 日本久久久久中文视频字幕 | 在线不卡日本v一区二区 | 欧美国产激情一区二区 |