Como insiro uma chave DKIM forte (longa) no DNS?


19

Estou tentando inserir uma chave DKIM de 4028 bits no DNS e parece que estou excedendo o limite de 512 bytes UDP e também o tamanho máximo de um registro TXT.

Como alguém cria adequadamente uma chave grande (com tamanho codificado maior implícito) e a importa para o DNS?


Precisa de mais detalhes; qual é o software do servidor DNS?
JGurtz

11
Você considerou cuidadosamente seu tamanho de chave? A RFC afirma: "Os verificadores DEVEM poder validar assinaturas com chaves que variam de 512 bits a 2048 bits, e PODEM ser capazes de validar assinaturas com chaves maiores." Portanto, sua chave longa pode não ser verificada.
HTTP500

@JGurtz Estamos usando o "UltraDNS", é um serviço hospedado.
#

@ Jason - Podemos fazer 2048, mas acho que esse tamanho de bit pode exceder o limite de pacotes UDP.
#

11
Talvez você deva considerar que os problemas que você cria com o uso de uma chave incomumente longa superam em muito as vantagens que espera obter dela.
John Abrantes

Respostas:


25

Você precisa dividi-los no campo de texto. Acredito que 2048 é o limite prático para tamanhos de chave. Divida o campo de texto em partes de 255 caracteres ou menos. Há sobrecarga para cada divisão.

Existem dois formatos para campos longos.

TXT "parte um" \ "parte dois"

TXT ("parte um" "parte dois")

Ambos serão combinados como "parte um e dois". Mais detalhes da Zytrax.

Para gerar minha entrada dkim, insiro meu arquivo de chave pública e envolvo-o entre aspas.
Meu arquivo de chave pública contém o seguinte:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3
q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0
ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB

Depois de editar, a chave no meu arquivo de zona DNS aparece da seguinte maneira:

dkim3._domainkey        IN      TXT     ("v=DKIM1; t=s; p=" 
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3"
"q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0"
"ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB")

O DNS retorna da seguinte maneira:

 bill:~$ host -t TXT dkim3._domainkey.systemajik.com
 dkim3._domainkey.systemajik.com descriptive text "v=DKIM1\; t=s\; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3" "q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0" "ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB"

O DNS a trata como uma sequência longa, sem espaços extras onde as linhas são unidas. Todas as " "sequências são ignoradas.


Você pode dar um exemplo? por isso eu não consigo descobrir como deixar claro qual é a parte 1 e a parte 2 ... #threadnecro #
11123 janw

11
@janw Adicionei uma das minhas chaves como exemplo. Essa chave é de apenas 1024 bits.
BillThor

5
Tnx para a resposta rápida. Mas essa chave se encaixa em uma chave 255. Então, eu ainda não entendo como você o divide em várias chaves.
janw

11
Não é o DNS que ignora as " "seqüências e você realmente prova isso em sua última citação. É a seção 3.1.3 do RFC 4408 do SPF que define que a concatenação deve ser usada pelos aplicativos que lêem os registros DNS para validação do SPF.
Phil

3
@Alnitak A RFC aplicável para este caso é tools.ietf.org/html/rfc6376#section-3.6 . As cadeias são concatenadas sem espaços entre elas. O SPF e outros formatos seguem as mesmas regras, permitindo que as quebras sejam feitas em locais arbitrários. Isso pode ser feito para facilitar a leitura ou limitar o tamanho do registro.
BillThor

1

Se for o Amazon Route 53 , não use novas linhas (apenas espaços) entre os pedaços.

"do it" "this way"

"not like"
"this"

Consulte /server//a/763871/80856


1

Se você usar a interface do usuário do poweradmin para pdns, basta digitar toda a cadeia de caracteres dkim no campo de entrada.

v=DKIM1;k=rsa;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxtR3bw1Kbh1B7q4+5aWjTj2YEFwv230gcv+NMp4KouOSLdIr0mCMiwDZpY+7zCdks0zMXtz+F5TPij/NkSAxIKBbJqbIO3mvAhgeI0Vy5aQ5prwnIyXUj54po6AsXbv5Ud2tFbGSsdIhvWiC755d3WaFs8mdWFkpSxprlW6PobCzOWDayWGCvsNfHpjmTxHZinkd3TmLQqE/O6Nb1YnRwQwUCLioSyudV+5Bd2+rXZ2V9FYAOiK2aQi2aSTiUaLCVxft9H6xen3JDaKsuu43QMBrhydoJOCV2QaY82IxqE3GgZrlADu6YEOfotdwD2aA9GRwVB88GqdXL8HwgEGTbwIDAQAB

0

Tudo bem se o registro for maior que o limite de UDP de 512 bytes, porque o DNS usará o TCP.

Isso deve ser transparente para o usuário, mas às vezes os dispositivos de firewall com erros (como Cisco PIX / ASA) filtram / bloqueiam essas consultas maiores.


0

Sei que este post é antigo, mas o encontrei hoje ao consultar "DKIM 2048 bit key with UltraDNS". Minha equipe de DNS tentou dividir a chave em duas partes com aspas e um espaço entre elas. Isso estava fazendo com que o UltraDNS servisse 3 pacotes (o que estava no centro estava vazio), o que causava resultados de validação inconsistentes.

O que funcionou para mim no painel de controle do UltraDNS foi apenas enviar o registro inteiro entre aspas sem vários conjuntos de aspas, delimitadores, etc. Funciona como esperado agora.


-1

Se você estiver usando o MySQL / MariaDB como back-end do DNS, como o PowerDNS, poderá redimensionar sua coluna de conteúdo.

O tamanho padrão do conteúdo do PowerDNS é VARCHAR (255)

Portanto, sua assinatura DKIM será cortada em 255 caracteres

para corrigir isso

basta alterar o tamanho do conteúdo via CLI MySQL / CLI MariaDB

mysql -u root -p

USE powerdns;
alter table records modify column content text not null;

reinicie o serviço DNS (por exemplo, PowerDNS)

service pdns restart
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.