Je suis en train de mettre en place un système de messagerie basé sur exim4. Ce système implémente la signature et la vérification DKIM (entre autres). La signature semble fonctionner sans problème mais la vérification ne fonctionne pas et exim4 se plaint de la syntaxe de mes enregistrements TXT qui portent ma clé publique DKIM :
2014-02-02 22:37:31 1WA5fP-0004Y4-E2 DKIM: d=middle.earth s=a9d04665528b593d263a6e5256648c99 c=relaxed/relaxed a=rsa-sha256 [invalid - syntax error in public key record]
J'utilise une clé RSA de 2048 bits pour signer mes courriers au niveau du relais de messagerie (cela fonctionne bien et j'ai effectivement des en-têtes DKIM dans les courriers relayés par ce serveur). Le problème semble résider dans le fait que bind (mon serveur DNS pour cette zone) ne supporte pas les enregistrements de plus de 255 caractères dans le fichier de zone. J'ai donc choisi de diviser l'enregistrement comme indiqué ci-dessous, et comme décrit dans le très fiable site zytrax.com :
...
a9d04665528b593d263a6e5256648c99._domainkey IN 1800 TXT ("k=rsa,p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A"
"bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5"
"QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2"
"YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X"
"TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv"
"VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg"
"Ixler0jMEoAyJmfQIDAQAB")
Le dossier complet de la zone peut être trouvé ici : http://pastebin.com/GDE5XA2M
Avec cette configuration, exim se plaint de l'erreur ci-dessus. Si j'essaie de résoudre manuellement mes enregistrements dkim, voici ce que j'obtiens :
;; ANSWER SECTION:
a9d04665528b593d263a6e5256648c99._domainkey.middle.earth. 1800 IN TXT "k=rsa,p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz2/ZfhxSI/A" "bqgh0amM8ylrlosirWeKShUhq7fg12aYmRwOqq9hIzO0Fcz1BzfgHVu6HU++rC5" "QoUK0JQK/nk4jwkDgvG2di2ZYmAvEbY/VeiK1x/TG0p1Iczr2k6Bj0gEAb/YGD2" "YbwrwAi4bDXwoPsYuuNn9TB3jjyWKu/dvOsqhff1/4Wc+FkOi0ClvgrXiklN28X" "TLjyjSyU794ntIoegXxrfwcwkhfPMvuqcnhfIC0Z8L71M4WR4SoHyNHVfBtNlUv" "VNROiXlMxtxnNQvfViSwz6LC8bYIxeAba3hSXPTChKu3qZtfR0o3jFwEWAfLQdg" "Ixler0jMEoAyJmfQIDAQAB"
Cela ne me semble pas tout à fait correct et je peux imaginer qu'exim est perdu avec une telle sortie. Cependant, je ne suis pas sûr à 100% qu'il s'agisse d'une réponse DNS normale pour un enregistrement DNS aussi long et qu'exim devrait la gérer, ou si c'est la façon dont j'ai créé le lien qui est mauvaise.
Toute aide à ce sujet serait appréciée.
Merci.