自我檢查事項 ( Sanbox ) === contributed by < `BreezeDa`, `Reack `> ###### tags: `sysprog2017` ### 隔離執行環境的建構 **Trusted Execution Environment ([TEE](https://en.wikipedia.org/wiki/Trusted_execution_environment))** - TEE 由 GlobalPlatform 規範 依據 [行動支付安全元件(Secure Element)之存取控制](https://www.fisc.com.tw/Upload/9920fd22-3489-406f-957d-a7acff52e251/TC/08.%20%E8%98%87%E5%81%89%E6%85%B6%E3%80%81%E9%BB%83%E5%BB%BA%E9%9A%86.pdf)、Wekipedia,TEE 可保障在該環境裏頭的 code 及 data 的機密性及完整性,可提供程式安全執行的隔離環境,TEE 需要有獨立的硬體以提供安全的作業系統、程式、使用介面、資料儲存空間等,而且經過授權的 tursted application (TA) 才可以在其間執行,另外 trusted application 擁有裝置處理器及記憶體完整的存取權。 **Rich Execution Environment (REE)** 另一方面,作業系統上的開放執行環境稱為 REE,建構在一般作業系統開放環境中,基本上無法確保應用程式執行的安全性 | | 一般作業系統(REE) | 可信賴執行環境(TEE)| | ------ | -- |-----| | 程式下載之控制權 | 使用者可自行下載 |須經授權程序| | 獨立性 | 視作業系統而定,部分作業系統會提供虛擬化或類似沙盒(sandbox)的架構。 |與一般作業系統分離,其獨立性依各廠商之實作方式而有差異。| | 認 證 | 不須認證 |須認證| |作業系統核心與驅動程式等|偏重彈性與執行速度考量提供較豐富的 API |偏重安全與執行速度考量提供較少 API |安全防護性(軟體非法攻擊)|未經認證的作業系統保護機密性,完整性有限制|GlobalPlatform 認證過的作業系統保護機密性與完整性 |安全防護性(外部硬體攻擊)|無法防護|具防護性,但強度依各廠商實作之硬體架構而有差異。 **1. Trusted Execution Environment (TEE) 的應用為何?(舉出共筆以外的真實世界案例)** **Premium Content Protection**: 利用 TEE 保護付費的內容。在手機、平板或者智慧型電視中可透過市集選購影集、音樂來播放,廠商為了防止這些內容遭非法利用( e.g. 拷貝),便可透過 TEE 對其進行保護。數位內容在傳輸或串流時,通常會進行加密,這樣即使中途被攔截也沒什麼大礙。但在使用者端為了能夠看撥放數位內容,勢必得解密,這樣就有被非法利用的可能。這時我們可以讓數位內容只在 TEE 中播放,讓他不暴露在 REE( rich execution environment,一般作業系統的開放環境 ) 中,當然解密的 key 也存放於 TEE 中。