O DKIM resolve um problema que o SPF não consegue: verificar que o conteúdo do e-mail não foi alterado após o envio, e que ele realmente veio do servidor que diz ser o remetente. Para isso, usa criptografia assimétrica — o mesmo mecanismo que protege conexões HTTPS.

O servidor de envio mantém uma chave privada que assina matematicamente cada mensagem antes de enviá-la. A chave pública correspondente fica publicada no DNS. Qualquer servidor receptor pode buscar essa chave e verificar a assinatura — mas sem a chave privada, é impossível forjá-la.

Seletores: múltiplas chaves para múltiplos serviços

A chave pública DKIM é publicada em um subdomínio especial usando um seletor:

google._domainkey.seudominio.com

Os seletores permitem que um domínio tenha várias chaves DKIM ativas ao mesmo tempo — uma para o servidor de e-mail corporativo, outra para a ferramenta de marketing, outra para o CRM. Cada relay usa seu próprio par de chaves, e todos ficam identificáveis pelo seletor.

O RazTec Analyzer testa automaticamente os seletores mais comuns: default, google, mail, selector1 e outros 9 mais. Caso o seu seletor seja personalizado, use o campo "Seletor DKIM" na análise.

Tamanho de chave: por que 2048 bits?

A chave pública DKIM é armazenada em Base64 na tag p= do registro TXT. Chaves RSA de 1024 bits são consideradas inseguras pelos padrões atuais — podem ser fatoradas com hardware moderno. O recomendado é 2048 bits, e contextos de alta segurança já começam a adotar 4096 bits.

Revogação e NXDOMAIN

Quando uma chave privada é comprometida, a forma correta de revogar o seletor é publicar um registro com p= vazio. Isso sinaliza a qualquer servidor receptor que e-mails assinados com aquele seletor devem ser rejeitados.

Se o registro simplesmente não existe, o DNS retorna NXDOMAIN — o seletor nunca foi configurado. Nesse caso, o servidor receptor trata o e-mail como se o DKIM não estivesse presente, e a verificação DMARC pode falhar.