21 de noviembre de 2010

Cuando la "S" en HTTPS no es suficiente!

Un error común de los programadores es creer que el hecho de que se ofrezca un servicio SSL/TLS en un servidor web con un certificado válido es más que suficiente para garantizar que los datos no sean interceptados por los atacantes.

Si bien en teoría y en la realidad esto es cierto, el programador debe entender que los protocolos SSL/TLS protegen la comunicación entre el navegador y el servidor hasta cierto punto. Y es que no es el navegador el encargado de cifrar el contenido y establecer la comunicación cifrada con el servidor. Los protocolos SSL/TLS se encuentran entre la capa de aplicación (en donde se halla el HTTP, SMTP, FTP y otros protocolos) y la capa de transporte, justo encima del protocolo del protocolo de comunicación TCP.

Cuando usted indica al navegador que conecte con un servidor que usa SSL usted utiliza HTTPS, la última consonante (S) indica al navegador que conecte por HTTPS que en realidad es simple HTTP con la adición de el protocolo de seguridad SSL o TLS.

Por tanto, cualquier ataque que intercepte la comunicación a nivel de la capa de aplicación podrá extraer la información sin cifrar en texto plano. Lo anterior significa que cualquier BHO (Browser Helper Object) Plug-in de Firefox o Chrome, e incluso cualquier sniffer que intercepte la mensajería del navegador fuera de este hacia las librerías de comunicación del sistema operativo, está en posibilidad de obtener la información que en un principio creeríamos que estaría protegida por el protocolo de cifrado SSL/TLS.

Es muy simple de verificar. Si usted tiene Firefox instalado en su sistema solo necesita instalar un add-on llamado Httpfox que si bien es una aplicación muy buena, útil e interesante, además de inofensiva, le permitirá verificar lo que en estas líneas intento exponer.

Esta aplicación a parte de ser extremadamente útil para los webmasters y programadores web, le permite ver todo el flujo de datos que pasa a través del protocolo HTTP. En resumidas cuentas es lo que llamaríamos un "HTTP sniffer". Utilíce Httpfox para visualizar el flujo de un sitio web que se comunica por SSL/TSL (un sitio que conecte por HTTPS) y verifique como usted podrá perfectamente visualizar los contenidos introducidos en los formularios y hasta aquellos de los de los campos de tipo "password", mientra explora el contenido de las peticiones POST.

Es lógico entender a partir de este peueño experimento que si el Httpfox está en capacidad de mostrarle esta información de forma completamente transparente y legal, eso también significa que cualquier otro add-on creado con mala intención podría tomarla la misma y enviarla a los amigos de lo ajeno. ¿Interesante no?

En futuros artículos hblaremos acerca de como proteger al usuario de este tipo de amenazas, aunque ya he mencionado algo en un artículo posterior: Man in the Browser Attack

Hasta la próxima...
Mauro Maulini R.

1 comentario:

Anónimo dijo...

Buen artículo. A la vez quisiera preguntar que alternativas puedo tener para proteger los datos mientras pasan de la capa de aplicacion a la capa de transporte. Gracias.

Entradas populares