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 actual Próxima versión potencial Versión beta Versión Alfa
security-crypto 1.0.0 - - 1.1.0-alpha03
security-app-authenticator - - - 1.0.0-alpha02
security-identity-credential - - - 1.0.0-alpha03
Esta biblioteca se actualizó por última vez el 1 de septiembre de 2021

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:

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")

}

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 en esta biblioteca antes de crear uno nuevo. Para agregar tu voto a un error existente, haz clic en el botón de la estrella.

Cómo crear un error nuevo

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

Security-App-Authenticator versión 1.0.0

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.

Security-App-Authenticator-Testing 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.

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

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 proporciona el mismo nivel de seguridad y privacidad, es absolutamente adecuada tanto para los titulares como para las entidades emisoras en casos en los que todos los datos estén firmados por estas 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.