SPF: de eerste verdedigingslinie tegen spoofing
Het Sender Policy Framework (SPF) is een e-mailauthenticatiemechanisme waarmee een domeineigenaar kan specificeren welke servers gemachtigd zijn om e-mail namens zijn domein te versturen. Zonder SPF kan iedereen e-mails versturen waarbij jouw domein als afzender wordt weergegeven — een techniek die spoofing wordt genoemd en die de basis vormt van de meeste phishingaanvallen. SPF is gestandaardiseerd in RFC 7208 en vertegenwoordigt de eerste van de drie pijlers van moderne e-mailauthenticatie, naast DKIM en DMARC.
Wanneer een server een e-mail ontvangt, controleert deze het SPF-record van het verzendende domein. Als het IP-adres van de server die de e-mail heeft verstuurd in de lijst van door het SPF-record geautoriseerde IP-adressen staat, slaagt de controle. Anders wordt de e-mail gemarkeerd als mogelijk frauduleus. De uiteindelijke beslissing (accepteren, weigeren of markeren) hangt af van het in het record gespecificeerde beleid en de DMARC-configuratie van het domein.
Anatomie van een SPF-record
Een SPF-record is een TXT-record in de DNS van het domein dat begint met v=spf1, gevolgd door een reeks mechanismen en kwalificatoren. De mechanismen definiëren wie gemachtigd is om te verzenden, terwijl de eindkwalificator (doorgaans ~all of -all) bepaalt wat er moet gebeuren met e-mails die niet overeenkomen met een geautoriseerd mechanisme.
De limiet van 10 DNS-lookups
Een van de meest kritieke en minst begrepen aspecten van SPF is de limiet van 10 DNS-lookups. Elke keer dat het SPF-record een mechanisme gebruikt dat een extra DNS-query vereist (include, a, mx, redirect, exists), telt dit als een lookup. Het overschrijden van de limiet van 10 veroorzaakt een permerror: het SPF-record wordt als ongeldig beschouwd en authenticatie mislukt voor alle e-mails.
Deze limiet wordt problematisch wanneer je veel externe diensten gebruikt voor e-mailverzending. Een enkele include kan op zijn beurt andere geneste includes bevatten, en elk daarvan telt mee voor de limiet. Zo verbruikt include:_spf.google.com alleen al 3-4 lookups. Voeg Mailchimp, SendGrid, HubSpot toe en de limiet is snel bereikt. Onze SPF Lookup analyseert je SPF-record en telt automatisch de DNS-lookups, en waarschuwt je als je de limiet nadert.
De meest voorkomende SPF-problemen oplossen
Het vaakst voorkomende probleem is het overschrijden van de limiet van 10 lookups. Oplossingen zijn onder meer: include-mechanismen vervangen door directe ip4/ip6-vermeldingen (die niet als lookups tellen), SPF-flatteningdiensten gebruiken die includes omzetten naar statische IP-adressen, of e-maildiensten consolideren om het aantal benodigde includes te verminderen. Een andere strategie is het gebruik van speciale subdomeinen voor verschillende diensten: marketing@news.voorbeeld.com kan een eigen onafhankelijk SPF-record hebben.
Een andere veelgemaakte fout is het hebben van meerdere SPF-records voor hetzelfde domein. De RFC's stellen duidelijk dat een domein slechts één TXT-record mag hebben dat begint met v=spf1. Meerdere records veroorzaken een permerror. Als je meerdere bronnen moet autoriseren, combineer dan alles in één record. Controleer op dubbele records met de TXT Lookup, die alle TXT-records voor het domein weergeeft.
SPF alleen is niet genoeg: het trio SPF + DKIM + DMARC
SPF heeft een belangrijke beperking: het verifieert alleen het IP-adres van de verzendende server, niet de inhoud van de From-header die de gebruiker ziet. Een aanvaller zou een server kunnen gebruiken die door zijn eigen SPF is geautoriseerd om e-mails te versturen met jouw domein in de From-header. Daarom moet SPF gecombineerd worden met DKIM en DMARC. DKIM ondertekent de e-mail cryptografisch, terwijl DMARC verifieert dat het domein in de From-header overeenkomt met het domein dat door SPF of DKIM is geauthenticeerd.
Gebruik de DMARC Lookup om te verifiëren dat je domein een actief DMARC-beleid heeft. Zonder DMARC voorkomt zelfs een perfect SPF niet dat vervalste e-mails worden bezorgd. De combinatie van alle drie de protocollen creëert een gelaagde verdediging die het spoofen van jouw domein extreem moeilijk maakt, waardoor je reputatie en je ontvangers worden beschermd.
De ideale configuratie omvat: SPF met ~all of -all om alleen legitieme servers te autoriseren, DKIM met een 2048-bits sleutel om alle uitgaande e-mails te ondertekenen, en DMARC met een progressief beleid (van p=none voor monitoring tot p=reject voor volledige blokkering). Dit trio wordt nu beschouwd als de minimale vereiste voor elk domein dat e-mail verstuurt.