Servidores web y SSL

La implementación de SSL en servidores web permite garantizar autenticación y privacidad entre los extremos de una comunicación. Esto es: asegurar que el cliente está conectado al servidor correcto, y asegurar que la información transmitida entre los extremos (cliente y servidor) no puede ser vista por nadie que esté en el medio de la comunicación.

Implementar SSL en un servidor web es una tarea que aparentemente se realiza con cero esfuerzo, y es, posiblemente, ésta razón la que lleva a cometer varios errores que debilitan sensiblemente las garantías de autenticación y privacidad que uno debe (y seguramente desea) garantizar.

Quisiera exponer a continuación algunos de los errores más frecuentes con los que suelo encontrarme al analizar la seguridad de servidores web que implementan SSL:

DNS: Las inconsistencias en la configuración de los DNS es uno de los factores que pueden debilitar la garantía de la autenticación. Encontrarme con que www.midominio.com apunta a un servidor web, mientras que midominio.com apunta a otro es algo bastante común.

Puertos: Al ingresar a http://www.midominio.com se espera ver el mismo contenido que al ingresar a https://www.midominio.com. Publicar aplicaciones distintas, en distintos puertos, y bajo el mismo dominio no contribuye en nada, y es un frecuente error.

Certificados auto-firmados: Los certificados auto-firmados obligan a los usuarios a ignorar cuadros de diálogo que advierten sobre la autenticidad del servidor al cual se están conectando. En estas condiciones, cualquier mensaje de advertencia “real” que sea presentado será también ignorado por el usuario.

Certificados incompletos: Si al ingresar a www.midominio.com se espera ver el mismo contenido que al ingresar en midominio.com, es también de esperar que en ninguno de los dos casos aparezcan mensajes de advertencia sobre la autenticidad del sitio o el uso de certificados. En estos casos, el uso de certificados multi-dominio es una de las soluciones.

Contenido mixto: Mezclar la carga de contenido a través de canales planos y canales cifrados puede dar lugar a ataques de tipo MitM. No se debe mezclar el uso de canales cifrados y canales planos en una misma aplicación web.

Configuración del servidor web: Muchas de las implementaciones de SSL descansan sobre la configuración estándar que incluye el servidor web. Esta configuración no suele ser lo suficientemente robusta como para poner un servidor web en producción, y mucho menos expuesto a Internet.