如果駭客取得實體裝置,即有可能展開進一步的攻擊,例如透過存取裝置的檔案系統竊取資料。倘若資料已經加密,駭客可先複製資料,再針對加密機制進行離線攻擊。雖然威脅通常來自於軟體攻擊,但如果駭客取得手機,拆解行動裝置和破解主機板等硬體亦不無可能。
傳統的安全架構設計仰賴兩個基本概念:最少特權原則、隔離系統的安全區域。例如,基於 TrustZone的TEE,即使一般區域 (Normal World) 已被攻破,安全區域 (Secure World) 仍能保持隔離。駭客可能佔領正常區域和窺視TEE(可信任執行環境)的通訊內容,但安全區域的完整性和機密性將毫髮無傷。
TrustZone和TEE
GlobalPlatform 對 TEE 平台進行標準化(圖1),制定了規格、法規遵循和認證方案。透過出版白皮書,GlobalPlatform深入探討 TEE技術以及其如何提供支付、內容保護和裝置雙重角色 (dual persona)等服務充分的機密性和完整性。本文在此僅提供簡短的說明。為了維護完整性和機密性,TEE平台透過安全區域保護機密密碼和資料,使得惡意應用程式無法讀取儲存在裝置內的私密金鑰。TEE 技術可以抵禦不斷加劇的軟體攻擊,就算裝置失竊,也能抵抗常見的硬體攻擊,例如「shack 攻擊」(由專業攻擊者對一般電子裝置發起的猛烈攻擊)。
基於 TrustZone 的TEE平台所建立的「安全區域 (Secure World)」,安全邊界雖小但已足以作為身分辨識和確保安全的路徑。安全區域通常用於保護加密金鑰、憑證和其他安全資源。TrustZone 提供諸多hypervisor並不具備的系統安全功能:支援安全除錯機制、提供安全的匯流排輸出入、採取安全中斷措施並直接進入安全區域(可信任輸入)。另一個主張是限制安全區域的安全功能,從而減少受襲層面和實現安全驗證。
TrustZone透過提供處理器晶片額外的「安全模式 (secure state)」,讓安全應用程式碼和資料與一般操作隔離開來,進而強化安全防護功能。這種分區的做法讓執行環境受到保護,以執行可信任密碼和存取安全硬體資源,例如記憶體或周邊。通常,安全區域有專屬的安全作業系統和可信任開機流程,形成能與傳統作業系統(如 Linux 或 Android)協同合作的 TEE,提供安全的服務。
安全是否可靠,取決於信任鏈中最薄弱的環節。信任鏈的起點為信任根源(ROT),通常部署在硬體中以防遭到竄改。要確保行動裝置安全可靠,一開始就必須將裝置重置成為安全環境,透過唯讀記憶體開啟安全的硬體,存取可信任的硬體資源,例如硬體專屬金鑰、亂數生成器、計數器、計時器和可信任記憶體等。設計周全且經驗證的可信任開機流程是行動裝置完整性的基礎,可信任開機流程會先啟動可信任作業系統,然後才開啟正常區域的通用作業系統。
圖1 : TrustZone 可為 TEE 提供硬體分區和存取安全資源 |
|
基於TrustZone的TEE 在FIDO執行中的具體角色
基於 TrustZone (安全區域) 的可信任開機流程和硬體 ROT 是維護裝置完整性的基礎。可信任作業系統可以 FIDO 協定提供可信任服務,例如在硬體的安全執行環境中處理加密和用戶配對演算法。通常,幾乎所有的 FIDO 堆疊都置於正常區域中,只有少數安全加密的功能會被移入TEE 。移到 TEE的程式稱為「可信任應用程式 (Trusted App)」,其機密性和完整性受到安全的保護。區域隔離的做法可抵禦持續增強的攻擊。
TEE的一個重要案例是安全金鑰儲存,由於應用處理器很少搭載非揮發性記憶體,FIDO金鑰在TEE環境中與燒在晶片上的硬體唯一金鑰 (hardware unique key) 結合加密。加密並封裝後的金鑰儲存在開機時提供儲存功能的外接記憶體內,只能在TEE解碼和使用,而且無法進入正常區域。
FIDO 可信任應用程式可以納入生物特徵範本儲存和比對的功能,執行方式與儲存加密金鑰相似,亦即在 TEE 中加密和封裝並儲存在外接非揮發性記憶體中。 基於TrustZone的TEE提供符合 FIDO 安全要求的解決方案:
1. 確保裝置的完整性:
透過使用硬體信任根以及 TrustZone 隔離驗證的可信任開機流程,來實現裝置完整性。
2. 保護金鑰資料的機密性,以免未經授權存取:
TrustZone 架構提供系統層級的硬體隔離,形成一個小和安全的 TEE以處理金鑰資料。FIDO 金鑰本身可以透過強化加密和融合硬體唯一金鑰 (hardware unique key) 進行加密。
3. 維護機密流程的機密性和完整性:
TEE提供完整性和機密性的安全保障。一般來說,FIDO 流程的一小部分會被劃分納入安全區域,成為可信任應用程式執行任務。
4. 維護機密資料輸入的機密性:
TrustZone 可將突如其來的裝置輸入(例如身分驗證方式) 直接引導到安全區域,交由可信任裝置驅動程式處理。例如,TEE可以在採集PIN 碼時處理來自觸控式螢幕的觸控動作,或是來自指紋感測器的感測動作,並將它與正常區域的惡意軟體區隔,讓後者無法對其攔截使用。當 PIN 採集或其他輸入完成時,中斷模式可再切回到正常區域。
5. 保護機密的顯示資料:
TrustZone 可保護安全區域的框架緩衝區 (frame-buffer)及其內容,實現「所見即所簽/購」功能,因為該框架緩衝區無法被攔截、修改或隱藏。
未來強化方向
GlobalPlatform 為 TEE 開發保護設定檔,作為安全認證方案的基礎。多家測試實驗室已著手制訂平台測試和TEE效益評估方案,獨立測試有助於裝置製造商確保解決方案的品質,進而讓整體價值鏈受益。
當今的ARM架構晶片越來越熟稔 TrustZone 技術的應用,例如採用TUI 來保護觸控螢幕輸入和安全框架緩衝區的顯示器(圖2)。這代表周邊設備可以在正常區域和安全區域之間切換:觸控螢幕和顯示器即是應用的範例。在 PIN 採集模式中,TEE獲得可信任存取觸控螢幕的獨佔權,等PIN 採集結束後再返回到正常執行區域。顯示處理器就像是各種圖形層的集合,必須顯示來自安全區域的可信任資料,從而確保「所見即所得/簽」。可信任顯示資料可以在TrustZone保護的框架緩衝區中生成,合成為可以防止覆蓋的安全層。GlobalPlatform 的標準化工作完成後,可望增加TUI的採用。
除了基於 TrustZone 的 TEE 外,當今的行動裝置內建由價值鏈不同廠商所提供諸多安全元件。SIM 卡可能歸通訊業者所有,OEM 可能有自己的安全元件,而作業系統可能要求使用安全元件來保管金鑰或執行系統完整性檢查。由於安全元件無法使用輸入法或顯示,因此安全元件和 TEE 之間最好建立安全通訊。GlobalPlatform 正在進行安全元件和 TEE 通訊的標準化工作。
圖2 : 基於 TrustZone 的 TEE,由 FIDO 可信任應用程式、可信任使用者介面和安全元件加密通道組成 |
|
結論
基於 TrustZone 的 TEE 能以較低的成本為FIDO實作提供有效的系統安全性。設計完善的 TEE 可為FIDO提供適當的安全保護,比正常執行環境所使用的帳號/密碼機制躍進了一大步。
未來,我們期待更多的改善,例如裝置製造商和晶片合作夥伴的TEE平台可以獲得獨立測試實驗室的安全認證;TrustZone安全技術可以應用到觸控式螢幕輸入(用於保護 PIN 輸入)和顯示輸出,實現「所見即所簽/購 」功能。
FIDO 的驗證機制讓消費者打破密碼的限制,目前已展開大規模部署,可望成為產業的成功範例。基於 TrustZone 的 TEE 證明了完善的安全架構可以帶來愉悅的使用者體驗。(本文作者現任ARM安全行銷暨系統與軟體部門總監)
**刊頭圖片(Source:blog.ethosdata.com)