DKIM
DKIM könnte man als digitales Wachssiegel beschreiben, dass die Echtheit des E-Mail Absenders gewährleistet.
Hierbei wird die E-Mail mit einer digitalen Signatur versehen, damit die Signierten Header beim Transport, nicht verändert oder gefälscht werden können. Wird eine Änderung vorgenommen, kann diese beim Empfang festgestellt werden.
Dafür wird eine Signatur aus definierten E-Mail-Headern berechnet. Diese Signatur wird dem E-Mail als zusätzlicher Header hinzugefügt. Über den PublicKey der im DNS System der Domain bereitgestellt wird, kann der Empfänger die Signatur überprüfen und die Echtheit überprüfen.
Wie funktioniert DKIM?
Öffentlicher Schlüssel (PublicKey)
Über den öffentlichen Schlüssel kann die E-Mail überprüft werden. v=DKIM1; k=rsa; p=key;
Tags | Beschreibung | Erforderlich |
---|---|---|
v= | Version des DKIM-Schlüsseldatensatzes, Standardwert ist "DKIM1" | Nein |
h= | Akzeptierte Hash-Algorithmen | Nein |
k= | Schlüsseltyp , Standardwert ist "rsa" | Nein |
n= | Notizen, die für einen Menschen von Interesse sein könnten | Nein |
p= | Öffentliche Schlüssel (base64) | Ja |
E-Mail Header
Für jede versendete E-Mail wird eine Signatur berechnet und als Header hinzugefügt.DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mydkimselector; c=simple/simple; t=1694010285; h=from:subject:to; bh=d0B6ZJjzyvbX77BrlX0DcQC0i0AuJQudsHclGTFOvCA=; b=hKpH7bAPDcH3YNNRs19zpBRYieZvHF7YOSpW/R2GBf5YyVUYil/LrOCDqOwlfrnMQmc2FrWo3rX GHnOskKEggxxK80o0H2zT+IbYfeqskeqJptvR9wmmQ/GyEbHX6amWFFcbkwsPeJkTO2/K0s+woE1o jCn6/VbwKRmFc/3Y5w8=
Tags | Beschreibung | Erforderlich |
---|---|---|
v= | Dieses Tag definiert die Version der die für den Signatursatz gilt | Ja |
a= | Der zur Erzeugung der Signatur verwendete Algorithmus | Ja |
d= | Gibt den Domainnamen an, der mit dem Selektoreintrag (s=) verwendet wird, um den öffentlichen Schlüssel zu finden | Ja |
s= | Der Name des DKIM-Selektors, dieser wird benötigt um den den öffentlichen DKIM-Schlüssel abzufragenselectorname._domainkey.example.com | Ja |
c= | Kanonisierung der Nachricht, Standardwert ist "simple/simple" (Dadurch wird definiert wie mit Leerzeichen und Textumbrüchen in der Nachricht umgegangen wird) | Nein |
t= | Signature Timestamp, der Zeitpunkt am dem diese Signatur erstellt wurde | Nein |
h= | Signierte Header-Felder, eine durch Doppelpunkte getrennte Liste von Header-Feldnamen, die die Headerfelder identifizieren | Ja |
bh= | Dieses Tag steht für den Body-Hash, eine verschlüsselte Version des Inhalts Ihrer Nachricht einschließlich der Headerfelder | Ja |
b= | Die Signaturdaten (base64) | Ja |
Was ist zu beachten, bei der Verwendung von DKIM?
Pro System ein Schlüssel
Wenn du mehrere Systeme hast die E-Mails versenden, solltest du für jedes System einen eigenen DKIM Schlüssel erzeugen und veröffentlichen. Auf diese Weise kannst du einen Schlüssel sicher zurückziehen, ohne dass andere Systeme beeinträchtigt werden.
Der "Selector" sollte, wenn möglich, das System widerspiegeln, bei dem der Schlüssel verwendet wird.