安全

安全地管理密钥并加密文件和 sharedpreferences。

此表列出了 androidx.security 组中的所有构件。

构件 稳定版 候选版 Beta 版 Alpha 版
security-crypto 1.0.0 - - 1.1.0-alpha06
security-app-authenticator - - 1.0.0-beta01 -
security-identity-credential - - - 1.0.0-alpha03
此库上次更新于:2024 年 8 月 7 日

声明依赖项

要添加对 Security 的依赖项,您必须将 Google Maven 存储库添加到您的项目中。阅读 Google 的 Maven 存储库 以了解更多信息。

在应用或模块的 build.gradle 文件中添加所需构件的依赖项

有关依赖项的更多信息,请参阅 添加构建依赖项

反馈

您的反馈有助于改进 Jetpack。如果您发现新的问题或有改进此库的想法,请告知我们。在创建新问题之前,请查看此库中 现有问题。您可以通过点击星形按钮为现有问题添加您的投票。

创建新问题

有关更多信息,请参阅 问题跟踪器文档

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 版本包含这些提交

错误修复

  • 修复 Android 安全公告错误的 ASB-A- 模式、其他组件的 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-beta01androidx.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-alpha021.0.0-alpha02 版本包含这些提交。

错误修复

  • 更新了对不再假设 Binder#getCalling[Uid|Pid](未提供给 [check|enforce]CallingAppIdentity API 时)的新 API 行为的测试。(I1851b

1.0.0-alpha01 版本

2021 年 6 月 2 日

已发布 androidx.security:security-app-authenticator-testing:1.0.0-alpha011.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-alpha031.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-alpha021.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-alpha011.0.0-alpha01 版本包含这些提交。

新功能

AppAuthenticator 是一个新的库,旨在简化基于签名标识的应用程序信任验证。应用程序只需要指定一个包含受信任应用程序的包名称和签名标识的 XML 配置文件,库将在运行时负责验证应用程序的签名标识。

1.1.0 版本

1.1.0-alpha06 版本

2023 年 4 月 19 日

已发布 androidx.security:security-crypto:1.1.0-alpha06androidx.security:security-crypto-ktx:1.1.0-alpha061.1.0-alpha06 版本包含这些提交。

新功能

  • 将 Tink 依赖项更新到 1.8.0

1.1.0-alpha05 版本

2023 年 2 月 22 日

已发布 androidx.security:security-crypto:1.1.0-alpha05androidx.security:security-crypto-ktx:1.1.0-alpha051.1.0-alpha05 版本包含这些提交。

错误修复

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 上的所有首选项 getter(例如 #getString#getInt),在极少数情况下无法将值的类型与已定义的枚举变体之一匹配时,抛出 SecurityException。(b/241699427

错误修复

  • 通过将其降低到 v21,将 security-crypto-ktx 库的最低 SDK 版本与 security-crypto 同步(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 版本包含这些提交。

新功能

  • 现在支持棒棒糖(API 级别 21+)。请注意,对于 API 21 和 22,使用 AndroidKeyStore。(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 版本具有 Identity Credential API 的 Jetpack 版本,该版本已添加到 Android 11 和 API 级别 30。如果在 Android 11 上运行并且设备具有基于硬件的身份凭据支持,则此 Jetpack 只会将调用转发到平台 API。否则,将使用基于 Android Keystore 的实现。虽然基于 Android Keystore 的实现并未提供相同级别的安全性和隐私性,但对于在所有数据都由发行者签名的用例中,它对于持有人和发行者来说都完全足够。此库需要 API 级别 24 或更高版本。

身份凭证 API 提供了与安全存储的用户身份文档的接口。这些 API 故意设计得相当通用和抽象。在尽可能的范围内,与凭证验证设备和发证机构 (IA) 通信的消息格式和语义规范不在这些 API 的范围内。这些 API 所依赖的数据结构与即将发布的 ISO/IEC IS 18013-5 个人识别 — 符合 ISO 标准的驾驶执照 — 第 5 部分:移动驾驶执照 (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 的实现,自动加密/解密所有键和值。
  • 通过 MasterKeys 提供简单的密钥生成。
  • 依赖 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()。(I29069b/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 的实现,自动加密/解密所有键和值。
  • 通过 MasterKeys 提供简单的密钥生成。