Autenticação de E-mail: SPF, DKIM e DMARC
Implemente e valide políticas de Sender Policy Framework, DomainKeys Identified Mail e DMARC que impeçam a falsificação de domínios e o phishing.
Autenticação de E-mail: SPF, DKIM e DMARC é uma aula grátis de Security+ Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Security+ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Security+ Academy inclui 4 aulas no total.
O problema da falsificação de e-mails
O protocolo SMTP básico (projetado na década de 1970) não possui autenticação integrada do remetente. Qualquer servidor de e-mail pode alegar enviar uma mensagem de qualquer domínio — uma técnica chamada falsificação de e-mail. Os invasores exploram isso para enviar e-mails de phishing que parecem vir de organizações legítimas (seu banco, seu CEO ou um fornecedor conhecido). Três padrões de autenticação de e-mail baseados em DNS foram desenvolvidos para tratar desse problema: SPF, DKIM e DMARC. Cada um aborda um aspecto diferente da falsificação, e eles funcionam melhor quando implantados em conjunto.
Sender Policy Framework (SPF)
O SPF é um registro TXT do DNS que especifica quais servidores de e-mail estão autorizados a enviar mensagens em nome de um domínio. Quando um servidor de e-mail receptor recebe uma mensagem que afirma ser de example.com, ele consulta o registro SPF de example.com e verifica se o endereço IP do servidor remetente está listado. Se o IP não estiver autorizado, a mensagem poderá ser marcada como spam ou rejeitada. O SPF verifica o endereço From do envelope (o comando SMTP MAIL FROM), e não o cabeçalho From exibido aos usuários.
# SPF DNS TXT record for example.com
# Authorize Google Workspace + SendGrid + company IP
example.com. TXT 'v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.10 -all'
# Mechanism meanings:
# include: authorize another domain's SPF record
# ip4: authorize specific IPv4 address/range
# ip6: authorize specific IPv6 address
# -all FAIL (reject) mail from non-listed sources
# ~all SOFTFAIL (accept but mark as spam)
# ?all NEUTRAL (no policy stated)Limitações do SPF
O SPF tem duas limitações significativas. Primeiro, o encaminhamento interrompe o SPF: quando um e-mail é encaminhado, o IP do servidor de encaminhamento não está no registro SPF do domínio original, fazendo o SPF falhar em mensagens encaminhadas legitimamente. Segundo, o SPF autentica apenas o From do envelope (invisível para os usuários), e não o cabeçalho From visível nos clientes de e-mail. Os invasores ainda podem falsificar o cabeçalho From visível usando um From do envelope que passa no SPF — por isso, o SPF sozinho é insuficiente. O DKIM e o DMARC tratam dessas lacunas.
DomainKeys Identified Mail (DKIM)
O DKIM adiciona uma assinatura criptográfica aos e-mails enviados. O servidor de e-mail remetente usa uma chave privada para assinar cabeçalhos específicos do e-mail e o corpo da mensagem, adicionando um cabeçalho DKIM-Signature. A chave pública é publicada como um registro TXT do DNS em um subdomínio seletor. Os servidores receptores obtêm a chave pública e verificam a assinatura, confirmando que o e-mail não foi alterado durante o trânsito e que se originou de um servidor com acesso à chave privada. Diferentemente do SPF, as assinaturas DKIM sobrevivem ao encaminhamento porque são transportadas nos cabeçalhos do e-mail.
# DKIM DNS TXT record (selector: 'google')
google._domainkey.example.com. TXT \
'v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN...'
# DKIM-Signature header in email:
DKIM-Signature: v=1; a=rsa-sha256; d=example.com;
s=google; h=from:to:subject:date;
bh=<body_hash>; b=<signature>
# Verification:
# 1. Extract 'b=' (signature)
# 2. Fetch public key at google._domainkey.example.com
# 3. Verify signature over 'h=' headers + body hashSeletores DKIM e rotação de chaves
O DKIM usa seletores para permitir várias chaves públicas simultâneas para um domínio — algo útil para executar vários serviços de e-mail (Google Workspace e uma plataforma de marketing) ou fazer a rotação de chaves sem interrupções. O nome do seletor é incluído no cabeçalho DKIM-Signature para que os servidores receptores saibam qual registro DNS consultar. As organizações devem alternar as chaves DKIM anualmente ou quando houver suspeita de comprometimento de uma chave. Comprimento da chave: recomenda-se usar chaves RSA de no mínimo 2048 bits; chaves de 1024 bits estão obsoletas e podem ser quebradas com recursos computacionais modernos.
DMARC: autenticação de mensagens baseada em domínio
O DMARC (Autenticação, Relatórios e Conformidade de Mensagens Baseados em Domínio) baseia-se no SPF e no DKIM, acrescentando: uma verificação de alinhamento (o domínio no cabeçalho From visível deve estar alinhado com o domínio autenticado pelo SPF ou pelo DKIM) e uma política que informa aos servidores receptores o que fazer quando as mensagens falham. As políticas DMARC são none (somente monitorar), quarantine (entregar na pasta de spam) ou reject (não entregar). O DMARC também permite relatórios agregados (RUA) e relatórios forenses (RUF), enviados de volta ao proprietário do domínio para fornecer visibilidade sobre quem está enviando mensagens em seu nome.
# DMARC DNS TXT record
_dmarc.example.com. TXT \
'v=DMARC1; p=reject; sp=reject; \
pct=100; \
rua=mailto:dmarc-reports@example.com; \
ruf=mailto:forensic@example.com; \
adkim=s; aspf=s'
# p=reject : reject failing messages (strongest)
# pct=100 : apply to 100% of messages
# adkim=s : strict DKIM alignment
# aspf=s : strict SPF alignment
# rua= : aggregate report destinationAlinhamento de DMARC
O alinhamento é o que torna o DMARC eficaz contra a falsificação de cabeçalhos. No alinhamento do SPF, o domínio do campo From do envelope SMTP deve corresponder ao domínio do cabeçalho From visível. No alinhamento do DKIM, o domínio de assinatura (d= em DKIM-Signature) deve corresponder ao domínio do cabeçalho From. No modo estrito, os domínios devem corresponder exatamente. No modo relaxado, subdomínios são aceitos. Um e-mail passa pelo DMARC se passar pelo SPF OU pelo DKIM com o alinhamento correto — não é necessário passar por ambos. Essa combinação elimina a brecha que o SPF sozinho deixa aberta para a falsificação do cabeçalho visível.
# DMARC alignment example
Envelope From: attacker@legit.com <- SPF may PASS for legit.com
From header : spoofed@example.com <- VISIBLE to user
# Without DMARC: SPF passes (envelope from legit.com)
# User sees spoofed@example.com and trusts it
# With DMARC on example.com:
# SPF alignment check: legit.com != example.com -> FAIL
# DKIM: attacker has no private key for example.com -> FAIL
# DMARC result: FAIL -> message rejected per policyImplantação do DMARC em etapas
As organizações devem implantar o DMARC progressivamente para evitar interromper e-mails legítimos. Etapa 1: implante SPF e DKIM em todos os fluxos de e-mail. Etapa 2: publique um registro DMARC p=none com relatórios RUA. Analise os relatórios (ferramentas: DMARC Analyzer, dmarcian) para descobrir todas as fontes legítimas de envio durante 2 a 4 semanas. Etapa 3: mude para p=quarantine; pct=10, aumentando gradualmente o pct até 100%. Etapa 4: mude para p=reject quando todos os fluxos legítimos passarem. Adotar reject às pressas, antes de descobrir todos os fluxos de e-mail, faz com que e-mails legítimos sejam rejeitados.
# DMARC rollout stages
Stage 1: p=none; pct=100 (monitoring only)
Stage 2: p=quarantine; pct=10 (10% to spam)
Stage 3: p=quarantine; pct=100 (all to spam)
Stage 4: p=reject; pct=100 (block at MTA)
# Monitor RUA reports between each stage
# Look for legitimate sources failing alignment
# Common gotchas:
# - Marketing platforms sending as your domain
# - IT ticketing systems
# - Automated notification services
# - Third-party CRM toolsBIMI: indicadores de marca para identificação de mensagens
O BIMI é um padrão emergente que se baseia no DMARC. Quando um domínio tem uma política DMARC de quarantine ou reject, os clientes de e-mail (Gmail, Apple Mail) podem exibir o logotipo verificado da marca ao lado do nome do remetente na caixa de entrada. O BIMI exige um Verified Mark Certificate (VMC) emitido por uma autoridade aprovada, que confirme a propriedade da marca registrada. Embora o BIMI ainda não faça parte do exame Security+, ele representa a direção da autenticação de e-mail: tornar visualmente distinguíveis, de imediato, os remetentes verificados e os remetentes falsificados.
SPF+DKIM+DMARC trabalhando em conjunto
Os três padrões formam um sistema completo de autenticação de e-mail. O SPF verifica se o servidor de envio está autorizado pelo proprietário do domínio. O DKIM verifica a integridade da mensagem e se a organização remetente possui a chave privada. O DMARC vincula ambos ao cabeçalho From visível, aplica uma política em caso de falhas e fornece relatórios. Nenhum padrão isolado é suficiente: o SPF sozinho não impede a falsificação do cabeçalho visível; o DKIM sozinho não exige a rejeição de falhas; e o DMARC sozinho, sem SPF ou DKIM, não tem nada para verificar. Os três devem ser implantados em conjunto para oferecer proteção completa contra a falsificação de domínios.
# Email authentication check order
1. Receiving MTA receives message
2. SPF check: is sending IP authorized? (envelope From)
3. DKIM check: is signature valid? (using public key DNS)
4. DMARC check:
a. Did SPF pass with alignment? OR
b. Did DKIM pass with alignment?
-> If YES: PASS (deliver normally)
-> If NO: apply DMARC policy (none/quarantine/reject)
5. Reporting: send aggregate data to rua= addressBanners de Email externo
Uma medida prática de defesa em profundidade contra phishing e BEC é adicionar um banner de aviso de e-mail externo a toda mensagem originada fora da organização. Esse banner — normalmente inserido pelo SEG — alerta os funcionários de que o e-mail veio de um remetente externo, mesmo quando o nome exibido parece ser o de um colega ou executivo. Os banners são especialmente eficazes para sinalizar tentativas de BEC nas quais o invasor usa um domínio semelhante ou falsifica o nome exibido. O banner deve ser visualmente distinto (um cabeçalho ou rodapé colorido) e incluir instruções para denunciar mensagens suspeitas.
# Example external email banner (SEG inserts this)
# --- EXTERNAL EMAIL ---
# This message was sent from outside the organization.
# Do not click links or open attachments unless
# you expected this email and trust the sender.
# Report suspicious email: phishing@company.com
# ----------------------
# Proofpoint SEG: add disclaimer via content filter
# Match: Header 'X-MS-Exchange-Organization-SCL' absent
# Action: Prepend HTML banner to message bodyVerificação rápida
Teste sua compreensão dos conceitos do CompTIA Security+ (SY0-701) abordados nesta lição.
Recapitulação da lição
Nesta lição, você aprendeu que o SPF usa registros DNS TXT para autorizar IPs de envio, mas verifica apenas o From do envelope, não o cabeçalho visível; o DKIM adiciona assinaturas criptográficas que verificam a integridade da mensagem e sobrevivem ao encaminhamento; e o DMARC vincula SPF e DKIM ao cabeçalho From visível por meio de verificações de alinhamento e de uma política aplicável (none/quarantine/reject), além de fornecer relatórios. A seguir, exploraremos gateways seguros de e-mail e controles antispam.
Perguntas Frequentes
A aula “Autenticação de E-mail: SPF, DKIM e DMARC” é grátis?
Sim — o texto completo de “Autenticação de E-mail: SPF, DKIM e DMARC” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Security+ Academy, atualize para CoddyKit PRO. O curso de Security+ Academy inclui 4 aulas no total.
O que vou aprender em “Autenticação de E-mail: SPF, DKIM e DMARC”?
Implemente e valide políticas de Sender Policy Framework, DomainKeys Identified Mail e DMARC que impeçam a falsificação de domínios e o phishing. Você pratica Security+ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Security+ Academy?
Nenhuma experiência prévia é necessária. Security+ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Autenticação de E-mail: SPF, DKIM e DMARC”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Security+ Academy?
Sim. Cada aula de Security+ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Autenticação de E-mail: SPF, DKIM e DMARC
- Gateways Seguros de E-mail e Controles Antispam
- Filtragem de Conteúdo Web e Sinkholes de DNS
- Inspeção de SSL/TLS e Ataques Man-in-the-Browser