Innlegg

Domain Keys Identified Mail ( DKIM ) er en e-postgodkjenningsmetode som lar en organisasjon ta ansvar for en melding som ble sendt. Den bruker kryptografi med offentlig nøkkel for å "signere" e-poster digitalt, og beviser for mottakerne at meldingen ble sendt av domeneeieren. Mottakere kan sjekke signaturen mot domenets publiserte offentlige nøkkel for å bekrefte signaturen.

Denne artikkelen vil undersøke DKIM i detalj og vil gi deg en oversikt over hvordan denne e-autentiseringsmetoden fungerer.

Hva er DKIM-signatur?

DKIM står for DomainKeys Identified Mail. Det er et e-postautentiseringssystem som gir integritet og ikke avvisning ved å bruke kryptografiske signaturer. Det sammen med DMARC kan bidra til å bygge en robust infrastruktur for spoof-beskyttelse for e-postene dine.

DKIM-protokollen oppretter en kryptografisk signatur for hver melding som sendes til mottakere, samt en domenesignatur som legges til meldingshodet.

Denne signaturen brukes av mottakeren for å bekrefte at meldingen faktisk ble sendt av domeneeieren og ikke noen andre. Den bekrefter også at meldingen ikke har blitt tuklet med på veien fra avsender til mottaker.

Hvis det ikke stemmer, så enten:

  1. Meldingen ble endret under overføring, eller
  2. Meldingen sendes på vegne av noen andre som har tilgang til sendeserverens private nøkkel

I slike tilfeller med mismatchende signaturer, vil DKIM forhindre at disse e-postene blir levert til de tiltenkte mottakerne fordi de ikke vil kunne validere dem som legitime meldinger fra merkevaren din.

Hvordan fungerer en DKIM-signatur?

DKIM-signaturer fungerer ved å sette inn en digital signatur i overskriften på en e-post. Denne signaturen kan verifiseres av mottakerserveren og brukes til å avgjøre om en e-post har blitt tuklet med eller ikke under transport.

DKIM bruker offentlig nøkkelkryptering, som er avhengig av et par nøkler: en privat og en offentlig. Den offentlige nøkkelen distribueres til alle som ønsker det, mens den private nøkkelen holdes hemmelig (vanligvis av eieren).

Når du signerer en e-post med DKIM, brukes den private nøkkelen din til å lage en hash av meldingens innhold og deretter kryptere denne hashen med mottakerens offentlige nøkkel. Denne krypterte hashen settes deretter inn i overskriften på meldingen din, hvor den kan valideres av mottakeren.

Nøklene til DKIM-signatur

DKIM-signaturer genereres ved hjelp av to kryptografiske nøkler, en offentlig og en privat. Den offentlige nøkkelen publiseres i DNS, mens den private nøkkelen holdes hemmelig.

Når en e-post er signert, brukes den private nøkkelen til å generere en hash av meldingen. Denne hashen blir deretter kryptert med den offentlige nøkkelen og sendt sammen med selve meldingen.

Når mottakeren mottar denne informasjonen, bruker de sin private nøkkel til å dekryptere hashen og bekrefte at den samsvarer med det opprinnelige innholdet i meldingen.

Delene til DKIM Signature

En DKIM-signatur består av to deler: en overskrift og brødteksten. Overskriften inneholder informasjon om avsenderens identitet, inkludert deres e-postadresse og offentlige nøkkel. Brødteksten inneholder selve meldingen som ble sendt.

  1. For å beregne en DKIM-signatur tar du først en MD5-hash av domenenavnet ditt (for eksempel «example.com»), som er den offentlige nøkkelen din.
  2. Deretter setter du sammen domenenavnet ditt med en SHA1-hash (for eksempel "sha1(example.com)") og legger det til den opprinnelige meldingen som ble sendt.
  3. Du tar deretter en annen MD5-hash av denne kombinerte strengen (for eksempel "md5(sha1(example.com))") og legger den ved som en overskrift i begynnelsen av meldingen før du sender den ut for levering.

Trinn involvert i DKIM-signering

Komme i gang med DKIM:

  1. Det første trinnet er å lage en privat nøkkel, som brukes til å signere meldingen.
  2. Det andre trinnet er å lage en offentlig nøkkel, som brukes ved verifisering av signaturen.
  3. Det tredje trinnet er å generere to DNS TXT-poster: en for den offentlige nøkkelen, og en annen for velgernavnet.
  4. Det fjerde trinnet er å publisere disse postene i DNS-sonefilen din.

Trinn involvert i DKIM-signering:

1. Avsenderen genererer en melding med en unik identifikator kalt en kryptografisk hash-funksjon (vanligvis SHA-256 ). Denne unike identifikatoren kalles et DKIM-Signatur-overskriftsfelt og inneholder informasjon om hvem som signerte den og når de gjorde det.

2. Avsenderen legger til flere overskriftsfelt i meldingen som inneholder informasjon om:

  • hvor lenge meldingen skal anses som gyldig
  • hvor ofte signaturen skal kontrolleres på nytt for gyldighet
  • om signaturer skal valideres ved hjelp av en ekstern tjeneste som SPF (Sender Policy Framework)
  • hvilke nøkler som ble brukt til å signere denne meldingen

3. Til slutt vil mottakere som ønsker å bekrefte disse signaturene bruke sin kopi av avsenderens offentlige nøkkel fra deres DNS-poster eller en mellomtjeneste som SenderID eller Mailgun, og deretter bruke den til å validere meldinger med DKIM-hoder vedlagt.

Forstå taggene som brukes i DKIM-signaturen

Dette er et eksempel på hvordan en DKIM-signaturpost kan se ut:

DKIM-signatur: v=1;

a=rsa-sha256;

s=jun2005.eng;

c=avslappet/avslappet;

d=example.com;

s=dkim;

t=1526555738;

bh=mhU6OJb5ldZf+z/pX9+0Nc4tj/lmyYHWbR8LgI2Q=;

h=Til:Fra:Emne:Dato:Meldings-ID:MIME-Versjon:Innholdstype:Innholdsoverføringskoding;

b=s1sdZCzdX9vxocsMSlT7cOrYixl1g8wfkdzrVe7BGN6ZdPV9xu2A

v= Denne taggen forteller oss versjonen av DKIM.

a= Dette spesifiserer algoritmen som brukes av underskriveren for å generere sin offentlige nøkkel. Det kan være en av RSA1_5, RSA-SHA1 eller RSASSA-PSS. Hvis denne taggen mangler, antas RSA-SHA1.

c= Den spesifiserer kanoniseringsalgoritmen som brukes til å generere hashes fra overskriftsfelt som kreves av [BCP14]. Dette etterfølges av en kommaseparert liste over 1 eller flere kanoniseringsalgoritmer (f.eks. "c=avslappet"). Hvis denne taggen utelates, antas avslappet kanonisering.

d= Det spesifiserer hvilket domenenavn som skal brukes ved generering av signaturer for meldinger sendt ut av denne serveren (eller en annen mottaker).

s= "s"-taggen er velgerstrengen, som brukes av en mottakende server for å bestemme hvilken offentlig nøkkel som skal brukes for å bekrefte signaturen.

t= Tidsstempelkoden brukes til å registrere når signaturen ble opprettet og er vanligvis representert som et Unix-tidsstempel (antall sekunder siden 1. januar 1970).

bh= Denne taggen representerer body-hash, som er en kryptert versjon av meldingens innhold (inkludert overskrifter). Dette bidrar til å forhindre tukling med meldinger etter at de er signert av DKIM og før de når de tiltenkte mottakerne.

h= Header-hash-verdien inneholder alle overskrifter i sin helhet (inkludert de som er signert av Sender Policy Framework eller DomainKeys Identified Mail) bortsett fra de som er eksplisitt ekskludert ved å inkludere dem i en ekskluderingsliste. Denne verdien må beregnes med SHA-1 eller MD5.

b= "b"-taggen er den base64-kodede representasjonen av en kryptografisk hash-funksjon på den kanoniserte brødteksten av meldingen (dvs. etter at MIME-koding er fjernet).

Generering av en DKIM-signatur

  1. Generer en offentlig og privat nøkkel.
  2. Generer en DKIM topp- og bunntekst.
  3. Signer e-postinnholdet med din private nøkkel ved å bruke den valgte algoritmen, for eksempel RSA-SHA256 eller RSA-SHA512
  4. Komprimer meldingen ved å bruke den valgte algoritmen, for eksempel deflater eller ingen.
  5. Sett inn DKIM-hodene i begynnelsen av meldingen før alle MIME-overskrifter.
  6. Sett inn DKIM-bunnteksten etter alle MIME-bunntekster.

Sikre gyldigheten av DKIM-signaturen

Noen skritt kan tas for å sikre at DKIM-signaturen er gyldig:

  1. Bestem om du vil bruke en tradisjonell DKIM-signeringsalgoritme eller en optimalisert.
  2. Beregn en hash-verdi for meldingens overskrift og brødtekst (dette vil vanligvis være SHA-256).
  3. Velg en passende signeringsalgoritme (som RSA eller ECDSA).
  4. Bekreft at den offentlige nøkkelen samsvarer med velgeren du spesifiserte tidligere i trinn 1 (dette gjøres ved å bruke DNS).
  5. Signer meldingen din med din private nøkkel og lagre den som en ASCII-streng i Base64-format i overskriften på e-postmeldingen din (i tillegg til å plassere den i DNS).

Verifisering av en DKIM-signatur

DKIM signaturverifisering er komplisert. Det krever mye ekspertise å sette opp og vedlikeholde, og det brukes ofte sammen med andre systemer som SPF, som også er kompliserte.

Som et resultat bruker de fleste e-postmarkedsførere et DKIM-signaturverifiseringsverktøy som en DKIM-postkontroller for å sjekke DKIM-signaturene deres. Dette verktøyet sjekker DKIM-nøklene som er lagt til en e-post og verifiserer dem mot en offentlig database. Hvis nøklene er gyldige og klarert, kan e-posten anses som legitim.

Dette er viktig av flere grunner: For det første sikrer det at e-postene dine ikke blir flagget som spam av Internett-leverandører eller ISP-kunder; for det andre lar det deg unngå å få domenet svartelistet av andre domener (dette kalles domeneforgiftning); til slutt bidrar det til å sikre at e-postene dine ikke blir fanget opp i noen form for mann-i-midten-angrep.

Konklusjon

DKIM er en lovende løsning som lar en organisasjon validere legitimiteten til e-poster, spesielt de fra eksterne avsendere. Når det brukes konsekvent på tvers av et meldingsmiljø, gir det mottakerne en høy grad av tillit til at en e-post ble sendt av en autorisert representant for avsenderens domene. Det er imidlertid viktig å merke seg at mens DKIM tilbyr en bekreftelsesmekanisme, er det ikke nok til å beskytte mot e-postsvindelangrep som forfalskning og phishing. For det er en DMARC-policy som avvisning obligatorisk.

Trenger hjelp?

E-postautentisering er en nødvendig del av enhver bedrifts digitale markedsføringsstrategi. Med så mange e-poster som sendes og mottas hver dag, er det lett for merkevaren din å gå seg vill i stokkingen. Men med e-postautentiseringstjenester fra PowerDMARC kan du sikre at e-postene dine blir sett av de rette personene. 

Vår e-postautentiseringsløsning vil hjelpe deg:

  • Øk e-postleveransen ved å bekrefte domenenavnet og DKIM-signaturen
  • Forbedre merkevarebildet ditt ved å vise mottakerne at du er en legitim virksomhet
  • Forbedre den generelle kundeopplevelsen ved å sørge for at de kun ser legitime meldinger fra deg