Si en meses anteriores se avisaba de la necesidad de comprobar el candadito del navegador,  ahora unos investigadores han conseguido que cualquier certificado SSL parezca valido.

Aunque el impacto real será mínimo, se ha conseguido demostrar empíricamente que es posible falsificar cualquier certificado SSL y por tanto, que los navegadores den como válidos certificados falsos que harían aparecer páginas
fraudulentas como legítimas.

En realidad solo se ha demostrado algo que se suponía teórico (que no es poco). El SSL no está roto, el problema reside en un modelo de PKI concreto.

En realidad, las raíces reales del problema son dos: las conocidas colisiones del algoritmo hash MD5 (empleado para firmar los certificados), y que ciertas autoridades certificadores todavía lo usen.

Cómo lo han hecho

Han creado certificados con identidades usurpadas, pero validados por CA. Lo han conseguido con fuerza bruta, forzando la colisión de la firma MD5. Esto puede permitir crear sitios falsos con certificados que sean válidos, o de forma práctica: phishings perfectos.

Alegóricamente, lo que han conseguido es recortar un sello del Estado que da validez a un carné cualquiera y pegarlo en un carné falsificado de otro individuo al que se pretende imitar.

Esto es, para falsificar un certificado, los investigadores crearían dos certificados, uno que falsificase los datos y otro real con cualquier información. El truco es que han conseguido con fuerza bruta, que ambos resulten en un mismo hash criptográfíco, en el mismo MD5. Entonces enviarían el real a una CA que todavía use MD5 para validar certificados. La CA lo firmaría y lo validaría con total normalidad. Luego los atacantes dan el cambiazo. Como ambos resultan en el mismo hash aunque contengan distintos datos,todo encaja, y el certificado falso seguiría siendo matemáticamente válido a todos los efectos.

Entonces ¿qué pasa?

Simplemente no hay que fiarse de los certificados de autoridades certificadoras que se basen en MD5 (el otro algoritmo posible es SHA, preferiblemente SHA-2).

También hay que tener en cuenta que pocas CA usan hoy día MD5, y que tras esta llamada de atención es de esperar que sean todavía menos en el futuro. Para los que posean certificados, es aconsejable que comprueben que la CA que les ha dado validez usa o no MD5.

En cualquier caso, el problema de base es que el usuario medio no sabe qué es SSL, ni qué significa un certificado, y mucho menos interpretarlo. Como mucho, sabe que si está en un sitio https, o el candado del navegador está activo, entonces el sitio es “bueno”. Pero ya sabemos que para conseguir un candado en el navegador o incluso un certificado no válido (aunque el navegador se queje, el usuario no entenderá la advertencia y dirá que “sí”) no es necesaria tanta complejidad.

SSL/TSL es un protocolo técnicamente bueno pero está resultando una tecnología “socialmente” fallida. No es entendida por el usuario y ese es el mayor de sus problemas. Con este golpe técnico la infraestructura de PKI se ha demostrado que incluso a los expertos se les podría engañar con los certificados, pero también es cierto que los que entienden la tecnología pocas veces se detienen a cuestionarse un certificado, comprobando la ruta de certificación y demás información proporcionada por el sitio supuestamente seguro.

En definitiva, esto es grave sobre todo para https, pero nada catastrófico va a pasar a efectos prácticos para el usuario medio. Al menos no más grave de lo que ya está ocurriendo, teniendo en cuenta la credibilidad de la que todavía gozan burdas copias de páginas web que simulan ser bancos.

Todos los grandes fabricantes (que usen VPN basadas en SSL o implementen navegadores) han publicado avisos explicando el problema.

Más información:

Be Sociable, Share!