Correio eletrônico - ACME! Cybersecurity...
Transcript of Correio eletrônico - ACME! Cybersecurity...
Correio eletrônico
Adriano Mauro [email protected]
______________________________Tópicos em Sistemas de Computação
Sistema de correio eletrônico
“Os usuários possuem uma relação de p çamor e ódio com o e‐mail: eles amam
usá‐lo, e odeiam quando ele não funciona.” – Craig Hunt
Correio EletrônicoCorreio Eletrônico
– O Correio Eletrônico é uma dasaplicações da Internet mais difundidasp çdevido à sua facilidade de uso e aoamplo poder de troca de informaçõesamplo poder de troca de informaçõesque permite através de uma simplestroca de mensagens enviar textostroca de mensagens, enviar textos,transferir programas, fotos, planilhas, ouqualquer outro arquivo.
Funcionamento do Correio eletrônico
MUA: Mail User AgentMTA: Mail Transfer AgentMDA M il D li A tMDA: Mail Delivery AgentMAA: Mail Access Agent
DefiniçõesDefinições• O sistema de e mail é formado basicamente por duas entidades MUA eMTA• O sistema de e‐mail é formado basicamente por duas entidades MUA e MTA
MUA ‐Mail User Agent
MUAs são quaisquer dos programas utilizados para ler, compor, responder e dispor de mensagens eletrônicas.
Exemplos: pine, mail, Mail, elm, Pegasus Mail, Eudora, etc...
MTA ‐Mail Transport Agent
MTAs são programas que se encarregam de entregar mensagens a vários usuários e redirecionar mensagens entre computadores. Os programas MTAs mais conhecidos são o sendmail e o postfix. Este material trata o sendmail, por ser o mais utilizado. Entretanto, todos os conceitos são aplicáveis diretamente ao postfix e a outros programas.
Exemplo: Postfix (http://www.postfix.org) e sendmail (http://www.sendmail.org)
MUAMUA• MUAmais usado um programa que normalmente existe em todos os• MUAmais usado um programa que normalmente existe em todos os
ambientes unix chama‐se mail.
• Geralmente omail é apenas para os iniciados devido à sua complexidade.Geralmente o mail é apenas para os iniciados devido à sua complexidade. (É recomendável entretanto que todos os administradores de sistemas saibam como
utilizar pelo menos suas funções básicas, devido à sua universalidade. O mail pode ser encontrado em praticamente todas as variantes de sistemas Unix.)
• Existem outros programas tais como mutt, pine e elm que tornam o trabalho com o correio eletrônico extremamente simples para os usuários comuns.
• As opções, tanto de domínio público como comerciais são numerosas.
• Interfaces gráficas com suporte aMIME (Multipurpose Internet Mail Extensions)Interfaces gráficas com suporte a MIME (Multipurpose Internet Mail Extensions) estão também popularizadas.
MTA (1)MTA (1)• O programaMTA é necessário porque a entrega de correio eletrônico em redes raramente é• O programa MTA é necessário, porque a entrega de correio eletrônico em redes raramente é
uma tarefa simples.
• Como a tarefa de transportar mensagens freqüentemente se estende além dos domínios da á i l l t id d d MTA d d MUAmáquina local aumenta a necessidade de um MTA separado de um MUA.
• MTAs mais usados: Postfix e Sendmail (em ambientes Unix)
• O MTA implementa o protocolo de transporte de mensagens e pode enviar mensagens de uma máquina para outra na mesma rede, e pode também redirecionar mensagens da rede em que se encontra para redes de arquitetura radicalmente diferentes.
• Atenção: Lembre‐se que não existem somente conexões de e‐mail através da Internet ! Existem muitas outras redes, com arquiteturas diferentes, além de diferentes camadas de aplicação, que necessitam se comunicar adequadamente.aplicação, que necessitam se comunicar adequadamente.
MTA (2)MTA (2)• OMTA roteia a mensagem recebida do programa do usuário com base no• O MTA roteia a mensagem recebida do programa do usuário, com base no
endereço eletrônico conhecido.
Para as mensagens que saem:Para as mensagens que saem:
• OMTA recebe a mensagem vinda do programa do usuário; • Interpreta o endereço eletrônico;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 que chegam:
• O MTA interpreta o endereço;p ç• Envia para o programa de e‐mail do usuário;• Ou redireciona para outro endereço.
fila demensagens MTA (3)
agente de
á
caixa de correio do usuário
mensagens de saídaMTA (3)
servidor de correio
usuárioagente de usuário
SMTP
SMTP
servidor de correio
SMTP
SMTP
agente gde usuário
servidor de correio
agente de usuárioagente
de de usuário
MTA (4)MTA (4)
E di ã t t t d• Em adição ao roteamento entre programas de usuário e programas de entrega o MTA realiza mais duas funções:mais duas funções:
– Envia e recebe mensagens SMTP (Simple Mail– Envia e recebe mensagens SMTP (Simple Mail Transporte Protocol), ou seja, mensagens Internet RFC‐821.
– Permite criação de “aliases” (sinônimos) de endereçosendereços.
SMTP [RFC 821]SMTP [RFC 821]
U TCP f ê i fiá l d d• Usa TCP para a transferência confiável de mensagens de correio do cliente ao servidor. (Usa porta 25/TCP)
• Transferência direta: servidor remetente ao servidor receptor
• Três fases da transferência:H d h ki ( i t )– Handshaking (cumprimento).
– Transferência das mensagens– EncerramentoEncerramento
• Interação comando/resposta– Comandos: texto ASCII– Resposta: código e frase de status
• Mensagens precisam ser em ASCII de 7-bits.
SMTP
• Na Internet, o envio e recepção de e‐mail são f é d ã dfeitos através de uma conexão na porta 25 da máquina destino.
• O processo daemon que escuta essa porta deve implementar o protocolo SMTP (Simple Mail Transfer Protocol).
• Esse processo daemon aceita as mensagens que p g qchegam e tenta encaminhá‐las à caixa postal destino, reportando eventuais erros à máquina , p qorigem.
SMTP
• O SMTP é inteiramente baseado em texto.• Tendo estabelecido uma conexão à porta 25 do servidor, a máquina cliente aguarda uma resposta do servidor.
• O servidor envia uma linha texto indicandoO servidor envia uma linha texto indicando se está ou não preparado para receber emailemail
• Se o servidor está disposto a receber email, o cliente aceita a recepçãoo cliente aceita a recepção.
• Desenvolve‐se o “delivery”.
Interação SMTPInteração SMTPS: 220 doces.brC HELO id bC: HELO consumidor.br S: 250 Hello consumidor.br, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Voce gosta de chocolate? C: oce gosta de c oco ate?C: Que tal sorvete? C: . S: 250 Message accepted for deliveryS: 250 Message accepted for delivery C: QUIT S: 221 doces.br closing connection
Códigos de operação [RFC 2821]Códigos de operação [RFC 2821]500 Syntax error503 B d f d503 Bad sequence of commands220 Service ready221 Service closing transmission channel250 Requested mail action okay, completed450 Requested mail action not taken550 Requested action not taken
SMTPSMTP
• SMTP usa conexões persistentes.
• SMTP requer que a mensagem (cabeçalho e corpo) sejam em ASCII d 7 bitASCII de 7‐bits.
• Algumas cadeias de caracteres não são permitidas ( )numa mensagem (p.ex., CRLF.CRLF).
• Assim, a mensagem pode ter que ser codificada (normalmente em base‐64 ou “quoted printable”).
• Servidor SMTP usa “CRLF.CRLF“ para reconhecer o final da mensagem.
Dois computadores sempre on lineDois computadores sempre on‐line
Remetente Destinatário
Editorde
NotificadorVisualizadorde
MensagemCaixa Postal
Visualizadorde
MensagemDe:A@origem dom
Agentede
Agentede
Agentede
[email protected]:[email protected]
Computador “B”Computador “A”
deTransporte
deDistribuição LocalSMTP
deTransporte
pem destino.dom
pem origem.dom
Dois computadores via ISPDois computadores via ISPRemetente
Editor Agente
De:[email protected]:[email protected]
Agente
ISP
deMensagem
gde
TransporteSMTP
deTransporte Caixa Postal. . .
Agentede
Distribuição LocalCaixa Postal
Agentede
Transporte SMTP
. .
ISP
Computador “A”
Transporte SMTPAgente
deTransporte
DestinatárioVisualizador
deMensagem
POP ou
IMAPAgentede
Transporte
Computador “B”
Mensagem Transporte
Mail RelayMail RelayD
empresa.dom
Editor Agente Agente
De:[email protected]:xxxxxxxxxxxxx
Remetente “A”Editor
deMensagem SMTP
Agentede
Transporte
Agentede
Transporte
De:B@dep2 empresa dom
SMTP
Agentede
Remetente “B”Editor
deMensagem
Caixa Postal
[email protected]:xxxxxxxxxxxxx
Distribuição LocalAgente
deDistribuição Local
. . . . . .
Caixa Postal. .
dep1.empresa.dom dep2.empresa.dom
Caixa Postal
. .
Caixa Postal
. .
SPAMSPAM
Agente De:spammer@relay1 dom
relay1.dom
Spammer deTransporte
[email protected]:xxxxxxxxxxxxxx. . .
Editorde
Mensagem
Agentede
Transporte
. . . . . . .
Agente De:@ l 9 d
. . . . .De:[email protected]:xxxxxxxxxxxxxx g
deTransporte
[email protected]:xxxxxxxxxxxxxx
relay9.dom
Protocolos de MensagensProtocolos de Mensagens
Já i d MTA• Já mencionado: MTA:– SMTP (Simple Mail Transfer Protocol)– Transmissão imediata entre agentes de transporte;– Transmissão imediata entre agentes de transporte;– Não faz uso de caixa postal.
• Mail Access Agente (MAA):– POP (Post Office Protocol)
• Transmite mensagens apenas da caixa postal do servidor para a do cliente.
– IMAP (Internet Mail Agent Protocol)• Sincroniza as caixas postais do servidor e do cliente.
Lembrando: Funcionamento do Correio eletrônico
MUA: Mail User AgentMTA: Mail Transfer AgentMDA M il D li A tMDA: Mail Delivery AgentMAA: Mail Access Agent
MDA: Mail Delivery AgentMDA: Mail Delivery Agent
A t d Di t ib i ã L l• Agente de Distribuição Local• Responsável por arquivar a mensagem na caixa postal corretapostal correta.
• Pode filtrar mensagens.
Agentes mais conhecidos:• Procmail• Procmail• Binmail• Maildrop• Maildrop• Safecat
A “entrega final”g• Os mecanismos apresentados até aqui funcionam em máquinas capazes de enviar ou receber emailem máquinas capazes de enviar ou receber email.
• Na maior parte dos casos, essa premissa é falsa: um usuário doméstico tem o seu PC conectado aum usuário doméstico tem o seu PC conectado a uma rede local e esta é que tem os seus servidores de emailservidores de email.
• A transferência do email numa caixa postal para o PC do usuário é feita através do protocolo POP3PC do usuário é feita através do protocolo POP3(Post Office Protocol) ou IMAP (Internet Mail Access Protocol). )
MDA: Mail Delivery AgentMDA: Mail Delivery Agent
SMTP SMTP POP3 ouagente nt POP3 ouIMAP
agente de usuário
agente de usuário
• SMTP: entrega/armazenamento no servidor do receptor.
servidor de correio do remetente
servidor de correiodo receptor
g / p• MDA: Mail Delivery Agent : recupera do servidor.
– POP: Post Office Protocol [RFC 1939]• Autorização (agente <‐‐>servidor) e transferência
– IMAP: Internet Mail Access Protocol [RFC 1730]• Mais comandos e mais opções (mais complexo).• Manuseio de msgs armazenadas no servidor
• Através de HTTP: Hotmail , Yahoo! Mail, Webmail, etc. (não é exatamente um “protocolo” de e‐mail e sim
i )um mecanismo)
Formato de uma mensagem de e mailFormato de uma mensagem de e‐mail
lSMTP: protocolo para trocar mensagens de correio
RFC 822: padrão para formato de
cabeçalholinha em b np p
mensagem de texto:
• Linhas de cabeçalho, p.ex.,T ENVELOPE
branco
– To: ENVELOPE
– From:
– Subject:
corpo
diferentes dos comandos de smtp!
• CorpoCorpo– a “mensagem”, somente de
caracteres ASCII .
T i “” t– Termina com um “.” ponto
Cabeçalhos de E‐mailCabeçalhos de E mailReturn-Path: <[email protected]>Delivered-To: [email protected]: from localhost (localhost [127.0.0.1])
by xxxxxxxxxxxxxxg (Postfix) with ESMTP id DD62D10342for <[email protected]>; Tue, 25 Sep 2008 11:59:59 -0300 (BRST)
Received: from xxxxx.xxxxxxx.xxx ([127.0.0.1])by localhost (xxxxx [127.0.0.1]) (amavisd-new, port 10024) with ESMTPid 26751-02 for <[email protected]>;Tue, 25 Sep 2008 11:59:56 -0300 (BRST)
Received: from xxxxxxxxxx.xxx (unknown [192.168.xx.xx])by xxxxx.xxxxxxxxx.xxx (Postfix) with ESMTP id 6A39310341for <[email protected]>; Tue, 25 Sep 2008 11:59:56 -0300 (BRDT)
Message-ID: <[email protected]>Date: Tue, 25 Sep 2008 11:59:44 -0300From: XXXXXXXXXXXXXXXXXXXX <[email protected]>User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031107 D bi /1 5 3Debian/1.5-3X-Accept-Language: enMIME-Version: 1.0To: [email protected]: Mesnagem de textX Enigmail Ve sion 0 82 6 0X-Enigmail-Version: 0.82.6.0X-Enigmail-Supports: pgp-inline, pgp-mimeContent-Type: text/plain; charset=ISO-8859-1; format=flowedContent-Transfer-Encoding: 8bit
MIME(Multipurpose Internet Mail Extension)(Multipurpose Internet Mail Extension)
Além de texto pode ser necessário enviar e receberAlém de texto, pode ser necessário enviar e receber outros tipos de informação, como:– mensagens em linguagens que usam caracteresmensagens em linguagens que usam caracteres especiais.
– mensagens em outros alfabetos.– mensagens em linguagens para as quais não existe um alfabeto (ex. chinês).
ã té t t– mensagens que não contém texto
• A idéia básica do MIME é acrescentar ao d ã 821 l d difi ãpadrão 821, algumas regras de codificação
para outros tipos de informação.
Formato de uma mensagem: extensões para multimídiaFormato de uma mensagem: extensões para multimídia
• MIME: multimedia mail extension, RFC 2045, 2056
• Linhas adicionais no cabeçalho da mensagem declaram tipo do conteúdo MIME.
From: [email protected] To: [email protected]ão MIMESubject: Imagem de uma bela torta MIME-Version: 1.0 Content-Transfer-Encoding: base64
método usadopara codificar dados
Content-Type: image/jpeg
base64 encoded data .....
tipo, subtipo dedados multimídia,
declaração parâmetros ......................... ......base64 encoded data
declaração parâmetros
Dados codificados
Tipos MIME pContent-Type: tipo/subtipo; parâmetros
Text• sub‐tipos exemplos: plain,
html
Audio• Sub‐tipos exemplos : basic
(8‐bit codificado mu‐law)html• charset=“iso-8859-
1”, ascii
(8 bit codificado mu law), 32kadpcm (codificação 32 kbps).
Image• sub tipos exemplos : jpeg
Application• Outros dados que precisam• sub‐tipos exemplos : jpeg,
gif• Outros dados que precisam
ser processados por um leitor para serem “visualizados”.
Video• sub‐tipos exemplos : mpeg,
quicktime
• subtipos exemplos : msword, octet-stream
quicktime
Tipo Multipartep p
From: [email protected] To: bernardo@doces brTo: [email protected]: Imagem de uma bela torta MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789yp p y
--98766789Content-Transfer-Encoding: quoted-printableContent Type: text/plainContent-Type: text/plain
caro Bernardo, Anexa a imagem de uma torta deliciosa.g--98766789Content-Transfer-Encoding: base64Content-Type: image/jpeg
base64 encoded data ..... ......................... ......base64 encoded data --98766789--
Aliases (1)Aliases (1)
• “Aliases” ã sinônimos d d d il it• “Aliases” são sinônimos de endereços de e‐mail muito importantes para a máquina 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.(f ) p ç• Criar listas de distribuição de mensagens para vários usuários ao
mesmo tempo.• Os aliases são definidos no arquivoOs aliases são definidos no arquivo
– /etc/aliases (ou equivalente no seu sistema).• Em alguns sistemas este arquivo de aliases pode ser
/ /lib/ li– /usr/lib/aliases
Aliases (2)Aliases (2)
• Si t d fi ã /etc/aliases• Sintaxe de configuração /etc/aliases
alias: recipient [, recipient, ...]
• alias é o nome para onde o e‐mail é endereçado (o endereço que ele chega).que 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• 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– Vários recipients podem ser associados a um único alias forma‐se uma lista de distribuição.
forward.forward
• E di ã di i t f id l /etc/aliases• Em adição ao redirecionamento fornecido pelo /etc/aliasessendmail permite definir endereços de redirecionamento (forward) pessoal.
• Usuário pode definir o redirecionamento em seu arquivo .forward no seu home-dir pessoal.
• O SMTP 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.