Almacenamiento de la contraseña de la cuenta en el llavero iOS para habilitar el inicio de sesión con TouchID

3

Actualmente, en medio de un proceso bastante largo de decisión sobre el uso de TouchID dentro de una aplicación que se está desarrollando debido a problemas de seguridad, y se preguntó si alguien tenía algún consejo.

La idea desde el punto de vista del producto es que un usuario puede registrarse con la aplicación con un nombre de usuario / contraseña (flujo de bog estándar en caso de retroceso para dispositivos sin identificación táctil) y luego en una fecha posterior, si activado a través de las preferencias de la aplicación, use el sistema TouchID para 'iniciar sesión' en la aplicación en lugar de escribir un nombre de usuario / contraseña nuevamente.

Mi preocupación es que, de alguna manera, esto significa que tenemos que almacenar algo en el dispositivo (que se puede recuperar al tocarlo con éxito), lo que puede autenticar al usuario y permitirle acceder a la API (a través del token JWT, pero probablemente no importa).

Esto va en contra de casi todo lo que he leído y en el que he estado involucrado en lo que respecta al desarrollo de aplicaciones móviles, que almacena cualquier cosa sensible en el dispositivo cliente y se abre a un vector de ataque.

Sin embargo, muchas aplicaciones ya lo hacen, así que me pregunto cuál sería un proceso típico para habilitar tal característica.

La aplicación es sensible por naturaleza, tiene alguna gestión de información personal que sería mala si se filtrara, si esto hace una diferencia en el enfoque.

Gracias de antemano

    
pregunta watdo 30.06.2016 - 19:39
fuente

1 respuesta

1

Supongamos que tiene una aplicación de iOS que acepta un nombre de usuario y un código de acceso. Esta información de inicio de sesión sería ingresada por el usuario, entonces usted podría almacenar ese estado al guardar las credenciales en el Llavero, que es el único lugar lo suficientemente seguro para almacenar esa información en el dispositivo.

Si lo anterior ya está en su lugar, el agregar Touch ID solo aumenta la seguridad porque la API de iOS Touch ID funciona simplemente al desbloquear los elementos del llavero. Por lo tanto, usaría el marco de autenticación local para solicitar la autenticación de ID táctil. Esta API presentaría la IU en la pantalla, enviaría los datos de huellas dactilares cifrados al Enclave seguro y le enviaría un resultado que simplemente especifica si la coincidencia fue exitosa o no, opcionalmente desbloqueando el elemento de llavero asociado para el elemento de inicio de sesión del usuario. En ningún momento se le da acceso a la aplicación a los datos de huellas dactilares de su aplicación, y si necesita una autenticación adicional, puede asociar un elemento de llavero que se desbloquearía en caso de éxito.

    
respondido por el Matthew Seaman 19.07.2016 - 04:55
fuente

Lea otras preguntas en las etiquetas