Cómo se calcula la entropía de la frase de contraseña
La fórmula log2, ejemplos prácticos para las tres listas EFF, cuánto cuesta un acróstico y por qué el medidor de potencia de un sitio web no está de acuerdo con esta página.
La entropía mide el proceso, no la contraseña.
Una sola contraseña no tiene entropía. La frase "grapa correcta para baterías de caballos" no es fuerte ni débil en sí misma; lo que importa es cómo llegó a existir. Si una máquina extrae cuatro palabras uniformemente de una lista de 7,776, es uno de aproximadamente 3.7 millones de millones de resultados igualmente probables. Si alguien lo eligió porque lo había visto en una caricatura, es uno entre varios, y ninguna cantidad de aritmética cambia eso.
Entonces, cada figura en este sitio describe el generador y su configuración, bajo el supuesto de que un atacante conoce esas configuraciones y se ve obligado a adivinar los sorteos aleatorios. Esa suposición es la conservadora. La lista, el recuento de palabras, el rango de longitud, el separador y la regla de casos se publican en esta página, por lo que tratarlos como secretos inflaría cada número aquí.
la formula
Para una elección hecha uniformemente entre N posibilidades igualmente probables, la entropía es log2(N) bits. Cada elección independiente agrega sus propios bits, por lo que k extracciones independientes del mismo grupo de N dan:
bits = k × log2(N)
Ese es el cálculo completo de una frase de contraseña. La base de registro 2 es lo que convierte "cuántas posibilidades" en "cuántos bits", y los bits son convenientes porque cada bit adicional duplica el trabajo que enfrenta un atacante. Setenta bits son el doble de duros que sesenta y nueve, y aproximadamente mil veces más duros que sesenta.
La misma fórmula cubre una contraseña de caracteres aleatorios, con N el tamaño del conjunto de caracteres y k la longitud: veinte caracteres extraídos de un conjunto de 80 dan 20 × log2(80), que son aproximadamente 126 bits.
Ejemplos resueltos para las tres listas.
La lista larga de EFF contiene 7,776 palabras. log2(7,776) es aproximadamente 12.925, por lo que cada palabra lleva aproximadamente 12.9 bits. Seis palabras dan 6 × 12.925, aproximadamente 77.5 bits: el valor predeterminado en esta página y la propia recomendación de la EFF para esa lista. Siete palabras dan sobre 90.5, ocho sobre 103.4.
Ambas listas cortas contienen 1,296 palabras. log2(1,296) se trata de 10.34, por lo que seis palabras dan aproximadamente 62 bits, siete aproximadamente 72.4 y ocho aproximadamente 82.7. Por eso las listas cortas quieren una o dos palabras extra para que coincidan con la larga.
Cinco palabras de la lista larga suman aproximadamente 64.6 bits, casi exactamente lo mismo que seis de una lista corta. Los dos caminos hacia una fortaleza determinada son genuinamente intercambiables; Elija la que produzca palabras que le resulten más fáciles de escribir.
¿Qué le hace el rango de longitud a la figura?
La longitud de palabra mínima y máxima filtra la lista antes de que se dibuje cualquier palabra, por lo que N en la fórmula es la cantidad de palabras que sobreviven al filtro, no el tamaño del archivo. La página vuelve a calcular esto a medida que cambia el rango y muestra el recuento de supervivientes, por lo que la cifra de entropía siempre se refiere al grupo realmente en uso.
Este es un efecto pequeño para rangos sensibles y grande para rangos extremos. Restringir la larga lista a palabras de exactamente cuatro letras deja unos pocos cientos de candidatos, reduciendo cada palabra de aproximadamente 12.9 bits a aproximadamente 8, lo que convierte una frase de contraseña de seis palabras de aproximadamente 77 bits a aproximadamente 48. La página lo mostrará y en ese momento le indicará que amplíe el rango o agregue palabras.
Qué añaden las opciones de separador y caso
Un separador fijo no añade nada. Si cada espacio es un guión, un atacante que conoce la configuración también coloca guiones en cada espacio; no tienen otra opción que adivinar.
La opción del separador aleatorio es diferente. Cada espacio toma de forma independiente uno de cinco caracteres, por lo que cada espacio agrega log2(5), aproximadamente 2.32 bits. Una frase de contraseña de seis palabras tiene cinco espacios, lo que equivale aproximadamente a 11.6 bits adicionales: una ganancia real y la página la cuenta.
La misma lógica se aplica al caso. Inferior, superior, en mayúscula y alterna son reglas fijas y no añaden nada. El caso aleatorio lanza una moneda independiente por palabra, por lo que agrega exactamente un bit por palabra: seis bits en una frase de contraseña de seis palabras. Eso también se cuenta.
Vale la pena señalar lo modestos que son. El uso aleatorio de mayúsculas y minúsculas y los separadores aleatorios juntos suman aproximadamente 17 bits a una frase de contraseña de seis palabras, mientras que una séptima palabra agrega aproximadamente 13 por sí sola y es mucho más fácil de recordar. Agregar palabras es casi siempre la mejor palanca.
Que cuesta un acróstico
Con un acróstico, cada palabra ya no se extrae del conjunto completo, sino de las palabras que comienzan con la letra que usted especificó. Así, la fórmula se convierte en una suma en lugar de un producto: el total es log2 del conjunto para la primera letra, más log2 del conjunto para la segunda, y así sucesivamente.
Las letras están distribuidas de manera muy desigual. En la larga lista de EFF, restringida a palabras de cinco a nueve letras, el conjunto que comienza con s es varias veces mayor que el conjunto que comienza con j, y mucho más grande que el conjunto que comienza con x. Por lo tanto, un acróstico de seis letras proporciona una cifra por debajo de seis veces el valor por palabra sin restricciones, y qué tan por debajo depende completamente de las letras que elija.
La página hace esta suma para las letras exactas que escribes, que es la única forma de dar un número honesto. Si una de sus letras no tiene ninguna palabra detrás en la lista actual y el rango de longitud, dice qué letra en lugar de fallar silenciosamente.
El acróstico tampoco es secreto. Suponga que un atacante sabe las iniciales del nombre de su perro, porque ese es el tipo de cosas que se adivinan.
Convirtiendo bits en tiempo, honestamente
Las estimaciones de tiempo en esta página suponen un ataque fuera de línea a un billón de intentos por segundo contra una base de datos de contraseñas robadas, y que se deben probar la mitad de las posibilidades antes de que surja la correcta. Esos supuestos se expresan siempre que aparece un tiempo, porque una estimación del tiempo sin ellos no tiene sentido.
Un billón de conjeturas por segundo es una cifra deliberadamente dura. Está en la región correcta para que el hardware dedicado ataque una función hash rápida y mal elegida. Un sitio que utiliza correctamente un hash de contraseña moderno es más lento de atacar en un factor de millones, y cualquier formulario de inicio de sesión en línea es aún más lento en un factor de miles de millones, ya que cada intento es una solicitud de red que el servidor puede limitar.
Por eso las cifras de esta página son pesimistas intencionadamente. Si la estimación dice que una búsqueda llevaría mucho más tiempo del que nadie ha hecho, la cifra real frente a un servicio gestionado de forma competente es aún mayor.
Por qué el medidor de fuerza de un sitio web dice algo diferente
La mayoría de los medidores de fuerza puntúan a los personajes que tienen delante, porque eso es todo lo que tienen: nunca ven cómo se generó la contraseña. Recompensan las clases de caracteres mixtos, castigan la repetición y, a menudo, comparan diccionarios de contraseñas comunes. Contra una contraseña inventada por humanos, esa es una heurística razonable y es lo único que puede hacer un formulario.
Califica mal una frase de contraseña generada exactamente por el motivo equivocado. Seis palabras de diccionario en minúsculas con espacios entre ellas parecen, según una heurística de conteo de caracteres, precisamente aquello para lo que están diseñados para advertir, a pesar de que las palabras fueron extraídas al azar y el resultado es más fuerte que casi cualquier cosa que el medidor aplaudiría.
Cuando un medidor y esta página no están de acuerdo sobre una frase de contraseña generada aquí, la página describe el proceso y el medidor describe la apariencia. Tampoco lo es mentir; están midiendo cosas diferentes y sólo uno de ellos sabe de dónde vienen las palabras.
¿Qué pasa con lo que generas?
ToolAcre genera contraseñas localmente en su navegador. Para entornos altamente confidenciales, verifique que su navegador, dispositivo y sistema operativo sean confiables antes de usar cualquier generador de contraseñas basado en la web.
- Cada frase de contraseña y contraseña se genera en la pestaña de su navegador, mediante el propio generador criptográfico de números aleatorios de su navegador. No hay ningún servidor involucrado una vez que la página se ha cargado.
- Nada de lo generado aquí se envía a ToolAcre. La Política de seguridad de contenido de este producto restringe la página a su propio origen, por lo que el propio navegador bloquea cualquier intento de enviar datos a otro lugar.
- No se escribe nada en el almacenamiento local, en el almacenamiento de sesiones, en una cookie, en una base de datos del navegador, en la barra de direcciones o en la consola del navegador. La recarga lo descarta; cerrar la pestaña la descarta.
- No hay cuenta, ni inicio de sesión, ni script de análisis ni script de publicidad. Los únicos archivos descargados son las listas de palabras estáticas.
- No se guarda ningún historial. Generar nuevamente reemplaza el valor y el anterior no es recuperable.
Preguntas
¿Cuántos bits son suficientes?
Para una cuenta normal detrás de un administrador de contraseñas, todo lo anterior sobre 70 bits está más allá de las conjeturas realistas. Para las pocas frases de contraseña que protegen todo lo demás (el propio administrador, su dispositivo, su correo electrónico), apunte más alto, alrededor de 90 bits o más, que son siete u ocho palabras de la larga lista.
¿Por qué agregar una palabra ayuda más que agregar un símbolo?
Una palabra de la larga lista multiplica el número de posibilidades por 7,776, aproximadamente 12.9 bits. Un símbolo añadido en una posición fija lo multiplica por uno, porque el atacante sabe que está ahí. Sólo cuentan las opciones que en realidad son aleatorias.
¿La página cuenta la opción de caso aleatorio en la figura?
Sí, a un bit por palabra, porque cada palabra es un lanzamiento de moneda independiente. Las reglas de casos fijos se cuentan como cero, porque un atacante que conoce la regla puede aplicarla él mismo.
¿Por qué se utiliza la mitad del espacio de claves en las estimaciones de tiempo?
Porque, por término medio, una búsqueda exhaustiva encuentra la respuesta a mitad de camino. Usar el espacio de claves completo exageraría el tiempo en un factor de dos, lo cual es un error de redondeo en estas escalas, pero sigue siendo al revés.
¿Es 77 bits suficiente dada la velocidad con la que se vuelven las computadoras?
El coste de adivinar se duplica con cada bit extra, por lo que la aritmética favorece enormemente al defensor. Los riesgos realistas para una frase de contraseña de 77 bits no son cálculos sin procesar: son phishing, malware en su dispositivo, reutilización en varios sitios y un servicio que la almacenó sin cuidado. Esas son las cosas a las que vale la pena prestar atención.
Limitaciones
- La entropía es un límite superior a la dificultad de adivinar, no una predicción de cómo una cuenta se verá realmente comprometida. La mayoría de las cuentas se pierden por phishing, reutilización y bases de datos vulneradas en lugar de por conjeturas.
- Las cifras suponen que la fuente aleatoria es sonido. Esta página utiliza el generador criptográfico del navegador y se niega a ejecutarse sin él, pero no puede auditar ese generador desde dentro de la página.
- Las estimaciones de tiempo dependen enteramente de una tasa de conjeturas supuesta. La tasa utilizada aquí es expresa, deliberadamente dura y puede ser incorrecta en cualquier dirección para cualquier atacante en particular.
- El cálculo supone que cada palabra se dibuja de forma independiente y uniforme. Sería exagerar la fuerza si eso no fuera cierto, razón por la cual el generador extrae reemplazando en lugar de eliminar palabras que ya ha usado.
- Ninguna cifra de entropía explica que una frase de contraseña se reutilice, se escriba en algún lugar inseguro o se escriba en una máquina comprometida.