現代化 Android Pie: 安全與隱私
作者: Vikrant Nanda 和 René Mayrhofer, Android 安全與隱私團隊
沒有什麼時候比節假日更適合聊 Android 甜點系統了,畢竟,有誰不喜歡在放假的時候來上一兩口甜點呢?那麼,大家最喜歡的節日甜點又有些什麼呢?我相信派 (Pie) 肯定是不少小夥伴的心上之選。
說真的,"派" 這個比喻確實很恰當,各種材料細細烘焙,化為層層美味: 精緻的餡料 (軟體) 配上酥脆的底子 (硬體) ,簡直完美!感興趣的讀者不妨耐心閱讀下文,瞭解一下 Android Pie 新添加了哪些安全及隱私特性吧。
更新 Android
我們需要在加強平臺建設的同時改進反漏洞技術,雙管齊下才能打造更加安全的 Android。
強化平臺建設
我們為 Android Pie 更新了檔案級加密(FBE) 功能,使其支援外部儲存媒介 (如可擴充套件儲存卡) ,並添加了帶有硬體支援的元資料加密技術。通過檔案系統元資料加密,裝置啟動時生成的單個金鑰會加密所有未經過 FBE 加密的內容 (例如目錄佈局、檔案大小、許可權和建立 / 修改時間)。
應用可以通過呼叫 Android Pie 中的BiometricPrompt API,在裝置上顯示身份驗證對話方塊 (例如提示使用者進行指紋識別),而且該方法與形態無關 (modality-agnostic), 生成的對話方塊具備統一的樣式、使用感和螢幕位置。這種標準化的體驗有助於增加使用者信心,讓他們感覺正在授權一個可信賴的身份驗證請求。
應用沙盒引入了新保護機制和測試用例,這有助於確保所有針對 Android Pie (以及所有未來版本系統) 開發的非特權應用都可以在更強大的SELinux沙盒中執行。通過向沙盒提供針對各個應用的加密認證,該保護機制可以提升應用隔離效果,防止替換安全預設設定,並且 (同時也是最重要的一點) 防止應用資料被所有人訪問。
反漏洞技術升級
我們在 Android Pie 中進一步擴充套件了編譯器級別的安全措施,以便在執行時捕獲會觸發未定義行為的操作,並讓這些操作安全地失效。
控制流程完整性 (CFI) 是一種安全機制,它不允許更改已編譯程式碼的原始控制流圖。在 Android Pie 中,CFI 在媒體框架和其它關鍵安全元件中預設啟用,如近場通訊 (NFC) 和藍芽協議。此外,為了繼續加強舊版本系統的核心,我們 在 Android 通用核心中也實現了CFI 支援 。
整數溢位排錯程式可以緩解由整數溢位導致的記憶體損壞和資訊洩露問題。在 Android Pie 中,我們將排錯程式的使用範圍擴充套件至以下兩類庫: (1) 需要處理複雜且不受信任的輸入; (2) 曾收到過安全漏洞報告。
對基於硬體安全技術的持續投入
Android 高可信度使用者確認 (Android Protected Confirmation) 是 Android Pie 的亮點功能之一。它是第一個可以在移動裝置上通過可信 UI 保障交易安全的系統級 API,主要作用是利用受硬體保護的使用者介面 (即可信 UI ),確保關鍵交易在主作業系統外完成。開發者呼叫該 API 後,裝置便會向用戶顯示一個可信 UI 提示, 請他們通過物理輸入 (如裝置按鍵) 進行授權。授權成功後,依賴方便會收到一個帶有加密簽名的宣告,然後再次確認使用者確實想在應用內完成一筆敏感交易。
我們還為一種新金鑰庫型別添加了支援,它可以利用搭載獨立 CPU、RAM 和快閃記憶體的防篡改硬體,為私鑰提供更強大的安全防護。StrongBox Keymaster 是一種位於硬體模組中的 Keymaster HAL 實現。該模組擁有自己的 CPU、安全儲存空間、真實隨機數生成器,以及用於抵禦軟體包篡改和側通道攻擊的保護機制。
其它金鑰庫特性 (屬於 Keymaster 4 的一部分) 包括鍵盤鎖定金鑰、安全金鑰匯入、3DES 支援和版本繫結 。鍵盤鎖定金鑰可以限制金鑰的使用,從而達到保護敏感訊息的目的;安全金鑰匯入讓金鑰的使用更加方面,防止應用和作業系統提取金鑰材料。更多內容,請參閱《 Keystore 新特性讓 Android Pie 更安全 》以及Android Pie 版本說明內的相關部分。
加強使用者隱私保護
為了增強使用者隱私,Android Pie 引入了若干行為變更,如限制後臺應用訪問攝像頭,麥克風和裝置感測器。系統為通話、手機狀態和 Wi-Fi 掃描設立了新的許可權規則和許可權組,並限制應用通過 Wi-Fi 掃描獲取敏感資訊。 此外,我們還添加了另一個和 WiFi 安全相關的新功能——MAC 地址隨機化。此功能啟用後,每當裝置連線到 WiFi 網路時便會使用不同的網路地址。
另外,Android Pie 還支援使用使用者鎖屏密碼 (即 PIN, 圖案或者字元組合) 來加密備份資料,即是說, 攻擊者不知道具體的鎖屏密碼時便無法訪問使用者備份的應用資料 。應用的自動備份功能也有所優化,開發者可以指定在哪些條件下,應用資料被排除在自動備份計劃外。比如說,Android Pie 新新增的一款標籤就可用於判定使用者備份是否為客戶端加密。
為了將所有網路流量從明文 (未加密的 HTTP) 逐步遷移至 TLS (HTTPS),我們修改了網路安全配置的預設設定,以遮蔽所有明文流量。除非您明確允許特定域名使用明文傳輸,Android Pie預設啟用 TLS 來保護使用者。系統同時也為DNS-over-TLS 提供了內建支援: 當網路的 DNS 伺服器支援時,裝置會自動將 DNS 查詢升級為 TLS。該方法能從網路層面防止 IP 地址資訊被監聽或攔截。
我們認為本文描述的特性很好地總結了 Android 在安全與隱私方面的工作進展。親愛的讀者們,您可能覺得這只是我們的一面之詞,不過事實表明,這幾年來,我們對安全話題的持續投入確實顯著提高了系統的安全防護能力, 不斷增加的漏洞利用難度 和獨立移動安全評級都很好地證明了這一點。趕快上手體驗 Android Pie 吧!我們正在快馬加鞭準備下個版本的系統釋出,敬請期待!
點選這裡下載 "Android 9 Pie 開發者手冊"