Android Pie 引入 Keystore 新特性,安全防护再升级
我們希望更深入的了解您的開發(fā)實踐與體驗,以便為您構(gòu)建更好的開發(fā)工具。所以我們誠摯的邀請您參與 Android 開發(fā)者問卷調(diào)研。您的回復是匿名的,我們僅進行匯總分析。此調(diào)查僅需 5-10 分鐘即可完成。
掃描下方?二維碼? 參與 Android 開發(fā)者問卷調(diào)研
Android Pie 加入 Keystore 新特性
Android Keystore 為應(yīng)用開發(fā)者們提供了許多加密工具來保護用戶數(shù)據(jù)。Keystore 將軟件庫中的密碼學原語從 Android OS 移植到安全硬件中,從硬件層面為密鑰資料提供額外的安全防護,并確保密鑰僅能夠在安全硬件中被使用,因此即使設(shè)備遭受攻擊,應(yīng)用的機密數(shù)據(jù)也不會泄露。此外,Keystore 還允許應(yīng)用限定密鑰的使用方式和時間。
到了 Android Pie 之后,Keystore 也相應(yīng)加入了一些新功能。在這篇文章中,我們會詳細介紹其中的兩項新功能: 其一是通過限制密鑰的使用來達到保護敏感信息的目的;其二則是能夠在簡化安全密鑰使用的同時,防止應(yīng)用和操作系統(tǒng)訪問密鑰資料。
鍵盤鎖綁定密鑰
如果用戶當前并未在使用設(shè)備,移動端應(yīng)用可選擇延遲處理已經(jīng)接收到的數(shù)據(jù)。Android Pie 利用鍵盤鎖綁定密鑰技術(shù)來保護應(yīng)用在鎖屏時收到的敏感信息,直至用戶開始訪問它們。當設(shè)備處于鎖屏狀態(tài)時,密鑰可用于加密或認證操作,但是卻不可用于解密或者簽名。如果設(shè)備當前被 PIN, 圖形或者密碼鎖定,任何試圖使用這些密鑰的操作都會失效。鍵盤鎖綁定密鑰可以在設(shè)備鎖屏時保護用戶數(shù)據(jù),直到用戶需要這些數(shù)據(jù)。
鍵盤鎖綁定和驗證綁定的功能類似,唯一需要著重強調(diào)的區(qū)別在于鍵盤鎖綁定將密鑰可用性與鎖屏狀態(tài)綁定在一起,而驗證綁定則采用常量超時機制。當密鑰鍵盤鎖綁定功能啟用后,一旦設(shè)備進入鎖屏狀態(tài),密鑰便會失效,直至用戶重新解鎖設(shè)備。
另外,還有一點請各位讀者注意,鑒于安全硬件無法獲知屏幕何時被鎖定,因此鍵盤鎖綁定由操作系統(tǒng)負責來強制執(zhí)行而非安全硬件。但驗證綁定的情況則與之不同,它是一款由硬件強制執(zhí)行的 Android Keystore 特性。當驗證綁定與鍵盤鎖綁定配合使用時,設(shè)備將具備更高的安全防護級別。而且,由于鍵盤鎖綁定屬于操作系統(tǒng)功能,因此所有 Android Pie 設(shè)備都可以使用該功能。
任何由設(shè)備支持算法所編寫的密鑰均可啟動鍵盤鎖綁定功能。如果您需要生成或?qū)腈I盤鎖綁定密鑰,請在設(shè)置 KeyGenParameterSpec 或 KeyProtection 的 builder 對象時,調(diào)用 setUnlockedDeviceRequired(true) 方法。
安全密鑰導入
安全密鑰導入是 Android Pie 引入的另一項新特性,它允許應(yīng)用以一種更加安全的方式將現(xiàn)有密鑰配置到密鑰庫中。密鑰源可能是位于本地數(shù)據(jù)中心或云端的某臺服務(wù)器,它會通過用戶設(shè)備中的公共包裝密鑰來加密安全密鑰,并生成 SecureKeyWrapper 格式的文件,其中包含了被導入密鑰所允許的使用方式,而 SecureKeyWrapper 密鑰只有在生成包裝密鑰的設(shè)備上的 Keystore 硬件中才能被解密。密鑰在傳輸過程中完成加密,且對應(yīng)用和操作系統(tǒng)均不可見,也就是說只有在導入到的安全硬件后才能使用這些密鑰。
如果應(yīng)用試圖與 Android 設(shè)備分享密鑰,但同時又想避免密鑰在離開設(shè)備后被攔截,安全密鑰導入功能便是這中情形下理想的選擇。Google Play 已經(jīng)利用該技術(shù)在 Pixel 3 手機上配置部分密鑰,以確保密鑰不會被攔截或者從內(nèi)存中被提取。此外,安全密鑰導入的企業(yè)用例也很廣泛,比如,您可以從 CA 認證中心托管方恢復 S/MIME 加密密鑰,以便使用同一把密鑰在多個設(shè)備上解密電子郵件。
如果您想了解該特性的具體使用方法,請仔細閱讀教程文檔《Android 密鑰庫系統(tǒng)》中的相關(guān)部分。請注意,由于安全密鑰導入是一款安全硬件特性,因此部分 Android Pie 設(shè)備可能無法使用該功能。應(yīng)用可以調(diào)用 PURPOSE_WRAP_KEY 來生成一個密鑰對,以此來鑒別所用設(shè)備是否支持安全密鑰導入。
點擊這里參與 Android 開發(fā)者問卷調(diào)研
總結(jié)
以上是生活随笔為你收集整理的Android Pie 引入 Keystore 新特性,安全防护再升级的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: day22 Pythonpython 本
- 下一篇: thinkphp源码分析(一)—开门篇