A medida que los teléfonos se vuelven más rápidos e inteligentes, juegan un papel cada vez más importante en nuestras vidas, funcionando como nuestra memoria extendida, nuestra conexión con el mundo en general y, a menudo, la interfaz principal para comunicarse con amigos, familiares y comunidades más amplias. Es bastante natural que, como parte de esta evolución, hayamos llegado a confiar nuestra información más privada a nuestros teléfonos y, de muchas maneras, los tratemos como extensiones de nuestras identidades digitales y físicas.
Esta confianza es fundamental para el equipo de seguridad de Android. El equipo se compromete a garantizar que los dispositivos Android respeten la privacidad y la sensibilidad de los datos de los usuarios. Un aspecto fundamental de este trabajo se centra en la pantalla de bloqueo, que actúa como la proverbial puerta de entrada a nuestros dispositivos. Después de todo, la pantalla de bloqueo garantiza que solo los usuarios previstos de un dispositivo puedan acceder a sus datos privados.
Esta publicación de blog ilustra las mejoras recientes sobre cómo los usuarios interactúan con la pantalla de bloqueo en los dispositivos Android y, en general, con la autenticación. En particular, nos enfocamos en dos categorías de autenticación que presentan un inmenso potencial y un riesgo potencialmente inmenso si no están bien diseñadas: biometría y modalidades ambientales.
Antes de entrar en los detalles de la pantalla de bloqueo y las mejoras de autenticación, nos gustaría establecer primero un contexto para ayudar a relacionar estas mejoras entre sí. Una buena forma de imaginar estos cambios es ponerlos en el marco del modelo de autenticación multinivel una clasificación conceptual de todos los diferentes modos de autenticación en Android, cómo se relacionan entre sí y cómo están limitados según esta clasificación. .
El modelo en sí es bastante simple, clasifica los modos de autenticación en tres rangos de niveles de seguridad decrecientes y restricciones que aumentan proporcionalmente. El nivel primario es el menos restringido en el sentido de que los usuarios necesitan volver a ingresar a un modo primario solo en ciertas situaciones (por ejemplo, después de cada arranque o cada 72 horas) para usar su capacidad. Los niveles secundario y terciario están más restringidos porque no se pueden configurar y utilizar sin antes registrar una modalidad primaria y tienen más restricciones que limitan aún más sus capacidades.
- Nivel primario – Factor de conocimiento : El primer nivel consta de modos basados en factores de conocimiento o algo que el usuario conoce, como un PIN, patrón o contraseña . Los buenos factores de conocimiento de alta entropía, como las contraseñas complejas que son difíciles de adivinar, ofrecen la mayor garantía potencial de identidad.
Los factores de conocimiento son particularmente útiles en Android porque los dispositivos ofrecen protección de fuerza bruta respaldada por hardware con retroceso exponencial, lo que significa que los dispositivos Android evitan que los atacantes adivinen repetidamente un PIN, patrón o contraseña al tener tiempos de espera soportados por hardware cada 5 intentos fallidos. Los factores de conocimiento también brindan beneficios adicionales a todos los usuarios que los utilizan, como el cifrado basado en archivos (FBE) y la copia de seguridad del dispositivo cifrado.
- Nivel secundario – Biometría : El segundo nivel consiste principalmente en datos biométricos, o algo que el usuario es . La autenticación basada en rostros o huellas dactilares son ejemplos de modos de autenticación secundarios. La biometría ofrece una forma más conveniente pero potencialmente menos segura de confirmar su identidad con un dispositivo.
Profundizaremos en la biometría de Android en la siguiente sección.
- Nivel terciario – Ambiental : El último nivel incluye modos que se basan en algo que el usuario posee . Esto podría ser un token físico, por ejemplo, con dispositivos confiables Smart Lock donde un teléfono se puede desbloquear cuando se empareja con un dispositivo Bluetooth seguro. O podría ser algo inherente al entorno físico alrededor del dispositivo, como los lugares de confianza de Smart Lock donde se puede desbloquear un teléfono cuando se lleva a un lugar seguro.
Mejoras en la autenticación terciaria
Si bien tanto los lugares confiables como los dispositivos confiables (y los modos terciarios en general) ofrecen formas convenientes de acceder al contenido de su dispositivo, el problema fundamental que comparten es que, en última instancia, Soy un [19659007] proxy deficiente para la identidad del usuario . Por ejemplo, un atacante podría desbloquear un teléfono extraviado utilizando el lugar de confianza simplemente conduciéndolo más allá de la casa del usuario o con un esfuerzo moderado, simulando una señal de GPS usando radios estándar definidas por software y algunos scripts suaves. Al igual que en Trusted Device, acceder a un dispositivo bluetooth protegido por lista también le permite acceder a todos los datos en el teléfono del usuario.
Por esta razón, se ha realizado una mejora significativa en el nivel ambiental en Android 10. En cambio, el nivel terciario se ha cambiado de un mecanismo de desbloqueo activo a un mecanismo de desbloqueo extensible . En este nuevo modo, un modo de nivel terciario ya no puede desbloquear un dispositivo bloqueado. Sin embargo, si el dispositivo se desbloquea primero usando un modo primario o secundario, puede continuar manteniéndolo en el estado desbloqueado por hasta cuatro horas.
Las implementaciones biométricas vienen con una amplia variedad de características de seguridad, por lo que confiamos en los siguientes dos factores clave para determinar la seguridad de una implementación en particular:
- Seguridad arquitectónica : La resistencia de una tubería biométrica contra el compromiso del kernel o la plataforma. Una canalización se considera segura si los intercambios entre el kernel y la plataforma no garantizan la capacidad de leer datos biométricos sin procesar o insertar datos sintéticos en la canalización para influir en una decisión de autenticación.
- Spoofability : se mide usando la tasa de aceptación de spoof (SAR). SAR es una métrica introducida por primera vez en Android P y está destinada a medir la resistencia de un biométrico contra un atacante dedicado. Lea más sobre SAR y su medición en Medición de seguridad de desbloqueo biométrico.
Usamos estos dos factores para clasificar la biometría en una de tres clases diferentes en orden descendente de seguridad:
- Clase 3 (anteriormente Strong)
- Clase 2 (anteriormente Débil)
- Clase 1 (antes conveniencia)
Cada clase viene con un conjunto asociado de restricciones que tienen como objetivo equilibrar su facilidad de uso con el nivel de seguridad que ofrecen.
Estas restricciones reflejan el período de tiempo antes de que un biométrico recurra a la autenticación primaria y la integración de aplicaciones permitidas. Por ejemplo, un biométrico de Clase 3 disfruta de los tiempos de espera más largos y ofrece todas las opciones de integración para las aplicaciones, mientras que un biométrico de Clase 1 tiene los tiempos de espera más cortos y no tiene opciones para la integración de aplicaciones. Puede ver un resumen de los detalles en la tabla siguiente o los detalles completos en el Documento de definición de compatibilidad de Android (CDD) de Android.
1 La integración de aplicaciones significa exponer una API a las aplicaciones (por ejemplo, mediante la integración con BiometricPrompt / BiometricManager, androidx.biometric o API FIDO2)
2 La integración del almacén de claves significa integrar el almacén de claves, por ejemplo, para liberar las claves asociadas con la autorización de la aplicación.
Beneficios y advertencias
La biometría proporciona comodidad a los usuarios al tiempo que mantiene un alto nivel de seguridad. Dado que los usuarios necesitan establecer un modo de autenticación principal para usar datos biométricos, esto ayuda a aumentar la adopción de la pantalla de bloqueo (vemos un promedio de un 20% más de adopción de la pantalla de bloqueo en dispositivos que ofrecen datos biométricos que aquellos que no lo hacen hacer). Esto permite que varios usuarios se beneficien de las funciones de seguridad que ofrece la pantalla de bloqueo: borra el acceso no autorizado a datos confidenciales del usuario y también confiere otros beneficios de un modo de autenticación principal a estos usuarios, como copias de seguridad encriptadas. Por último, la biometría también ayuda a reducir los ataques de navegación por el hombro en los que un atacante intenta reproducir un PIN, patrón o contraseña después de observar a un usuario que ingresa sus credenciales.
Sin embargo, es importante que los usuarios comprendan las compensaciones involucradas en el uso de la biometría. El principal de ellos es que ningún sistema biométrico es infalible. Esto es cierto no solo en Android, sino en todos los sistemas operativos, factores de forma y tecnologías. Por ejemplo, una implementación de rostro biométrico podría ser engañada por miembros de la familia que se parecen al usuario o por una máscara 3D del usuario. Una implementación biométrica de la huella dactilar podría evitarse mediante la suplantación realizada por las huellas dactilares latentes del usuario. Aunque las tecnologías anti-spoofing o Presentation Attack Detection (PAD) se han desarrollado activamente para mitigar tales ataques de spoofing, son mitigaciones, no prevención.
Un esfuerzo que Android ha hecho para mitigar el riesgo potencial de usar datos biométricos es el modo de bloqueo introducido en Android P. Los usuarios de Android pueden usar esta función para deshabilitar temporalmente los datos biométricos, junto con Smart Lock (p. Ej. por ejemplo, lugares de confianza y dispositivos de confianza), así como notificaciones en la pantalla de bloqueo, cuando sientan la necesidad.
Para usar el modo de bloqueo, los usuarios primero deben establecer un modo de autenticación principal y luego habilitarlo en la configuración. La configuración exacta en la que puede habilitar el modo de bloqueo varía según el modelo de dispositivo y en un dispositivo Google Pixel 4 se encuentra en Configuración> Pantalla> Pantalla de bloqueo> Mostrar opción de bloqueo. Una vez habilitado, los usuarios pueden activar el modo de bloqueo manteniendo presionado el botón de encendido y luego haciendo clic en el icono de bloqueo en el menú de encendido. Un dispositivo en modo bloqueado volverá al estado desbloqueado después de que se use un modo de autenticación principal (como un PIN, patrón o contraseña) para desbloquear el dispositivo.
Para permitir que los desarrolladores se beneficien de la garantía de seguridad proporcionada por la biometría de Android e integrar fácilmente la autenticación biométrica en sus aplicaciones para proteger mejor los datos confidenciales de los usuarios, hemos introducido la API BiometricPrompt
en Android P.
Existen varias ventajas al utilizar la API BiometricPrompt. Más importante aún, estas API permiten a los desarrolladores de aplicaciones enrutar datos biométricos independientemente del modo en diferentes dispositivos Android (es decir, BiometricPrompt se puede usar como un único punto de integración para varios modos biométricos compatibles con los dispositivos), mientras se controla La seguridad garantiza que la autenticación debe proporcionar (como solicitar datos biométricos de Clase 3 o Clase 2, con las credenciales del dispositivo como reserva). De esta forma, ayuda a proteger los datos de la aplicación con un segundo nivel de defensas (además de la pantalla de bloqueo) y, a su vez, respeta la sensibilidad de los datos del usuario. Además, BiometricPrompt proporciona una interfaz de usuario persistente con opciones de personalización para cierta información (por ejemplo, título y descripción), ofreciendo una experiencia de usuario consistente en todos los modos biométricos y en todos los dispositivos Android.
Como se muestra en el siguiente diagrama de arquitectura, las aplicaciones se pueden integrar con datos biométricos en dispositivos Android a través del marco de API o biblioteca de soporte (es decir, androidx.biometric
para compatibilidad con versiones anteriores). Una cosa a tener en cuenta es que FingerprintManager
está en desuso porque se anima a los desarrolladores a migrar a BiometricPrompt
para autenticaciones independientes del modo.
Mejoras en BiometricPrompt
Android 10 introdujo la clase BiometricManager
que los desarrolladores pueden usar para consultar la disponibilidad de autenticación biométrica e incluye huellas dactilares y huellas dactilares. integración de autenticación facial para BiometricPrompt
.
En Android 11, presentamos nuevas funciones como la interfaz BiometricManager.Authenticators
que permite a los desarrolladores especificar los tipos de autenticación que aceptan sus aplicaciones, así como compatibilidad adicional con las claves de autenticación que deben usar. dentro de la clase BiometricPrompt
.
Más detalles están disponibles en la vista previa de Android 11 y la documentación de Android Biometrics. Obtenga más información sobre el uso de API BiometricPrompt
en nuestra publicación de blog Using BiometricPrompt with CryptoObject: How and Why y nuestro codelab Login con Biometrics en Android.