TEE(Trusted Execution Environment)简介
TEE(Trusted Execution Environment),可信執(zhí)行環(huán)境,該環(huán)境可以保證不被常規(guī)操作系統(tǒng)干擾的計算,因此稱為”可信”。這是通過創(chuàng)建一個可以在TrustZone的”安全世界”中獨立運行的小型操作系統(tǒng)實現(xiàn)的,該操作系統(tǒng)以系統(tǒng)調(diào)用(由TrustZone內(nèi)核直接處理)的方式直接提供少數(shù)的服務。另外,TrustZone內(nèi)核可以安全加載并執(zhí)行小程序”Trustlets”,以便在擴展模型中添加”可信”功能。Trustlets程序可以為不安全(普通世界)的操作系統(tǒng)(如Android)提供安全的服務。
TEE通常用于運行關(guān)鍵的操作:(1)、移動支付:指紋驗證、PIN碼輸入等;(2)、機密數(shù)據(jù):私鑰、證書等的安全存儲;(3)、內(nèi)容包括:DRM(數(shù)字版權(quán)保護)等。
TEE已經(jīng)成為生物識別設備的標配:使用TEE來隔離指紋的采集、存儲、驗證等過程。即使手機被越獄或Root,攻擊者也無法獲取指紋數(shù)據(jù)。
TEE內(nèi)部運行一個完整的操作系統(tǒng),與REE(如Android)隔離運行,TEE與REE通過共享內(nèi)存進行交互:OS間/應用間。
TEE內(nèi)部也分為內(nèi)核態(tài)與用戶態(tài),TEE的用戶態(tài)可以運行多個不同的安全應用(TA)。
TEE包含:Secure SO+ 中間件 + 安全應用 + 外部交互。
TEE三層架構(gòu):TA(Trusted Application)層:可信錢包、TUI;TEE層:安全操作系統(tǒng),對上層TA提供的庫;硬件層:CPU狀態(tài)隔離、內(nèi)存隔離、外設隔離,如下圖:
TEE并不僅僅是指紋保護,指紋目前是TEE推廣的強大動力,解鎖、手機支付是主要應用場景。
TEE并不僅僅在手機端,從手機端到云端都有TEE:ARM:TrustZone; X86: VT-x和SGX。TEE并不是全新的概念,本質(zhì)就是一種基于硬件的隔離。
TEE并不是100%都安全,關(guān)于TEE的CVE開始出現(xiàn),各家實現(xiàn)的TEE良莠不齊。
TEE的目的是增強移動設備的安全特性,包括軟件編程接口、硬件IP在內(nèi)的一整套方案。芯片在軟件和硬件上,有REE和TEE兩個區(qū)域,分別對應富執(zhí)行環(huán)境和可信執(zhí)行環(huán)境。其主要思想就是在同一個CPU芯片上,通過硬件配置方式實現(xiàn)不同IP組件的訪問控制,從而提供一個完全隔離的運行空間。ARM在芯片IP設計中已經(jīng)全面支持了TEE,包括高通、聯(lián)發(fā)科、三星、海思、展訊等都紛紛采用,成為基于硬件安全的主流方案。
TEE是和REE(Rich Execution Environment)相對應的,一般稱TEE和REE為Secure World和Normal World。Linux跑在Normal World上,但是有些安全性要求比較高的行為,例如指紋的比對,支付時候用私鑰簽名的動作等,需要放到Secure World里面去。
TEE具有其自身的執(zhí)行空間,也就是說在TEE的環(huán)境下也要有一個操作系統(tǒng)。TEE環(huán)境比Rich OS(普通操作系統(tǒng))的安全級別更高,但是比起安全元件(SE,通常是智能卡)的安全性要低一些;另一方面,加入TEE的成本增加比較低,SE的成本則更高。TEE所能訪問的軟硬件資源是與Rich OS分離的。TEE提供了授權(quán)安全軟件(TrustApp可信應用,簡稱TA)的安全執(zhí)行環(huán)境,同時也保護TA的資源和數(shù)據(jù)的保密性、完整性和訪問權(quán)限。為了保證TEE本身的可信根,TEE在安全啟動過程中是要通過驗證并且與Rich OS隔離的。在TEE中,每個TA是相互獨立的,而且不能在未授權(quán)的情況下互相訪問。簡而言之就是在TEE環(huán)境的操作系統(tǒng)上同樣有相應的應用程序(TA),除了TEE的運行環(huán)境與普通操作系統(tǒng)相互獨立外,TEE里的每一個TA也是需要授權(quán)并相互獨立運行的。
基于TEE環(huán)境的操作系統(tǒng)由不同的企業(yè)在推行,例如華為海思有自己的TrustZone的操作系統(tǒng),高通的QSEE、ARM的Trustonic、還有Linaro開源的OPTEE等。
TEE最早出于OMTP規(guī)范,ARM是TEE技術(shù)的主導者之一,其TrustZone即是支持TEE技術(shù)的產(chǎn)品。
2006年,OMTP (Open Mobile Terminal Platform,開放移動終端平臺)工作組智能終端的安全率先提出了一種雙系統(tǒng)解決方案:即在同一個智能終端下,除了多媒體操作系統(tǒng)外再提供一個隔離的安全操作系統(tǒng),這一運行在隔離的硬件之上的隔離安全操作系統(tǒng)用來專門處理敏感信息以保證信息的安全。該方案即TEE的前身。
基于OMTP的方案,ARM公司(嵌入式處理器的全球最大方案供應商,它們架構(gòu)的處理器約占手機市場95%以上的份額)于2006年提出了一種硬件虛擬化技術(shù)TrustZone及其相關(guān)硬件實現(xiàn)方案。TrustZone即是支持TEE技術(shù)的產(chǎn)品,TrustZone是所有Cortex-A類處理器的基本功能,是通過ARM架構(gòu)安全擴展引入的,而ARM也成為了TEE技術(shù)的主導者之一。
ARM后將其TrustZoneAPI提供給GlobalPlatform,該API已發(fā)展為TEE客戶端API。GlobalPlatform(全球最主要的智能卡多應用管理規(guī)范的組織,簡稱為GP)是Visa、MasterCard等國際銀行卡組織主導的國際標準化組織,從2011年起開始起草制定相關(guān)的TEE規(guī)范標準,并聯(lián)合一些公司(ARM等)共同開發(fā)基于GP TEE標準的可信操作系統(tǒng)。因此,如今大多數(shù)基于TEE技術(shù)的Trust OS都遵循了GP的標準規(guī)范。
移動設備使用TrustZone的最主要的原因之一是它可以提供”可信執(zhí)行環(huán)境(TEE)”。2003年,ARM公司提出TrustZone。
ARM TrustZone技術(shù):(1)、ARMv6版本開始的安全硬件特性,包括ARM11及Cortex A系列,目前大部分手機芯片均有該硬件特性。(2)、同時運行一個安全的OS和一個普通的OS:兩個系統(tǒng)之間互相隔離運行,安全的OS具有更多的權(quán)限。(3)、TrustZone是一個全系統(tǒng)級別的安全架構(gòu):處理器、內(nèi)存和外設的安全隔離。
手機內(nèi)部分為硬件、操作系統(tǒng)、應用軟件三層。安全技術(shù)和解決方案的演進順序依次為應用軟件層安全技術(shù)、操作系統(tǒng)層安全技術(shù)和硬件層安全技術(shù)。從抗攻擊的角度來講,越是基于底層的安全防護越是抗攻擊。目前很多手機廠商推出的指紋,都是基于硬件的安全方案來進行保護的,通過一個硬件隔離區(qū)來保護指紋數(shù)據(jù)和敏感操作,這種硬件隔離技術(shù)就是TEE技術(shù)。TEE是存在于智能手機(或任何移動設備)主處理器內(nèi)的安全區(qū),確保敏感數(shù)據(jù)在可信的環(huán)境里得到存儲、處理和保護。TEE有能力對經(jīng)授權(quán)的安全軟件(所謂的”可信應用程序”)進行安全的執(zhí)行,因此可通過實施保護、保密性、完整性和數(shù)據(jù)訪問權(quán)限,提供端到端的安全性。目前在國內(nèi)市場蘋果、華為、三星等手機共同選擇了TEE技術(shù)。
目前,ARM在芯片IP設計中已全面支持了TEE,包括高通、聯(lián)發(fā)科、三星、海思、展訊等企業(yè)已采用,成為基于硬件安全的方案。
可信終端具有以下三個基本的安全功能:
(1)、基于硬件隔離的安全執(zhí)行環(huán)境:TEE提供了基于硬件隔離的安全世界來保護敏感數(shù)據(jù)的安全和程序正確執(zhí)行。實現(xiàn)TEE需要將設備的硬件和軟件資源全部劃分成安全世界和非安全世界,兩個世界具有獨立的系統(tǒng)資源,包括寄存器、物理內(nèi)存和外設,不能隨意進行數(shù)據(jù)交換。安全世界中的代碼和資源受到嚴格的訪問控制策略保護,非安全世界的進程禁止訪問安全世界,以保證存儲在安全世界的敏感資源不被非法訪問或竊取,能夠有效減少安全系統(tǒng)漏洞的披露、外界的攻擊和病毒的入侵。
(2)、基于信任鏈的平臺完整性:為了保證整個系統(tǒng)的安全,TEE從系統(tǒng)引導啟動開始逐步驗證以保證TEE平臺的完整性。設備加電后,加載ROM中的安全引導程序,并利用根密鑰驗證其完整性。然后,該引導程序進入TEE 初始化階段并啟動安全操作系統(tǒng),逐級核查安全操作系統(tǒng)啟動過程中的各個階段的關(guān)鍵代碼以保證安全操作系統(tǒng)的完整性,同時防止未授權(quán)或經(jīng)過惡意篡改軟件的運行;安全操作系統(tǒng)啟動后,運行非安全世界的引導程序并啟動普通操作系統(tǒng)。至此基于信任鏈,完成了移動終端整個系統(tǒng)的安全啟動,能夠有效抵御TEE啟動過程中的非法篡改、代碼執(zhí)行等惡意行為。
(3)、基于安全存儲的數(shù)據(jù)機密性:用戶的身份、密鑰和證書等敏感信息需要高度保護,TEE依靠加密和完整性保護技術(shù)來保護數(shù)據(jù)和密鑰。TEE將用戶的身份、密鑰和證書等敏感信息存儲在安全區(qū)域中,這些敏感信息只能由TEE授權(quán)的可信應用訪問或修改,并且TEE為這些敏感信息的操作處理提供了加密和完整性保護機制。同時,可利用TEE中存儲的密鑰對普通執(zhí)行環(huán)境下用戶的信息,如通訊錄、短信等敏感信息進行加密,保證存儲在普通執(zhí)行環(huán)境下敏感信息的安全性。
注:以上內(nèi)容均整理自網(wǎng)絡。
總結(jié)
以上是生活随笔為你收集整理的TEE(Trusted Execution Environment)简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++11中std::lock_guar
- 下一篇: C++11容器中新增加的emplace相