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.
- ¿Qué debe hacer si su sitio de WordPress fue pirateado?
- ¿Cuál es el mejor producto de firewall de próxima generación? ¿Cuál es la diferencia con la próxima generación de IPS? ¿Quién probablemente ganará? Sourcefire? Cisco? ¿Control? ¿Palo Alto?
- ¿Sabes qué es la botnet?
- ¿Qué es el cifrado de seguridad de la base de datos?
- ¿Los programas antivirus o firewalls protegen contra los hackers?
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