1.TEE
1.1介紹
TEE:trusted execution environment
1.2REE介紹(Rich execution Environment)
所有移動(dòng)設(shè)備都支持REE,運(yùn)行通用OS:android拌屏,ios诀豁,linux
1.3虛擬化技術(shù)實(shí)現(xiàn)的隔離
多個(gè)OS執(zhí)行在虛擬的處理器上;基于軟件的隔離蒸辆,缺乏硬件安全性世剖;hypervisor可以訪(fǎng)問(wèn)所有OS的數(shù)據(jù),進(jìn)而可以訪(fǎng)問(wèn)所有App的數(shù)據(jù)
1.4TEE(trusted execution environment)
特性:
1.受硬件保護(hù)機(jī)制:TEE隔離于REE族购,只通過(guò)特定的入口于TEE通信壳贪,并不規(guī)定某一種硬件實(shí)現(xiàn)方法
2.高性能:TEE運(yùn)行時(shí)使用CPU的全部性能
3.快速通信機(jī)制:TEE可以訪(fǎng)問(wèn)REE的內(nèi)存,REE無(wú)法訪(fǎng)問(wèn)受硬件保護(hù)的TEE內(nèi)存
4.TEE中可以同時(shí)運(yùn)行多個(gè)Trusted applicaiton(TA)
TEE軟件架構(gòu)
TEE internal APIs
TEE Internal Core API:向上提供TrustedOS的功能寝杖、與CA通信违施、TA與TA通信、安全存儲(chǔ)瑟幕、密碼學(xué)功能磕蒲、時(shí)間
其他APIs:構(gòu)建于Internal Core API之上,共享錯(cuò)誤處理和API定義規(guī)則
私有APIs:GP未定義只盹,無(wú)法通用辣往,允許產(chǎn)品的特定差異化
啟動(dòng)流程:
GP標(biāo)準(zhǔn):?jiǎn)?dòng)流程只在系統(tǒng)啟動(dòng)時(shí)執(zhí)行一次,要求啟動(dòng)流程至少建立一個(gè)信任根(RoT)殖卑,需要一些機(jī)制和方法去實(shí)現(xiàn)
一般情況下啟動(dòng)基于ROM代碼:允許其他實(shí)現(xiàn)站削、依次驗(yàn)證加載的代碼
一般情況下TEE首先啟動(dòng):阻止REE接口生效
系統(tǒng)可以實(shí)現(xiàn)一個(gè)啟動(dòng)時(shí)的TEE(完全TEE的子集)
Trusted OS首先啟動(dòng),再啟動(dòng)REE
1.5 TEE實(shí)現(xiàn):ARM TrustZone
ARM Cortex-A系列處理器及Cortex-M微處理器
創(chuàng)建了一個(gè)隔離的Secure World
REE與TEE通過(guò)SMC實(shí)現(xiàn)切換
6.開(kāi)源實(shí)現(xiàn)
除了各家私有實(shí)現(xiàn)外孵稽,ARM也有不少開(kāi)源項(xiàng)目许起,知名度較高的有:
Arm Trusted Firmware
基于ARMv8-A應(yīng)用處理器,ARM官方提供了一個(gè)開(kāi)源參考實(shí)現(xiàn)BL31菩鲜。
https://github.com/ARM-software/arm-trusted-firmware
Openvirtualization
帶有一些商業(yè)屬性的開(kāi)源項(xiàng)目园细,部分TEE實(shí)現(xiàn)只有商業(yè)版支持
http://www.openvirtualization.org/
Op-Tee
Linaro 推出的開(kāi)源TEE
https://github.com/OP-TEE
2 MesaTEE Design And Roadmap
memory safe(Mesa) trusted execution environment,支持內(nèi)存安全語(yǔ)言Rust接校,繼承了Intel SGX和ARM TrustZone等tee的設(shè)計(jì)理念:isolation and attestable integrity protection.
the full MesaTEE stack:
2.1 function-as-a-service model
2.2 hybrid memory safety:混合內(nèi)存安全
內(nèi)存安全的語(yǔ)言重寫(xiě)所有東西猛频,Rust和Go。
操作系統(tǒng)核心實(shí)用程序蛛勉,安全通信庫(kù)(如TLS庫(kù))鹿寻,身份驗(yàn)證接口等頂級(jí)關(guān)鍵系統(tǒng)組件被rust-and-go重寫(xiě),未改寫(xiě)/驗(yàn)證的組件在沙盒容器中被隔離董习,總體原則如下:
1.不安全的組件不能污染安全的組件烈和,特別是對(duì)公共api和數(shù)據(jù)結(jié)構(gòu)
2.不安全組件盡可能小,并與安全組件分離
3.不安全組件應(yīng)在部署期間明確標(biāo)記并準(zhǔn)備升級(jí)
2.3 API接口
1.Mesa TEE支持了各種TEE平臺(tái)皿淋,包括intel SGX招刹,AMD SEV,ARM TrustZone窝趣。為了統(tǒng)一平臺(tái)上的這些功能疯暑,開(kāi)發(fā)了一組TEE low-level libraries,這些庫(kù)的核心是標(biāo)準(zhǔn)庫(kù)(STD)哑舒,它獨(dú)立于特定的TEE平臺(tái)妇拯。
2.abstraction layer
提供trusted/untrusted APIs,
3.TEE foundation layer
wasm/mesaPy/
2.4 powerful和open service ecosystem
2.5 可信安全通信通道
2.6 配置的安全等級(jí)
1.unprotected
3. mesaTEE case studies
3.1 blockchain app
基于區(qū)塊鏈的隱私保護(hù)計(jì)算
性能極佳的可信任的共識(shí)
公有云上敏感數(shù)據(jù)的計(jì)算
安全多方計(jì)算
安全密鑰庫(kù)和HSM:MesaTEE密鑰庫(kù)可以保護(hù)這些密鑰和機(jī)密,類(lèi)似于硬件安全模塊(HSMs)