Marcelo Wzorek
Marcos Roda
Anderson Silva
Simple Mail Transfer Protocol (SMTP)
Trabalho referente a disciplinade Redes e
sistemas distribuídos do 3º ano do Curso de
Sistemas de Informação da Fundação de
estudos sociais do Paraná,orientado pelo
professor Airton Kuada
Curitiba, 28 de março de 2006
Sumário
1.
2.
3.
4.
5.
6.
Introdução........................................................................................................03
Implementação.................................................................................................04
Segurança e spamming.....................................................................................07
Exemplos de utilização.....................................................................................07
Conclusão.........................................................................................................08
Referências Bibliográficas................................................................................09
2
Introdução
O trabalho aborda o tema SMTP (Simple Mail Transfer Protocol), este é um protocolo de
envio de emails bastante simples baseado em texto simples. A utilização em massa deste
protocolo iniciou na decada de 80. Na especificação inicial o protocolo era contemplado
apenas texto ASCII (7 bits) o que impossibilitava a transmissão de arquivos,
posteriormente foram definidos alguns padrões de formato para esta transmissão, o mais
conhecido e utilizado é o MIME (Multipurpose Internet Mail Extensions), o SMTP
contempla apenas a transmissão de mensagens para a recepção, outros protocolos como
POP3 ou IMAP devem ser utilizados.
3
Implementação
O SMTP foi desenhado para trafegar independente do meio de transporte, ou seja, pode
trafegar em qualquer modelo de rede com uma camada de transporte confiável. Aqui será
descrito como este protocolo é implementado em uma rede TCP/IP, que é o modelo mais
utilizado hoje em dia, o SMTP trafega permanentemente na porta TCP 25.
O protocolo é definido como “lock-step” ,ou seja, o emissor e o receptor esperam uma
resposta para continuar transmitindo, o modelo da arquitetura pode ser definido como
uma máquina de estado finita:
Abaixo seguem os comandos básicos utilizados para comunicação através do protocolo
SMTP, existem vários outros comandos opcionais, porém estes são os principais:
HELO:
MAIL:
RCPT:
DATA:
RSET:
NOOP:
QUIT:
Estado de identificação inicial.
Caminho (trajeto) reverso do emissor
Receptor envia o caminho (trajeto)
Estado de mensagem de texto
Aborta a transação e limpa os buffers
Nenhuma operação
Finaliza mensagem e fecha o canal
Os comandos podem ter zero ou mais parametros, estes comandos e seus parametros são
emitidos como linhas de texto no formato ASCII, os comandos não medem linhas e o fim
é identificado com um retorno de carro <CRLF>. O reconhecimento da mensagem é
formado por três digitos, seguido por um texto opcional, estes digítos representam
sucesso ou erro no comando, note que para o reconhecimento de mensagem apenas os
três primeiros digítos são relevantes o texto é apenas para compreensão humana,
mnsagens iniciadas com o dígito “2” informam sucesso e com o dígito “3” significa erro,
4
normalmente para cada mensagem transmitida será enviada uma resposta, porém o
protocolo não proíbe que mais de uma mensagem de reconhecimento seja transmitida.
Uma sessão típica de SMTP pode ser representada pela figura abaixo:
O emissor abre um canal de comunicação com o receptor, o receptor pode tanto ser o
destino final como um nó intermediário (isto estará descrito explicitamente no destino da
mensagem ou implicitamente nas rotas de rede), no momento da conexão, ambos,
emissor e receptor, estarão no estado inicial. O receptor manda uma mensagem de
reconhecimento informando que o canal está aberto, o emissor envia uma mensagem
HELO identificando-se para o receptor (está autenticação não é obrigatória), novamente o
receptor transmite uma mensagem de erro ou sucesso possivelmente negando acesso ao
emissor, caso a mensagem de HELO seja bem sucessida ambos estarão no estado de
enviar/responder comando. O emissor envia uma mensagem MAIL descrevendo o
caminho (trajeto) reverso para o receptor. O receptor irá reconhecer o trajeto e limpar
todos os buffers de transação, o emissor irá enviar uma ou mais mensagens RCPT
descrevendo o trajeto dos demais recepientes (um por linha), o receptor irá aceitar ou
rejeitar cada endereço enviado pela mensagem RCPT. O emissor envia um comando
DATA instruindo o receptor que a mensagem corrente é a mensagem de email
propriamente, colocando a transação no modo de envio (send), a transmissão só é
finalizada quando o comando de fim da mensagem (EOM end-of-message) é enviado este
comando é representado por <CRLF>.<CRLF> que parece com um ponto sozinho em
uma linha, porém o receptor também deve tratar a mensagem pois se ela ocasionalmente
5
conter o comando EOM a transmissão será feita incorretamente. Finalmente o emissor
envia uma mensagem QUIT colocando a transação no modo de finalização, o receptor
reconhece esta mensagem e fecha o canal de comunicação.
6
Segurança e spamming
Uma das limitações da especificação SMTP inicial é que não existe método de
autenticação dos emissores. Como tal, foi-lhe adicionada a extensão SMTP-AUTH
Apesar disso, o spamming continuava a ser um problema. Alterar o SMTP
extensivamente ou substituí-lo completamente não se torna prático, devido à forte
utilização do SMTP e aos efeitos que daí podiam advir. O Internet Mail 2000é uma
proposta nesse sentido. É por esta razão que existem várias propostas para protocolos
alternativos que iriam assistir a operação SMTP. O grupo de pesquisa anti-spam do IRTF
está estudando várias propostas para se suportar a autenticação do emissor de uma forma
flexível, leve e escalável. A proposta aparentemente mais sólida parece ser o protocolo
Sender Policy Framework (sistema de diretivas do remetente) que é uma extensão de
segurança do protocolo SMTP que impede que o domínio remetente de email seja
forjado. O conceito do SPF foi desenvolvido originalmente por um grupo liderado por
Meng Weng Wong.
Exemplos de utilização
O Sendmail foi um dos primeiros (se não o primeiro) agente de transporte de email a
implementar SMTP. Em 2001 existiam, pelo menos, uns 50 programas que implementam
SMTP como cliente (emissor) ou servidor (receptor). Outros servidores SMTP muito
conhecidos são: Exim, Postfix, Qmail, e Microsoft Exchange Sever.
7
Conclusão
Por padrão, o protocolo SMTP não é seguro, o que permite que um usuário envie
mensagens, fazendo-se passar por outro usuário, prática conhecida como "forjar os
cabeçalhos das mensagens".
Geralmente, quem utiliza-se dessa prática são usuários mal intencionados, os quais
pretendem burlar sistemas de segurança para fazer com que suas mensagens cheguem ao
seu destino como se fossem originadas em uma fonte confiável. Um exemplo de quem
utiliza-se de tal recurso são os praticantes de SPAM (envio de mala direta comercial não
solicitada através de correio eletrônico).
8
Referências Bibliográficas
http://pt.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
http://www.mactech.com/articles/mactech/Vol.12/12.11/PPSMTPClient/index.html
9
Download

Marcelo Wzorek Marcos Roda Anderson Silva Simple Mail