21. Januar 2022

Weniger Spam dank Sender Policy Framework (SPF)

Das Sender Policy Framework (SPF) wurde zur Abwehr von Spam entwickelt und soll vor allem das Fälschen von Absenderadressen in einer E-Mail verhindern. Aber wie genau funktioniert diese Prüfung?

Moderne E-Mail-Filter prüfen heutzutage in der Regel, ob ein solcher SPF-Eintrag vorhanden ist. Darin ist definiert, welche Mailserver berechtigt sind, Nachrichten einer bestimmten Domäne zu versenden. Machen wir ein Bespiel. Der Kunde X hat einen eigenen Mailserver und auf seiner Webseite können über ein Kontaktformular ebenfalls Anfragen per E-Mail versendet werden. Der Kunde X muss nun also in diesem SPF-Eintrag definieren, dass nur diese beiden Server berechtigt sind, E-Mails mit seinen Absenderadressen zu versenden. Würde jemand anderes seine Adresse fälschen und über einen dritten Server versenden, so bemerkt das der Spamfilter und bewertet die eingehende Nachricht als «Spam».

«Spam» ist ein sehr grosser Begriff und oftmals werden mit solchen E-Mails betrügerische Ziele verfolgt (z.B. Phishing). Damit die Absender möglichst viele Empfänger erreichen und gleichzeitig eine seriöse Nachricht vortäuschen können, werden oft die Absender gefälscht. Auch mit Malware verseuchte PCs oder Server werden teilweise unwissentlich zum Senden von Spam missbraucht. Das Sender Policy Framework (SPF) kann nicht all diese Nachrichten verhindern, jedoch aber stark reduzieren.

Wo soll jetzt aber dieser SPF-Eintrag definiert werden? Das passiert in der DNS-Zone der eigenen Domäne. Dort werden alle Adressen mittels TXT-Eintrags aufgelistet.

Aufbau SPF-Record

Der DNS-Eintrag mit dem Typ «TXT» beginnt immer mit der Version (aktuell v=spf1). Die Werte «a» und «mx» schliessen sämtliche DNS-Einträge mit ein, die bereits als A-Record oder MX-Record gesetzt sind. Mit den Informationen «ip4:IP-Adresse» oder «include:Domain» werden anschliessend einzelne IP-Adressen oder Servernamen zum Senden von E-Mails autorisiert. Der Wert «-all» am Ende verbietet das Senden über alle anderen Adressen, die nicht im Eintrag definiert sind.

v=spf1 a mx ip4:46.14.1.249 include:spf.protection.outlook.com -all