Naar inhoud springen

DKIM-controle:
is uw sleutel sterk genoeg?

Voer een domein in — de selector is optioneel: de tool probeert de tien gangbare namen, of haalt hem uit een geplakte DKIM-Signature-header. Daarna gaat de controle verder dan „record gevonden” en meet de sleutel zelf — een 512-bit sleutel doorstaat elke bestaanscontrole en is al sinds 2012 vervalsbaar.

of plak een ruwe DKIM-Signature-header → we halen d= en s= eruit — de twee tags die uw sleutel benoemen — in uw browser; de header verlaat deze nooit
Selector optioneel — 10 gangbare namen geprobeerd Sleutel base64-gedecodeerd en formaat gemeten Oordeel in seconden
Wat een DKIM-check die stopt bij „record gevonden” mist

Geldig record, kapotte DKIM

Een DKIM-record kan tien jaar onaangeroerd blijven staan en toch gewoon bestaan. Alle vier de fouten hieronder leveren een record op, dus bestaanscontroles melden DKIM als geconfigureerd — terwijl de verificatie mislukt.

De 512-bit-relikwie

In 2012 factoreerde een wiskundige Google's 512-bit DKIM-sleutel met gehuurde rekenkracht en stuurde de oprichters mail alsof ze elkaar waren. Sleutels van dat formaat staan vandaag nog steeds in DNS — geldig, ondertekend, en vervalsbaar.

512-bit · gefactoriseerd in 2012

Een lege p= die nog steeds mail ondertekent

Een lege p= betekent „deze sleutel is ingetrokken” — correcte hygiëne voor een uitgefaseerde selector. Maar als de oude ESP-configuratie er nog mee ondertekent, faalt elk van die berichten op DKIM. Vandaag nog.

p= · leeg = ingetrokken

t=y sinds de lancering

De testvlag was bedoeld voor de uitrolweek. Blijft hij aan staan, dan vertelt hij ontvangers om uw ondertekende mail precies als onondertekende mail te behandelen — uw geslaagde DKIM-controle levert u dan voorgoed niets op.

RFC 6376 §3.6.1

De selector die niemand heeft opgeschreven

Het record staat op selector._domainkey — en DNS biedt geen manier om selectors op te sommen. U kunt niet controleren wat u niet kunt benoemen, dus blijven DKIM-records jarenlang ongecontroleerd.

s= · niet op te vragen via DNS
De oordelen

Sleutelgrootte, p= en t=y

De meeste tools stoppen bij „record gevonden”. Het cijfer hangt af van de gedecodeerde sleutelgrootte en van twee flags — p= leeg en t=y — die de meeste checkers nooit melden.

rsa · 2048-bit +

De moderne basislijn (RFC 8301 schrijft dit voor aan ondertekenaars). Decodeert naar een correct gevormde publieke sleutel, groot genoeg dat factorisatie geen haalbare aanval is.

→ het doel — zet rotatie nu op de agenda
rsa · 1024-bit

Acceptabel en nog steeds gangbaar — maar NIST heeft 1024-bit RSA voor handtekeningen al in 2013 afgeschreven, en elk jaar dat de sleutel gepubliceerd blijft, krimpt de marge.

→ roteer naar 2048 bij uw volgende sleutelwissel
rsa · onder 1024

512-bit werd in 2012 publiekelijk gefactoriseerd met gehuurde cloud-rekenkracht; 768-bit sneuvelde in 2009 in een academische studie. Een sleutel van dit formaat is een pasklare vervalsing met de naam van uw domein erop.

→ roteer vandaag nog — sleutels onder 1024 bit zijn vervalsbaar
p= leeg · ingetrokken

RFC 6376's bewuste doodverklaring: „deze sleutel is ingetrokken.” De juiste eindtoestand voor een uitgefaseerde selector — en een storing in productie voor alles wat er nog mee ondertekent.

→ prima, MITS er niets meer mee ondertekent
t=y · testmodus

Ontvangers krijgen de instructie om uw mail te behandelen alsof deze onondertekend is — zelfs als de handtekening geldig is. Een uitrolhulpmiddel dat DKIM stilletjes buiten werking stelt zodra het blijft aanstaan.

→ verwijder de vlag zodra de uitrol is afgerond
geen record bij selector

Verifiers krijgen „geen sleutel beschikbaar” en de handtekening krijgt een permfail. Het addertje: van buitenaf zijn een verwijderde sleutel en een verkeerd getypte selector niet van elkaar te onderscheiden — daarom proberen wij er tien.

→ zoek eerst de juiste selector — hieronder
DKIM-selectors

Zo vindt u uw selector

Uw publieke sleutel staat op selector._domainkey.yourdomain.com — en DNS heeft geen query die selectors opsomt. U kunt de naam alleen weten of raden. Vier manieren om erachter te komen:

  • Lees een ondertekend bericht: open een e-mail die u heeft verzonden → „Origineel weergeven” → de s=-tag van de DKIM-Signature-header is uw selector.
  • Plak de header hier: we vouwen deze uit en halen d= en s= voor u eruit — zelf lezen is niet nodig.
  • Vraag het uw ESP: de DNS-instructiepagina die u de CNAME/TXT gaf, noemt de selector.
  • Of laat ons goed gokken: laat het veld leeg en wij proberen de tien namen die ESP's gebruiken — hiernaast, in probeervolgorde.
Mijn selectors opsporen

Wie gebruikt welke selector

de 10 die wij proberen · gangbare standaardwaarden
googleDe standaard van Google Workspace. Eén selector, ter plekke geroteerd — het record verandert onder dezelfde naam.
selector1 · selector2Microsoft 365 — uitgegeven als paar, zodat de actieve sleutel zonder downtime tussen beide kan wisselen.
k1 · k2Conventie van Mailchimp / Mandrill, sindsdien op grote schaal overgenomen door andere ESP's.
s1 · s2SendGrid's paar voor geautomatiseerde beveiliging; ook een gangbaar patroon bij nieuwere ESP's.
defaultOpenDKIM, cPanel en de meeste zelfgehoste opzetten — de naam die niemand heeft veranderd.
dkim · mailDiverse ESP's en on-premises mailservers — de generieke namen die de top tien completeren.
Twee live selectors is normaal — zo werkt rotatie zonder downtime. Tien dode selectors zijn restjes die niemand heeft opgeruimd.
Voor terminalgebruikers

Wat u zelf kunt controleren

Zodra u de selector kent, is het ruwe materiaal één dig-commando verwijderd.

Het record ophalen — als u de selector kentdig +short TXT google._domainkey.example.com
Uw selector vinden in een verzonden berichtgrep -io 's=[^;]*' message.eml | head -1
De sleutel decoderen en metenecho "$P" | base64 -d | openssl rsa -pubin -inform DER -noout -text | head -1
Eén gegokte selector proberendig +short TXT selector1._domainkey.example.com
Tien selectors proberen, de DER doorlopen, de modulus beoordelen, de flags uitlezen# geen one-liner hiervoor — ↑ dat is deze tool
FAQ

Veelgestelde vragen over DKIM

Typ uw domein hierboven in — selector optioneel. Wij halen het TXT-record op bij selector._domainkey.yourdomain (en proberen tien gangbare selectors als u dit veld leeg laat), toetsen elke tag aan RFC 6376 en valideren vervolgens de sleutel zelf: de p=-waarde wordt base64-gedecodeerd, de DER-structuur erin wordt veld voor veld doorlopen, en de modulus wordt gemeten en beoordeeld — onder 1024 bit is zwak, 1024 acceptabel, 2048+ aanbevolen. Gratis, geen registratie.

De selector is de naam vóór ._domainkey — gekozen door wie het ondertekenen heeft ingesteld, en onzichtbaar voor elke DNS-lijst. Drie manieren om de uwe te vinden: open een bericht dat u heeft verzonden en lees de s=-tag in de DKIM-Signature-header uit (in Gmail: „Origineel weergeven”); plak die hele header in deze tool en wij halen hem eruit; of laat de selector leeg en wij proberen de tien meest gangbare standaardnamen — google, selector1/2, k1/k2, s1/s2, default, dkim, mail. Twee live selectors vinden is normaal — dat is rotatie die werkt.

Acceptabel, verouderend, en de moeite waard om in te plannen. Niemand heeft RSA-1024 publiekelijk gefactoriseerd — maar NIST heeft het al in 2013 verboden voor nieuwe handtekeningen, RFC 8301 schrijft voor dat DKIM-ondertekenaars 2048 zouden moeten gebruiken, en de grote mailboxproviders ondertekenen zelf ook met 2048. 1024 is niet de noodsituatie — dat is 512, gefactoriseerd in 2012 met gehuurde cloud-rekenkracht. Het is de sleutel die u op uw eigen schema roteert, in plaats van, uiteindelijk, op dat van een aanvaller.

Testmodus. RFC 6376 §3.6.1 draagt verifiers op om mail van een domein in testmodus niet anders te behandelen dan onondertekende mail — zelfs als de handtekening perfect klopt. De vlag bestaat zodat u DKIM tijdens de uitrol risicoloos kunt uitproberen. Het addertje is dat hij te goed werkt: er gaat niets kapot zolang hij aanstaat, dus wordt hij nooit verwijderd. Uw domein ondertekent dan jarenlang mail voor niets. Vindt deze tool er een, dan bestaat de oplossing uit het verwijderen van vier tekens.

Een bewuste intrekking. RFC 6376 definieert een lege p= als „deze publieke sleutel is ingetrokken”. Het is de juiste doodverklaring voor een selector die u heeft uitgefaseerd, en duidelijker dan het record verwijderen, wat er hetzelfde uitziet als een typfout. Daaruit volgen twee lezingen. Bent u van deze selector weg geroteerd en ondertekent niets er meer mee, dan is het gewoon hygiëne: laat het zo. Ondertekent een afzender er nog steeds mee, dan faalt elk van die berichten op dit moment op DKIM. Controleer uw DMARC-rapporten op dkim=fail bij deze selector.

Verifiers moeten tot 4096 bit ondersteunen (RFC 8301). Maar een 4096-bit sleutel levert een TXT-waarde op die lang genoeg is om gesplitst te moeten worden, en dat verknoeien sommige DNS-provider-UI's. Voor een sleutel die u toch al zou moeten roteren, levert dat geen praktische winst op ten opzichte van 2048, dus 2048 is de sweet spot. De andere richting is k=ed25519 (RFC 8463): piepkleine sleutels van 32 bytes, moderne cryptografie. Ondersteuning bij verifiers is nog niet universeel, dus opzetten die dit gebruiken, ondertekenen doorgaans dubbel met RSA erbij. Deze tool leest k= uit en meldt welke u heeft gepubliceerd.

Alleen — nee, en dat zeggen we liever eerlijk. DKIM bewijst twee dingen: het bericht is sinds ondertekening niet gewijzigd, en het d=-domein staat ervoor in. Het bewijst niet dat de From:-regel die uw lezer ziet, overeenkomt met dat domein — een vervalser kan foutloos ondertekenen met zijn eigen domein terwijl hij het uwe toont. Dat gat dichten is de taak van DMARC (alignment), en bepalen welke servers überhaupt mogen verzenden is de taak van SPF. De werkende stack is SPF + DKIM + DMARC. Deze tool zorgt ervoor dat de DKIM-poot echt is — een ingetrokken of testmodus-sleutel ondermijnt de andere twee ongemerkt.

Gratis tools zijn pas het begin.
Uptimia houdt uw sites gezond.

Uptime, SSL, Vervaldatum domein, paginasnelheid, transacties — gemonitord vanuit 171+ locaties wereldwijd. 30 dagen gratis.

30 dagen gratis geen kaart Altijd opzegbaar gratis plan na de proefperiode
100.000+ gemonitorde websites · AVG-conform