DKIM: Posso simplesmente alterar a chave RSA usada no DKIM sem alterar o seletor DKIM?

2

Posso simplesmente alterar a chave RSA usada no DKIM (DNS TXT Record) sem alterar o seletor DKIM ou isso resultará em algum problema?

Se não, qual é a finalidade do seletor DKIM?
BTW: 20120113 é o seletor de que estou falando em 20120113._domainkey.gmail.com

    
por Florian Schneider 06.01.2016 / 20:08

3 respostas

5

Como você pode ler aqui ". ... Um seletor é adicionado ao nome de domínio, usado para encontrar informações de chave pública DKIM ... ".

Além disso, nos termos Wikipedia : " ... O servidor SMTP de recebimento usa o nome de domínio e o selector para realizar uma pesquisa de DNS, o [...] seletor é um método simples para permitir que os assinantes adicionem e removam chaves sempre que desejarem ... "

Em outras palavras, se você estiver enviando um e-mail assinado pelo DKIM, precisará informar aos servidores de e-mail externos COMO eles podem recuperar sua chave RSA para verificar a validade do seu e-mail. A chave RSA é publicada no seu DNS, ok, mas ONDE ? Qual consulta de DNS irá recuperá-lo? Como eles saberão qual consulta / registro de DNS resolve? É aqui que o seletor desempenha sua função: se você estiver enviando e-mails do domínio example.com e, em seu e-mail, declarar whatever como seletor, então:

  • no cabeçalho de e-mail de saída, é necessário referenciar seu domínio e o seletor relacionado, como em:

DKIM-Signature [...] d=example.com; [...] s=whatever

  • no seu DNS, você precisa fornecer um registro TXT para whatever._domainkey.example.com publicando sua chave RSA, como em:

whatever._domainkey.example.com IN TXT "k=rsa\; t=s\; p=MIGfMA[...]AQAB"

Como você pode ver, a consulta de DNS está no formato ._ domainkey. domínio_

Com base nisso, podemos dizer que:

  1. a chave RSA pode ser substituída / atualizada sem qualquer impacto no seletor. Obviamente, é fundamental que, quando você atualiza um lado da chave (o público, publicado no DNS), mude também o outro lado (aquele usado para "assinar" o seu correio de saída);

  2. se você deixar o seletor inalterado enquanto atualiza a chave RSA, então um efeito colateral é aquele .... clientes remotos (não servidores; estou falando de MUAs ) que, por qualquer motivo, desejem verificar a assinatura DKIM incluída em seus e-mails antigos / arquivados, falhará no processo de verificação (como o e-mail arquivado foi assinado com uma chave privada cujo público-um, o publicado no DNS, foi atualizado e agora é diferente!).

Quero acrescentar que, na minha experiência, estou acostumado a pensar que a assinatura / verificação de DKIM é um processo que visa o transporte do e-mail e não a verificação do lado do cliente. Então, eu apostaria que é bastante seguro atualizar as CHAVES deixando o seletor intocado.

Por que eu também acho que .... se você for atualizar as KEYs, então você tem que mudar tanto o seu código de assinatura (que precisa apontar para a nova chave privada) quanto o DNS (para publicar a nova chave pública no registro TXT). Então, por que não mudar também o seletor (novamente, em ambos os lados?). Você acabará tendo seletores de TWO publicados no DNS, um apontando para o antigo e outro apontando para o novo. Dessa forma, tudo ficará bem durante o transporte SMTP e, também, os MUAs poderão validar e-mails antigos / arquivados, pois a chave antiga, associada ao seletor antigo, ainda está disponível.

    
por 06.01.2016 / 23:30
3

Posso simplesmente alterar a chave RSA usada no DKIM (DNS TXT Record) sem alterar o seletor DKIM ou isso resultará em algum problema?

Sim, você pode , mas sem um bom motivo , aconselho vivamente a não fazê-lo .

Veja alguns motivos pelos quais a reutilização do seletor não seria uma boa ideia:

  • Alterações no DNS podem levar algum tempo para serem propagadas. Se um seletor for reutilizado após uma alteração de chave, isso poderá resultar na falha da verificação de envio de e-mails logo após a alteração da chave.
  • Você não sabe quanto tempo transcorrerá entre o envio e a verificação. Isso pode resultar em mensagens mais antigas que falharem na verificação após a alteração da chave. Alguma razão possível para o atraso:
  • Do RFC: "Reutilizar um seletor com uma nova chave (por exemplo, alterar a chave associada ao nome de um usuário) torna impossível dizer a diferença entre uma mensagem que não confirmou porque a chave não é mais válida e uma mensagem que é realmente forjado. Por esta razão, os Signatários são mal aconselhados reutilizar seletores para novas chaves. Uma estratégia melhor é atribuir novas chaves para novos seletores. "

Qual é o objetivo do seletor DKIM?

"Para suportar várias chaves públicas simultâneas por domínio de assinatura". Aqui estão alguns casos de uso para chaves concorrentes:

  • "Além da conveniência administrativa, os seletores tornam possível substituir continuamente as chaves públicas rotineiramente. "
  • Permitir que entidades diferentes assinem seus e-mails (com uma chave e um seletor diferentes) sem a necessidade de compartilhar uma chave privada. Isso é útil para:
    • delegando a assinatura a uma organização externa
    • organizações administrativamente distribuídas
  • Tornar possível revogar explicitamente uma chave (deixando os dados de chave pública (a tag "p=") vazios).

Todas as citações são da RFC 6376 .

    
por 08.01.2016 / 18:33
1

Você pode fazer isso. Não é necessariamente BCP embora.

O motivo para ter vários seletores é especificamente para que uma chave possa permanecer válida por um período de tempo após ser rotacionada.

Por exemplo, se você alterar a chave RSA usada no seletor 20120113, qualquer mensagem que ainda estivesse em uma fila em algum lugar e fosse entregue posteriormente falhará no DKIM porque a chave foi alterada.

O ideal seria publicar uma nova chave, 20160106, se você fez isso hoje, e adicionar isso como um seletor adicional. Dessa forma, mensagens usando ambas as chaves podem ser validadas. Depois de um período de tempo razoável, digamos duas semanas, você pode publicar a chave antiga.

(Eu estou supondo que você não está realmente falando da chave 20120113._domainkey.gmail.com literalmente? Se você realmente está falando sobre uma chave do Gmail, pare e fale com John RG internamente antes de mudar qualquer coisa.)

    
por 06.01.2016 / 23:18