DKIM ermöglicht es einer Domain, ausgehende E-Mail-Nachrichten mit einem privaten Schlüssel zu signieren, wodurch empfangende Server die Signatur mit dem öffentlichen Schlüssel des Absenders überprüfen können, der in DNS veröffentlicht ist. Dies beweist, dass die Nachricht tatsächlich von dieser Domain stammt und nicht manipuliert wurde.
Funktionsweise:
Der sendende Mail-Server signiert ausgewählte E-Mail-Header und den Nachrichtentext und fügt ein DKIM-Signature:-Header-Feld in die Nachricht ein. Der öffentliche Schlüssel wird als TXT-Record in DNS unter selector._domainkey.domain.com veröffentlicht. Wenn der empfangende Server die E-Mail erhält, extrahiert er den Selector und die Domain aus dem Signature-Header, ruft den öffentlichen Schlüssel über DNS ab und überprüft, ob die kryptografische Signatur mit dem Nachrichteninhalt übereinstimmt.
Die Signatur umfasst eine kanonisierte (vereinfachte) Form von Headern wie From, Subject und Date sowie den Body. Der DKIM-Signature-Header enthält Tags wie:
d=— die signierende Domains=— der Selector-Namea=— der Algorithmus (z. B.rsa-sha256,ed25519-sha256)b=— der tatsächliche Signaturwert
Beispiel DNS-Record:
selector1._domainkey.example.com IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEB..."
DKIM funktioniert zusammen mit SPF und DMARC als Teil einer mehrstufigen E-Mail-Authentifizierungsstrategie. Im Gegensatz zu SPF überprüft DKIM nicht die Envelope-From-Adresse – es beweist nur, dass die signierende Domain die Nachricht autorisiert hat. Deshalb verbinden DMARC-Alignment-Richtlinien DKIM oder SPF mit der sichtbaren From-Adresse.
WarningE-Mail-Weiterleitungen und Mailing-Listen, die Header modifizieren oder Fußzeilen hinzufügen, unterbrechen DKIM-Signaturen, da der signierte Inhalt nicht mehr übereinstimmt. Dies ist ein häufiger Grund für Authentifizierungsfehler bei weitergeleiteten E-Mails.