Sender Policy Framework
# Sender Policy Framework

Das Sender Policy Framework (SPF; früher Sender Permitted From) ist ein Verfahren, mit dem das Fälschen der Absenderadresse einer E-Mail verhindert werden soll, genauer das Versenden von E-Mail über nicht legitimierte Mail Transfer Agents (MTAs) unterbindet. Es entstand als Verfahren zur Abwehr von Spam. Bei SPF trägt der Inhaber einer Domain in das Domain Name System ein, welche Adressen von MTAs zum Versand von E-Mails für diese Domain berechtigt sind.

## Funktionsweise

Der Administrator einer Domain hinterlegt in der DNS-Zone einen Resource Record vom Typ TXT (der SPF Resource Record wurde durch RFC 7208 obsolet). In diesen Resource Records sind die IP-Adressen der Mail Transfer Agents (MTA) enthalten, die für die Domain E-Mails versenden dürfen. Der Empfänger prüft, ob der Absender zum Versand berechtigt ist. Hierzu schaut sich der Empfänger an, welche Domain der Absender in den Feldern MAIL FROM und HELO in der SMTP-Verbindung angegeben hat. Für die angegebene Domain ruft der Empfänger die SPF-Information über das Domain Name System ab und vergleicht die IP-Adresse des sendenden MTAs mit den erlaubten Adressen. Stimmt die IP-Adresse überein, so ist der Absender authentisch, andernfalls kann die E-Mail verworfen werden.

Zu beachten ist, dass diese Überprüfung sich nicht auf die Kopfzeile From bezieht, welche normalerweise von E-Mail-Programmen als Absender angezeigt wird und zusätzlich auch einen Namen enthalten kann. SPF kann somit nicht davor schützen, dass Betrüger versuchen Verbraucher zu täuschen. Es kann jedoch helfen, diese zu ermitteln.

Im DNS-Eintrag einer Domäne sind bislang schon normale MX-Einträge vorhanden, die SMTP-Servern sagen, an welchen Host sie E-Mails für diese Domäne senden sollen. Wenn also ein SMTP-Server eine E-Mail an test@example.org schicken soll, sieht er im MX-Record von example.org nach, an welchen Server er die Mail schicken soll. Mit SPF wird nun ein Record im Stil eines Reverse-MX den DNS-Einträgen einer Domäne hinzugefügt. Empfängt ein Mailserver eine E-Mail mit einem Absender von example.org, sieht er im SPF-Record von example.org nach, ob der zustellende Mailserver laut SPF-Record dazu berechtigt ist, Mails für diese Domain zu versenden.

SPF kann so durch die leichtere Nachverfolgbarkeit von E-Mails auch zur Bekämpfung von Spam und zur Erschwerung von Phishing beitragen. SPF erhebt jedoch lediglich den Anspruch, Absenderadressfälschungen zu verhindern, nicht aber, direkt Spam zu bekämpfen.

SPF muss nur vom Empfängersystem unterstützt werden – am Protokoll der Mailübertragung (SMTP) ändert sich nichts. Die Veröffentlichung von SPF-Records ist für eine Domäne freiwillig, Mails von Domains ohne SPF-Records sollen laut SPF-Spezifikation (RFC 4408) von Empfängern nicht negativ eingestuft werden; allerdings bleiben solche Domänen naturgemäß wie bisher gegen Umschlag-Adressfälschungen ungeschützt.

## Aufbau eines SPF-Records

Jeder SPF-Record beginnt mit einer Versionsnummer – für die aktuelle SPF-Version v=spf1. Es folgen beliebig viele Ausdrücke, die in der Reihenfolge von vorne nach hinten ausgewertet werden. Die meisten Ausdrücke sind dabei Direktiven, die die Autorisierung des Versenders definieren, und bestehen aus einem optionalen Qualifikator und einem Mechanismus, der für eine gegebene Situation (IP-Adresse) entweder einen Treffer oder keinen Treffer ergibt. Der erste Mechanismus, der einen Treffer darstellt, bestimmt das Ergebnis der gesamten Auswertung des SPF-Records.

Es gibt folgende Qualifikatoren:

| Q. | Ergebnis-Code | Beschreibung |
| - | - | - |
| + | Pass | die Direktive definiert autorisierte Sender; dies ist der Standard, d. h. ist kein Qualifikator angegeben, so wird + angenommen |
| - | Fail | die Direktive definiert nicht autorisierte Sender |
| ~ | Softfail | die Direktive definiert nicht autorisierte Sender, der Empfänger soll diesen Fehlschlag aber großzügig behandeln. |
| ? | Neutral | die Direktive definiert Sender, über deren Legitimität nichts ausgesagt werden soll; der Sender muss so behandelt werden, als wenn kein Qualifikator angegeben wäre. |

Folgende Tabelle zeigt einige gängige Mechanismen:

| Mech. | Direktive trifft zu, wenn … |
| - | - |
| all | immer |
| a | … ein A- oder AAAA-Record der befragten (oder explizit angegebenen) Domäne die IP-Adresse des Senders enthält |
| mx | … ein MX-Record der befragten (oder explizit angegebenen) Domäne die IP-Adresse des Senders enthält |
| ip4 | … die angegebene IPv4-Adresse die IP-Adresse des Senders ist bzw. das angegebene IPv4-Subnetz diese enthält |
| ip6 | … die angegebene IPv6-Adresse die IP-Adresse des Senders ist bzw. das angegebene IPv6-Subnetz diese enthält |
| include | … eine zusätzliche SPF-Anfrage zur im Include-Statement angegebenen Domain die IP-Adresse des Senders enthält |

Einen Überblick über alle erlaubten Ausdrücke gibt die Unterseite der SPF-Website.

Neben den Direktiven gibt es Attribute (Modifier), die nur einmalig vorkommen können und zusätzliche Informationen bereitstellen:

| Modifier | Beschreibung |
| - | - |
| redirect | Der SPF-Record einer anderen Domain soll eingeholt und ausgewertet werden |
| exp | Verweist auf eine Domain, deren TXT-Record eine Erklärung für den Nutzer enthält, falls die E-Mail abgewiesen wurde |

## Beispiel

Die Firma GMX legt also fest, dass alle Hosts mit der IPv4-Adresse 213.165.64.0 bis 213.165.65.255, sowie 74.208.5.64 bis 74.208.5.127 und einige weitere Adressbereiche E-Mails von der Domäne gmx.de verschicken dürfen. Alle anderen Server sind laut diesem SPF-Record nicht für die Benutzung dieser Domäne in der Umschlag-Absenderadresse autorisiert.

## Status

SPF besteht in der Version 1 schon seit Ende 2003 größtenteils unverändert, zu Beginn als informelle Spezifikation. Am 28. April 2006 wurde SPFv1 von der IETF als RFC 4408 veröffentlicht. Das RFC hat den Status „Experimental“, da die im Vorlauf eingestellte IETF-Arbeitsgruppe „marid“ (MTA Authorization Records in DNS) mehrere zur Debatte stehende Verfahren bearbeitete, sich jedoch nicht auf eines der Verfahren einigen konnte. Im April 2014 veröffentlichte die IETF den RFC 7208 Sender Policy Framework (SPF) als „Proposed Standard“, welcher im September 2014 durch den von der IETF-Arbeitsgruppe „spfbis“ veröffentlichten RFC 7372 (ebenfalls als „Proposed Standard“) ergänzt wurde.

Zu den bekanntesten Unterstützern von SPF unter den E-Mail-Dienstleistern gehören unter anderem (Stand 2020):

| E-Mail-Dienstleister | Qualifikator |
| - | - |
| Arcor/Vodafone | Softfail |
| GMX | Fail |
| Web.de | Fail |
| AOL | Softfail |
| Gmail | Softfail |
| $O_2$ | Softfail |
| Microsoft (Hotmail und Outlook.com) | Softfail |
| Yahoo | Neutral |

GMX setzt SPF bereits seit April 2004 produktiv ein. Andere große Provider wie zum Beispiel T-Online veröffentlichen keinen SPF-Record (Stand: Mai 2023).

SPF ist nicht nur für E-Mail-Dienstleister interessant, sondern auch allgemein für Unternehmen, die E-Mails an ihre Kunden versenden und mit SPF den Empfängern die Möglichkeit bieten, E-Mails, die von nicht vom Unternehmen autorisierten IP-Adressen, jedoch mit der Absender-Domäne des Unternehmens versendet wurden, entsprechend dem vom Unternehmen vorgegebenen Qualifikator zu behandeln. Die Top-10-Websites in Deutschland nutzen alle SPF (Stand 2020):

Spamfilter wie beispielsweise SpamAssassin nutzen SPF-Verifizierung zur Bewertung eingehender E-Mails. In der Standardkonfiguration von SpamAssassin hat eine erfolgreiche SPF-Prüfung jedoch keinen Effekt, da dies laut Aussage der Entwickler von Spam-Versendern ausgenutzt würde. Zum Teil fließt eine fehlgeschlagene Prüfung in die Bewertung ein, je nach Fehlergrund.

Viele Mail-Betreiber informieren über eine erfolgte SPF-Verifikation im Mailheader, zum Beispiel durch das Einfügen einer Zeile

oder

## Probleme bei Mail-Umleitung

Der Einsatz von SPF kann Probleme verursachen, wenn der Empfänger seine E-Mails an ein Postfach unterhalb einer anderen Domäne umleiten lässt: Das empfangende System sieht in diesem Fall die Domain des Absenders in Verbindung mit der IP-Adresse des umleitenden Systems. Letzteres wird jedoch typischerweise nicht von den SPF-Regeln erfasst sein, sodass eine solche Mail bei einer SPF-Prüfung als unautorisiert eingestuft wird.

Zu diesem Problem existieren drei Lösungsansätze:

* Das empfangende System verzichtet auf die SPF-Prüfung von Mails der umleitenden Domains, sofern sie ihm bekannt sind – beispielsweise durch ein Whitelisting. Sinnvollerweise sollten in diesem Fall die weiterleitenden Systeme die SPF-Prüfung übernehmen. Ein Nachteil dieses Verfahrens ist, dass im Falle eines Zustellungsfehlers die Fehlermeldung (Bounce) direkt an den Absender gesandt wird. Dieser könnte so von der Zieladresse der Umleitung erfahren, was u. U. vom Empfänger unerwünscht ist.
* Dieses Problem wird vermieden, wenn das Weiterleitungssystem die Umschlag-Absenderadressen der umgeleiteten Mails auf seine eigene Domäne umschreibt und so die Verantwortung für die Gültigkeit der ursprünglichen Absenderadresse und für die Zustellung eventueller Bounces übernimmt. Ein solches Verfahren ist z. B. das Sender Rewriting Scheme (SRS). Es muss allerdings sichergestellt sein, dass das weiterleitende System eine wirksame SPF-Prüfung vornimmt, was z. Zt. nicht immer der Fall ist.
* Der sendende Server sendet die Daten erst an den erlaubten Mailserver weiter (relaying). Im Internet kann man hierzu sog. Satelliten-Mailserver nutzen, welche dann autorisiert sind, Daten vom Webserver zu empfangen und diese an den eigenen Mailserver weiterzuleiten.

## Implementierung von Webformularen

SPF kann bei einigen Webformularen mit schlechter Implementierung zu Problemen führen. So gibt es Webformulare, die den Namen und die E-Mail Adresse abfragen. Wenn das Webformular nun dem Webseitenbetreiber per Mail zugestellt wird, wird diese Mail fälschlicherweise so gestaltet, als ob sie direkt von der Person käme, die die Daten ausgefüllt hat. Es wird also als Absenderadresse die im Formular angegebene Adresse verwendet. Wenn die Domain dieser E-Mail Adresse nun mit SPF arbeitet und der Webseitenbetreiber selbst SPF-Prüfungen durchführt, wird das abgeschickte Formular möglicherweise nie beim Webseitenbetreiber eingehen. Der Webseitenbetreiber prüft in diesem Fall erfolglos seine eigene Berechtigung, im Namen der fremden Domain E-Mails zu versenden.

Dieses Problem lässt sich vermeiden, wenn sich der Webserver selbst als Absender der Mail identifiziert und seine eigene, berechtige Domain für den Versand der E-Mail nutzt. Der gewünschte Absender kann aber im From-Header der Mail hinterlegt werden. Der Effekt ist, dass Antworten auf die E-Mail automatisch an den Formularausfüller gehen und dieser auch als Absender des Mailinhalts angezeigt wird, die SPF-Prüfung aber nicht fehlschlägt, da der Webserver korrekt als tatsächlicher Absender genannt wird. Dieser würde auch die Bounce-Mails erhalten.

## Kritik

Im Bereich der Nutzung von nicht autorisierten Mail Transfer Agents (MTAs) für die mit SPF geschützte Domain ist SPF ein kontrovers diskutiertes Verfahren.

* Endbenutzer haben im Allgemeinen keine Kenntnis von der Existenz von SPF und der Notwendigkeit, bei Umleitung Whitelisting einzuschalten. Bei der Einrichtung einer E-Mail-Umleitung an einem System, welches unzureichend ohne Sender Rewriting Scheme (SRS) arbeitet, bekommen Benutzer keine E-Mails aus SPF-geschützten Domains mehr zugestellt.
* Durch die Einschränkung der erlaubten MTA-Adressen einer Domain werden auch verschiedene Nutzungsszenarien eingeschränkt, welche üblicherweise im Bereich des Spam-Versand angewendet und daher unterbunden werden. Im lokalen Netz des Arbeitgebers, der Universität und dergleichen können ausgehende SMTP-Verbindungen durch die Firewall unterbunden werden. Das geschieht, um Spamversand aus dem Netz heraus einzuschränken oder den ausgehenden E-Mail-Verkehr kontrollieren zu können. Möchte ein Benutzer in diesem Netz seine private E-Mail-Adresse verwenden, so kann er keine SMTP-Verbindung zum berechtigten MTA seines privaten E-Mail-Dienstes aufbauen. Setzt der private E-Mail-Provider SPF ein und setzt der Benutzer den nicht berechtigten MTA des lokalen Netzbetreibers wie etwa den des Arbeitgebers ein, entspricht dieses Verhalten der Methode, welche Spamer verwenden, um über offene Mail-Relays Spam-Nachrichten zu versenden. Eine mögliche Lösung ist die Verwendung eines Mail Submission Agents, dessen Port nicht von der lokalen Firewall blockiert wird, oder ein entsprechender anderer Zugang zum berechtigten MTA.
* SPF wirkt nur indirekt gegen Spam sowie Malware, da Spammer „Wegwerfdomains“ und die E-Mail-Systeme gekaperter „Zombie-Computer“ mit deren korrekten SPF-Records verwenden. SPF ist auch kein Adressschutz, sondern vielmehr ein Schutz des Domaininhabers, dass für das Versenden von E-Mails mit seiner Domainabsenderadresse nur die für diese Domain berechtigten MTAs verwendet werden, also ein Art Schutz vor der Verwendung von für die betreffende Domain unberechtigten SMTP-Relays.

## Weitere Verfahren

Ein anderes Verfahren zur Authentisierung einer E-Mail-Domain und zum Schutz vor E-Mail-Spoofing ist DomainKeys Identified Mail (DKIM). Im Gegensatz zu SPF arbeitet DKIM mit kryptografischen Signaturen.

Das DMARC-Verfahren setzt auf SPF und DKIM auf und ergänzt eine verbindliche Sender-Policy zum Umgang mit E-Mails, die nicht authentisch sind.

