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.
Hier können Sie das Lernvideo zum Diffie-Hellman-Verfahren ansehen:
Lernvideo ansehenBei 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.
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 öffentlich: p = 23 und g = 9:
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.
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
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.
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.
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.