安全性

安全地管理金鑰、加密檔案以及共用偏好設定。

下表列出了 androidx.security 群組中的所有構件。

構件 穩定版 候選版 Beta 版 Alpha 版
安全加密 1.0.0 - - 1.1.0-alpha04
安全性應用程式驗證器 - - - 1.0.0-alpha02
security-identity-credential - - - 1.0.0-alpha03
此程式庫上次更新日期:2022 年 11 月 9 日

宣告依附元件

如要為安全性新增依附元件,必須將 Google Maven 存放區新增至專案。詳情請參閱「Google 的 Maven 存放區」。

在應用程式或模組的 build.gradle 檔案中,新增您需要的構件依附元件:

Groovy

dependencies {
    implementation "androidx.security:security-crypto:1.0.0"

    // For Identity Credential APIs
    implementation "androidx.security:security-identity-credential:1.0.0-alpha03"

     // For App Authentication APIs
    implementation "androidx.security:security-app-authenticator:1.0.0-alpha02"

    // For App Authentication API testing
    androidTestImplementation "androidx.security:security-app-authenticator:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.security:security-crypto:1.0.0")

    // For Identity Credential APIs
    implementation("androidx.security:security-identity-credential:1.0.0-alpha03")

    // For App Authentication APIs
    implementation("androidx.security:security-app-authenticator:1.0.0-alpha02")

    // For App Authentication API testing
    androidTestImplementation("androidx.security:security-app-authenticator:1.0.0-alpha01")

}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。發現新的問題或有改善這個程式庫的想法時,請告訴我們。建立新的問題之前,請先查看這個程式庫中的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 文件

Security-App-Authenticator 1.0.0 版本

1.0.0-alpha02 版本

2021 年 6 月 2 日

發布了 androidx.security:security-app-authenticator:1.0.0-alpha021.0.0-alpha02 版本包含以下修訂項目。

API 變更

  • 為支援 Android 12 中新推出的 knownSigner 權限防護標誌,您無法再於設定中指定 digestAlgorithm 屬性;所有憑證摘要都應使用 SHA-256 進行計算。

修正錯誤

  • 在設定中提供的所有憑證摘要都會經過正規化,以確保系統在執行階段計算摘要,以及透過測試程式庫定義明確的簽署身分時,能夠報告簽名比對成功符合。

Security-App-Authenticator-Testing 1.0.0-alpha01 版本

2021 年 6 月 2 日

發布了 androidx.security:security-app-authenticator-testing:1.0.0-alpha011.0.0-alpha01 版本包含以下修訂項目。

新功能

此測試程式庫提供了建構工具,可用來設定可插入的 AppAuthenticator 以符合測試需求。此程式庫支援多種設定 AppAuthenticator 的方法:

  • 您可以指定通用測試政策,報告設定中宣告的所有套件的簽名相符。
  • 您可以指定個別套件,傳回簽名符合但是所有其他套件報告不符合的情況。
  • 每個套件都可以設定明確的簽署身分;如此,只有在提供的身分與設定檔中的宣告相符時,產生的 AppAuthenticator 才會報告簽名。
  • 您也可以將套件視為未安裝或包含明確的 uid。

1.0.0-alpha01 版本

2021 年 5 月 5 日

發布了 androidx.security:security-app-authenticator:1.0.0-alpha011.0.0-alpha01 版本包含以下修訂項目。

新功能

AppAuthenticator 是一個新的程式庫,旨在根據簽署身分簡化應用程式信任的驗證作業。應用程式只需指定一個 XML 設定檔,裡面須包含信任應用程式的檔案包名稱和簽署身分;程式庫將負責在執行階段驗證應用程式的簽署身分。

1.1.0 版本

1.1.0-alpha04 版本

2022 年 11 月 9 日

發布了 androidx.security:security-crypto:1.1.0-alpha04androidx.security:security-crypto-ktx:1.1.0-alpha041.1.0-alpha04 版本包含以下修訂項目。

新功能

  • 已移除應用程式首次啟動時顯示的「找不到金鑰組,將產生一個新的金輪組」訊息 (b/185219606)。
  • 已將 Tink 依附元件升級至版本 1.7.0。

API 變更

  • 當要求的檔案不存在時,請變更 EncryptedFile#openFileInput(),以擲回 FileNotFoundException,而非一般的 IOException (I80e41b/148804719)。
  • 更新了「MasterKeys」類別,從而需要使用 Android M,而非其每個方法 (I8b4b8)。
  • 變更 EncryptedSharedPreferences (例如#getString#getInt) 上的所有偏好 getter,以便在值的類型與定義的任何列舉變化版本都不相符的罕見情況下擲回 SecurityException (b/241699427)。

修正錯誤

  • 已將 security-crypto-ktx 程式庫的最低 SDK 版本與 security-crypto 同步,將其降低至 v21 (b/193550375)
  • 修正了建構多個 EncryptedFile 時的並行錯誤 (b/136590547)

外部貢獻

Security-Crypto-Ktx 1.1.0-alpha03 版本

2021 年 5 月 18 日

發布了 androidx.security:security-crypto-ktx:1.1.0-alpha031.1.0-alpha03 版本包含以下修訂項目。

已配合 androidx.security:security-crypto:1.1.0-alpha03 進行更新。

1.1.0-alpha03 版本

2020 年 12 月 2 日

發布了 androidx.security:security-crypto:1.1.0-alpha031.1.0-alpha03 版本包含以下修訂項目。

新功能

  • 已將 Tink 更新至穩定版 1.5.0

1.1.0-alpha02 版本

2020 年 8 月 5 日

發布了 androidx.security:security-crypto:1.1.0-alpha02androidx.security:security-crypto-ktx:1.1.0-alpha021.1.0-alpha02 版本包含以下修訂項目。

新功能

  • 已將 Tink 更新至穩定版 1.4.0

修正錯誤

  • Tink 更新應修正 R8 和 Proguard 有關陰影 Protobuf 依附元件的問題。
  • Tink 更新應可妥善處理 AndroidKeyStore 並行失敗問題。

外部貢獻

  • 套用時清除 mKeysChanged,並修正 EncryptedSharedPreferences (aosp/1323026)

1.1.0-alpha01 版本

2020 年 6 月 10 日

發布了 androidx.security:security-crypto:1.1.0-alpha011.1.0-alpha01 版本包含以下修訂項目。

新功能

  • 現在可支援 Lollipop (API 級別 21 以上)。請注意,AndroidKeyStore 不會用於 API 21 和 22 (I7c12db/132325342)。
  • 新的 MasterKey 類別提供更多金鑰選項,並淘汰 MasterKeys 以支援沒有 KeyGenParamSpec 的 Android 新功能和版本。

Security-Identity-Credential 1.0.0 版本

1.0.0-alpha03 版本

2021 年 9 月 1 日

發布了 androidx.security:security-identity-credential:1.0.0-alpha031.0.0-alpha03 版本包含以下修訂項目。

新功能

  • Android 12 中已新增對於硬體支援身分憑證功能的支援。

1.0.0-alpha02 版本

2021 年 2 月 24 日

發布了 androidx.security:security-identity-credential:1.0.0-alpha021.0.0-alpha02 版本包含以下修訂項目。

修正錯誤

  • 更新身分憑證 API 以符合 Android 12 方案 (Iff83e)

1.0.0-alpha01 版本

2020 年 8 月 19 日

發布了 androidx.security:security-identity-credential:1.0.0-alpha011.0.0-alpha01 版本包含以下修訂項目。

新功能

這個 Jetpack 版本是以加入 Android 11 及 API 級別 30 的身分憑證 API 的 Jetpack 版本為特色。如果是搭載 Android 11 的裝置,而且裝置提供硬體支援的身分憑證支援,則此 Jetpack 會直接將呼叫轉接到 Platform API。否則,將會使用 Android KeyStore 支援的實作。雖然 Android KeyStore 支援的實作不會提供相同等級的安全性和隱私,但對持有者和發行者而言已經相當足夠 (如果所有資料經過發行者簽署)。此程式庫需要 API 級別 24 或以上的版本。

身分憑證 API 提供可安全儲存使用者身分文件的介面。這些 API 刻意地設計成相當籠統和抽象。在可能的情況下,請盡量讓與憑證驗證裝置與簽發機構 (IA) 通訊的訊息格式規格和語意用語超出這些 API 的範圍。API 確實依賴的資料結構與即將發佈的 ISO/IEC IS 18013-5 Personal identification — ISO-compliant driving licence — Part 5: Mobile driving licence (mDL) 應用程式標準中的資料結構相容。

API 變更

  • 已新增身分憑證 Jetpack。(Icf90b)

1.0.0 版本

1.0.0 版本

2021 年 4 月 21 日

發布了 androidx.security:security-crypto:1.0.01.0.0 版本包含以下修訂項目。

1.0.0 的主要功能

主要功能

  • EncryptedFile,提供加密的輸入和輸出訊息串,以便將加密資料讀取/寫入至檔案。
  • EncryptedSharedPreferences,提供可自動加密/解密所有鍵和值的 SharedPreferences 實作。
  • 透過 MasterKey 提供簡單的金鑰產生。
  • 依賴 Tink 1.5.0 以提高穩定性。

1.0.0-rc04 版本

2021 年 1 月 13 日

發布了 androidx.security:security-crypto:1.0.0-rc041.0.0-rc04 版本包含這些修訂項目。

修正錯誤

  • 已將 Tink 升級至 1.5.0 以提高穩定性。

1.0.0-rc03 版本

2020 年 8 月 5 日

發布了 androidx.security:security-crypto:1.0.0-rc031.0.0-rc03 版本包含這些修訂項目。

新功能

  • 已將 Tink 更新至穩定版 1.4.0

修正錯誤

  • Tink 更新應修正 R8 和 Proguard 有關陰影 Protobuf 依附元件的問題。
  • Tink 更新應可妥善處理 AndroidKeyStore 並行失敗問題。

外部貢獻

  • 套用時清除 mKeysChanged,並修正 EncryptedSharedPreferences (aosp/1323026)

1.0.0-rc02 版本

2020 年 5 月 20日

發布了 androidx.security:security-crypto:1.0.0-rc021.0.0-rc02 版本包含以下修訂項目。

修正錯誤

  • 已更新 Tink 版本 1.4.0-rc2,可遮蔽 proto buf lite 部分。這解決了廣泛回報與其他 Android SDK 發生衝突的問題。(I8a831)
  • 已修正 EncryptedSharedPreferences 中的 apply()。(I29069b/154366606)

1.0.0-rc01 版本

2020 年 4 月 15 日

發布了 androidx.security:security-crypto:1.0.0-rc011.0.0-rc01 版本包含以下修訂項目。

修正錯誤

  • 已新增檢查藉此確保如果 KeyGenParamSpec 已傳入至 MasterKeys.getOrCreate 並且如果 getUserAuthenticationRequired 傳回 true,則該 getUserAuthenticationValidityDurationSeconds 會傳回 >0 的值。(I911f5) (b/152644939)

1.0.0-beta01 版本

2020 年 3 月 18 日

發布了 androidx.security:security-crypto:1.0.0-beta01,且自 1.0.0-alpha02 版以來皆無異動。1.0.0-beta01 版本包含以下修訂項目

1.0.0-alpha02 版本

2019 年 5 月 23 日

發布了 androidx.security:security-crypto:1.0.0-alpha02。此版本所包含的修訂項目位於這份修訂版本記錄中。

修正錯誤

  • 已修正從 getAll() 擷取共用偏好設定相關鍵/值的問題。
  • 已封鎖使用受限制的偏好設定鍵。
  • Javadoc 微幅更新。

1.0.0-alpha01 版本

2019 年 5 月 7 日

發布了 androidx.security:security-crypto:1.0.0-alpha01。您可以前往這裡查看這個版本包含的修訂項目。

新功能重點摘要

  • EncryptedFile,提供加密的輸入和輸出訊息串,以便將加密資料讀取/寫入至檔案。
  • EncryptedSharedPreferences,提供可自動加密/解密所有鍵和值的 SharedPreferences 實作。
  • 透過 MasterKey 提供簡單的金鑰產生。