安全性
下表列出了 androidx.security
群組中的所有構件。
構件 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
---|---|---|---|---|
安全加密 | 1.0.0 | - | - | 1.1.0-alpha06 |
安全性應用程式驗證器 | - | - | 1.0.0-beta01 | - |
security-identity-credential | - | - | - | 1.0.0-alpha03 |
宣告依附元件
如要為安全性新增依附元件,必須將 Google Maven 存放區新增至專案。詳情請參閱「Google 的 Maven 存放區」。
在應用程式或模組的 build.gradle
檔案中,新增所需構件的依附元件:
如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。
意見回饋
您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 說明文件。
Security-State 1.0 版
1.0.0-alpha04 版本
2024 年 8 月 7 日
發布 androidx.security:security-state:1.0.0-alpha04
。1.0.0-alpha04 版包含這些修訂版本。
附註
- 將
compileSdk
更新為 35 5dc41be
API 變更
- 重大變更:元件列舉已替換為字串常數,以便擴充功能。(Ia3283)
1.0.0-alpha03 版本
2024 年 7 月 10 日
發布 androidx.security:security-state:1.0.0-alpha03
。1.0.0-alpha03 版包含這些修訂版本。
修正錯誤
- 修正 ASB-A- 模式的 Android 安全性公告錯誤、其他元件的 JSON 剖析,以及
Webview
封裝的擷取。(Ide86a)
1.0.0-alpha02 版
2024 年 6 月 26 日
發布 androidx.security:security-state:1.0.0-alpha02
。1.0.0-alpha02 版包含這些修訂項目。
修正錯誤
- 修正取得核心版本的邏輯。(I5602a)。
1.0.0-alpha01 版
2024 年 6 月 12 日
發布 androidx.security:security-state:1.0.0-alpha01
。1.0.0-alpha01 版包含這些修訂版本。
新功能
- 開發人員可以使用 Security State 這個新程式庫,取得可更新系統元件版本、安全性更新和已套用的修正程式相關可行資料。
Security-App-Authenticator-Testing 1.0 版
1.0.0-beta01 版
2024 年 3 月 6 日
發布 androidx.security:security-app-authenticator:1.0.0-beta01
和 androidx.security:security-app-authenticator-testing:1.0.0-beta01
。1.0.0-beta01 版包含這些修訂項目。
1.0.0-alpha02 版
2023 年 12 月 13 日
發布 androidx.security:security-app-authenticator-testing:1.0.0-alpha02
。1.0.0-alpha02 版包含此連結所列的修訂項目。
修正錯誤
- 針對新的 API 行為更新測試,當未提供給
[check|enforce]CallingAppIdentity
API 時,不再假設Binder#getCalling[Uid|Pid]
。(I1851b)。
1.0.0-alpha01 版
2021 年 6 月 2 日
發布了 androidx.security:security-app-authenticator-testing:1.0.0-alpha01
。1.0.0-alpha01 版包含此連結所列的修訂項目。
新功能
此測試程式庫提供了建構工具,可用來設定可插入的 AppAuthenticator 以符合測試需求。此程式庫支援多種設定 AppAuthenticator 的方法:
- 您可以指定通用測試政策,報告設定中宣告的所有套件的簽名相符。
- 您可以指定個別套件,傳回簽名符合但是所有其他套件報告不符合的情況。
- 每個套件都可以設定明確的簽署身分;如此,只有在提供的身分與設定檔中的宣告相符時,產生的 AppAuthenticator 才會報告簽名。
- 您也可以將套件視為未安裝或包含明確的 uid。
Security-App-Authenticator 1.0.0 版
1.0.0-alpha03 版本
2023 年 12 月 13 日
發布 androidx.security:security-app-authenticator:1.0.0-alpha03
。1.0.0-alpha03 版包含此連結所列的修訂項目。
API 變更
- 新增支援案例,針對無法驗證的套件 UID / PID 提供支援;API 現已支援
startActivityForResult
和活動 / 接收器的情況,在這些情況下,發出呼叫的應用程式會透過[Activity|Broadcast]Options#setShareIdentityEnabled
共用身分。 [check|enforce]CallingAppIdentity(String, String)
的行為已更新,以便支援這些新用途;這些方法不再預設使用Binder#getCalling[Uid|Pid]
,而是會略過驗證呼叫包裝函式的 UID (如果未明確提供)。(I1851b)
1.0.0-alpha02 版
2021 年 6 月 2 日
發布了 androidx.security:security-app-authenticator:1.0.0-alpha02
。1.0.0-alpha02 版包含此連結所列的修訂項目。
API 變更
- 為支援 Android 12 中新推出的
knownSigner
權限防護標誌,您無法再於設定中指定 digestAlgorithm 屬性;所有憑證摘要都應使用 SHA-256 進行計算。
修正錯誤
- 在設定中提供的所有憑證摘要都會經過正規化,以確保系統在執行階段計算摘要,以及透過測試程式庫定義明確的簽署身分時,能夠報告簽名比對成功符合。
1.0.0-alpha01 版
2021 年 5 月 5 日
發布了 androidx.security:security-app-authenticator:1.0.0-alpha01
。1.0.0-alpha01 版包含此連結所列的修訂項目。
新功能
AppAuthenticator 是一個新的程式庫,旨在根據簽署身分簡化應用程式信任的驗證作業。應用程式只需指定一個 XML 設定檔,裡面須包含信任應用程式的檔案包名稱和簽署身分;程式庫將負責在執行階段驗證應用程式的簽署身分。
1.1.0 版本
1.1.0-alpha06 版本
2023 年 4 月 19 日
發布 androidx.security:security-crypto:1.1.0-alpha06
和 androidx.security:security-crypto-ktx:1.1.0-alpha06
。1.1.0-alpha06 版本包含以下修訂項目。
新功能
- 將 Tink 依附元件更新至 1.8.0
1.1.0-alpha05 版本
2023 年 2 月 22 日
發布 androidx.security:security-crypto:1.1.0-alpha05
和 androidx.security:security-crypto-ktx:1.1.0-alpha05
。查看 1.1.0-alpha05 版的修訂項。
修正錯誤
- 修正了
MasterKeys.getOrCreate
中的競爭狀況 (I3391e、b/268572037)
1.1.0-alpha04 版本
2022 年 11 月 9 日
發布了 androidx.security:security-crypto:1.1.0-alpha04
和 androidx.security:security-crypto-ktx:1.1.0-alpha04
。1.1.0-alpha04 版本包含以下修訂項目。
新功能
- 已移除應用程式首次啟動時顯示的「找不到金鑰組,將產生一個新的金輪組」訊息 (b/185219606)。
- 已將 Tink 依附元件升級至 1.7.0 版。
API 變更
- 當要求的檔案不存在時,請變更
EncryptedFile#openFileInput()
,以擲回FileNotFoundException
,而非一般的IOException
(I80e41、b/148804719)。 - 更新了「MasterKeys」類別,從而需要使用 Android M,而非其每個方法 (I8b4b8)。
- 變更
EncryptedSharedPreferences
(例如#getString
、#getInt
) 上的所有偏好 getter,以便在值的類型與定義的任何列舉變化版本都不相符的罕見情況下擲回SecurityException
(b/241699427)。
修正錯誤
- 已將 security-crypto-ktx 程式庫的最低 SDK 版本與 security-crypto 同步,將其降低至 v21 (b/193550375)
- 修正了建構多個
EncryptedFile
時的並行錯誤 (b/136590547)
外部貢獻
- 收到了來自 chr.ibbotson@gmail.com 的
EncryptedSharedPreferences.Editor#remove
的修正方法 (b/224994760、b/134197835、f44d44d)
Security-Crypto-Ktx 1.1.0-alpha03 版
2021 年 5 月 18 日
發布了 androidx.security:security-crypto-ktx:1.1.0-alpha03
。1.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-alpha03
。1.1.0-alpha03 版包含此連結所列的修訂項目。
新功能
- 已將 Tink 更新至穩定版
1.5.0
1.1.0-alpha02 版本
2020 年 8 月 5 日
發布了 androidx.security:security-crypto:1.1.0-alpha02
和 androidx.security:security-crypto-ktx:1.1.0-alpha02
。查看 1.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-alpha01
。1.1.0-alpha01 版包含以下修訂項目。
新功能
- 現在可支援 Lollipop (API 級別 21 以上)。請注意,AndroidKeyStore 不會用於 API 21 和 22 (I7c12d、b/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-alpha03
。1.0.0-alpha03 版包含以下修訂項目。
新功能
- Android 12 中已新增對於硬體支援身分憑證功能的支援。
1.0.0-alpha02 版
2021 年 2 月 24 日
發布了 androidx.security:security-identity-credential:1.0.0-alpha02
。1.0.0-alpha02 版包含此連結所列的修訂項目。
修正錯誤
- 更新身分憑證 API 以符合 Android 12 方案 (Iff83e)
1.0.0-alpha01 版
2020 年 8 月 19 日
發布了 androidx.security:security-identity-credential:1.0.0-alpha01
。1.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.0
。1.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-rc04
。1.0.0-rc04 版包含以下修訂項目。
修正錯誤
- 已將 Tink 升級至 1.5.0 以提高穩定性。
1.0.0-rc03 版
2020 年 8 月 5 日
發布了 androidx.security:security-crypto:1.0.0-rc03
。1.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-rc02
。查看 1.0.0-rc02 版的修訂項。
修正錯誤
- 已更新 Tink 版本 1.4.0-rc2,可遮蔽 proto buf lite 部分。這解決了廣泛回報與其他 Android SDK 發生衝突的問題。(I8a831)
- 已修正
EncryptedSharedPreferences
中的apply()
。(I29069、b/154366606)
1.0.0-rc01 版
2020 年 4 月 15 日
發布了 androidx.security:security-crypto:1.0.0-rc01
。1.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 提供簡單的金鑰產生。