Hvorfor mail overhovedet har brug for det her
Her er den ubehagelige sandhed om mail: den blev designet i starten af 1980'erne til et lille netværk af mennesker, der stolede på hinanden. Som udgangspunkt kan hvem som helst sende en mail, der siger, at den er fra [email protected]. Der er intet i den grundlæggende protokol, der stopper dem.
SPF, DKIM og DMARC blev tilføjet senere for at løse det. Sammen lader de modtagersiden, for eksempel Gmail, Outlook eller Yahoo, besvare ét spørgsmål: kommer denne mail virkelig fra det domæne, den påstår? Når svaret er nej, ryger mailen i spam eller bliver afvist. Hvis dit eget domæne ikke har dem sat op, kan dine ægte mails blive behandlet som forfalskninger.
En hurtig sammenligning hjælper:
- SPF er gæstelisten: hvilke servere der må sende mail for dit domæne.
- DKIM er lakseglet: en signatur, der beviser, at mailen ikke er blevet ændret undervejs.
- DMARC er instrukserne til dørmanden: hvad der skal ske, når en mail ikke består tjekkene, og hvem der skal have besked.
SPF: gæstelisten
SPF (Sender Policy Framework) er en enkelt tekstlinje, som du offentliggør i dit domænes DNS. Den lister de servere og tjenester, der må sende mail på dine vegne. Når Gmail modtager en mail fra dit domæne, slår den listen op og tjekker, om serveren, der sendte den, står på den.
En typisk SPF-post ser sådan ud:
v=spf1 include:_spf.google.com include:sendgrid.net ~allLæst fra venstre mod højre:
v=spf1: "dette er en SPF-post".include:_spf.google.com: Google Workspace må sende for mig.include:sendgrid.net: det må SendGrid også (for eksempel til mails fra min app).~all: alt andet er sandsynligvis ikke mig, så vær mistænksom. (-allbetyder "helt sikkert ikke mig, afvis den".)
Der er også en grænse på 10 DNS-opslag i én SPF-post. Hver include: tæller med, og det gør de includes, der ligger inde i dem, også. Hvis du bruger mange tjenester, kan du ramme grænsen uden at opdage det, og så fejler SPF for alle.
DKIM: lakseglet
SPF tjekker, hvorfra en mail kom. DKIM (DomainKeys Identified Mail) tjekker, at selve mailen ikke er blevet pillet ved. Din mailtjeneste signerer hver udgående besked med en privat nøgle, som kun den kender. Du offentliggør den tilhørende offentlige nøgle i din DNS. Den modtagende server bruger den offentlige nøgle til at tjekke signaturen.
Hvis nogen ændrede mailen undervejs, bare et enkelt ord i teksten, passer signaturen ikke længere. Det er ligesom lakseglet på et gammelt brev: hvis seglet er brudt, ved du, at nogen har åbnet det.
En DKIM-post offentliggøres under et særligt navn, for eksempel google._domainkey.yourdomain.com, og værdien ser nogenlunde sådan ud:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1...Den gode nyhed: du skriver aldrig det her selv. Din mailudbyder genererer det, og du kopierer det bare ind i din DNS. Ordet før ._domainkey (her google) kaldes en selector. Den gør det simpelthen muligt at have flere nøgler, én pr. tjeneste.
DMARC: instrukserne til dørmanden
SPF og DKIM giver den modtagende server fakta. DMARC (Domain-based Message Authentication, Reporting and Conformance) fortæller den, hvad den skal gøre med de fakta. Den tilføjer også en vigtig regel, der hedder alignment: det domæne, der består SPF eller DKIM, skal matche det domæne, læseren faktisk ser i "Fra"-linjen. Uden den regel kunne en svindler bestå SPF med sit eget domæne og samtidig vise dit.
En DMARC-post ligger på _dmarc.yourdomain.com og ser sådan ud:
v=DMARC1; p=none; rua=mailto:[email protected]p=none: bare hold øje, bloker ikke noget endnu. Perfekt til at starte med.p=quarantine: send mails, der ikke består, til spam.p=reject: afvis mails, der ikke består, helt. Den stærkeste beskyttelse.rua=mailto:...: hvor modtagerne skal sende dig daglige opsummeringsrapporter.
De rapporter er den skjulte perle. De viser dig hver eneste server, der sender mail med dit domæne, inklusive tjenester, du havde glemt, og alle, der prøver at udgive sig for at være dig.
Sådan sætter du dem op, trin for trin
Lad os sige, at du ejer myshop.com, bruger Google Workspace til din postkasse og en tjeneste som SendGrid eller Mailgun til ordrebekræftelser. Her er rækkefølgen, jeg ville gøre det i:
- Lav en liste over alt, der sender mail som dit domæne: din mailudbyder, dit website eller din app, nyhedsbrevsværktøj, helpdesk, faktureringsprogram. Det er det trin, folk springer over, og det, der giver flest problemer senere.
- Opret én SPF-post i din DNS (en TXT-post på
myshop.com), der inkluderer dem alle, og som slutter med~all. - Slå DKIM til i hver tjeneste. Hver af dem giver dig en post, du skal kopiere ind i DNS. Tryk derefter på "verify" eller "start authenticating" i den tjeneste.
- Tilføj en DMARC-post med
p=noneog en rapportadresse på_dmarc.myshop.com. - Vent en til to uger, og læs rapporterne. Ret alt legitimt, der fejler.
- Stram politikken til
p=quarantineog senere tilp=reject, når du er sikker på, at al din rigtige mail består.
Sådan tjekker du dem på enhver mail, du modtager
Du behøver ingen værktøjer. Din mailapp viser allerede resultaterne:
- Gmail: åbn mailen, klik på de tre prikker og derefter Vis original. Øverst ser du linjer som
SPF: PASS,DKIM: PASSogDMARC: PASS. - Outlook: åbn beskeden, vælg derefter View og View message details (eller Message source), og kig efter headeren
Authentication-Results. - Apple Mail: View, derefter Message og så All Headers.
En rigtig header ser nogenlunde sådan ud:
Authentication-Results: mx.google.com;
dkim=pass header.d=myshop.com;
spf=pass smtp.mailfrom=myshop.com;
dmarc=pass (p=QUARANTINE) header.from=myshop.comTre gange bestået og domæner, der matcher: den mail er ægte. Hvis du ser fail, eller domænerne ikke matcher den afsender, du ser, så vær forsigtig. Det er et af de advarselstegn, jeg gennemgår i sådan genkender du en phishing-mail.
Hvis du sætter dit eget domæne op, er en hurtig måde at teste på at sende en mail til en midlertidig indbakke og til en Gmail-adresse og derefter tjekke headerne på Gmail-kopien. Det tager to minutter og viser dig præcis, hvad omverdenen ser.
Almindelige problemer og hurtige løsninger
- "SPF: softfail" eller "neutral": serveren, der sendte mailen, står ikke i din SPF-post. Tilføj tjenesten med den
include:, den giver dig. - "SPF permerror": som regel to SPF-poster eller mere end 10 opslag. Slå dem sammen til én post, og fjern tjenester, du ikke længere bruger.
- "DKIM: fail" efter at du har redigeret en skabelon: noget har omskrevet mailen, efter at den blev signeret (nogle videresendelsestjenester og mailsignaturer gør det). Send direkte, og test igen.
- DMARC fejler, selvom SPF består: alignment. SPF bestod for din afsendertjenestes domæne, ikke for dit. Slå DKIM til med dit eget domæne i den tjeneste, eller sæt et eget return-path-domæne op.
- Mails ryger stadig i spam, selvom alt består: godkendelse beviser, hvem du er, ikke at folk gerne vil have din mail. Indhold, afsenderomdømme og antal klager betyder også noget. Jeg har skrevet mere om det i hvorfor app-mails ender i spam.
Har du virkelig brug for alle tre?
Ja. Siden 2024 har Gmail og Yahoo krævet SPF, DKIM og en DMARC-post af alle, der sender mail i større mængder, og selv små afsendere får meget bedre levering med alle tre på plads. Endnu vigtigere: DMARC med p=reject er det, der forhindrer svindlere i at sende falske mails i dit navn til dine egne kunder.
Opsætningen tager en eftermiddag. Derefter beskytter den stille og roligt dit domæne hver eneste dag. Hvis du har et domæne og har skubbet det her foran dig, så er det her dit tegn. Start med p=none i dag. Du kan altid stramme op senere.