Sollten DKIM-Selektornamen nicht erraten werden können?


7

Das M³WAAG DKIM Key Rotation Best Practices-Dokument (pdf) empfiehlt einen "ausreichend" zufälligen DKIM-Selektornamen, damit er beim Durchsuchen des DNS nicht erraten werden kann. Ein wörtliches Zitat:

4.3 Benennungsschema für die Schlüsselauswahl

Definieren Sie ein Namensschema für die DKIM-Schlüsselauswahl, das sowohl für die forensische Analyse von Bedeutung ist als auch ausreichend zufällig ist, sodass die Schlüssel durch Durchsuchen des DNS nicht leicht erraten werden können.

HINWEIS: Das Benennungsschema für Selektoren sollte auch so konzipiert sein, dass das Risiko verringert wird, dass Angreifer die Namen zukünftiger Selektoren leicht vorhersagen und die zugehörigen Schlüssel abrufen können. In Abschnitt 5 finden Sie eine Beschreibung des Prozesses zum Veröffentlichen von Schlüsseln für die zukünftige Verwendung

Dies mag für kurze 512-Bit-RSA-Schlüssel relevant sein, aber es scheint mir länger nicht sinnvoll zu sein, beispielsweise 2048-Bit-RSA-Schlüssel. Der DNS enthält öffentliche Schlüssel, die nicht geheim sind und durch Lesen nur einer einzelnen signierten E-Mail erkannt werden können. Sicherheit durch Dunkelheit mit sehr wenig Sicherheit?

Warum sollte ein zufälliger DKIM-Selektorname besser sein, wenn es sinnvoll wäre, ihrer Empfehlung zu folgen?

Antworten:


1

Ich habe das Dokument überprüft und festgestellt, dass die Autoren die DNS-Verbreitung neuer Einträge nicht verstehen. Beim Aktualisieren alter Einträge gibt es konfigurierbare Cache-Zeiten, die mehrere Tage betragen können. Neue Einträge müssen jedoch von den autorisierenden Nameservern abgerufen werden, bevor sie zwischengespeichert werden können.

Wenn Schlüssel durch den vorgeschlagenen Vorgang des Drehens von Schlüsseln hinter drei CNAMEs gedreht werden, kann es zu erheblichen Verzögerungen kommen, während zwischengespeicherte Einträge aktualisiert werden. Dies kann gemindert werden, indem die zu aktualisierende TTL in dem Zeitraum vor der Aktualisierung gelöscht wird. Die CNAME-Rotationen können auch problematisch sein, wenn eine Notschlüsselrotation erforderlich ist.

Die zufällige Auswahl der Schlüsselnamen bietet einen kleinen Schutz vor dem Abrufen des öffentlichen Schlüssels vor der Verwendung. Sobald der Schlüssel verwendet wird, würde ich davon ausgehen, dass er zum Generieren eines alternativen Signaturschlüssels geerntet worden sein könnte.


1
Das Caching sollte angesichts der Rotationszeit keine Rolle spielen (auch wenn es Wochen sind). Stellen Sie zunächst Schlüssel1 + Schlüssel2 ein und verwenden Sie Schlüssel1. Wenn Sie die Tasten drehen möchten, verwenden Sie die Taste 2 und legen Sie eine neue Taste 3 fest. Selektoren sollten nicht wiederverwendet werden ... Sie erwähnen den Schutz vor dem Abrufen des öffentlichen Schlüssels vor der Verwendung . Welchen genauen Nutzen bringt dies einem Angreifer? Betrachten Sie GPG, diese öffentlichen Schlüssel sind auch öffentlich und niemand hat sich darüber beschwert.
Lekensteyn

@Lekensteyn Bei Verwendung von CNAMES verweist der zwischengespeicherte CNAME möglicherweise auf einen alten Auswahldatensatz. Der CNAME muss früh genug aktualisiert werden, damit der alte Wert aus den Caches heraus altert, bevor der neue Schlüssel verwendet wird. Wenn jemand den öffentlichen Schlüssel erhält, bevor er verwendet wird, hat er mehr Zeit, um zu versuchen, einen Signaturschlüssel zu generieren.
BillThor

Wenn die für das DNS verantwortlichen Administratoren dieselben sind, die für die DKIM-Schlüssel und die E-Mail-Infrastruktur verantwortlich sind, ist dies kein Problem. Bei mehreren großen Unternehmen weiß ich, dass das Anpassen der TTL eines einzelnen Datensatzes Anzüge in Besprechungen erfordern würde (keine gute Sache).
Quadruplebucky

@quadruplebucky Wenn die Anfrage richtig gestellt wird, sollte eine Besprechung der Suiten für das erste Update erforderlich sein. Dies kann für viele Organisationen, die den Menschen, die so etwas tun, nicht vertrauen, äußerst schwierig sein. Wenn die TTL nicht geändert werden kann, muss der Zeitplan möglicherweise entsprechend erweitert werden.
BillThor

0

Zwei Vorteile:

  1. Der Angreifer kann einen Angriff nicht starten, ohne den Namen des Selektors zu ermitteln (normalerweise Besitz einer signierten Nachricht).
  2. Sie können den Schlüssel veröffentlichen und die Weitergabe an DNS sicherstellen, bevor er tatsächlich verwendet wird, mit einem minimalen Risiko, die effektive Lebensdauer des Schlüssels zu verkürzen.

Nur eine (etwas schwache) zusätzliche Schutzschicht, wie es scheint.


1
(1) Auf welche Art von Angriff beziehen Sie sich? Finden Sie den privaten Schlüssel, der mit dem öffentlichen Schlüssel übereinstimmt? 2048-Bit-RSA wird mit aktuellen Technologien als nicht knackbar angesehen. (2) Zwischengespeicherte DNS-Fehler können durch Veröffentlichen von Schlüsseln einige Wochen im Voraus behoben werden. Dies kann auch dann noch passieren, wenn die Selektornamen bekannt sind. Ich bin nicht überzeugt.
Lekensteyn

Ich denke, diese Vorschläge sind zu vorsichtig, ich versuche nicht, Sie von irgendetwas zu überzeugen. BTW 2048-Bit-Schlüssel überschreiten die maximale Länge eines txt-Felds (RFC 1035) und haben Probleme bei einigen DKIM-Implementierungen.
Quadruplebucky

Welche bekannten DKIM-Implementierungen haben Probleme? Google verwendet überall 2048-Bit-Schlüssel. Ich halte dies für einen guten Kompromiss zugunsten stärkerer Schlüssel.
Lekensteyn

1
@Lekensteyn Einige DNS-Dienste erlauben keine 2048-Schlüssel, da das Enthalten des erforderlichen Textes die maximal zulässige Länge des DNS-Eintrags überschreitet. Vor wenigen Tagen (Dezember 2015) trat dieses Problem beim Konfigurieren einer Domain auf einem ziemlich großen französischen VPS / DNS-Anbieter namens OVH auf.
Dario Fumagalli

0

In der aktuellen Version ( März 2019 ) der Richtlinien werden zufällige Namen für Selektoren auf einem Bild nur einmal erwähnt. Zitieren der Änderungsübersicht:

Die vorgeschlagene Schlüsselbenennungskonvention wurde überarbeitet (Abschnitt 5.1.3).

Abschnitt 4.2:

Eine Namenskonvention mit Rotationsdaten kann dazu beitragen, die Auswahl der Selektoren aufrechtzuerhalten.

Ein Beispiel kann sein: "sales-201309-1024". Dieses Beispiel zeigt an, dass es zum E-Mail-Stream "Verkauf" gehört, im September 2013 in den aktiven Dienst versetzt werden soll und auf einen 1024-Bit-Schlüssel verweist.

Das Bild in Abschnitt 5.1 enthält eine Haftnotiz:

Der Selektor kann Schlüssellänge, Datum und zufällige Zeichenfolge enthalten

In Abschnitt 5.1.1 heißt es:

... Dieser Selektor sollte genügend Informationen enthalten, um den Schlüsselrotationsprozess zu erleichtern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.