Zum Hauptinhalt springen

SPF, DKIM und DMARC

Begriffsbeschreibung und Funktionsweise

SPF, DKIM und DMARC sind sinnvolle Mechanismen zum Schutz Ihrer Domain und Ihres E-Mail-Versandes vor Missbrauch durch Cyberkriminelle (E-Mail-Spoofing, Phishing). Die drei Protokolle ergänzen sich gegenseitig und werden im Nachfolgenden beschrieben.

1 - SPF

Ein SPF-Eintrag (Sender Policy Framework) soll die Absenderadresse einer E-Mail über das DNS verifizieren.

Konkret wird hierbei ein Eintrag in der Zone der Absenderdomain erstellt, welcher den versendenden Mailserver beinhaltet. So kann geprüft werden, ob der versendende Mailserver berechtigt ist, E-Mails im Namen dieser Domain zu versenden.

1.1 - SPF Syntax

Nachfolgend finden Sie ein Beispiel für einen SPF-Eintrag.

Subdomain

TYP

Wert

domain.tld.

TXT

"v=spf1 a mx ip4:192.168.1.1 include:mti99999999.secure-node.com -all"

Als "Subdomain" ist hier die Root-Domain (@) angegeben. Dies bedeutet, dass bei einem Versand von [email protected] der SPF von der Root-Domain verwendet wird. Sollte beispielsweise über [email protected] versendet werden, so muss der SPF-Eintrag für "subdomain.domain.tld." eingerichtet werden:

Subdomain

TYP

Wert

subdomain.domain.tld.

TXT

"v=spf1 a mx ip4:192.168.1.1 include:mti99999999.secure-node.com -all"

Ein SPF-Eintrag muss zwingend als TXT-Record angelegt werden. Weitere Informationen zu TXT-Records finden Sie im Artikel: TXT-Records

Der Wert eines SPF-Eintrages muss immer mit "v=spf1" beginnen. Dies dient der Kennzeichnung der aktuellen Versionsnummer.

Wenn man beispielsweise über den Server mti99999999.secure-node.com E-Mails versendet, und diese durch einen SPF-Record verifizieren will, muss der SPF-Record der Beispieldomain domain.tld wie folgt angepasst werden:

Subdomain

TYP

Wert

domain.tld.

TXT

"v=spf1 include:mti99999999.secure-node.com -all"

Im Beispiel ist zu sehen, wie der Hostname des Servers mit dem Ausdruck "include:" in den SPF-Record eingebunden wird. Dies legt fest, dass für diesen Hostnamen ebenfalls eine SPF-Prüfung durchgeführt werden soll. Im SPF des Servers sollten dann die IP-Adressen stehen, welche freigegeben werden sollen.

Sollte man direkt eine IPv4-Adresse freigeben wollen, so muss dies mit dem Tag "ip4:" eingerichtet werden:

Subdomain

TYP

Wert

domain.tld.

TXT

"v=spf1 ip4:192.168.1.1 -all"

Wie im ersten Beispiel ersichtlich, kann man mehrere Ausdrücke kombinieren. Es empfiehlt sich außerdem, die Ausdrücke "a" und "mx" in den SPF-Eintrag einzubauen. Durch den Ausdruck "a" werden alle IPv4-Einträge der Domain geprüft. Durch den Ausdruck "mx" werden alle IPv4-Adressen der MX-Einträge der Domain getestet. Sollte sich die Absenderadresse darunter befinden, besteht die E-Mail den SPF-Test.

Am Ende des SPF-Eintrages findet man den Ausdruck "-all". Dies bedeutet, dass alle E-Mails, die den SPF-Check nicht bestehen, abgelehnt werden müssen. Alternativ zu "-all" kann man auch "~all" einbauen. Die Welle besagt, dass E-Mails, die den SPF-Check nicht bestehen, zwar akzeptiert, jedoch auch markiert werden. Wir empfehlen die Verwendung von "-all", um nur Mailserver zuzulassen, die im SPF vorhanden sind.

2 - DKIM

Ein DKIM-Eintrag (DomainKeys Identified Mail) dient zur Authentifizierung eines Absenders. Dieser wird verifiziert, indem er eine digitale Signatur bei den E-Mails hinzufügt.

Die Signatur wird am Absender-Server mit einem privaten Schlüssel erstellt und beim Versenden im E-Mail-Header mitgeschickt. Der öffentliche Schlüssel wird als DNS-Eintrag bei der Absender-Domain hinterlegt.

Der Empfänger-Server kann mithilfe des öffentlichen Schlüssels die Signatur prüfen und so feststellen ob der Absender verifiziert ist oder die E-Mail während der Übertragung verändert wurde.

2.1 - DKIM Syntax

Nachfolgend finden Sie ein Beispiel für einen DKIM-Eintrag.

Subdomain

TYP

Wert

default._domainkey.domain.tld.

TXT

"v=DKIM1; k=rsa; p=EXAMPLEfMA0GCSqGSIb34CRdR/2QT1VH7ID2xJ971u/7AdNr/IaaA8dTdb8VyDQE8g0jfdI2rUsArspvomHL+8VEMyuhpGvTap+LaM21//khwDK4yv5t47kBAQUAA4GNDAQAB"

Die Subdomain besteht zum Einen aus dem "Selektor", welcher von Ihrem E-Mail-Provider festgelegt wird, in unserem Beispiel "default". Zum Anderen wird bei jedem DKIM die Subdomain "_domainkey" festgelegt, um zu signalisieren, dass es sich um einen DKIM-Schlüssel handelt.

Der DKIM-Eintrag wird meist als TXT-Record direkt bei der entsprechenden Domain hinterlegt, es ist jedoch auch möglich, dass dieser als CNAME auf eine andere Domain zeigt und dort als TXT angelegt ist.

Der Wert besteht aus mehreren Tags. Jeder DKIM muss mit der DKIM-Version "v=DKIM1;" beginnen. "k=rsa;" beschreibt den kryptografischen Algorithmus, meist wird hier rsa gewählt. Der öffentliche Schlüssel beginnt mit "p=", gefolgt von einer langen, individuellen Zeichenkette. Diesen Schlüssel erhalten Sie ebenfalls von Ihrem E-Mail-Provider.

3 - DMARC

Ein DMARC-Eintrag (Domain-based Message Authentication Reporting and Conformance) bestimmt was mit einer E-Mail passiert, nachdem Sie mit SPF geprüft und DKIM verifiziert wurde.

3.1 - DMARC Syntax

Nachfolgend finden Sie ein Beispiel für einen DMARC-Eintrag.

Subdomain

TYP

Wert

_dmarc.domain.tld.

TXT

"v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected];"

Die Subdomain "_dmarc" signalisiert, dass es sich um einen DMARC-Eintrag handelt. Dieser wird auch an alle anderen Subdomains vererbt, sofern dies nicht explizit im DMARC-Record deaktiviert wurde. Dies bedeutet, dass ein DMARC unter der root-Domain (@) auch für z. B. beispielsubdomain.domain.tld. gilt.

Die DMARC-Spezifikation verlangt zwingend einen DNS-Eintrag vom Typ TXT, welcher den entsprechenden Wert beinhaltet.

Der Wert besteht aus mehreren Tags. Jeder DMARC muss mit der DMARC-Version "v=DMARC1;" beginnen. "p=quarantine;" beschreibt die Richtlinie (Policy), die Sie nutzen wollen. Es können stattdessen auch "p=none;" und "p=reject;" verwendet werden:

  • p=none; - Wenn SPF und DKIM fehlschlagen, wird die E-Mail trotzdem an den Empfänger zugestellt (nicht empfohlen).

  • p=quarantine; - Wenn SPF und DKIM fehlschlagen, soll der Empfänger-Server die E-Mail in den SPAM-Ordner verschieben.

  • p=reject; - Wenn SPF und DKIM fehlschlagen, wird die E-Mail blockiert.

Die Tags "rua=mailto:" und "ruf=mailto:" legen fest, an welche E-Mail-Adressen der empfangende Mailserver eine Rückmeldung senden soll:

  • rua=mailto: - Aggregierte Berichte (Sammelberichte): Einmal täglich erhalten Sie Statistiken, welche IP-Adressen Mails in Ihrem Namen gesendet haben.

  • ruf=mailto: - Forensische Berichte (Fehlermeldungen in Echtzeit): Jedes Mal, wenn eine E-Mail die DMARC-Prüfung nicht besteht, sendet der Empfänger-Server eine Kopie der E-Mail an Sie, damit diese genauer analysiert werden kann.

Hat dies deine Frage beantwortet?