Sender Policy Framework (SPF)

Sender Policy Framework (SPF) is een gestandaardiseerde techniek om ervoor te zorgen dat alleen goedgekeurde partijen e-mail kunnen versturen met een bepaald domein in het afzenderadres.

SPF voorkomt spoofing (impersonatie) en verminderd daarmee spam en phishing praktijken. In dit artikel leggen we uit hoe SPF werkt, en hoe het kan worden ingesteld.


E-mail is onveilig

Het e-mail protocol is van oorsprong niet beveiligd, er was in het originele ontwerp in de jaren 70 geen rekening gehouden met de mogelijkheid dat iemand e-mail zouden willen misbruiken. Zo was er in het originele protocol geen bescherming ingebouwd om te voorkomen dat iemand de domeinnaam van een ander kon gebruiken in het afzender adres.

Dat betekent dus dat iedereen op het internet een e-mail kan sturen met <uw naam>@<uw domein> als afzender!

Om dit probleem op te lossen is het Sender Policy Framework (SPF) geïntroduceerd.


Wat is SPF?

Het Sender Policy Framework, of SPF in het kort is een open, gestandaardiseerd protocol. Het is een onderdeel van de e-mail standaard waarmee alle e-mailservers op het internet werken. SPF is dus geen software die moet worden geïnstalleerd, en het is kosteloos om te gebruiken. SPF moet door de domeineigenaar zelf worden ingesteld, het is standaard niet ingeschakeld.

SPF wordt ingesteld door een DNS-regel toe te voegen aan de DNS instellingen van het domein. In deze regel staat opgegeven welke e-mailservers berichten mogen versturen met dat domein in het afzenderadres. Omdat de DNS-regels onder het beheer van de domeineigenaar vallen kan er op worden vertrouwd dat de e-mailservers in de SPF-regels door de domeineigenaar zijn toegestaan om de domeinnaam te gebruiken.

Bij het ontvangen van een e-mailbericht zal de ontvangende e-mailserver controleren of er een DNS-regel met SPF instellingen kan worden gevonden in het domein welke in het afzenderadres staat. Als er een SPF DNS-regel wordt gevonden, maar de verzendende e-mailserver staat niet in de SPF-regel, dan kan de ontvangende e-mailserver het bericht weigeren of markeren als spam.

Bijvoorbeeld wanneer er een e-mail wordt ontvangen met info@securist.nl zal de e-mailserver controleren of er een SPF DNS-regel bestaat voor securist.nl.


De SPF DNS-regel

SPF wordt ingesteld door een DNS-regel van het type TXT toe te voegen aan de DNS-regels van het domein.

Opbouw

Een SPF regel is als volgt opgebouwd:

v=spf1 <qualifier><mechanisme> <qualifier><mechanisme> <qualifier><mechanisme>

v=spf1 is een verplicht onderdeel van de SPF-regel. Dit geeft aan dat deze DNS-regel een SPF reglement bevat conform SPF versie 1 (momenteel de enige versie). Een SPF DNS-regel moet beginnen met deze tekst, anders zal de SPF DNS-regel niet worden herkend door e-mailservers die SPF willen gebruiken.

Het mechanisme

Het doel van SPF is op te geven van welke e-mailservers berichten vanuit het domein mogen worden geaccepteerd. De SPF standaard bevat een uitgebreide set mogelijkheden voor het opgeven welke e-mailservers toegestaan zijn, deze mogelijkheden noemen we mechanismen. We geven hier een lijst van de meest gebruikte mechanismen:

  • a elke e-mailserver met een IP-adres voorkomend in de A type DNS-regel van het domein
  • mx elke e-mailserver welke opgegeven staan in de MX type DNS-regel van het domein
  • ip4=<ip-adres> een e-mailserver met het opgegeven IP-adres of IP-adres reeks
  • include=<domein> alle e-mailservers welke opgegeven staan in de SPF regel van het opgegeven domein
  • all alle e-mailservers

Het all mechanisme dient altijd aanwezig te zijn in de SPF regel, deze wordt geplaatst aan het einde van de regel. Het all mechanisme wordt gebruikt om alle overige servers welke niet voldoen aan de voorgaande mechanismen uit te sluiten uit de SPF regels. Het all mechanisme dient te worden gebruikt in combinatie met een ~ (SOFTFAIL) of - (FAIL) qualifier.

De qualifier

De qualifier wordt geplaatst voor een mechanisme in de SPF regel. Met de qualifier wordt aangegeven hoe om moet worden gegaan met e-mail afkomstig van een e-mailserver welke voldoet aan het mechanisme. Indien er geen qualifier is geplaatst wordt standaard de + qualifier gebruikt. Er zijn 4 soorten qualifiers:

  • + (PASS) Deze e-mailserver is toegestaan om berichten te sturen uit dit domein. Dit is de standaard qualifier, indien er geen qualifier is opgegeven wordt deze gebruikt.
  • ? (NEUTRAL) E-mail verstuurd door deze server wordt als 'neutraal' beschouwd, effectief is dit hetzelfde als +all.
  • ~ (SOFTFAIL) E-mail afkomstig van een server welke voldoet aan het mechanisme zal worden doorgelaten, maar aangemerkt als spam.
  • - (FAIL) E-mail afkomstig van een server welke voldoet aan het mechanisme zal niet worden doorgelaten.

De qualifier is dus optioneel, indien er geen qualifier wordt opgegeven wordt standaard de + (PASS) qualifier toegepast. Het is gebruikelijk dat voor alle mechanismen behalve all geen qualifier wordt geplaatst, om ruimte te besparen. De volgende SPF regels zijn dus gelijk:

v=spf1 mx include=_spf.google.com -all
v=spf1 +mx +include=_spf.google.com -all

Voorbeelden

Sta alle e-mailservers toe, (SPF is uitgeschakeld):
v=spf1 +all
Sta e-mail toe afkomstig van e-mailservers met een IP adres gevonden in de A of MX DNS-regels van dit domein, weiger de rest:
v=spf1 a mx -all
Sta e-mail toe afkomstig van e-mailservers met IP adres 123.123.123.123, weiger de rest:
v=spf1 ip4:123.123.123.123 -all
Sta e-mail toe afkomstig van e-mailservers met een IP adres uit de reeks 123.123.123.1 t/m 123.123.123.254, weiger de rest:
v=spf1 ip4:123.123.123/16 -all
Sta e-mail toe afkomstig alle e-mailservers opgegeven in de SPF regels gevonden op _spf.google.com door en markeer de rest als spam:
v=spf1 include:_spf.google.com ~all

Veelgestelde vragen

Staat SPF standaard ingeschakeld?

Nee, SPF moet zelf door de domeineigenaar worden ingesteld in de DNS-regels van het domein. Wanneer er geen DNS regel met v=spf1 wordt aangetroffen wordt er geen SPF toegepast en wordt e-mail met het domeinnaam in de afzender door elke e-mailservers geaccepteerd.

Ik gebruik een cloud e-mail dienst, heb ik SPF nodig?

Ja, indien er een clouddienst wordt gebruikt voor e-mail, zoals Office365 of Google is het nodig om SPF in te stellen.

De eigenaar van de domeinnaam is (als het goed is) de enige met toegang tot het instellen van de DNS-regels voor het domein. De leverancier van de e-mail dienst kan daarom niet de SPF DNS-regel voor hun klanten instellen, dit moet de domeineigenaar zelf doen.

SPF instellen voor Google GMail/G-Suite
SPF instellen voor Office365 (outlook.com)

Ik gebruik een externe marketingdienst

Wanneer e-mail wordt verstuurd vanuit de domeinnaam via een extern marketingplatform zoals bijvoorbeeld MailChimp of Drip, dient de SPF-regel van deze dienst toe te worden gevoegd aan de SPF-regel van het domein. Let daarbij op dat de SPF-regel van de externe partij dient te worden toegevoegd, en er dus niet een extra SPF regel wordt maakt. Er mag per domein maximaal 1 SPF-regel bestaan in de DNS.

SPF instellen voor MailChip
SPF instellen voor Drip (voorheen: SendGrid)
SPF instellen voor HubSpot


Waar op te letten

Geen SPF of ongeldige SPF

Indien een domein geen SPF regel heeft ingesteld, of de SPF regel is verkeerd ingesteld, dan zal de ontvangende e-mailserver elke e-mail doorlaten.

Gebruik bijvoorbeeld deze tool om te testen of SPF correct is ingesteld.

Geen 'all' mechanisme

Indien er geen all mechanisme is toegevoegd aan het einde van de SPF regel, of er geen qualifier is geplaatst voor het 'all' mechanisme, dan zal de standaardwaarde +all worden aangenomen, waardoor alle e-mailservers op het internet zijn toegestaan om e-mail te sturen uit het domein. Effectief is SPF hierdoor dus uitgeschakeld.

Meer dan 1 SPF regel

Voor SPF mag er maximaal 1 DNS-regel bestaan per domein, indien er meerdere partijen toegestaan zijn om e-mail te versturen vanuit de domeinnaam, dan moeten deze partijen worden opgenomen in één SPF regel. Indien er meer dan 1 SPF-regel staat in de DNS, dan zal de ontvangende partij de eerste regel gebruiken welke het tegenkomt. Omdat de volgorde bij DNS niet is gegarandeerd is het nooit zeker welke regel zal worden gebruikt.

Maximale lengte

Een DNS-regel kan maximaal 255 karakters lang zijn. Het komt niet vaak voor dat er meer lengte benodigd is, maar als dit gebeurd dan moet de SPF regel worden opgesplitst in meerdere regels. Omdat er maximaal 1 SPF regel per domein mag bestaan, worden de extra regels geplaatst in een subdomein. Bijvoorbeeld:

Te lange SPF regel:
securist.nl TXT "v=spf1 ip=server1.domain.com ip=server2.domain.com ip=server3.domain.com ip=server4.domain.com ip=server5.domain.com ip=server6.domain.com ip=server7.domain.com -all"

Opgesplitst:
securist.nl TXT "v=spf1 a=server1.domain.com a=server2.domain.com a=server3.domain.com include:_spf2.securist.nl -all"
_spf2.securist.nl TXT "v=spf1 a=server4.domain.com a=server5.domain.com a=server6.domain.com ip=server7.domain.com -all"

Er is hier een extra SPF-regel geplaatst in subdomein _spf2 (de naam maakt niet uit), deze is ingevoegd met het include mechanisme op het hoofddomein.


Conclusie

Zonder SPF kan elke e-mailserver op het internet berichten versturen met elke domeinnaam in het afzenderadres, zo kan een oplichter elk e-mailadres gebruiken. Door SPF in te stellen kan worden beperkt welke e-mailservers berichten mogen sturen vanuit het domein. Zo krijgen oplichters geen kans.

De Securist e-mail veiligheidsinspectie controleert onder andere op het correcte gebruik van SPF om zeker te zijn van optimale bescherming.


Verder lezen

Zie ook onze andere relevante artikelen:

Léon Melis

Over de auteur:

Léon Melis is inspecteur bij Securist. Securist inspecteert websites, e-mail en domeinen op veiligheid en privacybescherming. Als onderdeel van de veiligheidsinspectie wordt de SPF instelling gecontroleerd op correct gebruik.