Alerta importante: O Google e o Yahoo vão exigir DMARC a partir de abril de 2024.
PowerDMARC

DKIM Assinatura: Uma cartilha sobre o que é, porque precisa dela, e como funciona?

assinatura DKIM

assinatura DKIM

Tempo de leitura: 6 min

Chaves de domínio Correio Identificado (DKIM) é um método de autenticação por e-mail que permite a uma organização assumir a responsabilidade por uma mensagem que foi enviada. Utiliza criptografia de chave pública para "assinar" digitalmente e-mails, provando aos destinatários que a mensagem foi enviada pelo proprietário do domínio. Os destinatários podem verificar a assinatura com a chave pública publicada do seu domínio para verificar a assinatura.

Este artigo examinará em pormenor o DKIM e dar-lhe-á uma visão geral de como este método de autenticação por correio electrónico funciona.

O que é o DKIM Assinatura?

DKIM significa DomainKeys Identified Mail (Correio identificado com DomainKeys). É um sistema de autenticação de correio electrónico que proporciona integridade e não repúdio através da utilização de assinaturas criptográficas. Ele, juntamente com DMARC pode ajudar a construir uma infra-estrutura robusta de protecção contra falsificações para os seus e-mails.

O protocolo DKIM cria uma assinatura criptográfica para cada mensagem enviada aos destinatários, bem como uma assinatura de domínio que é adicionada ao cabeçalho da mensagem.

Esta assinatura é utilizada pelo receptor para verificar que a mensagem foi efectivamente enviada pelo proprietário do domínio e não por outra pessoa. Verifica também que a mensagem não foi adulterada ao longo da sua viagem do remetente para o receptor.

Se não corresponder, então também não corresponde:

  1. A mensagem foi alterada durante a transmissão, ou
  2. A mensagem está a ser enviada em nome de outra pessoa que tem acesso à chave privada do servidor de envio

Em tais casos de assinaturas desajustadas, o DKIM impedirá que esses e-mails sejam entregues aos seus destinatários pretendidos porque não poderão validá-los como mensagens legítimas da sua marca.

Como funciona uma Assinatura DKIM?

As assinaturas DKIM funcionam através da inserção de uma assinatura digital no cabeçalho de um e-mail. Esta assinatura pode ser verificada pelo servidor receptor e utilizada para determinar se um correio electrónico foi ou não adulterado durante o trânsito.

O DKIM utiliza criptografia de chave pública, que se baseia num par de chaves: uma privada e uma pública. A chave pública é distribuída a quem a quiser, enquanto que a chave privada é mantida em segredo (normalmente pelo proprietário).

Quando assina um e-mail usando DKIM, a sua chave privada é usada para criar um hash do conteúdo da mensagem e depois encriptar esse hash com a chave pública do receptor. Este hash encriptado é então inserido no cabeçalho da sua mensagem, onde pode ser validado pelo receptor.

As Chaves da Assinatura DKIM

As assinaturas DKIM são geradas utilizando duas chaves criptográficas, uma pública e uma privada. A chave pública é publicada no DNS, enquanto que a chave privada é mantida em segredo.

Quando um e-mail é assinado, a chave privada é utilizada para gerar um hash da mensagem. Este hash é então encriptado com a chave pública e enviado juntamente com a própria mensagem.

Quando o destinatário recebe esta informação, utiliza a sua chave privada para decifrar o hash e verificar se corresponde ao conteúdo original da mensagem.

As Partes da Assinatura DKIM

Uma assinatura DKIM consiste em duas partes: um cabeçalho e o corpo. O cabeçalho contém informações sobre a identidade do remetente, incluindo o seu endereço de correio electrónico e chave pública. O corpo contém a mensagem que foi efectivamente enviada.

  1. Para calcular uma assinatura DKIM, primeiro pegue num hash MD5 do seu nome de domínio (por exemplo, "exemplo.com"), que é a sua chave pública.
  2. Depois, concatenar o seu nome de domínio com um hash SHA1 (por exemplo, "sha1(example.com)") e anexá-lo à mensagem original que foi enviada.
  3. Depois pegue noutro hash MD5 desta cadeia combinada (por exemplo, "md5(sha1(exemplo.com))") e anexe-o como cabeçalho no início da sua mensagem antes de o enviar para entrega.

Passos envolvidos na assinatura do DKIM

Começar com DKIM:

  1. O primeiro passo é a criação de uma chave privada, que é utilizada para assinar a mensagem.
  2. O segundo passo consiste em criar uma chave pública, que é utilizada na verificação da assinatura.
  3. O terceiro passo é gerar dois registos DNS TXT: um para a chave pública, e outro para o nome do selector.
  4. O quarto passo é publicar estes registos no seu ficheiro de zona DNS.

Passos envolvidos na assinatura do DKIM:

1. O remetente gera uma mensagem com um identificador único chamado função de hash criptográfico (normalmente SHA-256). Este identificador único chama-se um campo de cabeçalho DKIM-Signature e contém informação sobre quem o assinou e quando o fez.

2. O remetente acrescenta campos de cabeçalho adicionais à mensagem que contêm informação sobre:

3. Finalmente, os destinatários que queiram verificar estas assinaturas utilizarão a sua cópia da chave pública do seu remetente a partir dos seus registos DNS ou de um serviço intermédio como o SenderID ou Mailgun, depois utilizá-la-ão para validar quaisquer mensagens com cabeçalhos DKIM anexados.

Compreender as etiquetas utilizadas na assinatura DKIM

Este é um exemplo de como pode parecer um registo de assinatura do DKIM:

DKIM-Signature: v=1;

a=rsa-sha256;

s=jun2005.eng;

c=relaxado/relaxado;

d=example.com;

s=dkim;

t=1526555738;

bh=mhU6OJb5ldZf+z/pX9+0Nc4tj/lmyYHWbR8LgI2Q=;

h=Para:De:Assunto:Data:Identificação da mensagem:MIME-Versão:Tipo de conteúdo:Codificação de transferência de conteúdo;

b=s1sdZCzdX9vxocsMSlT7cOrYixl1g8wfkdzrVe7BGN6ZdPV9xu2A

v= Esta etiqueta diz-nos a versão do DKIM.

a= Isto especifica o algoritmo utilizado pelo signatário para gerar a sua chave pública. Pode ser um dos algoritmos RSA1_5, RSA-SHA1, ou RSASSA-PSS. Se esta etiqueta estiver em falta, então assume-se o RSA-SHA1.

c= Especifica o algoritmo de canonicalização utilizado para gerar hashes a partir de campos de cabeçalho, conforme requerido por [BCP14]. Isto é seguido por uma lista separada por vírgulas de 1 ou mais algoritmos de canonicalização (por exemplo, "c=relaxed"). Se esta etiqueta for omitida, então presume-se uma canonicalização relaxada.

d= Especifica que nome de domínio deve ser utilizado ao gerar assinaturas para mensagens enviadas por este servidor (ou outro destinatário).

s= A etiqueta "s" é a cadeia de selecção, que é utilizada por um servidor receptor para determinar que chave pública deve ser utilizada para verificar a assinatura.

t= A etiqueta de carimbo temporal é utilizada para gravar quando a assinatura foi criada e é tipicamente representada como um carimbo temporal Unix (o número de segundos desde 1 de Janeiro de 1970).

bh= Esta etiqueta representa o hash corporal, que é uma versão encriptada do conteúdo da sua mensagem (incluindo os cabeçalhos). Isto ajuda a evitar a adulteração de mensagens depois de terem sido assinadas pelo DKIM e antes de chegarem aos destinatários pretendidos.

h= O valor do cabeçalho contém todos os cabeçalhos na sua totalidade (incluindo os assinados pelo Sender Policy Framework ou DomainKeys Identified Mail) excepto aqueles que foram explicitamente excluídos através da sua inclusão numa lista de exclusão. Este valor deve ser calculado utilizando SHA-1 ou MD5.

b= A etiqueta "b" é a representação codificada base64 de uma função de hash criptográfico no corpo canonicizado da mensagem (isto é, depois da codificação MIME ter sido removida).

Geração de uma assinatura DKIM

  1. Gerar uma chave pública e privada.
  2. Gerar um cabeçalho e um rodapé do DKIM.
  3. Assine o conteúdo do e-mail com a sua chave privada utilizando o algoritmo seleccionado, por exemplo, RSA-SHA256 ou RSA-SHA512
  4. Comprimir a mensagem utilizando o algoritmo seleccionado, por exemplo, esvaziar ou não esvaziar.
  5. Inserir os cabeçalhos DKIM no início da mensagem antes de quaisquer cabeçalhos MIME.
  6. Inserir o rodapé DKIM depois de qualquer rodapé MIME.

Garantia da validade da assinatura do DKIM

Algumas medidas podem ser tomadas para assegurar que a assinatura do DKIM é válida:

  1. Determine se pretende utilizar um algoritmo tradicional de assinatura DKIM ou um algoritmo optimizado.
  2. Calcule um valor hash para o cabeçalho e corpo da sua mensagem (isto seria tipicamente SHA-256).
  3. Escolher um algoritmo de assinatura apropriado (como RSA ou ECDSA).
  4. Verificar se a sua chave pública corresponde ao selector que especificou anteriormente no Passo 1 (isto é feito utilizando o DNS).
  5. Assine a sua mensagem usando a sua chave privada e guarde-a como uma string ASCII no formato Base64 no cabeçalho da sua mensagem de correio electrónico (além de a colocar no DNS).

Verificação de uma Assinatura DKIM

DKIM A verificação da assinatura é complicada. Requer muita perícia para ser criada e mantida, e é frequentemente utilizada em conjunto com outros sistemas como o SPF, que também são complicados.

Como resultado, a maioria dos profissionais de marketing por correio electrónico utiliza uma ferramenta de verificação de assinaturas DKIM, tal como verificador de registos DKIM para verificar as suas assinaturas DKIM. Esta ferramenta verifica as chaves DKIM que foram adicionadas a um e-mail e verifica-as em relação a uma base de dados pública. Se as chaves forem válidas e fiáveis, então o correio electrónico pode ser considerado legítimo.

Isto é importante por várias razões: primeiro, assegura que os seus e-mails não sejam marcados como spam pelos ISPs ou clientes dos ISPs; segundo, permite-lhe evitar ter o seu domínio na lista negra por outros domínios (a isto chama-se envenenamento de domínio); finalmente, ajuda a assegurar que os seus e-mails não sejam apanhados em qualquer tipo de ataque "man-in-the-middle".

Conclusão

O DKIM é uma solução promissora que permite a uma organização validar a legitimidade dos e-mails, especialmente os de remetentes externos. Quando aplicado de forma consistente num ambiente de mensagens, proporciona aos destinatários um elevado grau de confiança de que um correio electrónico foi enviado por um representante autorizado do domínio do remetente. No entanto, é importante notar que embora o DKIM forneça um mecanismo de verificação, não é suficiente para proteger contra ataques de fraude de correio electrónico como a falsificação e o phishing. Para isso, um Política DMARC pois a rejeição é obrigatória.

Precisa de ajuda?

A autenticação de e-mail é uma parte necessária da estratégia de marketing digital de qualquer empresa. Com tantos e-mails enviados e recebidos todos os dias, é fácil para a sua marca perder-se no embaralhamento. Mas com os serviços de autenticação de emails da PowerDMARC, pode assegurar-se de que os seus emails são vistos pelas pessoas certas. 

A nossa solução de autenticação por correio electrónico irá ajudá-lo:

Sair versão móvel