Profis mit Erfahrung

SPF, DKIM und DMARC – was ist das?

Was bedeuten die Begriffe SPF, DKIM und DMARC, die beim Mail-Versand eine Rolle spielen. Wir haben uns umgesehen, und versuchen eine möglichst verständliche Erklärung. Aber leicht ist das nicht, glauben Sie uns.

Inhalts­verzeichnis

Im Oktober 1971 hatte Ray Tomlinson den ersten elektronischen Brief verschickt, das war die Geburtsstunde der E-Mail. Damals dachte man nicht daran, dass es in Zukunft auch Spam-Mails geben könnte, daher wurde das technische Konzept hinter dem Mailversand eher einfach gehalten. Jahrzehnte danach haben wir den Spam-Salat.

Nun gibt es nachträglich entwickelte Konzepte, die sich um wesentliche Anforderungen an die E-Mail kümmern, wie die Authentizität, der Datenschutz und die Integrität der E-Mail.

Mit der Authentizität einer E-Mail ist gemeint, dass sichergestellt ist, dass die E-Mail auch wirklich vom Absender stammt, also ein Original ist und keine betrügerische Fälschung. Datenschutz bezeichnet bei E-Mails im Wesentlichen den Schutz vor Mitlesen durch Dritte auf dem Übertragungsweg. Als Integrität bezeichnet man das Schutzziel, dass der E-Mail-Inhalt bei der Übertragung vollständig und unverändert bleibt.

Wikipedia, Stand 2021-07-03

In diesem Artikel geht es nicht darum, wie Sie selbst sich vor Spam-Mails schützen können, sondern was Sie unternehmen können, damit Ihre Mails, die hoffentlich keine Spam-Mails sind, bei dem Empfänger/innen mit hoher Wahrscheinlichkeit ankommen.

Einträge im Domain Name System

Bei allen Verfahren zur Gewährleistung der wesentlichen Kriterien handelt es sich um Einträge im Domain Name System (DNS), also die Domain-Einstellungen der Domain, für die diese Kriterien angewendet werden sollen.

Es existieren daher optimalerweise im DNS der Domain drei besondere (Text-)Einträge für die Absicherung des Mail Verkehrs mit Hilfe der drei Verfahren:

  • SPF
  • DKIM
  • DMARC

Die Einträge für SPF, DKIM und DMARC sind nicht für alle Mailserver und Domains einfach dieselben, sondern deren Inhalte hängen von den Umständen ab. Kopieren Sie daher keinesfalls etwaige Beispiele von weiter unten und fügen diese auf Ihrem Nameserver ohne individuelle Anpassungen ein!

Sie benötigen also Zugang zum DNS im Verwaltungsbereich Ihres Providers. Dort folgen Sie am besten einer Anleitung, die Ihr Provider zweifellos zur Verfügung stellt. Sollte das nicht der Fall sein, wenden Sie sich an den Support Ihres Providers.

Änderungen im DNS werden üblicherweise nicht sofort wirksam. Je nach Provider kann das einige Minuten bis einige Stunden dauern, bis Ihre Einträge wirksam – oder bei Fehlfunktion und Löschens des Eintrags – wieder unwirksam werden.

Seien Sie bitte auch unbedingt gewarnt: fehlerhafte DNS-Einträge können zu Nicht-Funktionieren von Website und/oder Mail-Versand führen. Konsultieren Sie daher auch die Anleitungen oder den Support Ihres Providers, bei dem die DNS-Einträge gemacht werden.

Am Ende des Beitrags finden Sie allgemeine hilfreiche Links zum Thema.

SPF

Was ist ein SPF Eintrag?

SPF steht für Sender Policy Framework.

Mit einem SPF Eintrag vom Typ TXT(SPF) wird festgelegt, welche (Mail-)Server im Namen der Domain E-Mails versenden dürfen. SPF kümmert sich also um die Authentizität (stammt die E-Mail tatsächlich vom Absender?).

Ablauf

  1. Der Empfänger-Mailserver erhält eine E-Mail, und prüft erst einmal, ob der Absender zum Versand berechtigt ist. Dazu sieht sich der Empfänger an, welche Domain der Absender in bestimmten Mail-Feldern („MAIL FROM“ und „HELO“ im Mail-Header) angegeben hat.
  2. Für diese angegebene Domain ruft der Empfänger nun die SPF-Information über das Domain Name System der Sender-Domain ab.
  3. Stimmt die IP-Adresse überein (wird also der Sender-Mailserver in der Sender Domain angeführt), so ist der Absender authentisch, und die E-Mail wird in die Inbox zugestellt. Andernfalls kann die E-Mail verworfen werden; oder sie wird zwar zugestellt, aber direkt im Spam-Verzeichnis des Empfängers abgelegt.

Wie macht man einen SPF-Eintrag?

Wir wiederholen: mit Ihrem SPF Eintrag können Sie vorgeben, welche Mailserver überhaupt Mails aus Ihrer Domain zustellen dürfen, und wie Mails vom Empfänger-Mailserver behandelt werden sollen, die nicht über einen für Ihre Domain zugelassenen Mailserver versendet wurde.

Beispieleinträge im DNS

  • ihre-domain.de. IN TXT "v=spf1 mx a -all"
  • ihre-domain.de. IN TXT "v=spf1 mx a ?all" (Beispiel des Providers all-inkl)
  • ihre-domain.de. IN TXT "v=spf1 include:_spf.ihr-newsletter-mailserver.com a mx ~all"

Das sieht wohl auf dem ersten Blick kompliziert aus, ist aber nicht so schlimm. Beachten Sie den Teil innerhalb der Anführungszeichen, und ganz besonders das Zeichen vor “all”. Mit dem Zeichen vor dem Wort “all” steuern Sie, inwieweit alle anderen Mailserver abgesehen von Ihrem eigenen Mailserver (der darf natürlich Mails für Sie versenden) klassifiziert werden:

  1. -all: die “strenge Variante“ für die Domain (“hard fail”, definitive Abweisung)
  2. ~all: die tolerantere Variante (“soft fail”)
  3. ?all: alle anderen Mailserver gelten als neutral
  4. +all: alle Mailserver sind zum Senden berechtigt (davon ist natürlich abzuraten)

Mit dem Eintrag aus Punkt 1 (-all) wird etwa nur solchen Mailservern die Zustellung von Mails erlaubt, die einen sogenannten MX Eintrag (mx) in Ihrer DNS Domain besitzen. Das gilt natürlich für Ihren eigenen Mailserver. Der Empfang Ihrer Mails, die über andere Mailserver gesendet wurden, wird abgewiesen.

Mit dem Eintrag aus Punkt 2 (~all) wird ebenfalls nur solchen Mailservern die Zustellung von Mails explizit erlaubt, die einen MX Eintrag (mx) in der DNS Domain besitzen. Alle anderen Mailserver werden aber nur als “verdächtig” markiert, und dennoch zugelassen. Die Mails dieser anderen Mailserver können dann je nach Empfängersystem durchaus im Posteingang landen oder zumindest im Spam-Verzeichnis der Empfänger. Die meisten Experten empfehlen die Nutzung dieser Variante, außer Ihre Mailadresse wird gerade in großem Stil für Spamversand mißbraucht.

Wenn Sie ?all aus Punkt 3 nutzen, dann wirkt das meist eher wie -all statt wie ~all.

Die Variante +all aus Punkt 4 nutzen Sie bitte keinesfalls.

Den für Ihren Fall konkreten Inhalt erhalten Sie entweder von Ihrem Provider, oder Sie nutzen dafür ein Tool (s.u.). Das werden Sie benötigen, wenn Sie beispielsweise auch über eine Newsletter-Plattform (CleverReach, mailworx, MailChimp, MailerLite, u.a.) Mails versenden wollen. Denn damit gestatten Sie auch dem Mailserver der Newsletter-Plattform Mails in Namen Ihrer Domain zu versenden. Sehen Sie dazu den o.a. Eintrag für den fiktiven Mailserver ihr-newsletter-mailserver.com. Die include Anweisung fügt einen oder mehrere weitere Mailserver zur Liste der erlaubten Mailserver hinzu.

Wenn Sie also einem zusätzlichen Mailserver die Erlaubnis geben möchten, Ihre Mails zu versenden, dann bringen Sie in Erfahrung, wie der Mailserver der jeweils verwendeten Plattform heißt, damit Sie den SPF Eintrag für Ihre Domain korrekt erstellen können. Suchen Sie am besten im Support-Bereich der Plattform nach Artikeln rund um den Begriff SPF.

https://de.wikipedia.org/wiki/Sender_Policy_Framework#Aufbau_eines_SPF-Records

DKIM

Was ist ein DKIM Eintrag?

DKIM steht für Domain Keys Identified Mail.

Eine DKIM Signierung einer E-Mail kann sicherstellen, dass eine E-Mail bei einem Empfänger in unveränderter Form ankommt, dass also diese E-Mail am Weg vom Sender zum Empfänger nicht verändert wurde; eine Wertung bezüglich Spam findet dabei ausdrücklich nicht statt.

Um das zu bewirken, wird die E-Mail durch den Sender verschlüsselt, und durch den Empfänger entschlüsselt. Dazu braucht es ein Schlüsselpaar, so ähnlich wie bei der SSL (TLS) Technik von Webserver und Browser. Der öffentliche Teil des Schlüsselpaars wird am Nameserver (im Domain Name System) hinterlegt, der private Teil des Schlüsselpaars am Mailserver implementiert.

Ablauf

  1. Wenn eine E-Mail versendet wurde, fügt DKIM die sogenannte DKIM-Signatur zum Header der E-Mail hinzu.
  2. Wenn die E-Mail empfangen wird, fragt der Empfänger-Mailserver den öffentlichen Schlüssel ab, der in der DNS-Zone der Sender-Domain veröffentlicht wurde. Mit diesem Schlüssel wird überprüft, ob die Signatur korrekt ist.

Wenn der öffentliche Schlüssel nicht zur Signatur passt, so kann dies folgende zwei Gründe haben:

  • Die E-Mail wurde nicht vom Mailserver gesendet, der im Mail-Header deklariert ist, sondern von einem anderen – betrügerischen – Server.
  • Die E-Mail wurde auf dem Weg vom „echten“ Mailserver zum Empfänger verändert.

DKIM kümmert sich also um Datenschutz (um das Nicht-mitlesen-können) und Integrität (unveränderter Inhalt).

Wie macht man einen DKIM-Eintrag?

DKIM kann man bei guten Mailprovidern einfach aktivieren, vermutlich bei den Einstellungen zur Domain (konsultieren Sie bitte den Hilfe-Bereich Ihres Providers). Dabei wird das Schlüsselpaar erzeugt und der öffentliche Schlüssel ins DNS eingetragen. Der private Schlüssel wird mit jeder Mail automatisch mit gesendet.

Der Dateninhalt des öffentlichen Schlüssels sieht so ähnlich aus wie:

v=DKIM1;p=MIGfMA0GCSqGSIb.......6tLIfDHVwIDAQAB (sehr langer Ausdruck)

Wie der TXT-Eintragname bei einem DMARC-Eintrag lautet, hängt von Ihrem Provider ab. Hier zwei Beispiele:

  • Timme-Hosting: default._domainkey.IhreDomain.com
  • all-inkl: mail._domainkey.IhreDomain.com

Ersetzen Sie bitte “IhreDomain.com” durch Ihren tatsächlichen Domain-Namen (oder Subdomain-Namen). Und sehen Sie in der Anleitung Ihres Providers nach, wie der gesamte Eintragname in Ihrem Fall lauten muss, denn der Teil vor _domainkey kann je nach Provider anders lauten.

Wenn das der Provider nicht auf Knopfdruck anbietet, wird es leider kompliziert. Sie werden nicht daran vorbeikommen, sich an den Support Ihres Providers zu wenden, oder sich in dessen Support-Bereich nach weiteren Anleitungen umzusehen. Denn es reicht nicht, das Schlüsselpaar mit einem Tool herzustellen, und dann nur den öffentlichen Schlüssel am Nameserver abzulegen. Es muss zwingend auch der private Schlüssel am Mailserver so hinterlegt werden, dass gemeinsam mit dem öffentlichen Schlüssel die ausgehenden Mails verschlüsselt werden können. Weiters muss der private Schlüssel mit den Mails mit gesendet werden, sodass ein Entschlüsseln der Mails beim Empfänger gemeinsam mit dem öffentlichen Schlüssel möglich ist. Das einzurichten ist ganz klar eine Angelegenheit Ihres Providers.

DMARC

Was ist ein DMARC Eintrag?

DMARC steht für Domain-based Message Authentication, Reporting and Conformance.

Mit DMARC können Sie Empfehlungen geben, wie ein Empfänger-Server bei Verstößen gegen SPF und DKIM mit einer E-Mail verfahren soll. Das lässt sich stufenweise regulieren mit bestimmten Parametern.

Wenn es weder einen SPF noch einen DKIM Eintrag gibt, dann kann man sinnvollerweise auch keinen DMARC-Eintrag für diese Domain anlegen.

Außerdem haben Sie die Möglichkeit sich bei Verstößen informieren zu lassen, wenn Sie den DMARC Eintrag entsprechend vornehmen.

Der Dateninhalt eines DMARC Eintrags im Domain Name System kann so aussehen:

v=DMARC1; p=reject; rua=mailto:mail@ihre-domain.de; ruf=mailto:mail@ihre-domain.de; adkim=s; aspf=r

  • v=DMARC1 ist fixer Bestandteil und darf nicht geändert werden.
  • p weist den Empfängerserver an, was mit Nachrichten passieren soll, die nicht authentifiziert werden konnten. Mögliche Werte sind none, quarantine und reject.
  • Mit rua nennen Sie die E-Mail-Adresse, an die Berichte zu DMARC-Aktivitäten für Ihre Domain gesendet werden. Tipp: legen Sie dafür eine eigene Mailbox an, etwa nach dem Schema dmarc-rua@ihre-domain.de
  • Mit ruf nennen Sie die E-Mail-Adresse, an die Fehlerberichte (auch forensische Berichte genannt) versendet werden sollen. Tipp: legen Sie dafür eine eigene Mailbox an, etwa nach dem Schema dmarc-ruf@ihre-domain.de
  • adkim und aspf legen die Abgleichrichtlinien für DKIM bzw. SPF fest. Darin ist definiert, wie genau Nachrichteninformationen mit DKIM-Signaturen bzw. SPF-Signaturen übereinstimmen müssen. s steht für “strenger Abgleich”, r für “lockeren Abgleich”.

Beispiel

Die folgende Konfiguration weist alle E-Mails zurück, die nicht mit Ergebnissen der DKIM- und SPF-Prüfung übereinstimmen. Darüber hinaus wird ein aggregierter Statusbericht an die E-Mail-Adresse postmaster@example.com gesendet.

v=DMARC1;p=reject;rua=mailto:postmaster@example.com

Puh, das war jetzt doch ein wenig mehr Erklärung zur Technik, als ursprünglich vorgesehen. Verzeihen Sie mir bitte. Andererseits: so läuft es bei DMARC nun einmal ab.

Wie macht man einen DMARC-Eintrag?

Bei DMARC Einträgen gibt es, wie Sie eben gesehen haben, eine Reihe von Parametern (Wikipedia). Damit wird reguliert, auf welche Art der Empfänger mit einer Mail umgeht, die im Fall SPF und/oder DKIM nicht den Anforderungen entspricht. 

Wenn Sie bereits SPF und DKIM eingerichtet haben, konfigurieren Sie DMARC, indem Sie den DNS-Einträgen Ihrer Domain die DMARC Richtlinien in Form von TXT-Einträgen hinzufügen (also genau so wie bei SPF oder DKIM).

Der TXT-Eintragname sollte bei einem DMARC-Eintrag lauten:

_dmarc.IhreDomain.com 

Ersetzen Sie bitte “IhreDomain.com” durch Ihren tatsächlichen Domain-Namen (oder Subdomain-Namen).

Wie das daher in Ihrem konkreten Fall aussehen kann, das können Sie auch bei kompetenter Stelle nachfragen (bei Ihrem Domain/Mail-Provider), oder probieren es vorsichtig unter Zuhilfenahme von Anleitungen (s.o. unsere, bzw. s.u. bei Online-Tools) aus.

Sie werden dann an den angegebenen Mail-Adressen (rua, ruf) eher schwierig lesbare Berichte im XML-Format erhalten. Diese Berichte können Sie aber in ein Online DMARC-Berichtstool (Link weiter unten) hochladen, um eine verständliche Form des Berichts zu sehen.

DMARC-Bericht bei EASYDMARC
DMARC-Bericht bei EASYDMARC

Ergebnis

Sind alle Einträge gemacht, kann das im Ergebnis so aussehen wie hier (Beispiel beim Provider Timme-Hosting):

DNS-Einträge zu SPF, DKIM, DMARC
Alle drei Einträge am Beispiel einer Domain bei Timme-Hosting

Wie das Bild zeigt, wird laut SPF Eintrag (erste Zeile) das Versenden über den Server crsend.com (CleverReach) ebenfalls zugelassen.

Das default._domainkey in Zeile 2 für den DKIM-Eintrag gilt für den Provider im gezeigten Beispiel (Timme-Hosting). Bei anderen Providern kann hier ein anderer Eintrag nötig sein. all-inkl verlangt an dieser Stelle etwa mail._domainkey. Sehen Sie bitte unbedingt in der Anleitung Ihres Providers nach.

Tools

Mit dem gewonnen Basis-Wissen können Sie auch diverse Tools und Generatoren bestens nutzen. Sehen Sie sich etwa die Tools der Plattform MX Toolbox an:

Weitere Tools, die wir für hilfreich halten:

Fazit

Das Thema Mail-Absicherung ist kein triviales Thema. Eine Standardvorgangsweise, bei der “blind” allgemein wirksame und gültige Einträge in irgendein Tool gemacht werden, gibt es hierfür leider nicht.

Wir freuen uns, wenn uns gelungen sein sollte, etwas Licht ins Dunkel zu bringen. Teilen Sie doch bitte Ihre Erfahrungen als Kommentar zum Beitrag mit.

Heinz Duschanek
Heinz Duschanek

Heinz Duschanek hat 2003 die Online-Marketing Agentur E-Werkstatt gegründet. Da er vorher auch beim Radio gearbeitet hatte (Radio CD International, Ö1, Ö3), freut er sich jetzt ganz besonders über die Richtung, die das Online-Marketing nimmt. Denn das liefert einen Vorwand dafür, viele elektrischen Geräte und Gadgets rund um Audio und Video anzuschaffen.

Daneben interessiert sich Heinz auch für Tango Argentino (seit 2009), Lindy Hop, Wing-Tsun, Boxen, (Jazz-/Blues-)Gitarre.

Ein Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.