Correio Eletrônico E-mail & SMTP Redes de Computadores II Prof. Dr. Adriano Mauro Cansian adriano@acmesecurity.org E-mail Os usuários possuem uma relação de amor e ódio com o e-mail: eles amam usá-lo, e odeiam quando ele não funciona. Craig Hunt 2 Prof. Dr. Adriano Mauro Cansian 1
Sistema de E-mail Apesar das redes sociais... O Correio Eletrônico ainda é uma das aplicações mais difundidas da Internet. Facilidade de uso, velocidade e amplo poder de troca de informações. Muitas aplicações críticas usam e-mail. off-line : não depende da outra ponta estar on-line. 3 Número de contas e usuários de e-mail Email Statistics Report, 2013-2015 Executive Summary http://www.radicati.com/wp/wp-content/uploads/2015/02/ Email_Market_2015-2019,_Executive_Summary.pdf 4 Prof. Dr. Adriano Mauro Cansian 2
Mercado associado ao correio eletrônico 2016-2020 http://www.radicati.com/wp/wp-content/uploads/2016/01/email_market_2016-2020_executive%20summary.pdf 5 Usuários de Redes Sociais http://www.radicati.com/wp/wp-content/uploads/2015/02/social_networking_statistics_report_2015-2019_executive_summary.pdf 6 Prof. Dr. Adriano Mauro Cansian 3
Worldwide Daily Email Traffic, 2015 2019 (*) (em bilhões de mensagens) (*) http://www.radicati.com/wp/wp-content/uploads/2015/02/email_market_2015-2019,_executive_summary.pdf 7 QuanUdade de contas corporauvas e pessoais(*) (em milhões) (*) estimativas THE RADICATI GROUP, INC. http://www.radicati.com/wp/wp-content/uploads/2012/04/email-statistics-report-2012-2016-executive-summary.pdf 8 Prof. Dr. Adriano Mauro Cansian 4
Mas, nem todo mundo domina... 9...nem um pouco.... Received: from edutec.unesp.br (edutec.unesp.br [IPv6:2801:88:1000:ead::66]) by ceti.nead.unesp.br (Postfix) with ESMTP id 81204EE16D for <adriano@ibilce.unesp.br>; Fri, 14 Nov 2014 16:30:01-0200 (BRST) Date: Fri, 14 Nov 2014 16:30:01-0200 To: adriano@ibilce.unesp.br From: Root User <root@localhost.acmesecurity.org> Reply-To: no_reply@nead.unesp.br Subject: Informe: Ambientes Virtuais de Aprendizagem Message-ID: e261931cbe32f90066829a84298ba3a8@edutec.unesp.br... 10 Prof. Dr. Adriano Mauro Cansian 5
Conceitos e fundamentos E-mail e SMTP Componentes do Correio eletrônico MUA: Mail User Agent MTA: Mail Transfer Agent MDA: Mail Delivery Agent MAA: Mail Access Agent 12 Prof. Dr. Adriano Mauro Cansian 6
Componentes Veremos inicialmente o dois principais componentes à MUA e o MTA. Depois entenderemos o protocolo SMTP. Em seguida veremos os outros dois componentes à MDA e MAA. 13 Componentes do Correio eletrônico 14 Prof. Dr. Adriano Mauro Cansian 7
Definições dos componentes O sistema de e-mail é formado duas entidades principais à MUA e MTA MUA - Mail User Agent Aplicações para ler, compor, responder mensagens eletrônicas. Exemplos: pine, mail, Mail, elm, Pegasus Mail, Eudora, etc... MTA - Mail Transport Agent (em alguns textos Mail Transfer Agent) MTAs são programas que se encarregam de entregar mensagens, e redirecionar mensagens entre computadores. MTAs mais conhecidos: sendmail e o postfix. Postfix (http://www.postfix.org) e Sendmail (http://www.sendmail.org) 15 MUA e MTA 16 Prof. Dr. Adriano Mauro Cansian 8
Exemplo de MUA Exemplo de um MUA com interface gráfica no sistema Mac OS X 17 MTA (1) O programa MTA é necessário à a entrega de correio eletrônico em redes raramente é uma tarefa simples. Transportar mensagens frequentemente se estende além dos domínios da máquina local. MTAs mais usados: No Unix: Postfix e Sendmail. No Windows: Windows SMTP server(*) e hmailserver(**) (*) não instalado por Default no Windows 7 e Windows 8 (**) https://www.hmailserver.com/ 18 Prof. Dr. Adriano Mauro Cansian 9
MTA (2) O MTA implementa o protocolo de transporte de mensagens (SMTP). Envia mensagens de uma máquina para outra na mesma rede. Redirecionar mensagens de uma rede para outras redes. Eventualmente redes de arquitetura radicalmente diferentes. (MTA não é apenas o SMTP) 19 MTA (3) O MTA roteia a mensagem recebida do programa do usuário, com base no endereço eletrônico do destino. Toma decisão do que fazer. Para as mensagens em SAÍDA: O MTA recebe a mensagem vinda do programa do usuário (MUA); Interpreta o endereço eletrônico; Re-escreve o endereço das maneira apropriada para a entrega; e Roteia a mensagem através do método correto. Para as mensagens em ENTRADA: O MTA interpreta o endereço; Envia para o módulo de entrega ao usuário (MDA à visto mais adiante); Ou redireciona para outro endereço. 20 Prof. Dr. Adriano Mauro Cansian 10
MTA (4) O MTA realiza ainda mais duas funções: Implementa o protocolo SMTP Simple Mail Transfer Protocol Padrão para mensagens na Internet à RFC-821. Permite criação de aliases. Sinônimos de endereços. 21 MTA (5) 22 Prof. Dr. Adriano Mauro Cansian 11
SMTP [RFC 821] Porta 25/TCP. Transferência direta servidor remetente envia direto ao servidor receptor. Três fases da transferência (do SMTP / não confunda com TCP!): Handshaking (cumprimento) à não confunda com TCP! Transferência das mensagens. Encerramento. Interação comando/resposta Comandos: texto ASCII Resposta: código e frase de status. Mensagens precisam ser em ASCII de 7-bits. 23 SMTP na Internet (1) Servidor: Porta 25/TCP do destino. Ou na 465/TCP ou 587/TCP se for ssl/autenticado. Exercício: administração best practice SMTP» https://tools.ietf.org/html/rfc2505» https://tools.ietf.org/html/rfc7525 Processo (daemon) aceita as mensagens que chegam e tenta encaminhá-las à caixa postal destino, reportando eventuais erros à máquina origem. 24 Prof. Dr. Adriano Mauro Cansian 12
SMTP na Internet (3) transmissão via SMTP server intermediário ISP 25 Operação do SMTP (1) SMTP à todo baseado em texto. Uma vez estabelecida conexão, a máquina cliente aguarda uma resposta do servidor. O servidor envia uma linha de texto indicando se está ou não preparado para receber email. Se o servidor aceita receber email, significa que o cliente SMTP aceita a recepção. Ocorre o delivery. 26 Prof. Dr. Adriano Mauro Cansian 13
Operação do SMTP (2) (diálogo SMTP) 27 Operação do SMTP (3) 28 Prof. Dr. Adriano Mauro Cansian 14
Exemplo de diálogo e interação SMTP S: 220 doces.br C: HELO consumidor.br S : servidor C : cliente S: 250 Hello consumidor.br, pleased to meet you C: MAIL FROM: <ana@consumidor.br> S: 250 ana@consumidor.br... Sender ok C: RCPT TO: <bernardo@doces.br> S: 250 bernardo@doces.br... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Voce gosta de chocolate? C: Que tal sorvete? C:. S: 250 Message accepted for delivery C: QUIT S: 221 doces.br closing connection Observe a linha em branco terminando com um. 29 Observe a linha em branco terminando com um. Fonte: hfp://computernetworkingsimplified.com/applicauon-layer/overview-email-works/ (17.11.2014) 30 Prof. Dr. Adriano Mauro Cansian 15
SMTP Reply codes 31 Alguns códigos SMTP agrupados por comando 32 Prof. Dr. Adriano Mauro Cansian 16
SMTP SMTP usa conexões persistentes. SMTP requer que a mensagem (cabeçalho e corpo) sejam em ASCII de 7-bits à já mencionado. Portanto, algumas cadeias de caracteres não são permitidas numa mensagem. Por exemplo: <CR/LF>.<CR/LF> Uma vez que é usado pelo servidor SMTP para reconhecer o final da mensagem. Assim, em alguns casos, a mensagem necessita ser codificada. Geralmente em base-64 ou quoted printable. 33 Exemplos de interação Prof. Dr. Adriano Mauro Cansian 17
Dois computadores via ISP (1) Remetente Editor de Mensagem Agente de Transporte Computador A envio Agente de Transporte SMTP ISP De: A@origem.dom Para: B@destino.dom SMTP Destinatário Agente de Transporte Agente de Distribuição Local Visualizador de Mensagem Computador B ISP Agente de Transporte recepção Caixa Postal..... Caixa Postal Agente de Transporte POP ou IMAP 35 Processo completo via ISP com POP3 36 Prof. Dr. Adriano Mauro Cansian 18
Mail Relay ou bounce empresa.dom De: A@dep1.empresa.dom Para: xxxxxxxxxxxxx Remetente A Editor de Mensagem Agente de Transporte SMTP Agente Transporte RELAY SMTP Caixa Postal........ Agente de Distribuição Local Remetente B Caixa Postal.... Editor de Mensagem Agente de Distribuição Local De: B@dep2.empresa.dom Para: xxxxxxxxxxxxx Caixa Postal Caixa Postal dep1.empresa.dom dep2.empresa.dom 37 SPAM e relays abertos relay1.dom Spammer Agente de Transporte De: spammer@relay1.dom Para: xxxxxxxxxxxxxx Editor de Mensagem Agente de Transporte De: spammer@ilegal.dom Para: xxxxxxxxxxxxxx............... Agente de Transporte De: spammer@relay9.dom Para: xxxxxxxxxxxxxx relay9.dom 38 Prof. Dr. Adriano Mauro Cansian 19
Entrega final: MDA e MUA MDA: Mail Delivery Agent MAA: Mail Access Agent 39 MDA e MAA (1) Os outros dois componentes do sistema: MDA: Mail Delivery Agent MAA - Mail Access Agent: 40 Prof. Dr. Adriano Mauro Cansian 20
MDA: Mail Delivery Agent Agente de Distribuição Local. Responsável por entregar e arquivar a mensagem na caixa postal correta do usuário. Tem capacidade de filtrar mensagens. Alguns tem capacidade de processamento de retorno (auto-responders). Agentes mais conhecidos: Maildrop (default). Procmail. Binmail. Safecat. 41 MAA - a entrega final Os mecanismos apresentados até aqui funcionam em máquinas capazes de enviar ou receber e-mail. Na maior parte dos casos, essa premissa é falsa. Usuário tem o seu PC conectado a uma LAN. A LAN é que tem os servidores de email. A transferência do email numa caixa postal para o PC do usuário é feita através dos protocolos POP3 (Post Office Protocol) ou IMAP (Internet Message Access Protocol). 42 Prof. Dr. Adriano Mauro Cansian 21
Entrega final: MDA e MUA Maildrop Procmail. Binmail. Safecat. 43 POP3 e IMAP POP3: Post Office Protocol [RFC 1939] Mecanismo simples cliente servidor de transferência. IMAP: Internet Message Access Protocol [RFC 1730] Mais comandos e mais opções (mais complexo). Acesso a mensagens armazenadas no servidor. Atua como uma montagem de diretórios. 44 Prof. Dr. Adriano Mauro Cansian 22
Até aqui vimos todos os componentes do Correio eletrônico Procmail ou outros 45 Anatomia de um E-mail Cabeçalho, envelope, body MIME Prof. Dr. Adriano Mauro Cansian 23
Formato de uma mensagem de e-mail RFC 822: padrão para formato de mensagem de texto: Linhas de cabeçalho, p.ex., To: (obudo do ENVELOPE) From: Subject: São diferentes dos comandos de smtp! Corpo a mensagem, somente de caracteres ASCII. Termina com um. ponto Envelope e cabeçalho corpo linha em branco 47 Envelope e header (1) 48 Prof. Dr. Adriano Mauro Cansian 24
Envelope e header (2) 49 Campos de header (1) 50 Prof. Dr. Adriano Mauro Cansian 25
Campos de header (2) 51 Exemplo de header E-mail Delivered-To: adriano.cansian@sjrp.unesp.br Received: by 10.70.38.201 with SMTP id i9csp238353pdk; Mon, 14 Oct 2014 14:46:10-0700 (PDT) X-Received: by 10.58.207.15 with SMTP id ls15mr3600453vec.17.1381787170131; Mon, 14 Oct 2014 14:46:10-0700 (PDT) Return-Path: xxxa@gmail.com Received: by angel.acmesecurity.org (Postfix) id 217BCDEBAC; Mon, 14 Oct 2014 18:46:07-0300 (BRT) Delivered-To: adriano@acmesecurity.org Received: by angel.acmesecurity.org (Postfix, from userid 65534) id 1FC24DEBAF; Mon, 14 Oct 2014 18:46:07-0300 (BRT) X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on angel.acmesecurity.org X-Spam-Level: X-Spam-Status: No, score=0.9 required=4.0 tests=freemail_from,html_message, RCVD_IN_DNSWL_LOW,SUBJ_ALL_CAPS,T_FREEMAIL_DOC_PDF autolearn=no version=3.3.2 Received: from mail-qe0-f49.google.com (mail-qe0-f49.google.com [209.85.128.49]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by angel.acmesecurity.org (Postfix) with ESMTPS id CD606DEBAC for <adriano@acmesecurity.org>; Mon, 14 Oct 2014 18:46:00-0300 (BRT) Received: by mail-qe0-f49.google.com with SMTP id a11so639104qen.8 for <adriano@acmesecurity.org>; Mon, 14 Oct 2014 14:45:58-0700 (PDT) Mon, 14 Oct 2014 14:45:58-0700 (PDT) Received: by 10.49.35.137 with HTTP; Mon, 14 Oct 2014 14:45:57-0700 (PDT) Date: Mon, 14 Oct 2014 18:45:57-0300 Message-ID: <CAEEv5YB=fTMxeUaj=Ht4PrfEFvfT5hVotipuWF0qXJdRWjsr5g@mail.gmail.com> Subject: NADA COMO SER FAMOSO ;-) From: Otavio Cunha <xxxa@gmail.com> To: Adriano Cansian <adriano@acmesecurity.org> Content-Type: multipart/mixed; boundary=001a11c2c0d4b6de6504e8ba64b6 52 Prof. Dr. Adriano Mauro Cansian 26
Formato MIME Ou: enviando mensagens mulumídia em algo que foi feito pra enviar texto puro. MIME (Mul@purpose Internet Mail Extension) Além de texto, pode ser necessário enviar e receber outros tipos de informação, tais como: Mensagens em linguagens com caracteres especiais. Mensagens em outros alfabetos. Mensagens em linguagens pictográficas (ex. chinês). Mensagens com outras mídias. Propósito do MIME é acrescentar regras de codificação para outros tipos de informação que não sejam texto puro. 54 Prof. Dr. Adriano Mauro Cansian 27
Evolução RFC-821: Protocolo SMTP (1982) RFC-822: Standard for the Format ofarpa Internet Text Messages (1982) RFC-2045 e RFC-2046- Multipurpose Internet Mail Extensions (MIME) Part-I e Part-II (1996) RFC-2822: Internet Message Format (2001) Revisa e atualiza o RFC-822 (torna este obsoleto). 55 Formato de uma mensagem MIME MIME: multimedia mail extension: RFC 2045 e 2046 Linhas adicionais no cabeçalho da mensagem. declaram tipo do conteúdo MIME. versão MIME método usado para codificar dados tipo, subtipo de dados multimídia, declaração parâmetros Dados codificados From: ana@consumidor.br To: bernardo@doces.br Subject: Imagem de uma bela torta MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data 56 Prof. Dr. Adriano Mauro Cansian 28
Tipos MIME Fomato: Content-Type: tipo/subtipo; parâmetros Text sub-upos: plain, html, charset= iso-8859-1, ascii Image sub-upos exemplos : jpeg, gif, tiff. Video sub-upos exemplos : mpeg, quicktime, MP4 Audio Sub-Upos exemplos : basic (8-bit codificado mu-law), 32kadpcm (codificação 32 kbps), MP3 ApplicaUon Outros dados que precisam ser processados por um leitor para serem visualizados. subupos exemplos : msword, octet-stream 57 Delimitador MIME From: ana@consumidor.br delimitador To: bernardo@doces.br Subject: Imagem de uma bela torta MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain caro Bernardo, Anexa a imagem de uma torta deliciosa. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data --98766789-- 58 Prof. Dr. Adriano Mauro Cansian 29
MIME 59 Tipos e subupos 60 Prof. Dr. Adriano Mauro Cansian 30
Aliases Aliases (1) Aliases são sinônimos de endereços de e-mail à muito importantes para o servidor MX. São usados para: Criar nomes falsos ou apelidos para contas de usuários verdadeiros. Redirecionar (forward) e-mail para outros hosts ou endereços. Criar listas de distribuição de mensagens. Os aliases são definidos no arquivo /etc/aliases (ou equivalente no seu sistema). Em alguns sistemas este arquivo de aliases pode ser /usr/lib/aliases 62 Prof. Dr. Adriano Mauro Cansian 31
Aliases (2) Sintaxe de configuração /etc/aliases nome_do_alias: destinatario [, destinatario,...] Nome_do_alias à é o nome para onde o e-mail é endereçado (o endereço para o qual ele chega). recipient à é o nome verdadeiro para onde o e-mail deve ser entregue. O recipient pode ser à um username válido, o nome de outro alias, ou um endereço de e-mail completo, contendo username e hostname. Vários recipients podem ser associados a um único alias à forma-se uma lista de distribuição. 63 Exemplo /etc/aliases 64 Prof. Dr. Adriano Mauro Cansian 32
.forward Em adição ao redirecionamento fornecido pelo /etc/ aliases o sistema de e-mail permite definir endereços de redirecionamento pessoal (forward). Usuário pode definir o redirecionamento desejado em seu arquivo ~/.forward (no seu home-dir pessoal). O MDA verifica este arquivo após verificar os aliases do sistema, e antes de realizar a entrega final para o usuário. Se o.forward existe para o usuário, ele realiza a entrega conforme a configuração deste arquivo. A sintaxe é a mesma usada no /etc/aliases. 65 Esquema geral do e-mail 66 Prof. Dr. Adriano Mauro Cansian 33
Esquema geral do e-mail 67 Resumo Neste tópico vimos: 1. Todos os fundamentos importantes sobre e-mail. Todos os componentes: MUA, MTA, SMTP, MDA, MAA, 2. Funcionamento detalhado do e-mail e do SMTP. Interações para envio de uma mensagem, headers e envelope. 3. Anatomia de um email. 4. Formato MIME. 5. Aliases e forward. 68 Prof. Dr. Adriano Mauro Cansian 34
Créditos e orientações para estudo Créditos - este material foi baseado parcialmente a partir do livro: Hunt, Craig TCP/IP Network Administration Edit. O Reilly & Associates, Inc. - 1.a Edição - Capítulo 10. E outros materiais em: http://computernetworkingsimplified.com/application-layer/overview-email-works/ Figuras e textos de outros autores utilizados com finalidade didática. 69 Exercício / AUvidade / Homework DANE DNS-Based Authen@ca@on of Named En@@es Maneira de autenucar chaves de enudades TLS clientes e servidores, sem a necessidade de uma autoridade ceruficadora, armazenando-as no sistema de DNS. UUliza recursos do DNSSEC. RFC-6698 tp://tp.registro.br/pub/gter/gter39/11-smtpreforcado.pdf 70 Prof. Dr. Adriano Mauro Cansian 35