DKIM (correio identificado por DomainKeys)

E-mail e segurança
Um método de autenticação de e-mail que adiciona uma assinatura digital aos e-mails enviados, permitindo que os destinatários verifiquem se a mensagem não foi alterada.
← Voltar ao Glossário

O que é DKIM?

DKIM (DomainKeys Identified Mail) é um método de autenticação de email que permite que o servidor remetente assine digitalmente mensagens de saída. O servidor receptor pode então verificar essa assinatura usando uma chave pública publicada em DNS, confirmando que o email não foi modificado em trânsito e realmente originou do domínio reclamado.

Como DKIM Funciona

1. Geração de Chave: Proprietário de domínio gera um par de chaves pública/privada

2. Publicação de DNS: Chave pública é publicada como um registro TXT

3. Assinatura de Mensagem: Emails de saída são assinados com a chave privada

4. Verificação de Assinatura: Servidor receptor recupera chave pública e verifica assinatura

O Processo de Assinatura

Quando um email é enviado:

1. Servidor de email calcula um hash dos headers da mensagem e corpo

2. Hash é criptografado com a chave privada (criando a assinatura)

3. Assinatura é adicionada como um header DKIM-Signature

4. Email é transmitido

O Processo de Verificação

Quando um email é recebido:

1. Servidor extrai o header DKIM-Signature

2. Encontra seletor e domínio (s=seletor; d=domínio.com)

3. Consulta DNS para registro TXT selector._domainkey.domínio.com

4. Usa chave pública para descriptografar a assinatura

5. Calcula seu próprio hash da mensagem

6. Compara: correspondência = pass, não corresponde = fail

Formato de Registro DKIM

Registros DKIM são registros TXT em um subdomínio específico:

seletor._domainkey.example.com.    IN    TXT    "v=DKIM1; k=rsa; p=MIGfMA0..."

Componentes de Registro

TagDescriçãoExemplo
vVersãov=DKIM1
kTipo de chavek=rsa
pChave pública (base64)p=MIGfMA0GCSqG...
tFlags (opcional)t=y (modo testing)
hAlgoritmos hashh=sha256

Seletores

Seletores permitem múltiplas chaves DKIM por domínio:

google._domainkey.example.com       # Google Workspace

s1._domainkey.example.com # Sendgrid

mailchimp._domainkey.example.com # Mailchimp

Cada serviço de email fornece seu próprio seletor e chave.

Header de Assinatura DKIM

Uma assinatura DKIM parece:

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=google;

c=relaxed/relaxed; q=dns/txt;

h=from:to:subject:date:message-id;

bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;

b=AuUoFEfDxTDkHlLXSZEpZj79...

Campos principais:

Configurando DKIM

Para Google Workspace

1. Vá para Admin Console → Apps → Gmail → Authenticate email

2. Gere chave DKIM (2048-bit recomendado)

3. Adicione registro TXT fornecido pelo Google

4. Ative assinatura DKIM

Para Serviços de Terceiros

A maioria dos serviços de email (SendGrid, Mailchimp, etc.) fornece:

1. Um registro CNAME para adicionar (para sua chave gerenciada)

2. Ou um registro TXT com a chave pública

Exemplo (SendGrid):

s1._domainkey.example.com    CNAME    s1.domainkey.sendgrid.net

Verificando DKIM

Envie um email de teste para um serviço que mostra headers (Gmail mostra resultados de autenticação). Usando linha de comando:
dig google._domainkey.example.com TXT
Usando DomScan:
curl "https://domscan.net/v1/health?domain=example.com"

# Relata status DKIM baseado em seletores comuns

Melhores Práticas de DKIM

Use Chaves de 2048-bits

Chaves mais antigas de 1024-bits são cada vez mais vulneráveis. A maioria dos provedores agora padrão para 2048-bits.

Rotacione Chaves Periodicamente

Rotacione chaves DKIM anualmente ou após incidentes de segurança. Publique nova chave com novo seletor antes de mudar.

Assine Headers Importantes

Garanta que From, To, Subject, Date e Message-ID estejam inclusos em assinaturas.

Não Modifique Mensagens Assinadas

Serviços de mailing list ou encaminhamento que modificam conteúdo quebram DKIM. Use ARC (Authenticated Received Chain) para emails encaminhados.

Limitações de DKIM

DKIM sozinho não previne spoofing—apenas prova que uma mensagem não foi alterada. Um domínio pode ter DKIM válido enquanto atacantes enviam email falsificado não assinado. DMARC resolve isto especificando o que fazer com mensagens não assinadas.

Coloque este Conhecimento em Prática

Use a API DomScan para verificar disponibilidade de domínio, saúde e muito mais.