Separación de pasos de inicio de sesión seguros

5

Estoy rediseñando una pantalla de inicio de sesión para una aplicación de servicios financieros. Actualmente, esto solicita el ID de usuario y la contraseña, luego (en la misma pantalla) se solicitan 2 dígitos de un PIN de 6 dígitos; estos 2 dígitos solo se revelan cuando se han ingresado el ID de usuario y la contraseña.

Mirando a otros proveedores de servicios financieros, pedir un número de 2 dígitos PIN solo una vez que se haya ingresado otra información de seguridad es un patrón bastante común. ¿Hay algún beneficio significativo de este enfoque comparado con solicitar toda la información en una sola pantalla?

    
pregunta Peter 17.03.2014 - 11:00
fuente

3 respuestas

1
  

Mirando a otros proveedores de servicios financieros, pedir un número de 2 dígitos PIN solo una vez que se haya ingresado otra información de seguridad es un patrón bastante común. ¿Hay algún beneficio significativo de este enfoque en comparación con solicitar toda la información en una sola pantalla?

Supongo que los otros sistemas que ha examinado solo le informan si alguno de sus datos son incorrectos después del segundo paso y no revelan qué parte de las credenciales fue incorrecta, lo que es bueno.

Sí, hay beneficios significativos, porque entonces el índice de los dígitos solo se solicita cuando se determina qué nombre de usuario es el que está intentando autenticar.

Supongamos que un atacante de alguna manera obtuvo algunos detalles parciales de una cuenta (por ejemplo, navegando por el hombro). Digamos que saben los dígitos 2 y 3 del PIN.

Si la página solicitó todos los detalles en una página (nombre de usuario, contraseña y dos dígitos del PIN), el atacante podría simplemente actualizar la página, borrando las cookies cada vez, hasta que la solicitud del PIN fuera para los dígitos 2 y 3. del PIN.

Usando el enfoque de dos pasos, los dígitos solicitados pueden ser recordados por el sistema. p.ej. %código%. El sistema también tendría que recordar los dígitos solicitados para nombres de usuario no válidos para evitar un username enumeration ataque donde se pueden probar diferentes nombres de usuario dos veces para ver si se solicitan los mismos dígitos. Es posible que también desee actualizar artificialmente estos dígitos después de un número establecido de días para simular un inicio de sesión exitoso (de lo contrario, un atacante sabría que la cuenta no es válida o está inactiva si siempre solicitara los mismos dos dígitos en los intentos de días separados).

El otro enfoque sería solicitar todos los dígitos del PIN en la misma página, pero a los bancos no les gusta hacer esto debido a la navegación por los hombros y también los sitios de phishing pueden imitar estas páginas y capturar toda la información de una sola vez. (aunque no estoy diciendo que el enfoque escalonado necesariamente evitaría este tipo de ataques).

    
respondido por el SilverlightFox 19.05.2014 - 18:23
fuente
0

Le sugiero que permita al usuario ingresar la identificación del usuario, la contraseña y el PIN en la misma página. No veo ningún beneficio de seguridad si el usuario tiene permiso para ingresar el PIN solo después de ingresar y enviar la combinación correcta de identificación de usuario y contraseña.

Su método requeriría mantener un estado después de enviar el ID de usuario y el PIN correctos. Algo así como una sesión. Una vez que el usuario tiene una sesión, el riesgo es que el usuario pueda usar el servicio con esta sesión sin proporcionar un PIN debido a un error de implementación.

Su método propuesto agrega complejidad al proceso de autenticación. La complejidad aumenta el riesgo de errores. El proceso de autenticación debe ser simple para reducir el riesgo de errores.

La única razón por la que puedo pensar por qué algunos servicios financieros están haciendo esto (PIN después de la identificación de usuario / contraseña exitosa) es la facilidad de uso para el usuario. Si el usuario tiene que proporcionar la identificación del usuario, la contraseña y el PIN en un solo paso, la probabilidad aumenta de que algunos de los datos sean incorrectos. No se permite que el servicio le diga al usuario qué campo fue incorrecto porque esto sería una sugerencia para un atacante. Por lo tanto, el servicio le diría al usuario que algo está mal y el usuario debe verificar todos los campos nuevamente. Si se ingresa el PIN en el segundo paso y el usuario comete un error, el usuario sabe que el PIN no es correcto.

    
respondido por el DanielE 18.03.2014 - 09:07
fuente
0

No veo ningún beneficio al solicitar 2 dígitos de un PIN y una contraseña. Es sólo dos factores que "sabes". No proporciona un factor adicional de autenticación y es una molestia para el usuario.

    
respondido por el nowen 19.03.2014 - 13:48
fuente

Lea otras preguntas en las etiquetas