filosófico: restringir el espacio de contraseña aumenta la seguridad

8

Esto es más una cuestión filosófica.

Suponga que está tratando de elegir una buena contraseña para un servicio en línea en particular, digamos el servicio de banca electrónica de su banco. Ahora el banco tiene algunas restricciones en las contraseñas que permite: usted puede solo usar (minúsculas) letras y (decimales) dígitos , y la contraseña puede tener hasta 6 caracteres . Entonces, ¿qué es una "buena" manera de seleccionar una contraseña de este tipo?

Uno podría hacer lo siguiente (llame a este esquema 1 ): seleccione al azar 6 caracteres del conjunto [a-z0-9] con probabilidad uniforme. Este esquema tiene la desventaja de que puede producir contraseñas "débiles", como aquellas que contienen solo letras o solo dígitos (hay un 14.2% [1] de probabilidades de que esto suceda).

Aquí hay otra idea (llame a este esquema 2 ): seleccione al azar (y de manera uniforme) una letra, un dígito y 4 caracteres del conjunto [a-z0-9]. Luego use una permutación aleatoria de estos 6 caracteres como contraseña. Esto garantiza que la contraseña tendrá caracteres de ambas clases (letras y dígitos).

Entonces, la pregunta es, ¿cuál de los dos esquemas produce "mejores" contraseñas?

Por un lado, el segundo esquema produce contraseñas que probablemente serán más resistentes a los ataques de fuerza bruta simples. Por otro lado, el primer esquema permite estrictamente más combinaciones que el segundo: 2 ^ 31.0 [2] vs 2 ^ 30.8 [3]; de hecho, el conjunto de contraseñas del esquema 1 es un superconjunto de los del esquema 2.

Nota: estoy viendo esto desde la perspectiva de la parte que genera la contraseña y no la parte que establece la política de contraseña.

[1] (26 ^ 6 + 10 ^ 6) / 36 ^ 6 = 0.142

[2] log2 (26 ^ 6) = 31.0

[3] log2 (36 ^ 6-26 ^ 6-10 ^ 6) = 30.8, es decir, todas las combinaciones de 6 caracteres, excepto las que tienen solo letras (26 ^ 6) y las que tienen solo dígitos (otros 10 ^ 6 )

    
pregunta pavlak11 18.03.2016 - 19:08
fuente

3 respuestas

15

tldr; La restricción del espacio de contraseñas no ayuda contra los ataques de fuerza bruta , pero puede contra los ataques de inteligente , pero hay una aún mejor manera.

En primer lugar, estás haciendo la pregunta correcta, pero utilizando la terminología incorrecta aquí:

  

... el segundo esquema produce contraseñas que probablemente serán más resistentes a los ataques de fuerza bruta .

(Creo que te refieres a los ataques inteligentes )

Un ataque de fuerza bruta es uno que intenta cada combinación posible sin inteligencia adicional . La fuerza bruta en tu ejemplo sería algo como:

a, b, c, ... y, z, 0, 1 ... 9,  
aa, ab, ac, ... ay, az, a0, a1 ... a9, ba, bb, bc ... 99,  
aaa ... 999, 
aaaa ... 9999,
aaaaa ... 99999,
aaaaaa ... 999999

Cualquier otra cosa que no sea eso sería considerada una estrategia de inteligencia. Por ejemplo, antes de probar la fuerza bruta, puede ahorrar algo de tiempo con esta estrategia:

  1. Intente solo números.
  2. Intenta palabras que se encuentran en un diccionario.
  3. Pruebe las X contraseñas más populares.
  4. Intente combinaciones del nombre de usuario o las iniciales del usuario, el año actual o el año pasado, etc.
  5. Prueba la fuerza bruta.

Su objetivo, como creador de su contraseña, es asegurarse de que las primeras 4 opciones no siempre descubran su contraseña. En otras palabras, debe asegurarse de que la única forma de descubrir su contraseña sea mediante fuerza bruta, y también asegurarse de que si se usa fuerza bruta, tomará mucho tiempo antes de encontrar su contraseña. Sin embargo, lo que haga depende de usted, dadas las restricciones de los tipos de contraseñas permitidas.

En cuanto a su pregunta en particular, lo abordaría más como un generador de contraseñas aleatorio: genera uno para usted, lo observa y, si cree que podría adivinarse con un método distinto a la fuerza bruta, simplemente Genera otro al azar hasta que estés contento con él. (Este sería el Esquema 1 con un giro). Si realmente quisiera cuantificar esto, podría tener sus estrategias de inteligencia construidas y listas para funcionar (todas las estrategias excepto la fuerza bruta). Luego puede probarlos con su contraseña generada aleatoriamente y, si la encuentra, genera otra hasta que todas las estrategias inteligentes no logren descubrir su contraseña. Entonces te quedarían con una contraseña que solo puede ser detectada por la fuerza bruta. Usando este método, puede lograr una mejor entropía que restringiendo el espacio de la contraseña de la manera que describió.

Nota: con las reglas de contraseña que proporcionaste, mi giro al Esquema 1 puede terminar pareciéndose al Esquema 2, sin embargo, a medida que aumenta el número de caracteres permitidos y la longitud de la contraseña, el giro del Esquema 1 debería proporcionar más entropía.

    
respondido por el TTT 18.03.2016 - 19:55
fuente
11

Creo que ha resumido bien la complejidad del problema, e ilustró por qué ambos tienen ventajas y desventajas. La respuesta correcta es, por supuesto, Esquema 3: usar una contraseña más larga o Esquema 4: cambiar a un banco que permita contraseñas de más de 6 caracteres .

En realidad, ha planteado una pregunta muy antigua, que puede encontrar alrededor de las preguntas en este sitio si navega por la etiqueta : con alguna probabilidad (pequeña), un generador de contraseñas completamente aleatorio podría generar "contraseña". Al poner restricciones en la aleatoriedad, está aumentando la fortaleza de su contraseña en el peor de los casos, a expensas de su entropía. Si puede presentar un buen argumento a favor de una restricción que no reduzca significativamente la entropía, creo que puede ser aceptable. Aunque la respuesta general siempre es: si está preocupado por la entropía de su espacio de contraseña, use más caracteres.

    
respondido por el Mike Ounsworth 18.03.2016 - 19:19
fuente
0

respuesta a la pregunta del título:

No, en ningún escenario, pero si se restringe el espacio de contraseña, aumente la seguridad. El único escenario en el que lo hace es cuando su restricción es la exclusión de contraseñas débiles conocidas, por ejemplo, una lista negra Esta es la forma recomendada (2018) de hacerlo, por cierto. Olvídate de todas las complejidades sin sentido, que eran valores de TI equivalentes a la alquimia.

responde a la pregunta de texto completo:

Tu esquema dos es en realidad más débil debido a una falacia humana común. Puedes pensar que un generador aleatorio que teóricamente puede escupir "aaaaaa" es más débil que uno que no puede. Sin embargo, usted está equivocado. Su generador que no puede generar esta salida "débil" en realidad tiene un espacio de búsqueda reducido y cualquier atacante que sepa el algoritmo detrás del esquema tiene una gran ventaja sobre el esquema completamente aleatorio.

Tenga en cuenta que "aaaaaa" podría ser el primer intento de un ataque de fuerza bruta estúpido, pero la probabilidad es realmente pequeña y se puede compensar fácilmente por el hecho de que el espacio de búsqueda es mucho mayor. De hecho, en un esquema que hace imposible que el generador cree esta salida, un atacante que tenga conocimiento del esquema tampoco lo probará.

"aaaaaa" en realidad no es una contraseña incorrecta y en cualquier escenario de ataque realista es probable que el atacante lo pruebe mucho después de "passwd", "123456" e incluso todas sus posibles permutaciones. Un atacante real del mundo real es mucho más probable que se ejecute o, al menos, comience con un ataque de diccionario antes de usar la enumeración real de fuerza bruta.

    
respondido por el Tom 02.08.2018 - 14:31
fuente

Lea otras preguntas en las etiquetas