本文件說明 AVF 的常見用途。
獨立編譯
作為軟體安全的安全圍欄,受保護的 VM 能提供安全的環境,
以及編譯受到安全性保護的程式碼這個環境允許移動編譯
的 bootclasspath
和系統伺服器 JAR (由 APEX 更新觸發),來源為
及早啟動,然後再重新啟動。
更新啟動時間。
實作的
com.android.compos
APEX。此元件為選用項目,可以
請使用
makefile。
安全性目標是完整編譯已驗證的輸入內容,然後產生輸出內容 獨立;Android 做為不受信任的用戶端無法修改編譯 而不是造成呼叫失敗的其他方式 (Android 改回使用模式時) 時間編譯)。
VM 中的編譯服務只有在沒有金鑰的情況下才會產生簽章 錯誤。Android 可從以下位置擷取公開金鑰: 驗證簽章
VM 的金鑰是由 APEXes 定義的 VM DICE 設定檔產生 和掛接於 VM 的 APK 以及其他 VM 參數 可進行偵錯。
Android 會啟動,判斷公開金鑰是否來自非預期的 VM VM 來判斷金鑰是否正確VM 會在早期啟動時啟動 。
採用 Protected VM 的驗證開機程序後,編譯服務只會執行驗證
再也不是件繁重乏味的工作因此,程式碼可以判定只接受符合
例如只接受檔名和
許可清單已定義 fs-verity
摘要。
任何從 VM 公開的 API 都會是攻擊介面。所有輸入檔案 系統會假設參數來自不受信任的用戶端,且必須通過驗證並 經過審查後 模型才會開始處理
VM 會驗證輸入/輸出檔案的完整性,檔案儲存在 將 Android 做為不受信任的檔案伺服器,如下所示:
- 輸入檔案的內容必須先經過驗證,才能使用
fs-verity
演算法。如要在 VM 中使用輸入檔案 根雜湊必須在容器 (APK) 中提供根雜湊值, VM 的 DICE 設定檔。使用信任的根雜湊,攻擊者無法竄改 而不會被偵測到 - 輸出檔案的完整性必須在 VM 中維護。即使
在產生過程中,輸出檔案會儲存在 Android 上
會以相同的
fs-verity
樹狀結構格式維護,但可以動態處理 已更新。最終輸出檔案可透過根雜湊值辨識 在 VM 中隔離出來VM 中的服務會保護輸出內容 檔案。