今天和大家一起概要認(rèn)識RISC-V可信執(zhí)行環(huán)境(TEE):Risc-V Keystone。
Keystone是一個開源框架,旨在構(gòu)建自定義的可信執(zhí)行環(huán)境(TEE)。
它提供了一個高度可編程的受信任層,位于不可信操作系統(tǒng)之下,并使用RISC-V的基本組件來實現(xiàn)。
Keystone的設(shè)計理念是,通過將隔離機(jī)制與資源管理、虛擬化和信任邊界的決定解耦,為低成本用例定制鋪平道路。
與現(xiàn)有的TEE方案相比,Keystone更加靈活和可定制,它可以獨立探索現(xiàn)有設(shè)計中的差距/權(quán)衡、快速原型化新功能要求、更短的修復(fù)周期、適應(yīng)威脅模型和特定于用途的部署。
Keystone的設(shè)計也考慮了安全性,利用硬件原語提供對TEE保證的內(nèi)置支持,例如安全引導(dǎo)、內(nèi)存隔離和認(rèn)證。
下面來一起看一下!
為什么需要Keystone?
Keystone是一個開源框架,可以讓你像搭積木一樣構(gòu)建自己的可信執(zhí)行環(huán)境(TEE)。TEE是可以在不安全的計算機(jī)環(huán)境中保護(hù)你的代碼和數(shù)據(jù)的地方。過去十年,TEE得到了快速發(fā)展,許多CPU供應(yīng)商都推出了自己的TEE。
但是每個供應(yīng)商的TEE都有自己的限制,就像你不能隨意改變積木的形狀一樣。當(dāng)你選擇一個云服務(wù)提供商或軟件開發(fā)人員時,他們可能會被鎖定在他們自己TEE的限制中,這可能不符合你的實際應(yīng)用需求。
Keystone就像一個新的積木盒,里面有各種可以構(gòu)建TEE的組件。你可以根據(jù)自己的需求,選擇使用哪些組件,構(gòu)建出符合自己需求的TEE。這樣你就可以更靈活地保護(hù)你的代碼和數(shù)據(jù),無論是在云服務(wù)器、移動電話、互聯(lián)網(wǎng)服務(wù)提供商、物聯(lián)網(wǎng)設(shè)備、傳感器還是硬件令牌上。
Keystone的設(shè)計也考慮了安全性。它有一個安全監(jiān)視器(SM)和運行時(RT)組件。SM使用硬件原語提供安全保證,例如安全引導(dǎo)、內(nèi)存隔離和認(rèn)證。RT則在飛地內(nèi)提供功能模塊,例如系統(tǒng)調(diào)用接口、標(biāo)準(zhǔn)libc支持、虛擬內(nèi)存管理和自分頁。這樣,任何飛地特定的功能都可以由RT干凈地實現(xiàn),而SM則強(qiáng)制保證硬件的安全性。
總的來說,Keystone是一個更靈活、更安全的開源框架,可以讓你構(gòu)建自定義的TEE來保護(hù)你的代碼和數(shù)據(jù)。
Keystone簡介
具有 Keystone 功能的系統(tǒng)由不同權(quán)限模式的多個組件組成。
可信硬件(Trusted Hardware) 是由可信供應(yīng)商構(gòu)建的 CPU 包,必須包含與 Keystone 兼容的標(biāo)準(zhǔn) RISC-V 內(nèi)核和信任根。硬件還可能包含可選功能,例如緩存分區(qū)、內(nèi)存加密、密碼安全的隨機(jī)源等。安全監(jiān)視器需要特定于平臺的插件來支持可選功能。
Security Monitor (SM) 是具有小型 TCB 的 M 模式軟件。SM 提供了一個接口來管理 enclave 的生命周期以及利用平臺特定的功能。SM 執(zhí)行大部分 Keystone 的安全保證,因為它管理 enclave 和不受信任的操作系統(tǒng)之間的隔離邊界。
飛地(Enclave) 是與不受信任的操作系統(tǒng)和其他飛地隔離的環(huán)境。每個飛地都有一個私有物理內(nèi)存區(qū)域,只能由飛地和 SM 訪問。每個 enclave 由一個用戶級 enclave 應(yīng)用程序eapp和一個主管級運行時組成。
Enclave Application (eapp) 是在 enclave 中執(zhí)行的用戶級應(yīng)用程序??梢詮念^開始構(gòu)建自定義 eapp,或者只在 Keystone 中運行現(xiàn)有的 RISC-V 可執(zhí)行文件。
運行時 是 S 模式軟件,它實現(xiàn)了系統(tǒng)調(diào)用、陷阱處理、虛擬內(nèi)存管理等功能。
Keystone特性
Keystone是一個基于RISC-V構(gòu)建可定制的可信執(zhí)行環(huán)境(TEEs)的開源項目,適用于各種平臺和用例。
我們的目標(biāo)是構(gòu)建一個安全可信的開源安全硬件飛地,可應(yīng)用于各種應(yīng)用和設(shè)備。
Keystone是一個基于Risc-V的開源TEE框架,在任意Risc-V處理器中,只需對硬件進(jìn)行非常小的修改即可滿足Keystone平臺框架的使用,下面就簡單介紹一下使用Keystone需要Risc-V的CPU支持哪些特性。
指令集兼容性
?Keystone 需要所有三種權(quán)限模式 (M/S/U) 來支持 Linux 機(jī)器中的動態(tài)用戶級隔離。?rv64gc-lp64d(Sv39 虛擬尋址模式)?rv32gc-ilp32d(Sv32 虛擬尋址模式)
Keystone 需要所有三種權(quán)限模式 (M/S/U) 來支持 Linux 機(jī)器中的動態(tài)用戶級隔離。這意味著 Keystone 可以支持三種不同的權(quán)限級別,即機(jī)器級(M)、系統(tǒng)級(S)和用戶級(U)。這三種權(quán)限級別可以用于創(chuàng)建和管理不同類型的隔離和安全環(huán)境。
Keystone 還支持兩種不同的虛擬尋址模式,即 Sv39 和 Sv32。這些模式是 RISC-V 架構(gòu)中的虛擬內(nèi)存系統(tǒng)的一部分,用于在虛擬內(nèi)存中管理代碼和數(shù)據(jù)。Sv39 是 64 位模式,支持 32 位應(yīng)用程序在 64 位系統(tǒng)中運行。而 Sv32 是 32 位模式,支持在 32 位系統(tǒng)中運行 32 位應(yīng)用程序。
三個軟件特權(quán)
RISC-V 具有三個軟件特權(quán)級別(按功能遞增的順序):
?用戶模式(U-mode)、?主管模式(S-mode)?機(jī)器模式(M-mode)。
處理器一次只能在其中一種特權(quán)模式下運行。
權(quán)限級別定義了正在運行的軟件在其執(zhí)行期間可以做什么。各個權(quán)限級別的常用用法如下:
?U-mode:用戶進(jìn)程?S-mode:內(nèi)核(包括內(nèi)核模塊和設(shè)備驅(qū)動程序)、管理程序?M 模式:引導(dǎo)加載程序、固件
一些嵌入式設(shè)備可能只有 M 模式或只有 M/U 模式。
M-mode 是最高特權(quán)模式,控制所有物理資源和中斷。M 模式類似于 x86 等復(fù)雜指令集計算機(jī) (CISC) ISA 中的微代碼,因為它不可中斷且不受較低模式的干擾。
Keystone 使用 M 模式運行安全監(jiān)視器 (SM),即系統(tǒng)的可信計算庫 (TCB)。
是的,M-mode 是最高特權(quán)模式,可以控制所有物理資源和中斷。它類似于 x86 等復(fù)雜指令集計算機(jī) (CISC) ISA 中的微代碼,因為它不可中斷且不受較低模式的干擾。在 RISC-V 架構(gòu)中,M-mode 是一種特權(quán)模式,可以執(zhí)行諸如內(nèi)存管理、異常處理和系統(tǒng)調(diào)用等關(guān)鍵任務(wù)。它具有對所有物理資源的完全控制權(quán),并且可以中斷其他較低模式的操作。相比之下,S-mode 和 U-mode 分別具有系統(tǒng)級和用戶級權(quán)限,并且必須通過特定的系統(tǒng)調(diào)用才能進(jìn)入 M-mode。
內(nèi)存保護(hù)
首先,RISC-V是一種開源的指令集架構(gòu)(ISA),它提供了一種靈活的方式來定義和擴(kuò)展指令集。RISC-V Priv 1.10標(biāo)準(zhǔn)引入了物理內(nèi)存保護(hù)(PMP)功能,這是一個強(qiáng)大的原語,允許在M模式下從較低的權(quán)限(U-/S模式)來控制物理內(nèi)存的訪問。
PMP通過一組控制和狀態(tài)寄存器(CSR)來實現(xiàn)。這些寄存器可以配置為允許或禁止對特定物理內(nèi)存區(qū)域的訪問。
?在U模式下,只能訪問那些由PMP配置為允許訪問的物理內(nèi)存區(qū)域。?在S模式下,可以訪問所有未被禁止的物理內(nèi)存區(qū)域。?然而,只有M模式下可以配置和更改PMP寄存器的狀態(tài)。
每個PMP條目可以由一個或多個PMP CSR定義。每個CSR都有一個特定的位模式,用于指示該CSR所控制的物理內(nèi)存區(qū)域的大小和范圍。
例如,一個PMP條目可能由兩個CSR定義,一個用于指示物理內(nèi)存區(qū)域的起始地址,另一個用于指示大小。
Keystone是一個用于構(gòu)建自定義可信執(zhí)行環(huán)境(TEE)的開源框架。它使用RISC-V作為其基本的指令集,并引入了安全監(jiān)視器(SM)和運行時(RT)組件。Keystone需要PMP來實現(xiàn)enclave的內(nèi)存隔離。
在Keystone中,SM負(fù)責(zé)執(zhí)行安全監(jiān)視功能,它使用PMP來強(qiáng)制執(zhí)行內(nèi)存訪問控制。每個enclave都有自己的隔離的物理內(nèi)存區(qū)域,這些區(qū)域只能被該enclave訪問。
RT在每個enclave內(nèi)提供功能模塊,例如系統(tǒng)調(diào)用接口、標(biāo)準(zhǔn)libc支持、虛擬內(nèi)存管理和自分頁。RT通過與SM通信來請求訪問外部資源,例如共享內(nèi)存或主機(jī)資源。
通過這種方式,Keystone能夠提供高度隔離和安全的執(zhí)行環(huán)境。
每個enclave都有自己的虛擬內(nèi)存空間,并且只能訪問由SM授權(quán)的物理內(nèi)存區(qū)域。這種設(shè)計使得在執(zhí)行敏感任務(wù)時可以確保數(shù)據(jù)的安全性和完整性。
中斷與異常
在默認(rèn)情況下,M模式是系統(tǒng)中任何中斷或異常(即陷阱)的第一個接收者,這意味著M模式對CPU調(diào)度和配置具有完全的權(quán)限。然而,M模式可以根據(jù)需要將這種控制權(quán)委派給S模式。
M模式可以使用mieCSR來禁用或啟用每個中斷。mieCSR是一個控制和狀態(tài)寄存器,可以配置為指示哪些中斷被允許或禁止。
M模式還可以通過設(shè)置陷阱委托寄存器的位(即mideleg和medeleg)將陷阱委托給S模式。Trap委托可以跳過M-mode處理程序,這樣S-mode可以快速處理頻繁的陷阱,例如頁面錯誤、系統(tǒng)調(diào)用(環(huán)境調(diào)用)等。
通過這種方式,M模式和S模式之間的協(xié)作可以優(yōu)化系統(tǒng)性能。頻繁的中斷或異??梢杂蒘模式快速處理,而M模式可以專注于更重要的任務(wù),如CPU調(diào)度和配置等。這種分權(quán)處理方式使得系統(tǒng)可以根據(jù)特定的應(yīng)用需求進(jìn)行優(yōu)化配置。
虛擬地址轉(zhuǎn)換
在RISC-V中,虛擬地址轉(zhuǎn)換是由內(nèi)存管理單元(MMU)執(zhí)行的,這一過程由兩個硬件組件組成:頁表遍歷器(PTW)和轉(zhuǎn)換后備緩沖區(qū)(TLB)。
虛擬地址轉(zhuǎn)換使用多級頁表,頁表中的頁數(shù)和頁大小取決于尋址方式。CSR(控制和狀態(tài)寄存器)確定MMU應(yīng)該使用哪種尋址模式以及哪個物理頁面包含用于開始頁表遍歷的根頁表。
在Keystone飛地中,內(nèi)存訪問保護(hù)是通過PMP(物理內(nèi)存保護(hù))實現(xiàn)的。飛地具有自己的受保護(hù)的頁表,操作系統(tǒng)無法修改。
PMP通過控制和狀態(tài)寄存器(CSR)來限制對物理內(nèi)存的訪問。每個飛地都有自己的隔離的物理內(nèi)存區(qū)域,只能被該飛地訪問。
操作系統(tǒng)無法修改飛地的頁表,因此無法通過更改頁表來進(jìn)行攻擊。這種設(shè)計提供了高度隔離和安全的執(zhí)行環(huán)境,確保了在執(zhí)行敏感任務(wù)時數(shù)據(jù)的安全性和完整性。
Keystone工作流程
這個圖片展示了開發(fā)的工作分配,主要可以分為飛地開發(fā)者和平臺開發(fā)者。
????步驟由平臺提供者執(zhí)行,需要將滿足Keystone架構(gòu)的Security Monitor部署在設(shè)備上;?飛地開發(fā)人員使用Keystone SDK 開發(fā)飛地。開發(fā)人員構(gòu)建 eapp、主機(jī)和運行時二進(jìn)制文件,并(可選)將它們打包到一個文件中 (?);?然后通過?、?和?部署在設(shè)備上;??是遠(yuǎn)程證明的流程。
SM作為跟平臺強(qiáng)相關(guān)的組件由平臺開發(fā)者提供,而飛地開發(fā)者負(fù)責(zé)Host APP、Eapp、Runtime的開發(fā)。
?平臺開發(fā)者的工作:?平臺開發(fā)者需要開發(fā)和部署滿足Keystone架構(gòu)的Security Monitor。這個組件負(fù)責(zé)監(jiān)視和管理內(nèi)存訪問權(quán)限,確保只有經(jīng)過授權(quán)的代碼和數(shù)據(jù)能夠訪問物理內(nèi)存。?平臺開發(fā)者還需要配置和管理頁表(Page Table),這是操作系統(tǒng)用來管理虛擬內(nèi)存和物理內(nèi)存之間映射的數(shù)據(jù)結(jié)構(gòu)。平臺開發(fā)者需要設(shè)置正確的頁表,以確保虛擬地址可以正確地映射到物理地址。?飛地開發(fā)人員的工作:?飛地開發(fā)人員使用Keystone SDK來開發(fā)飛地應(yīng)用程序。這個SDK提供了一套API和工具,用于構(gòu)建隔離的、安全的執(zhí)行環(huán)境。?飛地開發(fā)人員首先需要創(chuàng)建一個eapp,這是飛地應(yīng)用程序的代碼和數(shù)據(jù)的集合。eapp可以是任何類型的程序,例如一個簡單的應(yīng)用程序、一個操作系統(tǒng)或者一個安全關(guān)鍵的應(yīng)用程序。?飛地開發(fā)人員還需要開發(fā)和配置運行時(Runtime)環(huán)境。運行時環(huán)境提供了執(zhí)行eapp所需的各種服務(wù),例如內(nèi)存管理、進(jìn)程調(diào)度、輸入輸出等。?飛地開發(fā)人員可以使用Keystone SDK提供的工具來將eapp和運行時環(huán)境打包為一個可執(zhí)行的二進(jìn)制文件。這個二進(jìn)制文件可以在設(shè)備上運行,并且可以與其他飛地應(yīng)用程序隔離執(zhí)行。?部署過程:?飛地開發(fā)人員將可執(zhí)行的二進(jìn)制文件部署到設(shè)備上。部署方式可以根據(jù)設(shè)備類型和操作系統(tǒng)而有所不同,例如可以通過USB傳輸、網(wǎng)絡(luò)上傳或者直接在設(shè)備上安裝。?在設(shè)備上部署后,飛地應(yīng)用程序?qū)患虞d到內(nèi)存中,并開始執(zhí)行。每個飛地應(yīng)用程序都有自己的隔離的物理內(nèi)存區(qū)域,只能訪問自己的內(nèi)存空間,而不能訪問其他應(yīng)用程序的內(nèi)存空間。?遠(yuǎn)程證明流程:?在某些情況下,可能需要驗證飛地應(yīng)用程序的完整性和安全性。這時可以使用Keystone提供的遠(yuǎn)程證明(Remote Attestation)流程。這個流程允許第三方機(jī)構(gòu)或者用戶驗證飛地應(yīng)用程序是否符合Keystone的安全標(biāo)準(zhǔn)。?遠(yuǎn)程證明流程通常包括收集飛地應(yīng)用程序的元數(shù)據(jù)、運行時狀態(tài)和內(nèi)存內(nèi)容等信息,并將這些信息提交給驗證機(jī)構(gòu)進(jìn)行驗證。驗證機(jī)構(gòu)可以使用Keystone SDK提供的工具和分析算法來驗證這些信息的完整性和安全性。如果驗證通過,那么可以認(rèn)為飛地應(yīng)用程序是可信的。
Keystone生命周期
創(chuàng)建階段:
?申請內(nèi)存:在創(chuàng)建飛地之前,需要向系統(tǒng)申請一塊連續(xù)的內(nèi)存,這塊內(nèi)存被稱為飛地私有內(nèi)存(EPM)。EPM是飛地應(yīng)用程序的專用內(nèi)存,只能由該飛地訪問。?加載二進(jìn)制文件:在申請到EPM之后,需要將飛地的二進(jìn)制文件加載到EPM中。這個二進(jìn)制文件包括飛地的頁表(PT)、運行時(RT)和eapp。這些組件是飛地應(yīng)用程序運行所必需的。?創(chuàng)建飛地:在加載完二進(jìn)制文件之后,通過調(diào)用SM(安全監(jiān)視器)來創(chuàng)建飛地。SM使用PMP(物理內(nèi)存保護(hù))條目來隔離和保護(hù)創(chuàng)建的EPM內(nèi)存。PMP條目定義了哪些物理內(nèi)存區(qū)域是受保護(hù)的,以及哪些核可以訪問這些區(qū)域。?校驗和度量:在飛地創(chuàng)建完成后,SM將對飛地進(jìn)行校驗和度量。這個過程主要是為了驗證飛地的初始狀態(tài)是否符合預(yù)期,確保沒有惡意代碼注入或者其他安全問題。
執(zhí)行階段:
?運行和繼續(xù):在這個階段,Host可以控制一個核運行飛地。為了實現(xiàn)這個控制,SM將賦予這個核訪問EPM的PMP權(quán)限。然后,該核開始執(zhí)行飛地應(yīng)用程序。?停止和退出:運行飛地是可以隨時退出或停止的。當(dāng)停止或退出時,SM會切換核的PMP權(quán)限,確保核不再具有訪問EPM的權(quán)限,從而保持通過PMP與外界隔離。
銷毀階段:
?銷毀:Host可以隨時銷毀一個飛地。當(dāng)銷毀一個飛地時,SM會釋放相關(guān)的PMP條目,并回收EPM所占用的空閑內(nèi)存。這樣,系統(tǒng)可以重復(fù)利用這塊內(nèi)存來創(chuàng)建新的飛地。
VS TrustZone
TrustZone的關(guān)鍵核心詞匯就是隔離,這個詞匯。什么模塊都增加了一個filter,都增加了一個安全與非安的標(biāo)志位,這個真的設(shè)計蠻巧妙的。
那Risc-V的keystone方案相對于TrustZone的優(yōu)勢會有什么優(yōu)勢呢?
主要體現(xiàn)在以下幾個方面:
?內(nèi)存保護(hù):Keystone使用PMP(物理內(nèi)存保護(hù))機(jī)制來隔離和保護(hù)每個飛地的物理內(nèi)存,確保一個飛地?zé)o法訪問其他飛地的內(nèi)存空間。這種保護(hù)機(jī)制可以防止惡意代碼注入和數(shù)據(jù)泄露,提高了安全性。TrustZone雖然也提供了內(nèi)存隔離功能,但它無法像Keystone那樣提供全面的物理內(nèi)存保護(hù)。?飛地隔離:Keystone支持創(chuàng)建多個相互隔離的飛地(Zone),每個飛地都有自己的運行時環(huán)境、應(yīng)用程序和數(shù)據(jù),相互之間不受影響。這種隔離機(jī)制可以防止一個飛地發(fā)生問題時影響到其他飛地,提高了系統(tǒng)的可靠性。而TrustZone雖然也提供了隔離功能,但每個隔離區(qū)(Secure World)之間的數(shù)據(jù)和程序共享,存在潛在的安全風(fēng)險。?靈活性和可擴(kuò)展性:Keystone的架構(gòu)更為靈活和可擴(kuò)展,它支持在飛地中動態(tài)創(chuàng)建和銷毀虛擬機(jī),支持多種操作系統(tǒng)和應(yīng)用程序的部署,可以滿足不同場景的需求。而TrustZone在虛擬化方面的支持相對較弱,擴(kuò)展性也有限。?性能優(yōu)化:Keystone通過將不同的運行時環(huán)境和應(yīng)用程序部署在不同的飛地中,可以更好地利用系統(tǒng)資源,減少不必要的開銷,提高性能。而TrustZone的運行時環(huán)境是固定的,無法進(jìn)行優(yōu)化。
總體而言,Risc-V的keystone方案在內(nèi)存保護(hù)、飛地隔離、靈活性和可擴(kuò)展性以及性能優(yōu)化等方面相對于TrustZone具有優(yōu)勢。然而,需要注意的是,這些優(yōu)勢并非絕對,具體選擇哪種方案還需根據(jù)實際應(yīng)用場景和需求進(jìn)行權(quán)衡。
Keystone方案面臨的一些挑戰(zhàn)和限制
?方案的靈活性必定帶來開發(fā)者的工作量,因為需要同時在SM中進(jìn)行內(nèi)存管理和生命周期管理,也就對應(yīng)著代碼量的增加,于是風(fēng)險性就變大了。
怎么保證代碼的可靠性?對于這些關(guān)鍵部分的代碼,可以采用形式化驗證(formal verification)或靜態(tài)代碼分析(static code analysis)等方法來檢查代碼的正確性。
其次,可以采用安全的編程實踐,避免常見的安全漏洞。最后,可以通過在SM上實施訪問控制,只允許授權(quán)的實體訪問這些代碼,防止未經(jīng)授權(quán)的訪問。
?PMP段數(shù)配置有限和內(nèi)存要求連續(xù)的問題
關(guān)于PMP段數(shù)配置有限和內(nèi)存要求連續(xù)的問題,這確實可能會對系統(tǒng)部署造成挑戰(zhàn)。這可能需要系統(tǒng)設(shè)計師在實現(xiàn)時進(jìn)行適當(dāng)?shù)囊?guī)劃和優(yōu)化。例如,可以預(yù)先對系統(tǒng)內(nèi)存進(jìn)行分區(qū),并保留一些區(qū)域?qū)iT用于飛地的創(chuàng)建。同時,對于需要連續(xù)內(nèi)存的情況,可以通過預(yù)分配或動態(tài)內(nèi)存管理技術(shù)來解決。
?攻擊者通過無限創(chuàng)建飛地達(dá)到DDOS攻擊的目的
在Keystone中,飛地的創(chuàng)建和銷毀都需要經(jīng)過SM的授權(quán),并且SM會跟蹤每個飛地的狀態(tài)和資源使用情況。
Keystone本身的設(shè)計并沒有提供防止DDOS攻擊的機(jī)制。然而,可以通過其他安全機(jī)制來緩解這種攻擊風(fēng)險。
?資源限制:通過在系統(tǒng)級別或飛地級別設(shè)置資源限制(如內(nèi)存、CPU等),防止單個飛地或多個飛地過度消耗資源。這樣可以限制潛在的DDOS攻擊者利用飛地資源的程度。?訪問控制:通過嚴(yán)格的訪問控制機(jī)制,限制飛地之間的通信和交互。這樣可以防止惡意飛地通過大量請求或數(shù)據(jù)流來淹沒其他飛地或系統(tǒng)資源。?監(jiān)控和檢測:通過實時監(jiān)控系統(tǒng)的資源使用情況,及時發(fā)現(xiàn)異常流量或行為。一旦發(fā)現(xiàn)潛在的DDOS攻擊,可以采取相應(yīng)的防御措施,如限流、隔離或終止惡意飛地的運行。
?實現(xiàn)復(fù)雜性
Keystone方案需要實現(xiàn)和管理多個飛地和相應(yīng)的運行時環(huán)境,這需要復(fù)雜的內(nèi)存管理和生命周期管理機(jī)制。同時,要確保所有飛地之間的隔離和安全性,需要實現(xiàn)精細(xì)的訪問控制和驗證機(jī)制。
?有限的資源
雖然Keystone方案可以有效地隔離和保護(hù)飛地,但每個飛地仍然需要獨立的運行時環(huán)境和內(nèi)存空間。這可能導(dǎo)致有限的資源分配,特別是在內(nèi)存和處理器資源有限的情況下。
?性能開銷
Keystone方案的實現(xiàn)和管理需要一定的性能開銷。例如,在創(chuàng)建和銷毀飛地時,需要進(jìn)行內(nèi)存分配和回收、權(quán)限驗證和安全監(jiān)控等操作。這些開銷可能會影響系統(tǒng)的整體性能。
?so on
keyStone
如果你想學(xué)習(xí)了解keystone,簡單的follow下面流程或許會對你有所幫助:
?了解Riscv
關(guān)于芯片架構(gòu)、中斷與異常、內(nèi)存管理
?了解操作系統(tǒng)相關(guān)知識
進(jìn)程、中斷、驅(qū)動
?理論:keystone
【Keystone: An Open Framework for Architecting Trusted Execution Environments】[1]
【Keystone-Enclave-An-Open-Source-Secure-Enclave-for-RISC-V】[2]
?實踐:閱讀官方指導(dǎo)文檔【最好的指導(dǎo)書】
【Keystone-Getting-Started】[3]
一個新的技術(shù)的產(chǎn)生,必定是為了解決在某些方面的痛點而產(chǎn)生的,但是同時也必定會帶來一些新的痛點。我想這就是為什么,很多的項目中都需要技術(shù)專家來做技術(shù)選型,通過不同技術(shù)搭配來實現(xiàn)一個系統(tǒng)的穩(wěn)定與平衡。
-
虛擬化
+關(guān)注
關(guān)注
1文章
371瀏覽量
29790 -
開源框架
+關(guān)注
關(guān)注
0文章
32瀏覽量
9412 -
RISC-V
+關(guān)注
關(guān)注
45文章
2270瀏覽量
46129
原文標(biāo)題:keyStone
文章出處:【微信號:IP與SoC設(shè)計,微信公眾號:IP與SoC設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論