30 diciembre 2008

MD5: Tocado, hundido y encima, muere matando

Noticia bomba que acaba de ser anunciada, el algoritmo MD5 del que ya existían sospechas muy muy fundadas sobre su vulnerabilidad frente a ataques de colisiones, y del que ya se habían publicado pruebas de concepto un tanto experimentales, ha sido definitivamente demolido.

Un grupo de investigadores han conseguido crear certificados X.509 falsos simulando ser una CA intermedia.

Una vez lanzada la bomba, las explicaciones: Por lo visto a día de hoy y pese a todas las señales de alarma algunas (¿muchas?) entidades de certificación siguen empleando el algoritmo MD5 en sus certificados digitales.
¿Para que se usa MD5 en un certificado digital? Muy sencillo, un certificado digital tiene asociados una serie de datos: Nombre, propósitos, en algunos tipos de certificado la dirección de correo, la clave publica y unos cuantos campos mas. Sobre esos datos se calcula el Hash de todos ellos y este hash es lo que firma la CA de turno para darle validez. (Mas información aquí)

Lo que han conseguido este grupo de investigadores es, a partir de un certificado 'normal' emitido por parte de una CA, adulterarlo para que el certificado se convierta en el de una CA intermedia (pero manteniendo la validez de la firma haciendo que el hash md5 de los campos coincida) y por consiguiente, convertirse en emisores de certificados que, a los ojos de cualquier navegador, serán completamente validos.

Mas esquemático:
  • Los atacantes solicitan un certificado SSL a la CA (en esta parte hay 'cierto truco' ya que en la CSR (petición del certificado), 'les cuelan un pequeño gol')
  • La CA les emite un certificado SSL valido EXCLUSIVAMENTE para autenticar un servidor web
  • Los atacantes crean un certificado, pero en vez de tener los campos propios de un certificado SSL, lo modifican para que sea un certificado de CA (con capacidad para emitir otros certificados)
  • Los atacantes crean una colisión en los datos del segundo certificado para que el MD5 coincida con los campos del certificado SSL que es autentico.
  • Los atacantes ya tienen un certificado de CA que permite emitir certificados con el mismo grado de validez que la CA autentica
¿Que supone esto, a efectos prácticos? Sencillo, Phising a tutiplén que será amablemente certificado como 'sitio confiable' por parte de cualquier navegador.

¿Esta acabado el mundo PKI? NO, cualquier implementación PKI que haya tenido la precaución de usar SHA como algoritmo de hash, esta a salvo del ataque.

Según he comprobado, tanto los certificados del Dni Electronico y los de la FNMT emplean SHA como algoritmo de hash, así que se puede afirmar que están a salvo del ataque.

3 comments :

dGil dijo...

"¿Que supone esto, a efectos prácticos? Sencillo, Phising a tutiplén que será amablemente certificado como 'sitio confiable' por parte de cualquier navegador."

Esto va a ser una fieshta!

lain dijo...

Por cierto, sabéis que para generar los certificados se utilizó un cluster con 200 consolas PlayStation 3 procesando datos en paralelo, reduciendo considerablemente el coste de utilizar un cluster de PCs.

http://www.elotrolado.net/noticia_grave-vulnerabilidad-de-ssl-explotada-con-200-ps3_1550

Salu2

Clakstein Tau Ceti dijo...

JAJAJA Que recuerdos,maravilloso.