email

Email ferramentas

Como a autenticação de e-mail funciona de verdade: os dois endereços de remetente, o que SPF, DKIM e DMARC provam cada um, como ler uma cadeia Received e qual ferramenta usar em cabeçalhos ou em .eml.

3 ferramentas

§01 GUIA DO TEMA

Os dois endereços de remetente

Quase toda pergunta sobre falsificação de e-mail se resume a confundir duas identidades de remetente. O remetente do envelope é o endereço fornecido no comando SMTP MAIL FROM: as devoluções vão para lá, e os receptores o registram como Return-Path: ou como smtp.mailfrom= dentro de Received-SPF:. O remetente do cabeçalho é o campo From: dentro da mensagem — o único que um humano vê. Nada no SMTP exige que os dois coincidam.

O SPF autoriza o envelope: o IP que conectou tinha permissão para enviar pelo domínio do MAIL FROM? O DKIM autoriza o conteúdo: o remetente assina uma lista escolhida de campos de cabeçalho (h=) mais um hash do corpo (bh=) e publica a chave pública no DNS. Nenhum dos dois diz nada sobre o endereço que o destinatário lê. O DMARC fecha essa lacuna exigindo alinhamento — o domínio do From: visível precisa coincidir com o domínio do SPF ou com o domínio d= do DKIM. Um spf=pass em uma mensagem que se diz do seu banco é perfeitamente normal em um phishing; um dmarc=pass não é.

A terceira coisa a internalizar: não é você que está verificando nada disso. O MTA receptor executa as checagens no momento da entrega e escreve o veredito em um cabeçalho Authentication-Results:. Depois disso, o resultado é uma afirmação em um arquivo de texto — confiável só se o salto que a escreveu pertencer à sua própria infraestrutura. Um cabeçalho escrito pelo servidor de um estranho pode ter sido inventado por esse estranho. Leia de dentro para fora, a partir do seu MTA de fronteira, e trate tudo além dele como entrada não confiável.

O que cada mecanismo prova

MecanismoPublicado emAutenticaSobrevive ao encaminhamentoImpede falsificação do From: visível
SPFTXT no domínio do envelope, v=spf1 …O IP que conecta, para o MAIL FROMNão — o IP do relay não está listadoNão
DKIMTXT em <seletor>._domainkey.<d=>Cabeçalhos em h= + hash do corpo bh=Sim, a menos que o corpo ou o Subject sejam alteradosSó se estiver alinhado
DMARCTXT em _dmarc.<domínio>Alinhamento do From: com SPF ou DKIM, mais a políticaSim, através do DKIM que sobreviveuSim — esse é o propósito inteiro dele
ARCCabeçalhos ARC-Seal / ARC-Message-SignaturePreserva os resultados de origem através de um relayFeito exatamente para issoNão — e só seladores confiáveis contam
MTA-STS / DANETXT em _mta-sts.<domínio> / TLSATransporte: que o TLS era obrigatórionão se aplicaNão

Os tokens de resultado são vocabulário comum às três checagens, e cada um aponta para uma correção diferente:

TokenSignificadoCausa usual
passChecagem bem-sucedida
failNão autorizado, de forma dura (-all)Falsificação, ou um relay de envio ausente do registro
softfailNão autorizado, apenas marcar (~all)Registro deixado permissivo no meio de um rollout
neutralExplicitamente sem opinião (?all)A política não declara nada útil
noneNenhum registro publicadoO domínio nunca configurou SPF ou DMARC
temperrorFalha de DNS, pode ser repetidaResolvedor ou servidor autoritativo instável
permerrorO registro não pode ser avaliado>10 consultas DNS, v=spf1 duplicado, erro de sintaxe

Qual ferramenta para qual trabalho

Se você tem o bloco de cabeçalhos bruto — «Mostrar original» no Gmail, «Ver código-fonte» em outros lugares — comece pelo Analisador de Cabeçalhos de E-mail. Ele desdobra linhas de continuação, inverte a pilha Received: para que o salto 1 seja o servidor de origem e o último salto seja o seu provedor, e mostra os segundos entre saltos adjacentes, de modo que Delay: 1800s nomeia o relay que ficou meia hora sentado sobre a mensagem. Abaixo do caminho ele imprime Authentication-Results, Received-SPF, DKIM-Signature e ARC-Authentication-Results literalmente — o veredito do DMARC vive dentro do primeiro deles, como dmarc=pass (p=REJECT …). A análise fica no navegador, e esse é justamente o ponto: esses cabeçalhos carregam IPs de remetentes e nomes de host internos.

Com um arquivo .eml inteiro em vez disso — uma devolução, um anexo salvo, a saída de um formulário que envia e-mail — use o Visualizador EML. Ele separa cabeçalhos do corpo, decodifica as encoded-words da RFC 2047 (=?UTF-8?B?…?=) para que assuntos não ASCII sejam lidos como texto, e destaca From, To, Cc, Subject, Date, Reply-To e Message-ID. Um Reply-To em um domínio diferente do From: é um sinal clássico de fraude de e-mail corporativo. O corpo é exibido em bruto, então as fronteiras MIME continuam visíveis; passe partes em base64 pelo Base64 para ler uma delas.

Com apenas um domínio e nenhuma mensagem, vá para o DNS. O DNS Lookup resolve TXT (a sua string v=spf1), MX (roteamento, com prioridade) e mais, junto com o TTL que governa quanto tempo uma correção leva para valer — o hub de dns cobre cache em profundidade. É uma ferramenta de servidor: o nome do domínio vai para api.sitekits.dev para ser resolvido e não é armazenado. Ela aceita apenas rótulos de hostname, então nomes com sublinhado como _dmarc.example.com e selector._domainkey.example.com são rejeitados — leia esses com dig TXT _dmarc.example.com.

Para links dentro de uma mensagem suspeita, o Parseador de URL quebra uma URL em host, caminho e parâmetros de consulta decodificados sem nunca requisitá-la, e o Conversor IDN expõe domínios homográficos mostrando a forma xn-- que é realmente resolvida. Os dois rodam no navegador, e os dois estão selecionados na seleção para segurança ao lado do analisador de cabeçalhos e do visualizador de .eml. Carimbos de tempo dos saltos em fusos estrangeiros se alinham mais rápido com o Conversor de Fuso Horário — também local ao navegador, mas reunido na seleção para SRE e não na página de segurança. Antes de anexar evidências a um ticket, oculte os dados à mão — o Sanitizador HAR cobre exportações HAR, não cabeçalhos de e-mail.

Onde isso normalmente dá errado

p=none não protege nada

p=none apenas pede relatórios. Publicá-lo é o primeiro passo correto, mas até você chegar a p=quarantine ou p=reject, os receptores não aplicam política nenhuma em caso de falha. Confira o pct= também — um rollout parcial só aplica sobre aquela fração do e-mail.

Estourar o orçamento de dez consultas

include:, a, mx, ptr e redirect= custam consultas DNS cada um, e cadeias aninhadas de include: de remetentes SaaS somam as delas recursivamente. Passe de dez e o registro se torna permerror, que os receptores leem como nenhum SPF. Achate o registro ou remova fornecedores que não são usados.

Ler toda falha como um ataque

Encaminhamento e listas de discussão quebram a autenticação legitimamente: o IP do relay falha no SPF, e um prefixo [lista] no assunto ou um rodapé anexado invalida o hash do corpo do DKIM. Julgue pelo alinhamento e pelo relay que selou, não por um único fail.

Confiar em saltos que não são seus

Só linhas Received: e Authentication-Results: adicionadas no seu MTA de fronteira ou depois dele significam algo; saltos anteriores são texto controlado pelo atacante. Atrasos que saem negativos ou como são desvio de relógio ou carimbo de tempo ausente, não evidência.

Deixar domínios que não enviam abertos

Domínios estacionados e subdomínios que nunca enviam e-mail ainda precisam de v=spf1 -all, de um registro DMARC em _dmarc.<domínio> com p=reject e, de preferência, de um MX nulo (MX 0 .). O p= é a tag de política obrigatória: um registro que carrega apenas sp=reject é inválido, então os receptores não aplicam nada e o próprio domínio estacionado fica desprotegido. Acrescente sp=reject ao lado de p= quando você quiser declarar a política de subdomínio explicitamente — com sp= ausente, os subdomínios herdam p= de qualquer forma. Deixado aberto, o domínio é material de falsificação gratuito carregando a sua marca.

FAQ
O SPF é suficiente para impedir que alguém falsifique meu domínio?
Não. O SPF só autoriza o remetente do envelope (o MAIL FROM do SMTP), que o destinatário nunca vê. Um atacante pode passar no SPF em um domínio que ele controla enquanto coloca o seu domínio no cabeçalho From: visível. Só o DMARC amarra os dois, exigindo alinhamento entre o From: e o domínio do SPF ou do DKIM, e só p=quarantine ou p=reject faz os receptores agirem diante de uma falha.
Por que um e-mail legítimo falha no SPF depois de ser encaminhado?
O encaminhamento muda o IP que conecta, então o servidor receptor confere o IP do encaminhador contra o seu registro SPF e não o encontra listado. O DKIM normalmente sobrevive porque assina cabeçalhos e conteúdo do corpo em vez do caminho — a menos que uma lista de discussão reescreva o Subject ou acrescente um rodapé, o que quebra o hash do corpo. É por isso que o DMARC aceita um pass de qualquer um dos dois mecanismos, e por isso o ARC existe: para levar o veredito original através de um relay confiável.
Um domínio que nunca envia e-mail ainda precisa de SPF e DMARC?
Sim — um domínio estacionado e desprotegido é material de falsificação gratuito carregando a sua marca, e os atacantes procuram exatamente por eles. Publique v=spf1 -all, um registro DMARC em _dmarc.<domínio> com p=reject e, de preferência, um MX nulo (MX 0 .) para que o e-mail de entrada seja recusado de imediato. Atenção à tag de política: p= é obrigatória, então um registro que carrega apenas sp=reject é inválido e os receptores não aplicam nada. Acrescentar sp=reject ao lado de p= só declara a política de subdomínio explicitamente — com sp= ausente, os subdomínios herdam p= de qualquer forma.
O que dmarc=pass em Authentication-Results significa de fato?
Significa que o servidor de e-mail receptor verificou que o domínio do cabeçalho From: está alinhado com um domínio que passou no SPF ou no DKIM, e aplicou a política encontrada em _dmarc.<domínio>. É o veredito do receptor escrito na mensagem depois do fato, não uma assinatura que você possa reverificar a partir do texto. Confie nele apenas quando o salto que o escreveu for o seu próprio MTA de fronteira.
Por que meu registro SPF reporta permerror em vez de pass ou fail?
permerror significa que o registro não pôde ser avaliado. As causas usuais são exceder o limite de 10 consultas DNS que include:, a, mx e redirect= consomem, publicar dois registros TXT v=spf1 separados no mesmo nome, ou um erro de sintaxe como um ponto e vírgula perdido. Os receptores tratam permerror como SPF inutilizável, então uma política DMARC passa a depender inteiramente do DKIM.