Estrictamente hablando, no puede medir la entropía de una contraseña. (O si lo desea, puede medirlo, pero el valor es 0.) No hay entropía en una contraseña: la entropía está en la forma en que se genera la contraseña.
Esto se explica en el comic xkcd : "batería de caballo correcta" es solo un ejemplo, lo que La contraseña ilustrada es el procedimiento para generar esa contraseña. A saber: "cuatro palabras comunes al azar". El siguiente panel proporciona la cuantificación "44 bits de entropía", que se basa en 11 bits por palabra (es decir, elige cada palabra al azar entre 2 11 = 2028 palabras). El procedimiento de generación de contraseñas tiene 44 bits de entropía, lo que significa que, en promedio, un atacante que sepa cómo se generó la contraseña tendrá que realizar 2 intentos 43 para encontrar la contraseña. (En promedio, el atacante debe enumerar la mitad del espacio de la contraseña).
El cómic no recomienda que elijas "la batería correcta para caballos" como tu contraseña. Se recomienda que seleccione 4 palabras al azar. El patrón es conocido, pero no las elecciones aleatorias. Diceware es una variante popular de este método: elige palabras en una lista de 6 palabras 5 tirando cinco dados por cada palabra.
Para decirlo de otra manera: hay dos aspectos al elegir una contraseña, the aleatoriedad y la inteligencia . El método es inteligente y no contribuye a la seguridad de la contraseña. La aleatoriedad hace que la contraseña sea segura , independientemente de cualquier astucia. La inteligencia solo es útil para hacer que la contraseña sea más fácil de escribir y recordar. Si es inteligente , solo obtienes protección contra los atacantes que son menos inteligentes que tú.
Un método como "elegir palabras aleatorias" es fácil de cuantificar porque mientras las elecciones aleatorias sean independientes, la entropía se suma . Si agrega restricciones (por ejemplo, genere algo y "suavícelo" para que sea memorable), necesita count el número de posibilidades que quedan y tenga cuidado si el suavizado puede asignar varios rollos aleatorios diferentes a la misma contraseña final.
Sí, hay herramientas para verificar la fortaleza de una contraseña . Vienen en dos tipos. Los más rápidos aplican algunas heuristics . No siempre lo hacen bien, porque no tienen idea de cómo se generó la contraseña; tienden a favorecer las contraseñas con bits inteligentes sobre las contraseñas con aleatoriedad. Como solo ven el resultado final y no el método de generación, no pueden tener en cuenta la aleatoriedad. Por ejemplo (seleccionado al azar, no en el sentido criptográfico) passwordmeter.com me dice que "correcthorsebatterystaple" es débil (25%) y "Homechasebogbigamy" (que acabo de generar aleatoriamente con el procedimiento XKCD) es muy débil (19%). Sin embargo, si solo te hubiera dicho cómo había generado esa segunda contraseña y no cuál era la elección aleatoria, ¡se necesitarían 1000 computadoras aproximadamente 3 años para encontrarla a 100 intentos / segundo / computadora! En contraste, pass+word1!
se considera fuerte (64%).
El segundo tipo de comprobador de fortaleza de contraseña es ... el software de craqueo. Esto le da la medida perfecta de su contraseña contra ese mismo software de cracking. No le dice mucho al otro software de craqueo.
La mejor manera de asegurarse de que su contraseña esté segura es medir la cantidad de aleatoriedad que entra en ella. N bits de aleatoriedad = 2 N-1 conjeturas necesarias en promedio para romperlo. Averigua cuánto quieres que sea 2 N-1 y deduce N.
Ejercicio: para generar "homechasebogbigamy", usé una lista de 4172 palabras distintas en orden alfabético y generé cada palabra tomando una palabra al azar entre los primeros 2048. Supongamos que esa lista es pública. ¿El hecho de que la lista se clasificara alfabéticamente reduce la entropía de la contraseña? ¿Mi afirmación de que este procedimiento tiene 44 bits de entropía es correcta?