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