Seguridad

Administra claves y encripta archivos y preferencias compartidas de forma segura.

En esta tabla, se enumeran todos los artefactos del grupo androidx.security.

Artefacto Versión estable Versión potencial Versión beta Versión Alfa
security-crypto 1.0.0 - - 1.1.0-alpha06
security-app-authenticator - - 1.0.0-beta01 -
security-identity-credential - - - 1.0.0-alpha03
Esta biblioteca se actualizó por última vez el 6 de marzo de 2024.

Cómo declarar dependencias

Para agregar una dependencia en Security, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Security-App-Auth-Testing versión 1.0

Versión 1.0.0-beta01

6 de marzo de 2024

Lanzamiento de androidx.security:security-app-authenticator:1.0.0-beta01 y androidx.security:security-app-authenticator-testing:1.0.0-beta01. La versión 1.0.0-beta01 contiene estas confirmaciones.

Versión 1.0.0-alpha02

13 de diciembre de 2023

Lanzamiento de androidx.security:security-app-authenticator-testing:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Correcciones de errores

  • Se actualizó la prueba del nuevo comportamiento de la API que ya no supone Binder#getCalling[Uid|Pid] cuando no se proporciona a las APIs de [check|enforce]CallingAppIdentity (I1851b).

Versión 1.0.0-alpha01

2 de junio de 2021

Lanzamiento de androidx.security:security-app-authenticator-testing:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

Esta biblioteca de prueba proporciona un compilador que se puede usar para configurar un AppAuthentable que se puede insertar a fin de cumplir con los requisitos de la prueba. Esta biblioteca admite varios métodos para configurar AppAutenticador:

  • Se puede especificar una política de prueba genérica que informa una coincidencia de firma para todos los paquetes declarados en la configuración.
  • Se pueden especificar paquetes individuales para mostrar una coincidencia de firma con todos los demás paquetes que no coincidan.
  • Se pueden establecer identidades de firma explícitas para cada paquete. Luego, el AppAuthenticator que se arroje como resultado solo informará una coincidencia de firma si la identidad proporcionada coincide con la declaración en el archivo de configuración.
  • Los paquetes también se pueden tratar como no instalados o que tienen un uid explícito.

Security-App-Authenticator versión 1.0.0

Versión 1.0.0-alpha03

13 de diciembre de 2023

Lanzamiento de androidx.security:security-app-authenticator:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Cambios en la API

  • Se agregó compatibilidad para casos de uso en los que no está disponible el UID / PID del paquete que se verificará. Las APIs ahora admiten casos como startActivityForResult y actividades / receptores en los que se comparte la identidad de la app que realiza la llamada a través de [Activity|Broadcast]Options#setShareIdentityEnabled.
  • Se actualizó el comportamiento de [check|enforce]CallingAppIdentity(String, String) para admitir estos casos de uso nuevos. Estos métodos ya no usarán Binder#getCalling[Uid|Pid] de forma predeterminada, sino que omitirán la verificación del UID del paquete de llamada si no se proporciona explícitamente. (I1851b).

Versión 1.0.0-alpha02

2 de junio de 2021

Lanzamiento de androidx.security:security-app-authenticator:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Cambios en la API

  • A fin de admitir la nueva marca de protección de permisos del elemento knownSigner que se introdujo en Android 12, el atributo digestAlgorithm ya no se puede especificar en la configuración. En su lugar, todos los resúmenes de certificados se deben calcular mediante SHA-256.

Correcciones de errores

  • Todos los resúmenes de certificados que se proporcionan en la configuración ahora se normalizan para garantizar que se pueda informar una coincidencia de firma exitosa cuando se calcula el resumen en el tiempo de ejecución y también cuando se define una identidad de firma explícita cuando se usa la biblioteca de pruebas.

Versión 1.0.0-alpha01

5 de mayo de 2021

Lanzamiento de androidx.security:security-app-authenticator:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

AppAuthenticator es una nueva biblioteca que simplifica la forma de verificar que las apps sean de confianza en función de la identidad de las firmas. Las apps solo deben especificar un archivo de configuración XML que contenga los nombres de paquetes y las identidades de las firmas de las apps de confianza. La biblioteca se encargará de verificarlas durante el tiempo de ejecución.

Versión 1.1.0

Versión 1.1.0-alpha06

19 de abril de 2023

Lanzamiento de androidx.security:security-crypto:1.1.0-alpha06 y androidx.security:security-crypto-ktx:1.1.0-alpha06. La versión 1.1.0-alpha06 contiene estas confirmaciones.

Nuevas funciones

  • Se actualizó la dependencia de Tink a la versión 1.8.0.

Versión 1.1.0-alpha05

22 de febrero de 2023

Lanzamiento de androidx.security:security-crypto:1.1.0-alpha05 y androidx.security:security-crypto-ktx:1.1.0-alpha05. La versión 1.1.0-alpha05 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió una condición de carrera en MasterKeys.getOrCreate (I3391e, b/268572037).

Versión 1.1.0-alpha04

9 de noviembre de 2022

Lanzamiento de androidx.security:security-crypto:1.1.0-alpha04 y androidx.security:security-crypto-ktx:1.1.0-alpha04. La versión 1.1.0-alpha04 contiene estas confirmaciones.

Nuevas funciones

  • Se quitó el mensaje de registro que indicaba que no se encontró el conjunto de claves y se generaría uno nuevo cuando se inicia la app por primera vez (b/185219606).
  • Se actualizó la dependencia de Tink a la versión 1.7.0.

Cambios en la API

  • Se cambió EncryptedFile#openFileInput() para que arroje un FileNotFoundException, en lugar de un IOException genérico cuando el archivo solicitado no existe (I80e41, b/148804719).
  • Se actualizó la clase "MasterKeys" para que requiera Android M en lugar de cada uno de sus métodos (I8b4b8).
  • Se cambiaron todos los métodos get de preferencias en EncryptedSharedPreferences (p. ej., #getString y #getInt) para que arrojen SecurityException en circunstancias excepcionales en las que el tipo de valor no pueda coincidir con una de las variantes de tipo enum definidas (b/241699427).

Correcciones de errores

  • Se sincronizó la versión mínima del SDK de la biblioteca security-crypto-ktx con security-crypto reduciendo la versión a 21 (b/193550375).
  • Se corrigió un error de simultaneidad que ocurría cuando se compilaban varios EncryptedFile (b/136590547).

Contribución externa

Security-Crypto-Ktx versión 1.1.0-alpha03

18 de mayo de 2021

Lanzamiento de androidx.security:security-crypto-ktx:1.1.0-alpha03. La versión 1.1.0-alpha03 contiene estas confirmaciones.

Se actualizó para que coincida con androidx.security:security-crypto:1.1.0-alpha03.

Versión 1.1.0-alpha03

2 de diciembre de 2020

Lanzamiento de androidx.security:security-crypto:1.1.0-alpha03. La versión 1.1.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • Se actualizó Tink a la versión estable 1.5.0.

Versión 1.1.0-alpha02

5 de agosto de 2020

Lanzamiento de androidx.security:security-crypto:1.1.0-alpha02 y androidx.security:security-crypto-ktx:1.1.0-alpha02. La versión 1.1.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

  • Se actualizó Tink a la versión estable 1.4.0.

Correcciones de errores

  • La actualización de Tink debería solucionar los problemas de R8 y ProGuard mediante la dependencia Protobuf de sombras.
  • La actualización de Tink debería resolver fácilmente las fallas de simultaneidad de AndroidKeyStore.

Contribución externa

  • Borra mKeysChanged cuando se lo aplique a fin de corregir EncryptedSharedPreferences (aosp/1323026).

Versión 1.1.0-alpha01

10 de junio de 2020

Lanzamiento de androidx.security:security-crypto:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Ahora se admite Lollipop (nivel de API 21 y versiones posteriores). Ten en cuenta que no se usa AndroidKeyStore en las API 21 y 22. (I7c12d, b/132325342)
  • La nueva clase MasterKey brinda más opciones para las claves y también retira MasterKeys a fin de admitir nuevas funciones y versiones de Android que no tienen KeyGenParamSpec.

Security-Identity-Credential versión 1.0.0

Versión 1.0.0-alpha03

1 de septiembre de 2021

Lanzamiento de androidx.security:security-identity-credential:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó compatibilidad para funciones Identity Credential con copia de seguridad en hardware en Android 12.

Versión 1.0.0-alpha02

24 de febrero de 2021

Lanzamiento de androidx.security:security-identity-credential:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Correcciones de errores

  • Actualizamos la API de Identity Credential para que coincida con los planes de Android 12. (Iff83e)

Versión 1.0.0-alpha01

19 de agosto de 2020

Lanzamiento de androidx.security:security-identity-credential:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

Esta versión de Jetpack incluye una versión de las API de credenciales de identidad para Jetpack, que se agregó a Android 11 y al nivel de API 30. Si se ejecuta en Android 11 y el dispositivo tiene compatibilidad con credenciales de identidad con copia de seguridad en hardware, esta versión de Jetpack simplemente reenviará las llamadas a la API de la plataforma. De lo contrario, se usará una implementación con copia de seguridad en Android Keystore. Si bien esta implementación no brinda el mismo nivel de seguridad y privacidad, es totalmente adecuada tanto para entidades titulares y las emisoras en casos en los que todos los datos estén firmados por estas últimas entidades. Esta biblioteca requiere un nivel de API 24 o superior.

Las API de credenciales de identidad proporcionan una interfaz para lograr un almacenamiento seguro de los documentos de identidad de los usuarios. Estas API son intencionalmente generales y abstractas. En la medida de lo posible, la especificación de los formatos de mensajes y la semántica de la comunicación con los dispositivos de verificación de credenciales y las Autoridades emisoras (IA) están fuera del alcance de estas API. Las estructuras de datos de las que dependen las API son compatibles con aquellas en el estándar próximo a publicarse ISO/IEC DIS 1801-5 Identificación personal - Licencia de conducir conforme a ISO — Parte 5: Solicitud de licencias de conducir en dispositivos móviles (mDL).

Cambios en la API

  • Se agregó Credenciales de Identidad para Jetpack. (Icf90b)

Versión 1.0.0

Versión 1.0.0

21 de abril de 2021

Lanzamiento de androidx.security:security-crypto:1.0.0. La versión 1.0.0 contiene estas confirmaciones.

Funciones principales de la versión 1.0.0

Características principales

  • EncryptedFile proporciona transmisiones de entrada y salida encriptadas para leer o escribir datos encriptados en un archivo.
  • EncryptedSharedPreferences proporciona una implementación de SharedPreferences que encripta y desencripta automáticamente todas las claves y los valores.
  • Proporciona una generación de claves simple mediante MasterKeys.
  • Se basa en Tink 1.5.0 para aumentar la estabilidad.

Versión 1.0.0-rc04

13 de enero de 2021

Lanzamiento de androidx.security:security-crypto:1.0.0-rc04. La versión 1.0.0-rc04 contiene estas confirmaciones.

Correcciones de errores

  • Se actualizó Tink a la versión 1.5.0 para aumentar la estabilidad.

Versión 1.0.0-rc03

5 de agosto de 2020

Lanzamiento de androidx.security:security-crypto:1.0.0-rc03. La versión 1.0.0-rc03 contiene estas confirmaciones.

Nuevas funciones

  • Se actualizó Tink a la versión estable 1.4.0.

Correcciones de errores

  • La actualización de Tink debería solucionar los problemas de R8 y ProGuard mediante la dependencia Protobuf de sombras.
  • La actualización de Tink debería resolver fácilmente las fallas de simultaneidad de AndroidKeyStore.

Contribución externa

  • Borra mKeysChanged cuando se lo aplique a fin de corregir EncryptedSharedPreferences (aosp/1323026).

Versión 1.0.0-rc02

20 de mayo de 2020

Lanzamiento de androidx.security:security-crypto:1.0.0-rc02. La versión 1.0.0-rc02 contiene estas confirmaciones.

Correcciones de errores

  • Se actualizó a la versión 1.4.0-rc2 de Tink, que corrige la dependencia del búfer de protocolo en modo lite. Esto soluciona el problema ampliamente denunciado del conflicto con otros SDK de Android (I8a831).
  • Se corrigió apply() en EncryptedSharedPreferences (I29069, b/154366606).

Versión 1.0.0-rc01

15 de abril de 2020

Lanzamiento de androidx.security:security-crypto:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

Correcciones de errores

  • Se agregaron marcas para garantizar que, si se pasa un KeyGenParamSpec a MasterKeys.getOrCreate, getUserAuthenticationRequired muestra true y getUserAuthenticationValidityDurationSeconds muestra un valor > 0 (I911f5) (b/152644939).

Versión 1.0.0-beta01

18 de marzo de 2020

Lanzamiento de androidx.security:security-crypto:1.0.0-beta01 sin cambios desde 1.0.0-alpha02. La versión 1.0.0-beta01 contiene estas confirmaciones.

Versión 1.0.0-alpha02

23 de mayo de 2019

Lanzamiento de androidx.security:security-crypto:1.0.0-alpha02. Para conocer las confirmaciones incluidas en esta versión, consulta el registro de confirmaciones.

Correcciones de errores

  • Se solucionó un problema que se generaba al recuperar claves/valores asociados con las preferencias compartidas de getAll().
  • Se bloqueó el uso de claves de preferencia restringidas.
  • Se realizaron actualizaciones menores en Javadoc.

Versión 1.0.0-alpha01

7 de mayo de 2019

Lanzamiento de androidx.security:security-crypto:1.0.0-alpha01. Para conocer las confirmaciones incluidas en esta versión, consulta este artículo.

Nuevas funciones destacadas

  • EncryptedFile proporciona transmisiones de entrada y salida encriptadas para leer o escribir datos encriptados en un archivo.
  • EncryptedSharedPreferences proporciona una implementación de SharedPreferences que encripta y desencripta automáticamente todas las claves y los valores.
  • Proporciona una generación de claves simple mediante MasterKeys.