Безопасность

Безопасное управление ключами, шифрование файлов и общих настроек.

В этой таблице перечислены все артефакты в группе androidx.security .

Артефакт Стабильный релиз Кандидат на релиз Бета-релиз Альфа-релиз
безопасность-крипто 1.0.0 - - 1.1.0-альфа07
приложение-безопасности-аутентификатор - 1.0.0-rc01 - -
безопасность-идентификация-учетные данные - - - 1.0.0-альфа03
Последнее обновление этой библиотеки: 20 мая 2025 г.

Объявление зависимостей

Чтобы добавить зависимость от Security, необходимо добавить репозиторий Google Maven в свой проект. Прочтите репозиторий Google Maven для получения дополнительной информации.

Добавьте зависимости для необходимых артефактов в файл build.gradle для вашего приложения или модуля:

Дополнительную информацию о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Сообщите нам, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новый выпуск

Более подробную информацию смотрите в документации Issue Tracker .

Состояние безопасности Версия 1.0

Версия 1.0.0-beta01

26 февраля 2025 г.

Выпущен androidx.security:security-state:1.0.0-beta01 . Версия 1.0.0-beta01 содержит эти коммиты .

Исправление ошибок

  • Исправлена ​​ошибка, из-за которой getPatchedCves() не возвращал исправленные CVE для COMPONENT_SYSTEM_MODULES . ( Ice5e2 )

Версия 1.0.0-альфа05

29 января 2025 г.

Выпущен androidx.security:security-state:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит эти коммиты .

Новые возможности

  • Имена пакетов системных модулей по умолчанию были добавлены в манифест библиотеки, чтобы позволить клиентским приложениям получать Device SPL для системных модулей. ( Ic259c )

Изменения API

  • SecurityStateManager переименован в SecurityStateManagerCompat , добавлена ​​дополнительная документация для публичных свойств и функций, а также методы getComponentSecurityPatchLevel и getVulnerabilityReportUrl сделаны статическими. ( I44a0c )
  • Функциональность обновления доступности (методы listAvailableUpdates() и getAvailableSecurityPatchLevel() ) на данный момент удалена из API и планируется вернуть ее в будущем обновлении библиотеки. ( Idbc5e )
  • Доступ к Vendor SPL теперь защищен флагом времени компиляции, который по умолчанию отключен до будущего обновления библиотеки. ( I45b58 )
  • getGlobalSecurityState() теперь возвращает глобальное состояние безопасности из системной службы для SDK 35+. ( I7b9da )

Исправление ошибок

  • Исправлен сбой, возникавший при попытке получить опубликованный SPL для ядра на старых версиях Android, где опубликованные версии ядра LTS недоступны. ( I93dff )

Версия 1.0.0-альфа04

7 августа 2024 г.

Выпущен androidx.security:security-state:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит эти коммиты .

Примечание

  • Обновите compileSdk до версии 35 5dc41be

Изменения API

  • Критическое изменение: компонент enum был заменен строковыми константами для расширения. ( Ia3283 )

Версия 1.0.0-альфа03

10 июля 2024 г.

Выпущен androidx.security:security-state:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит эти коммиты .

Исправление ошибок

  • Исправление шаблона ASB-A для ошибок бюллетеня безопасности Android, анализ JSON для дополнительных компонентов и пакетное извлечение Webview . ( Ide86a )

Версия 1.0.0-альфа02

26 июня 2024 г.

Выпущен androidx.security:security-state:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты .

Исправление ошибок

  • Исправлена ​​логика получения версии ядра. ( I5602a )

Версия 1.0.0-альфа01

12 июня 2024 г.

Выпущен androidx.security:security-state:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит эти коммиты .

Новые возможности

  • Security State — это новая библиотека, которую разработчики могут использовать для получения полезных данных о версиях обновляемых компонентов системы, обновлениях безопасности и примененных исправлениях.

Security-App-Authenticator-Тестирование версии 1.0

Версия 1.0.0-rc01

20 мая 2025 г.

Выпущены androidx.security:security-app-authenticator:1.0.0-rc01 и androidx.security:security-app-authenticator-testing:1.0.0-rc01 . Версия 1.0.0-rc01 содержит эти коммиты .

Версия 1.0.0-beta01

6 марта 2024 г.

Выпущены 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-альфа02

13 декабря 2023 г.

Выпущен androidx.security:security-app-authenticator-testing:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты.

Исправление ошибок

  • Обновлен тест для нового поведения API, которое больше не предполагает Binder#getCalling[Uid|Pid] если он не предоставлен в API [check|enforce]CallingAppIdentity . ( I1851b )

Версия 1.0.0-альфа01

2 июня 2021 г.

Выпущен 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-альфа03

13 декабря 2023 г.

Выпущен 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-альфа02

2 июня 2021 г.

Выпущен androidx.security:security-app-authenticator:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты.

Изменения API

  • В рамках подготовки к поддержке нового флага защиты разрешений knownSigner , представленного в Android 12, атрибут digestAlgorithm больше не может быть указан в конфигурации; вместо этого все дайджесты сертификатов должны вычисляться с использованием SHA-256.

Исправление ошибок

  • Все дайджесты сертификатов, предоставленные в конфигурации, теперь нормализованы, чтобы гарантировать, что успешное совпадение подписей может быть сообщено как при вычислении дайджеста во время выполнения, так и при явном определении личности подписи при использовании библиотеки тестирования.

Версия 1.0.0-альфа01

5 мая 2021 г.

Выпущен androidx.security:security-app-authenticator:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит эти коммиты.

Новые возможности

AppAuthenticator — это новая библиотека, направленная на упрощение проверки доверия приложений на основе подписи удостоверения. Приложению просто нужно указать файл конфигурации XML, содержащий имена пакетов и подписи удостоверений доверенных приложений, и библиотека позаботится о проверке подписи удостоверения приложений во время выполнения.

Версия 1.1.0

Версия 1.1.0-альфа07

9 апреля 2025 г.

Выпущены androidx.security:security-crypto:1.1.0-alpha07 и androidx.security:security-crypto-ktx:1.1.0-alpha07 . Версия 1.1.0-alpha07 содержит эти коммиты .

Изменения API

  • Отменены все API в пользу существующих API платформы и прямого использования Android Keystore.

Версия 1.1.0-альфа06

19 апреля 2023 г.

Выпущены 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-альфа05

22 февраля 2023 г.

Выпущены 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-альфа04

9 ноября 2022 г.

Выпущены 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 ), чтобы они вызывали исключение SecurityException в редких случаях, когда тип значения не может быть сопоставлен ни с одним из определенных вариантов перечисления. ( b/241699427 )

Исправление ошибок

  • Синхронизирована минимальная версия SDK библиотеки security-crypto-ktx с security-crypto путем понижения ее до v21 ( b/193550375 )
  • Исправлена ​​ошибка параллелизма при создании нескольких EncryptedFile ( b/136590547 )

Внешний вклад

  • Получено исправление для EncryptedSharedPreferences.Editor#remove от chr.ibbotson@gmail.com ( b/224994760 , b/134197835 , f44d44d )

Security-Crypto-Ktx Версия 1.1.0-alpha03

18 мая 2021 г.

Выпущен androidx.security:security-crypto-ktx:1.1.0-alpha03 . Версия 1.1.0-alpha03 содержит эти коммиты.

Обновлено для соответствия androidx.security:security-crypto:1.1.0-alpha03 .

Версия 1.1.0-альфа03

2 декабря 2020 г.

Выпущен androidx.security:security-crypto:1.1.0-alpha03 . Версия 1.1.0-alpha03 содержит эти коммиты.

Новые возможности

  • Обновление Tink до стабильной версии 1.5.0

Версия 1.1.0-альфа02

5 августа 2020 г.

Выпущены 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-альфа01

10 июня 2020 г.

Выпущен androidx.security:security-crypto:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит эти коммиты.

Новые возможности

  • Lollipop (API Level 21+) теперь поддерживается. Обратите внимание, что AndroidKeyStore не используется для API 21 и 22. ( I7c12d , b/132325342 )
  • Новый класс MasterKey предоставляет больше возможностей для ключей, а также прекращает поддержку MasterKey для поддержки новых функций и версий Android, в которых нет KeyGenParamSpec.

Безопасность-Идентификация-Учетные данные Версия 1.0.0

Версия 1.0.0-альфа03

1 сентября 2021 г.

Выпущен androidx.security:security-identity-credential:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит эти коммиты.

Новые возможности

  • Добавлена ​​поддержка аппаратных функций идентификации в Android 12.

Версия 1.0.0-альфа02

24 февраля 2021 г.

Выпущен androidx.security:security-identity-credential:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты.

Исправление ошибок

  • Обновление API учетных данных удостоверения личности для соответствия планам Android 12 ( Iff83e )

Версия 1.0.0-альфа01

19 августа 2020 г.

Выпущен androidx.security:security-identity-credential:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит эти коммиты.

Новые возможности

В этом выпуске Jetpack представлена ​​версия Jetpack API Identity Credential, которая была добавлена ​​в Android 11 и API уровня 30. Если устройство работает на Android 11 и имеет аппаратную поддержку Identity Credential, то этот 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

21 апреля 2021 г.

Выпущен 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

13 января 2021 г.

Выпущен androidx.security:security-crypto:1.0.0-rc04 . Версия 1.0.0-rc04 содержит эти коммиты.

Исправление ошибок

  • Обновление Tink до версии 1.5.0 для повышения стабильности.

Версия 1.0.0-rc03

5 августа 2020 г.

Выпущен 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

20 мая 2020 г.

Выпущен androidx.security:security-crypto:1.0.0-rc02 . Версия 1.0.0-rc02 содержит эти коммиты.

Исправление ошибок

  • Обновлено до версии Tink 1.4.0-rc2, которая затеняет proto buf lite dep. Это решает широко известную проблему конфликта с другими Android SDK. ( I8a831 )
  • Исправлен apply() в EncryptedSharedPreferences . ( I29069 , b/154366606 )

Версия 1.0.0-rc01

15 апреля 2020 г.

Выпущен 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

18 марта 2020 г.

androidx.security:security-crypto:1.0.0-beta01 выпущен без изменений с 1.0.0-alpha02 . Версия 1.0.0-beta01 содержит эти коммиты .

Версия 1.0.0-альфа02

23 мая 2019 г.

androidx.security:security-crypto:1.0.0-alpha02 выпущен. Коммиты, включенные в эту версию, можно найти в этом журнале коммитов .

Исправления ошибок

  • Исправлена ​​проблема с получением ключей/значений, связанных с общими настройками, из getAll() .
  • Заблокировано использование ограниченных ключей настроек.
  • Незначительные обновления Javadoc.

Версия 1.0.0-альфа01

7 мая 2019 г.

Выпущен androidx.security:security-crypto:1.0.0-alpha01 . Коммиты, включенные в эту версию, можно найти здесь .

Основные моменты новых функций

  • EncryptedFile предоставляет зашифрованные входные и выходные потоки для чтения/записи зашифрованных данных в файл.
  • EncryptedSharedPreferences — обеспечивает реализацию SharedPreferences , которая автоматически шифрует/расшифровывает все ключи и значения.
  • Обеспечивает простую генерацию ключей с помощью MasterKeys.