Was ist ein DNS-DKIM-Eintrag?

Ein DKIM-Eintrag ist ein spezieller DNS-TXT-Eintrag. Er speichert den öffentlichen Schlüssel, der zur Überprüfung der Authentizität einer E-Mail verwendet wird.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • So hilft DKIM dabei, E-Mail-Spam anzuhalten
  • Beispiel eines DKIM-Eintrags anzeigen
  • So funktionieren DKIM-Header

Link zum Artikel kopieren

Was ist DKIM?

DomainKeys Identified Mail (DKIM) ist eine Methode zur E-Mail-Authentifizierung, die verhindert, dass sich Spammer und andere böswillige Parteien als legitime Domain ausgeben.

Alle E-Mail-Adressen haben eine Domain – den Teil der Adresse, der nach dem „@“-Symbol kommt. Spammer und Angreifer versuchen, sich beim Senden von E-Mails als eine Domain auszugeben, um Phishing-Angriffe oder andere betrügerische Aktivitäten durchzuführen.

Angenommen, Chuck möchte Alice dazu bringen, ihm vertrauliche Unternehmensinformationen zu schicken. Alice arbeitet bei example.com. Also schickt er ihr eine E-Mail, die angeblich von „bob@example.com“ stammt, damit sie glaubt, dass er auch für example.com arbeitet.

DKIM, zusammen mit Sender Policy Framework (SPF) und Domain-based Message Authentication Reporting and Conformance (DMARC) macht es Angreifern viel schwerer, sich auf diese Weise als Domains auszugeben. E-Mails, die DKIM und SPF nicht bestehen, werden als „Spam“ markiert oder werden von E-Mail-Servern gar nicht erst zugestellt. Wenn example.com DKIM, SPF und DMARC für ihre Domain eingerichtet hat, wird Alice die böswillige E-Mail von Chuck wahrscheinlich nie zu Gesicht bekommen, da sie entweder in ihrem Spam-Ordner landet oder vom E-Mail-Server ganz abgelehnt wird.

Wie funktioniert DKIM?

DKIM besteht aus zwei Hauptbestandteilen: dem DKIM-Eintrag, der im Domain Name System (DNS) für die Domain gespeichert wird, und dem DKIM-Header, der an alle E-Mails von der Domain angehängt wird.

DKIM verwendet digitale Signaturverfahren auf der Grundlage der Public Key-Kryptographie. Sie authentifizieren, woher eine E-Mail stammt und dass sie tatsächlich von einem Server kommt, der E-Mails von dieser Domain versendet. Dafür werden ein Paar kryptografischer Schlüssel verwendet: ein privater Schlüssel für den Absender (um Nachrichten zu signieren) und ein öffentlicher Schlüssel für den Empfänger (um Signaturen zu überprüfen). Ein Empfänger kann den öffentlichen Schlüssel nicht verwenden, um Nachrichten zu signieren, und umgekehrt.

Der E-Mail-Provider generiert den öffentlichen und den privaten Schlüssel. Er gibt den öffentlichen Schlüssel an den Domainbesitzer weiter. Der Domainbesitzer speichert den öffentlichen Schlüssel in einem öffentlich zugänglichen DNS-Eintrag – dem DKIM-Eintrag.

Alle von dieser Domain gesendeten E-Mails haben einen DKIM-Header, der einen Datenabschnitt enthält, der mit dem privaten Schlüssel signiert ist: Dies ist eine „digitale Signatur“. Ein E-Mail-Server kann den DKIM-DNS-Eintrag überprüfen, den öffentlichen Schlüssel abrufen und den öffentlichen Schlüssel zur Überprüfung der digitalen Signatur verwenden.

Dieses Verfahren garantiert außerdem, dass die E-Mail während der Übertragung nicht verändert wurde. Die digitale Signatur wird nicht verifiziert, wenn die E-Mail-Header oder der E-Mail-Text verändert wurden – wie ein fälschungssicheres Siegel auf einer Medikamentendose.

Was ist ein DKIM-Eintrag?

Ein DKIM-Eintrag speichert den öffentlichen DKIM-Schlüssel – eine zufällige Zeichenfolge, die zur Verifizierung aller mit dem privaten Schlüssel signierten Daten verwendet wird. E-Mail-Server fragen die DNS-Einträge der Domain ab, um den DKIM-Eintrag und den öffentlichen Schlüssel zu sehen.

Ein DKIM-Eintrag ist eigentlich ein DNS TXT („text“) Eintrag . TXT-Einträge können verwendet werden, um jeden beliebigen Text zu speichern, den ein Domainadministrator mit seiner Domain verknüpfen möchte. DKIM ist eine der vielen Verwendungsmöglichkeiten für diese Art von DNS-Eintrag.

Hier ist ein Beispiel für einen DKIM-DNS-TXT-Eintrag:

Name Typ Inhalt TTL
big-email._domainkey.example.com TXT v=DKIM1; p=76E629F05F70
9EF665853333
EEC3F5ADE69A
2362BECE4065
8267AB2FC3CB
6CBE
6000

Name

Im Gegensatz zu den meisten DNS-TXT-Einträgen werden DKIM-Einträge unter einem speziellen Namen gespeichert, nicht nur unter dem Namen der Domain. Die Namen der DKIM-Einträge folgen diesem Format:

[selector]._domainkey.[domain]

Der selector ist ein spezieller Wert, der von dem von der Domain verwendeten E-Mail-Dienstprovider ausgegeben wird. Er wird in den DKIM-Header aufgenommen, damit ein E-Mail-Server den erforderlichen DKIM-Lookup im DNS durchführen kann. Die Domain ist der Name der E-Mail-Domain. ._domainkey. ist in allen DKIM-Dateinamen enthalten.

Zum Nachschlagen des DKIM-Eintrags verwenden E-Mail-Server den DKIM-Selektor des E-Mail-Dienstproviders und nicht nur den Domainnamen. Angenommen, example.com verwendet Big Email als E-Mail-Dienstprovider und Big Email verwendet den DKIM-Selektor big-email. Die meisten DNS-Einträge von example.com hießen dann example.com, aber ihr DKIM-DNS-Eintrag hätte den Namen big-email._domainkey.example.com, der im obigen Beispiel aufgeführt ist.

Inhalt

Dies ist der Teil des DKIM-DNS-Eintrags, in dem der öffentliche Schlüssel aufgeführt ist. Im obigen Beispiel zeigt v=DKIM1 an, dass dieser TXT-Eintrag als DKIM interpretiert werden soll, und der öffentliche Schlüssel ist alles nach p=.

Eintragstyp und TTL

Dies sind Standardfelder in DNS-Einträgen. TXT zeigt an, dass es sich um einen DNS-TXT-Eintrag handelt. „TTL“ steht für „time to live“ (gemessen in Sekunden) und gibt an, wie lange dieser Eintrag als gültig angesehen werden sollte, bevor er aktualisiert werden muss. DKIM-Einträge haben in der Regel eine TTL von mehreren Minuten.

Was ist ein DKIM-Header? Wie funktioniert eine DKIM-Signatur?

Der sendende E-Mail-Server erstellt seine digitale Signatur anhand von E-Mail-Headern, dem E-Mail-Text (eigentlich ein Hash des E-Mail-Textes – mehr dazu weiter unten) und seinem privaten Schlüssel. Diese digitale Signatur wird als Teil des DKIM-Headers an die E-Mail angehängt.

Der DKIM-Header ist einer von vielen Headern, die an eine E-Mail angehängt werden. Die meisten E-Mail-Anwendungen zeigen die Header bei der Anzeige einer E-Mail nicht an, es sei denn, der Nutzer wählt bestimmte Optionen aus. In Gmail z. B. können Nutzer die Header einer E-Mail anzeigen, indem sie auf die drei vertikalen Punkte oben rechts in der E-Mail gehen und dann auf „Original anzeigen“ klicken.

Hier ist ein Beispiel für einen DKIM-Header:

v=1; a=rsa-sha256; 
        d=example.com; s=big-email;
        h=from:to:subject;
      bh=uMixy0BsCqhbru4fqPZQdeZY5Pq865sNAnOAxNgUS0s=;
  b=LiIvJeRyqMo0gngiCygwpiKphJjYezb5kXBKCNj8DqRVcCk7obK6OUg4o+EufEbB
tRYQfQhgIkx5m70IqA6dP+DBZUcsJyS9C+vm2xRK7qyHi2hUFpYS5pkeiNVoQk/Wk4w
ZG4tu/g+OA49mS7VX+64FXr79MPwOMRRmJ3lNwJU=
  • v= zeigt an, welche Version von DKIM verwendet wird.
  • d= ist der Domainname des Absenders.
  • s= ist der Selektor, den der empfangende Server für die Suche nach dem DNS-Eintrag verwenden soll.
  • h= listet die Header-Felder auf, die zur Erstellung der digitalen Signatur verwendet werden, oder b. In diesem Fall werden die Header from, to und subject verwendet. Wenn Bob eine E-Mail an Alice mit der Domain example.com schickt und die Betreffzeile „Käsekuchenrezept lautet,“ würde der hier verwendete Inhalt „bob@example.com“ + „alice@example.com“ + „Käsekuchenrezept“ lauten. (Dieser Inhalt würde ebenfalls kanonisiert werden, also in ein standardisiertes Format gebracht).
  • bh= ist der Hash des E-Mail-Textes. Ein Hash ist das Ergebnis einer speziellen mathematischen Funktion, die Hash-Funktion genannt wird. Diese Funktion ist enthalten, damit der empfangende E-Mail-Server die Signatur berechnen kann, bevor der gesamte E-Mail-Text geladen wird. Denn E-Mail-Text kann beliebig lang sein und das Laden dauert in manchen Fällen sehr lange.
  • a= ist der Algorithmus, der zur Berechnung der digitalen Signatur oder b sowie zur Erzeugung des Hashes des E-Mail-Textes oder bh verwendet wird. In diesem Beispiel wird RSA-SHA-256 verwendet (RSA mit SHA-256 als Hash-Funktion für die digitale Signatur und SHA-256 für den Body-Hash).
  • b= ist die digitale Signatur, die aus h und bh erzeugt und mit dem privaten Schlüssel signiert wurde.

Die digitale Signatur (b=) ermöglicht dem empfangenden Server 1) die Authentifizierung des sendenden Servers und 2) die Sicherstellung der Integrität – also dass die E-Mail nicht verfälscht worden ist.

Dazu nimmt der empfangende Server denselben Inhalt, der in h= aufgeführt ist, plus den Body-Hash (bh=) und verwendet den öffentlichen Schlüssel aus dem DKIM-Eintrag, um zu prüfen, ob die digitale Signatur gültig ist. Wenn der richtige private Schlüssel verwendet wurde und der Inhalt (Header und Textkörper) nicht verändert wurde, besteht die E-Mail die DKIM-Prüfung.

Wie hängt DKIM mit DMARC zusammen?

DMARC ist eine E-Mail-Authentifizierungsmethode, die auf DKIM und SPF aufbaut. DMARC beschreibt, was mit einer E-Mail zu tun ist, die SPF und DKIM nicht besteht. Zusammen helfen SPF, DKIM und DMARC, E-Mail-Spam und E-Mail-Spoofing zu verhindern. Wie DKIM-Einträge werden auch DMARC-Richtlinien als DNS-TXT-Einträge gespeichert.

Cloudflare bietet einen E-Mail-Sicherheits-DNS-Assistenten an, mit dem Nutzer schnell DNS-TXT-Einträge für die E-Mail-Authentifizierung einrichten können. So können Domain-Administratoren böswillige Parteien davon abhalten, sich als ihre Domain auszugeben.

Erfahren Sie mehr über DNS-Einträge für E-Mail:

Weitere Informationen über DKIM finden Sie unter RFC 6376.