Implementar un código de acceso para autenticar a los usuarios de la aplicación [duplicar]

3

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.

    
pregunta Sherlock 16.11.2015 - 15:06
fuente

3 respuestas

1

No necesitas hacer nada especial aquí.

Es suficiente almacenar el token localmente en el almacenamiento de la aplicación.

Vale la pena considerar la caducidad periódica del token que requiere una autenticación más completa a través de un token SMS, un token de correo electrónico o un nombre de usuario y contraseña.

    
respondido por el Alain O'Dea 16.11.2015 - 17:07
fuente
0

Planteas una pregunta intrigante, aunque no hay una respuesta para esto, supongo que puedo ayudarte a darte algunas sugerencias como un elemento de reflexión.

1, usa seriales de hardware? Sé que esto no siempre es posible en ciertas formas de planta, pero pensé que lo mencionaría.

2, UUID, usa este y tu propia ID que generas, cifra esto en la base de datos (o hash) si creas un alogirthm suficientemente bueno puedes crear tu propio token basado en el UUID y enviarlo a través de una conexión segura .

3, número de teléfono, utilizando una combinación de UUID y el número de teléfono del dispositivo, puede crear una buena identificación segura.

Por lo que puedo decir, está intentando utilizar un método muy estándar que no está muy lejos del uso de un nombre de usuario / contraseña normal. La única diferencia aquí es que está intentando crear el nombre de usuario para ellos. en la mayoría de los casos, las personas pueden encontrar fácilmente un nombre de usuario y tratar de forzarlo brutalmente, aunque siempre debe usar un IP fail2ban.

Hay un sinfín de posibles soluciones para esto, supongo que solo depende de los datos que intenta proteger y de cómo transfiere / almacena la información.

    
respondido por el TheHidden 16.11.2015 - 16:22
fuente
0

Por lo tanto, necesita un secreto compartido que sea exclusivo del dispositivo. ¿Qué pasa con las huellas dactilares del dispositivo? es decir, calcular un hash basado en la confuguración de hardware del dispositivo. Estos se consideran robustos y confiables para dispositivos donde el hardware no es intercambiable en caliente. De hecho, los HSM y el software de CA utilizan esto como parte de su resistencia a la manipulación indebida.

La búsqueda de "huellas dactilares de dispositivos móviles" en Google da una pila de resultados interesantes. Este documento académico en particular llamó mi atención . Del resumen:

  

Demostramos cómo la multitud de sensores en un teléfono inteligente   Se puede utilizar para construir una huella digital de hardware confiable   del teléfono. Tal huella dactilar puede ser utilizada   para anonimizar dispositivos móviles cuando se conectan a la web   sitios, y como segundo factor en la identificación legítima   usuarios a un servidor remoto. Presentamos dos implementaciones:   Una basada en el análisis de la respuesta de frecuencia.   del sistema de altavoz-micrófono, y otro   basado en el análisis de la calibración del acelerómetro específico del dispositivo   errores Nuestra huella digital basada en acelerómetro es especialmente   Interesante porque el acelerómetro es accesible.   a través de JavaScript que se ejecuta en un navegador web móvil sin   solicitar cualquier permiso o notificar al usuario.

    
respondido por el Mike Ounsworth 16.11.2015 - 16:35
fuente

Lea otras preguntas en las etiquetas