Faculdade de Tecnologia SENAC Pelotas/RS
Curso Superior de Tecnologia em Redes de Computadores
Protocolos de E-mail
Eduardo Maroñas Monks
2014
SUMÁRIO
•
•
•
•
•
•
Histórico
Funcionalidades
Protocolos
Aplicações
Segurança
Referências Bibliográficas
Prof. Eduardo M. Monks - Redes de Computadores III
2
Histórico
•
•
Nos anos 60, em sistemas de timesharing, havia o envio
de e-mail para usuários na mesma máquina
Primeira mensagem de e-mail enviada em rede
(ARPANET): 1971
• Ray Tomlinson foi o primeiro a enviar e-mail e a
utilizar o símbolo de @
• Protocolo SMTP
• RFC 821 (1982)
• Evolução dos protocolos anteriores para envio de
mensagens eletrônicas
• Projetado para transferir mensagens de forma
confiável e eficiente.
• Protocolo POP
• RFC 1081 POP3 (1988)
• Criado para facilitar hosts receberem e-mails sem
necessitar de conexão permanente com a rede
• A versão 3 do protocolo é a mais utilizada
Prof. Eduardo M. Monks - Redes de Computadores III
3
Histórico
• Protocolo IMAP
•
• RFC 3501 IMAP4 (2003)
• Protocolo similar ao POP
• O objetivo é manter os e-mails no servidor, ao
contrário do POP que pressupõe o donwload das
mensagens para o host
Padrão MIME (Multipurpose Internet Mail Extensions)
• Definido em 1996 na RFC 2045
• A mensagem de e-mail, originalmente, era limitada ao
código ASCII com 128 caracteres (sem acentos)
• Define formas de envio por e-mail de arquivos
binários, codificações de idiomas, múltiplas partes no
corpo da mensagem
Caracteres disponíveis na
tabela ASCII 7-bit
Prof. Eduardo M. Monks - Redes de Computadores III
4
Componentes
• User Agent (UA): cliente de e-mail para o
usuário final
• Message Transfer Agent (MTA):
responsável pela comunicação com os
hosts remotos e a transmissão/recepção de
e-mail (cliente e servidor)
• Mail Exchanger (MX): host designado para
gerenciar os e-mails em um domínio (DNS)
Prof. Eduardo M. Monks - Redes de Computadores III
5
Componentes
•
User Agent (UA): cliente de e-mail para o usuário final
• “leitor de correio”
• Composição, edição, leitura de mensagens de correio
• Ex.: Eudora, Outlook, Pine, Mozilla Thunderbird
• Mensagens de entrada e de saída são armazenadas no
servidor
Prof. Eduardo M. Monks - Redes de Computadores III
6
Componentes
•
Message Transfer Agent (MTA): responsável pela comunicação
com os hosts remotos e a transmissão/recepção de e-mail
(cliente e servidor)
• Caixa postal contém mensagens que chegaram (ainda não
lidas) para o usuário
• Fila de mensagens contém as mensagens de correio a
serem enviadas
• Protocolo SMTP permite aos servidores de correio trocarem
mensagens entre si
• Cliente: servidor de correio que envia
• “Servidor”: servidor decorreio que recebe
•
Comparação entre servidores de e-mail (Wikipedia)
Prof. Eduardo M. Monks - Redes de Computadores III
7
Componentes
•
Mail Exchanger (MX): host designado para gerenciar os emails em um domínio (DNS)
• Baseado no nome do domínio, o MTA busca o
endereço do host responsável por receber e-mails
• Neste caso, haverá duas buscas no DNS, uma para
saber o MX do domínio e outra para saber o IP do host
• Após isto, o servidor responsável pelo envio de e-mail
transfere a mensagem para o servidor destino
• Exemplo: Ferramenta nslookup
Prof. Eduardo M. Monks - Redes de Computadores III
8
Funcionalidades
• SMTP
•
•
•
•
•
Usa TCP para transferência confiável de mensagens de
correio do cliente ao servidor, porta 25, 465 (modo seguro)
Transferência direta: servidor que envia para o servidor que
recebe
Três fases de transferência
• Handshaking (apresentação)
• Transferência de mensagens
• Fechamento
Interação comando/resposta
• Comandos: texto ASCII
• Resposta: código de status e frase
Mensagens devem ser formatadas em código ASCII de 7 bits
Prof. Eduardo M. Monks - Redes de Computadores III
9
Funcionalidades
•
•
•
•
•
•
1) Alice usa o agente de usuário (UA) para compor a mensagem
e “para” [email protected]
2) O agente de usuário dela envia a mensagem para o seu
servidor de correio; a mensagem é colocada na fila de
mensagens.
3) O lado cliente do SMTP abre uma conexão TCP com o
servidor de correio do Bob.
4) O cliente SMTP envia a mensagem de Alice pela conexão TCP.
5) O servidor de correio de Bob coloca a mensagem na caixa de
correio de Bob.
6) Bob invoca seu agente de usuário para ler a mensagem.
Prof. Eduardo M. Monks - Redes de Computadores III
10
Protocolo
•
Mensagens do protocolo SMTP
Nome
Descrição
HELO
Enviar identificação do host
MAIL
Identificar o endereço do emissor do e-mail
RCPT
DATA
RSET
NOOP
QUIT
VRFY
S: 220 hamburger.edu
C: HELO crepes.fr
Identificar o endereço do receptor do e-mail
S: 250 Hello crepes.fr, pleased to meet you
Transferir o texto da mensagem
C: MAIL FROM: <[email protected]>
Cancelar a transação de e-mail atual
S: 250 [email protected]... Sender ok
Nenhuma operação
C: RCPT TO: <[email protected]>
Fechar a S:
conexão
TCP
250
[email protected] ... Recipient ok
Confirmar
o usuário
no servidor local
C:
DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
Prof. Eduardo M. Monks - Redes de Computadores III
11
Protocolo
•
Mensagens do protocolo SMTP
SMTP: protocolo para
trocar mensagens de email
RFC 822: padrão para
mensagens do tipo
texto:
• linhas de cabeçalho,
ex.:
– To:
– From:
– Subject:
diferente dos
comandos HTTP
• corpo
– a “mensagem”,
ASCII somente com
caracteres
Prof. Eduardo M. Monks - Redes de Computadores III
header
linha
em branco
body
12
Protocolo
•
Formato das mensagens: RFC 822
• A mensagem possui envelope e conteúdo
• O envelope contém as informações necessárias
para a transmissão e entrega da mensagem
• O conteúdo é definido na RFC 822
• A mensagem é uma sequência de linhas de texto
• No cabeçalho são linhas que obedecem um
formato pré-determinado (palavra-chave:
argumentos)
• No corpo da mensagem, são linhas de texto sem
nenhum padrão definido
Prof. Eduardo M. Monks - Redes de Computadores III
13
Protocolo
•
MIME (Multipurpose Internet Mail Extensions)
• Padrão para possibilitar o envio de anexos
binários, internacionalização de texto nas
mensagens
• RFC 2045, 2056
• Linhas adicionais no cabeçalho declaram o tipo
de conteúdo MIME
From: [email protected]
Versão da MIME
To: [email protected]
Subject: Picture of yummy crepe.
Método usado
MIME-Version: 1.0
para codificar dados
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
Dados multimídia
tipo, subtipo,
declaração de parâmetro
Dados codificados
Prof. Eduardo M. Monks - Redes de Computadores III
base64 encoded data .....
.........................
......base64 encoded data
14
Protocolo
• POP3 e IMAP
• SMTP: entrega e armazena no servidor do destino
• Protocolo de acesso: recupera mensagens do servidor
• POP: Post Office Protocol [RFC 1939]
– Autorização (agente <-->servidor) e download
– TCP, porta 110, 995 (modo seguro)
•
IMAP: Internet Mail Access Protocol [RFC 1730]
– Mais recursos (mais complexo)
– Manipulação de mensagens armazenadas no servidor
– TCP, porta 143, 993 (modo seguro)
•
Webmail: interface web para acesso ao e-mail. Exemplos:
Gmail, Hotmail, Yahoo! Mail etc.
Prof. Eduardo M. Monks - Redes de Computadores III
15
Protocolo
• POP3
•
Sessão
Fase de autorização
 comandos do cliente:
 user: declara nome do usuário
 pass: password
respostas do servidor
 +OK
 -ERR
Fase de transação, cliente:
 list: lista mensagens e tamanhos
 retr: recupera mensagem pelo
número
 dele: apaga
 quit
Prof. Eduardo M. Monks - Redes de Computadores III
S: +OK POP3 server ready
C: user alice
S: +OK
C: pass hungry
S: +OK user successfully
logged on
C:
S:
S:
S:
C:
S:
S:
C:
C:
S:
S:
C:
C:
S:
list
1 498
2 912
.
retr 1
<message 1 contents>
.
dele 1
retr 2
<message 1 contents>
.
dele 2
quit
+OK POP3 server signing off
16
Protocolo
• IMAP
•
Sessão
Prof. Eduardo M. Monks - Redes de Computadores III
17
Protocolo
• POP3 vs IMAP
• Mais sobre POP3
– O exemplo anterior usa o modo “download-and-delete”
– Bob não pode reler o e-mail se ele trocar o cliente
– “download-and-keep”: cópias das mensagens em
clientes diferentes
– POP3 é stateless através das sessões
• IMAP
– Mantém todas as mensagens em um lugar: o servidor
– Permite que o usuário organize as mensagens em
pastas
– IMAP mantém o estado do usuário através das
sessões:
• Nomes das pastas e mapeamentos entre os IDs da
mensagem e o nome da pasta
Prof. Eduardo M. Monks - Redes de Computadores III
18
Funcionalidades
• Resumo
• Servidor SMTP – é um serviço que aceita mensagens smtp
de clientes e servidores, locais ou remotos, e repassa para
o servidor smtp de destino
• Servidor POP – é um serviço que possibilita recuperar
(normalmente, fazer o download e apagar do servidor) aos
e-mails contidos na caixa postal do usuário
• Servidor IMAP – é um serviço que mantêm os e-mails no
servidor organizado em pastas. O cliente de e-mail
sincroniza os e-mails locais com os remotos
• MIME – uma padrão de codificação usado para codificar
anexos de formatos diferentes de texto e texto. O protocolo
SMTP requer que toda a transmissão seja no formato texto
(codificação ASCII)
Prof. Eduardo M. Monks - Redes de Computadores III
19
Protocolo
Formato das mensagens
• SMTP
• Envio de e-mail de [email protected] para
[email protected]
Prof. Eduardo M. Monks - Redes de Computadores III
20
Protocolo
Formato das mensagens
• POP3
• Sessão para download e remoção de uma mensagem no
servidor
Prof. Eduardo M. Monks - Redes de Computadores III
21
Protocolo
Formato das mensagens
• IMAP
• Sessão para sincronização da pasta INBOX
Prof. Eduardo M. Monks - Redes de Computadores III
22
Aplicações
Clientes
•
Existem diversos clientes de e-mail, com as mais diversas
funcionalidades
• Modo gráfico e texto
• A forma mais comum de acesso do usuário ao serviço de
e-mail é por meio de webmail (interface web)
• Normalmente, os clientes de e-mail possuem
implementações para os protocolos SMTP, POP3, IMAP e
os modos seguros correspondentes
• Os clientes desktop mais comuns de acesso ao e-mail são:
• Microsoft Outlook
• Mozilla Thunderbird
• Windows Live Desktop
Fonte: http://www.campaignmonitor.com/stats/email-clients/
Prof. Eduardo M. Monks - Redes de Computadores III
23
Segurança
• Ataques mais comuns ao SMTP :
• Negação de serviço (DOS)
• Falsificação de e-mails (origem forjada)
• Mensagens não solicitadas: SPAM, vírus
• Mais de
98% dos e-mails são spams (Fonte:
http://spamwars.com/stats.html)
• Ataques mais comuns ao POP3/IMAP:
• Tentativa de descoberta de senha por força bruta
• Captura de senhas
• Negação de serviço (DOS)
• Soluções
• Utilizar mecanismos de filtragem de e-mail
• Utilizar SSL para envio e recuperação de mensagens
• Firewall e proxies de e-mail
Fonte: http://www.cert.br/stats/spam/
Prof. Eduardo M. Monks - Redes de Computadores III
24
Aplicações
Servidores
•
•
•
•
•
Existem servidores que implementam apenas o protocolo SMTP,
outros somente POP3 e IMAP e alguns poucos todos os
protocolos
Os servidores de SMTP possuem recursos para adicionar
filtragem de e-mail, autenticação, modo seguro com SSL e
outras funcionalidades relacionadas ao recebimento de e-mail
Os servidores POP3 e IMAP, possuem recursos de segurança,
limite de quotas em disco e configurações relacionadas ao
formato da caixa postal do usuário
• Formatos de caixas postais no Unix: mbox ou maildir
Os servidores de código-fonte aberto mais comuns são:
• Sendmail
• Postfix
• Exim
Os servidores comerciais mais comuns são:
• Microsoft Exchange
• Lotus Notes
Fonte: http://www.mailradar.com/mailstat/
Prof. Eduardo M. Monks - Redes de Computadores III
25
Referências Bibliográficas
•
•
•
•
•
•
•
•
•
DENT,D. Kyle. Postfix- The Definitive Guide. O´Reilly, 2003.
MIME
http://www.networkworld.com/news/2011/020111-mime-internet-email.html?page=1
IMAP - http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol
POP3 - http://en.wikipedia.org/wiki/Post_Office_Protocol
SMTP:
• http://tools.ietf.org/html/rfc821
• http://tools.ietf.org/html/rfc5321
The History of Electronic Mail - http://www.multicians.org/thvv/mail-history.html
Reflections on the 25th Anniversary of Spam http://www.templetons.com/brad/spam/spam25.html
The First Network Email http://openmap.bbn.com/~tomlinso/ray/firstemailframe.html
Prof. Eduardo M. Monks - Redes de Computadores III
26