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. Home Shopping Europe GmbH, Ismaning
  2. STUTE Logistics (AG & Co.) KG, Bremen

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
Hardware-Angebote
  1. 54,99€ statt 99,98€
  2. bei Alternate kaufen

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
       


Adobe Premiere mit Quicksync ausprobiert

Quicksync ist eine überfällige Neuerung für Adobe Premiere. Wir haben die Hardwarebeschleunigung ausprobiert.

Adobe Premiere mit Quicksync ausprobiert Video aufrufen
Gemini PDA im Test: 2004 ist nicht 2018
Gemini PDA im Test
2004 ist nicht 2018

Knapp über ein Jahr nach der erfolgreichen Finanzierung hat das Startup Planet Computers mit der Auslieferung seines Gemini PDA begonnen. Die Tastatur ist gewöhnungsbedürftig, längere Texte lassen sich aber mit Geduld durchaus damit tippen. Die Frage ist: Brauchen wir heute noch einen PDA?
Ein Test von Tobias Költzsch und Sebastian Grüner

  1. Atom Wasserfestes Mini-Smartphone binnen einer Minute finanziert
  2. Librem 5 Freies Linux-Smartphone wird größer und kantig
  3. Smartphone-Verkäufe Xiaomi erobert Platz vier hinter Huawei, Apple und Samsung

3D-Druck on Demand: Wenn der Baumarkt Actionfiguren aus Stahl druckt
3D-Druck on Demand
Wenn der Baumarkt Actionfiguren aus Stahl druckt

Es gibt viele Anbieter für 3D-Druck on Demand und die Preise fallen. Golem.de hat die 3D-Druckdienste von Toom, Conrad Electronic, Sculpteo und Media Markt getestet, um neue Figuren der Big-Jim-Reihe zu erschaffen.
Ein Praxistest von Achim Sawall


    Sonnet eGFX Box 650 im Test: Wenn die Vega 64 am Thinkpad rechnet
    Sonnet eGFX Box 650 im Test
    Wenn die Vega 64 am Thinkpad rechnet

    Die eGFX Box 650 von Sonnet ist ein eGPU-Gehäuse, das dank 650-Watt-Netzteil auch mit AMDs Radeon RX Vega 64 läuft. Die Box ist zwar recht leise, dennoch würden wir den Lüfter gerne steuern.
    Ein Test von Marc Sauter und Sebastian Grüner

    1. Razer Core X eGPU-Box kostet 300 Euro
    2. eGFX Breakaway Box 650 Sonnets Grafik-Gehäuse läuft mit Vega 64
    3. XG Station Pro Asus' zweite eGPU-Box ist schlicht

      •  /