Correio Eletrônico. & SMTP. Redes de Computadores II. Tópicos em Sistemas de Computação

35 

Loading.... (view fulltext now)

Loading....

Loading....

Loading....

Loading....

Texto

(1)

Correio Eletrônico

E-mail & SMTP

Redes de Computadores II

Tópicos em Sistemas de Computação

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:

e

les

amam usá-lo, e odeiam quando ele

não funciona.”

– Craig Hunt

(2)

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

(C) 2016 Adriano Mauro Cansian

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

(3)

Mercado associado ao correio eletrônico

2016 - 2020

(C) 2016 Adriano Mauro Cansian 5

http://www.radicati.com/wp/wp-content/uploads/2016/01/Email_Market_2016-2020_Executive%20Summary.pdf

(4)

Worldwide Daily Email Traffic,

2015 – 2019

(*)

(em bilhões de mensagens)

(C) 2016 Adriano Mauro Cansian 7

(*) http://www.radicati.com/wp/wp-content/uploads/2015/02/Email_Market_2015-2019,_Executive_Summary.pdf

QuanUdade de contas corporaUvas e pessoais(*)

(em milhões)

(*) estimativas THE RADICATI GROUP, INC.

(5)

Mas, nem todo mundo domina...

(C) 2016 Adriano Mauro Cansian 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
 .

(6)

Conceitos e fundamentos

E-mail e SMTP

Componentes do Correio eletrônico

MUA: Mail User Agent

MTA: Mail Transfer Agent

MDA: Mail Delivery Agent

(7)

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

(C) 2016 Adriano Mauro Cansian

(8)

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

(C) 2016 Adriano Mauro Cansian

(9)

Exemplo de MUA

17

(C) 2016 Adriano Mauro Cansian

Exemplo de um MUA com interface gráfica no sistema Mac OS X

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/

(10)

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

(C) 2016 Adriano Mauro Cansian

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);

(11)

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

(C) 2016 Adriano Mauro Cansian

(12)

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

(C) 2016 Adriano Mauro Cansian

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.

(13)

SMTP na Internet (3)

transmissão via SMTP server intermediário ISP

25

(C) 2016 Adriano Mauro Cansian

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.

(14)

Operação do SMTP (2)

(diálogo SMTP)

27

(C) 2016 Adriano Mauro Cansian

(15)

Exemplo de diálogo e interação SMTP

S:

220

doces.br

C: HELO consumidor.br

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

29

(C) 2016 Adriano Mauro Cansian

Observe a linha em branco terminando com um “ . ” S : servidor

(16)

SMTP Reply codes

31

(C) 2016 Adriano Mauro Cansian

(17)

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

(C) 2016 Adriano Mauro Cansian

(18)

Computador “B” ISP ISP Computador “A”

Dois computadores via ISP (1)

Remetente Editor de Mensagem Agente de Transporte Agente de

Distribuição Local Caixa Postal

Destinatário Visualizador de Mensagem SMTP Agente de Transporte De: A@origem.dom Para: B@destino.dom Agente de Transporte SMTP Caixa Postal . . . POP ou IMAP Agente de Transporte Agente de Transporte envio recepção 35

(C) 2016 Adriano Mauro Cansian

(19)

empresa.dom dep1.empresa.dom dep2.empresa.dom

Mail Relay ou “bounce”

Remetente “A” Editor de Mensagem SMTP Agente de Transporte Agente de Distribuição Local Remetente “B” Editor de Mensagem Agente Transporte RELAY Agente de Distribuição Local Caixa Postal Caixa Postal . . . Caixa Postal Caixa Postal . . . . De: A@dep1.empresa.dom Para: xxxxxxxxxxxxx De: B@dep2.empresa.dom Para: xxxxxxxxxxxxx SMTP 37

(C) 2016 Adriano Mauro Cansian

SPAM e relays abertos

Spammer Editor de Mensagem Agente de Transporte Agente de Transporte De: spammer@relay1.dom Para: xxxxxxxxxxxxxx Agente de De: spammer@relay9.dom . . . relay1.dom De: spammer@ilegal.dom Para: xxxxxxxxxxxxxx

(20)

Entrega final: MDA e MUA

MAA: Mail Access Agent MDA: Mail Delivery Agent

39

(C) 2016 Adriano Mauro Cansian

MDA e MAA (1)

•  Os outros dois componentes do sistema:

  MDA:

Mail

Delivery

Agent

(21)

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

(C) 2016 Adriano Mauro Cansian

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

(22)

Entrega final: MDA e MUA

43

(C) 2016 Adriano Mauro Cansian

•  Maildrop •  Procmail. •  Binmail. •  Safecat.

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.

(23)

Até aqui vimos todos

os componentes do Correio eletrônico

45

(C) 2016 Adriano Mauro Cansian

Procmail ou outros

Anatomia de um E-mail

Cabeçalho, envelope, body

(24)

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

(C) 2016 Adriano Mauro Cansian

(25)

Envelope e header (2)

(C) 2016 Adriano Mauro Cansian 49

(26)

Campos de header (2)

51

(C) 2016 Adriano Mauro Cansian

Exe

m

plo

de

he

ade

r E

-m

ai

l

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>

(27)

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

.

(28)

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).

(C) 2016 Adriano Mauro Cansian 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.

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

tipo, subtipo de

dados multimídia,

declaração parâmetros

método usado

para codificar dados

versão MIME

(29)

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

(C) 2016 Adriano Mauro Cansian

Delimitador MIME

From:

ana@consumidor.br

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

(30)

MIME

59

(C) 2016 Adriano Mauro Cansian

(31)

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

(32)

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

(C) 2016 Adriano Mauro Cansian

(33)

.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.

(C) 2016 Adriano Mauro Cansian 65

(34)

(C) 2016 Adriano Mauro Cansian 67

Esquema geral

do e-mail

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.

(35)

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.

(C) 2016 Adriano Mauro Cansian 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

Imagem

Referências

temas relacionados :