¿Los caracteres que no están en el teclado hacen que mi contraseña sea menos susceptible a la fuerza bruta?

41

Puedo poner caracteres en mi contraseña para los que no hay teclas en un teclado. En Windows, Alt + #### (con el teclado numérico) inserta el carácter para cualquier código que ingreses.

Cuando pongo esto en una contraseña, ¿me garantiza bastante que nunca será forzado? Probablemente no sea el primero en pensar en esto, pero ¿estoy en lo cierto al adivinar que los atacantes nunca considerarán que vale la pena dedicar tiempo a verificar los caracteres que no están en el teclado? ¿Esto es algo de lo que están al tanto?

Si ese es el caso, con un solo carácter sin teclado en algún lugar de tu contraseña, nunca tendrás que preocuparte por mantener el resto de la contraseña segura.

    
pregunta jnm2 19.06.2011 - 00:58
fuente

9 respuestas

30
  

Cuando pongo esto en una contraseña, ¿eso garantiza bastante que   ¿Nunca será forzado brutalmente?

Un ataque de fuerza bruta en una contraseña tiende a ocurrir de dos maneras: un atacante obtiene una base de datos de contraseñas con hash o intenta iniciar sesión en un sistema en vivo con un nombre de usuario (u otro identificador de cuenta) y una contraseña. Un método común para atacar las bases de datos de contraseña con hash es usar un conjunto de valores y hashes precomputados llamado tabla de arco iris. Consulte ¿Qué son las tablas de arco iris y cómo se utilizan? Una tabla de arco iris no es un ataque de fuerza bruta pura porque usa menos del dominio completo de entradas posibles. Dado que un verdadero uso de la fuerza bruta ataca cada entrada posible, independientemente de si se trata de un ataque en una base de datos de contraseñas con hash o un inicio de sesión en vivo del sistema, ninguna selección de conjuntos de caracteres o combinación de conjuntos diferentes hará ninguna diferencia en un ataque de fuerza bruta. Prácticamente verdaderos ataques de fuerza bruta son raros. Los ataques a la mesa del arco iris son más comunes, y usar un valor de un conjunto poco común será una defensa eficaz contra muchos ataques de la mesa del arco iris.

  

Estoy en lo cierto al adivinar que los atacantes nunca lo considerarán valioso   su tiempo para comprobar los caracteres que no son de teclado? Es esto incluso algo   están al tanto de?

Hay atacantes que usarán conjuntos de entrada poco comunes para intentar atacar contraseñas, pero sospecho que son poco frecuentes. Cualquier atacante razonablemente sofisticado ha pensado en cosas como los caracteres que no están en el teclado, y la mayoría toma la decisión económica de perseguir a los objetivos más fáciles. Hay muchos objetivos con contraseñas pobres y débiles, por lo que los atacantes diseñan ataques para estas contraseñas débiles. Entonces, sí, muchos (pero no todos) los atacantes consideran que las contraseñas seguras no "valen la pena".

  

con un solo carácter sin teclado en algún lugar de tu contraseña,   nunca debe preocuparse por mantener el resto de la contraseña segura.

No. La fuerza es una medida o resistencia a los ataques. Si su contraseña es un solo carácter que no es del teclado, es más débil que una contraseña de 33 caracteres en minúsculas. La longitud en bits es una medida importante de la fuerza de la contraseña. Bits en lugar de caracteres, porque los cálculos criptográficos, como los hashes, se realizan en bits, no en caracteres. Un conjunto de caracteres, como el conjunto de caracteres que no son del teclado, es solo un elemento para crear contraseñas seguras, no es seguro por sí mismo.

    
respondido por el this.josh 20.06.2011 - 07:48
fuente
19

Entonces, porque tenía que saber, generé una tabla de arco iris NTLM utilizando el carácter no impreso alt 0160 (y el teclado no representado) 0161-0164. La tabla reconoció el carácter no impreso en hexadecimal.

Latablapudoreconocerelcarácternoimpresodespuésdevolcarelhash.(Eraunacuentaficticiaconunacontraseñade4caracteresparafinesdedemostración)

Salebuscandoalgocomo:

Entonces, aunque no es imposible, no tenía nada en mi caja de herramientas que reconociera esto. La mayoría de las personas con mesas de arco iris son de la comunidad o tienen una razón específica para crearlas.

Raramente he visto a personas que usan estos caracteres, pero tiene mucho sentido crear algunas tablas más para incluir según el compromiso: £ ¥ ¡y algunos otros signos de puntuación que solo se usan en idiomas distintos al inglés. Buscar en los teclados de todo el mundo lo más común y buscar personajes que no estén representados en la US-104 me dará un buen comienzo. Pero, de nuevo, este conjunto de tablas cuando está hecho se basa en 1 cosa: uso común. Si no se hace comúnmente, entonces probablemente sea más fácil encontrar otra forma de omitir el control.

Para hablar con una fuerza bruta basada en una entrada directa, se aplica lo mismo. Cualquiera que lo incluya en el conjunto de caracteres para la entrada podría hacerlo. Simplemente no es normal hacerlo.

De modo que, de alguna manera, lo que estoy diciendo es que sí, lo hace menos susceptible a la fuerza bruta, aunque no imposible.

- Editar -

Para obtener una perspectiva de números reales en la generación de tablas:

El conjunto de caracteres básico que tengo apilado para NTLM cabe en una unidad de 750 Gb, los números que tengo en él si quisiera crear uno nuevo: (superior + inferior + número + caracteres impresos = aproximadamente 96 caracteres )
Tiempo de generación 9 d 22 h (si el número de tablas aumenta demasiado alto)
Número de cadenas únicas 6,094,373,862
Tamaño de tabla 90.81 GiB (97,509,981,789 Bytes)
Tamaño total 726.51 GiB (780,079,854,310 bytes)

Ahora bien, esto no es óptimo, pero para la comparación, la misma configuración (en realidad es un poco más amable, 8 tablas en lugar de 4 usando rtc) en la impresión completa + no impresión + conjunto de ascii sin teclado (191 caracteres) equivale a (con compresión )
Tiempo de generación 395 y (si el número de tablas es demasiado alto)
Número de cadenas únicas 4,823,766,839,375
Tamaño de la tabla 57.03 TiB (62,708,968,911,909 Bytes)
Tamaño total 14.20 PiB (15,990,787,072,536,668 Bytes

Esencialmente, 2 órdenes de magnitud más si está utilizando todas las ventanas de espacio de caracteres ASCII se aceptarán como entrada de contraseña. Tendré que esperar un poco para que se marquen 20 petabytes en Seagate antes de comenzar el camino hacia esta mesa. Y los procesadores deben acelerar si quiero que la mesa termine antes de que 8 generaciones de mí hayan vivido y muerto.

    
respondido por el Ori 19.06.2011 - 02:02
fuente
16

Un atacante solo necesita expandir el conjunto de caracteres que usa para aplicar fuerza bruta a cualquier contraseña, sin importar qué caracteres haya en ella. Dicho esto, cuanto más grande sea el conjunto, más tiempo necesita gastar.

La recomendación habitual es que si escribes con letras pequeñas, mayúsculas, números y símbolos, todo en ascii, el conjunto de caracteres que estás utilizando es lo suficientemente grande como para dificultar lo suficiente la fuerza bruta. Si vas más allá del conjunto de ascii, también puedes mirar los caracteres griegos o rusos. En mi opinión, el elemento Unicode no imprimible y aleatorio está demasiado lejos.

Puede hacerlo, por supuesto, pero existe el riesgo: si no, no todas las aplicaciones, y especialmente los sitios y las bases de datos, son compatibles con la codificación UTF, o son diferentes a iso-8859-1. Esto significa que es posible que su aplicación / sitio no acepte su contraseña o, lo que es peor, que se acepte, pero que se estropee en el camino a la base de datos, de modo que no pueda verificarla. Desafortunadamente, todo tipo de rarezas pueden suceder cuando proporciona información no ascii a una aplicación que no la espera, especialmente en los campos de nombre de usuario y contraseña.

    
respondido por el john 19.06.2011 - 03:18
fuente
9

Usar Alt + #### (cuatro dígitos) es equivalente (para resistencia a los ataques) a tener los cuatro dígitos como caracteres de contraseña, justo donde agrega su "carácter especial". Los dígitos en las contraseñas no son algo totalmente nuevo.

"Los atacantes nunca lo considerarán" es la base de todas las debilidades. Los atacantes lo lo considerarán; Incluso pensaron en eso antes de ti. Si confías en la estupidez de los atacantes, solo derrotarás a los atacantes estúpidos, los que son los menos peligrosos en cualquier caso.

En una nota más práctica, los caracteres especiales harán que tu vida sea más difícil cuando intentas usar un dispositivo que no ofrece entrada de caracteres basada en Alt (por ejemplo, una contraseña en un sitio web al que deseas acceder desde tu teléfono inteligente) .

    
respondido por el Thomas Pornin 25.11.2012 - 04:45
fuente
8

Como se ha dicho en otras respuestas, la fortaleza de la contraseña reside en su tamaño. Puedes presionar las teclas Alt + 0 + 1 + 6 + 0 para obtener un carácter poco común, pero solo obtendrás 1 carácter de cada 5 pulsaciones. Tomando esto como una estimación aproximada, es posible que obtengas 12, quizás 13 bits de entropía de un carácter especial ; podría haber obtenido más (por encima de 20) si usó esas 5 pulsaciones de tecla en caracteres alfanuméricos.

En resumen, es más útil usar 5 caracteres en el teclado en lugar de eso, si te perdonas el juego de palabras obtendrás mucho más dinero.

    
respondido por el Piskvor 23.06.2011 - 16:44
fuente
2

Suponiendo una compatibilidad sólida con UTF-8 (eliminando así otros problemas de codificación), una posible falla de las contraseñas no ASCII es la normalización de Unicode.

Los caracteres como ö se pueden representar de varias maneras, es decir, como un solo carácter ö o como dos puntos de código: o+¨

En general, las computadoras no las consideran iguales, aunque realmente lo sean.

Como resultado, es posible que una implementación ingenua que no normalice el ingreso de la contraseña antes de la verificación no acepte la contraseña pässwørd si logra ingresarla de forma diferente al normal cuando se establece la contraseña.

    
respondido por el wbg 01.01.2016 - 18:20
fuente
1

Si bien la extensión del conjunto de caracteres utilizado en su contraseña la hace más fuerte, también hace que sea difícil de escribir y no ofrece 100% de garantía contra ataques.

Más importante aún, usar caracteres raros lo expone a situaciones en las que conoce la contraseña pero no puede usarla. Imagine que no puede usar una herramienta de recuperación porque no es compatible con su contraseña o que no puede verificar su buzón desde la computadora o el teléfono inteligente de otra persona.

    
respondido por el Dmitry Grigoryev 29.06.2015 - 16:58
fuente
1

Si la seguridad se basa solo en la creencia / suposición de que un atacante no usará la técnica X, esta es una seguridad bastante débil. Se debe asumir que un atacante lo sabe.

Al igual que en el ajedrez, haz el movimiento más fuerte como si tu oponente supiera tus intenciones.

    
respondido por el Vladislavs Dovgalecs 23.06.2015 - 22:37
fuente
0

En resumen: contra un ataque estilo Diccionario / Arco Iris, tienden a ser MUY seguros, porque un solo personaje que no se puede tipificar te dejará fuera de los esquemas comunes, pero puede evitar un ataque de fuerza bruta Ser mucho más débil que usar las otras dos o cinco pulsaciones de teclado de manera normal. Entonces, la estrategia óptima en mi opinión es combinarlos. Haga que su contraseña tenga demasiados caracteres para ser descubiertos por un verdadero ataque de fuerza bruta en un período de tiempo razonable, e incluya un carácter Alt% para eliminar la "popularidad" de su contraseña más allá de lo que se considera una conjetura educada. Esto puede hacer que su contraseña sea tan segura como una cadena verdaderamente aleatoria, pero más fácil de recordar. Solo asegúrate de que el carácter aleatorio que usas no sea algo que pueda tener un significado en ningún lenguaje de programación o teclado externo, como esos divertidos personajes realmente bajos en la tabla alternativa: ↕, etc.

    
respondido por el Jason 31.10.2016 - 18:37
fuente

Lea otras preguntas en las etiquetas