frases de contraseña - palabras en minúsculas y en diccionario

4

En medio de toda la discusión sobre la longitud de la contraseña frente a la complejidad (resumido por la famosa tira xkcd y followup dicussion ) Estoy tratando de decidirme sobre las frases de contraseña hechas con palabras de dictionnary.

Comprendo los diversos cálculos para los ataques de fuerza bruta: ¿sabría usted de un estudio razonable sobre las frases de contraseña que se realizarían a partir de palabras de dicción?

Me preguntaba sobre una política con una longitud mínima de, por ejemplo, 13 caracteres, todo en minúsculas. Espero terminar con frases como volleyballisfantastic . Esto es 3 palabras. Si la frase está en inglés o francés, tendrían un promedio de aproximadamente 4 palabras.

Dado que una de las razones para pasar a una frase de contraseña sería irse en algunos sistemas debido a los mecanismos de regulación (bloquear la cuenta durante 10 minutos después de un inicio de sesión fallido o cambiar exponencialmente el tiempo entre las solicitudes de inicio de sesión), me pregunto si el diccionario los ataques no serían mucho más exitosos en tales frases de contraseña.

Gracias por los pensamientos o sugerencias a los estudios existentes (busqué en Google y lo que encontré son discusiones sobre la fuerza bruta pura).

    
pregunta WoJ 12.12.2011 - 17:18
fuente

5 respuestas

5

Yo diría que esto no es estrictamente un ataque de diccionario, ya que no estás probando palabras en un diccionario, sino cadenas de palabras. Es realmente una fuerza bruta con un conjunto de "personajes" diferente. Eso te permite usar cálculos de entropía regulares.

Si el atacante debe forzar la contraseña como si fuera una cadena de caracteres en minúsculas, entonces es 13 largo y cada token es una de las 26 opciones. Eso es 61 bits de entropía.

Si el atacante lo fuerza como si fuera una serie de palabras en minúscula de la lista de artículos en inglés, entonces tiene 4 opciones, 7776, con 51 bits de entropía. O bien, si el atacante lo fuerza como una palabra en minúscula del OED, 4 opciones largas, 181,000, lo que le da 70 bits.

Como la mayoría de las personas no usarían palabras oscuras, en su ejemplo, estará más cerca de 50 bits que de 60, por lo que un ataque de diccionario dará mejores resultados. 13 caracteres de letras aleatorias serían teóricamente mucho más fuertes que cuatro palabras.

(No teóricamente, por supuesto, una regla de contraseña que requiere 13 caracteres de galimatías solo significa notas post-it en monitores).

    
respondido por el Graham Hill 12.12.2011 - 18:45
fuente
3
  

Como la mayoría de las personas no usarían palabras oscuras, en su ejemplo,   estar más cerca de 50 bits que de 60, por lo que un ataque de diccionario daría mejor   resultados 13 caracteres de letras aleatorias serían teóricamente mucho   más fuerte que cuatro palabras.

@Graham,

Es cierto que la mayoría de las personas no usan palabras oscuras; sin embargo, ¿no sería suficiente un simple uso de la sustitución numérica de una sola letra para luego aumentar la complejidad? Como ejemplo, en lugar de houseonfire escribirías h0useonfire . Todavía sería fácil de recordar y el diccionario tendría que incluir el 'leet speak' para poder forzarlo de manera más efectiva.

¿Crees que esto sería correcto?

    
respondido por el Appropriate Sound 13.12.2011 - 02:31
fuente
1

Si echa un vistazo a nuestra pregunta en esa tira de XKCD verá mucha discusión sobre el El cálculo de la entropía, que es todo lo que es importante aquí, porque una concatenación de 3 o 4 palabras requiere un procedimiento de fuerza bruta normal, o una fuerza bruta utilizando concatenaciones de palabras del diccionario.

El problema en el que te metes es el siguiente:

Una fuerza bruta estándar romperá la frase de paso. La única pregunta es el tiempo. Y si hace que ese tiempo sea lo suficientemente grande, entonces puede tratar la frase de paso como irrompible con este método.

Un ataque de fuerza bruta basado en un diccionario solo romperá la frase de paso si todas las palabras de la frase de paso existen en el diccionario utilizado, por lo que ya comienza con una incertidumbre en el resultado. Luego, debe planificar cada palabra en el diccionario en las posiciones 1, 2, 3 y 4 en su frase de contraseña (suponiendo que restringe a 4 palabras) y posiblemente las 4 posiciones.

Por supuesto, un buen mecanismo de regulación hará que todos los ataques de fuerza bruta en línea sean imposibles, por lo que todo lo que necesita es una frase de contraseña "suficientemente buena" para forzar que un ataque fuera de línea tome más tiempo que su período de seguridad (lo que podría ser el doble de caducidad de su contraseña) tiempo, o 5 veces, o cualquier factor que requiera)

    
respondido por el Rory Alsop 13.12.2011 - 10:43
fuente
1

Debería siempre implementar algún tipo de limitación en los intentos de inicio de sesión. Incluso con el truco de las palabras aleatorias, para mucha gente no es práctico memorizar una frase de contraseña con suficiente entropía para estar seguro contra un diccionario sin restricciones. ataque, especialmente si necesitan uno separado para cada sitio que usan.

(Hay maneras de evitarlo en el lado del cliente, como usar una billetera de contraseñas para almacenar el sitio por sitio contraseñas, con una sola frase de contraseña segura para acceder a la billetera, pero por varias razones aún no se han escuchado mucho.)

También vale la pena tener en cuenta que un atacante determinado puede usar DOS en su sitio, incluso sin la limitación de inicio de sesión. La limitación, si se implementa sin cuidado, hace que un tipo particular de ataque DOS sea más fácil. Para mitigar este efecto, sugeriría al menos los siguientes pasos:

  • Establezca un límite de inicio de sesión por IP bastante bajo, así como un mayor por sitio. Esto significa que un atacante debe emplear varias computadoras con diferentes direcciones IP para DOS de manera efectiva en su sitio, lo que, aunque es posible, todavía presenta un aumento de velocidad. (Es posible que también desee o no un límite por usuario; tiene sentido si espera ataques de diccionario dirigidos a usuarios individuales, pero en muchos casos un atacante típico estaría tan contento con la contraseña para cualquier Cuenta, en cuyo caso su mejor estrategia es atacarlos a todos en paralelo.)

  • Cuando se alcanza el límite, regístrelo. Si sigue siendo golpeado repetidamente, alerte a los administradores del sitio, ya sea un intento de DOS o un ataque de diccionario genuino, querrán saberlo.

  • Asegúrese de proporcionar una forma alternativa para que los usuarios se comuniquen con los administradores si no pueden iniciar sesión debido a la limitación.

  • Por último, pero no menos importante, se requiere un token anti-CSRF en todos los intentos de inicio de sesión. Deberá hacer esto de todos modos para protegerse contra inicio de sesión CSRF , pero como un efecto secundario útil, también se detiene ciertos tipos de ataques distribuidos simplistas (como crear un enlace directo al script de inicio de sesión e incluirlo como una URL de imagen en publicaciones de foros ampliamente leídas).

En última instancia, la longitud de la contraseña de la OMI y los requisitos del formulario son una pista falsa, al menos desde el punto de vista del administrador del sitio: si permite que los usuarios elijan su propia contraseña, algunos de ellos se elegirán los débiles sin importar qué. Si necesita contraseñas alfanuméricas con puntuación, algunos usuarios elegirán "abc & 123"; si necesita frases de cuatro palabras, elegirán "Amo a mi madre".

Puedes aceptar eso y encontrar maneras de vivir con él o, si no puedes o no quieres hacerlo, puedes eliminar la opción de tus usuarios y generar contraseñas aleatorias para ellos. En cuyo caso, muy sugeriría usar el método de "cuatro (o más) palabras comunes", ya que proporciona muchas contraseñas más memorables para una cantidad determinada de entropía que , digamos, escogiendo caracteres o sílabas al azar.

    
respondido por el Ilmari Karonen 13.12.2011 - 16:47
fuente
0

Si selecciona palabras del diccionario al azar (no elige y selecciona), esta sería una contraseña muy buena para la mayoría de las personas. Sería aún mejor, ya que sería más fácil de recordar y escribir. No tienes que poner mayúsculas en nada, agregar símbolos extraños o hacer otras cosas estúpidas, lo que haría que sea más difícil de recordar.

Si tiene un diccionario de 30,000 palabras, agregar cada palabra elegida al azar agregaría una entropía de 14.8 bits

tres palabras aleatorias significarían 14 .8 x 3 = 44 bits

cinco palabras aleatorias 14.8 x 5 = 74 bits.

Diría que 3 palabras aleatorias de un diccionario de 30,000 palabras estarían bien para una cuenta en línea donde la fuerza bruta sea detectable. Para una cuenta fuera de línea (o como una contraseña maestra para el administrador de contraseñas), 5 palabras serían suficientes para la mayoría de los usuarios, especialmente porque la mayoría de los programas modernos hacen algún tipo de estiramiento / hashing de claves (PBKDF2 o scrypt, etc.).

5 palabras (74 bits) con PBKDF2 o scrypt / bcrypt, como lo haría la mayoría de los programas de software con una contraseña, serían casi imposibles de forzar para el gobierno de EE. UU. (les costaría varios millones de dólares y algunos años, al menos ).

En otras palabras, algo como esto:

"vergüenza física grave fantasma de hierro"

(cuando las palabras se seleccionan al azar sin sesgo humano)

es una buena contraseña para la cuenta fuera de línea donde es posible la fuerza bruta (como wifi), fácil de escribir y recordar, pero bastante segura.

    
respondido por el user12480 19.11.2015 - 06:01
fuente

Lea otras preguntas en las etiquetas