Was ist DKIM?
DKIM (DomainKeys Identified Mail) ist ein E-Mail-Authentifizierungsmechanismus, der in RFC 6376 definiert ist. Er ermöglicht die kryptografische Signierung ausgehender E-Mails, um deren Herkunft und Integrität nachzuweisen.
Warum DKIM konfigurieren:
- E-Mails authentifizieren — Beweise, dass die E-Mail wirklich von deiner Domain stammt
- Schutz vor Fälschung — Die Signatur erkennt jede Änderung am Inhalt
- Bessere Zustellbarkeit — DKIM-signierte E-Mails werden von Gmail, Outlook, Yahoo besser akzeptiert
- Voraussetzung für DMARC — DKIM ist einer der beiden Pfeiler der DMARC-Authentifizierung (neben SPF)
Wie funktioniert DKIM?
DKIM verwendet asymmetrische Kryptografie (öffentlicher/privater Schlüssel):
- Signierung beim Versand: Dein Mailserver berechnet einen Hash der Nachricht und signiert ihn mit dem privaten Schlüssel
- DNS-Veröffentlichung: Der öffentliche Schlüssel wird in einem TXT-Eintrag unter
selector._domainkey.domain.comveröffentlicht - Verifizierung beim Empfang: Der empfangende Server ruft den öffentlichen Schlüssel per DNS ab und überprüft die Signatur
Versand: Nachricht → Hash → Signatur (privater Schlüssel) → DKIM-Signature Header
Empfang: Header → öffentlicher Schlüssel (DNS) → Signaturprüfung → Pass/Fail
Syntax eines DKIM-Eintrags
Ein DKIM-Eintrag ist ein DNS-TXT-Eintrag, der unter <selector>._domainkey.<domain> veröffentlicht wird:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
DKIM-Tags
| Tag | Beschreibung | Erforderlich | Werte |
|---|---|---|---|
v | Version | Empfohlen | DKIM1 |
k | Schlüsseltyp | Nein (Standard: rsa) | rsa, ed25519 |
p | Öffentlicher Schlüssel | Ja | Base64 DER |
h | Hash-Algorithmen | Nein | sha256, sha1 |
t | Flags | Nein | y (Test), s (Strikt) |
s | Service-Typen | Nein | email, * |
n | Notizen | Nein | Freitext |
Beispiel-Records
RSA 2048 Bit (empfohlen):
default._domainkey.captaindns.com TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."
Ed25519:
default._domainkey.captaindns.com TXT "v=DKIM1; k=ed25519; p=MCowBQYDK2Vw..."
RSA vs Ed25519: Welchen Algorithmus wählen?
| Kriterium | RSA 2048 | RSA 4096 | Ed25519 |
|---|---|---|---|
| Sicherheit | Gut | Ausgezeichnet | Ausgezeichnet |
| Unterstützung | Universell | Universell | Teilweise (~80%) |
| Record-Länge | ~400 Zeichen | ~800 Zeichen | ~90 Zeichen |
| Performance | Gut | Langsam | Sehr schnell |
| Empfehlung | Produktion | Sensibel | Fortgeschritten |
Empfehlungen
- RSA 2048 Bit: Aktueller Standard, maximale Kompatibilität. Wähle diese Option standardmäßig.
- RSA 4096 Bit: Für sehr sensible Umgebungen. Achte auf DNS-Einschränkungen.
- Ed25519: Für fortgeschrittene Konfigurationen. Erwäge einen doppelten Selektor (RSA + Ed25519).
- RSA 1024 Bit: Veraltet seit 2020. Nicht verwenden.
Schlüssellängen und DNS-Limits
Das 255-Zeichen-Limit
DNS-TXT-Einträge sind auf 255 Zeichen pro String begrenzt. Hier die Auswirkungen nach Algorithmus:
| Algorithmus | Record-Länge | DNS-kompatibel |
|---|---|---|
| Ed25519 | ~90 Zeichen | ✅ Immer |
| RSA 1024 | ~230 Zeichen | ✅ Immer |
| RSA 2048 | ~400 Zeichen | ⚠️ Automatische Aufteilung |
| RSA 4096 | ~800 Zeichen | ⚠️ Provider prüfen |
Wie Provider lange Records handhaben
Die meisten DNS-Provider (Cloudflare, AWS Route 53, Google Cloud DNS) teilen lange Records automatisch in mehrere Strings auf. Das DNS-Protokoll verkettet sie beim Abrufen.
Wenn dein Provider lange Records nicht unterstützt, bevorzuge RSA 2048 Bit oder Ed25519.
Konkrete Anwendungsfälle
Neue Domain: Erste DKIM-Konfiguration
Kontext: Du konfigurierst einen neuen Mailserver (Postfix, etc.)
Lösung:
- Generiere einen RSA 2048 Bit-Schlüssel mit dem Selektor
default - Lade den privaten Schlüssel herunter und konfiguriere OpenDKIM
- Veröffentliche den TXT-Eintrag in deiner DNS-Zone
- Überprüfe mit dem DKIM Checker
DKIM-Schlüsselrotation
Kontext: Dein DKIM-Schlüssel ist älter als 12 Monate oder wurde kompromittiert
Lösung:
- Generiere einen neuen Schlüssel mit einem neuen Selektor (z.B. s2, 202602)
- Konfiguriere den neuen Schlüssel in deinem Mailserver
- Veröffentliche den neuen DNS-Eintrag
- Warte 24-48 Stunden auf die DNS-Propagation
- Lösche den alten Eintrag
Doppelter Selektor: RSA + Ed25519
Kontext: Du möchtest Ed25519 nutzen und gleichzeitig RSA-Kompatibilität behalten
Lösung:
- Generiere einen RSA 2048-Schlüssel mit dem Selektor
rsa - Generiere einen Ed25519-Schlüssel mit dem Selektor
ed - Konfiguriere deinen Server für die Signierung mit beiden Schlüsseln
- Moderne Server verifizieren Ed25519, ältere nutzen RSA
DKIM-Flags: Test- und Strikt-Modus
Flag t=y (Testmodus)
Aktiviert den DKIM-Testmodus. Verifizierungsfehler werden als neutral behandelt (weder Pass noch Fail).
Anwendung: Teste deine Konfiguration ohne Risiko von Ablehnungen. Entferne das Flag nach erfolgreicher Validierung.
Flag t=s (Strikter Modus)
Erfordert striktes Alignment zwischen der DKIM-Signatur-Domain und der From-Domain. Standardmäßig erlaubt das relaxte Alignment Subdomains.
Anwendung: Verstärke die Sicherheit in der Produktion. Stelle sicher, dass alle deine E-Mails von der exakten Domain signiert werden.
FAQ - Häufig gestellte Fragen
F: Wie generiere ich einen DKIM-Schlüssel für meine Domain?
A: Nutze unseren Generator: Gib deine Domain und einen Selektor ein, wähle RSA 2048 Bit, klicke auf Generieren. Lade den privaten Schlüssel herunter und veröffentliche den TXT-Eintrag in deinem DNS.
F: Was ist der Unterschied zwischen RSA und Ed25519?
A: RSA wird von allen Servern unterstützt. Ed25519 ist moderner mit kürzeren Schlüsseln, aber die Unterstützung ist nicht universell (~80%). Empfehlung: RSA 2048 Bit für die Produktion.
F: Welche RSA-Schlüssellänge sollte ich wählen?
A: RSA 2048 Bit ist der Standard. RSA 1024 ist veraltet. RSA 4096 bietet mehr Sicherheit, erzeugt aber sehr lange Records.
F: Was ist ein DKIM-Selektor?
A: Ein Bezeichner, der mehrere DKIM-Schlüssel ermöglicht. Beispiele: default, google, s1. Der Eintrag wird unter selector._domainkey.domain.com veröffentlicht.
F: Wird der private Schlüssel gespeichert?
A: Nein. Er wird einmal generiert, übertragen und dann gelöscht. Lade ihn sofort herunter.
F: Warum überschreitet mein Record 255 Zeichen?
A: RSA 4096 erzeugt Records mit über 800 Zeichen. Die meisten Provider teilen automatisch auf. Andernfalls empfehlen wir RSA 2048 oder Ed25519.
F: Wie konfiguriere ich DKIM mit Google Workspace?
A: Google generiert eigene Schlüssel. Admin-Konsole > Gmail > E-Mail authentifizieren > Neuen Eintrag generieren. Unser Tool ist für eigene Server gedacht.
Ergänzende Tools
| Tool | Nutzen |
|---|---|
| DKIM Record Check | Überprüfe, ob dein DKIM veröffentlicht und gültig ist |
| DKIM Syntax Check | Validiere die Syntax eines DKIM-Records |
| SPF Generator | Erstelle deinen SPF-Eintrag |
| DMARC Generator | Konfiguriere DMARC zur Vervollständigung der Authentifizierung |
| Mail Tester | Teste die Zustellbarkeit deiner E-Mails |
Nützliche Ressourcen
- RFC 6376 - DomainKeys Identified Mail (DKIM) Signatures — Offizielle DKIM-Spezifikation
- RFC 8463 - A New Cryptographic Signature Method for DKIM (Ed25519) — Ed25519-Unterstützung für DKIM
- RFC 8301 - Cryptographic Algorithm and Key Usage Update to DKIM — Aktuelle Sicherheitsempfehlungen
- OpenDKIM - Configuration Guide — Dokumentation für Postfix/OpenDKIM
- Google Workspace - Set up DKIM — Offizieller Google-Guide
- Microsoft 365 - Use DKIM — Offizieller Microsoft-Guide