Android Q 中的安全性更新

做者: Rene Mayrhofer 和 Xiaowen Xin, Android 安全與隱私團隊html

每次發佈 Android 的新版本,咱們的首要任務之一就是提升平臺的安全防禦。在過去幾年,安全方面的優化在整個生態圈都取得了喜人的成績,2018 年亦是如此。android

在 2018 年第四季度,接收安全更新的設備數量比去年同期增加了 84%。與此同時,在 2018 年整年,任何對 Android 平臺形成威脅的重要安全漏洞在公開披露以前,團隊均提供了相應的安全更新或緩解措施。另外,咱們還發現安裝潛在危險應用的設備數量同比降低了 20%。本着透明公開的原則,除了以上數據,咱們還在《Android 安全及隱私 2018 年度報告》公佈了更多安全方面的細節與回顧,有興趣的朋友可前往閱讀。算法

不過,你們可能會問,那 Android 接下來又有什麼計劃呢?安全

在五月上旬舉辦的 Google I/O’19 上,咱們揭曉了Android 中新集成的全部安全特性。咱們將在接下來的幾周和數月內繼續優化這些特性,不過咱們想先在這篇文章中與您快速分享一下咱們爲平臺作了哪些安全升級。架構

加密

儲存加密屬於最基礎 (也最有效) 的安全技術之一,不過當前的加密標準有必定的硬件要求,即設備需搭載加密加速硬件,於是許多硬件受限的設備便沒法使用該技術。Adiamtum 的推出改變了 Android Q 的加密方式。咱們早在今年二月就推出了 Adiantum 加密模式,讓全部 Android 設備——從智能手錶到聯網醫療器械——即使在缺乏特定硬件的狀況下依舊可以實現數據加密。app

咱們在 Android Q 中繼續踐行對加密重要性的承諾。全部出廠系統爲 Android Q 的兼容設備都必須對用戶數據進行加密處理,無一例外。這個要求的涵蓋類型包括手機、平板、電視及車載設備。這有助於確保下一代設備比以前的設備更加安全,讓億萬新用戶從使用 Android 系統的第一天起就免受安全隱患的威脅。框架

不過,儲存加密僅僅構成了咱們安全版圖的一部分,所以,咱們還在 Android Q 中默認啓用了 TLS 1.3 支持。TLS 1.3 是 TLS 標準的一次重要更新, IETF (互聯網工程組) 於去年 8 月正式完成了 TLS 1.3 的升級工做。與以前幾個版本相比,TLS 1.3 在速度、安全性和隱私性三方面均有顯著提高。佈局

TLS 1.3 通常經過幾輪數據往返便可完成握手流程,將創建會話鏈接的速度加快了 40%。從安全角度來看,TLS 1.3 移除了對較弱加密算法以及一些不安全或過期特性的支持。TLS 1.3 使用了新設計的握手協議,該協議修復了 1.2 版本中一些不足的地方,更爲清晰,也不容易出錯,並且對密鑰泄露的防護性也有所提升。從隱私角度來看,TLS 1.3 對握手內更多的數據進行了加密處理,從而更好地保護了參與方的身份。優化

強化平臺

Android 採用深度防護 (defense-in-depth) 策略,爲的是確保實現層面的單個錯誤沒法繞過整個安全系統。咱們藉助進程隔離、攻擊面縮減、架構分離及漏洞利用緩解技術,讓漏洞更難或根本沒法利用,並且攻擊者須要同時利用更多的漏洞才能達成他們的目標。google

在 Android Q 中,咱們將這些策略實踐至多個關鍵安全領域的研發工做中,例如: 媒體、藍牙以及系統內核。咱們在《Android 平臺安全加強項詳覽》一文中提供了詳實的介紹,其中的部分更新重點包括:

  • 供軟件編碼器使用的受限沙箱;
  • 增長排錯程序 (sanitizer) 在生產環境中的使用: 當某組件處理不受信任的內容時,排錯程序可用於緩解該組件內全部類別的漏洞;
  • Shadow Call Stack (影調用堆棧): 該調用堆棧提供了 backward-edge 控制流完整性 (Control Flow Integrity - CFI), 並增強了基於 LLVM CFI 的 forward-edge 保護;
  • 使用 XOM (僅可執行內存) 來保護地址空間佈局隨機化 (ASRL),以防止信息泄露;
  • 引入 Scudo 強化內存分配器,增長堆 (heap) 相關漏洞的利用難度。

身份驗證

Android Pie 引入了 BiometricPrompt API 協助應用經過生物識別技術進行用戶身份驗證,如面部識別、指紋識別及虹膜識別。該 API 自推出以來便深受歡迎,咱們在許許多多應用上都看到了它的身影。隨着 Android Q 的發佈,咱們更新了 BiometricPrompt 底層框架,加強了對面部識別和指紋識別的支持。此外,咱們還對該 API 進行了擴展,增長了支持用例的數量,如隱式和顯式驗證。

在顯式流程中,用戶必須經過明確的操做,如觸摸指紋傳感器,才能完成後續的身份驗證工做。若是用戶使用面部或虹膜進行驗證,那麼他們須要再點擊其餘按鈕才能繼續。顯式流程爲默認驗證流程,全部高價值事務 (如付款) 均需經過顯式流程完成。

隱式流程則不要求用戶進行額外操做。藉助隱式流程,開發者能夠爲簡單的可撤銷型事務提供更加輕量和無縫的體驗,例如登陸和自動填充。

BiometricPrompt 另外還增長了一項十分實用的新功能——在觸發 BiometricPrompt 以前,檢查設備是否提供生物驗證支持。若是應用想在登陸界面或應用內設置菜單中顯示諸如 「啓用生物驗證登陸」 一類的信息,那麼,這項新功能便尤其有用。爲了提供支持,咱們新添加了一個名爲 BiometricManager 的類。您可調用其中的 canAuthenticate() 方法,來斷定設備是否支持生物驗證,以及用戶是否已經贊成使用。

下一步

在 Android Q 以後,咱們計劃爲移動應用添加數字身份證件 (Electronic ID) 支持,從而容許用戶把手機當作身份證件 (如駕駛證) 來使用。此類應用須要符合多項安全規定,並且持證用戶設備上的客戶端應用、讀取/認證設備,以及發證機構用於頒發、更新及撤銷證件的後臺系統三者間的集成工做也很重要。

項目的順利推動須要 ISO (國際標準化組織) 在加密及標準化方面的專業支持,目前該項目由 Android 安全及隱私團隊負責牽頭。咱們將會爲 Android 設備提供相關 API 和 HAL 參考實現,以確保平臺爲相似的安全及隱私敏感應用提供核心支持。咱們會在第一時間發佈有關電子身份證支持的最新消息,感興趣的小夥伴們,千萬不要錯過!

致謝: 感謝 Jeff Vander Stoep 和 Shawn Willden 對本文的貢獻。

點擊這裏提交產品反饋建議

相關文章
相關標籤/搜索