Abo
  • Services:

Fehlerhafter Code an riskanter Stelle in GnuPG

Ein subtiler Fehler in der Bibliothek Libgcrypt, die unter anderem von GnuPG verwendet wird, führte dazu, dass in bestimmten Situationen Bitmanipulationen durch die Funktion mpi_set_bit() fehlerhaft arbeiteten. Der Fehler trat nur zufällig auf, und das lag am Speicherlayout. In der Funktion wurde uninitialisierter Speicher verwendet. Falls der Speicher schon vorher genutzt worden war, konnte das die Funktionsweise beeinflussen.

Stellenmarkt
  1. Controlware GmbH, Dietzenbach, Meerbusch, Stuttgart
  2. BWI GmbH, Meckenheim

Weinmann suchte nach Codestellen, die die entsprechende Funktion mpi_set_bit() aufrufen. Ausgerechnet bei der Erstellung des k-Wertes von DSA-Signaturen in GnuPG fand sich ein entsprechender Funktionsaufruf. Der k-Wert von DSA ist besonders kritisch, da ein Fehler hier katastrophale Auswirkungen haben kann. Falls derselbe k-Wert zweimal verwendet wird oder falls der Wert einem Angreifer bekannt ist, kann dieser dadurch den privaten Schlüssel zu einer Signatur berechnen. Weinmann kam letztendlich zu dem Schluss, dass das Problem vermutlich nicht zu einer Sicherheitslücke führt, er rief aber explizit dazu auf, dass weitere Personen den Fehler untersuchen sollten.

Neben der Analyse von bekannten Fehlern ging Weinmann auch der Frage nach, wie man derartige Fehler finden könnte. Mittels sogenannter Symbolic Execution ist es theoretisch möglich, zumindest die Äquivalenz von verschiedenen Funktionen zu beweisen. Damit könnte man etwa die Implementierungen bestimmter Rechenvorgänge von verschiedenen Verschlüsselungsbibliotheken vergleichen. Ein Forscherteam der Universität Stanford hat hierfür eine Variante des Tools KLEE entwickelt. Zwar ist das entsprechende Tool nicht öffentlich verfügbar, mit geringfügigen Modifikationen sei dieser Ansatz jedoch laut Weinmann auch mit der Originalversion von KLEE umsetzbar.

Symbolic Execution gerät an Grenzen

Allerdings gibt es dabei einige Hürden. KLEE arbeitet mit Hilfe des Compilerframeworks LLVM und nutzt dafür den Zwischencode, den LLVM erzeugt. Große Teile der Rechenfunktionen von Verschlüsselungsbibliotheken sind jedoch in Assembler geschrieben. Um diese zu verifizieren, muss der Code erst entsprechend zurückkonvertiert werden. Dafür gibt es einige experimentelle Tools. An komplexeren Funktionen scheitert die Methode der Symbolic Execution letztendlich, da es zu viele Zustände gibt, in die eine Funktion geraten kann. Für die meisten aufwendigeren Funktionen ist diese Methode daher - zumindest mit aktuellen Tools - nicht nutzbar.

Bestimmte Rechenfehler lassen sich auch innerhalb einer Bibliothek selbst testen. Den OpenSSL-Fehler in der Quadrierungsfunktion etwa könnte man finden, wenn man den entsprechenden Eingabewert einmal mit der Quadrierungsfunktion berechnet und anschließend die Zahl mit sich selbst multipliziert. Bei beiden Berechnungen müsste dasselbe Ergebnis herauskommen.

American Fuzzy Lop kann seltene Rechenfehler finden

Weinmann hatte ein kleines Programm geschrieben, das genau dies tut, und anschließend das Fuzzing-Tool American Fuzzy Lop darauf angewendet. Weinman sagte, er habe dabei gedacht, "das wird zwar bestimmt nicht funktionieren, aber ich sollte es zumindest ausprobieren". Erstaunlicherweise hatte diese Methode jedoch Erfolg. Innerhalb von einer Stunde fand American Fuzzy Lop in einer verwundbaren OpenSSL-Version einen der seltenen Ausnahmefälle, in denen die Quadrierung fehlerhafte Ergebnisse liefert.

 Kryptographie: Rechenfehler mit großen Zahlen
  1.  
  2. 1
  3. 2


Anzeige
Blu-ray-Angebote
  1. 5€ inkl. FSK-18-Versand
  2. 5€ inkl. FSK-18-Versand
  3. (u. a. 3 Blu-rays für 15€, 2 Neuheiten für 15€)

MartinPaul 09. Aug 2015

Ich meine meine Grammatik ist nicht nur wegen dem Smartphone das ich zum antworten nutze...

DerVorhangZuUnd... 07. Aug 2015

Danke für den Hinweis. Diese Implementierung kannte ich noch nicht. Trotzdem finde ich...


Folgen Sie uns
       


Acer Spin 13 - Fazit

Das Spin 13 von Acer ist ein hochwertig verarbeitetes, gut ausgestattetes Chromebook. Nach dem Test fragen wir uns aber, ob wir wirklich mindestens 900 Euro für ein Notebook mit Chrome OS ausgeben wollen.

Acer Spin 13 - Fazit Video aufrufen
Marsrover Opportunity: Mission erfolgreich abgeschlossen
Marsrover Opportunity
Mission erfolgreich abgeschlossen

15 Jahre nach der Landung auf dem Mars erklärt die Nasa das Ende der Mission des Marsrovers Opportunity. Ein Rückblick auf das Ende der Mission und die Messinstrumente, denen wir viele neue Erkenntnisse über den Mars zu verdanken haben.
Von Frank Wunderlich-Pfeiffer

  1. Mars Insight Nasa hofft auf Langeweile auf dem Mars
  2. Astronomie Flüssiges Wasser auf dem Mars war Messfehler
  3. Mars Die Nasa gibt den Rover nicht auf

Honor View 20 im Test: Schluss mit der Wiederverwertung
Honor View 20 im Test
Schluss mit der Wiederverwertung

Mit dem View 20 weicht Huawei mit seiner Tochterfirma Honor vom bisherigen Konzept ab, altgediente Komponenten einfach neu zu verpacken: Das Smartphone hat nicht nur erstmals eine Frontkamera im Display, sondern auch eine hervorragende neue Hauptkamera, wie unser Test zeigt.
Ein Test von Tobias Költzsch

  1. Huawei Honor View 20 mit 48-Megapixel-Kamera kostet ab 570 Euro
  2. Huawei Honor 10 Lite mit kleiner Notch kostet 250 Euro
  3. Huawei Honor View 20 hat die Frontkamera im Display

Raumfahrt: Aus Marzahn mit der Esa zum Mond
Raumfahrt
Aus Marzahn mit der Esa zum Mond

Die Esa versucht sich an einem neuen Ansatz: der Kooperation mit privaten Unternehmen in der Raumforschung. Die PT Scientists aus Berlin-Marzahn sollen dafür bis 2025 einen Mondlander liefern.
Von Frank Wunderlich-Pfeiffer

  1. Raumfahrt Die Nasa will schnell eine neue Mondlandefähre
  2. Chang'e 4 Chinesische Sonde landet auf der Rückseite des Mondes
  3. Raumfahrt 2019 - Die Rückkehr des Mondfiebers?

    •  /