jueves, 1 de diciembre de 2011

El gran fallo del correo electrónico

Por defecto no es necesario autenticar la propia identidad para enviar un correo electrónico, lo cual significa que es muy fácil falsificar la propia dirección cuando se envía un correo.
Antecedentes históricos
En 1958, como consecuencia de la llamada Guerra Fría, se crea DARPA, acrónimo de Defense Advanced Research Projects Agency (Agencia de Investigación de Proyectos Avanzados de Defensa). DARPA es, una agencia dependiente del DoD (Departamento de Defensa de los Estados Unidos), responsable del desarrollo de nuevas tecnologías para uso militar.

De DARPA estableció décadas después los fundamentos de ARPANet (Advanced Research Projects Agency Network o Red de la Agencia de Investigación de Proyectos Avanzados), que posteriormente dio origen a Internet.

En 1972, Ray Tomlinson de la BBN inventó el correo electrónico, que ya desde sus inicios tuvo un éxito impresionante.


En resumen, nos encontramos en una época en la que los equipos informáticos son enormes, tienen unos precios astronómicos, son altamente propensos a fallos, etc... desarrollando una red que, en principio, va a ser militar o, lo que es lo mismo, cerrada.

¿Como funciona el correo electrónico?

El correo electrónico gira alrededor del uso de las cuentas de correo electrónico. Cuando se envía un correo electrónico, el mensaje se enruta de servidor a servidor hasta llegar al servidor de correo electrónico del receptor.



Los Clientes de Correo Electrónico, Mailers o Mail User Agent (MUA) son las distintas aplicaciones que utilizamos para leer o enviar correos electrónicos. Estos clientes pueden ser aplicaciones instaladas en el equipo, como Mozilla Thunderbird, Microsoft Outlook, Eudora Mail, Lutos Notes, etc... o aplicaciones Web que nos dan acceso al servicio como pueden ser Gmail, Hotmail, Yahoo, GMX, etc... (en este caso se suele denominar WebMail).

Cuando se envía un correo electrónico, este se almacena en un Servidor de Correo Electrónico, también llamado Servidor de Correo Saliente, Agente de Transporte de Correo (Mail Transport Agent -MTA-), o Servidor SMTP, ya que utiliza el protocolo SMTP (Simple Mail Transfer Protocol) para comunicarse.

Una vez que el correo enviado se ha almacenado en el Servidor de Correo (MTA), este inicia la negociación con el servidor de correo (MTA) del destinatario para el envío del mismo, de modo que, los servidores de correo actúan como clientes y servidores, indistintamente, dependiendo de la dirección de destino del mensaje.

Cuando el correo llega al MTA del destinatario, el mensaje se almacena en el Agente de Entrega de Correo o Mail Delivery Agent (MDA) hasta que el Cliente de Correo Electrónico del usuario se conecte para descargarlo.

Existen, principalmente, dos protocolos utilizados para recuperar un correo electrónico de un MDA (aunque existen otros protocolos propietarios):
  • POP3 (Post Office Protocol, Protocolo de Oficina de Correos o, simplemente, POP), es el más antiguo de los dos, que se usa para recuperar el correo electrónico (no sirve para enviar, sólo está diseñado para recibir). Está diseñado para conectarse, almacenar los correos nuevos en el ordenador local y desconectarse, pudiendo revisarse los correos posteriormente incluso estando desconectados y, opcionalmente,  permite dejar una copia del mensaje en el servidor.
  • IMAP (Internet Message Access Protocol o Protocolo de Acceso a Mensajes de Internet), está orientado a la visualización remota de los correos almacenados en el servidor, de modo que no descarga los correos al equipo local. Para soportar las funciones que permite cualquier cliente de correo, este protocolo permite especificar carpetas del lado del servidor.
Los MDA, debido al uso de estos protocolos, suelen denominarse Servidores POP o Servidores IMAP, en función del protocolo usado.

Usando una analogía del mundo real, los MTA actúan como la oficina de correo (clasificando y transportando el mensaje), mientras que los MDA actúan como buzones de correo, que almacenan los mensajes, hasta que los destinatarios revisan su buzón, de modo que no es necesario que los destinatarios estén conectados para poder enviarles un correo electrónico.

Para evitar que cualquiera lea los correos electrónicos de otros usuarios, el MDA está protegido por un nombre de usuario y una contraseña.

El gran problema del correo electrónico
Como hemos indicado, nuestro servidor de correo, nos pedirá un usuario y una contraseña para poder acceder a nuestro buzón de entrada, de modo que nadie pueda acceder a nuestro correo. Pero no pasa lo mismo con los mensajes de salida, es decir, el Protocolo SMTP no autentifica que el destinatario del mensaje sea quien dice ser.

Lo que sí podemos encontrarnos es que algunos servidores SMTP requieren autentificación, como se puede ver en la imagen, pero esto simplemente indica que el usuario que envía correo a través de ese servidor SMTP tiene una cuenta de correo en dicho servidor, pero no se garantiza que el correo se ha enviado utilizando como remitente la cuenta de correo de dicho usuario, es más, una vez autenticado en nuestro servidor SMTP de Hotmail (por ejemplo) podríamos enviar un correo indicando como remitente una cuenta de correo de Gmail (por ejemplo, también).


Ha habido varias propuestas para la expecificación e implementación de un protocolos SMTP más seguro, con propuestas como SMTP-AUTH, Extended SMTP, etc... así como distintas implementaciones de los mismos que han sido abandonados en distintos estados de madurez.

Las cuentas de correo de Facebook (@facebook.com)
Esto a propiciado los constantes correos que recibimos con SPAM de todo tipo, pero que no es nada en comparación con la cantidad de SPAM que vamos a empezar a recibir a partir de ahora a través de nuestras cuentas de Facebook.

Según se comentó cuando Facebook puso en marcha las direcciones de correo, era solamente un mecanismo para centralizar todas las comunicaciones en un solo sitio, pero no se intentaba sustituir a ningún otro servicio de correo. Esto hacia pensar que solamente iba a ser un sistema de mensajería interna (es decir, era necesario iniciar sesión en Facebook para enviar un "correo" a otro usuario de Facebook), pero no ha sido así. Como a publicado Minipunk en el artículo "Descubierta grave vulnerabilidad en facebook" del blog "El internauta de León".

¿Tomará Facebook cartas en el asunto?
En otras ocasiones algún servidor de correo ha sido el origen de gran cantidad de SPAM, que en muchos casos ha sido atajado impidiendo que se pudieran enviar correos electrónicos a direcciones que estuvieran fuera del dominio de dicho servidor. Esto sería una solución, ya que de este modo sólo se podría enviar correos, a usuarios de Facebook, desde cuentas de correo pertenecientes a Facebook, pero con la permisividad demostrada con las aplicaciones de Facebook, podría no ser la solución.

Tampoco creo que solucione el problema. No creo que sean lo suficientemente altruistas como para crear una comisión para redefinir y apoyar el desarrollo de un Servicio de Correo Electrónico Seguro, "derogando" el actual SMTP que se creó en unas circunstancias concretas que han cambiado disparatadamente (nadie se pensaba que ARPANet iba a terminar siendo lo que es hoy en día).

Las consecuencias
Una vez que los Spammers hayan terminado de adaptar sus bots (aplicaciones que realizan automáticamente y de forma desatendida tareas que, generalmente, requieren la intervención humana) para recoger las direcciones de correo de nuestro usuario y de todos nuestros amigos se puede desatar un verdadero armagedón que podría acabar con Facebook. Ya que ahora, los Spammers conocen muchas direcciones de correo, quienes son nuestros amigos, sus direcciones de correo, etc... de modo que pueden mandar mensajes mucho más personalizados de los, que probablemente, no desconfiarás ya que proceden de tus amigos.

Informa a tus amigos y/o síguenos para estar informado