- 區(qū)塊鏈架構之美:從比特幣、以太坊、超級賬本看區(qū)塊鏈架構設計
- 何昊編著
- 956字
- 2021-07-23 17:31:11
1.13 可信執(zhí)行環(huán)境
可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE)是CPU內的一個安全區(qū)域,運行在一個獨立的環(huán)境中,并且與操作系統(tǒng)并行運行。CPU確保TEE中代碼和數據的機密性和完整性都得到保護。TEE作為隔離的執(zhí)行環(huán)境提供安全性功能,如隔離執(zhí)行。一般而言,TEE通過同時使用硬件和軟件來保護數據和代碼,TEE比操作系統(tǒng)更加安全。在TEE中運行的受信任應用程序可以訪問設備主處理器和內存的全部功能,硬件隔離負責保護這些組件不受主操作系統(tǒng)中運行的用戶安裝應用程序的影響。
TEE具有自身的執(zhí)行空間,它所能訪問的軟硬件資源與操作系統(tǒng)是分離的。TEE為授權安全軟件或可信安全軟件(Trust App)提供了安全的執(zhí)行環(huán)境,保護了其數據和資源的保密性、完整性和訪問權限。TEE在啟動時為了保證整個系統(tǒng)的安全,從系統(tǒng)引導啟動開始逐步驗證以保證TEE平臺的完整性。當設備加電后,TEE首先加載ROM中的安全引導程序,并利用根密鑰驗證其完整性。然后,該引導程序進入TEE初始化階段并啟動TEE內置的安全操作系統(tǒng),逐級核查安全操作系統(tǒng)啟動過程中的各個階段的關鍵代碼以保證安全操作系統(tǒng)的完整性,同時防止未授權或經過惡意篡改的軟件的運行。安全操作系統(tǒng)啟動后,運行非安全世界的引導程序并啟動普通操作系統(tǒng)。至此基于信任鏈,TEE完成了整個系統(tǒng)的安全啟動,能夠有效抵御TEE啟動過程中的非法篡改、代碼執(zhí)行等惡意行為。
目前的TEE在不同CPU上有不同的實現方案,在Intel的CPU上實現TEE的技術方案叫SGX,全稱為Intel Software Guard Extension,在ARM架構的CPU上實現TEE的技術方案叫TrustZone,但是由于ARM架構的開放性,各大廠商在進行定制的時候會采用不同的方案,如高通的QSEE、華為的TEE OS等。
TEE與普通操作系統(tǒng)之間的接口稱為TEE Client API,在2010年GlobalPlatform對其進行了標準化,可信應用程序與可信操作系統(tǒng)之間的互操作接口(TEE Internal API)在2011年完成了標準化。
在區(qū)塊鏈場景下,使用TEE的模塊主要集中在智能合約、預言機、共識模塊和數字錢包中。智能合約和預言機期望通過使用TEE來保證數據的安全性和隱私性,如在螞蟻鏈中利用TEE技術將合約引擎和必要的交易處理及密碼學運算單元集成封裝在TEE中,配合安全協(xié)議流程達到隱私保護的目的,具體隱私保護結構如圖1-9所示。在共識模塊中,則期望通過TEE對特定信息的保護來加速共識流程,如浙江大學百人計劃研究員劉健提出的FastBFT就使用了TEE來加速實用拜占庭共識算法。在數字錢包中,則利用TEE實現密鑰的生成與安全存儲。

圖1-9 螞蟻鏈中的隱私保護結構
- Microsoft Exchange Server PowerShell Cookbook(Third Edition)
- Functional Programming in JavaScript
- CouchDB and PHP Web Development Beginner’s Guide
- 精通Python自然語言處理
- Learning Three.js:The JavaScript 3D Library for WebGL
- Linux Device Drivers Development
- Serverless computing in Azure with .NET
- Python+Tableau數據可視化之美
- 代替VBA!用Python輕松實現Excel編程
- Hadoop 2.X HDFS源碼剖析
- Python開發(fā)基礎
- 計算機應用基礎(第二版)
- Web前端開發(fā)技術:HTML、CSS、JavaScript
- Kotlin進階實戰(zhàn)
- Extending Docker