200 likes | 330 Vues
SMTP Simple Mail Transfer Protocol. Aluno: Vinicius Fernandes de Oliveira vinicius@vinicius.eti.br Maio de 2003. LECA-DCA / PPgEE - Disciplina: Arquitetura de Redes eProtocolos de Alto Nível. SMTP - Agenda. Introdução Considerações gerais Formato das mensagens
E N D
SMTPSimple Mail Transfer Protocol Aluno: Vinicius Fernandes de Oliveira vinicius@vinicius.eti.br Maio de 2003 LECA-DCA / PPgEE - Disciplina: Arquitetura de Redes eProtocolos de Alto Nível
SMTP - Agenda • Introdução • Considerações gerais • Formato das mensagens • Endereços de correio eletrônico • Modelo para a utilização do SMTP • Procedimentos do SMTP • Comandos do SMTP • Códigos de retorno do SMTP • Extensões do SMTP ( ESMTP ) • Conclusão
Introdução SMTP Considerações gerais • RFC 2821 (ex-821) é a recomendação mais atual • Correio eletrônico é o serviço mais utilizado na web • O protocolo SMTP é o mais utilizado nesse serviço • O protocolo SMTP é composto apenas de pares <comando> <|valor|> terminado com <CR LF> • O protocolo SMTP não deve ser confundido com o serviço de correio eletrônico • ele faz uma simples transferência de correspondência • Foi concebido para transferir apenas texto ASCII • existem muitas extensões para transpor essa limitação
Introdução SMTP Considerações gerais • Pode ser utilizado em diferentes ambientes de correio eletrônico • utiliza-se de um gateway SMTP • SMTP faz uso intenso do DNS • O SMTP é independente do nível de transporte • TCP - o único tratado na atual recomendação. • NCP - Network Control Program ( ARPANET ) • NITS - Network Independent Transport Service • X.25 - Utilizado em rede pública de dados ( CCITT )
Introdução SMTPFormato das mensagens • Importância do formato das mensagens para o SMTP: • As interfaces de usuário costumam montar os comandos SMTP a partir das informações existentes na mensagem. • A maior parte das funcionalidades do correio eletrônico (anexação de imagens, sons, páginas html, etc. ) são implementadas nas próprias mensagens. • Muitos aplicativos utilizam-se de campos especiais contidos na mensagem para as mais diversas finalidades: • relatórios de ocorrências na transmissão / recepção • identificação de produtos ( softwares ) • passar "comandos" entre diferentes ambientes (gateway SMTP) • Obter informações do mail exchanger • etc.
Content-Type :<tipo/subtipo> boundary=<seqüência de caracteres> ( RFCs MIME ) • • • • • • Parte 1 <seqüência de caracteres do boundary> Content-Type:<tipo/subtipo><outros parâmetros/valor> <campo>:<valores, parâmetros,etc.><cr lf> • • • • • • RFCs MIME ( 37 ) Principais: 3030 2231 2077 Multipurpose Internet Mail Extensions <linha em branco> Mensagem <linha em branco> Parte 2 Parte 3 • • • • • • Introdução SMTPFormato das mensagens HEADER FIELDS RFC 2822 (ex-822) From :<nome> endereço To :<nome> endereço Cc :<nome> endereço Subject :<texto> <campo> : <valores, parâmetros, etc.> <cr lf> • • • • • • <linha em branco> BODY RFC 2822
Introdução SMTPEndereços de correio eletrônico • marketing@empresa.com.br conceitualmente é • <endereço da caixa postal>@<nome do mail exchanger> • <endereço da caixa postal> • o nome não precisa ser igual ao do “login” • pode ser “virtual” ( haverá mapeamento entre virtual => real ) • <mail exchanger> • Normalmente é igual ao nome do domínio • O DNS ( registros MX ) é que possui a lista com os nomes dos servidores de correio • O solicitante dessa informação é que decidirá qual usar
Introdução SMTPEndereços de correio eletrônico • <endereço da caixa postal + domínio>@ <nome do pseudodomínio> • <nome do pseudodomínio> é um gateway SMTP • <endereço da caixa postal + domínio> é o formato do endereço no outro ambiente de rede • Os gateways decodificam essa informação através de um conjunto de regras ou mapeamentos • marketing-uucp.vendas@empresa.com.br é um exemplo de nome por formação de regras: • marketing é a caixa postal • uucp é um servidor unix • vendas é o hostname • pseudodomínios só oferecem serviço de correio eletrônico
Comandos e respostas SMTP + mensagem Nomes alternativos Nomes alternativos Cliente Servidor Mensagem Mensagem Servidor Cliente POP ou IMAP Comandos e respostas SMTP + mensagem Comandos e respostas SMTP + mensagem MUA MTA Mensagem Modelo para utilização do SMTP Sistema de arquivos Sistema de arquivos MTA MTA MUA ( tudo acontece em background ) • Elementos básicos: remetente e destinatário • MUA - Mail Users Agent ( Cliente SMTP, remetente ) • MTA - Mail Transfer Agent ( Cliente e/ou Servidor SMTP, remetente e/ou destinatário )
Modelo para utilização do SMTP • Responsabilidades do MUA (Mail User Agent) • Disponibilizar uma interface de correio para o usuário • Guardar os e-mails até conectar-se a um MTA • Gerar comandos SMTP a partir do cabeçalho da mensagem no formato RFC 2822 fazendo consistências • Garantir transparência de dados • <CR LF>.<CR LF> na mensagem vira <CR LF>. .<CR LF>
Modelo para utilização do SMTP • Responsabilidades do MTA (Mail Transfer Agent) • Ser responsável pela caixa postal do seus usuários • Receber e armazenar em filas as mensagens que serão encaminhadas • Fazer consultas ao DNS e escolher um nome • Adotar estratégias para envio e recepção • Não conseguindo conectar-se ao MTA destino, tentar novamente após um tempo ou desistir • Manter informações de servidores que não respondem • Na conexão com um MTA destino, negociar de uma vez a maior quantidade possível de endereços "com cópias para” • Recebendo uma mensagem de um host e havendo mensagens para esse host na sua fila, encaminhá-las aproveitando a conexão
Modelo para utilização do SMTP • Responsabilidades do MTA (Mail Transfer Agent) • Registrar sua identificação ( host + domínio) data, hora e outras informações na mensagem recebida • Notificar ao emitente da mensagem falhas na recepção ou no seu encaminhamento • Identificar a existência de loops no encaminhamento • Completar ou corrigir mensagens com falhas ou erros para clientes conhecidos
Procedimentos do SMTP Comando: <comando><sp><|valor|><CR LF> Resposta: <número><sp><mensagem> • Início a sessão: abre conexão na porta 25 • Iniciando o cliente: identificação do host • Atendimento às transações: “De”, “Para”, “Dados” • Resolução de nomes e correção de erros • Transmissão para a rota especificada • Gateways • Encerramento da sessão e da conexão • Lista de correio e aliases
Comandos SMTP • Implementação mínima • EHLO • HELP • MAIL • RCPT • DATA • RSET • NOOP • QUIT • VRFY
Códigos de retorno SMTP • 3 dígitos para os códigos de retorno: • 1º dígito: • 1yz Resposta positiva preliminar • 2yz Resposta positiva completada • 3yz Resposta positiva intermediária • 4yz Resposta negativa temporária • 5yz Resposta negativa definitiva • 2º dígito: • x0z Sintaxe: erro, não funcional, não implementado. • x1z Informação: respostas para requisição de informações • x2z Conexões: respostas referentes ao canal de transmissão. • x3z e x4z não especificado. • x5z Sistema de correio:status do receptor X requisições do transmissor. • 3º dígito: • diferenciações refinadas do segundo dígito.
Extensões SMTP (ESMTP) Baseado na RFC 3300 - Internet Official Protocol Standards • Tamanho da mensagem • (EHLO) 250 SIZE 1000000 • MAIL FROM:<ned@thor.inn.com> SIZE=500000 • Otimização do uso do link • (EHLO) 250 PIPELINING • DSN - Delivery Status Notification • (EHLO) 250-DSN • MAIL FROM:<Alice@Heart.ORG> RET=HDRS ENVID=QQ314159 • MAIL FROM:<Alice@Heart.ORG> RET=FULL ENVID=QQ314159 • RCPT TO:<d@ary.ed> NOTIFY=SUCCESS,FAILURE ORCPT=rfc822;d@ary.ed • RCPT TO:<Fred@Bombs.AF.MIL> NOTIFY=NEVER
Extensões SMTP (ESMTP) • Novo conjunto de códigos de retorno • (EHLO)250 ENHANCEDSTATUSCODES • xxx n.nnn.nnn • 250 2.1.0 vinicius@ppgee....Sender OK • 500 5.3.3 Unrecognized command • Inversão "cliente - servidor” • (EHLO) 250 ETRN • ETRN sigurd.innosoft.com • ETRN @innosoft.com • ETRN #innosoft.com
Extensões SMTP (ESMTP) • Autenticação SASL ( Simple Authentication and Security Layer) • (EHLO) 250 AUTH <mecanismos de autenticação> • (EHLO) 250 AUTH CRAM-MD5 DIGEST-MD5 • C: AUTH CRAM-MD5 • S: 334 PENCeUxFREJoU0NnbmhNWitOMjNGNndAZWx3b29kLmlubm9zb2Z0LmNvbT4= • C: ZnJlZCA5ZTk1YWVlMDljNDBhZjJiODRhMGMyYjNiYmFlNzg2ZQ== • S: 235 Authentication successful. • Negociação de tempo para DSN • (EHLO) 250 DELIVERBY • (EHLO) 250 DELIVERBY <tempo> • MAIL FROM:<eljefe@bigbiz.com> BY=<tempo> • MAIL FROM:<eljefe@bigbiz.com> BY=<tempo>;R | N
Extensões SMTP (ESMTP) • Utilização do TLS ( Transport Layer Security ) • (EHLO) 250 STARTTLS • STARTTLS • Utilizando 8 bits ASCII • (EHLO) 250 8BITMIME • MAIL FROM:<ned@ymir.mont.edu> BODY=8BITMIME • MAIL FROM:<ned@ymir.mont.edu> BODY=7BIT • Transmissão de arquivos binários • (EHLO) 250 CHUNKING 250 BINARYMIME • BDAT <tamanho> ( substitui o comando DATA ) • BDAT <tamanho> LAST • MAIL FROM:<ned@ymir.mont.edu> BODY=BINARYMIME
Conclusão • Correio eletrônico é um campo vasto e com muitas possibilidades • A separação entre o protocolo de troca de mensagens ( SMTP ) e a formatação das mensagens ( RFC 2822 ) trouxe flexibilidade e facilidade de implementações, apesar de algumas redundâncias • A pouca segurança inerente ao SMTP talvez seja uma das causas do seu sucesso ( apesar dos inconvenientes SPAMs ) www.vinicius.eti.br ==> Trabalhos UFRN