Die 3 Begrifflichkeiten sind erst seit Juni 2023 ein großes Thema geworden. Google, Yahoo und vermutlich noch andere große Anbieter haben sich nämlich dazu entschieden, E-Mails ohne SPF gar nicht erst zu akzeptieren und in folge dann auch nicht zu dem Postfach zuzustellen. DKIM kam dann bei vielen Anbietern Anfang 2024 mit dazu. DMARC wurde dann am 1. Februar 2024 ebenso Pflicht. Bei DMARC muss man aber dazu sagen dass dies erst für Domains gilt die mehr als 5000 E-Mails täglich versenden.
Nun stellt sich aber die frage was sind die 3 Mechanismen genau, was machen sie und braucht man wirklich alle 3?
SPF: SPF steht für Sender Policy Framework. SPF ist ein DNS-basiertes Verfahren, dass über die IP-Adresse funktioniert. SPF ermöglicht es dem Besitzer einer Domain, über einen DNS-Eintrag, zu bestimmen welche IP-Adressen im Namen der Domain Mails versenden dürfen. Der Empfangende Mail-Server gleicht bei Empfang einer Email den SPF-Record der Absenderdomain ab um zu bestimmen ob es sich bei der hinterlegten IP-Adresse auch um die selbe IP-Adresse der Mail handelt.
DKIM: DKIM steht für DomainKeys Identified Mail und dient zur Email-Authentifizierung. DKIM hinterlässt beim versenden von Mails einen privaten Schlüssel, der nur dem Absender bekannt ist. Der empfangende Mail-Server prüft dann mit einem öffentlich im DNS hinterlegten Schlüssel ob sie die Nachricht entschlüsseln kann. Diese Signatur stellt sicher dass während dem Sendevorgang die Email nicht verändert wurde und auch wirklich von der angegeben Domain stammt.
DMARC: Domain-based Message Authentication, Reporting and Corformance. DMARC verbindet DKIM und SPF und bietet somit die Möglichkeit Domaininhabern Richtlinien zu konfigurieren, was mit Mails geschehen sollen die nicht über DKIM oder SPF authentifiziert sind z.B. ablehnen, in die Quarantäne verschieben oder zustellen.
Außerdem bietet DMARC Reporting Funktionen die es ermöglicht Einblicke in die E-Mail Aktivitäten zu erhalten und Missbrauch zu erkennen.
SPF:
v=spf1 a mx ~all
Erklärung zu den einzelnen Teilen:
v=spf1: Dies gibt die SPF-Version an (immer spf1)
a: Erlaubt Servern, die als A-Record (IP-Adressen) hinterlegt sind Emails zu versenden
mx: Erlaubt Servern, die als MX-Record hinterlegt sind Emails zu versenden
~all: Weist darauf hin dass alle anderen Server nicht berechtigt sind Emails im Namen der Domain zu versenden.
Konkretes Beispiel bei Verwendung von Google Workspace als MX-Record
v=spf1 ip4:192.0.2.1 include:_spf.google.com ~all
In den verwendeten Beispiel wird dem Server (A-Record) mit der IP-Adresse: 192.0.2.1 erlaubt Mails zu versenden. Im weiteren erlauben wir in dem fiktiven Eintrag die Nutzung von Google Workspace mit dem Eintrag: include:_spf.google.com
Nach dem erstellen des Eintrages, musst du diesen nur noch als DNS-Record bei deinem Hosting Anbieter als TXT Eintrag hinterlegen.
Als Namen für den TXT eintrag lässt du einfach den Standard drinne. Wenn der Hoster einen Namen verlangt trägst du hier ein @ Zeichen ein. Der Inhalt des TXT-Eintrag ist dann der eigentliche SPF Eintrag.
DKIM:
Bei DKIM schaut das ganze schon anders aus und es wird ein wenig komplizierter als bei SPF. Der Grund hierfür ist dass wir einen Schlüssel erstellen und diesen Schlüssel dann im DNS der Domain hinterlegen.
Einen Schlüssel kannst du entweder durch Tools wie OpenDKIM oder direkt durch deinen E-Mail-Provider generieren lassen.
Der Key sollte dann in etwa so aussehen:
”v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsJ3DdMI+jtLjWE6QI fQwC2p+FfQwADwAAIQABAQAB”
Der generierte Key muss auch wie SPF noch im DNS der Domain hinterlegt werden. Erstelle dazu einen neuen TXT eintrag. Als wert fügst du den gesamten Key ein.
Der Name des Eintrages gestaltet sich ein wenig anders.
Der Name setzt sich aus deiner Domain und dem DKIM Sektor zusammen den du bei der Erstellung des Schlüssel ausgewählt hast.
Beispiel: Wenn dein Sektor “default” ist und die Domain test.de heißt würde der Namenseintrag des TXT Eintrages “default._domainkey.test.de” heißen.
DMARC:
Wir verwenden im Beispiel wieder die Domain: test.de
Die Erstellung eines DMARC Eintrages sieht kompliziertes aus als sie eigentlich ist. Ein Beispiel für einen DMARC-TXT-Eintrag im DNS sieht wie folgt aus:
Name: dmarc.test.de (_dmarc.DOMAIN)
Beispielwert: v=DMARC1; p=none; rua=mailto:dmarc-reports@test.de; ruf=mailto:dmarc-failures@test.de; pct=100
Erklärung und Möglichkeiten der einzelnen Teile im Eintrag:
v=DMARC1: Gibt die DMARC-Version an (immer DMARC1)
p=none: Dies ist die Richtlinie für E-Mails die die SPF und/oder DKIM-Prüfung nicht bestehen. Hier gibt es mehrere Optionen diese wären:
rua=mailto:dmarc-repots@test.de: Gibt die E-Mail Adresse an, an die aggregierte DMARC-Berichte gesendet werden.
ruf=mailto:dmarc-failure@test.de: Gibt die E-Mail-Adresse an, an die forensische Berichte (Detailierte Informationen über einzelne Fehlgeschlagene E-Mails) gesendet werden
pct=100: Gibt den Prozentsatz der E-Mails an, auf die die DMARC-Richtlinie angewendet wird (in dem Fall 100%)
Die 3. Sicherheitsrichtlinien waren noch nie so wichtig und zurecht. Ich glaub keiner von uns möchte nervige Spam-Mails erhalten oder selber als Spam eingestuft werden. Genau deswegen ist es ein wichtiger Schritt in Richtung Safer-IT diese 3 Mechanismen zu nutzen.
Falls du Hilfe bei der Einrichtung benötigst oder allgemeine Fragen hast kannst du dich auch jederzeit bei uns melden. Wir sind froh wenn wir helfen können.