DNS

DKIM-Record im DNS verständlich erklärt: E-Mail-Signaturen

DomainKeys Identified Mail (DKIM) ist ein kryptografisches E-Mail-Authentifizierungsverfahren. Im Gegensatz zu SPF, das lediglich die IP-Adresse des absendenden Servers überprüft, versieht DKIM jede ausgehende E-Mail mit einer digitalen Signatur im E-Mail-Header. Der empfangende Server kann diese Signatur mithilfe des öffentlichen Schlüssels, der als TXT-Record im DNS der Absenderdomain hinterlegt ist, verifizieren. Dies beweist, dass die E-Mail tatsächlich von dieser Domain stammt und auf dem Transportweg nicht manipuliert wurde.

DKIM ist eine der drei Säulen der E-Mail-Authentifizierung. Erst im Zusammenspiel mit SPF und DMARC entsteht ein wirksamer Schutz vor Spoofing und Phishing. Wie diese Records ineinandergreifen, zeigt der übergeordnete DNS-Leitfaden.

SPF, DKIM und DMARC im Vergleich

Die drei Verfahren ergänzen sich, prüfen aber unterschiedliche Aspekte einer E-Mail:

VerfahrenPrüftSchwäche allein
SPFIst die sendende IP autorisiert?Bricht beim Weiterleiten von Mails
DKIMIst der Inhalt unverändert und authentisch?Sagt nichts über den Umgang mit Fälschungen
DMARCWie behandeln Empfänger nicht authentifizierte Mails?Braucht SPF oder DKIM als Basis

Gerade weil SPF beim Weiterleiten versagt, ist DKIM unverzichtbar: Die Signatur bleibt auch nach mehreren Zwischenstationen gültig.


Wie funktioniert DKIM?

Der DKIM-Prozess basiert auf asymmetrischer Kryptografie:

  1. Das Signieren (beim Absender): Wenn eine E-Mail den Mailserver des Absenders verlässt, berechnet dieser einen Hashwert über den Inhalt und wichtige Header-Zeilen (wie From, To, Subject). Dieser Hashwert wird mit dem geheimen Private Key des Absenders verschlüsselt und als DKIM-Signature-Header in die E-Mail eingebettet.
  2. Das Verifizieren (beim Empfänger): Der empfangende Mailserver liest die Signatur und sucht im DNS des Absenders nach dem öffentlichen Public Key.
  3. Der Abgleich: Mit dem Public Key entschlüsselt der Empfänger den Hashwert und vergleicht ihn mit einem selbst berechneten Hashwert der E-Mail. Stimmen beide überein, ist die Prüfung erfolgreich (DKIM Pass).

Der DKIM-Selektor: Namenskonvention im DNS

Da ein Unternehmen oft verschiedene E-Mail-Dienste parallel nutzt, muss für jeden Dienst ein eigener Schlüssel hinterlegt werden. Dies wird über den DKIM-Selektor gelöst. Der DNS-Record für den Schlüssel wird nicht auf der Hauptdomain konfiguriert, sondern auf einer spezifischen Subdomain nach dem Muster:

[selektor]._domainkey.[domain.com]

Ein realer Eintrag in der Zonendatei sieht wie folgt aus:

google._domainkey.example.com.   3600   IN   TXT   "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG..."
  • google: Der Selektor (wird vom Mail-Provider vorgegeben).
  • _domainkey: Ein fester, vom Standard vorgeschriebener String.
  • v=DKIM1: Die verwendete DKIM-Version.
  • k=rsa: Der verwendete Verschlüsselungsalgorithmus.
  • p=...: Der öffentliche Schlüssel (Base64-codiert).

2048-Bit-Schlüssel und das DNS-Längenlimit

Bei der Konfiguration moderner 2048-Bit-Schlüssel stossen Administratoren häufig auf das Limit von 255 Zeichen pro DNS-String. Da ein 2048-Bit-Schlüssel etwa 390 Zeichen lang ist, kann er nicht in einem Stück gespeichert werden.

  • Die Lösung: Der Schlüssel muss im DNS-TXT-Eintrag in zwei separate, durch Anführungszeichen umschlossene Strings aufgeteilt werden, wie: "v=DKIM1; k=rsa; p=MIIB...IDAQAB" "MIIB...[Rest des Schlüssels]"
  • Der Nameserver verkettet diese Fragmente bei der Auslieferung automatisch.

Typische DKIM-Fehler und ihre Ursachen

In der Praxis scheitert DKIM oft an Kleinigkeiten in der Konfiguration:

FehlerUrsacheLösung
DKIM: noneKein Selektor im DNS gefundenSelektor-Record gemäss Provider-Vorgabe anlegen
DKIM: failInhalt nach dem Signieren verändertFooter/Disclaimer-Tools prüfen, die Mails umschreiben
Schlüssel unvollständig255-Zeichen-Limit nicht beachtetPublic Key in mehrere Strings aufteilen
Alignment-Fehlerd=-Domain weicht von From-Domain abSignierende Domain an Absenderdomain angleichen

Ein häufiges Praxisproblem: Mailinglisten oder Antivirus-Gateways hängen Texte an die E-Mail an und verändern dadurch den signierten Inhalt – die Signatur wird ungültig. In solchen Fällen hilft eine Kombination aus DKIM und korrekt konfiguriertem SPF.


DKIM richtig einführen – Schritt für Schritt

  1. Schlüsselpaar erzeugen: Der Mail-Provider oder der eigene Server generiert Private und Public Key (mind. 2048 Bit).
  2. Public Key im DNS hinterlegen: Als TXT-Record unter selektor._domainkey.example.com.
  3. Signierung aktivieren: Der ausgehende Mailserver signiert ab jetzt jede Nachricht.
  4. Testen: Eine Test-Mail an einen Prüfdienst senden und das DKIM=pass im Header kontrollieren.
  5. DMARC ergänzen: Erst mit DMARC wird festgelegt, was bei einer fehlgeschlagenen Prüfung passiert.

[!TIP] Ein fehlender oder ungültig signierter DKIM-Eintrag führt bei strengen Empfängern (wie Gmail oder Yahoo) oft zur sofortigen Abweisung der E-Mails. Prüfen Sie die Gültigkeit Ihrer Signaturen und Selektoren mit dem SPF & DKIM Check auf balou.tools.

Häufig gestellte Fragen (FAQ)

Was ist ein DKIM-Selektor?

Ein Selektor ist eine frei wählbare Zeichenkette, die es einem Unternehmen erlaubt, mehrere DKIM-Schlüssel gleichzeitig für dieselbe Domain zu betreiben (z. B. einen für Google Workspace und einen für einen Newsletter-Dienst).

Warum sind 2048-Bit-DKIM-Schlüssel besser als 1024-Bit-Schlüssel?

1024-Bit-RSA-Schlüssel gelten aufgrund der gestiegenen Rechenleistung moderner Systeme langfristig als mathematisch unsicher. 2048-Bit-Schlüssel bieten eine deutlich höhere kryptografische Härtung und sind B2B-Standard.

Was bedeutet DKIM-Alignment bei DMARC?

Alignment bedeutet, dass die in der DKIM-Signatur verwendete Domain (`d=`) mit der sichtbaren Absenderdomain im From-Header übereinstimmt. Nur bei Übereinstimmung gilt die Prüfung im Sinne von DMARC als bestanden – ein gültiges DKIM allein reicht nicht.

Sollte man DKIM-Schlüssel regelmässig wechseln?

Ja, eine Schlüsselrotation (Key Rotation) alle 6 bis 12 Monate gilt als Best Practice. Dank Selektoren lässt sich ein neuer Schlüssel parallel einführen und der alte erst nach einer Übergangszeit entfernen, ohne dass Signaturen brechen.