Modul 4 · 4.3
DKIM i praksis: selectorer, nøkler og tjenester
Modul 4: Leveringsdyktighet: SPF, DKIM og DMARC i praksis · Lesetid: 12 minutter
Læringsmål: Etter denne leksjonen kan du analysere en DKIM-Signature-header, sette opp DKIM med ditt eget domene for enhver utsendingstjeneste, kontrollere om en selector fungerer, og forklare hvordan du bytter nøkler på en trygg måte.
Nøkkelbegreper: DKIM-Signature, d= (signerende domene), s= (selector), h= (signerte headere), bh= og b=, kanonisering (c=), <selector>._domainkey.<domene>, TXT med p= eller CNAME til tjenesten, nøkkellengde 2048 bit (RFC 8301), biter på 255 tegn, ed25519 (RFC 8463), nøkkelbytte, tom p= (tilbaketrukket), DKIM og videresending
Hvorfor DKIM er den viktigste av de tre
SPF sier hvilke servere som har lov til å sende e-post, men brytes ved videresending og ser på Return-Path, som hos mange tjenester ikke er ditt eget. DKIM setter en signatur i selve e-posten. Denne signaturen overlever videresending (så lenge e-posten ikke endres) og er knyttet til et domene du selv velger. Derfor er DKIM i praksis ofte det eneste som får DMARC til å gå gjennom for nyhetsbrev, fakturaer fra et regnskapsprogram og videresendt e-post.
Grunnlaget (hvordan nøkkelen ligger i DNS, hva en selector er) står i DNS-kurset, leksjon 4.4. Her går vi videre: hva står egentlig i en signatur, og hvordan setter du opp DKIM for enhver tjeneste?
Å analysere en signatur
Åpne headerne til en e-post du har mottatt (leksjon 1.5). Øverst står det, hvis e-posten er signert, noe slikt:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=x;
t=1762588800; h=from:to:subject:date:message-id:mime-version:content-type;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=Gm7yW3q...lang rekke tegn...Qx9A==| Tag | Betydning |
|---|---|
v=1 | DKIM-versjon |
a=rsa-sha256 | Algoritme: RSA-nøkkel, SHA-256. Også mulig: ed25519-sha256 |
c=relaxed/relaxed | Kanonisering: hvor strengt små endringer (mellomrom, store bokstaver i headernavn) behandles, for headerne og teksten. relaxed er vanlig og mer tilgivende enn simple |
d=example.com | Det signerende domenet. Dette domenet står inne for e-posten. DMARC sammenligner dette med Fra-adressen |
s=x | Den selectoren: hvilken nøkkel fra det domenet som er brukt |
t= | Tidspunkt for signering (sekunder siden 1970) |
h= | Hvilke headere som er signert. from må alltid være med |
bh= | Et fingeravtrykk (hash) av teksten i e-posten |
b= | Selve signaturen |
Mottakeren henter den offentlige nøkkelen fra <s>._domainkey.<d>, her altså x._domainkey.example.com, og kontrollerer om b= stemmer med headerne fra h= og fingeravtrykket bh=. Er det underveis endret én bokstav i teksten eller i en signert header, feiler kontrollen.
I Authentication-Results ser du resultatet, for eksempel dkim=pass header.d=example.com header.s=x. En e-post kan ha flere signaturer, for eksempel en fra ditt domene og en fra selve tjenesten. For DMARC teller bare en signatur der d= hører til ditt Fra-domene.
Hver tjeneste sin egen selector
Et domene kan ha mange DKIM-nøkler samtidig, hver under sin egen selector. Det er nettopp meningen: hver tjeneste som sender e-post på dine vegne, signerer med sin egen nøkkel.
| Avsender | Selector (eksempel) | Hvordan det ligger i DNS |
|---|---|---|
| Hostingmailserver | x eller default | TXT med nøkkelen, opprettet av panelet |
| Microsoft 365 | selector1, selector2 | to CNAME-oppføringer til Microsoft |
| Google Workspace | google (standard) | TXT med en nøkkel du lager i administrasjonskonsollen |
| Nyhetsbrevtjeneste | for eksempel k2, k3, mte1 | som regel CNAME-oppføringer til tjenesten |
TXT eller CNAME?
- Med en TXT-oppføring legger du selv inn den offentlige nøkkelen i DNS-en din. Vil tjenesten ha en ny nøkkel, må du selv endre oppføringen.
- Med en CNAME-oppføring peker du selectoren videre til et navn hos tjenesten, for eksempel
k2._domainkey.example.com CNAME dkim2.mailer.example.Tjenesten administrerer da nøkkelen selv og kan bytte den ut uten at du behøver gjøre noe. Derfor velger store tjenester CNAME, og de bruker ofte to: slik kan de veksle mellom en aktiv og en ny nøkkel.
Merk: en CNAME kan ikke stå sammen med en annen oppføring på samme navn. Ligger det allerede en TXT på selector1._domainkey, fjern den da.
Det viktigste: slå på DKIM hos tjenesten
Hos mange tjenester er DKIM med ditt eget domene ikke slått på som standard. De signerer da med sitt eget domene (d=mailer.example). E-posten er da signert, men ikke justert mot din Fra-adresse. For DMARC teller ikke det. I administrasjonen av tjenesten heter det ofte «verifiser domene», «domeneverifisering», «autentisering» eller «eget avsenderdomene». Først når du har satt opp oppføringene og slått det på i tjenesten, signerer den med d=example.com.
Nøkler: lengde, biter og algoritme
- Lengde. RFC 8301 sier: minst 1024 bit, og avsendere bør bruke minst 2048 bit. Bruk 2048. En nøkkel på 512 bit blir ansett som ugyldig av mottakere.
- Biter på 255 tegn. En TXT-oppføring består av tegnstrenger på maks 255 tegn. En 2048-bit-nøkkel er omtrent 400 tegn og passer ikke i én streng. Oppføringen består da av to eller flere strenger etter hverandre (
"v=DKIM1; k=rsa; p=MIIBIj..." "...IDAQAB"), som mottakeren limer sammen. De fleste panelene gjør dette automatisk. Går det galt, får du en avkuttet nøkkel og hver signatur feiler. Kopier derfor alltid en nøkkel i sin helhet, uten ekstra mellomrom eller anførselstegn midt i. - ed25519 (RFC 8463) er en mer moderne algoritme med korte nøkler. Ikke alle mottakere kontrollerer den ennå. Den som bruker den, signerer derfor med to signaturer: en RSA og en ed25519.
Å bytte en nøkkel
Det er lurt å bytte en nøkkel av og til, og spesielt hvis du tror den private nøkkelen er lekket (for eksempel etter at serveren er hacket eller en administrator har sluttet). Gjør det slik:
- Lag en ny nøkkel under en ny selector, for eksempel
s2026, og legg den offentlige nøkkelen i DNS. - Vent til oppføringen er synlig overalt (TTL, se DNS-kurset leksjon 6.1).
- La serveren signere med den nye selectoren.
- La den gamle nøkkelen stå noen dager til: e-post som allerede var underveis eller kontrolleres på nytt, viser fortsatt til den.
- Trekk tilbake den gamle nøkkelen ved å tømme
p=(v=DKIM1; p=), eller fjern oppføringen.
Hos tjenester med CNAME-oppføringer gjør tjenesten dette selv.
Hva som får DKIM til å feile
- E-posten endres underveis: en e-postliste som setter
[listenavn]i emnet eller legger til en bunntekst, en virusskanner som limer en linje under e-posten, en videresendingsserver som gjør om formateringen. - Feil eller avkuttet nøkkel i DNS.
- Selectoren finnes ikke: en skrivefeil i navnet, eller
selector1._domainkey.example.com.example.com(domenenavnet dobbelt, fordi panelet selv legger det til bak). - Nøkkel tilbaketrukket (tom
p=) mens serveren fortsatt signerer med den selectoren.
Kontrollere om det fungerer
- Send en e-post fra tjenesten til en adresse hos Gmail eller Outlook.com.
- Åpne headerne og finn
DKIM-Signature: noterd=ogs=. - Se i
Authentication-Resultsom det stårdkim=pass, og omheader.d=er ditt domene. - Slå opp selectoren:
dig TXT s._domainkey.example.com(eller med et nettbasert verktøy). Det skal stå enp=med en lang nøkkel, eller en CNAME som peker til en slik oppføring.
I praksis: slik ser det ut i et panel
Hos en hostingpakke fra WebOké er DKIM slått på som standard, med selectoren x: oppføringen heter x._domainkey.<dittdomene>. I DirectAdmin ser du det i DNS Administration; ligger DNS-en din hos en annen leverandør, kopierer du oppføringen dit. I Min side viser kortet Set E-mail hvilken verdi som skal stå der, og om den blir funnet. Hos andre leverandører heter selectoren noe annet (default, mail, dkim), men du finner den på samme måte: i panelet eller i s= i en signert e-post.
Oppsummering
- DKIM er kontrollen som overlever videresending, og som du kobler til ditt eget domene per tjeneste; for DMARC teller bare en signatur med ditt domene i
d=. - I
DKIM-Signaturefinner dud=(domene) ogs=(selector); nøkkelen ligger på<s>._domainkey.<d>. - Hver tjeneste får sin egen selector; CNAME-oppføringer lar tjenesten selv bytte nøkler. Slå virkelig på DKIM med ditt eget domene hos tjenesten også.
- Bruk 2048 bit; vær oppmerksom på avkuttede nøkler ved kopiering.
- Bytt en nøkkel med en ny selector, og trekk først tilbake den gamle etterpå.
Quiz
Oppgave
Oppgave Z4.3: Kontrollere en DKIM-selector. Send en e-post fra ditt eget domene (eller fra en tjeneste som sender på dine vegne) til en egen adresse hos en annen leverandør. Åpne headerne og fyll inn verdiene for d= og s= fra DKIM-Signature, og det som står i Authentication-Results ved dkim=. Programmet slår opp selectoren live, følger en eventuell CNAME, kontrollerer nøkkelen (tilstede, ikke tom, lengde) og forteller om d= er justert mot domenet du oppgir som avsender.
Les mer
Trinnene i disse artiklene gjelder for panelene til WebOké; hos andre leverandører fungerer det på tilsvarende måte.
- Gratis DNS-kurs 4.4: DKIM: signaturen under e-posten din
- DirectAdmin-veiledning 5.8: Slå på og kontrollere DKIM
- Sette opp DKIM når DNS ligger på en ekstern server
- WebOké-veiledning 6.7: Kortet Sett opp e-post (MX, SPF, DKIM, DMARC)
- RFC 6376 (DKIM), RFC 8301 (nøkkellengde og algoritmer), RFC 8463 (ed25519)
