行動運算裝置處理的個人敏感資料量越來越大。由於這類私密資料會持續與外界連線,因此惡意人士會利用這些漏洞來達成目標,因此他們對這類資料的投資也日益增加。
作業系統可利用硬體記憶體管理單元 (MMU) 提供的抽象概念,將不相關的程序隔離開來。只有屬於信任運算基礎 (TCB) 的元件,才能直接編寫這些 MMU。
自從類 Unix 作業系統問世以來,這個模型一直是實施隱私權和安全性的重要基礎。不過,由於現今的 TCB 過大,這項規定已成為問題:它包含大部分的裝置和匯流排驅動程式、複雜的排程器、檔案系統、網路堆疊和通訊協定、快取、可執行的剖析器和載入器,以及通訊端。因此,要確保這個複雜系統的每個層面都安全無虞,已經變得非常困難。
Linux 核心有超過 2,000 萬行程式碼,變更和重寫的速度也相當驚人。這項成長對 Android 和我們的生態系統有極大助益。不過,由於其 TCB 太大,因此很難確保不會有可供利用的漏洞。
硬體廠商已開發出解決方案,例如 Arm 的 TrustZone,可讓處理器在安全模式下執行,並將記憶體交易標記為「安全」或「不安全」。在這種系統中,機密資料會儲存在安全世界中,且只有安全世界可直接存取,而安全世界會視需要為非安全世界提供服務。
這類解決方案的主要限制是網域太粗糙:只有安全和不安全。隨著需要與作業系統隔離的用途增加,攻擊面也會隨之增加,安全漏洞可能會導致整部裝置遭到入侵。
現今的解決方案還有一項限制,那就是它們是針對相對靜態的世界而設計,其中所有用途資源都會提前計入並分配。這些解決方案不足以用於隨選分配資源的動態用途。
此外,在 Android 作業系統外使用的 API 相當零散,因此限制了我們在 Android 規模上部署用途的能力,包括 Keymint 和 Gatekeeper 等基本功能。
為解決這些限制,並讓 Android 為新一代用途提供穩固的基礎,Android 13 推出了名為「Android 虛擬化架構」(AVF) 的安全虛擬化功能。
Android 虛擬化架構的主要目標,是為下一代用途提供安全且私密的執行環境。