Logo es.androidermagazine.com
Logo es.androidermagazine.com

¿Cómo salva Android tus huellas digitales?

Anonim

El lanzamiento de un iPhone sin un sensor de huellas digitales ha traído algunas conversaciones sobre el uso de huellas digitales para la autenticación y la seguridad con la que se almacenan los datos. Eso es genial. Incluso si no te preocupa cómo se hace, ¡debes preocupar a muchas otras personas para que se haga de una manera que no tengas que preocuparte!

Para empezar, Apple usa una solución similar y si tiene un modelo más antiguo con un sensor de huellas digitales, está tan seguro de usarlo como lo estaba antes. Lo mismo ocurre con los teléfonos Samsung más antiguos que lanzaron pre-Marshmallow y utilizaron los propios métodos de Samsung.

La forma en que Google almacena sus datos de huellas digitales es la forma más segura posible con la tecnología actual. También es fascinante lo simple que es la visión general de todo el asunto una vez que lo miras. Simple y seguro es siempre un combo ganador.

El almacenamiento, por su naturaleza, no es muy seguro. Es lo mismo que escribir algo en una nota adhesiva y ponerlo en un archivador. Está ahí porque necesita estar allí, y lo mejor que puedes hacer es controlar quién tiene acceso a él. Para un archivador, usa un candado, y para su teléfono, usa encriptación. Para sus datos de huellas digitales, las cosas van un paso más allá: un entorno de ejecución de confianza (TEE).

Un TEE es un área separada y aislada en el hardware del teléfono. Un TEE puede usar su propio procesador y memoria o puede usar una instancia virtualizada en la CPU principal. En ambos casos, el TEE está completamente aislado y aislado utilizando memoria respaldada por hardware y protección de entrada / salida. La única forma en que entrará es si el TEE lo deja entrar, y nunca lo hará. Incluso si el teléfono está rooteado o el gestor de arranque desbloqueado, el TEE está separado y aún intacto.

Se utiliza un procesador separado con su propia memoria y sistema operativo para analizar y almacenar sus datos de huellas digitales.

Google utiliza lo que llaman Trusty TEE para respaldar esto. Un sistema operativo muy pequeño y eficiente, apropiadamente llamado Trusty OS, se ejecuta en el hardware TEE y los controladores del núcleo le permiten comunicarse con el sistema. Hay bibliotecas de Android (lo adivinaste: la API de confianza) para que los desarrolladores las usen y puedan preguntar qué equivale a una pregunta de sí o no para el TEE. No solo los datos de huellas digitales se almacenan en el TEE. Cosas como las claves DRM y las claves de cifrado del cargador de arranque del fabricante también viven en el TEE y funcionan de la misma manera que sus datos de huellas digitales: responda si los datos que le presenta una aplicación coinciden con los buenos datos conocidos que está almacenando.

Otros fabricantes pueden usar Trusty OS o luego pueden usar un sistema diferente. Siempre que se cumplan todos los criterios (enumerados a continuación) y el TEE esté aislado y aislado, cumplirá con los estándares de seguridad necesarios para utilizar Pixel Imprint (anteriormente Nexus Imprint).

ARM TrustZone TEE diagrama de bloques.

Cuando registra una huella digital en su teléfono Android, el sensor toma los datos del escaneo. Trusty OS analiza estos datos dentro del TEE, luego crea dos cosas: un conjunto de datos de validación y una plantilla de huella digital cifrada. Esto parece ser datos basura para todo, excepto el TEE, que también tiene la clave para descifrar esos datos basura. Esta plantilla de huella digital cifrada se almacena en un contenedor cifrado en el TEE o en el almacenamiento cifrado de su teléfono. Tres capas de cifrado significan que es casi imposible obtener los datos, e incluso si pudiera, es inútil sin una forma de descifrarlos.

Android requiere que sus datos de huellas digitales estén protegidos con una clave única, y usted no puede llevarlos a otro teléfono o reutilizarlos para otro usuario.

Los datos de validación se almacenan dentro del TEE. Cuando coloca el dedo en el escáner para intentar hacer algo, el escáner crea un perfil de datos. A través de la API Trusty, la aplicación asociada le pide al kernel que le pregunte al TEE si es correcto. El TEE verifica los datos de validación almacenados utilizando su procesador y memoria separados, y si una cantidad suficiente de datos coincide, dice que sí. Si no hay suficientes datos coincidentes, dice que no. Esta respuesta de aprobación o falla se envía de vuelta al kernel como un token de software que la API puede leer para ver el resultado.

Mientras que el TEE en sí usa un sistema operativo y hardware independientes para mantenerse seguro, la plantilla de huellas digitales usa encriptación basada en software. Debe estar firmado por una clave muy específica para que sea válido. Esta clave se crea utilizando información específica del dispositivo, información específica del usuario e información específica del tiempo. En otras palabras, si elimina un usuario, cambia de dispositivo o intenta volver a registrar una huella digital (el sistema puede determinar si está sobrescribiendo una huella digital existente), la clave ya no se reconoce y no se puede usar para descifrar la huella digital modelo.

Las reglas básicas que toda empresa que fabrica teléfonos Android con un sensor de huellas digitales debe seguir:

  • Todos los análisis de datos de huellas digitales deben realizarse dentro del TEE
  • Todos los datos asociados con una huella digital deben almacenarse en el TEE o en una memoria confiable (memoria que la CPU principal ni siquiera puede ver)
  • Los datos del perfil de huellas digitales deben autocifrarse, incluso si se almacenan en el almacenamiento cifrado del teléfono
  • La eliminación de una cuenta de usuario también debe borrar de forma segura cualquier dato asociado con las huellas digitales de ese usuario
  • Donde se almacenan los perfiles de huellas digitales no debe ser visible para ninguna aplicación, proceso o usuario, incluido el usuario raíz
  • Los datos de huellas digitales de cualquier tipo no deben ser respaldados en ninguna otra fuente, incluida la nube o su computadora o cualquier aplicación
  • La autenticación de huellas digitales debe ser utilizada por el proceso que la solicitó (no compartir datos de huellas digitales, incluso solo la respuesta sí o no para ver si era correcta)

Cuando tiene algunas especificaciones estándar que son claras, no es difícil cumplirlas. Esto es lo que asegura que, sin importar qué teléfono Android esté usando, sus datos de huellas digitales se almacenarán de manera segura y ningún otro proceso o aplicación del sistema podrá acceder a ellos. A medida que evoluciona la criptografía, especialmente el cifrado respaldado por hardware, también lo hará este método para mantener sus datos de huellas digitales seguros. Será interesante mirar hacia atrás una vez que se inicie Android Z y ver cuán lejos hemos llegado.