CRIPTOGRAFÍA EN LINUX Y WINDOWS©

Uno de los elementos más importante en la seguridad de un Sistema Operativo es la criptografía usada en la protección de las contraseñas, especialmente en usuarios de máximos privilegios como el Administrador.

Criptografía en Linux

En Linux tenemos tres métodos de encriptación de las contraseñas que son:

Bloowfish: En criptografía, Blowfish es un codificador de bloques simétricos, diseñado por Bruce Schneier en 1993 e incluido en un gran número de conjuntos de codificadores y productos de cifrado. Blowfish proporciona una buena rapidez de encriptación en software. Respecto a su vulnerabilidad señalar, que aunque se han encontrado algunos métodos que rompen el cifrado si se usan 4 u 8 rondas mediente criptoanalisis diferencial de segundo orden (Vincent Rijmen) o un ataque de texto plano conocido (Serge Vaudenay) respectivamente, no se ha encontrado ningún criptoanálisis efectivo para las 16 rondas completas que usa regularmente Blowfish. Sólamente el ataque por fuerza bruta que es aplicable a cualquier cifrado se puede usar.Schneier declaró “Blowfish no tiene patente, y así se quedará en los demás continentes. El algoritmo está a disposición del público, y puede ser usado libremente por cualquiera”.

DES: Data Encryption Standard (DES) es un algoritmo de cifrado, es decir, un método para cifrar información, escogido como FIPS en los Estados Unidos en 1976, y cuyo uso se ha propagado ampliamente por todo el mundo. El algoritmo fue controvertido al principio, con algunos elementos de diseño clasificados, una longitud de clave relativamente corta, y las continuas sospechas sobre la existencia de alguna puerta trasera para la National Security Agency (NSA). Posteriormente DES fue sometido a un intenso análisis académico y motivó el concepto moderno del cifrado por bloques y su criptoanálisis. Hoy en día, DES se considera inseguro para muchas aplicaciones. Esto se debe principalmente a que el tamaño de clave de 56 bits es corto; las claves de DES se han roto en menos de 24 horas. Se sabe que la NSA animó, o incluso persuadió a IBM para que redujera el tamaño de clave de 128 bits a 64, y de ahí a 56 bits; con frecuencia esto se ha interpretado como una evidencia de que la NSA poseía suficiente capacidad de computación para romper claves de éste tamaño incluso a mediados de los 70. Existen también resultados analíticos que demuestran debilidades teóricas en su cifrado, aunque son inviables en la práctica. Se cree que el algoritmo es seguro en la práctica en su variante de Triple DES, aunque existan ataques teóricos como:

  • El criptoanálisis diferencial fue descubierto a finales de los 80 por Eli Biham y Adi Shamir, aunque era conocido anteriormente tanto por la NSA como por IBM y mantenido en secreto. Para romper las 16 rondas completas, el criptoanálisis diferencial requiere 247 textos planos escogidos. DES fue diseñado para ser resistente al CD.
  • El criptoanálisis lineal fue descubierto por Mitsuru Matsui, y necesita 243 textos planos escogidos (Matsui, 1993); el método fue implementado (Matsui, 1994), y fue el primer criptoanálisis experimental de DES que se dio a conocer. No hay evidencias de que DES fuese adaptado para ser resistente a este tipo de ataque. Una generalización del CL (el criptoanálisis lineal múltiple) se propuso en 1994 Kaliski and Robshaw, y fue mejorada por Biryukov y otros (2004); su análisis sugiere que se podrían utilizar múltiples aproximaciones lineales para reducir los requisitos de datos del ataque en al menos un factor de 4 (es decir, 241 en lugar de 243). Una reducción similar en la complejidad de datos puede obtenerse con una variante del criptoanálisis lineal de textos planos escogidos (Knudsen y Mathiassen, 2000). Junod (2001) realizó varios experimentos para determinar la complejidad real del criptoanálisis lineal, y descubrió que era algo más rápido de lo predicho, requiriendo un tiempo equivalente a 239–241 comprobaciones en DES.
  • El ataque mejorado de Davies: mientras que el análisis lineal y diferencial son técnicas generales y pueden aplicarse a multitud de esquemas diferentes, el ataque de Davies es una técnica especializada para DES. Propuesta por vez primera por Davies en los 80, y mejorada por by Biham and Biryukov (1997). La forma más potente del ataque requiere 250 textos planos escogidos, tiene una complejidad computacional de 250, y tiene un 51% de probabilidad de éxito.

MD5: En criptografía, MD5 (acrónimo de Message-Digest Algorithm 5, Algoritmo de Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado. MD5 es uno de los algoritmos de reducción criptográficos diseñados por el profesor Ronald Rivest del MIT (Massachusetts Institute of Technology, Instituto Tecnológico de Massachusetts). Fue desarrollado en 1991 como reemplazo del algoritmo MD4 después de que Hans Dobbertin descubriese su debilidad. A pesar de su amplia difusión actual, la sucesión de problemas de seguridad detectados desde que, en 1996, Hans Dobbertin anunciase una colisión de hash plantea una serie de dudas acerca de su uso futuro. A pesar de haber sido considerado criptográficamente seguro en un principio, ciertas investigaciones han revelado vulnerabilidades que hacen cuestionable el uso futuro del MD5. En agosto del 2004, Xiaoyun Wang, Dengguo Feng, Xuejia Lai y Hongbo Yu anunciaron el descubrimiento de colisiones de hash para MD5. Su ataque se consumó en una hora de cálculo con un clúster IBM P690. En sistemas UNIX y GNU/Linux que utilizan el algoritmo MD5 para cifrar las claves de los usuarios, en el disco se guarda el resultado del MD5 de la clave que se introduce al dar de alta un usuario, y cuando éste quiere entrar en el sistema se compara la entrada con la que hay guardada en el disco duro, si coinciden, es la misma clave y el usuario será autentificado. He ahí el problema de encontrar y generar colisiones de hash a voluntad. Esto se traduce que a pesar de las vulnerabilidades anteriormente citadas al no poder generar colisiones a voluntad resulta seguro para encriptar la contraseña.

Criptografía en Windows©

De manera predeterminada, Windows© nunca almacena una contraseña de usuario como texto sin cifrar, sino que las contraseñas se almacenan mediante dos representaciones diferentes de las contraseñas, llamadas habitualmente “hashes”. Se utilizan estas dos representaciones para posibilitar la compatibilidad con versiones anteriores.

LMHash: El LMHash, también denominado hash de Lan Manager, no es en absoluto un hash, hablando técnicamente. Se calcula de la siguiente manera:

  1. Se convierten todos los caracteres de la contraseña que estén en minúsculas a mayúsculas.
  2. Se rellena la contraseña con caracteres nulos hasta que tiene exactamente 14 caracteres.
  3. Se divide la contraseña en dos bloques de 7 caracteres.
  4. Se utiliza cada bloque de manera independiente como una clave DES para cifrar una determinada cadena.
  5. Se concadenan los dos textos de cifras en una cadena de 128 bits y se almacena el resultado.

Como consecuencia del algoritmo que se utiliza para generar el LMHash, este hash es muy sencillo de averiguar. En primer lugar, incluso una contraseña que tiene más de 8 caracteres se puede atacar con dos bloques discretos. En segundo lugar, se pueden ignorar todos aquellos caracteres correspondientes a minúsculas. Por tanto, la mayoría de las herramientas para averiguar contraseñas comenzará averiguando los LMHashes y, a continuación, sencillamente variarán los caracteres alfabéticos de la contraseña averiguada para generar las contraseñas con mayúsculas y minúsculas. Observe que para poder iniciar sesión en un sistema que ejecuta Windows©, ya sea de manera remota o local, deberá utilizar la contraseña respetando las mayúsculas y minúsculas.

NTHash: El NTHash también se denomina hash de Unicode, debido a que admite todo el juego de caracteres de Unicode. Este NTHash se calcula tomando la contraseña en texto sin cifrar y generando el hash MD4 de la misma. A continuación, se almacena el MD4. El NTHash resulta mucho más resistente a los ataques de fuerza bruta que el LMHash. Se tarda varias órdenes de magnitud más en averiguar por fuerza bruta un NTHash que en averiguar por fuerza bruta un LMHash de la misma contraseña. Ciertas debilidades en MD4 fueron demostradas por Den Boer y Bosselaers en un documento publicado en 1991. En agosto del año 2004, unos investigadores divulgaron la generación de colisiones de hash en MD4 usando “cálculo a mano”.

Conclusión

Queda claro que las criptografías usadas en Windows© son totalmente vulnerables, pues se conocen criptoanálisis que son capaces de romper dicha encriptación en poco tiempo. En Linux, Blowfish sólo es atacable por fuerza bruta (probando una por una todas las claves), lo cual lleva muchísimo tiempo.

Bibliografía

http://es.wikipedia.org/wiki/Data_Encryption_Standard
http://es.wikipedia.org/wiki/MD5
http://es.wikipedia.org/wiki/Blowfish
http://support.microsoft.com/kb/299656/es

3 Responses to “CRIPTOGRAFÍA EN LINUX Y WINDOWS©”

  1. Muy interesante el mundo de las encriptaciones. Y ya se sabe que no es el fuerte de Window$.

    md5 es utilizado en aplicaciones web de andar por casa sobre todo, últimamente, pero si se va a meter uno en un berenjenal mayor hay que desecharlo.
    A parte que hay bases de datos por ahí de hash tremendamente peligrosas. Lo mejor es poner, no obstante, contraseñas largas y entremezclando caracteres y números.

    ¿Qué opinas de sha1, Pepe? No estoy muy puesto acerca de encriptaciones, pero por lo que he podido probar en distintas aplicaciones que la usan es la más segura y trabajosa para reventar. Amén de que habrá otras “bestias pardas” por ahí :D

    Saludos.

    PD: Soy Lucas, que he visto una entrada en el blog de Alfredo acerca de tu blog. Intentaré pasarme como en el de él.

  2. Gracias por interesarte por este tema tan importante, pero poco difundido, y que es uno de los pilares de la seguridad de los Sistemas Operativos. Respecto a la criptografía SHA-1 es una de las que se recomiendad hoy día junto a la TwoFish y RIPEMD-160, entre otras. Estas no son vulterables a los ataques por colisiones de hashes. Por lo que sólo pueden romperse por fuerza bruta. Saludos.

  3. Buen artículo. Normalmente utilizo SHA-1 para cifrar contraseñas en mis sitios web, que como han dicho por ahi, aunque ya ha sido roto, es mucho más difícil de romper que md5.

Leave a Reply

Packaged by Edublogs - education blogs.