加密是使用對稱加密密鑰對 Android 設備上的所有用戶數據進行編碼的過程。一旦設備被加密,所有用戶創建的數據在將其提交到磁盤之前都會自動加密,並且所有讀取都會在將數據返回到調用進程之前自動解密數據。加密確保即使未經授權的一方試圖訪問數據,他們也無法讀取數據。
Android 有兩種設備加密方法:基於文件的加密和全盤加密。
基於文件的加密
Android 7.0 及更高版本支持基於文件的加密。基於文件的加密允許使用可以獨立解鎖的不同密鑰對不同文件進行加密。支持基於文件的加密的設備還可以支持直接啟動,它允許加密的設備直接啟動到鎖定屏幕,從而可以快速訪問重要的設備功能,如無障礙服務和警報。
借助基於文件的加密和使應用程序了解加密的 API,應用程序可以在有限的上下文中運行。這可能發生在用戶提供其憑據同時仍保護私人用戶信息之前。
元數據加密
Android 9 引入了對元數據加密的支持,其中存在硬件支持。使用元數據加密,啟動時存在的單個密鑰會加密 FBE 未加密的任何內容,例如目錄佈局、文件大小、權限和創建/修改時間。此密鑰受 Keymaster 保護,而 Keymaster 又受驗證啟動保護。
全盤加密
Android 5.0 到 Android 9 支持全盤加密。全盤加密使用單個密鑰(受用戶設備密碼保護)來保護設備的整個用戶數據分區。啟動時,用戶必須提供其憑據,然後才能訪問磁盤的任何部分。
雖然這對安全性很有好處,但這意味著當用戶重新啟動設備時,手機的大部分核心功能都不會立即可用。由於對其數據的訪問受到其單一用戶憑據的保護,因此無法使用警報等功能,無法使用無障礙服務,並且手機無法接聽電話。