Im Jahr 2016 kompromittierten Hacker das E-Mail-System einer großen politischen Kampagne. Doch der schädlichste Teil war nicht der eigentliche Einbruch – sondern das, was danach geschah. Angreifer modifizierten einige der gestohlenen E-Mails, bevor sie sie veröffentlichten, und fügten echten Threads erfundene Inhalte hinzu. Ohne kryptografische Signaturen gab es keine Möglichkeit zu beweisen, welche E-Mails authentisch waren und welche verändert wurden.
Genau dieses Problem löst DKIM. Es beweist nicht nur, dass eine E-Mail von demjenigen stammt, der sie angeblich gesendet hat, sondern auch, dass sie seit dem Versand nicht verändert wurde.
DKIM—DomainKeys Identified Mail—fügt jeder von Ihnen gesendeten E-Mail eine kryptografische Signatur hinzu. Diese Signatur ist mathematisch an den Inhalt der E-Mail gebunden. Ändern Sie ein einziges Zeichen, und die Signatur wird ungültig. Es ist das digitale Äquivalent eines manipulationssicheren Siegels.
Die Kryptografie hinter DKIM
DKIM verwendet Public-Key-Kryptografie – dieselbe Technologie, die HTTPS-Verbindungen und Kryptowallets absichert. Falls Sie damit nicht vertraut sind, hier das Wesentliche.
Sie erzeugen zwei mathematisch verknüpfte Schlüssel: einen privaten und einen öffentlichen. Alles, was mit dem privaten Schlüssel verschlüsselt wird, kann nur mit dem öffentlichen Schlüssel entschlüsselt werden – und umgekehrt. Der private Schlüssel bleibt geheim; der öffentliche wird mit der Welt geteilt.
Wenn Sie eine E-Mail senden, nimmt Ihr Mailserver bestimmte Teile der Nachricht – typischerweise die From-Adresse, Subject, Date und den Body – und erstellt einen Hash (einen Fingerabdruck fester Länge) dieses Inhalts. Anschließend verschlüsselt er diesen Hash mit Ihrem privaten Schlüssel. Der verschlüsselte Hash ist Ihre DKIM-Signatur.
Die Signatur wird als Header zur E-Mail hinzugefügt. Wenn die E-Mail ihr Ziel erreicht, ruft der empfangende Server Ihren öffentlichen Schlüssel aus DNS ab, entschlüsselt die Signatur, um den ursprünglichen Hash zu erhalten, und erstellt dann seinen eigenen Hash des E-Mail-Inhalts. Wenn die beiden Hashes übereinstimmen, ist die E-Mail authentisch und unverändert. Wenn sie nicht übereinstimmen, wurde etwas verändert.
Die Schönheit dieses Systems liegt darin, dass nur jemand mit Ihrem privaten Schlüssel eine gültige Signatur erstellen kann. Und da die Signatur an den E-Mail-Inhalt gebunden ist, macht jede Änderung – selbst ein hinzugefügtes Leerzeichen – sie ungültig.
Was DKIM tatsächlich signiert
Nicht jeder Teil einer E-Mail wird signiert. DKIM lässt Sie festlegen, welche Header in die Signatur einbezogen werden, und diese Auswahl ist wichtiger, als man denkt.
Der 'From'-Header wird immer signiert – das ist der Kern der Sache: zu beweisen, wer die E-Mail gesendet hat. Die meisten Implementierungen signieren außerdem 'To', 'Subject', 'Date' und 'Message-ID'. Der E-Mail-Body wird separat signiert (sein Hash erscheint im 'bh'-Feld der Signatur).
Header, die sich auf dem Transportweg legitim ändern können – etwa 'Received'-Header, die von jedem Server hinzugefügt werden, den die E-Mail passiert – werden typischerweise nicht signiert. Wären sie es, würde die Signatur jedes Mal brechen, wenn die E-Mail weitergeleitet wird.
Diese selektive Signierung ist sowohl ein Feature als auch eine Einschränkung. Sie ermöglicht, dass E-Mails mehrere Server passieren, ohne DKIM zu brechen, bedeutet aber auch, dass unsignierte Header unbemerkt geändert werden können. Ein raffinierter Angreifer könnte potenziell irreführende Header zu einer legitim signierten E-Mail hinzufügen.
Selector und Schlüsselrotation
Wenn Sie einen DKIM-öffentlichen Schlüssel in DNS nachschlagen, fragen Sie nicht nur die Domain ab – Sie fragen einen spezifischen 'Selector' innerhalb dieser Domain ab. Dieses scheinbar kleine Detail ermöglicht wichtige Fähigkeiten.
Ein Selector ist lediglich ein Name, der identifiziert, welcher Schlüssel verwendet werden soll. Ihre DKIM-Signatur enthält ein 's='-Feld, das den Selector angibt, und der empfangende Server sucht [selector]._domainkey.[yourdomain], um den öffentlichen Schlüssel zu finden.
Warum ist das wichtig? Weil es Ihnen erlaubt, mehrere aktive Schlüssel gleichzeitig zu haben. Sie könnten unterschiedliche Selector für verschiedene E-Mail-Dienste verwenden – einen für Ihre Marketing-Plattform, einen anderen für Ihre transaktionalen E-Mails. Jeder Dienst hat seinen eigenen privaten Schlüssel, und wenn einer kompromittiert wird, können Sie ihn widerrufen, ohne die anderen zu beeinträchtigen.
Selector ermöglichen auch die Schlüsselrotation. Sicherheitsbest Practices sagen, dass Sie regelmäßig neue Schlüssel generieren sollten, aber Sie können nicht einfach sofort tauschen – E-Mails, die unterwegs sind und mit dem alten Schlüssel signiert wurden, würden bei der Verifizierung fehlschlagen. Mit Selector können Sie einen neuen Schlüssel unter einem neuen Selector veröffentlichen, neue E-Mails damit signieren und den alten Schlüssel aktiv lassen, bis alle E-Mails in Zustellung angekommen sind. Danach entfernen Sie den alten Schlüssel.
Die meisten E-Mail-Dienste erledigen das automatisch, aber wenn Sie Ihre eigene Mail-Infrastruktur betreiben, müssen Sie die Schlüsselrotation einplanen.
DKIMs Beziehung zu SPF und DMARC
DKIM existiert nicht isoliert. Es ist Teil eines dreiteiligen E-Mail-Authentifizierungssystems, und zu verstehen, wie die Teile zusammenpassen, ist entscheidend.
SPF verifiziert, dass der sendende Server autorisiert ist, für die Domain zu senden. DKIM verifiziert, dass der E-Mail-Inhalt authentisch und unverändert ist. Aber keiner von beiden verknüpft die Authentifizierung allein mit der 'From'-Adresse, die Empfänger tatsächlich sehen.
Hier kommt DMARC ins Spiel. DMARC verlangt, dass entweder SPF oder DKIM (oder beide) bestehen UND dass die authentifizierte Domain mit der sichtbaren 'From'-Domain übereinstimmt. Ohne DMARC könnte ein Angreifer eine E-Mail senden, die SPF für seine eigene Domain besteht, während in den 'From'-Header Ihre Domain eingetragen ist.
DKIM hat gegenüber SPF einen bedeutenden Vorteil: Es übersteht Weiterleitungen. Wenn jemand Ihre E-Mail weiterleitet, wird die IP des weiterleitenden Servers nicht in Ihrem SPF-Record stehen, also fällt SPF durch. Doch die DKIM-Signatur reist mit dem E-Mail-Inhalt mit und bleibt auch nach einer Weiterleitung gültig. Deshalb sind sowohl SPF als auch DKIM wichtig – sie gleichen die Schwächen des jeweils anderen aus.
Wenn DKIM fehlschlägt
DKIM-Fehler passieren, und nicht immer sind Angreifer schuld. Das Verständnis der häufigsten Ursachen hilft Ihnen, Zustellprobleme zu beheben.
Die häufigste Ursache ist die Inhaltsänderung durch zwischengeschaltete Server. Einige E-Mail-Sicherheits-Gateways fügen ausgehenden E-Mails Fußzeilen hinzu oder modifizieren Links zu Trackingzwecken. Wenn diese Änderungen nach der DKIM-Signierung erfolgen, wird die Signatur ungültig. Die Lösung ist, sicherzustellen, dass die DKIM-Signierung zuletzt erfolgt – nach allen Inhaltsmodifikationen.
Mailinglisten sind ein weiterer häufiger Übeltäter. Viele Mailinglisten modifizieren die Betreffzeile (fügen '[listname]'-Präfixe hinzu) oder fügen Fußzeilen an. Da Subject typischerweise signiert wird, brechen diese Änderungen DKIM. Einige moderne Mailinglisten-Software signiert E-Mails erneut mit dem eigenen DKIM-Schlüssel der Liste, aber viele tun das nicht.
Auch Schlüsselinkonsistenzen verursachen Fehler. Wenn Sie Ihren DKIM-Schlüssel rotieren, aber DNS nicht aktualisieren, oder wenn es einen Tippfehler im DNS-Record gibt, schlägt die Verifizierung fehl. Testen Sie immer, nachdem Sie Änderungen vorgenommen haben.
Schließlich kann Zeitversatz Probleme verursachen. DKIM-Signaturen enthalten einen Zeitstempel, und einige Implementierungen lehnen Signaturen ab, die zu alt sind oder aus der Zukunft stammen. Wenn die Uhr Ihres Mailservers deutlich falsch geht, könnten Signaturen bei der Verifizierung fehlschlagen.
DKIM richtig einrichten
Wenn Sie einen verwalteten E-Mail-Dienst wie Google Workspace, Amazon SES oder eine dedizierte E-Mail API verwenden, ist das DKIM-Setup meist unkompliziert – die Schlüssel werden generiert und Sie erhalten den einzutragenden DNS-Record. Dennoch gibt es Entscheidungen zu treffen und Fallstricke zu vermeiden.
Die Schlüssellänge ist wichtig. Das Minimum sind 1024 Bit, aber 2048 Bit ist inzwischen die Standardempfehlung. Einige ältere Systeme können 2048-Bit-Schlüssel in DNS nicht verarbeiten (es gibt Workarounds, bei denen der Schlüssel über mehrere Strings geteilt wird), aber das wird zunehmend selten. Verwenden Sie für neue Setups keine 1024-Bit-Schlüssel.
Testen Sie gründlich, bevor Sie sich auf DKIM verlassen. Senden Sie Test-E-Mails an Gmail, Outlook und Yahoo und prüfen Sie dann die Header, um zu bestätigen, dass DKIM besteht. Suchen Sie nach 'dkim=pass' im Authentication-Results-Header. Wenn Sie 'dkim=fail' sehen oder gar kein DKIM-Ergebnis, stimmt etwas nicht.
Überwachen Sie Ihre DMARC-Reports. Sie zeigen Ihnen DKIM-Pass/Fail-Raten über alle Ihre E-Mails. Ein plötzlicher Anstieg von Fehlern könnte auf ein Konfigurationsproblem, einen kompromittierten Schlüssel oder jemanden hindeuten, der versucht, Ihre Domain zu spoofen.
Planen Sie die Schlüsselrotation von Anfang an. Auch wenn Sie heute keine Schlüssel rotieren, richten Sie Ihre Infrastruktur so ein, dass Sie es können. Verwenden Sie aussagekräftige Selector-Namen, die Daten oder Versionsnummern enthalten, damit klar ist, welcher Schlüssel aktuell ist.
Frequently asked questions
Verschlüsselt DKIM meine E-Mails?
Nein. DKIM signiert E-Mails, es verschlüsselt sie nicht. Die Signatur beweist Authentizität und Integrität, aber der Inhalt der E-Mail ist für jeden lesbar, der sie abfängt. Für Verschlüsselung benötigen Sie S/MIME oder PGP, oder Sie verlassen sich auf TLS für die Transportverschlüsselung.
Kann ich denselben DKIM-Schlüssel für mehrere Domains verwenden?
Technisch ja, aber es ist nicht empfohlen. Wenn der Schlüssel kompromittiert wird, sind alle Domains betroffen. Jede Domain sollte ihr eigenes Schlüsselpaar haben. Die meisten E-Mail-Dienste erledigen das automatisch.
Warum bestehen manche meiner E-Mails DKIM und andere nicht?
Meistens heißt das, dass etwas einige E-Mails nach der Signierung verändert. Prüfen Sie, ob Sie E-Mail-Sicherheits-Tools, Auto-Responder oder Weiterleitungsregeln haben, die Inhalte verändern könnten. Verifizieren Sie außerdem, dass alle Ihre Versandquellen korrekt für DKIM konfiguriert sind.
Wie oft sollte ich DKIM-Schlüssel rotieren?
Es gibt keinen allgemeinen Standard, aber jährlich ist eine vernünftige Basis. Häufigere Rotation (quartalsweise) ist besser, wenn Sie sie automatisieren können. Wichtig ist, dass ein Rotationsprozess existiert, nicht die genaue Häufigkeit.