¿Vulnerabilidades en SSL?
fuente: http://www.osiatis.es/weblogs2/index.php?/archives/3_Vulnerabilidades_en_SSL.html
Investigadores del Technion Institute (Israel) han anunciado en Crypto 2004 (conferencia sobre criptología celebrada hace escasas fechas en Santa Barbara, California) posibles vulnerabilidades en el algoritmo SHA-1, que hasta ahora se creía seguro, y que es utilizado en programas ampliamente utilizados como SSL (Secure Socket Layer) y PGP (Pretty Good Privacy).
Como este weblog no está dirigido a especialistas en criptología y ya hemos lanzado en el primer párrafo una serie de términos que habrán asustado a gran parte de los lectores, con permiso de los expertos, vamos a explicar, sin entrar en profundidades y simplificando a veces en exceso, el significado de los mismos para poder entender mejor la importancia y repercusiones de la noticia.
Empecemos por "SHA", pues el 1 es sólo una referencia a la versión. SHA es el acrónimo de "Secure Hash Algorithm" que puede ser traducido por "Algoritmo Hash Seguro"...lo que tampoco nos aclara mucho. ¿Qué es un algoritmo o función Hash? En el caso que nos ocupa, es básicamente una función que permite generar una cadena de bits esencialmente única (huella digital) asociada a una cadena de texto, un documento, un password, etc. La función hash SHA-1 tiene (tenía) dos propiedades que la hacen (hacían) muy útil en criptografía: es prácticamente irreversible y encontrar una colisión (otro input que nos genere el mismo resultado) no es (era) factible con los métodos matemáticos conocidos.
Pero pongamos un ejemplo que todos podamos entender. Supongamos que deseamos guardar una lista de passwords en una base de datos. Aunque el acceso a la base de datos esté protegido, existen personas que tienen acceso a esos datos y que, en principio, podrían utilizar esos passwords para entrar en otras zonas protegidas a las que no deberían tener acceso. ¿Qué podemos hacer? Si disponemos de una función que transforma esos passwords en cadenas de bits y esas cadenas son esencialmente únicas (a cada password le corresponde, con altísima probabilidad, una cadena de bits diferente) podemos almacenar estas cadenas en vez de los passwords, manteniendo estos últimos secretos. Y ustedes dirán de que me sirve todo esto, pues la persona que tiene acceso a los datos tiene acceso a estas cadenas de bits y seguirá teniendo permiso para entrar donde no debe. Pero la solución es sencilla: debemos utilizar la misma función hash para el proceso de autenticación. Los pasos son los siguientes:
1. El usuario se encuentra en la pantalla de su ordenador el formulario con nombre de usuario y clave que da acceso a la zona restringida.
2. Cuando el usuario introduce su password (que recordemos no esta almacenado en la BB.DD.) el programa le aplica la función hash y compara el resultado con el almacenado en la base de datos y si coinciden le da permiso de entrada.
3.Si un "usuario sin permiso" que conoce la cadena de bits almacenada en la BB.DD. intenta entrar en la zona restringida deberá de introducir un password que al aplicarle la función hash reproduzca la cadena de bits almacenada en la base de datos y que el ya conoce.
4.Si la función es prácticamente irreversible aunque conozca el resultado que debe obtener le será imposible, o al menos extremadamente complicado, encontrar un password que de el resultado deseado.
Como ven el proceso es sencillo si somos capaces de generar esas funciones hash que nos interesan, y eso se lo dejamos a los expertos en criptografía.
SHA-1 es precisamente uno de estos algoritmos que nos permiten generar "huellas digitales únicas", las cadenas de bits de las que venimos hablando, y que cumplen, o mejor dicho cumplían, las propiedades arriba mencionadas. La vulnerabilidad detectada es la posibilidad de crear "colisiones", o lo que sería equivalente, en el ejemplo que hemos desarrollado, la posibilidad de generar un password que aunque falso creara la misma huella digital que uno de los verdaderos, permitiendo al intruso entrar en una zona protegida sin el debido permiso.
El hecho de que SHA-1 se utilice, por ejemplo, en SSL hace que este asunto no sea baladí. SSL es el estándar que utilizan, entre otros, nuestros navegadores para intercambiar información de forma segura con los servidores de Internet. Cuando en la barra de estado de nuestro navegador aparece "el candadito" éste nos indica que la información que enviamos como, por ejemplo, el número de nuestra tarjeta de crédito, está siendo encriptada utilizando SSL. Por lo que cualquier vulnerabilidad en este último es como para poner los ¡pelos de punta!
Afortunadamente, la vulnerabilidad encontrada no representa todavia un serio peligro para las transacciones electrónicas pero está claro que los expertos ya estarán trabajando en "SHA-2" y que tarde o temprano SSL deberá adaptarse a este nuevo estándar si queremos que Internet siga siendo un lugar seguro.......¡aunque esto último pueda sonar irónico!
___
Investigadores del Technion Institute (Israel) han anunciado en Crypto 2004 (conferencia sobre criptología celebrada hace escasas fechas en Santa Barbara, California) posibles vulnerabilidades en el algoritmo SHA-1, que hasta ahora se creía seguro, y que es utilizado en programas ampliamente utilizados como SSL (Secure Socket Layer) y PGP (Pretty Good Privacy).
Como este weblog no está dirigido a especialistas en criptología y ya hemos lanzado en el primer párrafo una serie de términos que habrán asustado a gran parte de los lectores, con permiso de los expertos, vamos a explicar, sin entrar en profundidades y simplificando a veces en exceso, el significado de los mismos para poder entender mejor la importancia y repercusiones de la noticia.
Empecemos por "SHA", pues el 1 es sólo una referencia a la versión. SHA es el acrónimo de "Secure Hash Algorithm" que puede ser traducido por "Algoritmo Hash Seguro"...lo que tampoco nos aclara mucho. ¿Qué es un algoritmo o función Hash? En el caso que nos ocupa, es básicamente una función que permite generar una cadena de bits esencialmente única (huella digital) asociada a una cadena de texto, un documento, un password, etc. La función hash SHA-1 tiene (tenía) dos propiedades que la hacen (hacían) muy útil en criptografía: es prácticamente irreversible y encontrar una colisión (otro input que nos genere el mismo resultado) no es (era) factible con los métodos matemáticos conocidos.
Pero pongamos un ejemplo que todos podamos entender. Supongamos que deseamos guardar una lista de passwords en una base de datos. Aunque el acceso a la base de datos esté protegido, existen personas que tienen acceso a esos datos y que, en principio, podrían utilizar esos passwords para entrar en otras zonas protegidas a las que no deberían tener acceso. ¿Qué podemos hacer? Si disponemos de una función que transforma esos passwords en cadenas de bits y esas cadenas son esencialmente únicas (a cada password le corresponde, con altísima probabilidad, una cadena de bits diferente) podemos almacenar estas cadenas en vez de los passwords, manteniendo estos últimos secretos. Y ustedes dirán de que me sirve todo esto, pues la persona que tiene acceso a los datos tiene acceso a estas cadenas de bits y seguirá teniendo permiso para entrar donde no debe. Pero la solución es sencilla: debemos utilizar la misma función hash para el proceso de autenticación. Los pasos son los siguientes:
1. El usuario se encuentra en la pantalla de su ordenador el formulario con nombre de usuario y clave que da acceso a la zona restringida.
2. Cuando el usuario introduce su password (que recordemos no esta almacenado en la BB.DD.) el programa le aplica la función hash y compara el resultado con el almacenado en la base de datos y si coinciden le da permiso de entrada.
3.Si un "usuario sin permiso" que conoce la cadena de bits almacenada en la BB.DD. intenta entrar en la zona restringida deberá de introducir un password que al aplicarle la función hash reproduzca la cadena de bits almacenada en la base de datos y que el ya conoce.
4.Si la función es prácticamente irreversible aunque conozca el resultado que debe obtener le será imposible, o al menos extremadamente complicado, encontrar un password que de el resultado deseado.
Como ven el proceso es sencillo si somos capaces de generar esas funciones hash que nos interesan, y eso se lo dejamos a los expertos en criptografía.
SHA-1 es precisamente uno de estos algoritmos que nos permiten generar "huellas digitales únicas", las cadenas de bits de las que venimos hablando, y que cumplen, o mejor dicho cumplían, las propiedades arriba mencionadas. La vulnerabilidad detectada es la posibilidad de crear "colisiones", o lo que sería equivalente, en el ejemplo que hemos desarrollado, la posibilidad de generar un password que aunque falso creara la misma huella digital que uno de los verdaderos, permitiendo al intruso entrar en una zona protegida sin el debido permiso.
El hecho de que SHA-1 se utilice, por ejemplo, en SSL hace que este asunto no sea baladí. SSL es el estándar que utilizan, entre otros, nuestros navegadores para intercambiar información de forma segura con los servidores de Internet. Cuando en la barra de estado de nuestro navegador aparece "el candadito" éste nos indica que la información que enviamos como, por ejemplo, el número de nuestra tarjeta de crédito, está siendo encriptada utilizando SSL. Por lo que cualquier vulnerabilidad en este último es como para poner los ¡pelos de punta!
Afortunadamente, la vulnerabilidad encontrada no representa todavia un serio peligro para las transacciones electrónicas pero está claro que los expertos ya estarán trabajando en "SHA-2" y que tarde o temprano SSL deberá adaptarse a este nuevo estándar si queremos que Internet siga siendo un lugar seguro.......¡aunque esto último pueda sonar irónico!
___


0 Comments:
Publicar un comentario
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!