¿Cómo evalúan los sitios web la solidez de su contraseña o si cumple con los requisitos de contraseña?

Su comprensión es solo parcialmente correcta e irrelevante para su pregunta real.

Primero, los sitios web generalmente miden la fuerza de las contraseñas calculando la aparente “entropía” de lo que escribes. El verificador de fuerza tiene acceso completo a su contraseña real (consulte más abajo para obtener más información al respecto). La entropía de una contraseña es esencialmente el número de contraseñas diferentes que un atacante tendría que probar antes de adivinar su contraseña. Una contraseña de letra minúscula de un carácter tiene una entropía de 26, mientras que una contraseña mayúscula o minúscula tiene una entropía de 52. Dos caracteres tienen una entropía de [matemática] 52 ^ 2 [/ matemática], tres caracteres dan [matemática] 52 ^ 3 [/ matemáticas], etc. Entonces, un verificador típico adivina el conjunto de caracteres basado en lo que escribe contando 26 si usa una letra minúscula, +26 si usa una letra mayúscula, +10 si usa un dígito y alrededor de +30 para puntuación. Eso es llevado al poder apropiado.

Mi definición de entropía anterior habla de un atacante que intenta contraseñas. Cuanto más sepa el atacante sobre cómo generó la contraseña, menor será la entropía. Por ejemplo, si un atacante sabe que usó el algoritmo xkcd Password Strength, eso le da menos contraseñas para adivinar. Pero el algoritmo toma eso en cuenta al evaluar su entropía. Los verificadores de fortaleza del sitio web generalmente suponen que generó su contraseña al azar, pero lamentablemente ese es raramente el caso.

Sí, como se menciona en otras respuestas, algunos verificadores de fuerza realizan búsquedas en el diccionario para medir la entropía, la mayoría de los cuales muestran la fuerza a medida que escribe no. Puede notar la diferencia ingresando “wordpass” y compárelo con “jwvzftnj” (que generé aleatoriamente a partir de las 21 consonantes usando el Servicio de números aleatorios verdaderos). ¿Son esos la misma fuerza? Luego observe lo que sucede mientras agrega tres caracteres más para obtener “wordpassnow” y “wordpass – 1A”. Si ese último de repente se vuelve muy fuerte de muy débil, sabes que está usando el algoritmo simple anterior.

En segundo lugar, tiene razón en que las contraseñas se verifican comparando hashes. Pero en algún momento el software necesita la contraseña real para calcular el hash. El hash podría calcularse en el navegador o en el servidor. En cualquier caso, la contraseña en sí misma nunca se guarda. Pero eso no tiene ningún impacto en la discusión anterior ya que la fortaleza (y si su contraseña cumple o no con los requisitos) se calcula antes de que se descarte la contraseña.

Si ve la fortaleza que se muestra más adelante (por ejemplo, en los paneles de Google Apps), esa fortaleza se registró cuando se ingresó y guardó la contraseña.

Más información aquí Fortaleza de la contraseña – Wikipedia

He escrito un código que hace esto, así que puedo decirte exactamente cómo funciona.

En primer lugar: es mucho más simple de lo que piensas. Si aún no ha hecho clic en el botón “enviar”, no se ha transmitido nada al servidor web. Como señalaron otras respuestas, la página web incluirá un pequeño javascript. Javascript es un lenguaje de programación especial que se ejecuta en SU ​​computadora. No tiene que instalar nada, solo se ejecuta dentro de su navegador web. Así es como puede decirte la fuerza de tu contraseña en el momento en que la escribes.

¿Entonces, cómo funciona? El javascript observa el cuadro de contraseña y lo revisa para ver algunas reglas simples. Estas reglas generalmente verifican si su contraseña:

  1. Es más largo que cierto número de caracteres
  2. Contiene letras mayúsculas y minúsculas
  3. Incluye un número y / o un símbolo especial.

Aunque su contraseña parece oculta, el JavaScript aún puede leerla. Las contraseñas de hash y el inicio de sesión son mecanismos completamente separados y suceden más tarde.

Lo curioso es que estas reglas son anticuadas y en realidad no fortalecen su contraseña, solo que es más difícil de recordar. Aquí hay una regla mucho mejor:

Con agradecimiento a XKCD

Aquí hay un ejemplo para explicar si puede confiar en el comprobador de seguridad de contraseñas en línea.

passwordmeter.com es el principal resultado de búsqueda del comprobador de seguridad de contraseña, y decidí tomarlo como objeto de experimento. Después de todo, esa es la opción más popular.

¡Elegí ” [correo electrónico protegido] !” porque muchas personas podrían creer que, además de ser fácil de recordar, tiene una fuerza razonable con la “@” y el signo de exclamación al final, y los números. De hecho, esto es lo que piensa también Password Strength Checker. Da ” [correo electrónico protegido] !” un puntaje de 82% y califica su complejidad como “fuerte”. y es una contraseña conocida !!

Tenía que decir que el algoritmo es demasiado casual y parece poco confiable verificar la complejidad de la contraseña.

Estás en lo correcto.

La mayoría de estos sitios web incluyen un poco de JavaScript en el sitio web. Este es un código de programación que realmente se ejecuta dentro del navegador en su computadora.

A menudo, este JavaScript se usa para mostrar cuadros de diálogo y moverse por las imágenes (como menús), pero también se puede usar para verificar si la contraseña ingresada cumple ciertos criterios, antes de enviar su hash al servidor web.

Esto también significa que, al menos en teoría, podría eludir esta evaluación omitiendo el código JavaScript y enviando una contraseña débil. El servidor web no lo sabría realmente.

Está mezclando el inicio de sesión con el cambio de su contraseña; por lo general, los dos son procesos muy separados.

La seguridad de la contraseña se evalúa solo cuando se configura una nueva contraseña.

La autenticación se realiza, como sugiere acertadamente, mediante la comparación de hash basada en la contraseña ahora desconocida.

En ambos casos, la contraseña se puede transmitir (a través de HTTPS) al servidor del sitio web.

Suponga que desea establecer su contraseña en ‘1234’. Ahora si calculo Hash de valores 1 a 10000 y los guardo en una tabla. Luego obtendré el valor hash de su contraseña ’72ae25495a7981c40622d49f9a52e4f1565c90f048f59027bd9c8c8900d5c3d8′ de la base de datos y comenzaré a encontrar este valor hash en mi tabla. Podré encontrar este valor de hash contra el texto sin formato ‘1234’ en mi tabla.

Esta técnica se llama Rainbow Tables. En Internet puede encontrar tablas Rainbow pregeneradas para millones de registros.

Ahora, si configura la contraseña ‘ [correo electrónico protegido] / G0d’, tomaría mucho más tiempo forzarla en mi Tabla Rainbow.

Por lo tanto, la seguridad de la contraseña sigue siendo importante incluso si estamos utilizando Hashing.

Los sitios web ejecutan un script para verificar las palabras conocidas, su correo electrónico o nombre, números y otros caracteres y finalmente la longitud