Las contraseñas son el principal medio utilizado por cualquier usuario para autenticarse en algún servicio o sistema; de hecho, cuando se trata de manejar información sensible en correos electrónicos, redes sociales, sistemas operativos o corporativos, entre otros, el ingreso de un nombre de usuario y una contraseña es el método predilecto para hacer la autenticación.
El papel de una contraseña es similar al de una llave: proteger los recursos y la información importante del acceso no autorizado de terceros. Sin embargo, la forma en que se maneja este recurso puede hacer que su efectividad no sea la esperada. En el caso de Windows, como sistema operativo de escritorio más utilizado por usuarios en el mundo, resulta importante ser conscientes de cómo se gestionan las contraseñas de acceso para conocer los riesgos que puede traer no utilizar una contraseña robusta.
¿Cómo se almacenan las contraseñas en Windows?
Para que un sistema operativo Windows permita la autenticación una vez que ingresamos, debe comparar lo ingresado con una cadena de caracteres almacenada en la computadora. Esta cadena contra la que compara no está almacenada en texto plano, pues un acceso indebido al sistema dejaría la contraseña fácilmente expuesta. Por lo tanto se utiliza una función de hash para almacenarla con un grado mayor de seguridad.
Para sistemas operativos Windows, el hash de las contraseñas de los usuarios de cada máquina se encuentran en el archivo SAM (Security Account Manager) y se utiliza, dependiendo de la versión del sistema operativo, uno de dos algoritmos: LM o NTLM.
El cifrado LM (Lan Manager) es un algoritmo débil por la forma en que está diseñado, ya que por ejemplo divide la contraseña en dos bloques de 7 bytes, convierte todos los caracteres a mayúsculas y rellena con ceros los bytes no utilizados; todo esto facilita un ataque de fuerza bruta. Cuando fue reemplazado por NTLM (NTLan Manager) se corrigieron estos errores, pero aún así muchos sistemas por compatibilidad siguen almacenando las contraseñas en los dos formatos, lo cual es una clara falla de seguridad.
Cómo los atacantes obtienen y descifran las contraseñas de Windows
Son múltiples las formas en las que un atacante podría llegar a hacerse con los hashes relacionados con las contraseñas de Windows, por ejemplo a través del uso de un Iframe en un sitio web que aproveche una vulnerabilidad en un navegador o sus complementos.
Con el uso de un exploit un atacante podría obtener todos los nombres de usuario y los hashes asociados a una computadora en particular, tal como se puede ver en la siguiente imagen:
Con esta información, el atacante podría utilizar múltiples herramientas para a través de fuerza bruta llegar a obtener la clave que está utilizando la víctima. Sin embargo, y dado que muchos usuarios generalmente utilizan contraseñas débiles, una búsqueda en Internet basta para conocer la contraseña.
En la imagen anterior podemos ver cómo una búsqueda en Google arroja el resultado de la contraseña para el usuario Labo. De lo anterior se ve la importancia de tomar medidas de control para proteger las contraseñas de acceso. Muchas veces las mismas contraseñas utilizadas para una computadora son las mismas para acceder a otros sistemas o bases de datos, de ahí la importancia de contar con una contraseña robusta.
Pero además de contar con una contraseña lo suficientemente extensa y compleja para no ser adivinada con un método de fuerza bruta como en el caso anterior, la implementación de un método de doble autenticación puede marcar la diferencia para que un atacante obtenga información sensible.
Sigue leyendo: El tamaño sí importa: construyendo una contraseña larga y segura