Protocolos utilizados en el sistema de correo
Básicamente los protocolos utilizados en los sistemas de correos son los siguientes:
- Simple Mail Transport Protocol (SMTP)
- Post Office Protocol (POP)
- Internet Message Access Protocol (IMAP)
Simple Mail Transport Protocol (SMTP)
Es un protocolo que funciona en línea, encapsulado en una trama TCP/IP. El protocolo SMTP funciona con comandos de texto enviados al servidor SMTP (MTA) a través del puerto TCP 25 de forma predeterminada. A cada comando enviado por el cliente le sigue una respuesta del servidor SMTP compuesta por un número y un mensaje descriptivo.
Ejemplo de la comunicación con el servidor a través de Telnet:
La siguiente lista muestra un resumen de los principales comandos SMTP:
- HELO: El cliente se conecta con el nombre de su ordenador e inicia la sesión con él.
- MAIL FROM: Remitente del correo.
- RCPT TO: Destinatario del correo.
- DATA: El cliente inicia la transmisión de los datos.
- RESET: El cliente interrumpe la transmisión pero deja abierta la conexión.
- VRFY/EXPN: Comprobación si el buzón destino existe.
- NOOP: El cliente solicita una respuesta del servidor para evitar la desconexión.
- QUIT: El cliente termina la conexión.
Los códigos de respuesta se pueden clasificar en:
- Códigos de error
- Código de información
- Código de respuesta del servicio
- Código de respuesta a una acción.
Por ejemplo el código “250” indica que el comando se ha ejecutado correctamente, el “554” indica fallo en la transmisión y el “221” indica finalización de la conexión, pueden consultar los códigos en el siguiente link.
Extended SMTP (ESMTP)
ESMTP es una ampliación de los comandos de SMTP para funciones extra.
El saludo cambia de HELO a EHLO, es aquí cuando el cliente y servidor dan por hecho que pueden utilizar los comandos extra.
Hay dos comandos extra utilizados en ESMTP, son ETRN que permite que el cliente y el servidor intercambien roles y el comando STARTTLS el cual permite negociar una comunicación cifrada entre cliente y servidor.
Post Office Protocol (POP)
Este protocolo fue creado para que los usuarios que no podían conectarse directamente en el servidor de correos, pudieran acceder a los correos (descargarlos) a través de un programa.
Actualmente se utiliza el servidor POP3 que escucha a través del puerto TCP 110. La versión segura del protocolo es POP3S que escucha por el puerto TCP 995.
El primer paso para el uso de este protocolo es la autentificación que se puede realizar a través de tres métodos:
- USER/PASS: Son enviados en texto plano el usuario y la contraseña.
- APOP: El usuario es enviado en texto plano pero la contraseña con cifrado MD5.
- AUTH: Es el sistema más seguro y provee varios mecanismos que aseguran una comunicación segura.
Los comandos más utilizados en la comunicación para la transferencia de correos del servidor al cliente son los siguientes:
- STAT: Devuelve el estado del buzón.
- LIST: Muestra una lista corta de los mensajes.
- RETR: Devuelve un mensaje determinado.
- DELE: Borra un mensaje determinado.
- UIDL: Muestra el identificador único de cada mensaje.
- TOP: Muestra los mensajes más recientes.
- RSET: Resetea la conexión.
- QUIT: Termina la conexión.
Internet Message Access Protocol (IMAP)
El protocolo POP3 descarga los mensajes al cliente no siendo posible consultarlo desde otra ubicación, por lo que se creó el protocolo IMAP que permite la conexión y sincronización desde varias ubicaciones a un mismo buzón. Actualmente su versión es IMAP4.
Al igual que POP3, IMAP usa el método de comandos entre cliente/servidor para acceder a los mensajes. La conexión se establece a través del puerto TCP 143. La versión segura del protocolo es IMAPS que escucha por el puerto TCP 993.
Una vez establecida la conexión el usuario deberá autentificarse para poder acceder a los mensajes. Existen dos tipos de autentificación:
- LOGIN: El cliente realiza el proceso de login enviando en texto plano el usuario y la contraseña.
- AUTHENTICATE: El cliente y el servidor negocian el tipo de cifrado para la autentificación y posteriormente se envía el usuario y la contraseña cifrados.
Una vez se ha autentificado se pueden realizar varias acciones sobre los mensajes y los buzones asociados al usuario, un ejemplo básico de comandos son los siguientes:
- LOGOUT: Cierra la sesión.
- CLOSE: Cierra el buzón.
- EXAMINE: Abre en buzón en modo lectura.
- LIST: Lista los buzones.
- CREATE: Crea un buzón.
- DELETE: Elimina un buzón.
- COPY: Copia mensajes entre buzones.
- FETCH: Lee el texto de un mensaje