¿Cómo verifica Windows (OS) la contraseña? ¿Dónde almacena sus contraseñas?

Windows, como la mayoría de los demás sistemas operativos o servicios importantes, no almacena su contraseña en la memoria. Pero entonces, ¿cómo puede saber que ingresó la contraseña correcta?

La respuesta es hashing.

Las funciones hash son funciones que van fácilmente de A a B, pero hacen que sea casi imposible volver a A si conoce B.

Una función hash necesita:

  • Convierta la misma entrada a la misma salida
  • Convierta entradas ligeramente diferentes a salidas extremadamente diferentes
  • Evite convertir dos entradas diferentes a la misma salida

Un ejemplo de la función hash de la vida real es la guía telefónica:

  • Cada persona tiene un número de teléfono único.
  • Personas similares tienen números telefónicos completamente diferentes
  • Todos los que busquen a John Smith en Londres, calle número A, encontrarán el mismo número de teléfono.
  • Es fácil obtener el número de teléfono de una persona determinada
  • Es realmente difícil rastrear a la persona que recibió el número de teléfono

Entonces, volviendo a Windows: ¿cómo funciona esto?

Cuando registre su cuenta con una contraseña, Windows guardará el hash (usando la función hash LM para Windows XP o NTLM para versiones más recientes) en un archivo en la computadora (C: \ Windows \ System32 \ Config \ SAM para ser precisos) .

Cuando inicie sesión, Windows generará el hash de la contraseña que envió: si ese hash es idéntico al guardado, la contraseña es correcta.

Este método permite que Windows lo autentique sin almacenar su contraseña de ninguna manera.

Extra 1
El archivo SAM está bloqueado e ilegible durante la ejecución de Windows (solo el núcleo tiene acceso a él), por lo que si desea leerlo, deberá utilizar algún método indirecto. Además, el archivo SAM a menudo se cifra utilizando un archivo SYSKEY, por lo que también deberá leer ese archivo y usarlo para descifrar los hash.

Extra 2
Te dije sobre LM (hash de Windows XP): esa función hah es extremadamente débil. Y con eso quiero decir que un atacante con conocimientos extremadamente básicos sobre el asunto podría obtener la contraseña de cualquier hash LM en menos de un minuto. Esto se debe a algunas debilidades en la función hash:

  • En primer lugar, considera solo los primeros 14 caracteres de la contraseña: si tiene una contraseña XP de 15 o más caracteres, sus caracteres pasados ​​el 14 son superflous
  • En segundo lugar, divide los 14 caracteres en dos bloques de 7: esto significa que un atacante debe adivinar dos contraseñas de 7 caracteres en lugar de uno de 14, lo cual es considerablemente más fácil
  • En tercer lugar, hay algunos problemas más complicados con el proceso de cifrado que hacen que el proceso de descifrar el hash sea aún más fácil

El proceso de verificación utiliza Hashing.

Todas las contraseñas de Windows están encriptadas y almacenadas en la sección del registro. Y la colmena también tiene un nivel adicional de protección de seguridad. Los usuarios no tienen privilegios de seguridad para acceder a esa parte de la colmena que está almacenada en la carpeta de su sistema.

Pero no necesitamos preocuparnos por la protección de acceso de la colmena. Porque está asegurado por una encriptación fuerte. Solo se almacenan los hashes y no la contraseña en sí.

Incluso si alguien obtiene acceso a los hashes, aún no puede realizar una fuerza bruta o un ataque basado en el diccionario. Es difícil.

Solo asegúrese de estar ejecutando Windows Vista o posterior para asegurarse de que está ejecutando los últimos protocolos de seguridad.

Las contraseñas se cifran con cifrado hash NLTM y generalmente se almacenan en el SAM (Security Account Manager), parte del Registro de Windows, en C: \ Windows \ System32 \ Config (directorio normalmente inaccesible, al menos mientras se ejecuta Windows).