SPF record onder de loep

Een Elementaire Uitleg over het SPF record

Wat SPF doet

  1. Valideert de "envelope from";
  2. De verzender autoriseren;
  3. Domeinreputatie verhogen.

Wat SPF niet doet

  1. Valideert de "header from";
  2. Geforwarde e-mails beschermen;
  3. Rapportage (zoals DMARC doet).

Een belangrijk probleem met e-mail is het feit dat domeinnamen (@jouwdomein.nl) gemakkelijk kunnen worden vervalst. Het versturen van e-mails uit naam van iemand anders is geen rocket science. Als gevolg hiervan zijn veel personen en organisaties in de loop der jaren ten prooi gevallen aan frauduleuze e-mails. Aangezien e-mail een relatief oud systeem is (het bestaat al sinds de jaren 70!) - zijn er in de loop der jaren ook veel beschermingsmaatregelen ontwikkeld. Een van deze maatregelen is SPF; het Sender Policy Framework.

In dit artikel gaan we in op hoe SPF werkt.

Het Sender Policy Framework (SPF)

Simpel gezegd: een SPF record is een stukje tekst in de DNS instellingen van je domein (yourbusiness.com) dat het beschermt tegen spoofing (misbruikt door anderen). Veel spamfilters en mailservers gebruiken een algoritme om e-mails als gewenst of ongewenst te markeren, vaak op basis van dit record. Het Sender Policy Framework vertelt de ontvangende mailserver (zoals Gmail) dat het domein wordt gebruikt door iemand die daar toestemming voor heeft.

E-mail zonder SPF

Email communicatie vindt plaats tussen twee mailservers: de uwe en degene die uw ontvanger gebruikt - het SMTP protocol. Uw server geeft in principe de informatie die u wilt verzenden door aan uw ontvangers. Het probleem is echter dat een afzender om het even welke naam of afzenderadres kan gebruiken. Op deze manier kunnen we gemakkelijk de afzender vervalsen en zeggen dat we Google, Amazon of een ander groot merk zijn, ook wel spoofing genoemd.

E-mail met SPF

Met het Sender Policy Framework (SPF) kan de ontvangende server controleren of de e-mail die je verstuurt ook echt van jou afkomstig is. Het SPF record bevat een lijst van IP adressen die namens u mogen verzenden. Als de afzender e-mail verzendt vanaf een IP-adres dat niet op die lijst staat, komt het niet door de SPF-controle. Later leggen we uit hoe dat werkt.

De post analogie: Stel je voor dat je een brief verstuurt met je naam op de enveloppe en op de brief zelf. Theoretisch zou je op elk van deze plaatsen een andere naam kunnen gebruiken. In het echte leven zal de ontvanger het verschil echter onmiddellijk opmerken. Bij e-mail krijgt de ontvanger de enveloppe echter nooit te zien. Er kan van alles op staan.

De SPF RFC

Hoe SPF records werken is te vinden in RFC7208. Deze documentatie beschrijft hoe SPF werkt in de communicatie tussen twee mail servers: Publiceren aan de ene kant, autoriseren aan de andere kant. De communicatie gebeurt meestal tijdens de zogenaamde SMTP transactie, waarbij de ene mailserver (MTA) een e-mail aanbiedt aan de andere mailserver. Tijdens de autorisatie wordt de afzender gecontroleerd, geëvalueerd en voorzien van feedback.

SMTP protocol in action
Hoe SMTP werkt

De vier stappen van het Sender Policy Framework

Publiceren van een SPF record

Het verzendende domein publiceert het SPF record, inclusief geautoriseerde IP adressen. Deze adressen mogen namens het betreffende domein e-mails versturen. Tijdens de e-mailtransactie worden de namen "HELO" en "MAIL FROM" voor dit doel gebruikt. Hierdoor kan de verzendende mailserver zich kenbaar maken aan de ontvangende mailserver.

Het SPF-record autoriseren

Volgens de RFC zou de ontvangende mailserver moeten controleren (wat niet elke ontvanger doet) of er een SPF-record beschikbaar is. Tijdens deze controle wordt gekeken naar de twee verschillende identiteiten (HELO & MAIL FROM). Vervolgens wordt bepaald of het verzendende adres toestemming heeft om deze e-mail namens die identiteiten te verzenden. De meeste ontvangende mailservers controleren de identiteiten in chronologische volgorde. "HELO" (smtp.jouwbedrijf.nl) is een wat "eenvoudiger" identiteit om te controleren. Als die identiteit wordt bevestigd en autorisatie doorstaat, hoeft de "MAIL FROM" (info@jouwbedrijf.nl) niet te worden gecontroleerd. Als de HELO echter niet kan worden geverifieerd, moet de ontvangende mailserver de complexere MAIL FROM verifiëren.

Evaluatie van het SPF-record

Om zijn vervolgactie te bepalen, evalueert de ontvangende mailserver het SPF-record. Er zijn zeven mogelijke resultaten van deze evaluatie:

  1. Geen: geen SPF record of geen geldig DNS domein gevonden tijdens de SMTP transactie;
  2. Neutraal: er kon niet gecontroleerd worden of het verzendende IP adres geautoriseerd is;
  3. Pass: geeft aan dat de afzender geautoriseerd is;
  4. Fail: geeft aan dat de afzender niet geautoriseerd is;
  5. Softfail: een gemitigeerde fail omdat er geen sterk beleid gevonden kon worden;
  6. Temperror: tijdelijke verbindingsfout met DNS, kan verholpen worden bij tweede poging.
  7. Permerror: domein kon niet correct worden geïnterpreteerd. Vereist dat de DNS-beheerder van de afzender het probleem oplost.

De hierboven beschreven evaluatie is de standaardevaluatie. De reactie van elke ontvanger op een SPF-controle die faalt, kan echter variëren. Sommige ontvangende mail servers vereisen een sterk SPF record, waar anderen daar veel minder waarde aan hechten.

Feedback

Wanneer het SPF record door de ontvangende mailserver is gecontroleerd en geëvalueerd, wordt een e-mail ofwel doorgelaten ofwel geblokkeerd. In het geval dat het slaagt, zullen de mailservers communiceren dat het is "afgeleverd". Wanneer de SPF-controle echter faalt, heeft de ontvangende mailserver twee mogelijkheden:

  1. een (tijdelijke) foutmelding geven, zodat de verzendende mailserver weet dat het bericht niet opnieuw hoeft te worden verzonden (afwijzing) of dat er een probleem van tijdelijke aard is ("probeer het later nog eens");
  2. het bericht doorlaten en dus de melding "afgeleverd" geven - maar een header toevoegen die aangeeft dat het om een verdacht bericht gaat - ook wel de spam flag genoemd.