Transcript SMTP

SMTP
SMTP
•
•
•
•
•
Simple Mail Transfer Protocol
RFC 821 (1982)
RFC 2821 (2001)
RFC 5821 (2008)
Puertos: 25 (TCP), 587 (TCP alternativo
para clientes de correo, 465 (SMTP)
Visión General
• En 1982 se diseñó el primer sistema para intercambiar
correos electrónicos en ARPANET,(RFC 821 y RFC 822). La
comunicación entre el cliente y el servidor consiste
enteramente en líneas de texto compuestas por caracteres
ASCII. El tamaño máximo permitido para estas líneas es de
1000 caracteres.
• A cada comando enviado por el cliente (validado por la
cadena de caracteres ASCII CR/LF, que equivale a presionar
la tecla Enter) le sigue una respuesta del servidor SMTP
compuesta por un número y un mensaje descriptivo.
• En el protocolo SMTP todas las órdenes, réplicas o datos
son líneas de texto, delimitadas por el carácter <CRLF>.
Todas las réplicas tienen un código numérico al comienzo
de la línea.
Comunicación
•
•
•
•
Cuando un cliente establece una conexión con el servidor SMTP,
espera a que éste envíe un mensaje “220 Service ready” o “421
Service non available”
Se envía un HELO desde el cliente. Con ello el servidor se
identifica. Esto puede usarse para comprobar si se conectó con el
servidor SMTP correcto.
MAIL FROM. Como argumento de esta orden se puede pasar la
dirección de correo al que el servidor notificará cualquier fallo en
el envío del correo (Por ejemplo, MAIL FROM:<fuente@host0>).
Luego si el servidor comprueba que el origen es válido, el servidor
responde “250 OK”.
RCPT TO: <destino@host>. Se pueden mandar tantas órdenes
RCPT como destinatarios del correo queramos. Por cada
destinatario, el servidor contestará “250 OK” o bien “550 No such
user here”, si no encuentra al destinatario.
Comunicación
•
Una vez enviados todos los RCPT, el cliente envía una orden DATA
para indicar que a continuación se envían los contenidos del
mensaje. El servidor responde “354 Start mail input, end with
<CRLF>.<CRLF>” Esto indica al cliente como ha de notificar el fin
del mensaje.
•
El cuerpo del correo electrónico eventualmente contenga algunos
de los siguientes encabezados:
Date (Fecha)
Subject (Asunto)
Cc
Bcc (Cco)
From (De)
•
•
•
•
•
Comunicación
• Tras el envío, el cliente, si no tiene que enviar
más correos, con la orden QUIT corta la
conexión. También puede usar la orden TURN,
con lo que el cliente pasa a ser el servidor, y el
servidor se convierte en cliente. Finalmente, si
tiene más mensajes que enviar, repite el proceso
hasta completarlo
Órdenes básicas
•
•
•
•
•
•
•
•
•
•
•
•
•
•
HELO, para abrir una sesión con el servidor
MAIL FROM, para indicar quien envía el mensaje
RCPT TO, para indicar el destinatario del mensaje
DATA, para indicar el comienzo del mensaje, éste finalizará
cuando haya una línea únicamente con un punto.
QUIT, para cerrar la sesión
RSET Aborta la transacción en curso y borra todos los registros.
SEND Inicia una transacción en la cual el mensaje se entrega a
una terminal.
SOML El mensaje se entrega a un terminal o a un buzón.
SAML El mensaje se entrega a un terminal y a un buzón.
VRFY Solicita al servidor la verificación del argumento.
EXPN Solicita al servidor la confirmación del argumento.
HELP Permite solicitar información sobre un comando.
NOOP Se emplea para reiniciar los temporizadores.
TURN Solicita al servidor que intercambien los papeles.
Códigos Numéricos
• 2XX, la operación solicitada mediante el comando
anterior ha sido concluida con éxito.
• 3XX, la orden ha sido aceptada, pero el servidor
esta pendiente de que el cliente le envíe nuevos
datos para terminar la operación.
• 4XX, para una respuesta de error, pero se espera
a que se repita la instrucción.
• 5XX, para indicar una condición de error
permanente, por lo que no debe repetirse la
orden
Ejemplo
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
C:
C:
S:
C:
220 smtp.gmail.com SMTP Ready
EHLO machine1.gmail.com
250 smtp.gmail.com
MAIL FROM:<[email protected]>
250 OK
RCPT TO:<[email protected]>
250
RCPT TO:<[email protected]>
550 No such user here
DATA
354 Start mail input; end with <CRLF>.<CRLF>
Subject: Hola
Hola clase
¿Que haciendo por acá?
Espero que saquemos 10 todos
<CRLF>.<CRLF>
250
QUIT R: 221 smtp.gmail.com closing transmission
POP3
• El protocolo POP (Protocolo de oficina de correos),
permite recoger el correo electrónico en un servidor
remoto (servidor POP). Es necesario para las personas
que no están permanentemente conectadas a Internet,
ya que así pueden consultar sus correos electrónicos
recibidos sin que ellos estén conectados. Es un
protocolo de nivel de aplicación en el Modelo OSI.
Características
• POP3 está diseñado para recibir correo, no para
enviarlo; le permite a los usuarios con conexiones
intermitentes o muy lentas (tales como las conexiones
por módem), descargar su correo electrónico mientras
tienen conexión y revisarlo posteriormente incluso
estando desconectados. La mayoría de los clientes de
correo electrónico soportan POP3 ó IMAP.
• Este protocolo tiene asignado el puerto 110.
Características
• El protocolo POP3 administra la autenticación utilizando
el nombre de usuario y la contraseña. Sin embargo, esto
no es seguro, ya que las contraseñas, al igual que los
correos electrónicos, circulan por la red como texto sin
codificar (de manera no cifrada).
• Es posible cifrar la contraseña utilizando un
algoritmo MD5. Sin embargo, debido a que esto es
opcional, pocos servidores lo implementan. Además, el
protocolo POP3 bloquea las bandejas de entrada
durante el acceso, lo que significa que es imposible que
dos usuarios accedan de manera simultánea a la misma
bandeja de entrada.
• El UIDL proporciona un mecanismo que evita los
problemas de numeración. El servidor le asigna una
cadena de caracteres única y permanente al mensaje.
Cuando un cliente de correo compatible con POP3 se
conecta al servidor utiliza la orden UIDL para obtener el
mapeo del identificador de mensaje. De esta manera el
cliente puede utilizar ese mapeo para determinar qué
mensajes hay que descargar y cuáles hay que guardar
al momento de la descarga.
• En la actualidad POP3 cuenta con diversos métodos de
autenticación, Uno de estos es APOP, el cual utiliza
funciones MD5 para evitar los ataques de contraseñas.
Mozilla Thunderbird implementa funciones APOP.
Comando
Descripción
USER identification
Este comando permite la autenticación. Debe estar
seguido del nombre de usuario, una cadena de
caracteres que identifique al usuario en el servidor.
PASS password
El comando PASS permite especificar la contraseña del
usuario
STAT
Información acerca de los mensajes del servidor
RETR
Número del mensaje que se va a recoger
DELE
Número del mensaje que se va a eliminar
LIST [msg]
Número del mensaje que se va a mostrar
NOOP
Permite mantener la conexión abierta en caso de
inactividad
TOP <messageID> <n>
Comando que muestra n líneas del mensaje, cuyo
número se da en el argumento.
UIDL [msg]
Solicitud al servidor para que envíe una línea que
contenga información sobre el mensaje que
eventualmente se dará en el argumento.
QUIT
El comando QUIT solicita la salida del servidor POP3.
Internet Message Access
Protocol
IMAP
Internet Message Access
Protocol
• Es un protocolo de aplicación de acceso a
mensajes electrónicos almacenados en un
servidor
Familia: Protocolos de Internet
Función: acceso a correo electrónico
Puertos: 143/TCP
220/TCP (IMAP3)
993/TCP (IMAPS)
Estándares: RFC 3501
• IMAP fue diseñado como una moderna
alternativa a POP por Mark Crispin en el
año 1986.
• En Stanford
• Los clientes de correo electrónico son
comúnmente denominados clientes POP o
IMAP, pero en ambos casos se utiliza
SMTP.
Referencias
• http://es.wikipedia.org/wiki/Simple_Mail_Tr
ansfer_Protocol
• http://es.kioskea.net/contents/internet/smt
p.php3
• http://es.kioskea.net/contents/internet/smt
p.php3#el-protocolo-pop3
• https://es.wikipedia.org/wiki/Internet_Mess
age_Access_Protocol