Was ist DKIM?

DKIM (DomainKeys Identified Mail) versieht ausgehende E-Mails mit einer kryptografischen Signatur. Empfänger prüfen sie mit einem öffentlichen Schlüssel aus dem DNS der Absenderdomain.

Der sendende Server signiert ausgewählte Header und den Nachrichtentext mit einem privaten Schlüssel und fügt einen DKIM-Signature-Header hinzu. Der Header nennt die signierende Domain (d=) und einen Selektor (s=). Der Empfänger ruft den öffentlichen Schlüssel aus dem TXT-Record unter selector._domainkey.domain ab und prüft die Signatur. Eine gültige Signatur belegt, dass die Nachricht von dieser Domain autorisiert und unterwegs nicht verändert wurde.

Selektoren erlauben mehrere Schlüssel nebeneinander: einen je Versanddienst oder einen alten und einen neuen während eines Schlüsselwechsels. Das bedeutet auch, dass sich DKIM nicht allein aus dem Domainnamen ermitteln lässt. Ein Werkzeug kann einen DKIM-Eintrag nur prüfen, wenn es den Selektor kennt, und der steht im DKIM-Signature-Header einer echten Nachricht. Ein Schlüssel im DNS zeigt zudem nur, dass DKIM eingerichtet ist, nicht dass E-Mails tatsächlich signiert werden.

Anders als SPF übersteht eine DKIM-Signatur eine Weiterleitung in der Regel, weil sie mit der Nachricht reist. Sie bricht, wenn eine Zwischenstation, typischerweise eine Mailingliste, Betreff oder Text verändert. Schlüssel mit 2048 Bit sind heute die vernünftige Wahl. Für sich genommen sagt DKIM Empfängern nicht, was sie mit unsignierten E-Mails tun sollen; diese Richtlinie liefert DMARC.

Beispiel

sel1._domainkey.example.com.  3600  IN  TXT  "v=DKIM1; k=rsa; p=<public key>"

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=sel1; h=from:to:subject; bh=...; b=...

Selbst prüfen

So sieht das Thema „DKIM“ bei einer echten Domain aus:

MX-Abfrage