Con respecto a la implementación de seguridad de contraseña de Olvido

3

Necesito su sugerencia sobre esto.

Considerar Tenemos una aplicación móvil y una gran cantidad de usuarios. Queremos implementar la funcionalidad de restablecimiento seguro de contraseña con el consentimiento de la experiencia del usuario.

Supuesto: aquí, todos asumimos que el pirata informático ha robado el teléfono de la víctima, por lo que la implementación tradicional de restablecimiento de contraseña no funcionará como:

  • Si enviamos OTP para restablecer la contraseña en el teléfono, el pirata informático ya tiene el teléfono de la víctima. Por lo tanto, no sirve.
  • Si enviamos el token de restablecimiento de contraseña, el pirata informático tiene un teléfono de la víctima donde, en la mayoría de los casos, la identificación del correo electrónico está vinculada y abierta en el teléfono. Por lo tanto, no sirve.

Implementación actual: si alguien solicita una solicitud de restablecimiento de contraseña, les damos una nueva contraseña después de 24 horas. Mantenemos esta ventana de tiempo para que si el teléfono del usuario es robado y el pirata informático envía una solicitud de restablecimiento de contraseña, el usuario debe informarnos dentro de las 24 horas para que el pirata informático no realice ninguna actividad maliciosa desde su cuenta.

Problema: tenemos que reconstruir esta implementación asumiendo que el teléfono del usuario es robado y el pirata informático nos ha enviado una solicitud para restablecer la contraseña y el usuario no nos ha informado que su teléfono fue robado en 24 horas. ¿Cómo podemos identificar lograr esta tarea sin identificar que el usuario es legítimo o no y que la cuenta del usuario sigue siendo segura?

Un par de soluciones:

  • Comenzamos a proporcionar tokens de hardware (token RSA, token VASCO) a nuestros usuarios para que, incluso si el teléfono es robado, para restablecer y usar una nueva contraseña, el pirata informático tendrá que acceder físicamente a estos tokens para iniciar sesión. (Problema: es imposible para nosotros proporcionar 500000 tokens de hardware para nuestros usuarios.
  • Números de confianza: mientras se registra, el usuario agrega dos números de confianza que se almacenan en nuestra base de datos. Con la solicitud de restablecimiento de contraseña, proporcionamos la contraseña en dos partes separadas en esos números confiables y el usuario puede acceder a la aplicación combinándolos. (Problema: la experiencia del usuario se vuelve difícil e inaceptable)
  • Mientras nos registramos, proporcionamos algunas preguntas de seguridad (no preguntas tradicionales sobre la fecha de nacimiento, el apellido de soltera de la madre, etc.), como seleccionar 1 de cada 4 colores. Seleccione 1 de 5 alimentos, etc. Mientras restablecemos la contraseña, les proporcionamos estas preguntas para responder, ya que el pirata informático no sabrá todo esto. (Problema: si me registro ahora y olvido el PIN después de 1 año, no recordaré estas respuestas, solo el caso en el que recuerdo estas respuestas es si tomé una captura de pantalla de esas respuestas mientras las registro, lo que nuevamente es una preocupación en el teléfono robado )
  • Código de copia de seguridad: proporcionamos un código de copia de seguridad a diferencia de Google durante el registro y el usuario tendrá que agregarlos para restablecer la contraseña. (Problema: en la mayoría de los casos, el usuario toma una captura de pantalla de los códigos de respaldo o almacena en la aplicación de notas, lo que nuevamente es una preocupación en el teléfono robado)

Además de estas, necesitamos otras sugerencias a través de las cuales podamos implementar alguna solución sólida y, aun así, la experiencia del usuario intente mantener la fluidez.

Estamos completamente de acuerdo en que la seguridad y la complejidad del usuario son inversamente proposicionales. Si queremos implementar seguridad a prueba de balas, la experiencia del usuario irá mal. Sin embargo, quiero respuestas de la comunidad si hay alguna manera de hacerlo.

Se agradecen las sugerencias.

    
pregunta FrOgY 03.06.2017 - 06:29
fuente

4 respuestas

1

Mi sugerencia es pasarle la pelota a los grandes: elimine su implementación personalizada y use algo como OAuth para que sus usuarios inicien sesión con google o facebook , como StackExchange !

Si debe mantener las cosas iguales: ¿por qué asume que los restablecimientos de contraseñas siempre se deben a piratas informáticos? ¿Ha medido por qué se producen restablecimientos de contraseña? Apuesto a que la mayoría de ellos se deben a que los usuarios simplemente olvidan sus contraseñas (es decir, creo que está empezando con suposiciones erróneas y que va a degradar la experiencia para la mayoría de los usuarios mientras que solo protege a un pequeño porcentaje de usuarios).

    
respondido por el drewbenn 03.06.2017 - 06:47
fuente
1

Los tokens de hardware son costosos y, a menudo, una opción costosa. Como decisión empresarial, puede ser posible pedirle al usuario que pague el costo (proporcione una lista de tokens compatibles y cualquier paso de inicialización), por lo que es una opción viable tanto en términos de costos como de logística.

Los números de confianza también son falibles (los usuarios se olvidan de actualizar la información de contacto reciente). Puede recordar a los usuarios que confirmen sus números recientes de vez en cuando (aparece como Google / Twitter / otros). ? "). Simplemente puede notificar al usuario tanto a los números primarios como a los secundarios / direcciones de correo electrónico, cubriendo así el riesgo de pérdida de cobertura de un dispositivo / número / dirección de correo electrónico. Creo que pedir la confirmación del número / dirección alt es una barrera demasiado grande para ser una seguridad efectiva.

Las preguntas de seguridad, los códigos de respaldo son los menos deseables por las razones que usted mismo señaló.

La clave aquí es usar un factor de autenticación que es poco probable que se almacene (y por lo tanto se pierda con) el dispositivo. Es necesario profundizar en su conocimiento de / relación con sus clientes para identificar esto. Por ejemplo, algunos bancos requieren que se les envíe un documento de prueba de dirección física para las solicitudes de cambio de dirección. El back office lo verifica.

De los tres factores estándar (lo que sabes, lo que tienes y lo que eres), solo el primero parece útil en este escenario. No debe ser una información estática (como Fecha de nacimiento), o información fácilmente disponible (algo en el perfil de FB).

Una posibilidad: solicite la cantidad aproximada de (o el nombre de una tienda de) una transacción reciente para avanzar. O cuando se realizó el último pago. Algo del tipo que la aplicación / BackEnd sabría, y el usuario no olvidaría tan fácilmente, pero no fuera del sistema.

    
respondido por el Sas3 03.06.2017 - 08:00
fuente
1

Creo que tu mejor opción son tus opciones 3 y 4.

Pregunta de seguridad

No soy un gran fan de las preguntas de seguridad. Personalmente, nunca recuerdo qué respuestas le di a estos. Con razón ignora el apellido de soltera de la madre y la fecha de nacimiento como demasiado fácil. Su sugerencia de elegir alimentos, colores, etc. no es tan mala idea en general: hay investigaciones que afirman que las preferencias de las personas son bastante estables con el tiempo, por lo que si eligen un determinado alimento ahora, la probabilidad de que lo hagan La misma imagen de comida en dos años es alta, incluso si no recuerdan exactamente su elección. El problema con la idea es que elegir uno de cada cinco le da a un atacante que no tiene muchas posibilidades de éxito al elegir imágenes al azar, incluso si encadena tres de estas preguntas (1 de cada 125, lo que es trivial, si tiene 500000 clientes). , un atacante determinado podría dividirse en aproximadamente 5000 de las cuentas de su cliente). Y con cada pregunta adicional, las posibilidades de que un cliente legítimo responda a una de ellas aumentan erróneamente.

También podría tener preguntas de seguridad que abran un gran número de posibilidades, cuya respuesta es estable, como "los últimos cuatro dígitos del número de su licencia de conducir" y "el número ISBN de su libro favorito", etc. en. Dependiendo de la cantidad de posibilidades que se abran, también deberá permitir que el usuario responda dos o tres de ellas (los últimos cuatro dígitos del número de su licencia de conducir solo abrirán 10000 posibilidades, lo que significa que con 500000 clientes, 50 de sus cuentas serán comprometidas por un atacante determinado, incluso si solo realiza un intento por cliente).

Código de copia de seguridad

Puede proporcionar esto como un código QR que se puede imprimir y archivar en cualquier lugar. Idealmente, si tiene una dirección postal para sus clientes, puede enviarla por correo postal. Esto sería mucho más barato que un dispositivo de seguridad de hardware (pero aún incurrirá en costos por enviar una carta).

Recuperación de la contraseña del correo postal

De hecho, si realmente tiene una dirección postal para sus clientes, simplemente podría hacer la recuperación de la contraseña a través del correo regular.

No ignore las soluciones que impliquen la posesión por teléfono

Está asumiendo que un atacante que roba el teléfono de su cliente automáticamente obtiene acceso a cualquier sistema de recuperación que configure que involucre al teléfono. Si bien esto podría ser cierto en su mayoría en teoría, yo diría que en la práctica los teléfonos no son robados principalmente para obtener acceso a la identidad digital de alguien. Lo más probable es que un ladrón de teléfono no esté interesado en los datos que se encuentran en el teléfono (aparte de mirar la galería de imágenes). Entonces, si convierte la posesión del teléfono en parte de su sistema de recuperación, eso agrega seguridad para la mayoría de los clientes.

    
respondido por el Pascal 03.06.2017 - 14:06
fuente
0

podemos hacer una cosa aquí, Cada vez que me conecto con la aplicación puedo navegar por esa aplicación solo como usuario invitado (no con acceso completo) y puedo actualizar todas las nuevas ofertas de notificaciones, etc., puedo ver todas mis cosas y todo, bueno ahora si Quiero hacer una transacción O quiero transferir dinero O conseguir dinero en mi billetera O quiero cambiar mis datos, Entonces, para eso Primero, necesito iniciar sesión con mi cuenta, y luego necesito generar OTP no. y después de eso, debo responder la pregunta de seguridad (que se usó en el tiempo de registro). Así que esto es seguridad de tres vías. y después de que se realiza la transición, se desconecta automáticamente.

de nuevo, el mismo proceso continúa ...

    
respondido por el V1Ru5 03.06.2017 - 13:30
fuente

Lea otras preguntas en las etiquetas