So funktioniert’s
Der versendende Server signiert ausgewählte Kopfzeilen und den Text jeder Mail mit einem privaten Schlüssel und hängt das Ergebnis als Kopfzeile DKIM-Signature an. Darin stehen unter anderem die signierende Domain (d=) und der Selektor (s=). Beschrieben ist das Verfahren in RFC 6376.
Den passenden öffentlichen Schlüssel veröffentlicht die Domain als TXT-Record nach dem Muster selektor._domainkey.domain, zum Beispiel unter selector1._domainkey.example.com mit v=DKIM1; k=rsa; p=MIIBIjANBg… Der Empfänger holt ihn ab und rechnet die Signatur nach; stimmt sie, wurde die Mail seit dem Signieren nicht verändert.
Über Selektoren betreibt eine Domain mehrere Schlüssel parallel, etwa einen für Microsoft 365 und einen für den Newsletter-Dienst, und kann Schlüssel tauschen, ohne den Versand zu unterbrechen. RSA-Schlüssel sollten 2048 Bit haben, unter 1024 Bit lehnen Empfänger sie ab; Ed25519 nach RFC 8463 ist als zusätzlicher Algorithmus möglich.
Für DMARC zählt DKIM nur, wenn die signierende Domain zur sichtbaren Absenderdomain passt. Signiert ein Dienst ausschließlich mit seiner eigenen Domain, besteht DKIM zwar, hilft deiner Domain aber nicht.
Warum gefährlich
Ohne gültige DKIM-Signatur fehlt Empfängern der stärkste Nachweis, dass eine Mail wirklich von dir stammt. Weil SPF bei Weiterleitungen regelmäßig scheitert, hängt DMARC in der Praxis oft allein an DKIM: Fehlt der Schlüssel oder ist er widerrufen, fallen Mails bei p=quarantine oder p=reject durch.
Typische Ausfälle passieren beim Anbieterwechsel oder bei einer Schlüsselrotation, wenn der neue Selektor nicht im DNS steht oder ein alter Record gelöscht wird, den ein Dienst noch nutzt. Sehr kurze RSA-Schlüssel (512 oder 768 Bit) lassen sich mit überschaubarem Aufwand knacken; dann kann ein Angreifer gültig signierte Mails in deinem Namen erzeugen.
So vermeidest du es
- DKIM bei jedem Dienst aktivieren, der in deinem Namen versendet (Postfach-Anbieter, Shop, CRM, Newsletter), und mit der eigenen Domain signieren lassen.
- RSA-Schlüssel mit 2048 Bit erzeugen und alte 1024-Bit-Schlüssel ersetzen.
- Bei einer Rotation zuerst den neuen Selektor veröffentlichen, dann umstellen und den alten Record erst nach einigen Tagen löschen.
- Den Testmodus (t=y) nach der Einführung wieder entfernen.
- Die genutzten Selektoren dokumentieren und im Monitoring eintragen, damit ein gelöschter Record sofort auffällt.
So erkennt DomainWarn es
Der DKIM-Check fragt die Schlüssel-Records der Domain ab. Sind Selektoren eingetragen, prüft er genau diese; ohne Eintrag sucht er unter 39 gängigen Selektoren großer Anbieter wie google, selector1, k1, mailgun, ionos oder strato. Findet er dabei nichts, ist das nur ein Hinweis, denn Selektoren lassen sich von außen nicht auflisten.
Fehlt ein eingetragener Selektor, eröffnet DomainWarn nach zwei Läufen den Incident „DKIM fehlt“. Widerrufene Schlüssel (leeres p=), fehlende oder ungültige Schlüssel, ein falscher Versions-Tag, ein unbekannter Schlüsseltyp und mehrere Records unter einem Selektor führen zu „DKIM fehlerhaft“, ein RSA-Schlüssel unter 1024 Bit ist kritisch. Unter 2048 Bit und der Testmodus sind Hinweise. Die Zeitleiste zeigt hinzugekommene und entfernte Selektoren sowie rotierte Schlüssel.
Der Check sieht nur die veröffentlichten Schlüssel, nicht, ob deine Mails wirklich signiert werden. Das zeigen der Mail-Test, der jede Signatur kryptografisch nachrechnet, und die DMARC-Berichte.
DomainWarn prüft das für alle deine Domains regelmäßig und meldet sich, wenn etwas fehlt oder sich ändert.