Esta pregunta está relacionada con this .
Estamos ocupados implementando la autenticación de código de acceso de 5 dígitos para nuestra aplicación (Android, iPhone), pero nos encontramos con una complejidad. No estamos seguros de cómo podemos identificar de manera segura el dispositivo desde el cual la aplicación realiza la solicitud. Podemos enviar y registrar la identificación del dispositivo (UUID) con el usuario, pero esa identificación no es secreta, por lo que cualquiera que sepa que UUID podría intentar autenticarse con el servidor utilizando la contraseña.
La respuesta en la pregunta relacionada menciona esto: "Durante el registro del dispositivo, la aplicación en el dispositivo (ya sea un teléfono o una computadora portátil) genera un valor secreto y lo envía al banco; también lo almacena".
Eso suena razonable, pero ¿cómo almacenamos ese valor secreto en el teléfono? Podríamos usar el almacenamiento local, pero ¿qué tan seguro es eso? ¿Es eso suficiente?
Otra forma sería establecer una cookie (persistente) al registrar el código de acceso. Pero tampoco estoy seguro de lo seguro que es.
Veo que este sistema está implementado en muchas aplicaciones, pero no hay mucha información en la web.