Epost tillot i utgangspunktet at en hvilken som helst maskin på internett kunne sende ut meldinger med en hvilken som helst epostadresse som avsender. Litt på samme måten som at hvem som helst kan sende et brev eller postkort og oppgi en vilkårlig avsender, f.eks. Erna Solberg eller Donald Trump. Etter hvert begynte imidlertid spammere og svindlere å forfalske epostmeldinger i stor stil, og det ble klart at det var behov for en mekanisme for å definere hvilke servere som hadde rett til å sende ut epostmeldinger for en gitt epostadresse. SPF er resultatet av dette.

SPF står for Sender Policy Framework, og er en mekanisme for å beskrive hvem som får sende fra et gitt domene i DNS, slik at man gjør det vanskeligere for uvedkommende å sende epost fra dette domenet.

SPF er en tekststreng som legges inn som en TXT-oppføring i DNS-sonen for hvert enkelt domene. Den inneholder informasjon om hvilke epost-tjenere som får sende epost med det domenenavnet som avsenderadresse, og hvor strengt domenet ønsker at dette håndheves.

Merk at det ikke er noen garantier med SPF, SPF er avhengig av støtte i mottakers epost-tjener for at det skal fungere. Det betyr at selv om du har en streng SPF-oppføring for ditt domenenavn, så er ikke det noen garanti mot andre at epost-mottakere kan motta forfalsket epost med ditt domene som avsender.

Det var tidligere et forsøk på å få SPF som en egen type oppføring i DNS (RR-type), men dette har de gått bort i fra.

Et eksempel

La oss si at ola@mittnavn.no sender en epost til kundeservice@domeneshop.no, da vil epost-tjenerne for domeneshop.no sjekke om mittnavn.no har SPF-informasjon i DNS. Deretter sjekker den om avsender-tjeneren er oppført i SPF-informasjonen. Hvis den ikke er i listen, så ser man om SPF krever at eposten skal avvises eller om den kan leveres.

Formatet på SPF er presist definert. En slik oppføring må til en hver tid starte med:

v=spf1

Etter det kommer en liste av informasjon, hvert element i listen er skilt med et mellomrom. Hvert element består av minimum én type og én verdi dersom typen krever det. Her følger en beskrivelse av de vanligste typene:

Type Beskrivelse Eksempel
A Henter IP-adressene fra A-oppføringen i DNS. a
IP4 Oppgir IP-adresse versjon 4 (eller adresserom). ip4:194.63.252.25
IP6 Oppgir IP-adresse versjon 6 (eller adresserom). ip6:2a01:5b40:0:5000::/52
MX Henter tjener-adressene for innkommende epost for avsenderdomenet mx
INCLUDE Henter inn SPF fra et annet domenes SPF-oppføring include:_spf.domeneshop.no
ALL Alle (øvrige) tjenere. all

I tillegg er det noen operatorer som sier noe hvordan de forskjellige elementene skal påvirke resultatet.

Operator Beskrivelse Eksempel
+ Godkjent. Dette er også standard dersom det ikke er oppgitt noen annen operator og er derfor lite brukt. +mx
? Nøytral. Brukes denne betyr det at det skal tolkes som at det ikke finnes noen regel. ?a
~ (tilde) Lett feil. Den er ikke rett, men det er greit. ~ipv4:127.0.0.1
- (minus) Feil. Eposten bør avvises. -all

Disse operatorene benyttes som regel sammen med “ALL” typen. Man oppfører ofte alt som er godtatt og så sier tilslutt hva som skal skje med resten.

Alle domener hos oss har per mars 2016 følgende innslag som standard, forutsatt at administratoren ikke har lagt inn eller endret SPF selv:

v=spf1 include:_spf.domeneshop.no ~all

Den tolkes som at den skal slå opp SPF-oppføringen for _spf.domeneshop.no, og godta alle andre under tvil (tilde). Dette er for å gjøre det mulig for deg å sende ut epost på vegne av ditt domene via din internettleverandør.

_spf.domeneshop.no ser nå slik ut:

v=spf1 ip4:194.63.248.0/23 ip4:194.63.252.0/24 ip6:2a01:5b40:0:248::/64 ip6:2a01:5b40:0:252::/64 ip6:2a01:5b40:0:2000::/51 ip6:2a01:5b40:0:5000::/52 ip6:2a01:5b40:0:6000::/52 ~all

Den er litt mer komplisert, den lister opp en rekke IP-adresser som skal godkjennes, og tilslutt godta alle andre under tvil (på grunn av tilden).

En vanlig feil er at SPF er for restriktiv, altså ofte avslutter med “-all” (minus). Hvis man eksempelvis har en webside som sender ut epost fra et kontaktskjema, så er det stor sannnsynlighet for at disse epostene ikke bli levert. Det samme kan skje om en av epost-brukerne sender epost via internettleverandørens SMTP-tjener og den ikke er oppført. Dette er grunnen til at vi ofte anbefaler å bruke tilde eller spørsmålstegn.

En annen vanlig feil er at man oppretter nye SPF-oppføringer (separate TXT-pekere i DNS) for hver server man ønsker å tillate. Da du ikke kan forutsi hvilken oppføring som brukes, og du kan oppleve at vilkårlig epost blir avvist. Dersom du skal tillate flere servere for ditt domene, så skal disse legges til som flere elementer i samme SPF-oppføring.

Hvorfor skal man i det hele tatt bruke SPF dersom man likevel godtar alt? Jo, for det sier noe om hvilke tjenere vi vet at sender epost for domenet. Dermed kan en inngående epost-tjener vurdere det som mindre sannsynlig at epost-adressen er brukt av uvedkommende, og eventuelt velge å behandle epost fra andre kilder som mer sannsynlig spam.

OBS: Noen epostsystemer er feilkonfigurert til å avvise epost selv om det er angitt at man skal godta utsendelser fra andre systemer enn de som står spesifikt i SPF-oppføringen.