Como um e-mail prova que é de verdade (e como o golpista tenta enganar)
Explicação do zero, sem precisar saber nada de técnico. No fim tem o que eu fiz de verdade no seu servidor, com os resultados reais, um simulador para você brincar e um glossário com cada termo.
Abrir a ferramenta de teste ao vivoEscolha um domínio, finja ser o chefe e veja o SPF/DKIM/DMARC reagir de verdade.SPF
A lista de carteiros autorizados a entregar cartas em seu nome.
DKIM
O lacre de cera com seu brasão. Se alguém mexer na carta, o lacre quebra.
DMARC
A regra do chefe: o que fazer com a carta que não passou nos dois testes.
O problema: qualquer um escreve qualquer remetente
O e-mail foi inventado nos anos 80, quando a internet era meia dúzia de universidades que confiavam umas nas outras. Ele não tem verificação nenhuma de fábrica. É como uma carta de papel: você pode escrever "De: Banco do Brasil" no verso e colocar no correio. O carteiro entrega sem perguntar nada.
O detalhe que confunde todo mundo: existem DOIS remetentes
Todo e-mail tem um envelope (que só os servidores veem) e uma carta dentro (o que você vê no Gmail/Outlook). Cada um tem seu próprio "De:", e eles podem ser diferentes.
É o endereço de devolução, como o remetente impresso pelo correio. Também chamado de Return-Path. O SPF confere este aqui.
É o que aparece no seu celular. É aqui que o golpista mente, porque é o que a vítima lê. O DMARC protege este aqui.
Os 3 guardas, um por um
Os três moram no DNS do seu domínio (a "lista telefônica" da internet, que você gerencia no Cloudflare). Qualquer servidor do mundo consulta o DNS do seu domínio para saber as suas regras. Abaixo estão os seus registros reais, consultados agora.
SPF: a lista de carteiros autorizados
Sender Policy FrameworkVocê publica: "só estes computadores (IPs) podem mandar e-mail em nome do meu domínio". Quando chega um e-mail, o servidor que recebe olha de qual IP ele veio e confere na sua lista.
# skiphunter.com.br (real) v=spf1 ip4:179.197.68.146 ~all # agenciaxara.com.br (real) v=spf1 mx ip4:179.197.68.146 ip4:2.25.231.5 ~all
| Pedaço | Significa |
|---|---|
v=spf1 | "isto é um registro SPF, versão 1" |
ip4:179.197.68.146 | Este IP pode mandar. É o seu servidor Mailcow. |
mx | Os servidores que recebem e-mail do domínio também podem mandar. |
~all hoje | Softfail: "qualquer outro IP é suspeito, mas aceita assim mesmo". É um "talvez". |
-all ideal | Hardfail: "qualquer outro IP é fraude". É um "não" firme. |
DKIM: o lacre de cera
DomainKeys Identified MailSeu servidor tem uma chave secreta (privada) que só ele conhece. Ao enviar, ele faz uma "impressão digital" do e-mail (assunto, remetente, corpo) e assina com essa chave. No DNS fica a chave pública, que qualquer um usa para conferir a assinatura, mas que não serve para criar uma nova.
dkim=pass.dkim=fail ou dkim=none.# Onde mora a chave pública (real): dkim._domainkey.agenciaxara.com.br v=DKIM1; k=rsa; t=s; s=email; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC… # O lacre que o seu servidor colou no e-mail do teste A (real) DKIM-Signature: d=agenciaxara.com.br; s=dkim; a=rsa-sha256; bh=…; # impressão digital do corpo b=X4RM65O2… # a assinatura em si
d= é o domínio dono do lacre, s= é o seletor (o nome da gaveta onde a chave pública está no DNS), bh= é a impressão digital do corpo e b= é a assinatura.
DMARC: a regra do chefe
Domain-based Message Authentication, Reporting and ConformanceO DMARC junta os dois e faz a pergunta que realmente importa: "o domínio que passou no SPF ou no DKIM é o mesmo que aparece no From que a pessoa lê?" Isso se chama alinhamento. Se pelo menos um dos dois passar e estiver alinhado, o DMARC passa. Se não, ele aplica a política que você escolheu.
# agenciaxara.com.br (real) v=DMARC1; p=none; rua=mailto:contato@agenciaxara.com.br; adkim=r; aspf=r
| Política (p=) | O que o servidor do destinatário faz com o e-mail falso |
|---|---|
none hoje | Nada. Só anota e te manda um relatório. Modo "observar". |
quarantine | Manda para o Spam. |
reject ideal | Recusa na porta. O e-mail nem chega. |
rua= é para onde vão os relatórios diários ("hoje 3 servidores tentaram mandar em seu nome"). adkim=r; aspf=r é alinhamento relaxado: aceita subdomínio (mail.agenciaxara… conta como agenciaxara…).
O experimento que eu fiz de verdade
Em vez de teoria, montei um laboratório usando só coisas suas. Ninguém de fora foi envolvido.
A caixa cobaia
Criei lab-dmarc@agenciaxara.com.br no seu Mailcow (VPS 179.197.68.146). É quem recebe os testes.
O remetente honesto
O próprio Mailcow, com login e senha. É o servidor que está na lista do SPF.
O "golpista"
Esta VPS do Lotepro (179.198.126.96). Ela não está no SPF de nenhum domínio seu, igual a um golpista de verdade.
Passo a passo do que eu fiz
~all e p=none.lab-dmarc@agenciaxara.com.br pela API do Mailcow.@agenciaxara.com.br. O Mailcow recusou na hora, porque esse domínio mora nele e ele sabe que ninguém de fora pode usar.diretoria@skiphunter.com.br, um domínio que não é hospedado como caixa no Mailcow. Ele aceitou a conversa, mas depois de uns 5 min de espera (greylisting).O resultado, lado a lado
Ver os cabeçalhos reais do Teste B, linha por linha
Authentication-Results: mail.agenciaxara.com.br; spf=softfail smtp.mailfrom=diretoria@skiphunter.com.br # IP 179.198.126.96 fora da lista dkim=none # nenhum lacre dmarc=fail reason="No valid SPF, No valid DKIM" header.from=skiphunter.com.br (policy=none) # detectou, mas a regra é só observar X-Spam: Yes X-Spamd-Result: default: False [10.30 / 15.00]; VIOLATED_DIRECT_SPF(+3.50) # a punição mais pesada: mandou direto de IP não autorizado …demais sinais de suspeita somados… # → movido para a pasta Junk
Authentication-Results é o "laudo" que o servidor escreve no topo do e-mail. Você pode ver isso em qualquer e-mail no Gmail em Mais > Mostrar original.
Três defesas extras que o seu Mailcow mostrou
Coisas que nenhum texto teórico conta, mas que apareceram no teste.
Recusa na porta
Ao tentar forjar @agenciaxara.com.br, a resposta foi:
550 Sender address rejected
Ele hospeda esse domínio, então sabe que nenhum estranho pode usá-lo. Bloqueio total.
Greylisting
Para remetente desconhecido, o servidor diz "tente de novo daqui a pouco". Servidor sério tenta de novo. Robô de spam, com pressa, geralmente desiste.
No teste, segurou uns 5 minutos.
rspamd (nota de spam)
Um "fiscal" que soma pontos de suspeita: SPF ruim, sem DKIM, texto estranho, IP de má fama. Passou de um limite, vai para o spam.
O forjado tirou 10,3.
none). Se o golpista caprichasse (IP limpo, texto bem escrito), a nota poderia ficar baixa e ele entraria na Caixa de Entrada. Além disso, em outros provedores (Gmail, Outlook, o e-mail dos seus clientes) quem decide é o fiscal deles, não o seu. Com p=reject, você manda no mundo todo: "recusem qualquer coisa falsa em meu nome".As brechas famosas, em linguagem simples
Por que mesmo com os três guardas já deu para enganar Google, bancos e governos.
Replay do DKIM: reaproveitar um lacre verdadeiro
O lacre DKIM prova que o conteúdo não mudou, mas não diz para quem o e-mail foi. Então um golpista consegue fazer o Google mandar para ele mesmo um e-mail legítimo e assinado, com algum texto que ele controla (por exemplo, colocando a mensagem do golpe no nome de um app ou de um documento compartilhado).
Depois ele pega esse e-mail com lacre verdadeiro e reenvia para milhares de vítimas. O lacre continua íntegro, o DKIM passa, o DMARC passa. A vítima vê "veio do Google, verificado".
x=, expira em horas), trocar a chave de tempos em tempos e nunca deixar texto do usuário dentro de e-mail assinado pela sua marca.SPF compartilhado: autorizar os Correios inteiros
Muita empresa coloca no SPF include:spf.protection.outlook.com, que quer dizer "qualquer servidor do Outlook pode mandar em meu nome". Só que esses servidores são os mesmos de todo cliente do Outlook, inclusive o golpista.
Pesquisadores da Universidade da Califórnia em San Diego (estudo "Forward Pass", USENIX Security 2023) acharam caminhos em que o e-mail falso saía pelos servidores da Microsoft sem a checagem interna. Quem recebia via: "veio do Outlook, e a empresa autoriza o Outlook". SPF passava.
179.197.68.146 e 2.25.231.5), sem serviço compartilhado. Essa brecha não te pega.Confiança em quem encaminha
Quando alguém encaminha automaticamente o e-mail (ex.: da faculdade para o Gmail), o SPF quebra, porque agora quem entrega é o servidor da faculdade. Para não jogar tudo isso no spam, os grandes provedores afrouxam a regra para repassadores conhecidos.
O golpista manda o falso para uma conta dele num repassador desses, que encaminha para a vítima. O destino pensa "veio de repassador confiável" e deixa passar. No estudo, isso permitiu se passar por dezenas de milhares de domínios. Os provedores foram avisados e corrigiram boa parte.
Simulador: o que acontece com o e-mail falso?
Escolha as configurações e o tipo de golpista. O resultado mostra o que um servidor como Gmail ou Outlook faria.
Glossário: cada termo, em uma frase
Próximos passos sugeridos
Tudo reversível, feito no Cloudflare. Nada foi alterado ainda: só o teste e a caixa lab-dmarc.
~all → -all e DMARC p=none → p=quarantine, com rua= para receber relatórios.p=reject.agenciaxara.com.br por último, porque é o que mais manda e-mail.