DKIM - DomainKeys Identified Mail

DKIM (DomainKeys Identified Mail) é um método de autenticação de email que utiliza criptografia de chave pública para verificar a autenticidade da origem de um email e garantir que seu conteúdo não foi alterado durante o trânsito. Ao enviar um email, o servidor de email do remetente gera uma assinatura digital baseada no conteúdo do email usando uma chave privada. Essa assinatura é inserida no cabeçalho do email. O servidor de email do destinatário, ao receber o email, consulta o registro DNS do domínio do remetente para obter a chave pública correspondente e usa essa chave para validar a assinatura digital. Se a assinatura for válida, confirma-se que o email não foi modificado e é autêntico, aumentando a confiança no remetente e na integridade da mensagem recebida.

sequenceDiagram
    participant A as Servidor de e-mail do remetente
    participant C as Servidor de e-mail do destinatário
    participant B as DNS (exemplo.com)
    A->>C: Envia e-mail de "sender@exemplo.com" com assinatura DKIM
    C->>B: Consulta chave pública DKIM para "exemplo.com"
    B->>C: Retorna chave pública DKIM
    C->>C: Usa a chave pública para verificar a assinatura do e-mail
    alt Assinatura é válida
        C->>C: Marca e-mail como autêntico (Pass)
        C->>C: Aceita e entrega o e-mail
    else Assinatura não é válida
        C->>C: Marca e-mail como não autêntico (Fail)
        C->>C: Pode rejeitar ou marcar o e-mail
    end

Processo:

  • O Servidor de e-mail do remetente envia um e-mail que inclui um cabeçalho DKIM. O cabeçalho DKIM contém várias partes importantes:
    • v=1: Versão do DKIM.
    • a=rsa-sha256: Algoritmo de assinatura.
    • d=exemplo.com: Domínio do remetente.
    • s=selector: Seletor usado para localizar a chave pública específica no DNS.
    • bh=fakehash: Hash do corpo do e-mail.
    • b=signature: Assinatura digital do e-mail.
  • O Servidor de e-mail do destinatário consulta o DNS para a chave pública DKIM usando o seletor e o nome de domínio (exemplo: “selector._domainkey.exemplo.com”).
  • O DNS retorna o registro contendo a chave pública DKIM:
    • v=DKIM1: Versão do registro DKIM.
    • k=rsa: Tipo de chave.
    • p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD…: Chave pública propriamente dita.
  • O Servidor de e-mail do destinatário usa essa chave pública para verificar a assinatura digital encontrada no cabeçalho do e-mail. s Dependendo do resultado da verificação, o e-mail é aceito como autêntico ou marcado como não autêntico.