¿La sincronización de pulsaciones de teclas podría mejorar la seguridad de una contraseña?

101

Cuando era joven, y acababa de comenzar mi carrera de desarrollo de software hace 20 años, escribí un poco de código en mi Amiga que tomó una contraseña, pero también grabó (dentro de algún umbral), la velocidad en en el que se escribió cada letra de una contraseña.

Esto significaba que, no solo el usuario tenía que escribir la contraseña correcta, sino que también tenía que presionar las teclas. Para probarlo, tendría un ritmo en mi cabeza y podría volver a escribir la contraseña constantemente cada vez. Sin embargo, si lo escribí regularmente o lentamente, no fue aceptado.

No soy un experto en seguridad (mi programación se encuentra en áreas menos difíciles, afortunadamente), pero de repente pensé en ese programa que escribí cuando era joven y si era una adición viable a la seguridad en estos días, o si es Ni siquiera vale la pena pensarlo.

Toque - Taptaptap - TapTap - Toque .

    
pregunta Moo-Juice 28.04.2016 - 21:31
fuente

14 respuestas

100

El término que busca es " dinámica de pulsación de tecla " o "biometría de pulsación de tecla" y es un campo interesante y en crecimiento .

La idea es que un individuo escribe ciertas teclas de una manera determinada que no cambia mucho con el tiempo. Si puedes mapear esas dinámicas, entonces podrías potencialmente eliminar las contraseñas y simplemente hacer que el usuario escriba cualquier cosa .

    
respondido por el schroeder 28.04.2016 - 22:54
fuente
87

Creo que sería muy, muy molesto para los usuarios legítimos de su aplicación o sitio web. Cosas como un dedo roto, o simplemente sostener un sándwich en una mano, podrían inutilizar su inicio de sesión. Además, debe alentar el uso de administradores de contraseñas, ya sea que enviarán las pulsaciones con mucha rapidez o no las enviarán en absoluto. Su esquema probablemente impediría que funcionen incluso los mejores administradores de contraseñas.

    
respondido por el Ben 28.04.2016 - 22:16
fuente
38

Hay algunos buenos, otros malos, y algunos REALMENTE feos aquí.

El bien
Aumenta la entropía de las contraseñas y dificulta la fuerza bruta

Lo malo
Se basa en algo que puede grabarse y cronometrarse de manera audible y necesita tolerancias de fallas, lo que significa que algo solo tiene que estar lo suficientemente cerca para hacer que este punto discutible

El REALMENTE feo
La gente cambia con el tiempo. Por una multitud de razones (lesión, edad, olvidando cómo va el patrón) es posible que ya no puedan ingresarlo a la misma velocidad y frecuencia exactas o dentro de las tolerancias y, de hecho, perjudica la capacidad de los usuarios para usar el servicio

Entonces, aunque es una buena idea y un campo interesante, en realidad no es más que difícil para los humanos mantener la entropía en la contraseña. Peor aún, es fácil recrear el patrón con máquinas. Hará que sea más difícil de hackear sin el conocimiento previo de la persona o el patrón, pero también podría empeorar la experiencia de un usuario con su servicio con el tiempo y facilitar la recopilación de información local sobre la entropía de la contraseña.

    
respondido por el Robert Mennell 28.04.2016 - 23:17
fuente
18
  

si era una adición viable a la seguridad en estos días

La única razón por la que no creo que sea viable es que la gente inicie sesión desde tantos dispositivos diferentes en estos días. Puedo prometerle que no hay una correlación con el ritmo con el que escribo mi contraseña en mi escritorio principal de trabajo y el teclado Swype en mi tableta.

    
respondido por el user1717828 29.04.2016 - 00:28
fuente
13

Sí, es más seguro. Haría que una contraseña cronometrada de 8 caracteres sea tan fuerte como una contraseña no temporizada de ~ 9.5 caracteres.

Esta sería una forma de dinámica de pulsación de tecla . Ha sido un área en investigación activa por un tiempo, ¡aunque el software que se ejecuta en un Amiga probablemente sea anterior a la mayoría de ellos!

Hay un paquete de Python para eso , en caso de que quieras experimentar en un lenguaje más moderno (descargo de responsabilidad: lo escribió) .

Algunos servicios modernos usan esta técnica , como Coursera, que lo usa para asegurarse de que la persona que está respondiendo a una prueba es el usuario real .

Exploremos un poco de teoría para responder tu pregunta. Las opciones habituales para la autenticación humana son:

  • Algo que sabes (contraseña, código PIN)
  • Algo que tienes (teléfono celular, token de hardware, tarjeta inteligente)
  • Algo que eres (huella digital, iris, marcha ). Generalmente, biometrics .

Las dinámicas de pulsación pertenecen a la tercera categoría. Por lo general, los buenos sistemas de autenticación dependen de tener más de uno de estos. Cuando se usan dos sistemas diferentes, esto se conoce comúnmente como autenticación de dos factores .

Por lo general, los datos biométricos vienen con un par de advertencias :

  • Pueden cambiar con el tiempo. Su patrón de escritura cambiará con la hora del día, la altura de su silla y escritorio, el teclado que está usando y muchos otros factores
  • Se pueden perder irremediablemente. Si logra perder un dedo, nunca podrá autenticarse.

Sin embargo, su diseño no emplea un biométrico tradicional. Le está pidiendo al usuario que recuerde un patrón de escritura. Esto caería en la primera categoría ( algo que sabes ), así que, efectivamente, puedes medir la cantidad de seguridad que agrega usando entropy .

Suponiendo que su sistema tiene dos posibles duraciones de pulsación de tecla (lo que parece dar a entender su ejemplo), esto agrega un poco de entropía por carácter, por lo que una contraseña cronometrada de 8 caracteres sería tan fuerte como una longitud de ~ 9.5 caracteres. contraseña cronometrada.

Por supuesto, el diseño también tiene fallas, en comparación con la dinámica biométrica de las teclas:

  • el hecho de que el patrón sea muy distintivo lo hará más susceptible a un atacante con una grabadora de audio
  • Dado que el patrón es conocido por el usuario, puede ser obligado a revelarlo. La dinámica tradicional de pulsación de tecla se puede utilizar como autenticación implícita .
respondido por el goncalopp 29.04.2016 - 03:29
fuente
6

Dado que esto básicamente excluye el uso de un administrador de contraseñas, que es una de las mejores prácticas de referencia para la seguridad de contraseñas, no mejora pero daña la seguridad de las contraseñas.

    
respondido por el R.. 28.04.2016 - 23:50
fuente
5

Es una buena idea, y el efecto neto sería un aumento en la entropía de la contraseña. Por ejemplo, suponga que su umbral es de 1/4 de segundo y la pausa máxima es de 1 segundo. En algún punto, las pausas se convertirían en bits, y esto aumentaría efectivamente el conjunto de caracteres de la contraseña en 4X; p.ej. un conjunto de 80 caracteres se convertiría en un conjunto de 320 caracteres. Una contraseña de 10 dígitos con 80 caracteres posibles se volvería un millón de veces más difícil de aplicar mediante la fuerza bruta. Otra forma de decir que su contraseña de 10 caracteres sería más como 13 o 14 caracteres.

Hablando en términos prácticos, el principal beneficio que veo es que probablemente sea más fácil para los humanos recordar el ritmo de una canción combinada con 10 caracteres que recordar 14 caracteres. Pero las mejores contraseñas son aquellas que los humanos no pueden recordar de todos modos, por lo que probablemente sería mucho más simple (para todas las partes involucradas) agregar solo algunos caracteres más a su contraseña para lograr el mismo aumento de entropía.

    
respondido por el TTT 28.04.2016 - 22:54
fuente
5

He trabajado un poco en esto y en algunas áreas relacionadas, y mi respuesta a la pregunta depende de cuánto tiempo disponga:

Respuesta corta: Sí, con un pero.

En pocas palabras, como descubrió anteriormente, hay similitudes en las pulsaciones de teclas observadas (u otros patrones biométricos de comportamiento). Estos pueden, en teoría, ser usados para seguridad adicional, pero las tasas de falso positivo y falso negativo son comparativamente altas, por lo que la facilidad de uso es cuestionable, y no hay bibliotecas preinstaladas que yo recomendaría como confiables. p>

Respuesta más larga: No, sin embargo.

El problema con la biometría de comportamiento en el contexto de la seguridad es que no se ajusta a nuestros modelos actuales. Si te dan una contraseña, está bien, o está mal. Si algo está midiendo tu iris, es una coincidencia o no lo es. No hay margen de maniobra ni margen de maniobra, uno u otro, autenticación binaria.

Los comportamientos no hacen esto. Los comportamientos cambian según la hora del día, la hora del mes, el clima exterior. Puede decir "este aspecto como esta persona", pero no hay una respuesta de "sí / no" cortada y seca, lo que los hace malos en la autenticación tradicional, especialmente con tamaños de muestra cortos como contraseñas.

Por otra parte, hay una gran cantidad de análisis de comportamiento que se puede medir (uso de la red, pulsación de teclas, uso del mouse, movimiento y muchos otros). Estos pueden combinarse para proporcionar una indicación de confianza sostenida durante un período prolongado. Así, por ejemplo, podría iniciar sesión en su máquina y no le permitiría acceder a su banco porque todavía no está verificado. Haga algunas otras cosas que necesita, trabaje por un tiempo, y los algoritmos devuelven un buen valor de confianza, y se otorga acceso a sistemas privilegiados.

Esencialmente, las rutas de autenticación binarias actualmente implementadas no son adecuadas para la biometría de comportamiento, pero hay una gran promesa para la autenticación basada en la confianza en el futuro.

    
respondido por el Jozef Woods 29.04.2016 - 15:37
fuente
4

Otra razón para no: Supongamos que su usuario escribe mal su contraseña ocasionalmente. Usted puede escribirlo perfectamente, pero el resto de nosotros a veces tenemos dedos gruesos. Probablemente lo escriban más lentamente en el segundo intento y arruinen sus métricas. Esto es particularmente cierto si hay algún tiempo de espera / retraso detectable (límite de velocidad o simplemente un servidor de inicio de sesión lento), ya que no querrían esperar a otro retraso que ya haya sido molestado por el primer

    
respondido por el Chris H 29.04.2016 - 10:25
fuente
1

Llamemos a esta entrada de contraseña cronometrada .

Esencialmente, lo que estás haciendo es esto:

  • Intentando aumentar la entropía de la contraseña.

Esto tiene algunas desventajas, como el hecho de que las personas cambian, y puede que te devuelva la mordida después de algunos años.

La pregunta es: ¿vale la pena este método para aumentar la entropía de contraseñas? Para responder esto correctamente, primero debe medir la entropía total obtenida al requerir una entrada de contraseña cronometrada.

Yo diría que no obtendrás mucha entropía, porque la mayoría de la gente usaría los teclados de manera similar. Por lo tanto, cuando sepa que la mayoría de la gente suele usar el teclado de manera similar, sabrá que no hay mucha entropía (o información) para saber la tipificación cronometrada.

Por lo tanto sugiero que:

  • Las entradas de contraseña cronometradas no valen la pena los riesgos.
  • Si necesita más entropía, solo use contraseñas de mayor calidad (más tiempo con más letras al azar).
respondido por el caveman 29.04.2016 - 06:11
fuente
1

Es una idea genial, pero si no se implementó correctamente, como todos los demás han dicho, no funcionará porque la gente cambia y la tolerancia a fallos debería implementarse correctamente.

Mi idea para una buena manera de implementar esto sería ver si el usuario ingresa su contraseña en el patrón de tiempo determinado y, si no lo es, y la contraseña es correcta, entonces puede usar esta información para realizar la solicitud. Parezca un poco sospechoso y tenga otras cosas como quizás pedirle al usuario que envíe un mensaje de texto a su teléfono para asegurarse de que realmente son ellos.

Los Pros: el usuario ingresa su contraseña normalmente, si está fuera de tiempo, puede ir a medidas secundarias de autenticación. Esto solo molestaría al usuario si lo escribe de forma anormal o si hay alguien que intenta ingresar a su cuenta.

Los contras: podrían ser falsos positivos que podrían molestar al usuario que intenta iniciar sesión, y los tiempos podrían ser vistos y / o grabados por alguien que mira por encima de su hombro.

    
respondido por el Dylan Larsen 03.05.2016 - 04:17
fuente
1

Sí, puede funcionar, si se maneja correctamente

Los beneficios son claros: es más difícil que otra persona inicie sesión con su contraseña. Adivinar se vuelve más difícil, e incluso si alguien tiene (parte de) tu contraseña, aún no está listo.

Por lo tanto, abordaré las inquietudes:

Sí, todavía puedes iniciar sesión con un dedo roto

Claro, la contraseña se puede "perder" cuando se rompe el dedo, pero esto se puede remediar poniendo a disposición una contraseña maestra (más fuerte). Si alguna vez tiene circunstancias que no le permiten mantener su ritmo, siempre puede usar la contraseña maestra para ingresar (y cambiar el ritmo si es necesario).

Sí, todavía puedes usar múltiples dispositivos

Obviamente, diferentes tipos de dispositivos tendrán diferentes ritmos, pero si los usa con frecuencia, el ritmo por dispositivo debería ser lo suficientemente estable. Como tal, puede permitir que los usuarios tengan varios ritmos válidos.

Sí, todavía puedes usar administradores de contraseñas

Obviamente, se podría hacer que los administradores de contraseñas envíen el ritmo así como las pulsaciones de tecla. Aunque esto puede ser desafiante, podría ser muy fácil utilizar la contraseña maestra mencionada anteriormente cuando inicie sesión con el administrador de contraseñas.

    
respondido por el Dennis Jaheruddin 03.05.2016 - 11:56
fuente
0

En lugar de tener que bloquear / permitir brutalmente al usuario, puede hacer que "aprenda" el método del usuario durante un período de 10 a 20 inicios de sesión y tomar la mediana con un ligero margen de tiempo.

Inicio de sesión regular: - Contraseña + inicio de sesión de dos factores por aplicación / sms / enlace de correo electrónico

Después de un tiempo, sabrá cuál es su patrón, y podrá darle al usuario la opción de habilitar la seguridad adicional, y luego disminuir la cantidad de veces que necesita iniciar sesión con el inicio de sesión de dos factores. (suponiendo que se utilizó la misma IP)

Cuando la seguridad agregada está activa, podría permitir que el usuario inicie sesión solo con la contraseña siempre que la fuente de IP sea la misma. Dándole un método de inicio de sesión más fácil / rápido. Y cuando detecte que el usuario está variando su registro de inicio de sesión, toque la velocidad de toque mucho de registros anteriores, puede solicitar el inicio de sesión de dos factores nuevamente y actualizar la lista. (siempre tome la mediana durante 5 intentos de inicio de sesión, eliminando los extremos)

    
respondido por el T.S 30.04.2016 - 13:44
fuente
0

Creo que esto tendría el mayor potencial para situaciones en las que una contraseña se usa con frecuencia y la entrada no permite una gran variedad de caracteres. Un ejemplo obvio sería algo así como un código de entrada de puerta. Esto también tiene la ventaja de que, incluso si alguien puede ver el código en sí mismo sobre su hombro, todavía tiene que hacer el ritmo correcto. Esto también le permite obtener más entropía de un dispositivo de entrada muy básico.

Incluso podrías imaginar una situación en la que solo hay un botón y su ritmo es la única entrada, después de todo esto es una versión digital del 'golpe secreto'.

Si nada más, esto puede tener un valor novedoso para las aplicaciones de seguridad de bajo nivel e incluso puede tener un nicho más serio para, por ejemplo, músicos profesionales de los que se espera que tengan un sentido del tiempo muy preciso.

    
respondido por el Chris Johns 03.05.2016 - 01:39
fuente

Lea otras preguntas en las etiquetas