Så hittar DKIM nyckeln
En DKIM-signatur i ett meddelande anger en domän (d=) och en selector (s=). Mottagaren sätter ihop dem till selector._domainkey.domain, läser TXT-posten där och använder den publika nyckeln i dess p=-tagg för att verifiera signaturen. En domän kan publicera valfritt antal selectors, så varje sändningstjänst kan ha en egen nyckel och nycklar kan roteras utan driftstopp.
Kontrollen behöver din selector eftersom DNS inte kan lista vilka selectors en domän har. Det finns inget att söka igenom. Din selector hämtas från signaturen i ett verkligt meddelande.
Vad gör en nyckel svag eller trasig?
RFC 8301 anger att RSA-nycklar måste vara minst 1024 bitar och bör vara 2048 bitar. En verifierare får ignorera en kortare nyckel, och vår gör det, så en 512-bitarsnyckel räknas som att signatur helt saknas. Ed25519-nycklar (RFC 8463) är korta avsiktligt och har hög säkerhet, men ännu verifierar inte alla mottagare dem. Därför publiceras de vanligtvis bredvid en RSA-nyckel i stället för att ersätta den.
Kontrollen avkodar hela nyckeln, eftersom en post som har delats fel mellan TXT-strängar, eller base64 som inte går att avkoda, ger en nyckel som ingen mottagare kan använda. Ett tomt p= betyder att nyckeln har återkallats avsiktligt. t=y markerar en domän som fortfarande testas, och RFC 6376 §3.6.1 säger att verifierare ska behandla dess e-post exakt som osignerad e-post.
Frågor
Hur hittar jag min DKIM-selector, och är DKIM aktiverat?
Skicka ett meddelande till dig själv och öppna rubrikerna i kopian som kom fram. En DKIM-Signature-rubrik betyder att meddelandet signerades: selector är värdet för s= och domänen är d=. Om rubriken saknas signerar tjänsten du skickade via inte meddelandet. Varje sändningstjänst signerar med sin egen selector, så ett nyhetsbrev och ett meddelande från ditt e-postkonto kan ha olika selector.
Nyckeln är korrekt, men DKIM misslyckas med "body hash did not verify". Varför?
Vanligtvis har meddelandet ändrats efter att det signerades, till exempel genom att en e-postlista lade till en sidfot eller att en säkerhetsgateway skrev om en länk. Nyckeln kan bara bekräfta det som signerades. Det fullständiga testet visar det faktiska verifieringsresultatet för ditt meddelande.
Fullständig guide: DKIM fail
DKIM-nyckellängd: 1024 eller 2048 bitar?
En 1024-bitarsnyckel verifieras överallt och tillåts enligt RFC 8301. Det är fortfarande minimikravet, så byt till 2048 bitar nästa gång du roterar nycklarna.
Kan en domän ha fler än en DKIM-post?
Ja, en per selector, och många domäner har flera: en för e-postleverantören och en för varje nyhetsbrevs- eller faktureringstjänst. Kontrollera dem en i taget. En nyckel som har tagits bort från DNS gör att alla meddelanden som fortfarande är signerade med den underkänns.
Hur ofta bör jag rotera DKIM-nycklar?
M3AAWG rekommenderar att nycklar roteras minst var sjätte månad och omedelbart om en privat nyckel kan ha läckt. Publicera den nya nyckeln under en ny selector, byt till att signera med den och ta bort den gamla posten först när e-post som signerats med den gamla nyckeln har slutat komma fram. Avsändare försöker skicka igen i fyra till fem dagar, så vänta ungefär en vecka.