咱們但願更深刻的瞭解您的開發實踐與體驗,以便爲您構建更好的開發工具。因此咱們誠摯的邀請您參與 Android 開發者問卷調研。您的回覆是匿名的,咱們僅進行彙總分析。此調查僅需 5-10 分鐘便可完成。
android
掃描下方☟二維碼☟ 參與 Android 開發者問卷調研算法
Android Keystore 爲應用開發者們提供了許多加密工具來保護用戶數據。Keystore 將軟件庫中的密碼學原語從 Android OS 移植到安全硬件中,從硬件層面爲密鑰資料提供額外的安全防禦,並確保密鑰僅可以在安全硬件中被使用,所以即便設備遭受攻擊,應用的機密數據也不會泄露。此外,Keystore 還容許應用限定密鑰的使用方式和時間。安全
到了 Android Pie 以後,Keystore 也相應加入了一些新功能。在這篇文章中,咱們會詳細介紹其中的兩項新功能: 其一是經過限制密鑰的使用來達到保護敏感信息的目的;其二則是可以在簡化安全密鑰使用的同時,防止應用和操做系統訪問密鑰資料。服務器
若是用戶當前並未在使用設備,移動端應用可選擇延遲處理已經接收到的數據。Android Pie 利用鍵盤鎖綁定密鑰技術來保護應用在鎖屏時收到的敏感信息,直至用戶開始訪問它們。當設備處於鎖屏狀態時,密鑰可用於加密或認證操做,可是卻不可用於解密或者簽名。若是設備當前被 PIN, 圖形或者密碼鎖定,任何試圖使用這些密鑰的操做都會失效。鍵盤鎖綁定密鑰能夠在設備鎖屏時保護用戶數據,直到用戶須要這些數據。app
鍵盤鎖綁定和驗證綁定的功能相似,惟一須要着重強調的區別在於鍵盤鎖綁定將密鑰可用性與鎖屏狀態綁定在一塊兒,而驗證綁定則採用常量超時機制。當密鑰鍵盤鎖綁定功能啓用後,一旦設備進入鎖屏狀態,密鑰便會失效,直至用戶從新解鎖設備。工具
另外,還有一點請各位讀者注意,鑑於安全硬件沒法獲知屏幕什麼時候被鎖定,所以鍵盤鎖綁定由操做系統負責來強制執行而非安全硬件。但驗證綁定的狀況則與之不一樣,它是一款由硬件強制執行的 Android Keystore 特性。當驗證綁定與鍵盤鎖綁定配合使用時,設備將具有更高的安全防禦級別。並且,因爲鍵盤鎖綁定屬於操做系統功能,所以全部 Android Pie 設備均可以使用該功能。開發工具
任何由設備支持算法所編寫的密鑰都可啓動鍵盤鎖綁定功能。若是您須要生成或導入鍵盤鎖綁定密鑰,請在設置 KeyGenParameterSpec 或 KeyProtection 的 builder 對象時,調用 setUnlockedDeviceRequired(true) 方法。ui
安全密鑰導入是 Android Pie 引入的另外一項新特性,它容許應用以一種更加安全的方式將現有密鑰配置到密鑰庫中。密鑰源多是位於本地數據中心或雲端的某臺服務器,它會經過用戶設備中的公共包裝密鑰來加密安全密鑰,並生成 SecureKeyWrapper 格式的文件,其中包含了被導入密鑰所容許的使用方式,而 SecureKeyWrapper 密鑰只有在生成包裝密鑰的設備上的 Keystore 硬件中才能被解密。密鑰在傳輸過程當中完成加密,且對應用和操做系統均不可見,也就是說只有在導入到的安全硬件後才能使用這些密鑰。google
若是應用試圖與 Android 設備分享密鑰,但同時又想避免密鑰在離開設備後被攔截,安全密鑰導入功能即是這中情形下理想的選擇。Google Play 已經利用該技術在 Pixel 3 手機上配置部分密鑰,以確保密鑰不會被攔截或者從內存中被提取。此外,安全密鑰導入的企業用例也很普遍,好比,您能夠從 CA 認證中心託管方恢復 S/MIME 加密密鑰,以便使用同一把密鑰在多個設備上解密電子郵件。加密
若是您想了解該特性的具體使用方法,請仔細閱讀教程文檔《Android 密鑰庫系統》中的相關部分。請注意,因爲安全密鑰導入是一款安全硬件特性,所以部分 Android Pie 設備可能沒法使用該功能。應用能夠調用 PURPOSE_WRAP_KEY 來生成一個密鑰對,以此來鑑別所用設備是否支持安全密鑰導入。
點擊這裏參與 Android 開發者問卷調研