Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

01 - Protocolo Simples

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

Protocolo Simples (Simple Mail Transfer Protocol)

O SMTP (Simple Mail Transfer Protocol) é o protocolo padrão de facto para a transferência de correio eletrônico através das redes IP. Apesar do termo "Simples" em seu nome, a evolução do protocolo desde a sua concepção em 1982 reflete a própria evolução da Internet, passando de um sistema de confiança mútua entre servidores acadêmicos para uma infraestrutura crítica que exige camadas massivas de autenticação e criptografia.


1. Por que "Simples"? — O Contexto Histórico

O adjetivo "Simple" no nome SMTP é relativo e histórico. Na década de 1980, existiam protocolos de e-mail muito mais complexos, notadamente o X.400 (definido pelo ITU-T e ISO), que era uma alternativa "completa e rigorosa" ao SMTP.

Comparação com X.400

Característica SMTP (RFC 821) X.400 (CCITT 1984)
Origem IETF, comunidade de pesquisa ITU-T/ISO, organismos formais
Modelo Texto plano, comandos ASCII Binário, ASN.1, BER encoding
Estrutura Plana, descentralizada Hierárquica rígida (MTA, MTA)
Endereço user@domain (DNS) /C=BR/ADMD=.../PRMD=.../O=.../
Extensibilidade Headers opcionais livres Esquema fixo com OIDs
Tamanho típico msg Pequeno (texto) Verboso ( envelopes binários)
Implementação Dias Meses
Adoção Massiva (Internet) Setores governamentais isolados

O X.400 tinha vantagens teóricas (recibos de entrega nativos, controle de conteúdo avançado), mas sua complexidade o tornou inviável para implementações amplas. O SMTP venceu pela simplicidade técnica: era fácil de implementar, fácil de depurar com telnet, fácil de estender.

Outras Alternativas Históricas

  • UUCP (Unix-to-Unix Copy): Sistema de "store-and-forward" para links intermitentes (discados). Endereços no formato host!user. Ainda usado em redes FidoNet e BBS.
  • DECnet MAIL: Sistema da Digital Equipment Corporation para VMS.
  • Banyan VINES: Sistema proprietário com directory service integrado.
  • Microsoft Mail / cc:Mail: Sistemas de e-mail corporativo dos anos 1990, com gateways para SMTP.

Todos foram substituídos pelo SMTP nos anos 1990 com a popularização da Internet.

2. Fundamentos Históricos e Evolução (RFC 821 a RFC 5321)

O SMTP foi originalmente padronizado na RFC 821 por Jon Postel em agosto de 1982. O objetivo era criar um protocolo de transporte que fosse independente do subsistema de transmissão, exigindo apenas um canal de fluxo de dados ordenado e confiável (tipicamente o TCP).

Linha do Tempo das RFCs

Ano RFC Marco
1982 821 SMTP original (Postel)
1982 822 Formato da mensagem (ARPA Internet Text)
1993 1425 SMTP Service Extensions (ESMTP)
1995 1869 ESMTP consolidado
2001 2821 Atualização completa do SMTP
2008 5321 SMTP moderno (atual)
2008 5322 Formato da mensagem moderno (substitui 822)

Com o tempo, a necessidade de suportar caracteres não-ASCII, anexos e segurança levou à criação das Extensões de Serviço (ESMTP), padronizadas atualmente na RFC 5321. Esta RFC não apenas define o transporte, mas estabelece as regras de etiqueta para o diálogo entre o Cliente SMTP (emissor) e o Servidor SMTP (receptor).

A Filosofia do "Store-and-Forward"

O projeto técnico do SMTP é baseado no modelo de Armazenamento e Encaminhamento:

  1. O cliente submete a mensagem a um servidor local.
  2. O servidor armazena a mensagem em uma fila (Mail Queue).
  3. O servidor tenta, de forma iterativa, entregar a mensagem ao próximo salto ou destino final.
  4. Se o destino estiver offline, o protocolo prevê o armazenamento temporário por dias antes da desistência final (típico: 5 dias, configurável).

3. Arquitetura Técnica e Modelo de Comunicação

O SMTP opera na Camada de Aplicação (Camada 7 do modelo OSI) e utiliza o TCP na camada de transporte. A escolha do TCP é vital, pois a perda de um único bit no corpo da mensagem ou no cabeçalho poderia corromper a integridade do e-mail ou impedir o roteamento correto.

Portas SMTP Padronizadas

Porta Uso RFC
25 MTA-to-MTA (relay entre servidores) RFC 5321
465 SMTPS (SMTP implícito sobre TLS) Histórico, ainda usado
587 Submission (MUA → MSA com autenticação) RFC 6409
2525 Alternativa não-padrão (alguns provedores) -

O Diálogo Baseado em Texto

Diferente de protocolos binários modernos (como HTTP/2), o SMTP clássico é estritamente baseado em texto plano e codificação ASCII de 7 bits. Cada comando enviado pelo cliente recebe uma resposta numérica de 3 dígitos acompanhada de um texto explicativo.

Exemplo de Diálogo em Nível de Pacote:

  • Cliente: EHLO emissor.com (Sinaliza suporte a extensões)
  • Servidor: 250-mail.receptor.com Hello [IP] (Responde com a lista de capacidades: STARTTLS, SIZE, AUTH)

Estados da Transação SMTP

Uma sessão SMTP passa por estados bem definidos:

  1. Estado de Conexão: Estabelecimento do Handshake TCP.
  2. Estado de Identificação: Saudação e negociação de capacidades.
  3. Estado de Transação de Correio: O remetente e o destinatário são definidos.
  4. Estado de Transferência de Dados: Onde o corpo da mensagem é injetado.
  5. Estado de Encerramento: Finalização da sessão.

4. Implicações de Segurança e Ataques Modernos

No design original de 1982, o SMTP não possuía mecanismos de autenticação. Qualquer pessoa poderia se conectar a um servidor e fingir ser qualquer remetente. Essa lacuna de design deu origem aos maiores desafios de segurança da rede hoje.

Open Relay (Relays Abertos)

Um servidor mal configurado que aceita e encaminha e-mails de qualquer origem para qualquer destino. Estes são alvos primários de botnets de SPAM. Hoje, a configuração segura exige autenticação para envio externo e aceitação apenas de IPs confiáveis para relay entre MTAs.

Mail Spoofing

A falsificação do comando MAIL FROM no envelope SMTP, permitindo ataques de Spear Phishing. Mitigado hoje por:

  • SPF (Sender Policy Framework, RFC 7208): Lista em DNS dos IPs autorizados a enviar pelo domínio.
  • DKIM (DomainKeys Identified Mail, RFC 6376): Assinatura criptográfica no header.
  • DMARC (RFC 7489): Política que alinha SPF+DKIM com o domínio do From:.

SMTP Smuggling

Uma vulnerabilidade técnica avançada descoberta recentemente envolve a discrepância em como diferentes servidores interpretam a sequência de fim de dados (<CRLF>.<CRLF>). Um atacante pode "contrabandear" uma segunda mensagem dentro de uma conexão legítima, burlando filtros de segurança e fazendo com que a mensagem falsa pareça ter sido enviada por um servidor autorizado.

Defesas e Hardening

Para tornar o "Protocolo Simples" em um meio seguro, a comunidade Cyber utiliza:

  • STARTTLS (RFC 3207): Comando que eleva uma conexão de texto plano para uma conexão criptografada (TLS) dinamicamente.
  • SMTP-AUTH (RFC 4954): Exige que o cliente prove sua identidade antes de permitir o envio.
  • MTA-STS (RFC 8461): Política publicada em DNS que força TLS no transporte MTA-to-MTA.
  • TLS-RPT (RFC 8460): Relatórios de falhas TLS para monitoramento.

5. Laboratório e Diagnóstico

Um profissional de Cyber Segurança deve ser capaz de auditar um servidor SMTP sem o uso de clientes gráficos. O uso do Telnet ou Netcat (nc) continua sendo a forma mais pura de testar a conformidade de um servidor.

Comando de Teste Manual:

telnet mx.alvo.com 25
HELO meu.dominio.com
MAIL FROM:<auditor@meu.dominio.com>
RCPT TO:<vitima@alvo.com>
DATA
Subject: Teste de Auditoria de Seguranca
Conteudo tecnico aprofundado aqui.
.
QUIT

Em auditorias modernas, sempre utilize swaks (Swiss Army Knife for SMTP). É uma ferramenta de linha de comando extremamente poderosa que permite testar autenticação, TLS e injeção de cabeçalhos de forma automatizada.

swaks --to vitima@alvo.com --from auditor@auditor.com \
      --server mx.alvo.com --auth --auth-user auditor --auth-password '***' \
      -tls --header "X-Test: auditoria"

6. Limites e Restrições de Design

  • Tamanho da Mensagem: O limite de tamanho não é definido pelo protocolo em si, mas negociado via extensão SIZE. O padrão de mercado é 10-25 MB.
  • Latência de Entrega: O SMTP não é um protocolo de mensagens instantâneas. A "entrega imediata" é um efeito da alta largura de banda atual, mas não uma garantia do protocolo.
  • Codificação de Binários: Como o protocolo é de 7 bits, arquivos binários precisam ser convertidos para Base64 (RFC 2045) via extensões MIME, o que aumenta o tamanho do e-mail em aproximadamente 33%.
  • Mensagem única para múltiplos destinatários: O SMTP suporta múltiplos RCPT TO por transação, mas provedores como Gmail limitam para evitar abuso (típico: 100 destinatários por mensagem).

7. Conclusão: Simplicidade que Perdurou

O SMTP é uma das poucas tecnologias da Internet original que permanece essencialmente inalterada em sua filosofia: texto plano, comandos legíveis por humanos, store-and-forward. As "extensões" que adicionamos (ESMTP, STARTTLS, SPF, DKIM, DMARC) são camadas que preservam a base original. O termo "Simples" hoje é irônico, mas ainda precisa: o protocolo continua mais simples que qualquer alternativa já proposta, e essa simplicidade é a razão pela qual ele sobreviveu a 40 anos de evolução da Internet.

Atributo Valor
RFC atual 5321 (2008)
Porta padrão 25 (relay), 587 (submission)
Transporte TCP
Codificação ASCII 7-bit (com MIME para binários)
Modelo Store-and-Forward
Handshake EHLO/HELO
Término de dados <CRLF>.<CRLF>
Extensões modernas STARTTLS, AUTH, SIZE, PIPELINING