Sådan finder DKIM nøglen
En DKIM-signatur i en meddelelse angiver et domæne (d=) og en selector (s=). Modtageren samler dem til selector._domainkey.domain, læser TXT-recorden der og bruger den offentlige nøgle i dens p=-tag til at verificere signaturen. Et domæne kan udgive et vilkårligt antal selectors, så hver afsendelsestjeneste kan have sin egen nøgle, og nøgler kan udskiftes uden nedetid.
Kontrollen kræver en selector, fordi DNS ikke giver mulighed for at vise de selectors, et domæne har. Der er intet at scanne. Selector kommer fra signaturen i en rigtig meddelelse.
Hvad gør en nøgle svag eller ugyldig?
RFC 8301 siger, at RSA-nøgler skal være på mindst 1024 bit og bør være på 2048 bit. En kontrollør kan ignorere en kortere nøgle, og det gør vores, så en 512-bit-nøgle tæller som slet ingen signatur. Ed25519-nøgler (RFC 8463) er korte med vilje og stærke, men endnu ikke alle modtagere kontrollerer dem. Derfor udgives de normalt sammen med en RSA-nøgle i stedet for som erstatning for den.
Kontrollen afkoder hele nøglen, fordi en record, der er opdelt forkert på tværs af TXT-strenge, eller base64, der ikke kan afkodes, giver en nøgle, som ingen modtager kan bruge. En tom p= betyder, at nøglen blev tilbagekaldt med vilje. t=y markerer et domæne, der stadig tester, og RFC 6376 §3.6.1 siger, at kontrollører skal behandle dets e-mail præcis som usigneret e-mail.
Spørgsmål
Hvordan finder jeg min DKIM-selector, og er DKIM overhovedet aktiveret?
Send en mail til dig selv, og åbn headerne i den kopi, der kom frem. En DKIM-Signature-header betyder, at mailen blev signeret: Selectoren er værdien s=, og domænet er d=. Hvis headeren mangler, signerer den tjeneste, du sendte gennem, ikke. Hver afsendelsestjeneste signerer med sin egen selector, så et nyhedsbrev og en mail fra din indbakke kan have forskellige selectors.
Nøglen er i orden, men DKIM fejler med "body hash did not verify". Hvorfor?
Det skyldes normalt, at beskeden blev ændret, efter den blev signeret, for eksempel fordi en mailingliste tilføjede en sidefod, eller en sikkerhedsgateway omskrev et link. Nøglen kan kun bekræfte det, der blev signeret. Den fulde test viser det faktiske kontrolresultat for din besked.
Komplet guide: DKIM fail
DKIM-nøglelængde: 1024 eller 2048 bit?
En 1024-bit nøgle kan verificeres overalt, og RFC 8301 tillader den. Det er stadig minimumskravet, så skift til 2048 bit, næste gang du roterer nøgler.
Kan et domæne have mere end én DKIM-record?
Ja, én pr. selector, og mange domæner har flere: én til mailudbyderen og én til hver nyhedsbrevs- eller faktureringstjeneste. Tjek dem én ad gangen. En nøgle, der er blevet slettet fra DNS, får alle mails, som stadig er signeret med den, til at fejle.
Hvor ofte bør jeg rotere DKIM-nøgler?
M3AAWG anbefaler rotation mindst hver sjette måned og straks, hvis en privat nøgle kan være blevet lækket. Udgiv den nye nøgle under en ny selector, skift signeringen til den, og slet først den gamle record, når mails signeret med den gamle nøgle ikke længere ankommer. Afsendere prøver igen i fire til fem dage, så vent cirka en uge.