Cyber Security Academy · Aula

Assinatura DKIM

Assine mensagens criptograficamente.

Aula 3 de 413 etapas

Assinatura DKIM é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.

O que o DKIM oferece

DKIM (DomainKeys Identified Mail) anexa uma assinatura criptográfica às mensagens de e-mail enviadas. Um destinatário pode verificar essa assinatura para confirmar duas coisas:

  • A mensagem foi realmente autorizada pelo domínio que a assinou
  • O conteúdo assinado não foi alterado durante o envio

Enquanto o SPF autoriza servidores, o DKIM autentica a própria mensagem, e essa assinatura sobrevive ao encaminhamento.

Noções básicas de criptografia de chave pública

O DKIM usa criptografia assimétrica. O proprietário do domínio possui um par de chaves:

  • A chave privada permanece secreta no servidor de e-mail que envia as mensagens e é usada para assinar
  • A chave pública é publicada no DNS e pode ser usada por qualquer pessoa para verificar

Como somente o detentor da chave privada pode produzir uma assinatura válida, uma verificação bem-sucedida comprova que a mensagem veio do domínio legítimo.

O processo de assinatura

Quando o servidor de envio despacha uma mensagem, ele calcula uma assinatura sobre determinados cabeçalhos e sobre o corpo e, em seguida, adiciona um cabeçalho de assinatura DKIM.

Steps on the sender side:
1. Select headers to sign (From, Subject, Date, ...)
2. Hash the message body
3. Build the DKIM-Signature header with those fields
4. Sign the hash with the private key
5. Attach the signature to the outgoing message

Anatomia de um cabeçalho de assinatura DKIM

O cabeçalho de assinatura DKIM contém os parâmetros necessários para que um destinatário faça a verificação:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
  d=company.com;        domain that signed
  s=mail2024;           selector (which key)
  h=from:subject:date;  signed headers
  bh=base64bodyhash;    body hash
  b=base64signature     the signature itself

O seletor e a chave pública no DNS

O seletor (a etiqueta s=) informa aos destinatários qual chave pública buscar. A chave fica em um local previsível do DNS:

Location:  <selector>._domainkey.<domain>

Example DNS TXT record:
mail2024._domainkey.company.com.  IN  TXT \
  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBA..."

  p = the base64-encoded public key

O processo de verificação

Ao receber a mensagem, o servidor de verificação inverte o processo:

  • Ler o domínio d= e o seletor s= na assinatura DKIM
  • Buscar a chave pública em selector._domainkey.domain no DNS
  • Recalcular o hash do corpo e o hash dos cabeçalhos
  • Usar a chave pública para verificar se a assinatura corresponde

Se a assinatura for válida, o DKIM será aprovado. Se a mensagem tiver sido modificada ou assinada com a chave incorreta, ela falhará.

O hash do corpo detecta adulterações

O campo de hash do corpo é o que permite detectar adulterações no DKIM. O remetente calcula o hash do corpo e inclui esse hash nos dados assinados.

Se alguém alterar o corpo da mensagem durante o envio, o hash recalculado pelo destinatário não corresponderá ao bh assinado, e a verificação falhará. É assim que o DKIM fornece integridade, e não apenas autenticação da origem.

Canonicalização

Os servidores de e-mail ao longo do caminho costumam fazer pequenas alterações inofensivas, reorganizando as quebras de linha ou ajustando os espaços em branco. Para evitar que essas alterações invalidem assinaturas válidas, o DKIM usa a canonicalização (a etiqueta c=).

  • simples — rigorosa; quase qualquer alteração invalida a assinatura
  • flexível — tolera alterações nos espaços em branco e nas maiúsculas e minúsculas dos cabeçalhos

A maioria das implementações usa relaxed/relaxed para garantir confiabilidade em diferentes infraestruturas de e-mail.

Os seletores permitem a rotação de chaves

Os seletores não são apenas rótulos; eles permitem a rotação segura de chaves. Periodicamente, substitua as chaves DKIM para limitar a exposição caso uma delas vaze.

Processo de rotação:

  • Gerar um novo par de chaves com um novo seletor (por exemplo, mail2025)
  • Publicar a nova chave pública no DNS
  • Configurar o assinador para usar o novo seletor
  • Manter o seletor antigo no DNS até que as mensagens em trânsito sejam entregues e, então, removê-lo

Usar um seletor novo evita um intervalo durante o qual as assinaturas não possam ser verificadas.

O DKIM sobrevive ao encaminhamento

Ao contrário do SPF, o DKIM sobrevive ao encaminhamento. A assinatura acompanha a mensagem; portanto, desde que os cabeçalhos e o corpo assinados não sejam modificados, uma mensagem encaminhada continuará sendo verificada.

Isso complementa perfeitamente a fragilidade do SPF. Quando uma mensagem é encaminhada, o SPF pode falhar porque o IP de conexão mudou, mas o DKIM ainda pode ser aprovado, permitindo que o DMARC aceite a mensagem legítima.

Limitações do DKIM

O DKIM é poderoso, mas não é completo por si só:

  • Ele comprova que um domínio assinou a mensagem, mas não garante que o domínio assinante corresponda ao cabeçalho From visível; isso é função do alinhamento do DMARC
  • Um invasor pode assinar mensagens usando uma chave DKIM válida do próprio domínio
  • O vazamento de uma chave privada permite que um invasor falsifique assinaturas válidas até que a chave seja retirada por meio de uma rotação

O DKIM precisa ser combinado com o DMARC para ser eficaz contra falsificações.

Verificação rápida

Teste sua compreensão sobre DKIM.

Recapitulação

Você aprendeu como o DKIM assina mensagens:

  • O DKIM anexa uma assinatura criptográfica que comprova a origem e a integridade
  • Uma chave privada assina a mensagem no servidor; a chave pública é publicada no DNS sob um seletor
  • O hash do corpo detecta adulterações; a canonicalização tolera alterações inofensivas
  • Os seletores permitem a rotação segura de chaves, e o DKIM sobrevive ao encaminhamento quando o SPF falha
  • O DKIM ainda precisa do alinhamento do DMARC para vincular a assinatura ao From visível

Em seguida, você unirá SPF e DKIM usando a política e os relatórios do DMARC.

Grátis para começar

Aprenda Cyber Security Academy com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
76
Aulas
303

Perguntas Frequentes

A aula “Assinatura DKIM” é grátis?

Sim — o texto completo de “Assinatura DKIM” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.

O que vou aprender em “Assinatura DKIM”?

Assine mensagens criptograficamente. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cyber Security Academy?

Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Assinatura DKIM”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cyber Security Academy?

Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Como funciona a falsificação de e-mails
  2. Registros SPF
  3. Assinatura DKIM
  4. Política e relatórios DMARC
← Voltar para Cyber Security Academy