eMail – Was ist DKIM


… und wozu brauche ich das?

Im zweiten Teil der Serie „eMail – Was ist ___ … und wozu brauche ich das?“ geht es um DKIM.

Hier gehts direkt zu

Allgemein

DKIM steht für Domain Keys Identified Mail und wird verwendet um eine eMail digital zu signieren. Die Signatur erlaubt es die Herkunft einer eMail nachzuvollziehen.
Dazu wird ein asymetrisches Schlüsselpaar benötigt und der öffentliche Teil (public Key) im DNS der sendenden (Sub-) Domain als TXT-Eintrag veröffentlicht. Der private Teil (private Key) verbleibt auf dem Mailserver. Signierte eMails können am sogenannte DKIM-Signature Header erkannt werden. Zusammen mit SPF und DMARC ist DKIM ein weiteres Tool welches indirekt den SPAM-Versand im Internet erschwert. Der hauptsächliche Zweck besteht darin festzustellen ob eine eMail wirklich mit einem Server der angegebene Domain versendet wurde. Definiert ist DKIM im RFC6376.

Der private Key darf niemals veröffentlicht werden, sonst gilt das Schlüsselpaar als kompromittiert und sollte unter keinen Umständen weiter verwendet werden!

Der Ablauf

Wir gehen in diesem Szenario davon aus, dass DKIM erfolgreich auf dem sendenden Mailserver eingerichtet ist und der public Key im DNS der Absender-Domain bekannt gemacht wurde.

Sendet ein mit DKIM konfigurierter Mailserver eine eMail, wird sie um eine eindeutige Signatur ergänzt. Aus dem Inhalt der eMail wird ein Hashwert gebildet, dieser wird mit dem private Key des Schlüsselpaares signiert und als base64-encodierter Text im Header der eMail als DKIM-Signature angefügt.

Nimmt ein DKIM unterstützender Mailserver eine solche eMail entgegen, kann dieser die Signatur prüfen und so den Absender bestätigen. Dazu dekodiert der Empfänger die Signatur und entschlüsselt diese mit dem im DNS der (vermeintlichen) Absender-Domain gespeicherten public Key.
Der nun vorliegende Hashwert wird mit dem selbst berechneten Hashwert der eMail verglichen. Bei Übereinstimmung gilt der Absender als bestätigt und die eMail als unverändert.
Andernfalls ist davon auszugehen, dass die eMail auf dem Weg zum Empfänger manipuliert wurde oder nicht von einem autorisierten System der angegebenen Absender-Domain stammt. Der Empfänger kann die eMail nun entsprechend markieren oder ganz abweisen.

Hinweis: Nicht alle – jedoch die meisten – Mailserver unterstützen den Einsatz von DKIM. Prüfen Sie daher ob Ihr Mailserver oder Mail-Provider DKIM unterstützt. Ist dies der Fall, empfehlen wir Ihnen die Einrichtung.

Inhalt und Aufbau

Der Inhalt des DKIM-Eintrages besteht aus drei aufeinander folgenden Abschnitten welche durch ein Leerzeichen voneinander getrennt und als TXT-Eintrag für eine (Sub-) Domain im DNS hinterlegt werden. Das haben wir bereits bei SPF-Einträgen kennengelernt und ist hier sehr ähnlich.

Zu Beginn steht immer die aktuelle DKIM Version (v=DKIM1), gefolgt vom Key-Type (k=rsa). Abschließend wird der Required Tag (p=MII...) angegeben welcher den public Key als base64-encodierten Text enthält. Es gibt noch weitere, optionale Tags, welche im allgemeinen kaum bis keine Verwendung finden, weshalb ich auf diese – mit Verweis auf oben verlinkten RFC – nicht näher eingehen werde.

Auf eine Besonderheit bei dieser Art des TXT-Eintrages möchte ich noch eingehen, bevor wir uns dem Beispiel widmen: Der Selector. Der Selector wird sowohl im Namen des TXT-Eintrag (als selector._domainkey) als auch im DKIM-Signature Header der eMail hinterlegt und ermöglicht somit die Zuordnung bei mehreren DKIM-Einträgen für eine Domain. Das ist zum Beispiel dann sinnvoll, wenn Sie planen einem Newsletter-Dienstleister das Versenden in Ihrem (Domain-) Namen zu gestatten.

Beispiel

DKIM Eintrag der Domain it-habich.de.

Als konkretes Beispiel schauen wir uns den DKIM-Eintrag von it-habich.de an:

  • Es wird der Selector dkim verwendet
  • Version 1 der DKIM Definition wird genutzt
  • Der Signatur-Algorithmus RSA kommt zum Einsatz
  • Der base64-encodierte public Key wird veröffentlicht.
  • Es können beliebig viele DKIM-Einträge für eine Domain hinterlegt werden – jedoch müssen diese verschiedene Selektoren besitzen.
  • Neben unterschiedlich starken RSA (1024bit bis 4096bit), können auch Ed25519 Signaturen genutzt werden.

Empfehlung: Prüfen Sie regelmäßig ob Sie aktuelle, starke Signatur-Verfahren einsetzen und löschen Sie nicht mehr benötigte DKIM-Einträge!

Du wünschst Dir Beratung oder brauchst Unterstützung bei der Einrichtung für Deine Domain?
Ich helfe bei Prüfung, Fehlerbehebung, Erstellung und Aktualisierung Deines DKIM-Eintrages.
Unterstützung vom erfahrenen Partner – nur einen Anruf oder eine eMail entfernt!