Seguridad en los protocolos de correo electrónico
Seguridad:
Los principales problemas de seguridad son:
- Los clientes y servidores de correo son sistemas complejos con múltiples funcionalidades. Tienen vulnerabilidades que pueden ser aprovechadas.
- El protocolo SMTP en sus especificaciones originales no contempla mecanismos de autenticación, el intercambio de información se realiza en texto plano vulnerable a ataques de análisis de tráfico (sniffing), y no garantiza que los clientes y servidores sean los que dicen ser, se puede suplantar la identidad del equipo.
- Los mensajes de correo pueden contener información falsa, publicidad, código malicioso, información para engañar al receptor y no se cifran ni se firman pudiendo ser consultados, modificados, suplantados o filtrados por terceros.
Recepción de correo:
Los protocolos POP e IMAP incluyen en sus especificaciones mecanismos de autenticación al acceder a un usuario de su buzón y el intercambio de información se realiza en un fichero plano y no proporciona mecanismos para garantizar que los clientes o los servidores son los que dicen ser.
SALS: Simple Authetication and Security Layer framework para autenticación para protocolos orientados a conexión POP, IMAP, SMTP…
SPA: Secure Password Protocol método de autenticación implementado por los servidores y clientes Microsoft para SMTP, POP e IMAP.
Autenticación SMTP: Para aumentar la seguridad y controlar quién puede utilizar un servidor para enviar correos se han definido extensiones del protocolo SMTP para:
- Autenticar a los usuarios antes de enviar un correo usando un MTA.
- Autenticar a los MTA que envían correos a otros MTAs (Smart host).
Algunos de los estándares y mecanismos utilizados en la autenticación de SMTP son:
- POP o IMAP antes de SMTP: Autenticarse en uno de estos dos servidores antes de utilizar SMTP y el servidor POP o IMAP deben comunicarse con SMTP.
- SMTP AUTH: Extensión de SALS para SMTP forma parte del protocolo ESMTP, permite autenticarse en el servidor antes de enviar correo a través de él. Se implementa con el comando AUTH y se integra con los protocolos SSL/TLS para aumentar la seguridad.
Protocolos seguros:
SMTP, POP e IMAP pueden encapsularse en SSL/TLS para garantizar la confidencialidad e integridad de la información transmitida.
SMTPS: Determina como encapsular SMTP, usa los puertos 465/TCP y 587/TCP
STARTTLS: Mecanismo para negociar conexiones SSL/TLS sobre protocolos de texto plano. La extensión de SMTP usa el puerto 25/TCP. Es habitual configurar MTAs con SMTP AUTH(SASL) y SATRTTLS escuchando el puerto 25/TCP.
Filtrado de correo:
Posibilidad de definir reglas para filtrar y restringir el envío de correos o marcar correos que no cumplan determinadas características. Estas funciones pueden estar integradas en los MTAs o pueden ampliarse con módulos adicionales.
Antivirus:
Analizan los mensajes de correo en busca de software malicioso y aprueban, rechazan o descartan los mensajes avisando a los usuarios o los administradores.
Filtros y métodos antispam: Los MTAs combinan sus métodos antispam para determinar si un correo es marcado como spam o no. El correo que no se marca como spam se le denomina ham.
Esquemas de autorización de envío: Verifica si el correo ha sido enviado por un MTA autorizado para ello.
SPF: Los MTA consultan servidores DNS para verificar que el correo que reciben proviene de un MTA autorizado.
Sender-ID: Evolución de SPF desarrollado por Microsoft.
Domain-Keys: Utilización de algoritmos de clave pública y funciones hash para firmar los correos y verificarlos consultando servidores DNS.
Firma y cifrado de mensajes (PGP y S/MIME):
Los protocolos seguros no garantizan que los mensajes de correo sean leídos o interceptados por terceros en su viaje por distintos servidores de correo.
Para prevenir esto se pueden firmar y cifrar los correos haciendo uso de algoritmos criptográficos:
- S/MIME: Conjunto de algoritmos, protocolos e infraestructura de clave pública para firmar y cifrar mensajes de correo. Implementado por Thunderbird, Outlook entre otros.
- PGP: Software criptográfico para firmar, cifrar y comprimir datos e intercambiarlos de forma segura. Basado en PGP de ha desarrollado OpenPGP. No existen autoridades de certificación centrales. Se basa en confianza entre usuarios.
Implementaciones de OpenPGP:
- GnuPGP: Interfaz modo texto. Hay varias aplicaciones gráficas que utilizan recursos GPG. Muchos clientes de correo ofrecen plugins que integran su uso.
- GPA: Interfaz gráfica de GnuPG Disponible para sistemas Linux y Windows.
- Gpg4Win: Implementación de GnuPG para sistemas Windows que incluye además herramientas gráficas y plugins para clientes de correo.