O que é o DKIM? DomainKeys Identified Mail explicado

O DKIM (DomainKeys Identified Mail) anexa uma assinatura criptográfica ao correio enviado, permitindo ao servidor receptor verificar que a mensagem veio realmente do seu domínio e não foi alterada em trânsito. Juntamente com o SPF e o DMARC, forma o trio padrão da autenticação de correio.

SPF, DKIM e DMARC em conjuntoRemetenteSPFTXTDKIMTXTDMARC_dmarcCaixapasspassp=
O SPF verifica o servidor que envia, o DKIM verifica a assinatura e o DMARC decide o que acontece quando um deles falha.

Como funciona o DKIM

O seu servidor de correio assina cada mensagem enviada com uma chave privada. A assinatura é acrescentada como cabeçalho DKIM-Signature. O servidor receptor procura a chave pública do seu domínio no DNS (publicada como registo TXT) e verifica se a assinatura corresponde.

  1. O seu servidor de correio gera um par de chaves pública/privada
  2. A chave pública é publicada como registo TXT num selector, por exemplo selector1._domainkey.seudominio.com
  3. Cada mensagem enviada é assinada com a chave privada, acrescentando um cabeçalho DKIM-Signature
  4. O servidor receptor obtém a sua chave pública do DNS usando o selector indicado no cabeçalho
  5. Recalcula a assinatura e compara — se corresponder, a mensagem é autêntica e não foi modificada

Registo DNS do DKIM

O registo fica num nome de anfitrião específico do selector, não na raiz do domínio:

selector1._domainkey.yourdomain.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGS..."

Etiquetas do registo DKIM

TagMeaning
vVersão, sempre DKIM1
kTipo de chave, quase sempre rsa
pA chave pública (codificada em base64)

O que é um «selector»?

O selector permite a um domínio publicar várias chaves DKIM ao mesmo tempo — útil ao rodar chaves ou ao usar vários fornecedores de correio. Cada fornecedor indica-lhe que selector usar (exemplos comuns: google, selector1, k1, mandrill).

Configurar o DKIM

  1. Active a assinatura DKIM no seu fornecedor de correio (Google Workspace, Microsoft 365, SendGrid, etc.) — é ele que gera o par de chaves
  2. Copie o registo TXT e o nome de anfitrião do selector que lhe fornecem
  3. Adicione o registo TXT ao seu DNS
  4. Aguarde a propagação e verifique depois junto do fornecedor ou com uma consulta DKIM

Porque precisa de SPF, DKIM e DMARC em conjunto

Cada um cobre uma lacuna diferente:

  • SPF autoriza que servidores podem enviar — mas quebra quando o correio é reencaminhado
  • DKIM prova que o conteúdo da mensagem não foi manipulado — sobrevive ao reencaminhamento, mas por si só não diz quem está autorizado a enviar
  • DMARC liga os dois, diz aos destinatários o que fazer quando ambos falham e dá-lhe visibilidade através dos relatórios

Problemas comuns

  • A assinatura quebra depois do reencaminhamento por listas de distribuição — algum software de listas reescreve o corpo ou o assunto, invalidando a assinatura. Isto é esperado e é exactamente por isso que o alinhamento DMARC aceita que passe o SPF OU o DKIM, não ambos.
  • Chave demasiado longa para uma única cadeia TXT — as chaves de 2048 bits precisam muitas vezes de ser divididas em várias cadeias entre aspas no mesmo registo TXT; a maioria dos fornecedores de DNS trata disso automaticamente.
  • Selector errado — se o selector no seu DNS não corresponder àquele com que o fornecedor de correio assina, a verificação falha silenciosamente.

Verifique a sua configuração DKIM

Use o verificador de segurança do correio para verificar SPF, DKIM e DMARC em conjunto:

Experimente no seu domínio

Veja a teoria na prática — execute Verificação de segurança do correio para o seu próprio domínio.