Comment puis-je entrer une clé DKIM forte (longue) dans DNS?


19

J'essaie d'entrer une clé DKIM 4028 bits dans DNS et il semble que je dépasse à la fois la limite UDP 512 octets et la taille d'enregistrement maximale pour un enregistrement TXT.

Comment quelqu'un crée-t-il correctement une grande clé (avec une taille codée implicite plus grande) et l'importe-t-il dans DNS?


Besoin de plus de détails; qu'est-ce que le logiciel serveur DNS?
JGurtz

1
Avez-vous soigneusement réfléchi à la taille de votre clé? Le RFC stipule: "Les vérificateurs DOIVENT être en mesure de valider les signatures avec des clés allant de 512 bits à 2048 bits, et ils PEUVENT être en mesure de valider les signatures avec des clés plus grandes." Votre clé longue risque donc de ne pas être vérifiée.
HTTP500

@JGurtz Nous utilisons "UltraDNS" c'est un service hébergé.
goodguys_activate

@Jason - Nous pouvons faire 2048, mais je pense que la longueur en bits peut dépasser la limite de paquets UDP.
goodguys_activate

1
Vous devriez peut-être considérer que les problèmes que vous créez en utilisant une clé inhabituellement longue l'emportent de loin sur les avantages que vous espérez en retirer.
John Gardeniers

Réponses:


25

Vous devez les diviser dans le champ de texte. Je crois que 2048 est la limite pratique pour les tailles de clés. Divisez le champ de texte en parties de 255 caractères ou moins. Il y a des frais généraux pour chaque division.

Il existe deux formats pour les champs longs.

TXT "première partie" \ "deuxième partie"

TXT ("première partie" "deuxième partie")

Les deux se combineront comme "partie à la deuxième partie". Plus de détails sur Zytrax.

Pour générer mon entrée dkim, j'insère mon fichier de clé publique et je l'enveloppe entre guillemets.
Mon fichier de clé publique contient les éléments suivants:

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD78Ki2d0zmOlmjYNDC7eLG3af12KrjmPDeYRr3
q9MGquKRkRFlY+Alq4vMxnp5pZ7lDaAXXwLYjN91YY7ARbCEpqapA9Asl854BCHMA7L+nvk9kgC0
ovLlGvg+hhqIPqwLNI97VSRedE60eS+CwcShamHTMOXalq2pOUw7anuenQIDAQAB

Après avoir édité la clé dans mon fichier de zone DNS apparaît comme suit:

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

DNS le renvoie comme suit:

 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"

DNS le traite comme une longue chaîne sans espaces supplémentaires où les lignes sont jointes. Toutes les " "séquences sont ignorées.


Pouvez-vous donner un exemple? pour cela, je ne peux pas comprendre comment clarifier ce qu'est la partie 1 et la partie 2 .... #threadnecro
janw

1
@janw J'ai ajouté une de mes clés à titre d'exemple. Cette clé ne fait que 1024 bits.
BillThor

5
Tnx pour la réponse rapide. Mais cette clé tient dans une clé 255. Donc, je ne comprends toujours pas comment vous le divisez en plusieurs clés.
janvier

1
Ce n'est pas le DNS qui ignore les " "séquences et vous le prouvez en fait dans votre dernier devis. C'est la section 3.1.3 SPF RFC 4408 qui définit que la concaténation doit être utilisée par les applications lisant les enregistrements DNS pour la validation SPF.
Phil

3
@Alnitak Le RFC applicable dans ce cas est tools.ietf.org/html/rfc6376#section-3.6 . Les chaînes sont concaténées sans espaces entre elles. SPF et d'autres formats suivent les mêmes règles permettant de placer des pauses à des emplacements arbitraires. Cela peut être fait pour la lisibilité ou pour limiter la taille des enregistrements.
BillThor

1

Si c'est Amazon Route 53, n'utilisez pas de sauts de ligne (uniquement des espaces) entre les morceaux.

"do it" "this way"

"not like"
"this"

Voir /server//a/763871/80856


1

Si vous utilisez l'interface utilisateur poweradmin pour les pdns, vous pouvez simplement entrer la chaîne dkim entière dans le champ de saisie.

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

0

C'est OK si l'enregistrement est supérieur à la limite UDP 512 octets car DNS utilisera TCP.

Cela doit être transparent pour l'utilisateur, mais parfois, les appliances de pare-feu boguées (telles que Cisco PIX / ASA) filtrent / bloquent ces requêtes plus volumineuses.


0

Je sais que ce message est ancien, mais je l'ai trouvé aujourd'hui en interrogeant «Clé DKIM 2048 bits avec UltraDNS». Mon équipe DNS avait tenté de diviser la clé en deux parties avec des guillemets autour d'eux et un espace entre les deux. Cela entraînait UltraDNS à servir jusqu'à 3 paquets (celui du centre était vide), ce qui a provoqué des résultats de validation incohérents.

Ce qui a fonctionné pour moi dans le panneau de configuration UltraDNS était simplement de soumettre l'enregistrement entier entre guillemets sans plusieurs jeux de guillemets, délimiteurs, etc. Fonctionne comme prévu maintenant.


-1

Si vous utilisez MySQL / MariaDB comme backend DNS, comme PowerDNS, vous pouvez redimensionner votre colonne de contenu.

La longueur du contenu PowerDNS par défaut est VARCHAR (255)

Ainsi, votre signature DKIM sera coupée à 255 caractères

pour résoudre ce problème

il suffit de changer la taille du contenu via la CLI MySQL / MariaDB CLI

mysql -u root -p

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

redémarrez votre service DNS (par exemple PowerDNS)

service pdns restart
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.