Diffie-Hellman/Sicherheit: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
K Textersetzung - „bzw.“ durch „bzw. “ |
||
Zeile 81: | Zeile 81: | ||
Ziel des Zeitangriffs ist die diskrete Exponentialfunktion. Wenn eine Krypto-Implementierung <math>g^a\ \bmod\ p</math> für irgendwelche größeren Zahlen <math>g</math>, <math>a</math> und <math>p</math> berechnet, dann geschieht dies fast immer mit dem Square-and-Multiply-Algorithmus. Bei diesem ist für jedes Bit von <math>a</math> eine Aktion festgesetzt: Hat das gerade bearbeitete Bit den Wert <math>1</math>, dann ist diese Aktion eine Multiplikation, ansonsten eine Quadrierung. Da die Rechenzeiten für die Multiplikationen länger dauern als für die Quadrierungen, kann Eve aus Zeitmessungen Rückschlüsse auf die Zahl der Einsen in <math>a</math> ziehen. Variiert er die Zahl <math>g</math>, reichen irgendwann die Informationen aus, um <math>a</math> zu berechnen. Schon mit einigen Tausend Zeitmessungen lassen sich entsprechende Implementierungen mit 1024-Bit-Schlüsseln brechen.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 320–321.</ref> | Ziel des Zeitangriffs ist die diskrete Exponentialfunktion. Wenn eine Krypto-Implementierung <math>g^a\ \bmod\ p</math> für irgendwelche größeren Zahlen <math>g</math>, <math>a</math> und <math>p</math> berechnet, dann geschieht dies fast immer mit dem Square-and-Multiply-Algorithmus. Bei diesem ist für jedes Bit von <math>a</math> eine Aktion festgesetzt: Hat das gerade bearbeitete Bit den Wert <math>1</math>, dann ist diese Aktion eine Multiplikation, ansonsten eine Quadrierung. Da die Rechenzeiten für die Multiplikationen länger dauern als für die Quadrierungen, kann Eve aus Zeitmessungen Rückschlüsse auf die Zahl der Einsen in <math>a</math> ziehen. Variiert er die Zahl <math>g</math>, reichen irgendwann die Informationen aus, um <math>a</math> zu berechnen. Schon mit einigen Tausend Zeitmessungen lassen sich entsprechende Implementierungen mit 1024-Bit-Schlüsseln brechen.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 320–321.</ref> | ||
Um solche Zeitangriffe zu verhindern, müssen jedoch bei der Implementierung lediglich Verzögerungen in den Ver- bzw. Entschlüsselungsprozess eingebaut werden. Mit dem als Blinding genannten Verfahren wird zum Beispiel an einer Stelle des Verfahrens eine Zufallszahl eingerechnet, die an anderer Stelle wieder herausgerechnet wird. Eine andere Möglichkeit besteht darin, den Prozess so zu gestalten, dass er unabhängig vom Eingabewert immer gleich lange dauert.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 321.</ref> | Um solche Zeitangriffe zu verhindern, müssen jedoch bei der Implementierung lediglich Verzögerungen in den Ver- bzw. Entschlüsselungsprozess eingebaut werden. Mit dem als Blinding genannten Verfahren wird zum Beispiel an einer Stelle des Verfahrens eine Zufallszahl eingerechnet, die an anderer Stelle wieder herausgerechnet wird. Eine andere Möglichkeit besteht darin, den Prozess so zu gestalten, dass er unabhängig vom Eingabewert immer gleich lange dauert.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 321.</ref> | ||
==== Stromangriff ==== | ==== Stromangriff ==== | ||
Zeile 88: | Zeile 88: | ||
Im Jahr 1998 stellten Paul Kocher, Joshua Jaffe und Benjamin Jun erstmals das Konzept des Stromangriffs vor.<ref>Paul Kocher, Joshua Jaffe, Benjamin Jun: ''Introduction to Differential Power Analysis and Related Attacks.'' In: ''Advances in Cryptology—CRYPTO ’99, 19th Annual International Cryptology Conference.'' (Lecture Notes in Computer Science, Vol. 1666) Springer-Verlang: Berlin, 1999, S. 388–397.</ref> Bei Stromangriffen wird nicht nur die Verarbeitungszeit gemessen, sondern mit einem [[Oszilloskop]] auch der Stromverbrauch. Besonders [[Smartcard]]s sind gegenüber Stromangriffen anfällig, da diese auf eine externe Stromversorgung angewiesen sind. Ein Angreifer misst die Ver- und Entschlüsselungsvorgänge und versucht bestimmte Stellen der Stromverbrauchskurve einzelnen Bestandteilen des Verfahrens zuzuordnen. Auch hier ist der Square-and-Multiply-Algorithmus ein geeignetes Ziel, da sich bei diesem Multiplikationen und Quadrierungen am Stromverbrauch oft gut unterscheiden lassen. Stromangriffe sind etwas aufwendiger in der Durchführung als Zeitangriffe, gelten jedoch als wirkungsvoller.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 321–322.</ref> | Im Jahr 1998 stellten Paul Kocher, Joshua Jaffe und Benjamin Jun erstmals das Konzept des Stromangriffs vor.<ref>Paul Kocher, Joshua Jaffe, Benjamin Jun: ''Introduction to Differential Power Analysis and Related Attacks.'' In: ''Advances in Cryptology—CRYPTO ’99, 19th Annual International Cryptology Conference.'' (Lecture Notes in Computer Science, Vol. 1666) Springer-Verlang: Berlin, 1999, S. 388–397.</ref> Bei Stromangriffen wird nicht nur die Verarbeitungszeit gemessen, sondern mit einem [[Oszilloskop]] auch der Stromverbrauch. Besonders [[Smartcard]]s sind gegenüber Stromangriffen anfällig, da diese auf eine externe Stromversorgung angewiesen sind. Ein Angreifer misst die Ver- und Entschlüsselungsvorgänge und versucht bestimmte Stellen der Stromverbrauchskurve einzelnen Bestandteilen des Verfahrens zuzuordnen. Auch hier ist der Square-and-Multiply-Algorithmus ein geeignetes Ziel, da sich bei diesem Multiplikationen und Quadrierungen am Stromverbrauch oft gut unterscheiden lassen. Stromangriffe sind etwas aufwendiger in der Durchführung als Zeitangriffe, gelten jedoch als wirkungsvoller.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 321–322.</ref> | ||
Als Gegenmaßnahme gegen Stromangriffe kann der Hersteller von Krypto-Modulen den Stromverbrauch verschleiern, indem er Dummy-Operationen in einen Ver- bzw. Entschlüsselungsvorgang einbaut. Eine weitere Möglichkeit besteht darin, ein künstliches [[Stromrauschen]] zu erzeugen, das den eigentlichen Stromverbrauch überlagert.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 323–324.</ref> | Als Gegenmaßnahme gegen Stromangriffe kann der Hersteller von Krypto-Modulen den Stromverbrauch verschleiern, indem er Dummy-Operationen in einen Ver- bzw. Entschlüsselungsvorgang einbaut. Eine weitere Möglichkeit besteht darin, ein künstliches [[Stromrauschen]] zu erzeugen, das den eigentlichen Stromverbrauch überlagert.<ref>Schmeh: ''Kryptografie.'' 5. Aufl., 2013, S. 323–324.</ref> | ||
[[Kategorie:Diffie Hellman]] | [[Kategorie:Diffie Hellman]] |
Version vom 28. Mai 2023, 20:55 Uhr
Sicherheit
Diffie-Hellman-Problem
Computational-Diffie-Hellman-Problem (CDH)
Angenommen, die Lauscherin Eve erfährt an der unsicheren Leitung die Zahlen , , und , aber nicht die diskreten Logarithmen von und von zur Basis . Mit der Kenntnis von und wäre es für sie eine leichte Aufgabe, den Schlüssel zu bestimmen. Die Zahlen und herauszufinden ist jedoch sehr schwer, wenn die Zahlen , und sehr groß sind, beispielsweise Zahlen mit mehreren hundert Stellen im Dezimalsystem.[1] Aus dieser Problemstellung ergibt sich das Computational-Diffie-Hellman-Problem:
- Wenn ein Element einer Gruppe und die Werte und gegeben sind, welchen Wert hat dann , mit unbekannt ?
Da dieses Problem in bestimmten Gruppen nur mit enormem Rechenaufwand zu lösen ist, kann ein Angreifer aus den beiden beim Diffie-Hellman-Merkle-Schlüsselaustausch übertragenen Nachrichten nicht den erzeugten Schlüssel berechnen.
Das Diffie-Hellman-Problem ist eng verwandt mit dem Diskreter-Logarithmus-Problem. Diskrete Logarithmen zu berechnen ist die einzige bekannte Methode, um das DHM-Verfahren zu brechen. Solange dies nicht in vertretbarer Zeit lösbar ist, ist es für einen Angreifer unmöglich, den geheimen Schlüssel zu bestimmen. Es ist allerdings nicht bewiesen, dass dies tatsächlich die einzige Methode ist, ob also jemand, der das Diffie-Hellman-Problem lösen könnte, auch diskrete Logarithmen effizient berechnen könnte.[2] Ueli Maurer hat gezeigt, dass beide Probleme zumindest unter bestimmten Voraussetzungen äquivalent sind.[3]
Decisional-Diffie-Hellman-Problem (DDH)
Soll es für einen Angreifer unmöglich sein, aus den öffentlich verfügbaren Informationen irgendwelche Informationen über den transportierten Schlüssel zu gewinnen, muss das Decisional-Diffie-Hellman-Problem (DDH) unangreifbar sein. Dieses Problem lässt sich folgendermaßen beschreiben:
- Ein Angreifer erhält drei Zahlen: , und . Dabei wurden entweder , und zufällig und gleichverteilt in gewählt oder gesetzt. Im zweiten Fall heißt Diffie-Hellman-Tripel. Der Angreifer muss entscheiden, ob ein solches Tripel vorliegt oder nicht. Kann er das nicht, ist es ihm unmöglich, aus und Rückschlüsse auf zu ziehen.[4]
Das Problem besteht also darin, bei gegebenem , und zu entscheiden, ob ist.
Wer das Computational-Diffie-Hellman-Problem lösen kann, ist offensichtlich auch dazu in der Lage, das Decisional-Diffie-Hellman-Problem zu lösen. Für den umgekehrten Fall ist das nicht klar.
Bei einer Auswahl von als Primitivwurzel kann das Decisional-Diffie-Hellman-Problem angegriffen werden. Dies liegt in folgendem Theorem begründet:
- Sei eine Primzahl, sei eine Primitivwurzel modulo und seien . Dann ist genau dann ein quadratischer Rest modulo , wenn oder ein quadratischer Rest ist modulo .
Das Theorem folgt daraus, dass eine Potenz von genau dann ein quadratischer Rest modulo ist, wenn der Exponent gerade ist.[2]
Ein Angreifer kann also prüfen, ob das Kriterium aus diesem Theorem erfüllt ist. Er kann zwar nicht immer entscheiden, ob ein Diffie-Hellman-Tripel vorliegt, er antwortet aber zu 75 % richtig. Sein Vorteil gegenüber reinem Raten beträgt also 50 %.[5]
Wahl der öffentlichen Zahlen
DHM-Primzahl p
Die Sicherheit des Verfahrens basiert nicht zuletzt auf der Länge der gewählten Zahlen. So muss die Primzahl dermaßen gewählt werden, dass diskrete Logarithmen modulo mit derzeit bekannten Methoden nicht (effizient genug) berechnet werden können. Je größer die verwendete Primzahl, desto sicherer das Verfahren, aber auch desto aufwendiger.[6] Das Bundesamt für Sicherheit in der Informationstechnik empfiehlt im Fall eines Einsatzzeitraum[s] über das Jahr 2022 hinaus für eine Schlüssellänge von mindestens 3000 Bit (Stand 2017).[7]
Die DHM-Primzahl muss zudem so gewählt werden, dass Algorithmen zur Berechnung des diskreten Logarithmus kein leichtes Spiel haben. So muss beispielsweise vermieden werden, dass nur kleine Primfaktoren hat. Ansonsten kann nämlich der Pohlig-Hellman-Algorithmus angewendet werden, der nicht von der Gruppenordnung, sondern vom größten Faktor der Gruppenordnung abhängt. Außerdem sollte für das Zahlkörpersieb möglichst ungeeignet sein. Dies ist der Fall, wenn es ein irreduzibles Polynom vom Grad 5 gibt, das sehr kleine Koeffizienten und eine Nullstelle hat.[8]
„Generator“ g
Die Zahl sollte so gewählt werden, dass alle Zahlen zwischen und als Resultat der modularen Potenz in Frage kommen. Erst dann ist es zu aufwändig, alle Zahlen durchzuprobieren (wenn darüber hinaus die Primzahl groß genug gewählt worden ist). Diese Eigenschaft erfüllt die Zahl , wenn sie ein Primitivwurzel zum Modul ist, d. h. ein Erzeuger der Gruppe .[9] Wenn Alice und Bob beispielsweise wählen, so funktioniert das Verfahren zwar noch immer, doch der Schlüssel ist auf jeden Fall , denn ist genau der Generator der Untergruppe von mit einem Element. Ähnlich unsicher ist das Verfahren, wenn Alice und Bob für einen Generator einer anderen kleinen Untergruppe wählen. Bei einem Generator einer großen Untergruppe ist das Verfahren sicherer, am besten wird ein Generator der ganzen Gruppe gewählt.[10]
Wie im Abschnitt „Prime Restklassengruppe und Primitivwurzel“ gezeigt, lässt sich eine Primitivwurzel relativ leicht finden, wenn man die DHM-Primzahl als mit einer Primzahl wählt. Wie jedoch im vorherigen Abschnitt gezeigt, kann das Decisional-Diffie-Hellman-Problem angegriffen werden, wenn man als Primitivwurzel wählt.
Verwendung fester Gruppen und Primzahlen
Da die Erzeugung sicherer Primzahlen rechenaufwendig ist, verwenden viele Implementierungen eine feste Primzahl .[11] Einige Netzwerkprotokolle wie etwa Internet Key Exchange geben eine Liste von möglichen Gruppen und deren Primzahl vor.
Die Verwendung fester Gruppen und Primzahlen kann ein Angreifer ausnutzen, um einen Großteil der Berechnung zum Brechen des diskreten Logarithmus vorab durchzuführen und um mehrere Ziele gleichzeitig anzugreifen. Der Zahlkörpersieb-Algorithmus besteht aus vier Schritten, wobei die ersten drei Schritte lediglich die Primzahl benötigen. Ist bekannt, kann ein Angreifer somit den Großteil vorberechnen und die Ergebnisse für jeden auf basierenden Schlüsselaustausch wiederverwenden. Dadurch kann zum Beispiel der Logjam-Angriff in TLS, nach einer einwöchigen Vorberechnung, einen 512-Bit-DHM-Schlüsselaustausch in rund 70 Sekunden brechen.[11]
Nach Schätzungen eines Forscherteams kann ein Angreifer mit Vorberechnung der 10 häufigsten 1024-Bit-Primzahlen den Netzwerkverkehr von 66 % der VPNs, 26 % der SSH-Server, 16 % der SMTP-Server und 24 % der HTTPS-Websites im Internet entschlüsseln. Die Forscher schätzen, dass der Rechenaufwand zum Brechen von 1024-Bit-Diffie-Hellman von einem staatlichen Angreifer wie der National Security Agency aufgebracht werden kann.[11]
Man-in-the-Middle-Angriff
Der Diffie-Hellman-Merkle-Schlüsselaustausch ist nicht mehr sicher, wenn der Angreifer bei einem Man-in-the-Middle-Angriff Datenpakete verändern kann. Im Alice-und-Bob-Modell heißt ein solcher Angreifer, der aktiv in das Geschehen eingreifen kann, Mallory (von engl. malicious, dt. i. e. hinterhältig, heimtückisch). Mallory fängt bei einem Man-in-the-Middle-Angriff die von Alice und Bob gesendeten Nachrichten ab und sendet stattdessen jeweils seine eigene Nachricht
weiter, die er aus einer beliebigen Zahl und den öffentlich bekannten Zahlen und berechnet.
Nach dem Schlüsselaustausch besitzen die beiden Kommunikationspartner Alice und Bob unterschiedliche Schlüssel und . Im Prinzip wurde zweimal ein DHM-Schlüsselaustausch durchgeführt: einmal zwischen Alice und Angreifer Mallory und einmal zwischen Mallory und Bob. Dabei erlangt Mallory Kenntnis der beiden Schlüssel und .
Da Alice und Bob im weiteren Verlauf davon ausgehen, mit dem jeweils Anderen zu kommunizieren, kann Mallory die folgende symmetrisch verschlüsselte Kommunikation abhören. Diese leitet er dazu weiterhin über sich selbst um. Daten von Alice entschlüsselt Mallory mit und verschlüsselt sie wieder mit , bevor er sie an Bob weiterschickt. Dabei kann Mallory den Nachrichteninhalt sowohl lesen als auch unbemerkt verändern. Die gleiche Vorgehensweise wendet er auch für die Gegenrichtung an.
Um einen solchen Man-in-the-Middle-Angriff auszuschließen, müssen die ausgetauschten Nachrichten authentifiziert werden. Dazu wird ein Informationsvorsprung benötigt, der über einen authentifizierten Kanal erreicht wird.[12]
Seitenkanalangriffe
Ein Seitenkanalangriff bezeichnet eine kryptoanalytische Methode, die die physische Implementierung eines Kryptosystems in einem Gerät (z. B. einer Chipkarte, eines Security-Tokens oder eines Hardware-Sicherheitsmoduls) oder in einer Software ausnutzt. Dabei wird nicht das kryptographische Verfahren selbst, sondern nur eine bestimmte Implementierung angegriffen. Das Prinzip beruht darauf, ein kryptographisches Gerät bei der Ausführung der kryptologischen Algorithmen zu beobachten und Korrelationen zwischen den beobachteten Daten und dem verwendeten Schlüssel zu finden.
Zeitangriff
Im Jahr 1995 veröffentlichte Paul Kocher eine neuartige Methode, mit der es ihm gelang, Implementierungen von Diffie-Hellman, RSA und DSA zu brechen: der Zeitangriff (timing attack).[13]
Ziel des Zeitangriffs ist die diskrete Exponentialfunktion. Wenn eine Krypto-Implementierung für irgendwelche größeren Zahlen , und berechnet, dann geschieht dies fast immer mit dem Square-and-Multiply-Algorithmus. Bei diesem ist für jedes Bit von eine Aktion festgesetzt: Hat das gerade bearbeitete Bit den Wert , dann ist diese Aktion eine Multiplikation, ansonsten eine Quadrierung. Da die Rechenzeiten für die Multiplikationen länger dauern als für die Quadrierungen, kann Eve aus Zeitmessungen Rückschlüsse auf die Zahl der Einsen in ziehen. Variiert er die Zahl , reichen irgendwann die Informationen aus, um zu berechnen. Schon mit einigen Tausend Zeitmessungen lassen sich entsprechende Implementierungen mit 1024-Bit-Schlüsseln brechen.[14]
Um solche Zeitangriffe zu verhindern, müssen jedoch bei der Implementierung lediglich Verzögerungen in den Ver- bzw. Entschlüsselungsprozess eingebaut werden. Mit dem als Blinding genannten Verfahren wird zum Beispiel an einer Stelle des Verfahrens eine Zufallszahl eingerechnet, die an anderer Stelle wieder herausgerechnet wird. Eine andere Möglichkeit besteht darin, den Prozess so zu gestalten, dass er unabhängig vom Eingabewert immer gleich lange dauert.[15]
Stromangriff
Im Jahr 1998 stellten Paul Kocher, Joshua Jaffe und Benjamin Jun erstmals das Konzept des Stromangriffs vor.[16] Bei Stromangriffen wird nicht nur die Verarbeitungszeit gemessen, sondern mit einem Oszilloskop auch der Stromverbrauch. Besonders Smartcards sind gegenüber Stromangriffen anfällig, da diese auf eine externe Stromversorgung angewiesen sind. Ein Angreifer misst die Ver- und Entschlüsselungsvorgänge und versucht bestimmte Stellen der Stromverbrauchskurve einzelnen Bestandteilen des Verfahrens zuzuordnen. Auch hier ist der Square-and-Multiply-Algorithmus ein geeignetes Ziel, da sich bei diesem Multiplikationen und Quadrierungen am Stromverbrauch oft gut unterscheiden lassen. Stromangriffe sind etwas aufwendiger in der Durchführung als Zeitangriffe, gelten jedoch als wirkungsvoller.[17]
Als Gegenmaßnahme gegen Stromangriffe kann der Hersteller von Krypto-Modulen den Stromverbrauch verschleiern, indem er Dummy-Operationen in einen Ver- bzw. Entschlüsselungsvorgang einbaut. Eine weitere Möglichkeit besteht darin, ein künstliches Stromrauschen zu erzeugen, das den eigentlichen Stromverbrauch überlagert.[18]
- ↑ Referenzfehler: Es ist ein ungültiger
<ref>
-Tag vorhanden: Für die Referenz namensFreiermuth-S200
wurde kein Text angegeben. - ↑ 2,0 2,1 Buchmann: Einführung in die Kryptographie. 6. Aufl., 2016, S. 190.
- ↑ Ueli Maurer: Towards the equivalence of breaking the Diffie-Hellman protocol and computing discrete logarithms. In: Advances in Cryptology – Crypto '94. Springer-Verlag, 1994, S. 271–281.
- ↑ Buchmann: Einführung in die Kryptographie. 6. Aufl., 2016, S. 190. Siehe ferner: Dan Boneh: The Decision Diffie–Hellman Problem. In: Proceedings of the Third Algorithmic Number Theory Symposium (Lecture Notes in Computer Science, Vol. 1423) Springer-Verlag, 1998, S. 48–63.
- ↑ Für einen Beweis siehe Buchmann: Einführung in die Kryptographie. 6. Aufl., 2016, S. 191–192.
- ↑ Buchmann: Einführung in die Kryptographie. 6. Aufl., 2016, S. 192–193.
- ↑ Bundesamt für Sicherheit in der Informationstechnik: BSI – Technische Richtlinien: Kryptographische Verfahren: Empfehlungen und Schlüssellängen Version 2016-01, Stand 15. Februar 2016.
- ↑ Buchmann: Einführung in die Kryptographie. 6. Aufl., 2016, S. 193.
- ↑ Referenzfehler: Es ist ein ungültiger
<ref>
-Tag vorhanden: Für die Referenz namensFreiermuth-S202
wurde kein Text angegeben. - ↑ Referenzfehler: Es ist ein ungültiger
<ref>
-Tag vorhanden: Für die Referenz namensSchmeh-S187
wurde kein Text angegeben. - ↑ 11,0 11,1 11,2 Adrian u. a.: Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice. In: Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. 2015, S. 5–15.
- ↑ Shafi Goldwasser, Mihir Bellare: Lecture Notes on Cryptography. 2008, Abschnitt 11.1.5 und 11.2.
- ↑ Paul C. Kocher: Cryptanalysis of Diffie-Hellman, RSA, DSS, and Other Systems Using Timing Attacks. In: Advances in Cryptology, Crypto '95 (15th Annual International Cryptology Conference), Springer-Verlag, 1995, S. 27–31. (Online)
- ↑ Schmeh: Kryptografie. 5. Aufl., 2013, S. 320–321.
- ↑ Schmeh: Kryptografie. 5. Aufl., 2013, S. 321.
- ↑ Paul Kocher, Joshua Jaffe, Benjamin Jun: Introduction to Differential Power Analysis and Related Attacks. In: Advances in Cryptology—CRYPTO ’99, 19th Annual International Cryptology Conference. (Lecture Notes in Computer Science, Vol. 1666) Springer-Verlang: Berlin, 1999, S. 388–397.
- ↑ Schmeh: Kryptografie. 5. Aufl., 2013, S. 321–322.
- ↑ Schmeh: Kryptografie. 5. Aufl., 2013, S. 323–324.