Assinatura DKIM
Assine mensagens criptograficamente.
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 messageAnatomia 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 itselfO 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 keyO processo de verificação
Ao receber a mensagem, o servidor de verificação inverte o processo:
- Ler o domínio
d=e o seletors=na assinatura DKIM - Buscar a chave pública em
selector._domainkey.domainno 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.
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.