Kurz erklärt
DKIM (DomainKeys Identified Mail) signiert E-Mails mit einem Private Key und veröffentlicht den zugehörigen Public Key im DNS. Empfänger können die Signatur prüfen und wissen damit: Die E-Mail stammt tatsächlich vom angegebenen Absender und wurde nicht manipuliert.
Wie funktioniert DKIM?
1. Absender-Seite:
- Mailserver signiert ausgewählte E-Mail-Header und Body mit Private Key
- DKIM-Signatur wird als
DKIM-Signature-Header hinzugefügt
- E-Mail wird versendet
2. Empfänger-Seite:
- Empfänger extrahiert DKIM-Signatur aus E-Mail-Header
- Empfänger liest Public Key aus DNS (Selector + Domain)
- Empfänger verifiziert Signatur mit Public Key
- Ergebnis: Pass (gültig) oder Fail (ungültig/manipuliert)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=example.com; s=selector1;
h=from:to:subject:date;
bh=base64EncodedBodyHash;
b=base64EncodedSignature;
Wichtige Felder:
v=1 – DKIM-Version
a=rsa-sha256 – Algorithmus (RSA mit SHA-256)
d=example.com – Signatur-Domain
s=selector1 – Selector (identifiziert welcher Key)
h=from:to:subject – Signierte Header
bh= – Hash des E-Mail-Body
b= – Digitale Signatur
DKIM Selector verstehen
Der Selector identifiziert das Schlüsselpaar und ermöglicht mehrere DKIM-Keys pro Domain. Der Public Key wird im DNS unter:
selector1._domainkey.example.com
veröffentlicht.
Warum mehrere Selectors?
- Verschiedene E-Mail-Services (Google Workspace, Marketing-Tool)
- Key-Rotation ohne Service-Unterbrechung
- Verschiedene Abteilungen mit eigenen Keys
DKIM DNS-Record
TXT-Record für selector1._domainkey.example.com:
v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC...
Felder:
v=DKIM1 – DKIM-Version
k=rsa – Key-Typ (RSA)
p=... – Base64-kodierter Public Key
Key-Größen & Rotation
RSA-Schlüssellängen:
- 1024 Bit: Veraltet, unsicher – nicht mehr verwenden
- 2048 Bit: Aktueller Standard, empfohlen
- 4096 Bit: Sehr sicher, aber manche DNS-Systeme haben Probleme
Key-Rotation-Empfehlungen:
- 2048-Bit Keys: alle 6 Monate rotieren
- 1024-Bit Keys: sofort auf 2048 Bit upgraden
- Bei Sicherheitsvorfall: sofortiger Key-Wechsel
DKIM signiert standardmäßig:
From – Absender-Adresse
To – Empfänger-Adresse
Subject – Betreff
Date – Sendedatum
Message-ID – Eindeutige Nachrichten-ID
Wichtig: Nicht alle Header werden signiert – Empfänger-Mailserver können z.B. Received-Header hinzufügen, ohne Signatur zu brechen.
DKIM einrichten
Bei Google Workspace:
- Admin Console → Apps → Google Workspace → Gmail → Authenticate Email
- DKIM-Authentifizierung für Domain aktivieren
- DNS TXT-Record kopieren (Selector:
google, ca. 2048-Bit Key)
- TXT-Record in DNS einfügen:
google._domainkey.example.com
- In Google Admin Console “DKIM starten” klicken
Bei eigenem Mailserver (Postfix + OpenDKIM):
- OpenDKIM installieren
- Key-Pair generieren:
opendkim-genkey -d example.com -s selector1
- Private Key in
/etc/opendkim/keys/ speichern
- Public Key als DNS TXT-Record veröffentlichen
- OpenDKIM in Postfix integrieren
Bei Transactional E-Mail Services:
Amazon SES, Mailgun, Brevo bieten automatische DKIM-Signierung – DNS-Records müssen manuell eingefügt werden.
DKIM testen
1. Test-E-Mail senden (z.B. an Gmail-Adresse)
2. Message Headers prüfen:
Authentication-Results: mx.google.com;
dkim=pass header.i=@example.com header.s=selector1 header.b=xyz123;
3. Online-Tools:
DKIM vs. SPF
| Aspekt | DKIM | SPF |
|---|
| Prüft | E-Mail-Inhalte & Absender | Sendender Server |
| Weiterleitungen | Funktioniert | Schlägt fehl |
| Manipulation | Erkennt Änderungen | Nicht relevant |
| DNS-Limit | Kein Limit | 10-Lookup-Limit |
Beide zusammen: SPF + DKIM + DMARC sind das vollständige E-Mail-Authentifizierungs-Trio.
Nächste Schritte
- DKIM für Haupt-Domain aktivieren (Google Workspace, Mailserver-Config)
- DNS TXT-Records veröffentlichen und warten (TTL beachten)
- Test-E-Mail senden und Header prüfen (
dkim=pass)
- DMARC einrichten, um SPF und DKIM zu kombinieren
- Key-Rotation alle 6 Monate planen