¿Qué se consideraría típicamente una entropía de cadena aceptable para las contraseñas?

1

He ganado interés en crear una forma de verificar la fortaleza de la contraseña (piense en los medidores de seguridad de la contraseña - sí - otra). He encontrado muchas formas de otorgar una puntuación con un enfoque basado en políticas (un capital, un carácter especial, lo obtienes), pero también he empezado a analizar la entropía de las cuerdas. Específicamente, he encontrado esta implementación de JavaScript de la entropía de Shannon

En su ejemplo, "1223334444" awards 1.8464393446710154 en bits de entropía por carácter. Supongo que, entonces, la entropía de la cadena es el recuento de caracteres multiplicado por la longitud, y luego siendo 18.464393446710154

Mi pregunta es, sin embargo, en términos del mundo real, ¿qué significa este valor ? ¿es decente? ¿pobre? ¿Dónde comienza y termina la tasa de aceptabilidad pobre / decente / fuerte para valores como este? Del mismo modo, ¿qué se considera "exceso" para una expectativa de usuario aceptable?

    
pregunta scniro 23.10.2015 - 06:39
fuente

2 respuestas

4

Tal como lo entiendo, la cantidad de entropía en una contraseña representa la cantidad de conjeturas necesarias para saber cuál es esa contraseña. Cada bit es una sola decisión de sí o no, e idealmente, el atacante obtendría una "contraseña correcta" o un resultado de "contraseña incorrecta" (por lo tanto, tienen que adivinar todo el asunto, todos a la vez). Para n bits de entropía, eso requiere 2 ^ n conjeturas.

La fuerza deseada depende de qué tipo de amenaza esperas enfrentar. En particular, depende de la rapidez con que el atacante puede hacer conjeturas y de cuánto tiempo esperas que el atacante siga intentando.

Una vez que tenga esos números, su entropía mínima objetivo (en bits) debe ser:

n = log_2(totalGuesses) = log_2(guesses/sec * durationInSeconds)

La persistencia del atacante es algo que no sé cómo estimar. En aras de la discusión, supongamos que desea que su contraseña esté segura durante 1 semana después de que el atacante comience a adivinar.

El número de intentos por segundo depende de cómo se protege la contraseña y del tipo de acceso que tiene el atacante. Para un ataque en línea (es decir, probar el formulario de inicio de sesión de un sitio web), podría limitarlo a un valor bastante bajo; 10 por segundo sería alcanzable. Para MD5 sin sal, es más seguro asumir miles de millones de conjeturas por segundo. Para un algoritmo de hash fuerte como bcrypt, estará en algún punto intermedio (MUCHO más lento que MD5, en cualquier caso).

Por lo tanto, a 1 mil millones de hashes por segundo (craqueo de MD5 sin conexión), deberá defenderse contra un total de 6 * 10 ^ 14 conjeturas, que requieren aproximadamente 49 bits de entropía. A 10 conjeturas por segundo (en línea, ataque de velocidad limitada), debe defenderse contra aproximadamente 6 * 10 ^ 6 conjeturas, por lo que necesita aproximadamente 22. bits de entropía.

Por supuesto, las estimaciones por carácter de la entropía de Shannon no estimarán con precisión la dificultad de descifrar una contraseña, y el porcentaje de error variará enormemente dependiendo de varios factores. El enfoque que está tomando solo dará resultados razonablemente precisos para las contraseñas generadas por computadora, NO para las contraseñas generadas por humanos.

    
respondido por el Ethan Kaminski 23.10.2015 - 07:16
fuente
1

Este recomendación de NIST son 80 bits de entropía para contraseñas.

A 350 mil millones de conjeturas / seg, dicha contraseña tomará un máximo de 109,528 años para crackear , 54,764 años después promedio.

Aunque puede asegurarse de que sus propias contraseñas sean tan sólidas, solo puede guiar a sus usuarios para que seleccionen dicha contraseña.

los comprobadores de seguridad de contraseñas como zxcvbn pueden ayudar, sin embargo estos son solo tan buenos como sus listas de palabras precargadas, o métodos de verificación (como Shannon Entropy). En un ataque dirigido, es posible que ya se sepa que el método de generación de contraseña no es un método estándar que solo utiliza la víctima. En ese caso, los medidores de seguridad de contraseñas no pueden ayudar: la entropía aquí se basa en el número de posibilidades que ese método en particular puede codificar, y no aquellos en los que se basa el medidor de seguridad de la contraseña.

    
respondido por el SilverlightFox 23.10.2015 - 10:36
fuente

Lea otras preguntas en las etiquetas