# Cliente de correo electrónico

Un cliente de correo electrónico es un programa de ordenador usado para leer y enviar mensajes de correo electrónico los cuales son almacenados en la misma máquina donde se ejecuta, lo que permite leerlos e incluso redactarlos fuera de línea.
Originalmente, los clientes de correo electrónico fueron pensados para ser programas simples para leer los mensajes del correo de usuario, enviados por el agente de reparto de correo (MDA) conjuntamente con el agente de transferencia de correo (MTA) a un buzón local para los usuarios que compartían una misma máquina. El correo electrónico, inventado en 1971 por Ray Tomlinson y tal como lo conocemos hoy, hace el mismo trabajo pero mueve los mensajes entre distintas máquinas conectadas ya sea en una red de área local o por Internet.
Los formatos de buzón de correo más importantes son mbox y Maildir. Estos simplísimos protocolos para el almacenamiento local de los mensajes de correo electrónico realizan de una forma muy sencilla la importación, exportación y copia de seguridad de las carpetas de correo al equipo donde se estén ejecutando.

## Otros tipos de clientes de correo electrónico

Además de los clientes de correo electrónico de "cliente grueso" y de los pequeños clientes de correo que cooperan con un MDA/MTA local, aquí presentados, existen también programas de correo electrónicos basados en la Web, denominados webmail o correo web, los cuales nunca almacenan los mensajes en el equipo local utilizado para consultarlos.

## Protocolos utilizados
### Orientados hacia la recepción de mensajes

La mayoría de los sistemas operativos modernos viene configurados con una variable global donde se indica el programa por defecto para enviar y recibir correo electrónico e incluso ofrecerán el software en sí mismo al momento de su instalación pero es potestad de cada usuario elegir uno o algunos diferentes. Un cliente de correo electrónico debe soportar el protocolo libre POP3 para descargar los mensajes y una vez realizada exitosamente dicha acción el servidor de correo electrónico procederá a borrarlos del buzón correspondiente (se delega en otros programas las tareas de respaldo y auditoría). Debido a este mecanismo de trabajo, el cliente de correo electrónico no necesita de conexión constante con el servidor de correo electrónico. Esencialmente, el POP3 es lo más parecido a un buzón de correo real.
Otro protocolo bien establecido y orientado a la conexión en línea es el Internet Message Access Protocol (IMAP) el cual está optimizado para almacenar correos electrónicos en el servidor, mientras que el protocolo POP3 se asegura que los mensajes de correo electrónico se descarguen al cliente. Así, si el usuario crea una carpeta en el servidor de correo electrónico (por medio del cliente de correo electrónico) a fin de clasificar los mensajes recibidos, el cliente de correo electrónico que utilice este protocolo IMAP deberá encargarse de crear una carpeta local y que será copia de la carpeta remota y luego mantener ambas carpetas sincronizadas. Por ello, cuando un usuario borra un mensaje en su carpeta local, el cliente de correo electrónico se comunicará con el servidor de correo electrónico para tal solicitud y una vez satisfecha procederá con el borrado en la carpeta local (de nuevo se delega en otros programas las tareas de respaldo y auditoría).
Messaging Application Programming Interface (MAPI) es una interfaz de programación de aplicaciones (API) privativa de Microsoft Windows que puede emplearse para acceder al servidor de correo Microsoft Exchange o para interactuar con el cliente Microsoft Outlook.

### Orientados hacia el envío de mensajes

La gran mayoría de clientes de correo electrónico emplean el Protocolo de Transferencia Simple de Correo (Simple Mail Transfer Protocol, SMTP) para enviar los mensajes de correo electrónico debido a las características que dificultan el proceso de recepción. Actualmente se ha adaptado para ser utilizado en el envío y reenvío de mensajes de correo electrónico entre servidores de correo. Se ha hecho tan común el uso de este protocolo entre servidores que indistintamente se utiliza la denominación de "SMPT server" al MDA que envía y "POP/IMAP server" al que lo recibe.

## Funcionalidades agregadas

Un importante estándar soportado por la mayoría de los clientes de correo electrónico es el Multipurpose Internet Mail Extensions (MIME), que se emplea para el envío de archivos binarios adjuntos al correo. Los adjuntos son ficheros que no forman parte del correo electrónico propiamente dicho, pero que se envían junto con este.
Los protocolos establecidos para comunicar a los clientes de correo electrónico con los servidores de correo electrónico no tuvieron una especificación para proteger la privacidad de los usuarios ante terceros. Más aún, un mensaje de correo electrónico puede que tenga que ser reenviado a través de varios servidores de correo distintos antes de alcanzar su destino final, ya que el SMTP permite que también actúen como "cliente" de otros servidores. En este escenario planteado, cada uno de los servidores de correo contiene una copia del mensaje el cual puede ser filtrado por y/o hacia terceros.
Secure MIME nace de la necesidad de cifrar el contenido de los mensajes durante su transporte entre servidores de correo para proteger la privacidad de los usuarios. Generalmente es utilizado por las empresas en sus servidores de correo que se encargan de cifrar y descifrar todos los mensajes salientes y entrantes de sus empleados.
Otra funcionalidad agregada -y derivada del uso de MIME- es la de poder interpretar y mostrar el código en formato HyperText Markup Language (HTML) con que se haya escrito el mensaje de correo electrónico. Por defecto los clientes de correo electrónico traen activa esta característica y generalmente preguntarán al usuario si desea retribuir contenido externo y ajeno al mensaje de correo electrónico en el momento de su recepción. Aunque parezca lo contrario, todo programa de correo electrónico siempre mostrará los mensajes en texto plano pero no siempre ofrecerán la interpretación del código HTML.
El Extensible Markup Language (XML), también soportado por medio de MIME, ofrece a futuro una mayor funcionalidad debido a que está propuesto como estándar para el intercambio de información estructurada entre diferentes plataformas. Por ejemplo, el uso de XML en el lado del servidor en lenguaje Java está disponible desde 2003 para normalizar el envío de mensajes de correo electrónico.
Así como en la vida real el correo es enviado por un usuario mediante sobres sellados de tal manera que en su exterior se pueda leer el destinatario y el remitente, en el correo electrónico se creó un protocolo de cifrado de documentos que se adaptó a los clientes de correo electrónico (y a muchos otros software, en realidad) el cual es llamado Pretty Good Privacy o PGP. Es utilizado principalmente por las personas en sus hogares o lugares de trabajo para que le puedan enviar información crítica o extremadamaente confidencial.

### Vulnerabilidades
#### Uso de HTML

Desde finales del siglo pasado cuando se masificó el uso de Internet y aumentó el poder de cómputo de los ordenadores con la consecuente capacidad de mostrar gráficos, audio y vídeo, los clientes de correo electrónico evolucionaron hacia esta área y facilitaron el manejo de archivos adjuntos, para bien o para mal.
Una vulnerabilidad bien conocida es la de enviar un mensaje codificado como HTML enlazado a una muy pequeña imagen con un nombre de fichero específico. De esta manera el cliente de correo electrónico que lo recibe e interprete se conecta a otro servidor para descargar dicha imagen permitiendo así al atacante saber que el mensaje fue leído, además de otras invasiones a la privacidad (dirección IP, por ejemplo). Este fallo, de una manera más sofisticada, ha podido ser implementado en los clientes web de correo electrónico como Gmail.
Actualmente los clientes de correo electrónico no muestran imágenes o contenido externo a menos que el usuario lo acepte en los cuadros de diálogo emergentes al momento de mostrar el mensaje a petición del usuario, generalmente haciendo clic en el mismo.

#### Efail

El 14 de mayo de 2018 Sebastian Schinzel, de la Universidad de Münster en Ciencias Aplicadas (en inglés "Münster University of Applied Sciences") y Juraj Somorovsky del Instituto para la Seguridad de las Tecnologías de la Información "Horst Görtz" en la Universidad Ruhr de Bochum (en inglés "Horst Görtz Institute for IT security, Ruhr University Bochum") dieron a conocer dos fallos que pueden comprometer la privacidad de quienes utilizan OpenPGP y S/MIME si los clientes de correo electrónico hacen uso indebido de dicha tecnología. El cliente de correo electrónico es el responsable, a la final, de la entrada o salida de datos (cifrados o no) de manera absoluta y en todos y cada uno de los casos; mayor cuidado aún debe tener por velar la privacidad de los mensajes que le hayan suministrado a descifrar para los usuarios. Aunque en los sistemas operativos se ha implementado un rastreo y seguimiento de los ficheros descargados del Internet y que advierten al usuario antes de abrirlo, tal medida no se practica en los clientes de correo electrónico porque cada uno tiene su propio y único formato de almacenamiento de datos.
El conjunto de fallos fueron agrupados bajo el nombre "Efail" y la elección de ese nombre es por un juego de palabras en el idioma inglés: «email» que significa correo electrónico y "efail" que puede traducirse literalmente como «fallo electrónico (en el correo)».
Efail describe las vulnerabilidades de los clientes de correo electrónico que filtran, por medio del contenido activo HTML del mensaje, el texto sin formato de correos electrónicos previamente cifrados con las tecnologías de extremo a extremo como OpenPGP y S/MIME.
A corto plazo los usuarios, para protegerse de los causantes de esta vulnerabilidad, deben deshabilitar la visualización de HTML en los mensajes de correo electrónico, sin embargo todos y cada uno de los destinatarios así como el remitente deberán hacer lo mismo para evitar alguna fuga de información por parte del cliente de correo electrónico. Enviar los mensajes cifrados sin utilizar HTML (o sea, utilizar únicamente texto plano) no evita que el atacante agregue código HTML infectado al mensaje cifrado interceptado y lo reenvíe a las víctimas (quienes sí pueden deshabilitar la visualización del HTML para protegerse).
Otra opción es no descifrar los mensajes con el cliente de correo electrónico sino exportar el fichero a un programa que se encargue única y exclusivamente de realizar dicha tarea, y cortar así la comunicación con el atacante.
A mediano plazo, evidentemente, los clientes de correo electrónico deberán "parchar" y liberar versiones que eliminen la fuga de información tanto cifrada como parcialmente cifradas.
A largo plazo los entes encargados del desarrollo y mantenimiento de los protocolos OpenPGP y S/MIME deberán mejorar los algoritmos utilizados en el cifrado de bloques a fin de prevenir el uso de primitivas.