So rotieren Sie DKIM-Schlüssel, ohne Ihren E-Mail-Versand zu stören
Die M3AAWG rät, DKIM-Schlüssel mindestens halbjährlich zu rotieren. Lesen Sie, wer je Plattform rotiert und wie der Wechsel ohne Signaturfehler gelingt.
Die DKIM-Schlüsselrotation ist der planmäßige Austausch des Schlüsselpaars, mit dem Ihre E-Mails signiert werden: Sie veröffentlichen einen neuen öffentlichen Schlüssel unter einem neuen Selektor im DNS, stellen die Signierung auf den neuen privaten Schlüssel um und nehmen das alte Paar außer Betrieb.
Die Messaging, Malware and Mobile Anti-Abuse Working Group (M3AAWG), ein Branchenverband, der Best Practices für Betreiber von E-Mail-Diensten veröffentlicht, empfiehlt, DKIM-Schlüssel mindestens alle sechs Monate zu rotieren, für den Fall, dass ein Schlüssel gestohlen wird.
Dieser Leitfaden richtet sich an Teams, die ihre eigenen Domains oder die Domains von Kunden verwalten und deren E-Mails die DKIM-Prüfung bereits bestehen. Er erklärt alles, was Sie über das Rotieren von DKIM-Schlüsseln wissen müssen, und zeigt, was passieren kann, wenn Sie Ihre Schlüssel nicht rotieren.
Wenn Sie noch herausfinden müssen, mit welchen Schlüsseln Ihre E-Mails signiert werden, beginnen Sie mit unserem Leitfaden dazu, wie Sie Ihren DKIM-Selektor finden; dieser Artikel setzt dort an, wo jener Leitfaden endet.
Inhalt dieses Leitfadens
- Was kann bei einem alten DKIM-Schlüssel schiefgehen?
- Wer ist für die DKIM-Schlüsselrotation zuständig?
- Wie oft sollten Sie DKIM-Schlüssel rotieren?
- Wie rotieren Sie einen Schlüssel, ohne die Signierung zu unterbrechen?
- Wie prüfen Sie, ob die Rotation funktioniert hat?
- Häufige Fragen
- Fazit
Was kann bei einem alten DKIM-Schlüssel schiefgehen?
Mit einem kompromittierten Schlüssel kann ein Angreifer Nachrichten versenden, die sich als Ihre Domain authentifizieren. Der private Schlüssel steht nie im DNS: Er ist auf den Mailservern und Versandplattformen gespeichert, die Ihre Nachrichten signieren, und ein Angreifer, der in eines dieser Systeme eindringt, kann ihn kopieren.
Der Angreifer signiert anschließend eine eigene Nachricht mit Ihrem privaten Schlüssel. Der empfangende Mailserver ruft Ihren öffentlichen Schlüssel aus dem DNS ab und verifiziert die Signatur.
Da die signierende Domain mit der Domain in Ihrer From-Adresse (der Absenderadresse) übereinstimmt, besteht die Nachricht auch die DMARC-Prüfung, die die authentifizierte Domain mit der From-Adresse vergleicht. Empfangende Server wenden Ihre DMARC-Richtlinie nur auf E-Mails an, die DMARC nicht bestehen, und stellen deshalb selbst bei p=reject eine Nachricht zu, die mit Ihrem eigenen Schlüssel signiert ist.
Dieses Risiko ist der Grund, den die M3AAWG für eine regelmäßige Rotation nennt: Je kürzer ein Schlüsselpaar im Einsatz ist, desto kürzer bleibt ein kompromittierter Schlüssel nutzbar.
Wer ist für die DKIM-Schlüsselrotation zuständig?
Wer für eine Rotation zuständig ist, erkennen Sie an zwei Dingen: am Typ des DNS-Eintrags, der für jeden Selektor veröffentlicht ist, und daran, ob die Plattform, die mit dem jeweiligen Selektor signiert, die Schlüssel nach einem eigenen Zeitplan rotiert. Um den Eintragstyp zu sehen, öffnen Sie die DNS-Einstellungen Ihrer Domain (bei Cloudflare, GoDaddy, Ihrem Domain-Registrar oder dort, wo Sie Ihr DNS verwalten) und suchen die Einträge, deren Namen mit Ihrem Selektor und dem Zusatz ._domainkey beginnen. In der Spalte „Typ“ steht bei jedem Eintrag TXT oder CNAME.
Wenn jemand anderes Ihr DNS verwaltet, prüfen Sie stattdessen die DKIM-Einrichtungsseite jeder Versandplattform: Dort stehen die Einträge, die Sie hinzufügen sollten, entweder CNAME-Einträge oder ein TXT-Eintrag mit einem langen Schlüsselwert.
Da ein TXT-Eintrag den öffentlichen Schlüssel selbst enthält, müssen Sie für jeden neuen Schlüssel einen neuen TXT-Eintrag in Ihrem DNS veröffentlichen. Die Rotation ist damit Ihre Aufgabe, auch wenn die Plattform das Schlüsselpaar erzeugt, wie es bei Google Workspace der Fall ist.
Ein CNAME-Eintrag unter dem Namen des Selektors ist ein Alias, der auf einen Eintrag verweist, den die Plattform verwaltet. Der private Schlüssel liegt bei der Plattform, und sie kann jeden neuen öffentlichen Schlüssel in diesem Eintrag veröffentlichen, ohne dass Sie Ihr DNS ändern müssen.
Am Eintragstyp erkennen Sie, wer den Schlüssel ersetzen kann. Wann der Austausch stattfindet, erkennen Sie daran nicht: Manche Plattformen rotieren nach einem eigenen Zeitplan, andere warten, bis Sie die Rotation starten. So handhaben vier Versandplattformen die Rotation:
| Versandplattform | Bei wem der private Schlüssel liegt | Wie die Rotation abläuft |
|---|---|---|
| Microsoft 365 | Microsoft; Ihre zwei CNAME-Einträge (selector1, selector2), die Sie einmalig veröffentlichen, verweisen auf Schlüsseleinträge, die Microsoft verwaltet | Sie starten die Rotation selbst, mit „Rotate DKIM keys“ im Defender portal (je nach Spracheinstellung kann die Bezeichnung abweichen) oder mit dem Cmdlet Rotate-DkimSigningConfig in Exchange Online PowerShell. Laut eigener Dokumentation stellt Microsoft die Signierung vier Tage (96 Stunden) nach dem Start der Rotation auf den neuen Schlüssel um. |
| Google Workspace | Google; Sie veröffentlichen den öffentlichen Schlüssel als TXT-Eintrag | Manuell. Sie erzeugen in der Admin console einen neuen Eintrag mit einem neuen Selektor-Präfix, fügen ihn bei Ihrem Domainhost als neuen TXT-Eintrag hinzu und starten dann die Authentifizierung. |
| Salesforce (Sales Cloud) | Salesforce; Ihre CNAME-Einträge verweisen auf Schlüsseleinträge, die Salesforce verwaltet | Automatisch. Salesforce rotiert den Schlüssel alle 30 Tage. |
| Amazon SES (Easy DKIM) | AWS; AWS erzeugt das Schlüsselpaar mit Easy DKIM und signiert Ihre E-Mails damit (standardmäßig mit 2048 Bit) | Sie müssen nichts einplanen. Der Schlüssel liegt bei AWS, und die Dokumentation zu Easy DKIM beschreibt keinen Rotationsschritt für den Domaininhaber. |
Jeden Schlüssel, der als TXT-Eintrag veröffentlicht ist, und jeden Schlüssel, bei dem die Plattform wie Microsoft 365 wartet, bis Sie die Rotation starten, rotieren Sie selbst. Bei einer Versandplattform, die nicht in dieser Tabelle steht, prüfen Sie dieselben zwei Punkte: den Eintragstyp unter ihrem Selektor und die Dokumentation des Anbieters dazu, wer eine Rotation startet. Den Fall Salesforce, einschließlich der Einrichtung für jedes Salesforce-Produkt, behandelt unser Leitfaden zu DMARC bei E-Mails aus Salesforce.
Wenn Sie DKIM für die Domains von Kunden verwalten, sollte die Anfrage zur Rotation laut der M3AAWG vom Domaininhaber kommen. Stimmen Sie jeden Rotationstermin mit Ihrem Kunden ab und nehmen Sie die Änderungen an DNS und Signierung zum vereinbarten Termin vor.
Wie oft sollten Sie DKIM-Schlüssel rotieren?
Für die Schlüssel, die Sie selbst rotieren, empfiehlt die M3AAWG eine Rotation mindestens alle sechs Monate. In ihren DKIM Key Rotation Best Common Practices haben die Mitglieder der M3AAWG verschiedene Rotationsintervalle verglichen und dieses Intervall als Abwägung zwischen dem Risiko eines kompromittierten Schlüssels und dem Aufwand für seinen Austausch gewählt. Das Dokument schlägt feste Termine außerhalb Ihrer verkaufsstärksten Zeiträume vor, für einen Onlineshop zum Beispiel April und Oktober.
In zwei Situationen sollten Sie vor dem geplanten Termin rotieren:
- Bei Verdacht auf eine Kompromittierung rotieren Sie sofort und widerrufen den alten Schlüssel, sobald der neue Schlüssel im Einsatz ist, statt ihn wie beim Überlappungsverfahren weiter unten 7 bis 30 Tage lang veröffentlicht zu lassen. Legitime E-Mails, die mit dem alten Schlüssel signiert sind und verspätet ankommen, bestehen die DKIM-Prüfung dann nicht mehr, aber Fälschungen, die mit dem gestohlenen Schlüssel signiert sind, bestehen sie ebenfalls nicht.
- Scheidet ein Dienstleister oder ein Mitarbeiter aus, der Zugriff auf die Systeme hatte, die Ihre E-Mails signieren, rotieren Sie die Schlüssel, die er kopiert haben könnte.
Prüfen Sie bei jeder Rotation die Schlüssellänge. RFC 8301 verlangt für die Signierung RSA-Schlüssel mit mindestens 1024 Bit und empfiehlt 2048 Bit. Wenn der DNS-Eintrag eines Selektors noch einen 1024-Bit-Schlüssel enthält, erzeugen Sie den Ersatzschlüssel deshalb mit 2048 Bit.
Wie rotieren Sie einen Schlüssel, ohne die Signierung zu unterbrechen?
Beim Überlappungsverfahren mit zwei Selektoren ersetzen Sie einen Schlüssel, ohne dass auch nur eine Signaturprüfung fehlschlägt, denn der Selektor in jeder Nachricht verweist auf einen öffentlichen Schlüssel, der noch im DNS veröffentlicht ist. Während der Überlappung bleiben beide öffentlichen Schlüssel veröffentlicht, jeder unter seinem eigenen Selektor, und in dieser Zeit stellen Sie die Signierung vom alten privaten Schlüssel auf den neuen um.
Die folgenden Schritte gelten für den Fall, dass Ihr eigener Mailserver Ihre E-Mails signiert. Auf einer Plattform, die das Schlüsselpaar für Sie erzeugt, etwa Google Workspace, erstellen Sie den neuen Schlüssel und stellen die Signierung in der Verwaltungsoberfläche der Plattform um. Die DNS-Einträge veröffentlichen Sie aber weiterhin selbst und widerrufen sie später auch selbst.
- Erzeugen Sie das neue Schlüsselpaar und veröffentlichen Sie den öffentlichen Schlüssel unter einem neuen Selektor im DNS. Die M3AAWG rät dringend davon ab, Selektornamen wiederzuverwenden, und mit einem Namen, der das Datum enthält, wie
mail-202604, können Sie Ihre Selektoren danach sortieren, wann der jeweilige Schlüssel in Betrieb ging. - Warten Sie, bis der neue Eintrag im öffentlichen DNS sichtbar ist, also bis eine DNS-Abfrage des neuen Selektornamens, zum Beispiel
mail-202604._domainkey.yourdomain.com, den neuen öffentlichen Schlüssel zurückgibt. Da Ihr Mailserver noch nicht mit dem neuen Schlüssel signiert, kann während der Wartezeit keine Signaturprüfung fehlschlagen. - Stellen Sie die Signierung auf Ihrem Mailserver auf den neuen privaten Schlüssel um. Neue E-Mails enthalten nun den neuen Selektor im Tag
s=ihrer Signatur, und empfangende Server prüfen diese Signatur anhand des neuen öffentlichen Schlüssels. - Lassen Sie den Eintrag des alten Schlüssels 7 bis 30 Tage lang veröffentlicht. Weil der alte öffentliche Schlüssel noch veröffentlicht ist, können empfangende Server E-Mails weiterhin verifizieren, die vor der Umstellung signiert wurden, einschließlich verspäteter Zustellungen und Nachrichten, die in einer Warteschlange lagen.
- Widerrufen Sie den alten Schlüssel, indem Sie seinen Eintrag in
v=DKIM1; p=ändern (also mit leerem Wert fürp=). RFC 6376 definiert einen leeren Wert als widerrufenen Schlüssel. Die M3AAWG empfiehlt, den Eintrag im DNS zu belassen, statt ihn zu löschen, damit ein empfangender Server, der den alten Selektor abfragt, einen absichtlich außer Betrieb genommenen Schlüssel findet und keinen fehlenden Eintrag.
Microsoft 365 wendet auf seiner Seite dasselbe Überlappungsverfahren an: Beide Selektoren bleiben veröffentlicht, und Microsoft stellt die Signierung vier Tage (96 Stunden) nach dem Start der Rotation auf den neuen Schlüssel um.
Wie prüfen Sie, ob die Rotation funktioniert hat?
Wenn der DMARC-Eintrag Ihrer Domain ein Tag rua= enthält (darin steht die Adresse, an die Berichte gehen), senden empfangende Server DMARC-Aggregatberichte an diese Adresse. Diese Berichte zeigen, wie die Rotation verläuft: Nachrichten, die mit dem neuen Selektor signiert sind, bestehen ab der Umstellung die Prüfung, und Nachrichten mit dem alten Selektor erscheinen nicht mehr. Die M3AAWG empfiehlt etwa eine Woche nach jeder Rotation eine Überprüfung: Vergleichen Sie den Selektor, den die empfangenden Server gesehen haben, mit dem Selektor, der laut Plan aktiv sein sollte.
Wenn ein außer Betrieb genommener Selektor weiterhin in Ihren Berichten erscheint, stimmt etwas nicht. Prüfen Sie zuerst zwei mögliche Ursachen: einen Dienst, dessen Schlüssel niemand rotiert hat und der weiterhin mit dem alten Schlüssel signiert, und einen Schlüssel, der nur auf einer Seite rotiert wurde. Im zweiten Fall signiert der Mailserver mit einem Schlüssel, während der DNS-Eintrag einen anderen enthält, und empfangende Server werten die DKIM-Prüfung dieser Nachrichten als fehlgeschlagen.
DMARCeye wertet die Berichte für Sie aus und listet für jede Domain die Selektoren auf, mit denen Ihre E-Mails signiert sind. So erkennen Sie einen Selektor, der nicht mehr erscheinen sollte. Der kostenlose Tarif deckt eine Domain ab.
Für Plattformen mit gängigen Selektornamen, etwa selector1 und selector2 bei Microsoft 365, zeigt der kostenlose DKIM-Checker weiter unten den Schlüssel, der unter jedem dieser Selektoren veröffentlicht ist, und dessen Schlüsselstärke. Damit erkennen Sie einen 1024-Bit-Schlüssel, den Sie durch einen 2048-Bit-Schlüssel ersetzen sollten. Benutzerdefinierte Namen wie mail-202604 fragt der Checker nicht ab.
Häufige Fragen
Brauchen Sie für jede Rotation einen neuen Selektornamen?
Ja. Die M3AAWG rät dringend davon ab, Selektornamen wiederzuverwenden: Sobald der Eintrag unter einem wiederverwendeten Namen den neuen Schlüssel enthält, werten empfangende Server die DKIM-Prüfung jeder Nachricht, die mit dem alten Schlüssel signiert ist, als fehlgeschlagen, auch bei E-Mails, die noch unterwegs sind. Ein Name, der das Rotationsdatum enthält, wie billing-202604, zeigt außerdem, wann der jeweilige Schlüssel in Betrieb ging.
Macht die Schlüsselrotation bereits versendete E-Mails ungültig?
Nein, solange Sie den alten Schlüssel während der Überlappung veröffentlicht lassen. Empfangende Server prüfen eine Signatur, wenn die Nachricht eintrifft, und Sie lassen den alten Schlüssel 7 bis 30 Tage lang veröffentlicht, damit verspätete E-Mails, die mit ihm signiert sind, eintreffen und die Prüfung bestehen, bevor Sie ihn widerrufen. Nach dem Widerruf bleiben bereits zugestellte E-Mails zugestellt, und nur eine spätere erneute Prüfung einer alten Nachricht schlägt fehl.
Ändert sich die Schlüsselrotation mit DKIM2?
Nach den aktuellen DKIM2-Entwürfen rotieren Sie Schlüssel auf dieselbe Weise. Die IETF arbeitet an DKIM2, einer geplanten Überarbeitung von DKIM, und der DNS-Entwurf von DKIM2 legt dasselbe Schlüsselmodell fest: Absender veröffentlichen öffentliche Schlüssel unter Selektoren im DNS und widerrufen einen Schlüssel mit einem leeren Wert für p=.
Fazit
Die DKIM-Schlüsselrotation ist eine Aufgabe nach festem Zeitplan, und Ihr Zeitplan muss nur die Schlüssel enthalten, die Sie selbst rotieren. Ein kompromittierter Schlüssel bleibt dann nur bis zur nächsten geplanten Rotation nutzbar und nicht so lange, bis jemand einen Sicherheitsvorfall bemerkt.
Sortieren Sie Ihre Versandplattformen nach dem Eintragstyp unter jedem Selektor und danach, ob die jeweilige Plattform die Schlüssel nach einem eigenen Zeitplan rotiert. Planen Sie für jeden Schlüssel, den Sie selbst rotieren, zwei Rotationen pro Jahr ein, und rotieren Sie früher, wenn Sie eine Kompromittierung vermuten oder jemand mit Zugriff auf Ihre Signaturschlüssel ausscheidet. Führen Sie jeden Wechsel im Überlappungsverfahren mit zwei Selektoren durch, damit keine Nachricht jemals auf einen fehlenden Schlüssel verweist.
Wenn Sie DMARC-Aggregatberichte erhalten, können Sie jede Rotation anhand dieser Berichte bestätigen: Eine Rotation ist abgeschlossen, wenn zum geplanten Termin Nachrichten mit dem neuen Selektor die Prüfung bestehen und der alte Selektor nicht mehr erscheint. DMARCeye zeigt, mit welchen Selektoren Ihre E-Mails für jede Ihrer Domains signiert sind, sodass Sie jede Rotation prüfen können, sobald die täglichen Berichte eintreffen.