Definition
DKIM (DomainKeys Identified Mail) ist eine E-Mail-Authentifizierungsspezifikation, die mithilfe von Public-Key-Kryptografie ausgehende Nachrichten signiert. Empfangende Mailserver können dadurch bestätigen, dass die E-Mail aus der angegebenen Domain stammt und dass der Nachrichtentext sowie ausgewählte Header beim Transport nicht modifiziert wurden. Die signierende Domain veröffentlicht ihren öffentlichen Schlüssel im DNS; empfangende Server rufen diesen Schlüssel ab und verifizieren damit die im DKIM-Signature-Header eingebettete Signatur[1].
DKIM entstand aus zwei früheren, sich überlappenden Vorschlägen — Yahoos DomainKeys und Ciscos Identified Internet Mail — und wurde 2007 erstmals als IETF RFC 4871 veröffentlicht. Die aktuelle maßgebliche Spezifikation ist RFC 6376, veröffentlicht im September 2011 und aktualisiert durch RFC 8301 (2018) sowie RFC 8463 (2018), die stärkere kryptografische Algorithmen vorschreiben. DKIM ist im E-Mail-Ökosystem weit verbreitet und ist eine erforderliche Komponente einer DMARC-Policy, die sinnvollen Schutz bietet.
Funktionsweise
Wenn der Mailserver einer Organisation eine Nachricht versendet, führt das DKIM-Signaturmodul (eingebaut in MTAs wie Postfix, Exim und Microsoft Exchange oder als Dienst von Transaktionsanbietern wie SendGrid, Mailgun, Amazon SES und Postmark bereitgestellt) folgende Operationen aus.
Der Signierer wählt eine Untermenge von Headern für die Signatur aus — typischerweise From, To, Subject, Date und Content-Type — und kanonisiert sie mithilfe eines der beiden definierten Algorithmen: simple (minimale Whitespace-Normalisierung) oder relaxed (toleranter, kleine Header-Umformulierungen während des Transports werden akzeptiert). Der Nachrichtentext wird ebenso kanonisiert und mit SHA-256 gehasht (dem Algorithmus, der seit RFC 8301 verbindlich ist und das ältere SHA-1 abgelöst hat). Anschließend berechnet der Signierer eine RSA- oder Ed25519-Signatur über den Header-Hash zuzüglich einer strukturierten Metadaten-Zeichenkette und fügt am Anfang der Nachricht einen DKIM-Signature-Header ein.
Der DKIM-Signature-Header enthält: v=1 (Version), a=rsa-sha256 (Algorithmus), d=example.com (signierende Domain, bekannt als d=-Tag), s=selector1 (Selector zur Suche des spezifischen öffentlichen Schlüssels), h=from:to:subject (signierte Header), bh=<Body-Hash> und b=<Base64-Signatur>.
Der Domain-Eigentümer veröffentlicht den entsprechenden öffentlichen Schlüssel unter <selector>._domainkey.<domain> als DNS-TXT-Record. Wenn Gmail, Outlook, Yahoo Mail oder ein anderer RFC-6376-konformer MTA die Nachricht empfängt, fragt er per DNS diesen Eintrag ab, ruft den öffentlichen Schlüssel ab und verifiziert die kryptografische Signatur. Eine gültige Signatur ergibt ein DKIM-Ergebnis von pass. Eine fehlende oder ungültige Signatur sowie jegliche Modifikation der signierten Header oder des Bodys während des Transports erzeugen fail oder neutral, was an die DMARC-Auswertungsengine weitergegeben wird.
Selectors (s=-Tag) erlauben einer Domain, mehrere DKIM-Schlüssel gleichzeitig zu veröffentlichen — nützlich für die Schlüsselrotation ohne Diensteinschränkung oder zur Trennung von Schlüsseln über verschiedene Sendesysteme hinweg (z. B. marketing._domainkey.example.com versus transactional._domainkey.example.com).
Wo Sie ihm begegnen
DKIM ist eine grundlegende Zustellbarkeitsanforderung für jeden e-mail-abhängigen Dienst. Transaktionale E-Mail-Anbieter wie Amazon SES, SendGrid (Twilio), Mailgun (Sinch), Postmark und SparkPost integrieren DKIM-Signing als verpflichtenden Konfigurationsschritt im Rahmen der Domain-Verifizierung. Der Anbieter erzeugt ein RSA-2048- oder Ed25519-Schlüsselpaar, zeigt den öffentlichen Schlüssel als DNS-TXT-Record an und fordert den Domain-Eigentümer auf, ihn vor dem Versand von dieser Domain zu veröffentlichen[2].
Für Wettbewerbsplattformen, die E-Mail-Bestätigungsabstimmungen versenden, ist die DKIM-Signatur besonders wichtig, da Bestätigungs-E-Mails die Authentifizierungsprüfungen großer Mailbox-Anbieter passieren müssen — Google Workspace / Gmail, Microsoft Outlook und Exchange Online Protection, Yahoo Mail, Apple iCloud Mail und ProtonMail. Unsignierte Nachrichten oder solche mit fehlgeschlagenen Signaturen landen weitaus häufiger im Spam oder werden ganz blockiert, sodass Wähler ihre Abgaben nicht bestätigen können.
E-Mail-Testtools wie Mail-Tester, GlockApps und MXToolbox DKIM Lookup ermöglichen Versendern, ihre DKIM-Konfiguration vor dem produktiven Einsatz zu prüfen und zu validieren. Google Postmaster Tools und Microsoft SNDS liefern aggregierte Zustellbarkeitsdaten, die DKIM-Pass-Raten im Zeitverlauf widerspiegeln.
Praktische Beispiele
Eine Wettbewerbsplattform mit dem DKIM-Selector s=contest für die Domain votes.example.com veröffentlicht den öffentlichen Schlüssel unter contest._domainkey.votes.example.com. Jede ausgehende Bestätigungs-E-Mail trägt einen DKIM-Signature-Header, der mit dem zugehörigen privaten Schlüssel signiert ist. Wenn das Gmail-Konto eines Wählers die Nachricht empfängt, fragt der eingehende Filter von Gmail per DNS, verifiziert die Signatur, registriert ein „pass” und leitet das Ergebnis an seinen Spam-Klassifikator weiter. Der bestätigte DKIM-Pass erfüllt zusammen mit der SPF-Ausrichtung die Bedingungen für DMARC-Konformität.
Ein Wettbewerbsadministrator wechselt nach dem Lesen von RFC 8301 von einem 1024-Bit-RSA-Schlüssel (heute kryptografisch nicht mehr ausreichend) auf einen 2048-Bit-RSA-Schlüssel. Der alte Selector bleibt sieben Tage lang aktiv, um Nachrichten im Transport abzudecken, und wird dann aus dem DNS entfernt. Alle neuen Nachrichten verwenden den aktualisierten Selector und Schlüssel.
Verwandte Konzepte
DKIM arbeitet zusammen mit SPF Record, der die IP-Adresse des sendenden Servers authentifiziert, und mit DMARC, das eine Policy-Aktion und einen Berichtsmechanismus auf Basis der SPF- und DKIM-Ergebnisse festlegt. Beide Signale müssen gemeinsam betrachtet werden; ein bestandener DKIM-Test allein macht eine Nachricht nicht DMARC-konform, wenn die d=-Domain nicht mit der RFC5322.From-Domain ausgerichtet ist. Im Wettbewerbsbetriebskontext werden die praktischen Folgen von DKIM-Fehlern in Email Confirmation Vote erläutert, wo die Inbox-Platzierung der Bestätigungsnachricht direkt darüber entscheidet, ob eine abgegebene Stimme gezählt wird.
Quellen
- IETF RFC 6376 — DKIM Signatures: https://www.rfc-editor.org/rfc/rfc6376
- Wikipedia — DomainKeys Identified Mail: https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail
- DMARC.org Wiki — DKIM: https://dmarc.org/wiki/DKIM