¿Qué seguridad adicional proporciona un proceso de inicio de sesión en un sitio web con un PIN?

20

Actualmente estoy trabajando en una aplicación web con un importante riesgo de seguridad asociado a su función. Estamos utilizando Microsoft Identity Framework para administrar los inicios de sesión de los usuarios, con el sistema forzando contraseñas seguras y el registro, que requiere la confirmación adicional por correo electrónico antes del primer uso.

Tenemos la sensación de que esto no es del todo suficiente. Uno de nuestros competidores utiliza un sistema de inicio de sesión de dos pasos con una contraseña, seguido por el usuario que ingresa tres dígitos de un PIN de seis dígitos al desplegar. Hay una sugerencia de que deberíamos copiar esto.

Personalmente, me siento incómodo al implementar una solución de este tipo sin comprender mejor sus ventajas y desventajas en comparación con las alternativas. Me parece que una entrada de capa de datos adicional que es inmune al registro de teclas no es una pieza de seguridad adicional significativa. Seguramente, si un atacante ya tiene una combinación de correo electrónico / contraseña, ¿casi cualquier forma imaginable de que hayan podido obtener esto también dará lugar a que tengan el PIN?

La alternativa obvia para fortalecer la seguridad es tener una autenticación de dos factores a través de SMS. Esto incurrirá en un costo, pero si la seguridad es primordial, parece que en realidad se agrega una protección significativa al sistema a través de un PIN, que creo que no agregará casi ninguna.

¿Cuál es el punto de tener una autenticación de PIN adicional? ¿Tiene alguna ventaja sobre la autenticación de 2 factores?

EDITAR: La solución de PIN propuesta emitiría al usuario un número de 6 dígitos generado aleatoriamente por correo electrónico. Al iniciar sesión en el sitio, primero tendrían que ingresar una contraseña (que, por supuesto, puede ser almacenada por el navegador). Si tienen éxito, se les pedirá que ingresen tres dígitos seleccionados al azar de los seis (es decir, que ingresen los caracteres primero, segundo y quinto de su PIN) a través del cuadro desplegable.

Reflexionando, supongo que esto al menos detiene el acceso no autorizado a través de alguien que confía en una contraseña almacenada desde el navegador.

    
pregunta Matt Thrower 29.06.2016 - 15:49
fuente

6 respuestas

32

Me resulta difícil ver qué beneficios de seguridad podría proporcionar esto. En la autenticación multifactor, el punto es usar diferentes factores, es decir, "algo que sabes", "algo que tienes", "algo que eres". Repetir el mismo factor dos veces parece un poco inútil.

Pero permítanme especular acerca de cuál podría ser el propósito.

1. Detener los keyloggers

Solo el malware estúpido intenta obtener contraseñas al registrar ciegamente los golpes de tecla. Requerir el uso de un menú desplegable puede proteger contra algunos programas maliciosos, pero al final, tratar de ocultar la entrada del usuario cuando la computadora ya está infectada es un juego perdedor. Consulte esta pregunta para obtener una Discusión relacionada. Al final, creo que los beneficios son pequeños aquí.

2. Aumentar la entropía

Si agrega un PIN de seis dígitos a la contraseña, obtendrá 10 6 tantas combinaciones como fuerza bruta o casi 20 bits adicionales de entropía, ¿verdad? (O 10 veces 3 o 10 bits si solo cuenta los tres dígitos ingresados.) Sí, pero ¿por qué no solo requiere una contraseña más larga?

Tal vez desee dividirlo en dos para hacer que una parte (el PIN) sea realmente aleatoria y así brindar protección a los usuarios que eligen contraseñas débiles. ¿Pero contra qué protege esto? Para los ataques en línea, ya debería tener un límite de velocidad para hacer frente a esto. Para los ataques fuera de línea, deberá codificar el PIN junto con la contraseña para obtener beneficios. Pero ya que puede iniciar sesión proporcionando solo tres de seis dígitos, no parece que estén haciendo esto (a menos que mantengan 20 hashes para todas las combinaciones de dígitos posibles).

3. Limite el efecto de las contraseñas robadas

Digamos que su contraseña es robada (por ejemplo, en un ataque de phishing). Si el ataque solo se realiza una vez, el atacante solo obtendrá la mitad del PIN. Por lo tanto, no podrá iniciar sesión fácilmente si se le piden otros dígitos que no sean los que obtuvo.

No veo esto como un gran beneficio. Simplemente repita el ataque un par de veces o intente iniciar sesión varias veces (o desde diferentes direcciones IP) hasta que se le soliciten los dígitos que tiene.

Drawbacks

  • Hace que sea más probable que los usuarios escriban el PIN (y quizás la contraseña mientras están en él) en un post o correo electrónico.
  • No puede iniciar sesión utilizando solo un administrador de contraseñas. ¿Por qué es más difícil para las personas que utilizan métodos seguros administrar sus contraseñas?

Conclusión

No puedo ver ningún beneficio de seguridad que motive que el usuario memorice un PIN adicional y se enfrente a la molestia de seleccionar números en los menús desplegables. Para mí, esto huele a teatro de seguridad . Pero quizás me esté perdiendo algo.

Edit: Sí, me perdí algo. Consulte la respuesta de supercat . Es un muy buen punto, pero no estoy seguro de que crea que valga la pena de todos modos.

    
respondido por el Anders 29.06.2016 - 16:22
fuente
18

Un sistema que bloquea una cuenta, incluso temporalmente, en respuesta a intentos de contraseña inválida hará que sea muy fácil realizar un ataque de denegación de servicio contra alguien. El uso de una autenticación de dos partes hace posible tener políticas de bloqueo muy estrictas en la segunda parte, mientras que sigue siendo resistente a los ataques de denegación de servicio. Si alguien descubriera que la contraseña de una persona en un sistema era Justin-Bieber, un sistema con una contraseña de una sola parte no sería capaz de distinguir los intentos de robo con objetivos específicos utilizando variaciones en esa contraseña (por ejemplo, Justin-Bieber1, Justin4Bieber, etc.) ) de entradas de contraseña aleatorias que están destinadas a desencadenar una denegación de servicio.

Dividir la contraseña en dos partes significaría que un atacante se daría cuenta de que la primera parte era correcta pero el premio más probable no sería el acceso a la cuenta, sino simplemente la capacidad de activar una bloquearlo hasta que el usuario real se autentique por otros medios; como el usuario sabría que alguien más tenía la contraseña principal, el usuario cambiaría esa contraseña y la volvería inútil.

    
respondido por el supercat 29.06.2016 - 19:00
fuente
16

Si desea una autenticación sólida sin el costo de enviar SMS, puede usar TOTP con la aplicación de autenticación de Google .

De hecho, la solución de pin no parece agregar mucha seguridad adicional. Tampoco entiendo completamente el mecanismo. Entran 3 dígitos de un pin de 6 dígitos. ¿Cómo obtuvieron el pin de 6 dígitos y cómo se seleccionan los dígitos del árbol? Además, 10 ^ 3 no es un número tan grande, lo que significa que el pin puede ser forzado brutalmente si no se toman medidas. Si puede aclarar el mecanismo de pin, podría dar más información sobre sus beneficios de seguridad.

EDITAR: según su actualización, esto ya es una forma débil de autenticación de dos factores, ya que el pin se comunica por correo electrónico. Por qué hay 3 dígitos seleccionados de los 6 en el correo electrónico todavía es un misterio para mí. La razón por la que digo 'débil' es porque el código pin de 3 dígitos es muy corto y puede ser forzado brutalmente si no hay otra protección presente.

Además, la opción desplegable para evitar que los keyloggers registren el pin es una forma muy débil de protección. Si tiene la capacidad de registrar las pulsaciones de teclado, también tiene la capacidad de verificar qué número está seleccionado. ¿O alguien cree que hay casos en los que el registro de teclas es posible, pero el monitoreo de clics no lo es? Tal vez en un keylogger de hardware?

    
respondido por el Silver 29.06.2016 - 15:55
fuente
8

El punto de autenticación multifactor es requerir información de múltiples fuentes para que, si un usuario está en peligro de una manera (digamos que escriben su contraseña en algún lugar y la encuentran), entonces todavía hay una capa de seguridad que impide el acceso a la cuenta.

Por lo general, los tres tipos de información de autenticación son algo que usted

  • saber : como una contraseña o un número PIN que has memorizado
  • tener : un teléfono o algún otro token de acceso que guardas en ti
  • son : una huella dactilar u otro elemento biométrico

Tanto la contraseña como el pin se consideran en la primera categoría, por lo que es probable que el pin no agregue mucha seguridad adicional , considerando que existe el riesgo de que ambos se comprometan al mismo tiempo (seguro, no hay / menos riesgo de registro de teclas, pero ¿qué sucede si la información se intercepta a través de la red o alguna otra forma de captura?).

En cuanto a las ventajas, es difícil decir sin más información. En este caso, parece que tener un pin es más barato que hacer un sistema de autenticación de dos factores "adecuado". Tal vez el modelo de amenaza sea keyloggers en las computadoras de los usuarios, y este podría ser una solución adecuada.

    
respondido por el Fishy 29.06.2016 - 16:20
fuente
1

Lo que está sucediendo aquí es que su competidor está tratando de usar el sustituto de un hombre pobre en lugar de un robusto segundo factor para la autenticación. Por cualquier motivo comercial, no quieren lidiar con la implementación de la infraestructura para implementar un código de una sola vez / mecanismo OTP (la configuración 2FA más común) para proporcionar ese segundo factor de autenticación robusto. (O diríjase a un tercero para que maneje la implementación de OTP para ellos bajo un modelo de autenticación como servicio). Los resultados de esto son bastante predecibles: por razones, otros han señalado que el sustituto de este pobre hombre no es tan difícil para que un atacante supere como un mecanismo 2FA donde debe obtener un código de un solo uso de un dispositivo separado ("algo que tiene") cada vez que inicie sesión.

sin embargo, hay algunas cosas acerca de esta disposición que hacen que sea algo preferible a solo usar una contraseña solo para la autenticación. Por el momento, los dos problemas más grandes de confiar solo en una contraseña para autenticar a un usuario son (a) el hecho de que una gran cantidad de usuarios reutilizan las contraseñas en muchas cuentas y (b) la tendencia de una gran cantidad de usuarios a elegir más fácil -Recuerda las contraseñas mas débiles. Requerir la entrada de un PIN que ha sido generado aleatoriamente por el servicio proporciona una capa adicional de protección bastante significativa contra estas enormes amenazas. (Aunque distribuir ese PIN por correo electrónico es una mala práctica, por varias razones).

Por supuesto, nada de eso te ayudará mucho si un atacante puede colocar malware en tu PC / dispositivo que registrará tu PIN cuando lo ingreses. O si él o ella puede engañarlo para que lo ingrese en un sitio de phishing. Aquí, la disposición desplegable de ingresar tres dígitos aleatorios desde el PIN de seis dígitos puede proporcionar algún beneficio modesto en algunos escenarios. Muchos keyloggers modernos tomarán capturas de pantalla del cursor del mouse cada vez que el usuario haga clic en algo, pero un malware más simple / más rudimentario todavía se apega a capturar solo las pulsaciones de tecla. Con respecto al robo del PIN a través de phishing ... bueno, aquí hay incluso menos utilidad, simplemente porque la necesidad de ingresar tres dígitos seleccionados al azar de un PIN compuesto por solo seis dígitos generalmente no es suficiente. imponiendo un problema. (Nuevamente, por razones que otros ya han explicado bien). Sin embargo, se podría argumentar que en algunos escenarios, la disposición puede proporcionar algún bit (aunque sea un poco) de utilidad adicional en lugar de simplemente hacer que el usuario ingrese su PIN completo cada vez. (Tal vez.)

Dicho todo lo anterior, sin duda, sería preferible utilizar una configuración de autenticación real de dos factores desde el punto de vista de la seguridad. Especialmente si está utilizando códigos / OTP de un solo uso generados por un token de hardware (el más seguro) o la aplicación de autenticación de teléfonos inteligentes. No hay concurso real.

    
respondido por el mostlyinformed 30.06.2016 - 21:30
fuente
0

El segundo factor de la "parte que sabes" podría ser cuál 3 de los 6 caracteres enviados por correo electrónico a usar (Mary usa 1º, 2º, 5º, John: 1-2-6, Fred y Janet : 4-5-6) ... no estoy seguro de cómo enseñarías a tus padres cuáles, pero una vez que enseñaste ese secreto no debería ser transmitido de nuevo. Y luego usa cierres herméticos también.

SMS es potencialmente vulnerable a la raya, pero tómelo con un grano de sal para ver cuán motivadas están las personas para ingresar a su sistema.

    
respondido por el tawpie 29.06.2016 - 20:21
fuente

Lea otras preguntas en las etiquetas