DKIM is een standaard voor e-mailverificatie die gebruik maakt van cryptografie met publieke/private sleutels om e-mailberichten te ondertekenen. Met DKIM-records kunt u controleren of een inkomende e-mail inderdaad is verzonden vanaf het domein waaraan de DKIM-sleutel is gekoppeld. Met een DKIM-record kunt u dus zien of een e-mail onderweg is gemanipuleerd en of het veilig is om te openen.
DKIM bestaat in je DNS als een TXT (Tekst) of CNAME (Canonieke Naam) DNS record. Of je TXT of CNAME moet gebruiken hangt af van een aantal factoren, die hieronder worden besproken.
Belangrijkste opmerkingen
- DKIM is een standaard voor e-mailverificatie die is ontworpen om vervalste e-mailadressen van afzenders te identificeren.
- DKIM-records zijn altijd TXT-records. Sommige providers gebruiken echter CNAME-delegatie om je domein te verwijzen naar een TXT-record dat op hun servers wordt gehost.
- Elk van deze methoden heeft zijn eigen voordelen en beperkingen.
- Of je voor het een of het ander moet kiezen, hangt af van wat je prioriteit heeft: controle en beveiliging of gemak en gemak.
- Veel voorkomende valkuilen zijn een verkeerd selectorformaat, het mengen van TXT/CNAME voor dezelfde selector en TTL-vertragingen tijdens het roteren van toetsen.
DKIM record publiceren begrijpen
Laten we eens doorlopen waar een DKIM record uit bestaat.
Wat staat er in een DKIM record?
Een DKIM-record bevat een selector, een openbare sleutel en een algoritme. U kunt uw DKIM record genereren met de online tool van PowerDMARC.
DKIM Selectors
Met DKIM selectors kan de e-mailserver van de ontvanger de openbare sleutel van de afzender vinden en verifiëren. Het helpt om te bepalen welke DKIM openbare sleutel moet worden gebruikt voor verificatie. U vindt deze in de DKIM-handtekeningheader van elke ondertekende e-mail. Het is de "s=" parameter.
Openbare sleutel
De DKIM publieke sleutel wordt gepubliceerd in de DNS van je domein als een TXT record (of soms een CNAME die verwijst naar de sleutel van je provider). Deze wordt gebruikt door ontvangende servers om de hash van het bericht te verifiëren die is gemaakt met de privésleutel van de afzender, waardoor de integriteit en authenticiteit van e-mail wordt gewaarborgd.
De sleutel, geleverd door de organisatie die je e-mail verzendt, wordt rechtstreeks in je DNS-zone ingevoegd als een TXT-record. Het kan ook een CNAME zijn die verwijst naar de sleutel in de DNS van je provider.
Algoritme
Het algoritme dat wordt gebruikt voor hashing is gedefinieerd in de a= tag van de DKIM-handtekening header (niet in het DNS-record). Ondersteunde DKIM handtekening algoritmen zijn:
- rsa-sha256 (aanbevolen en meest gebruikt)
- rsa-sha1 (verouderd vanwege zwakkere beveiliging)
DNS-locatie en syntaxis
Het DKIM record is een TXT record dat verschillende tag-waarde paren bevat, meestal gescheiden door puntkomma's:
v=DKIM1; k=rsa; p=PUBLIC_KEY
- v=DKIM1 geeft de DKIM-versie aan.
- k=rsa, waarbij "k" verwijst naar het sleuteltype (RSA is de enige die momenteel wordt ondersteund)
- p=PUBLIC_KEY De feitelijke openbare sleutel die gebruikt wordt om de handtekening te verifiëren.
Hier is een voorbeeld: selector._domainkey.example.com
Hier is "selector" een unieke identificatie voor de DKIM-sleutel en example.com is uw domein.
Methode 1 - DKIM als een TXT Record
Met deze methode wordt uw DKIM publieke sleutel gepubliceerd als een DNS TXT-record op de locatie selector._domainkey.example.com. Uitgaande mail wordt ondertekend met de privésleutel en ontvangende servers gebruiken de publieke sleutel in uw DNS om de handtekening te verifiëren.
Voordelen
- Totale controle: Door DKIM als een TXT record te gebruiken, heeft u volledige controle over uw DKIM sleutels en DNS.
- Geen afhankelijkheid van derden: Je hoeft niet afhankelijk te zijn van derden als je deze methode gebruikt. Het geeft je een verhoogd gevoel van privacy en veiligheid omdat jij de eigenaar bent van je gegevens.
Nadelen
- Handmatige sleutelrotatie: Je bent zelf verantwoordelijk voor het bijwerken van sleutels, wat lastig kan zijn voor niet-technische gebruikers.
- Hoger risico op verkeerde configuratie: Zelf instellen verhoogt de kans op fouten die de e-mailbeveiliging kunnen verzwakken. Gebruik onze gratis DKIM-controle om fouten te voorkomen.
Methode 2 - DKIM via CNAME-delegatie
Deze methode werkt heel anders dan de eerste. In plaats van je DKIM publieke sleutel direct te publiceren, maak je een CNAME record aan op selector._domainkey.example.com dat verwijst naar het DKIM record van je e-mail service provider (ESP).
Zodra een ontvangende server je DKIM-sleutel heeft opgezocht, volgt de DNS-query de CNAME naar de DNS van de ESP. Hier wordt het eigenlijke TXT-record met de publieke sleutel gehost. Grote providers zoals SendGrid, Mailchimp en Amazon SES gebruiken dit.
Voordelen
- Automatische toetsrotatie: Deze methode vereist geen handmatige updates en de sleutelrotatie gebeurt automatisch.
- Eenvoudige installatie: Deze methode is meer geschikt voor beginners of voor het beheren van meerdere domeinen. Het maakt naadloos lopend beheer mogelijk zonder het zware werk.
Nadelen
- Minder zichtbaarheid: Gemakkelijkere installatie gaat ten koste van beperkte controle en inzicht in uw DKIM-sleutels en DNS.
- CNAME-beperkingen: Diep geneste of aaneengeschakelde CNAME's kunnen DNS-oplossingslimieten of prestatieproblemen veroorzaken. Sommige providers vereisen specifieke formaten of ondersteunen geen CNAME-delegatie, wat DKIM kan verbreken als het niet wordt opgevolgd.
TXT vs. CNAME - Welke moet je gebruiken?
Wanneer je moet beslissen of je DKIM in TXT vs. CNAME wilt gebruiken, is hier wat algemeen advies dat je moet volgen.
Gebruik TXT als...
- Je host je e-mail zelf en hebt technische expertise
- Je wilt volledige controle over DKIM en DNS.
- Je beheert en roteert sleutels liever zelf.
Opmerking: In sommige gevallen vereist je provider een directe TXT-invoer, waardoor deze methode niet optioneel is.
Gebruik CNAME als...
- Je gebruikt een ESP zoals Mailchimp, SES of SendGrid.
- U geeft de voorkeur aan geautomatiseerd DKIM-beheer.
- Je hebt geen tijd of technische expertise voor handmatige installatie.
TXT/CNAME mengen voor dezelfde selector
DNS staat niet toe dat er zowel een TXT- als een CNAME-record op dezelfde domeinnaam staat (d.w.z. dezelfde DKIM-selector). Gebruik slechts één type record (TXT of CNAME) per selector. Kies TXT voor handmatige controle of CNAME als je delegeert naar een ESP.
Voorbeelden uit de praktijk
Als je op zoek bent naar voorbeelden van DKIM in TXT vs. CNAME, vind je er hier een voor elk, met een beknopte beschrijving.
DKIM TXT Voorbeeld
google._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG..."
Dit record slaat de DKIM publieke sleutel direct op in je DNS onder de opgegeven selector en domein.
DKIM CNAME Voorbeeld
em1234._domainkey.example.com. IN CNAME em1234.example.dkim.emailsvc.com.
Deze record delegeert het opzoeken van DKIM-sleutels naar een externe provider door te verwijzen naar hun gehoste DKIM-record.
Samenvattend
De keuze voor DKIM in TXT vs. CNAME lijkt misschien moeilijk. Beide methoden werken prima en beide worden veel gebruikt, dus de keuze is meestal aan jou. Je keuze zal vaak afhangen van het feit of je de voorkeur geeft aan volledige, directe controle boven gemak, of andersom.
Wat je uiteindelijke keuze ook is, controleer altijd de huidige DKIM-instellingen op naleving. Dit kan u helpen om gaten in de beveiliging te voorkomen en het hoogste niveau van veiligheid voor uw communicatie te garanderen!