4.5.08

Las contraseñas en Windows

Una de las maneras más clásicas de proteger algo (datos) ha sido a través de contraseñas o passwords. Sobre ellos se ha escrito y se ha dicho mucho: que si deben tener más o menos digitos, mayúsculas y minúsculas, números y signos; practicamente se ha podido ver y leer de todo acerca de ellas. Pero muy poco se ha leído de cómo trata Windows a esos passwords, ¿qué hace con ellos una vez que son ingresados por el usuario?. En post anteriores hablamos de las contraseñas y dijimos que eran almacenadas en el archivo SAM (Security Account Manager) de Windows; hoy trataremos de explicar brevemente cómo las guarda.

Como ya dijimos, el SAM está en constante uso por parte del Sistema Operativo, y es por eso que se hace imposible, para cualquier usuario, eliminarlo, leerlo, copiarlo o moverlo (salvo de la manera que se explicó en un post anterior). Por todo esto, muchos piensan que el SAM es sinónimo de seguridad, pero no es tan así. Para otros es justamente al revés, y es sinónimo de la inseguridad y la vulnerabilidad de los sistemas operativos Windows.

En Windows XP las contraseñas de menos de 15 caracteres son almacenadas en el SAM en
hashes LAN Manager. Esta tecnología de autetificación fue desarrollada en los años 80 para ser usada con Microsoft LAN Manager. Si nos ubicamos mentalmente en esos años, veremos que los ataques hacia el LAN Manager eran (o debieron ser) muy distintos, por lo que veinte años después ya no es considerado un método muy seguro. A pesar de todo, Windows XP implementó el LAN Manager como opción predeterminada, simplemente por razones de compatibilidad con los sistemas anteriores.

Todo esto hace que hoy, año 2008, todavía existan dos vulnerabilidades graves en el hash del LAN Manager: La primera consiste en que los passwords mayores de 7 caracteres se dividen en dos partes, las cuales crean hashes por separado. ¿Y cuál es el problema? Elemental, esto permite (o nos da) la posibilidad de descifrar esos hashes por separado (individualmente), y así en lugar de tener que enfrentarnos a un hash de 14 caracteres, hay que descifrar dos de 7 digitos, aumentando las posibilidades de exito para un atacante. Así, en lugar de tener 47855700.(10)
6 (*) combinaciones de caracteres diferentes posibles, la cantidad se ve reducida a 621,214.(10)6 combinaciones por hash. Al haber menos combinaciones posibles, las probabilidades de descrifrar la contraseña (y cada hash) son mucho mayores. La segunda vulnerabilidad de LAN Manager está muy asociada a la primera, y consiste en que antes de convertir la contraseña a hash, se realiza un paso previo y se convierten todos los caracteres del password a mayúsculas, reduciendo aún más la cantidad de combinaciones posibles por hash a un poco más de 1.(10)6 - un millón y medio aproximadamente.

Otra debilidad, que solo vamos a nombrar, del LAN Manager es que durante la conversión del password a hash, no es utilizado un proceso de hashing aleatorio, conocido como "salt" y que hace mucho tiempo es usado por UNIX. Esto significa que la "clave de encriptación" para generar el hash es siempre la misma (obtenida del propio password), a diferencia del hashing aleatorio donde la clave es aleatoria y queda almacenada (oculta) dentro del mismo hash. La finalidad del salt es la de incrementar el número de probabilidades/posibilidades que tiene un atacante para "adivinar" el password y así aumentar la seguridad.

Ante tanta inseguridad, Microsoft incorporó en sus sistemas una utilidad denominada "Syskey" para reforzar la seguridad de las contraseñas, motivado por los fallos de los hashes de LAN Manager. Syskey permite cifrar información almacenada en el SAM protegiéndolo contra ataques realizados por un sistema operativo alternativo, y para eso genera una clave aleatoria utilizada para cifrar los datos del SAM. Esta nueva opción de seguridad incorporada por el Syskey, viene activada de forma predeterminada en Windows 2000, Windows 2003 y Windows XP, y una vez activada "no se puede desactivar". No obstante, les cuento que sí se puede desactivar en minutos, tema que intentaremos ver en próximos posts (es un poco largo de explicar).

No existe futuro para la autentificación de contraseñas a través de hashes de LAN Manager. El software diseñado para realizar ataques de fuerza bruta, ataques de diccionario, tablas rainbow, etc. consigue en minutos obtener las contraseñas LAN Manager. Los sistemas operativos Windows siguen siendo vulnerables, y solo queda esperar a que los próximos parches y Service Packs, tanto de Windows XP (SP3) como de Windows Vista (SP1), mejoren un poco el tema tan promocionado de la seguridad.

(*) NOTA: Tomando 27 letras mayúsculas, 27 minúsculas y 10 números, en contraseñas donde pueden repetirse los caracteres, y la diferencia entre una y otra puede ser la ubicación de un elemento como así también el elemento en sí mismo.

No hay comentarios.:

Publicar un comentario