Lern-Fabrik

Das Diffie Hellman-Verfahren

Diffie-Hellman-Merkle ist ein asymmetrisches, kryptografisches Verfahren, dass man für den Schlüsselaustausch bzw. die Schlüsselvereinbarung verwendet. In der Praxis sorgt es dafür, dass sich zwei oder mehr Kommunikationspartner auf einen gemeinsamen Sitzungsschlüssel einigen, den alle zum Ver- und Entschlüsseln verwenden können. Das besondere an Diffie-Hellman-Merkle ist, dass nicht der geheime Sitzungsschlüssel, sondern nur das Ergebnis einer Rechenoperation übertragen wird. Bei dieser Rechenoperation geht man von der Annahme aus, dass Potenzieren von Zahlen leicht, aber den diskreten Logarithmus zu berechnen schwer ist. Solange die notwendige Rechenleistung fehlt und es keine Vereinfachung zum Lösen des Diskreten-Logarithmus-Problems gibt, so lange ist dieses Verfahren sicher.

Der Diffie-Hellman-Merkle-Schlüsselaustausch wurde von den drei Wissenschaftlern Diffie, Hellman und Merkle im Jahr 1976 veröffentlicht. Jahrzehnte später, nach der Veröffentlichung durch Diffie, Hellman und Merkle, wurde bekannt, dass bereits ein paar Jahre zuvor drei Wissenschaftler des britischen Geheimdienstes GCHQ das Prinzip dieses Verfahrens erfunden haben. Allerdings wurde dieses Verfahren aus Gründen der Geheimhaltung damals nicht öffentlich gemacht. Deshalb wird die Entdeckung des Prinzips, das im Diffie-Hellman-Merkle-Schlüsselaustausch angewendet wird, nicht den drei Wissenschaftlern des GCHQ zugeschrieben, sondern Diffie, Hellman und Merkle. Häufig wird nur die Bezeichnung Diffie-Hellman verwendet. Der Name Merkle wird einfach weggelassen. Merkles Verdienst sollte aber nicht unerwähnt bleiben. Deshalb wird Diffie-Hellman hier vollständig mit Diffie-Hellman-Merkle benannt.
Der Diffie-Hellman-Merkle-Schlüsseltausch bildet die Grundlage für das Protokoll Secure Shell (SSH2, OpenSSH), IPSec und TLS mit Forward Secrecy und Perfect Forward Secrecy. Weil der Schlüsselaustausch eine Interaktion beider Parteien voraussetzt, kann es nicht bei der direkten Verschlüsselung von E-Mails eingesetzt werden. Bei der Transportverschlüsselung mit STARTTLS allerdings schon.

Lernvideo

Hier können Sie das Lernvideo zum Diffie-Hellman-Verfahren ansehen:

Lernvideo ansehen

Warum Schlüsselaustausch nach Diffie-Hellman?

Bei den typischen Schlüsselaustauschverfahren der modernen Kryptografie muss während der Aushandlung der Verschlüsselung zwischen zwei Kommunikationspartnern der geheime Sitzungsschlüssel ausgetauscht werden. Nur dann können beide Seiten die Daten ver- und entschlüsseln. Das Problem dabei ist, dass der geheime Sitzungsschlüssel bei der Übertragung durch einen Angreifer aufgezeichnet werden kann. Der Sitzungsschlüssel ist zwar verschlüsselt. Doch wenn der Angreifer irgendwann den geheimen Sitzungsschlüssel herausbekommt, dann kann er auch die verschlüsselten Daten entschlüsseln.

Die Besonderheit beim Diffie-Hellman-Merkle-Schlüsselaustausch ist die, dass der geheime Sitzungsschlüssel nicht übertragen wird, sondern nur das Ergebnis einer Rechenoperation, die keinen Rückschluss auf den Schlüssel zulässt.

Hinweis: Der Diffie-Hellman-Merkle-Schlüsselaustausch ist, um genau zu sein, kein Schlüsselaustauschverfahren. Denn zu keinem Zeitpunkt wird der geheime Sitzungsschlüssel zwischen den Kommunikationspartnern ausgetauscht. Viel eher wäre die Bezeichnung "Schlüsselvereinbarungsverfahren" (engl. key agreement) geeignet. Es hat sich allerdings eingebürgert von einem Schlüsselaustausch zu sprechen, auch wenn es nicht ganz korrekt ist. Wie so oft in der Kryptografie muss man auch bei der Benennung und Einordnung dieses Verfahrens eine Ungenauigkeit akzeptieren.

Wie funktioniert der Diffie-Hellman-Merkle-Schlüsselaustausch?

In der folgenden Beschreibung ist von Alice und Bob die Rede. Beide stehen beispielhaft für zwei Kommunikationspartner, die ihre Kommunikation verschlüsseln wollen und den dazu notwendigen geheimen Sitzungsschlüssel zum Ver- und Entschlüsseln vorab austauschen müssen. Um den Sitzungsschlüssel vor einem Angreifer zu schützen, der eventuell die Kommunikation abhört oder aufzeichnet, in der Hoffnung den Sitzungsschlüssel abgreifen zu können, vereinbaren sie den Schlüsselaustausch nach Diffie-Hellman.

Alice und Bob vereinbaren zu Beginn öffentlich eine Primzahl p und eine natürliche Zahl g. Dabei muss g kleiner sein als p.
Zum Berechnen von A bzw. B wählte Alice die Zahl a, die nur sie kennt, und Bob wählt die Zahl b, die nur er kennt.
A und B werden öffentlich ausgetauscht. Eve kennt also p, g, A und B, aber nicht a und b.
Den geheimen Schlüssel K können Alice und Bob berechnen, Eve nicht.

Graph Beispiel

Rechenbeispiel Diffie-Hellman

Alice und Bob vereinbaren öffentlich: p = 23 und g = 9:

Graph Beispiel

Der von Alice und Bob berechnete geheime Schlüssel in diesem Beispiel ist 6.
Um den Schlüssel zu finden, müsste Eve nur alle Zahlen ausprobieren, die kleiner als p, hier also 23, sind. Das wäre einfach.
Allerdings sind die Zahlen in der Praxis so groß gewählt, dass es auch mit den schnellsten Computern fast unmöglich ist, den Schlüssel durch Ausprobieren zu finden.

In diesem Beispiel kommen beide auf das gleiche Ergebnis und haben so einen gemeinsamen geheimen Schlüssel. Dieser Schlüssel kann zum Beispiel in einem symmetrischen Verfahren als temporärer Sitzungsschlüssel genutzt werden.

Welche Zahlen werden beim Diffie-Hellman öffentlich übertragen?

Ein möglicher Angreifer kennt nur p und g. Außerdem A und B, da beide Werte übertragen werden.
Allerdings kann er den Schlüssel K nur berechnen, wenn er klein a und b hat.
Da diese Werte nicht übertragen werden, muss der Angreifer sich den Schlüssel anders berechnen, was bei einer ausreichend großen Primzahl fast unmöglich ist. Dieses Verfahren beruht darauf, dass es mit wenig Rechenleistung möglich ist, die Potenz gx mod p zu errechnen. Aber der umgekehrte Weg von gx auf x zu schließen ist sehr schwierig (diskreter Logarithmus) - Beispiel - Wertetabelle

Wie sicher ist Diffie-Hellman?

Bei Diffie-Hellman und auch anderen Diskreter-Logarithmus-Verfahren ist nicht die vollständige Schlüsselsuche die effektivste Angriffsmethode. Es gibt Algorithmen zur Berechnung des diskreten Logarithmus. Der Aufwand ist sehr groß, aber immer noch schneller, als die vollständige Schlüsselsuche.

Das ist jedoch nicht weiter schlimm. Je größer g, x und y sind, desto größer der Sicherheitsgewinn und desto sicherer das Verfahren. Eine Schlüssellänge von 1.024 gilt als Minimum. Empfohlen wird häufig 2.048 Bit oder mehr.

Ein Angreifer, der die öffentlichen Schlüssel A und B abfängt, müsste das diskrete Logarithmusproblem lösen, um an die privaten Schlüssel zu gelangen, was praktisch unmöglich ist bei großen Primzahlen.

Man-in-the-Middle-Angriff

Ein weiterer Schwachpunkt ist ein möglicher Man-in-the-Middle-Angriff. Die Gefahr kann man reduzieren, in dem die Kommunikationspartner mit wechselnden Schlüsseln arbeiten.

Das Prinzip des Diffie-Hellman-Schlüsselaustauschs ist zwar von mathematischer Seite her einigermaßen sicher, hat aber einen anderen Schwachpunkt. Der Diffie-Hellman-Schlüsselaustausch ist dann nicht mehr sicher, wenn sich ein Angreifer zwischen die beiden Kommunikationspartner als Man-in-the-Middle schaltet und Nachrichten verändern kann.

Man-in-the-Middle-Angriff - Ablauf

  • Eve fängt die öffentlichen Schlüssel A und B ab und ersetzt sie durch eigene Schlüssel A' und B', sodass Alice und Bob jeweils geheime Schlüssel mit Eve teilen, ohne es zu wissen.
  • Alice und Eve teilen einen geheimen Schlüssel KA, und Eve teilt einen anderen Schlüssel KB mit Bob.

Vorsichtsmaßnahmen

  • Zufälligkeit ist entscheidend: Die Zufälligkeit der Wahl von a und b ist entscheidend, um sicherzustellen, dass kein Angreifer die privaten Schlüssel vorhersagen kann. Das Verwenden eines schlechten Zufallszahlengenerators (der vorhersehbare Werte liefert) kann das gesamte Verfahren gefährden.
  • Einmalige Verwendung der Schlüssel: Um Replay-Angriffe zu vermeiden, wird empfohlen, für jeden Schlüsselaustausch neue private Schlüssel a und b zu generieren (ephemeral Diffie-Hellman).

Durch die Verwendung von digitalen Signaturen oder Zertifikaten können Alice und Bob sicherstellen, dass die erhaltenen öffentlichen Schlüssel tatsächlich von der richtigen Partei stammen.

Graph Beispiel