• =?iso-8859-1?q?una-al-dia_=2818/04/2008=29_Mitos_y_leyendas=3A_Las_cont

    From noticias@hispasec.com@2:341/201.99 to All on Sat Apr 19 03:45:02 2008
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    -------------------------------------------------------------------
    Hispasec - una-al-día 18/04/2008
    Todos los días una noticia de seguridad www.hispasec.com
    -------------------------------------------------------------------

    Mitos y leyendas: Las contraseñas en Windows III (LM y NTLM)
    ------------------------------------------------------------

    Microsoft ha mejorado gradualmente la seguridad de su fichero SAM, pero
    también ha mantenido la compatibilidad hacia atrás con sistemas
    inherentemente inseguros como Windows 9x. Con la cada vez mayor
    sofisticación de herramientas capaces de atacar por fuerza bruta los
    hashes LM y NTLM, el cifrado (sobre todo el LM) se ha vuelto
    virtualmente inútil si la contraseña no es realmente entrópica y
    compleja. En Vista, por fin, se ha eliminado al menos el eslabón más
    débil, el hash LM.

    Si se estudia el resultado de un volcado online u offline (tras
    'saltarse' el syskey) de la SAM, veremos algo así:

    Administrador:500:42f29043y123fa9c74f23606c6g522b0:71759a1bb2web4da43e676d6b7190711:::

    que oculta en realidad el hash LM de la contraseña (42f29043y123fa9c74f23606c6g522b0) y el hash NTLM (71759a1bb2web4da43e676d6b7190711)

    El cifrado LM (Lan Manager)

    Como dijimos, la SAM almacena dos cifrados por contraseña, LM y NTLM. LM
    es débil e inseguro por diseño, y además, teniendo en cuenta la potencia
    de los ordenadores actuales capaces de probar cientos de miles de
    contraseñas por segundo, su 'cifrado' es virtualmente inútil. LM no
    aprovecha bien los caracteres de las contraseñas y además comete otra
    serie de fallos importantes. Uno de los pasos para calcular el hash LM
    consiste en rellenar de '0' la contraseña hasta llegar a los 14
    caracteres (en caso de que sea más corta) y partir el resultado en dos
    trozos de 7 bytes cada uno (el segundo relleno de esos '0' si es
    necesario). También convierte a mayúsculas todos los caracteres. Sobre
    estos dos trozos aplica un algoritmo estándar (DES) para cifrar una
    cadena arbitraria, conocida y fija (4b47532140232425) y los concatena.

    El algoritmo comete una serie de errores imperdonables, incluso para la
    época en la que fue diseñado. Convertir todo a mayúsculas permite a los programas de fuerza bruta atacar directamente utilizando mayúsculas y reduciendo así el tiempo de cálculo, disminuye considerablemente las combinaciones. Pero lo más grave es que el hecho de partir la contraseña
    en dos, permite a los programas de fuerza bruta, dividir el trabajo y
    actuar en paralelo sobre ambos trozos. Así es que por ejemplo, en una contraseña de 10 caracteres, un programa de fuerza bruta tendrá que
    atacar en realidad dos partes diferentes: una contraseña de siete
    caracteres y otra de tres, casi trivial de adivinar. Un usuario con una contraseña de 14 caracteres estaría casi igual de expuesto que uno que utilizase una de 7 caracteres de longitud, pues en vez de elevar exponencialmente el tiempo de ataque, sólo se tardaría el doble (dos
    trozos de siete en vez de uno) o el mismo tiempo si se trabaja en
    paralelo. Obviar la diferenciación entre mayúsculas y minúsculas tampoco resulta, en absoluto, una buena idea.

    El cifrado NTLM (NTLan Manager)

    NTLM supone el segundo "intento" de Microsoft por mejorar el protocolo
    de las contraseñas. Por fin diferencia entre mayúsculas y minúsculas e internamente es más simple y robusto: calcula el hash cifrando con el
    estándar MD4 tras una pequeña modificación del valor hexadecimal de la contraseña.

    Pero por muchas mejoras que introduzca, NTLM queda anulado. Porque por
    defecto las contraseñas son almacenadas y utilizadas en los dos
    formatos, el arcaico LM y NTLM, juntas en el mismo SAM. Un ejemplo claro
    de cómo la seguridad es tan fuerte como el más débil de sus eslabones.

    Curiosidades

    Durante mucho tiempo se dio por cierto que la contraseña óptima en
    Windows debía ser de 14 caracteres. Primero porque antes de Windows 2000
    (que permite contraseñas de 127 caracteres) los cuadros de diálogo de NT
    que pedían la contraseña, no dejaban escribir más de 14 letras.

    Y segundo por la naturaleza propia de LM, que no soporta más de 14
    caracteres. Pero... si en Windows 2000 se aceptan más de 14 caracteres
    para la contraseña, y el cifrado LM se ha mantenido hasta Vista por
    razones de compatibilidad. ¿Qué pasaba entonces con el cifrado LM cuando
    la contraseña estaba compuesta por más de 14 caracteres? ¿Cómo lo divide internamente Windows para calcular el hash LM si éste necesita partirla
    en dos trozos de 7 bytes cada uno? El protocolo LM rellena la contraseña
    de ceros cuando es menor de 14 letras para poder partirla en dos...
    ¿cómo dividir entonces en dos trozos de 7 caracteres una contraseña de
    15? Interesante pregunta para la que no existe respuesta.

    De este tipo de contraseñas, simplemente, no se calcula el hash LM. En
    estos casos el sistema operativo no almacena el hash LM, el algoritmo no
    lo soporta. Además de mejorar la seguridad por el hecho en sí de usar
    una contraseña de mayor longitud, dando una asombrosa vuelta de tuerca,
    esto protege contra ataques de fuerza bruta.

    Windows, cuando la contraseña tiene más de 15 caracteres, almacena la
    constante aad3b435b51404eeaad3b435b51404ee como hash LM (resultado de
    aplicar el cifrado LM a dos cadenas nulas de siete caracteres cada una y concatenarlas), que también es equivalente a una contraseña nula. Como
    la contraseña obviamente no es nula, los intentos de ataques contra el
    hash fallarán sistemáticamente. Esto no significa que una contraseña de
    más de 14 caracteres sea 'equivalente' a una contraseña nula. Aunque LM
    indique que la contraseña es nula, si no lo es, lógicamente ahí está (a
    su lado, literalmente) el hash NTLM para confirmar que no es así. Los
    programas de fuerza bruta que busquen la contraseña en el hash LM no funcionarán correctamente.

    En cualquier caso, siempre ha existido la posibilidad de indicarle a
    Windows que no almacene el hash LM de la contraseña (aunque sea de menos
    de 14 caracteres) en el sistema. Vista, por defecto, no lo almacena.

    Opina sobre esta noticia:
    http://www.hispasec.com/unaaldia/3463/comentar

    Más información:

    una-al-dia (01/04/2008) Mitos y leyendas: Las contraseñas en Windows I (Tipos de ataques) http://www.hispasec.com/unaaldia/3447/mitos-leyendas-las-contrasenas-windows-tipos-ataq

    una-al-dia (09/04/2008) Mitos y leyendas: Las contraseñas en Windows II (Syskey) http://www.hispasec.com/unaaldia/3455/mitos-leyendas-las-contrasenas-windows-syskey


    Sergio de los Santos
    ssantos@hispasec.com


    Tal día como hoy:
    -----------------

    18/04/2007: Grupo de parches de abril para diversos productos Oracle
    http://www.hispasec.com/unaaldia/3098

    18/04/2006: Múltiples vulnerabilidades críticas en Mozilla (Firefox/Thunderbird)
    http://www.hispasec.com/unaaldia/2733

    18/04/2005: Cross-Site Scripting en RSA Authentication Agent for Web para IIS 5.2
    http://www.hispasec.com/unaaldia/2368

    18/04/2004: Un promedio de 28 programas espías en cada ordenador que accede a Internet
    http://www.hispasec.com/unaaldia/2002

    18/04/2003: Nueva vulnerabilidad en Snort
    http://www.hispasec.com/unaaldia/1636

    18/04/2002: Parche para aplicaciones Microsoft sobre Macintosh
    http://www.hispasec.com/unaaldia/1271

    18/04/2001: El servidor web iPlanet puede revelar información confidencial
    http://www.hispasec.com/unaaldia/906

    18/04/2000: El cifrado de Citrix ICA es inseguro
    http://www.hispasec.com/unaaldia/539

    18/04/1999: Parches para Red Hat
    http://www.hispasec.com/unaaldia/173


    -------------------------------------------------------------------
    Claves PGP en http://www.hispasec.com/directorio/hispasec
    -------------------------------------------------------------------
    Bajas: mailto:unaaldia-request@hispasec.com?subject=unsubscribe
    Altas: mailto:unaaldia-request@hispasec.com?subject=subscribe
    -------------------------------------------------------------------
    (c) 2008 Hispasec http://www.hispasec.com/copyright
    -------------------------------------------------------------------

    --- SoupGate-DOS v1.05
    * Origin: Pasarela FTN-INet telnet://pucelabbs.dyndns.org:4000 (2:341/201.99)