Método para integrar Touch ID en aplicaciones iOS

7

Con el reciente anuncio de las API de identificación táctil para aplicaciones de terceros, me pregunto cómo podemos aprovechar esta función para realizar transacciones seguras. Estoy buscando un método para usar Touch ID en mi aplicación de pago. Una opción es almacenar la contraseña en el llavero y agregar políticas de acceso para invocar Touch ID durante el pago, pero el problema es que si la contraseña del dispositivo está comprometida, el usuario puede revertir a la contraseña del dispositivo para acceder a la contraseña almacenada en el llavero. ¿Alguien sabe un mejor mecanismo para administrar la contraseña y amp; hacer la transacción más suave & seguro utilizando Touch ID?

    
pregunta Bharath 13.07.2014 - 10:05
fuente

4 respuestas

1

El acceso al llavero de autenticación mediante el uso de un escaneo biométrico con el código de paso del dispositivo como una copia de seguridad cuando falla la autenticación. Pero se puede usar la API de LAContext para invocar directamente la autenticación biométrica y realizar acciones basadas en el resultado.

LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
NSString *myLocalizedReasonString = <#String explaining why app needs authentication#>;

if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
    [myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                  localizedReason:myLocalizedReasonString
                            reply:^(BOOL success, NSError *error) {
            if (success) {
                // User authenticated successfully, take appropriate action
            } else {
                // User did not authenticate successfully, look at error and take appropriate action
            }
        }];
} else {
    // Could not evaluate policy; look at authError and present an appropriate message to user
}
    
respondido por el ram kumar 16.09.2014 - 19:26
fuente
1

No use Touch ID para nada más allá de la pantalla de bloqueo de Apple. En otras palabras, no lo use en aplicaciones, ni almacene / lea ningún detalle relacionado con Touch ID en el llavero de iOS.

Razón # 1: enlace

Touch ID se puede subvertir por completo simplemente adjuntando un hooker (como cycript) e indicando a la API LocalAuthentication que la huella digital es válida. Incluso hay aplicaciones de Cydia como SuccessID para simplificar en exceso la tarea de omitir Touch ID.

Algunos pueden decir que esto requiere un dispositivo con Jailbreak, pero eso no es cierto, también se puede volver a empaquetar una aplicación en un dispositivo con cárcel. Bishop Fox demuestra ese proceso aquí: enlace

Motivo # 2: enlace

"Los dispositivos Apple tienen un proceso de inscripción informal: si conoce el código de acceso de un dispositivo, puede registrar una o más huellas digitales. No existe ninguna vinculación entre la persona que presenta un dedo y la identidad digital que representa el dispositivo. Esto podría estar bien. cuando se autoriza el desbloqueo de un teléfono, pero se vuelve problemático cuando puede autorizar pagos u otras acciones altamente sensibles ".

Razón # 3: Solo el factor estúpido. Si vas a un bar con un amigo que ama arrastrarte, ¿qué puede evitar que él o ella te engañen para que te deslicen (o si te desmayas por beber demasiado?)? Después de descubrir que se ha visto comprometido, puede cambiar su PIN o código de acceso, pero no puede cambiar su huella digital.

    
respondido por el atdre 15.05.2015 - 17:23
fuente
0

Una posibilidad aquí sería que el usuario no genere realmente una contraseña, la aplicación podría generar una cadena aleatoria cuando la autenticación biométrica local tenga éxito en la creación de la cuenta. Esta cadena generada aleatoriamente podría usarse como una contraseña para generar el secreto compartido entre el cliente y el servidor. Almacena este secreto compartido en el llavero.

Cuando necesite realizar una transacción, el usuario podría validar con su pulgar o cualquier característica biométrica que se use en el futuro para acceder al secreto dentro del llavero. Esto podría usarse para habilitar la transacción.

    
respondido por el Roderic Campbell 16.08.2014 - 02:41
fuente
0

Touch ID es fácilmente roto si alguien puede levantar su huella digital (que es más fácil de lo que la mayoría de la gente piensa). Por lo tanto, no debe confiar en Touch ID para su seguridad.

    
respondido por el fel1x 17.08.2014 - 20:33
fuente

Lea otras preguntas en las etiquetas