¿Es mejor elegir una contraseña aleatoria menos vulnerable?

3

He creado una función de generador de contraseñas aleatorias (que se puede encontrar aquí si alguien quiere un vistazo), lo cual generar contraseñas con una mezcla aleatoria de letras, números y otros caracteres. Esta pregunta y it answer sugiere que debería seleccionar la primera contraseña elegida porque de lo contrario mis contraseñas se vuelven más predecibles según lo que me gusta. Pero teóricamente, ¿qué pasaría si uno saliera solo con letras o solo letras / números o solo un carácter especial? ¿Debo entonces generar otra contraseña o estoy perdiendo la entropía? Siento que la primera contraseña sería vulnerable a las listas de palabras, pero no usarla técnicamente hace que mis contraseñas sean más predecibles. ¿Hay un buen lugar para trazar la línea?

P.S. A diferencia de esa otra pregunta, no me importa cuán difíciles sean estas contraseñas para recordar.

    
pregunta carloabelli 21.06.2016 - 16:18
fuente

2 respuestas

8

En general

Esto depende de la información que esté asumiendo que tiene el atacante.

Primero, supongamos que el atacante es ciego, y tal vez intentando descifrar un gran volcado de cuentas violadas, sin saber que usaste ese algoritmo específico. Entonces estaría mejor protegido si descartara 123456 si aparece, o de manera más realista, contraseñas que solo están en minúsculas, palabras del diccionario, etc. Esto se debe a la sencilla razón de que cualquier atacante está obligado a probarlas primero, ya que en general son más comunes.

Por otro lado, si el atacante sabe que se utilizó su algoritmo, descartar las contraseñas solo facilitará su trabajo. Si descarga el 10% de las contraseñas, es decir, el 10% no tiene que intentarlo, lo que le ahorra el 10% del tiempo en promedio.

Entonces, ¿cuál de estos dos escenarios es más probable? Yo diría que el primero en la mayoría de los casos, pero solo usted puede determinar cuál es su modelo de amenaza.

Un ejemplo matemático

Hagamos algunos cálculos matemáticos para ver cuántas contraseñas realmente eliminarías. Digamos que los caracteres se seleccionan de tres grupos (mayúsculas, minúsculas, números + caracteres especiales) y digamos que hay un número igual de caracteres en cada grupo. Además, digamos que necesita contraseñas para tener al menos un carácter de cada grupo. ¿Qué fracción de contraseñas descartarías?

Si obtengo mis cálculos correctos, es 3*(2/3)^L donde L es la longitud de la contraseña. Para L=10 obtienes el 5%. Para L=20 obtienes 0.1%.

A menos que esté completamente seguro de que la única amenaza es un atacante que sepa cómo se generó la contraseña (me cuesta imaginar cómo podría ser eso), diría que vale la pena reducir el espacio de búsqueda en un 0,1%. .

    
respondido por el Anders 21.06.2016 - 16:27
fuente
1

Si bien la respuesta de @Anders es precisa, quiero extender su caso para eliminar las contraseñas de "baja entropía" y no pude incluirlas en un comentario.

En primer lugar, quería introducir un paralelo. Muchos cifrados (por ejemplo, DES) tienen claves débiles , que hacen que el cifrado se comporte de manera subóptima. Esto implica que no hay un "espacio de teclas plano" (uno donde todas las teclas tienen la misma "fuerza"). Si hay suficientes claves débiles conocidas, éstas a menudo se agregan a una lista de rechazos y se descartan. La única vez que no se hace esto es si el número de teclas débiles es infinitesimal. Estoy de acuerdo en que hay una gran diferencia en las claves de cifrado v / s contraseñas, pero el principio de descartar claves débiles / contraseñas todavía debe aplicarse.

En segundo lugar, vamos a profundizar en las matemáticas. Basado en las matemáticas de Anders (IMHO perfectamente válido), el 2% de 12 contraseñas de caracteres pueden ser caracterizadas como "débiles". Este no es un número trivial. Supongamos que los usuarios con una contraseña débil tienen un 5% de probabilidad de ser obligados por la ley bruta, mientras que una contraseña segura tienen un 0,1% de probabilidad de ser obligados por la fuerza bruta.

Originalmente, se romperá el 0.2% de las cuentas para las que genera contraseñas:

0.02 * 0.05 + 0.98 * 0.001 = 0.00198 == > 0.2%

Pero la mitad de estas cuentas rotas tienen contraseñas débiles. Si descartas ese 2% de la salida de tu generador, el número de ataques exitosos será de solo el 0.1%

1.00 * 0.001 = 0.001 == > 0.1%

Por lo tanto, al eliminar el 2% de las contraseñas, el número de ataques exitosos disminuirá en un 50%.

    
respondido por el Jedi 22.06.2016 - 06:41
fuente

Lea otras preguntas en las etiquetas