DKIM-signatur: En grundbog om, hvad det er, hvorfor du har brug for det, og hvordan det fungerer.
Domænenøgler Identificeret post (DKIM) er en metode til autentificering af e-mail, der gør det muligt for en organisation at tage ansvar for en afsendt meddelelse. Den anvender kryptografi med offentlige nøgler til at "underskrive" e-mails digitalt, hvilket beviser over for modtagerne, at meddelelsen er sendt af domæneejeren. Modtagerne kan kontrollere signaturen ved at sammenligne den med deres domænes offentliggjorte offentlige nøgle for at verificere signaturen.
I denne artikel vil DKIM blive gennemgået i detaljer og give dig et overblik over, hvordan denne e-mail-godkendelsesmetode fungerer.
Hvad er DKIM-signatur?
DKIM står for DomainKeys Identified Mail. Det er et system til autentificering af e-mail, der sikrer integritet og ikke-afvisning ved hjælp af kryptografiske signaturer. Det sammen med DMARC kan hjælpe med at opbygge en robust infrastruktur til beskyttelse mod forfalskning af dine e-mails.
DKIM-protokollen opretter en kryptografisk signatur for hver meddelelse, der sendes til modtagerne, samt en domænesignatur, der tilføjes til meddelelsens header.
Denne signatur bruges af modtageren til at bekræfte, at meddelelsen rent faktisk er sendt af domæneejeren og ikke af en anden person. Den bekræfter også, at der ikke er blevet manipuleret med meddelelsen på dens vej fra afsender til modtager.
Hvis det ikke passer, skal du enten:
- meddelelsen blev ændret under transmissionen, eller
- Meddelelsen sendes på vegne af en anden person, som har adgang til den afsendende servers private nøgle
I sådanne tilfælde med uoverensstemmende signaturer vil DKIM forhindre, at disse e-mails leveres til de tiltænkte modtagere, fordi de ikke vil kunne validere dem som legitime meddelelser fra dit brand.
Hvordan fungerer en DKIM-signatur?
DKIM-signaturer fungerer ved at indsætte en digital signatur i e-mailens header. Denne signatur kan verificeres af den modtagende server og bruges til at afgøre, om en e-mail er blevet manipuleret under transporten eller ej.
DKIM anvender kryptografi med offentlige nøgler, som er baseret på et par nøgler: en privat og en offentlig nøgle. Den offentlige nøgle distribueres til alle, der ønsker den, mens den private nøgle holdes hemmelig (normalt af ejeren).
Når du signerer en e-mail ved hjælp af DKIM, bruges din private nøgle til at oprette en hash af meddelelsens indhold og derefter kryptere denne hash med modtagerens offentlige nøgle. Denne krypterede hash indsættes derefter i din meddelelses header, hvor den kan valideres af modtageren.
Nøglerne i DKIM-signaturen
DKIM-signaturer genereres ved hjælp af to kryptografiske nøgler, en offentlig og en privat nøgle. Den offentlige nøgle offentliggøres i DNS, mens den private nøgle holdes hemmelig.
Når en e-mail signeres, bruges den private nøgle til at generere en hash af meddelelsen. Denne hash krypteres derefter med den offentlige nøgle og sendes sammen med selve meddelelsen.
Når modtageren modtager disse oplysninger, bruger han/hun sin private nøgle til at dekryptere hash-koden og kontrollere, at den stemmer overens med meddelelsens oprindelige indhold.
Dele af DKIM-signaturen
En DKIM-signatur består af to dele: en header og en body. Overskriften indeholder oplysninger om afsenderens identitet, herunder e-mailadresse og offentlig nøgle. Kroppen indeholder den faktiske meddelelse, der blev sendt.
- For at beregne en DKIM-signatur skal du først tage en MD5-hash af dit domænenavn (f.eks. "example.com"), som er din offentlige nøgle.
- Derefter sammenkæder du dit domænenavn med en SHA1-hash (f.eks. "sha1(example.com)") og føjer den til den oprindelige besked, der blev sendt.
- Du tager derefter en anden MD5-hash af denne kombinerede streng (f.eks. "md5(sha1(example.com))") og vedhæfter den som en header i begyndelsen af din meddelelse, inden du sender den til levering.
Trin i forbindelse med DKIM-signering
Kom godt i gang med DKIM:
- Det første skridt er at oprette en privat nøgle, som bruges til at signere meddelelsen.
- Det andet trin er at oprette en offentlig nøgle, som bruges til at verificere signaturen.
- Det tredje trin er at generere to DNS TXT-poster: en for den offentlige nøgle og en anden for selector-navnet.
- Det fjerde trin er at offentliggøre disse poster i din DNS-zonefil.
Trin i forbindelse med DKIM-signering:
1. Afsenderen genererer en meddelelse med en unik identifikator, der kaldes en kryptografisk hashfunktion (normalt SHA-256). Denne unikke identifikator kaldes et DKIM-Signatur-hovedfelt og indeholder oplysninger om, hvem der har underskrevet den, og hvornår de har gjort det.
2. Afsenderen tilføjer yderligere headerfelter til meddelelsen, som indeholder oplysninger om:
- hvor længe meddelelsen skal anses for at være gyldig i
- hvor ofte signaturen skal genkontrolleres for gyldighed
- om signaturer skal valideres ved hjælp af en ekstern tjeneste som f.eks. SPF (Sender Policy Framework)
- hvilke nøgler der blev brugt til at underskrive denne meddelelse
3. Endelig vil modtagere, der ønsker at verificere disse signaturer, bruge deres kopi af deres afsenders offentlige nøgle fra deres DNS-poster eller en mellemliggende tjeneste som SenderID eller Mailgun og derefter bruge den til at validere meddelelser med DKIM-headere tilknyttet.
Forståelse af de tags, der anvendes i DKIM-signaturen
Dette er et eksempel på, hvordan en DKIM-signaturpost kan se ud:
DKIM-signatur: v=1; a=rsa-sha256; s=jun2005.eng; c=afspændt/afspændt; d=example.com; s=dkim; t=1526555738; bh=mhU6OJb5ldZf+z/pX9+0Nc4tj/lmyYHWbR8LgI2Q=; h=To:Fra:Emne:Dato:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding; b=s1sdZCzdX9vxocsMSlT7cOrYixl1g8wfkdzrVe7BGN6ZdPV9xu2A |
v= Dette tag fortæller os versionen af DKIM.
a= Angiver den algoritme, som underskriveren bruger til at generere sin offentlige nøgle. Det kan være en af RSA1_5, RSA-SHA1 eller RSASSA-PSS. Hvis dette mærke mangler, antages RSA-SHA1.
c= Angiver den kanoniseringsalgoritme, der anvendes til at generere hashes fra headerfelter som krævet i [BCP14]. Dette efterfølges af en kommasepareret liste med 1 eller flere kanoniseringsalgoritmer (f.eks. "c=relaxed"). Hvis dette tag udelades, antages afslappet kanonisering.
d= Angiver, hvilket domænenavn der skal bruges ved generering af signaturer for meddelelser, der sendes af denne server (eller en anden modtager).
s= "s"-mærket er den selektorstreng, som bruges af en modtagende server til at bestemme, hvilken offentlig nøgle der skal bruges til at verificere signaturen.
t= Tidsstempelmærket bruges til at registrere, hvornår signaturen blev oprettet, og er typisk repræsenteret som et Unix-tidsstempel (antallet af sekunder siden 1. januar 1970).
bh= Dette tag repræsenterer hash-koden, som er en krypteret version af din meddelelses indhold (inklusive overskrifter). Dette hjælper med at forhindre manipulation af meddelelser, efter at de er blevet signeret af DKIM, og før de når frem til de tilsigtede modtagere.
h= Hash-værdien for headere indeholder alle headere i deres helhed (herunder dem, der er signeret af Sender Policy Framework eller DomainKeys Identified Mail), undtagen dem, der udtrykkeligt er blevet udelukket ved at medtage dem på en udelukkelsesliste. Denne værdi skal beregnes ved hjælp af SHA-1 eller MD5.
b= "b"-mærket er den base64-kodede repræsentation af en kryptografisk hash-funktion på den kanoniserede krop af meddelelsen (dvs. efter at MIME-kodningen er fjernet).
Generering af en DKIM-signatur
- Generer en offentlig og privat nøgle.
- Generer en DKIM-hoved- og fodtekst.
- Signér indholdet af e-mailen med din private nøgle ved hjælp af den valgte algoritme, f.eks. RSA-SHA256 eller RSA-SHA512
- Komprimerer meddelelsen ved hjælp af den valgte algoritme, f.eks. deflate eller ingen.
- Indsæt DKIM-headere i begyndelsen af meddelelsen før eventuelle MIME-headere.
- Indsæt DKIM-fodteksten efter eventuelle MIME-fodtekster.
Sikring af gyldigheden af DKIM-signaturen
Der kan tages nogle skridt for at sikre, at DKIM-signaturen er gyldig:
- Bestem, om du vil bruge en traditionel DKIM-signeringsalgoritme eller en optimeret algoritme.
- Beregn en hash-værdi for din meddelelses header og krop (dette vil typisk være SHA-256).
- Vælg en passende signeringsalgoritme (f.eks. RSA eller ECDSA).
- Kontroller, at din offentlige nøgle passer til den vælger, du angav tidligere i trin 1 (dette gøres ved hjælp af DNS).
- Signér din besked ved hjælp af din private nøgle, og gem den som en ASCII-streng i Base64-format i overskriften på din e-mail (ud over at placere den i DNS).
Verifikation af en DKIM-signatur
DKIM-signaturverifikation er kompliceret. Det kræver stor ekspertise at oprette og vedligeholde den, og den bruges ofte sammen med andre systemer som SPF, som også er komplicerede.
Som følge heraf bruger de fleste e-mail marketingfolk et værktøj til verifikation af DKIM-signaturer som f.eks. DKIM-record checker til at kontrollere deres DKIM-signaturer. Dette værktøj kontrollerer de DKIM-nøgler, der er blevet tilføjet til en e-mail, og verificerer dem i forhold til en offentlig database. Hvis nøglerne er gyldige og pålidelige, kan e-mailen anses for at være legitim.
Det er vigtigt af flere grunde: For det første sikrer det, at dine e-mails ikke bliver markeret som spam af internetudbydere eller internetudbydernes kunder, for det andet kan du undgå, at dit domæne bliver sortlistet af andre domæner (dette kaldes domæneforgiftning), og endelig er det med til at sikre, at dine e-mails ikke bliver fanget i nogen form for man-in-the-middle-angreb.
Konklusion
DKIM er en lovende løsning, der gør det muligt for en organisation at validere legitimiteten af e-mails, især dem fra eksterne afsendere. Når den anvendes konsekvent i et messaging-miljø, giver den modtagerne en høj grad af sikkerhed for, at en e-mail er sendt af en autoriseret repræsentant for afsenderens domæne. Det er dog vigtigt at bemærke, at DKIM ganske vist giver en verifikationsmekanisme, men at det ikke er nok til at beskytte mod angreb på e-mailsvindel som spoofing og phishing. For at en DMARC-politik som afviser er obligatorisk.
Har du brug for hjælp?
E-mail-godkendelse er en nødvendig del af enhver virksomheds digitale markedsføringsstrategi. Med så mange e-mails, der sendes og modtages hver dag, er det let for dit brand at blive tabt i mængden. Men med e-mail-autentificeringstjenester fra PowerDMARC kan du sikre, at dine e-mails bliver set af de rigtige personer.
Vores løsning til autentificering af e-mail hjælper dig:
- Forøg e-mailleveringsmulighederne ved at verificere dit domænenavn og DKIM-signatur
- Forbedre dit brand image ved at vise modtagerne, at du er en lovlig virksomhed
- Forbedre den samlede kundeoplevelse ved at sikre, at de kun ser legitime meddelelser fra dig
- DMARC Black Friday: Forstærk dine e-mails i denne feriesæson - 23. november 2023
- Google og Yahoo opdaterede kravene til e-mail-autentificering i 2024 - 15. november 2023
- Hvordan finder man den bedste DMARC-løsningsudbyder til sin virksomhed? - 8. november 2023