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 - Beweisen Sie, dass die E-Mail wirklich von Ihrer 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: Ihr 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=11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo="
Die beiden p= codieren nicht dasselbe. Bei k=rsa steht dort der Schlüssel im SubjectPublicKeyInfo-DER-Format (RFC 6376 §3.6.1). Bei k=ed25519 steht dort der rohe Schlüssel aus 32 Byte, also 44 Zeichen in Base64 (RFC 8463 §4.2): ein in DER verpackter Ed25519-Schlüssel wird von einem konformen Verifizierer abgelehnt.
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 | ~410 Zeichen | ~750 Zeichen | 66 Zeichen |
| Performance | Gut | Langsam | Sehr schnell |
| Empfehlung | Produktion | Sensibel | Fortgeschritten |
Empfehlungen
- RSA 2048 Bit: Aktueller Standard, maximale Kompatibilität. Wählen Sie diese Option standardmäßig.
- RSA 4096 Bit: Für sehr sensible Umgebungen. Achten Sie auf DNS-Einschränkungen.
- Ed25519: Für fortgeschrittene Konfigurationen. Erwägen Sie 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 | 66 Zeichen | ✅ Immer |
| RSA 1024 | ~230 Zeichen | ✅ Immer |
| RSA 2048 | ~410 Zeichen | ⚠️ Automatische Aufteilung |
| RSA 4096 | ~750 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 Ihr Provider lange Records nicht unterstützt, bevorzugen Sie RSA 2048 Bit oder Ed25519.
Konkrete Anwendungsfälle
Neue Domain: Erste DKIM-Konfiguration
Kontext: Sie konfigurieren einen neuen Mailserver (Postfix, etc.)
Lösung:
- Generieren Sie einen RSA 2048 Bit-Schlüssel mit dem Selektor
default - Laden Sie den privaten Schlüssel herunter und konfigurieren Sie OpenDKIM
- Veröffentlichen Sie den TXT-Eintrag in Ihrer DNS-Zone
- Überprüfen Sie mit dem DKIM Checker
DKIM-Schlüsselrotation
Kontext: Ihr DKIM-Schlüssel ist älter als 12 Monate oder wurde kompromittiert
Lösung:
- Generieren Sie einen neuen Schlüssel mit einem neuen Selektor (z. B. s2, 202602)
- Konfigurieren Sie den neuen Schlüssel in Ihrem Mailserver
- Veröffentlichen Sie den neuen DNS-Eintrag
- Warten Sie 24-48 Stunden auf die DNS-Propagation
- Löschen Sie den alten Eintrag
Doppelter Selektor: RSA + Ed25519
Kontext: Sie möchten Ed25519 nutzen und gleichzeitig RSA-Kompatibilität behalten
Lösung:
- Generieren Sie einen RSA 2048-Schlüssel mit dem Selektor
rsa - Generieren Sie einen Ed25519-Schlüssel mit dem Selektor
ed - Konfigurieren Sie Ihren 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: Testen Sie Ihre Konfiguration ohne Risiko von Ablehnungen. Entfernen Sie das Flag nach erfolgreicher Validierung.
Flag t=s (Strikter Modus)
Verlangt, dass die Signeridentität (i=) exakt mit der Signaturdomain (d=) übereinstimmt: Sie darf keine Subdomain von d= sein. Ohne dieses Flag wird eine Subdomain-Identität akzeptiert. Das ist kein DMARC-Alignment: Dieses hängt von der DMARC-Policy (Tag adkim=) ab, nicht von DKIM.
Anwendung: Verstärken Sie die Sicherheit in der Produktion. Stellen Sie sicher, dass alle Ihre 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: Nutzen Sie unseren Generator: Geben Sie Ihre Domain und einen Selektor ein, wählen Sie RSA 2048 Bit, klicken Sie auf Generieren. Laden Sie den privaten Schlüssel herunter und veröffentlichen Sie den TXT-Eintrag in Ihrem 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. Laden Sie ihn sofort herunter.
F: Warum überschreitet mein Record 255 Zeichen?
A: RSA 4096 erzeugt Records mit rund 750 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üfen Sie, ob Ihr DKIM veröffentlicht und gültig ist |
| DKIM Syntax Check | Validieren Sie die Syntax eines DKIM-Records |
| DKIM Selector Finder | Finden Sie aktive DKIM-Selektoren Ihrer Domain |
| SPF Generator | Erstellen Sie Ihren SPF-Eintrag |
| DMARC Generator | Konfigurieren Sie DMARC zur Vervollständigung der Authentifizierung |
| Mail Tester | Testen Sie die Zustellbarkeit Ihrer 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