那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是TrustZone?TrustZone是如何實現(xiàn)安全隔離的

Linux閱碼場 ? 來源:洛奇看世界 ? 作者:guyongqiangx ? 2022-12-05 09:27 ? 次閱讀

1. TrustZone介紹

1.1 安全背景

在介紹 TrustZone 前有必要簡單回顧下目前的一些安全手段。

CPU 通過內(nèi)存映射手段給每個進程營造一個單獨的地址空間來隔離多個進程的代碼和數(shù)據(jù),通過內(nèi)核空間和用戶空間不同的特權(quán)級來隔離操作系統(tǒng)和用戶進程的代碼和數(shù)據(jù)。但由于內(nèi)存中的代碼和數(shù)據(jù)都是明文,容易被同處于內(nèi)存中的其它應(yīng)用偷窺,因此出現(xiàn)了擴展的安全模塊,應(yīng)用將加密數(shù)據(jù)送往安全模塊,由安全模塊處理完后再返回結(jié)果給相應(yīng)的應(yīng)用。

很多消費電子設(shè)備都使用擴展的安全模塊來確保數(shù)據(jù)安全,目前常見的方式有:

外部掛接硬件安全模塊

數(shù)據(jù)的處理交由外部的安全模塊實現(xiàn),這些模塊能夠保護自己的資源和密鑰等數(shù)據(jù)的安全,如 SIM 卡、各種智能卡或連接到外部的硬件加解密模塊等,但其同主芯片通信線路暴露在外部,容易被監(jiān)聽破解。另外,通信的速率比較低。

內(nèi)部集成硬件安全模塊

將外部安全模塊的功能集成到芯片內(nèi),因此一個芯片上至少有兩個核:一個普通核和一個安全核。優(yōu)點是核與核之間的通信在芯片內(nèi)部實現(xiàn),不再暴露在外面。缺點是核之間的通信速度仍然較低,而且單獨的安全核性能有限,還會會占用 SoC 面積,成本較高。

1.2 TrustZone 是個什么鬼?

TrustZone 是 ARM 針對消費電子設(shè)備設(shè)計的一種硬件架構(gòu),其目的是為消費電子產(chǎn)品構(gòu)建一個安全框架來抵御各種可能的攻擊。

TrustZone 在概念上將 SoC 的硬件和軟件資源劃分為安全(Secure World)和非安全(Normal World)兩個世界。

所有需要保密的操作在安全世界執(zhí)行(如指紋識別、密碼處理、數(shù)據(jù)加解密、安全認證等),其余操作在非安全世界執(zhí)行(如用戶操作系統(tǒng)、各種應(yīng)用程序等),安全世界和非安全世界通過一個名為 Monitor Mode 的模式進行轉(zhuǎn)換,如圖1:

d54b06e0-7430-11ed-8abf-dac502259ad0.png

圖1. ARM的安全世界和非安全世界

處理器架構(gòu)上,TrustZone 將每個物理核虛擬為兩個核,一個非安全核(Non-secure Core, NS Core),運行非安全世界的代碼;和另一個安全核(Secure Core),運行安全世界的代碼。

兩個虛擬的核以基于時間片的方式運行,根據(jù)需要實時占用物理核,并通過 Monitor Mode 在安全世界和非安全世界之間切換,類似同一CPU下的多應(yīng)用程序環(huán)境,不同的是多應(yīng)用程序環(huán)境下操作系統(tǒng)實現(xiàn)的是進程間切換,而 Trustzone 下的 Monitor Mode 實現(xiàn)了同一 CPU 上兩個操作系統(tǒng)間的切換。

AMBA3 AXI(AMBA3Advanced eXtensible Interface)系統(tǒng)總線作為 TrustZone 的基礎(chǔ)架構(gòu)設(shè)施,提供了安全世界和非安全世界的隔離機制,確保非安全核只能訪問非安全世界的系統(tǒng)資源,而安全核能訪問所有資源,因此安全世界的資源不會被非安全世界(或普通世界)所訪問。

設(shè)計上,TrustZone 并不是采用一刀切的方式讓每個芯片廠家都使用同樣的實現(xiàn)。總體上以 AMBA3 AXI 總線為基礎(chǔ),針對不同的應(yīng)用場景設(shè)計了各種安全組件,芯片廠商根據(jù)具體的安全需求,選擇不同的安全組件來構(gòu)建他們的 TrustZone 實現(xiàn)。

其中主要的組件有:

必選組件

AMBA3 AXI總線,安全機制的基礎(chǔ)設(shè)施

虛擬化的ARM Core,虛擬安全和非安全核

TZPC (TrustZone Protection Controller),根據(jù)需要控制外設(shè)的安全特性

TZASC (TrustZone Address Space Controller),對內(nèi)存進行安全和非安全區(qū)域劃分和保護

可選組件

TZMA (TrustZone Memory Adapter),片上ROMRAM安全區(qū)域和非安全區(qū)域的劃分和保護

AXI-to-APB bridge,橋接 APB 總線,配合 TZPC 使 APB 總線外設(shè)支持 TrustZone 安全特性

除了以上列出的組件外,還有諸如 Level 2 Cache Controller, DMA Controller, Generic Interrupt Controller等。

邏輯上,安全世界中,安全系統(tǒng)的OS提供統(tǒng)一的服務(wù),針對不同的安全需求加載不同的安全應(yīng)用 TA(Trusted Application)。例如:針對某具體 DRM 的 TA,針對 DTCP-IP 的 TA,針對 HDCP 2.0驗證的 TA 等。

圖2是一個 ARM 官網(wǎng)對 TrustZone 介紹的應(yīng)用示意圖:

d566eacc-7430-11ed-8abf-dac502259ad0.png

基于TrustZone的應(yīng)用

圖2. 基于 TrustZone 的應(yīng)用示意圖

圖中左邊藍色部分 Rich OS Application Environment(REE)表示用戶操作環(huán)境,可以運行各種應(yīng)用,例如電視或手機的用戶操作系統(tǒng),圖中右邊綠色部分 Trusted Execution Envrionment(TEE)表示系統(tǒng)的安全環(huán)境,運行 Trusted OS,在此基礎(chǔ)上執(zhí)行可信任應(yīng)用,包括身份驗證、授權(quán)管理、DRM認證等,這部分隱藏在用戶界面背后,獨立于用戶操作環(huán)境,為用戶操作環(huán)境提供安全服務(wù)。

可信執(zhí)行環(huán)境(TEE, Trusted Execution Environment) 是 Global Platform(GP)提出的概念。對應(yīng)于 TEE 還有一個 REE(Rich Execution Environment)概念,分別對應(yīng)于安全世界(Secure World)和非安全世界(Non-secure World, Normal World)。

GlobalPlatform(GP) 是跨行業(yè)的國際標準組織,致力于開發(fā)、制定并發(fā)布安全芯片的技術(shù)標準,以促進多應(yīng)用產(chǎn)業(yè)環(huán)境的管理 及其安全、可互操作的業(yè)務(wù)部署。目標是創(chuàng)建一個標準化的基礎(chǔ)架構(gòu), 加快安全應(yīng)用程序及其關(guān)聯(lián)資源的部署,如數(shù)據(jù)和密鑰,同時保護安全應(yīng)用程序及其關(guān)聯(lián)資源免受軟件方面的攻擊。

2. TrustZone 原理和設(shè)計

以下主要從 TrustZone 的總線設(shè)計,CPU 設(shè)計(包括處理器模型、內(nèi)存模型和中斷模型)和安全隔離機制來介紹 TrustZone 的設(shè)計和工作原理

2.1 總線設(shè)計

總線

設(shè)計上,TrustZone 在系統(tǒng)總線上針對每一個信道的讀寫增加了一個額外的控制信號位,這個控制位叫做 Non-Secure 或者 NS 位,是 AMBA3 AXI 總線針對 TrustZone 作出的最重要、最核心的擴展設(shè)計。

這個控制信號針對讀和寫分別叫做 ARPORT[1] 和 AWPORT[1]:

ARPROT[1]: 用于讀操作(Read transaction), 低表示 Secure, 高表示 Non-Secure

AWPROT[1]: 用于寫操作(Write transaction), 低表示 Secure,高表示 Non-Secure

總線上的所有主設(shè)備(master)在發(fā)起新的操作(transaction)時會設(shè)置這些信號,總線或從設(shè)備(slave)上解析模塊會對主設(shè)備發(fā)起的信號進行辨識,來確保主設(shè)備發(fā)起的操作在安全上沒有違規(guī)。

例如:硬件設(shè)計上,所有非安全世界的主設(shè)備(Non-Secure masters)在操作時必須將信號的NS位置高,而NS位置高又使得其無法訪問總線上安全世界的從設(shè)備(Secure Slaves),簡單來說就是對非安全世界主設(shè)備發(fā)出的地址信號進行解碼時在安全世界中找不到對應(yīng)的從設(shè)備,從而導(dǎo)致操作失敗。

NS控制信號在 AMBA3 AXI 總線規(guī)范中定義。可以將其看作為原有地址的擴展位,如果原有32位尋址,增加NS可以看成是33位尋址,其中一半的32位物理尋址位于安全世界,另一半32位物理尋址位于非安全世界。

當然,非安全世界的主設(shè)備嘗試訪問安全世界的從設(shè)備會引發(fā)訪問錯誤,可能是 SLVERR(slave error)或者 DECERR(decode error),具體的錯誤依賴于其訪問外設(shè)的設(shè)計或系統(tǒng)總線的配置。

外設(shè)

在 TrustZone 出現(xiàn)前,ARM 的外設(shè)基于 AMBA2 APB (Advanced Peripheral Bus)總線協(xié)議,但是 APB 總線上不存在類似 AXI 總線上的 NS 控制位。

為了兼容已經(jīng)存在的 APB 總線設(shè)計,AMBA3 規(guī)范中包含了 AXI-to-APB bridge 組件,這樣就確保基于 AMBA2 APB 的外設(shè)同 AMBA3 AXI的系統(tǒng)兼容。AXI-to-APB bridge 負責(zé)管理 APB 總線設(shè)備的安全事宜,其會拒絕不合理的安全請求,保證這些請求不會被轉(zhuǎn)發(fā)到相應(yīng)的外設(shè)。

例如:新一代的芯片可以通過增加 AXI-to-APB bridge 組件來沿用上一代芯片的設(shè)計來使其外圍設(shè)備可以支持 TrustZone。

2.2 處理器設(shè)計

2.2.1 處理器模型

TrustZone 中,每個物理處理器核被虛擬為一個安全核(Secure)和一個非安全核(Non-Secure),安全核運行安全世界的代碼,非安全核運行除安全世界外的其它代碼。

由于安全世界和非安全世界的代碼采用時間片機制輪流運行在同一個物理核上,相應(yīng)的節(jié)省了一個物理處理器核。

多核處理器上,也有建議說讓將某一個或幾個核指定為安全專用核,只運行安全系統(tǒng)代碼來構(gòu)建安全世界,其余核運行非安全代碼,暫不清楚目前有哪些平臺采用這個實現(xiàn)。

圖3中,系統(tǒng)有4個物理核,每個又分為兩個虛擬核(安全核和非安全核)的情況:

d5812914-7430-11ed-8abf-dac502259ad0.png

圖3. 多核處理器上的安全核和非安全核

2.2.2 L1內(nèi)存模型

MMU

MMU 是一種硬件電路,它包含兩類部件,一類是分段部件,一類是分頁部件,對應(yīng)于內(nèi)存管理的分段機制和分頁機制。分段機制把一個邏輯地址轉(zhuǎn)換為線性地址;接著,分頁機制把一個線性地址轉(zhuǎn)換為物理地址。

當 CPU 訪問一個虛擬地址時,這個虛地址被送到MMU翻譯,硬件首先把它和TLB中的所有條目同時(并行地)進行比較,如果它的虛頁號在 TLB 中,并且訪問沒有違反保護位,它的頁面會直接從 TLB 中取出而不去訪問頁表,從而提高地址轉(zhuǎn)換的效率。

安全世界和非安全世界都有自己的虛擬 MMU,各自管理物理地址的映射。實際上只是兩個世界都有一份 TTBR0、TTBR1、TTBCR 寄存器,因此就會對應(yīng)兩個MMU表。

盡管 MMU 有兩套,但 TBL 緩存硬件上只有一套,因此 TBL 對于兩個世界來說是共享的,其通過NS位來標志其每一項具體屬于哪一個世界。這樣在兩個世界間進行切換時不再需要重新刷新 TLB,提高執(zhí)行效率。

對于 TLB 共享并不是硬性規(guī)定的,部分芯片在兩個世界間切換時可能通過硬件部分或全部刷新 TLB。

Cache

同 TLB 類似,硬件上兩個世界共享一套 Cache,具體的 Cache 數(shù)據(jù)屬于哪一個世界也由其 NS 位指定,在世界間切換也不需要刷新 Cache。

2.2.3 中斷模型

基于 TrustZone 的處理器有三套異常向量表:

一套用于非安全世界

一套用于安全世界

還有一套用于 Monitor 模式

與之前非 TrustZone 的處理器不同的是,這三套中斷向量表的基地址在運行時可以通過 CP15 的寄存器 VBAR(Vector Base Address Register)進行修改。

復(fù)位時,安全世界的中斷向量表由處理器的輸入信號 VINITHI 決定,沒有設(shè)置時為 0x00000000,有設(shè)置時為 0xFFFF0000;非安全世界和 Monitor 模式的中斷向量表默認沒有設(shè)置,需要通過軟件設(shè)置后才能使用。

默認情況下,IRQ 和 FIQ 異常發(fā)生后系統(tǒng)直接進入 Monitor 模式,由于 IRQ 是絕大多數(shù)環(huán)境下最常見的中斷源,因此 ARM 建議配置 IRQ 作為非安全世界的中斷源,F(xiàn)IQ 作為安全世界的中斷源。這樣配置有兩個優(yōu)點:

當處理器運行在非安全世界時,IRQ 直接進入非安全世界的處理函數(shù);如果處理器運行在安全世界,當 IRQ 發(fā)生時,會先進入到 Monitor 模式,然后跳到非安全世界的 IRQ 處理函數(shù)執(zhí)行

僅將 FIQ 配置為安全世界的中斷源,而 IRQ 保持不變,現(xiàn)有代碼僅需做少量修改就可以滿足

將 IRQ 設(shè)置為非安全世界的中斷源時系統(tǒng) IRQ 的切換見圖4:

d59bef92-7430-11ed-8abf-dac502259ad0.png

圖4. IRQ作為非安全世界的中斷源

2.2.4 系統(tǒng)模式切換

基于 TrustZone 的系統(tǒng)有三種狀態(tài),安全世界、非安全世界和用于二者切換的 Monitor Mode。

協(xié)處理器 CP15 的寄存器 SCR(Secure Configuration Register)有一個 NS 位用于指示當前處理器位于哪一個世界,該寄存器在非安全世界是不能訪問的。

當 CPU 處于 Monitor Mode 時,無論 NS 位是 0 還是 1,處理器都是在安全世界運行代碼。

因此 Monitor Mode 下總是安全世界,但如果此時 NS 為 1,訪問 CP15 的其它寄存器獲取到的是其在非安全世界的值。

非安全世界到Monitor模式的切換

處理器從非安全世界進入 Monitor Mode 的操作由系統(tǒng)嚴格控制,而且所有這些操作在 Monitor Mode 看來都屬于異常。從非安全世界到 Monitor Mode 的操作可通過以下方式觸發(fā):

軟件執(zhí)行 SMC (Secure Monitor Call)指令

硬件異常機制的一個子集(換而言之,并非所有硬件異常都可以觸發(fā)進入 Monitor Mode),包括:

IRQ

FIQ

external Data Abort

external Prefetch Abort

Monitor Mode

Monitor Mode 內(nèi)執(zhí)行的代碼依賴于具體的實現(xiàn),其功能類似于進程切換,不同的是這里是不同模式間 CPU 狀態(tài)切換。

軟件在 Monitor Mode 下先保存當前世界的狀態(tài),然后恢復(fù)下一個世界的狀態(tài)。操作完成后以從異常返回的方式開始運行下一個世界的代碼。

為什么安全模式和非安全模式不能直接切換?

非安全世界無權(quán)訪問 CP15 的 SCR 寄存器,所以無法通過設(shè)置NS來直接切換到安全世界,只能先轉(zhuǎn)換到 Monitor Mode,再到安全世界。

如果軟件運行在安全世界(非Monitor Mode)下,通過將 CP15 的 NS 位設(shè)置 1,安全世界可以直接跳轉(zhuǎn)到非安全世界,由于此時 CPU 的流水線和寄存器還遺留了安全世界的數(shù)據(jù)和設(shè)置,非安全模式下的應(yīng)用可以獲取到這些數(shù)據(jù),會有極大的安全風(fēng)險。因此,只建議在 Monitor Mode 下通過設(shè)置 NS 位來切換到非安全模式。

綜上,安全世界和非安全世界不存在直接的切換,所有切換操作都通過 Monitor Mode 來執(zhí)行。

圖5展現(xiàn)了安全世界和非安全世界之間的切換方式:

d5b71f88-7430-11ed-8abf-dac502259ad0.png

圖5. 安全世界和非安全世界之間的切換

2.3 隔離機制

除了 CPU 執(zhí)行時實行安全世界和非安全世界的隔離外,AMBA3 AXI 總線提供了外設(shè)隔離的基礎(chǔ)。

2.3.1 內(nèi)存隔離機制

這里的內(nèi)存指外部的 DDR 和片上的 ROM 以及 SRAM,其隔離和保護通過總線組件 TZASC 和 TZMA 的設(shè)置來實現(xiàn)。

TZASC (TrustZone Address Space Controller)

TZASC 可以把外部 DDR 分成多個區(qū)域,每個區(qū)域可以單獨配置為安全或非安全區(qū)域,非安全世界的代碼和應(yīng)用只能訪問非安全區(qū)域。TZASC 只能用于內(nèi)存設(shè)備,不適合用于配置塊設(shè)備,如 Nand Flash。

TZMA (TrustZone Memory Adapter)

TZMA 可以把片上 ROM 和 SRAM 隔離出安全和非安全區(qū)域。TZMA 最大可以將片上存儲的低 2MB 配置為安全區(qū)域,其余部分配置為非安全區(qū)域。大小劃分上,片上安全區(qū)域可以在芯片出廠前設(shè)置為固定大小,或運行時通過 TZPC 動態(tài)配置。TZMA 使用上有些限制,其不適用于外部內(nèi)存劃分,而且也只能配置一個安全區(qū)域。

2.3.2 外設(shè)隔離機制

外設(shè)上,基于 APB 總線的設(shè)備不支持 AXI 總線的 NS 控制信號,所以 AXI 到 APB 總線需要 AXI-to-APB bridge 設(shè)備連接,除此之外,還需要TZPC (TrustZone Protection Controller) 來向 APB 總線上的設(shè)備提供類似 AXI 上的 NS 控制信號。

由于 TZPC 可以在運行時動態(tài)設(shè)置,這就決定了外設(shè)的安全特性是動態(tài)變化的,例如鍵盤平時可以作為非安全的輸入設(shè)備,在輸入密碼時可以配置為安全設(shè)備,只允許安全世界訪問。

2.3.3 隔離機制示意圖

整個系統(tǒng)內(nèi)存和外設(shè)隔離機制示意圖見圖6.d5bd419c-7430-11ed-8abf-dac502259ad0.png

圖6. 系統(tǒng)內(nèi)存和外設(shè)隔離機制示意圖

此圖來源于網(wǎng)上,實際上 TZPC 還連接到片內(nèi)的 ROM/RAM 設(shè)備上,用于配置片上存儲的安全區(qū)域。

2.4 安全啟動

AMBA3 AXI 總線機制隔離出安全世界和非安全世界,但這是系統(tǒng)啟動之后的事情。如何確保系統(tǒng)本身是安全的呢?這就涉及到系統(tǒng)啟動的過程。

系統(tǒng)上電復(fù)位后,先從安全世界開始執(zhí)行。安全世界會對非安全世界的 bootloader 進行驗證,確保非安全世界執(zhí)行的代碼經(jīng)過授權(quán)而沒有被篡改過。然后非安全世界的 bootloader 會加載非安全世界的 OS,完成整個系統(tǒng)的啟動。

在非安全系統(tǒng)的 bootloader 加載 OS 時,仍然需要安全世界對 OS 的代碼進行驗證,確保沒有被篡改。

圖7是典型的 TrustZone 芯片的啟動流程:

d5cd5118-7430-11ed-8abf-dac502259ad0.png

圖7. 典型的 TruestZone 芯片啟動流程

整個啟動流程跟目前博通平臺的安全啟動原理基本一致,上電后安全芯片先啟動,然后校驗主芯片的 bootloader,接下來 bootloader 提交系統(tǒng)的 OS 和文件系統(tǒng)給 BSP 進行校驗,通過后加載主系統(tǒng),確保主系統(tǒng)是安全的。

從上電復(fù)位開始的整個啟動過程中,下一級的安全基于上一級的驗證,最終依賴于芯片內(nèi)置的 OTP 和安全硬件,逐級的驗證構(gòu)成了整個系統(tǒng)的信任鏈。信任鏈中的某一個環(huán)節(jié)被破壞,都會導(dǎo)致整個系統(tǒng)不安全。

3. 各家 TrustZone 實現(xiàn)

基于安全考慮,各家 TrustZone 都實行閉源,關(guān)于其實現(xiàn)細節(jié)的介紹都較少。

網(wǎng)上能找到少許關(guān)于高通方案上 TrustZone 的介紹:

安全世界 QSEE (Qualcomm Secure Execution Environment)

非安全世界 HLOS (High Level OS)

整個系統(tǒng)的架構(gòu)如圖8:

d5dc6482-7430-11ed-8abf-dac502259ad0.png

圖8. 高通QSEE系統(tǒng)架構(gòu)圖

4. 其它

ARMv8-A 架構(gòu)定義了四個異常等級,分別為 EL0到 EL3,其中數(shù)字越大代表特權(quán)(privilege)越大:

EL0: 無特權(quán)模式(unprivileged)

EL1: 操作系統(tǒng)內(nèi)核模式(OS kernel mode)

EL2: 虛擬機監(jiān)視器模式(Hypervisor mode)

EL3: TrustZone monitor mode

d5f0b112-7430-11ed-8abf-dac502259ad0.png

TrustZone 設(shè)計的相關(guān)方

ARM 公司,定義 TrustZone 并實現(xiàn)硬件設(shè)計,TEE,TZAPI

芯片廠家,在具體芯片上實現(xiàn) TrustZone 設(shè)計,包括三星、高通、MTK、TI、ST、華為等

應(yīng)用提供方,如 DRM 廠家和安全應(yīng)用開發(fā)商,實現(xiàn) DRM、Playready、DTCP-IP 和一些其它安全應(yīng)用開發(fā)和認證

Trust OS

TEE 環(huán)境下也要有一個操作系統(tǒng),各家都有自己的 Trustzone 的操作系統(tǒng)。如 Trustonic、高通的 QSEE、國內(nèi)的豆莢,還有開源的 OPTEE 和 Trusty 等。

在操作系統(tǒng)之上自然要有應(yīng)用程序,在 Trustzone 里面我們一般叫 TrustApp,當然 TEE 里面每個 TrustApp 都在一個沙盒里,互相之間是隔離的。

比如說支付,就可以做成一個 App(需要注意的是,和 Normal Worl d里面的 App 是兩個概念),這個 App 簡單來說就負責(zé)用私鑰把網(wǎng)上發(fā)來的 Challenge 簽個名,而這個簽名的動作是需要在 Secure World 里面做的,避免惡意程序竊取到私鑰來偽造簽名。

例如支付寶,其實支付寶也是只支持幾個 Trust OS 的。同時,支付寶還定義了一系列標準,用來完成他的行為。

現(xiàn)在的 Trust OS 大都會遵循 GlobalPlatform 的規(guī)范,這個組織致力于制定統(tǒng)一的 Trust OS 的 API 的接口規(guī)范,這樣一個 TrustApp 只要用 GP API,就可以方便移植到各個不同的 TEE 操作系統(tǒng)上了。

Intel 平臺的 SGX

針對可信計算,類似 ARM 的 TrustZone,Intel 也針對 x86 平臺提出了自己的安全架構(gòu) SGX:

Intel Software Guard Extensions (Intel SGX)

https://software.intel.com/zh-cn/sgx-sdk

SGX 全稱 Intel Software Guard Extensions,顧名思義,其是對因特爾體系(IA)的一個擴展,用于增強軟件的安全性。

這種方式并不是識別和隔離平臺上的所有惡意軟件,而是將合法軟件的安全操作封裝在一個 enclave 中,保護其不受惡意軟件的攻擊,特權(quán)或者非特權(quán)的軟件都無法訪問 enclave。

也就是說,一旦軟件和數(shù)據(jù)位于 enclave 中,即便操作系統(tǒng)或者和 VMM(Hypervisor)也無法影響 enclave 里面的代碼和數(shù)據(jù)。

Enclave 的安全邊界只包含 CPU 和它自身。SGX 創(chuàng)建的 enclave 也可以理解為一個可信執(zhí)行環(huán)境 TEE。不過其與 ARM TrustZone(TZ)還是有一點小區(qū)別的,TZ 中通過 CPU 劃分為兩個隔離環(huán)境(安全世界和正常世界),兩者之間通過 SMC 指令通信;而 SGX 中一個 CPU 可以運行多個安全 enclaves,并發(fā)執(zhí)行亦可。

簡單來講, Intel SGX 最關(guān)鍵的優(yōu)勢在于將程序以外的 software stack如 OS 和 BIOS 都排除在了 TCB(Trusted Computing Base)以外。換句話說,就是在容器 enclave 里的 code 只信任自己和 Intel 的 CPU。

網(wǎng)上有人是這樣對比 TrustZone 和 SGX 的:

Trustzone 默認相信 SecureOS,安全世界。SGX 僅相信 CPU core,通過 SGX 指令構(gòu)建 enclave容器。簡單比喻,TEE 是個公用大保險柜,什么東西都裝進去,有漏洞的 app 可能也進去了,而且保險柜鑰匙在管理員手上,必須相信管理員。SGX 每個 app 有自己的保險柜,鑰匙在自己手上

SGX 要進入工業(yè)界應(yīng)用尚需時間,一個重要的問題是現(xiàn)在在 Intel 發(fā)行的服務(wù)器芯片上還沒有 SGX,而 SGX 的重要應(yīng)用就是在數(shù)據(jù)中心和云端的應(yīng)用。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • SIM卡
    +關(guān)注

    關(guān)注

    6

    文章

    285

    瀏覽量

    28958
  • SoC芯片
    +關(guān)注

    關(guān)注

    1

    文章

    617

    瀏覽量

    35044
  • trustzone
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    12565

原文標題:一篇了解TrustZone

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    embOS如何支持Arm TrustZone

    通過ARMv8-M架構(gòu)支持的TrustZone技術(shù),可以將關(guān)鍵安全固件和私有程序(如安全引導(dǎo)、固件更新和密鑰)與其余應(yīng)用程序隔離,極大降低被攻擊的可能性,增加嵌入式系統(tǒng)
    發(fā)表于 09-22 12:16 ?505次閱讀
    embOS如何支持Arm <b class='flag-5'>TrustZone</b>

    TrustZone結(jié)構(gòu)化消息是什么?

    大家好,我已閱讀任何與TrustZone相關(guān)的內(nèi)容,但我無法弄清楚這兩個世界是如何相互溝通的。我所能找到的只是TrustZone API規(guī)范中的內(nèi)容:客戶端和服務(wù)可以通過兩種機制進行通信:結(jié)構(gòu)化
    發(fā)表于 03-20 08:58

    介紹Cortex-A和Cortex-M的TrustZone之間的差異

    就開始引入TrustZone,到Armv7-A和Armv8-A把trustzone作為架構(gòu)的可選的安全擴展。雖然TrustZone做架構(gòu)的可選擴展,但是所有的Cortex-A的CPU都
    發(fā)表于 07-13 14:45

    Arm架構(gòu)中的TrustZone、CryptoCell以及Cryptoisland之間的區(qū)別是什么

    TrustZone是Arm架構(gòu)的一個安全擴展,現(xiàn)在Armv7-A、Armv8-A,以及Armv8-M都是支持的,實現(xiàn)CPU時可以選擇是否實現(xiàn)這個安全
    發(fā)表于 07-14 14:15

    了解體系結(jié)構(gòu)-適用于AArch64的TrustZone介紹

    在本指南中,我們介紹了TrustZoneTrustZone通過內(nèi)置在CPU中的硬件強制隔離,提供了一種高效的全系統(tǒng)安全方法。 我們介紹了Trust
    發(fā)表于 08-10 07:02

    STM32 MCU TrustZone開發(fā)調(diào)試技巧分享

    系統(tǒng)隔離與ARM V8-M TrustZone技術(shù)、TrustZone地址安全區(qū)及資源安全屬性配置、Tr
    發(fā)表于 09-05 06:16

    ARM 架構(gòu)中TrustZone 安全處理技術(shù)的研究

    對基于 ARMv6 架構(gòu)的全新TrustZone 安全處理技術(shù)進行了研究,著重從該技術(shù)的實現(xiàn)原理、運行模式和軟硬件支持等方面,論證TrustZone 技術(shù)
    發(fā)表于 08-28 11:23 ?18次下載

    TrustZone是怎樣保護片上代碼的機密性的?

    STM32L5基于Cortex-M33 內(nèi)核,其內(nèi)核基于ARMV8-M架構(gòu),自帶有TrustZone安全技術(shù),從內(nèi)核到整個芯片系統(tǒng),實現(xiàn)安全區(qū)域和非
    的頭像 發(fā)表于 06-15 15:59 ?1364次閱讀
    <b class='flag-5'>TrustZone</b>是怎樣保護片上代碼的機密性的?

    基于LPC55xxx CM33核的TrustZone原理與應(yīng)用

    基本的安全保障。本文基于CM33核的LPC55sxx系列開發(fā)板,MCUXpresso IDE v11.1.1_3241集成開發(fā)工具。二:實現(xiàn)原理2.1:區(qū)域劃分TrustZone將內(nèi)存和外設(shè)分為
    發(fā)表于 12-05 15:51 ?13次下載
    基于LPC55xxx CM33核的<b class='flag-5'>TrustZone</b>原理與應(yīng)用

    RA6快速設(shè)計指南 [8] 使用TrustZone?

    7 使用TrustZone 7.1 Arm TrustZone 技術(shù)的實現(xiàn) 某些RA6 MCU(如RA6M4和RA6M5)包含Arm TrustZone (TZ)
    的頭像 發(fā)表于 06-19 15:25 ?721次閱讀
    RA6快速設(shè)計指南 [8] 使用<b class='flag-5'>TrustZone</b>?

    IOT物聯(lián)網(wǎng)安全TrustZone與SE安全芯片的關(guān)系

    選型滿足自己安全要求的技術(shù)為迷茫。本文主要介紹,在IOT領(lǐng)域里安全芯片和TrustZone的關(guān)系。■■安全芯片SE和TrustZone到底什
    的頭像 發(fā)表于 04-04 10:57 ?1921次閱讀
    IOT物聯(lián)網(wǎng)<b class='flag-5'>安全</b>:<b class='flag-5'>TrustZone</b>與SE<b class='flag-5'>安全</b>芯片的關(guān)系

    Arm? TrustZone? 技術(shù)簡介

    ,不同廠家芯片可能不同需要參考對應(yīng)的手冊。 二.TrustZone介紹 Arm TrustZone 技術(shù)是Armv8-M 架構(gòu)一個可選的架構(gòu)擴展。 其核心思想就是樸素的硬件隔離思想,系統(tǒng)和軟件劃分為
    的頭像 發(fā)表于 07-04 08:44 ?3297次閱讀
    Arm? <b class='flag-5'>TrustZone</b>? 技術(shù)簡介

    如何實現(xiàn)TrustZone的可信執(zhí)行環(huán)境來支持隱私計算呢?

    TrustZone技術(shù)是ARM公司開發(fā)的一種系統(tǒng)安全擴展技術(shù)。TrustZone技術(shù)的主要目標是保證嵌入式系統(tǒng)的安全,防止系統(tǒng)中的敏感數(shù)據(jù)發(fā)生安全
    的頭像 發(fā)表于 07-25 16:15 ?1911次閱讀
    如何<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>TrustZone</b>的可信執(zhí)行環(huán)境來支持隱私計算呢?

    調(diào)試TrustZone時,如何處理HardFault?

    調(diào)試TrustZone時,如何處理HardFault?
    的頭像 發(fā)表于 09-27 16:33 ?758次閱讀
    調(diào)試<b class='flag-5'>TrustZone</b>時,如何處理HardFault?

    STM32 TrustZone 開發(fā)調(diào)試技巧

    電子發(fā)燒友網(wǎng)站提供《STM32 TrustZone 開發(fā)調(diào)試技巧.pdf》資料免費下載
    發(fā)表于 12-18 11:16 ?2次下載
    STM32 <b class='flag-5'>TrustZone</b> 開發(fā)調(diào)試技巧
    工布江达县| 百家乐分析概率原件| 百家乐官网娱乐网址| 静安区| 大发888娱乐城打发888打发8| 免费百家乐计划| 新天地百家乐的玩法技巧和规则 | 威尼斯人娱乐上网导航| 太阳城申博| 娱乐城免费领取体验金| 宣化县| 绥阳县| 盈乐博| 佳豪国际| 博彩公司评级| 凯时百家乐官网技巧| 百家乐官网的保单打法| 百家乐官网作弊知识| 喜力百家乐官网的玩法技巧和规则| 百家乐保单详图| 百家乐新台第二局| 真人百家乐赌场娱乐网规则| 大发888 打法888游戏| 大发888娱乐场骗局| 太保市| 淘金百家乐官网现金网| 永利百家乐官网现金网| 澳门百家乐官网有赢钱的吗| 全迅网百家乐官网的玩法技巧和规则 | 网页百家乐官网| 百家乐官网塑料扑克牌盒| 沙龙百家乐官网代理| 广发百家乐的玩法技巧和规则 | 大发888免费下载| 盐边县| 真人百家乐官网ea平台| 墨尔本百家乐官网的玩法技巧和规则| 高额德州扑克视频| 百家乐官网游戏的玩法| 中国百家乐官网技巧软件| 真人百家乐网西陆|