Anzeige
Das Hue-Beleuchtungssystem von Philips hat ein Timingproblem.
Das Hue-Beleuchtungssystem von Philips hat ein Timingproblem. (Bild: Philips)

Memcmp: Timing-Attacke auf Philips-Lichtschalter

Def Con 22 Mit Hilfe eines Seitenkanalangriffs ist es einem Sicherheitsforscher gelungen, einen geheimen Token eines netzbasierten Lichtschalters herauszufinden. Grund ist ein Timingproblem in der Funktion memcmp(). Solche Angriffe galten bislang als unpraktikabel.

Anzeige

Philips hat mit Hue ein Lichtsystem im Angebot, bei dem sich Lampen über IP-basierte Netzwerkinterfaces steuern lassen. Der Sicherheitsforscher Paul McMillan präsentierte auf der Def Con 22 einen Angriff, mit dem sich der geheime Token eines solchen Lichtschalters herausfinden lässt.

McMillan machte sich dabei eine Eigenschaft der C-Funktion memcmp() zunutze, die eigentlich allenfalls als theoretisches Problem galt. Doch da simple Geräte wie der Philips-Lichtschalter relativ langsam arbeiten, ist ein derartiger Angriff möglich.

Vergleich im Nanosekundenbereich

Die Funktion memcmp() in C vergleicht zwei Strings. Dabei geht sie schrittweise vor. Zunächst wird das erste Zeichen verglichen. Ist dies unterschiedlich, wird ein Fehler ausgegeben, ist es gleich wird das zweite Zeichen geprüft. Durch dieses schrittweise Vorgehen gibt es einen geringen Zeitunterschied, je nachdem, wie viele Zeichen gleich sind. Werden etwa die Zeichenketten abc und cba verglichen, merkt memcmp() bereits beim ersten Buchstaben, dass die Strings nicht gleich sind. Wird aber abc mit acb verglichen, so dauert es wenige Nanosekunden länger, um diesen Vergleich durchzuführen.

Da der Zeitunterschied so gering ist, sind einige Maßnahmen nötig um den Angriff zu ermöglichen. McMillan nutzte zum Beobachten des Netzwerkverkehrs das Programm Tcpdump, welches auf der Bibliothek Libpcap basiert. Erst die Anfang Juli veröffentlichte Version 4.6 von Tcpdump unterstützt das Speichern von Zeitinformationen in der Genauigkeit von Nanosekunden. Auch unterstützen nicht alle Netzwerktreiber eine nanosekundengenaue Datenerfassung. Laut McMillan werden aber vor allem neuere Netzwerkkartentreiber mit einer entsprechenden Funktion ausgestattet. Er selbst nutzte für seine Experimente eine Intel I350.

Ohne Störfaktoren

Wichtig sei es weiterhin, alle Störfaktoren auszuschalten, sowohl im Netzwerk als auch auf der Maschine, von der aus der Angriff gestartet wird. Es sollten keine weiteren Programme laufen und auch keine unnötigen Geräte angeschlossen sein. Denn auch ein Treiber, etwa für ein USB-Gerät, kann zu Verzögerungen führen, die die Messungen ungenauer machen.

Bei der Analyse der Daten gab es das nächste Problem: Die meisten Tools, die den in Pcap-Dateien aufgezeichneten Netzwerkverkehr auswerten, können bisher mit dem Nanosekunden-Format nicht arbeiten. Auch bei der Konvertierung müsse beachtet werden, dass Daten an Genauigkeit verlieren, wenn sie als Gleitkommazahl von Sekunden dargestellt werden. Daher sollte besser mit Nanosekunden als Ganzzahlen gearbeitet werden.

Passender Algorithmus

McMillan sendete an das Gerät zunächst eine große Menge an Datenpaketen mit zufälligen Werten für den Token. Der Befehl wird über ein simpel gestricktes HTTP-basiertes Protokoll geschickt. Der Datenverkehr wird mittels Tcpdump aufgezeichnet.

Für die statistische Auswertung der Daten probierte McMillan verschiedene Algorithmen. Letztendlich funktionierte ein sogenannter Kolmogorov-Smirnov-Test am besten. McMillan verglich immer paarweise Datenpakete mit dem Test, und bei allen Paaren, bei denen der Test eine gewisse Wahrscheinlichkeit für einen Unterschied ausgab, erhielten beide Pakete einen Punkt. Langfristig hoben sich somit immer die Pakete, für die der erste Buchstabe des Tokens korrekt war, von den anderen Paketen ab. Anschließend konnte McMillan den Test für den nächsten Buchstaben durchführen. Nach einigen Optimierungen war der Test so gut, dass er innerhalb von 12 Minuten pro Buchstabe meist ein zuverlässiges Ergebnis lieferte. Einige Skripte, die bei der Analyse der Daten helfen, hat McMillan auf Github veröffentlicht.

Um derartige Timing-Angriffe zu vermeiden, müsste die Stringvergleichsfunktion so gestaltet werden, dass sie in konstanter Zeit abläuft, etwa, indem in jedem Fall alle Buchstaben verglichen werden, auch wenn der Vergleich schon bei den ersten Buchstaben fehlschlägt. Bislang kennen die üblichen C-Bibliotheken keine derartige Implementierung. Lediglich OpenBSD besitzt bisher entsprechende Funktionen.


eye home zur Startseite
DerVorhangZuUnd... 11. Aug 2014

Ups... Ja... Der Sinn ist natürlich i als Array-Index zu verwenden... Aber man versteht...

katzenpisse 11. Aug 2014

Der Angreifer muss ja erst mal im LAN sein.

dreamtide11 11. Aug 2014

...er meinte glaube ich was anderes :)

Saenic 11. Aug 2014

Die Beschreibung erinnert mich an das knacken von Tresoren in Filmen: Da wird auch Zahl...

alphanerd 10. Aug 2014

...die Hue-Bridge verwendet zur Identifizierung bereits autorisierter Geräte dessen MAC...

Kommentieren



Anzeige

  1. Entwickler/in Situationsanalyse Fahrerassistenzsysteme
    Robert Bosch GmbH, Abstatt
  2. Software Engineer Mobile Apps (m/w)
    Daimler AG, Berlin
  3. SAP Modulbetreuer / Anwendungsentwickler HCM (m/w)
    HiPP-Werk Georg Hipp OHG, Pfaffenhofen Raum Ingolstadt
  4. CIO / Head of IT (m/w)
    über JobLeads GmbH, Bodensee

Detailsuche



Anzeige
Top-Angebote
  1. NEU: 4 Blu-rays für 30 EUR
    (u. a. Der große Gatsby, Mad Max, Black Mass, San Andreas)
  2. NUR FÜR KURZE ZEIT: Adobe Photoshop Elements & Premiere Elements 14 (PC/Mac)
    69,90€ inkl. Versand
  3. NEU: Blu-rays zum Sonderpreis

Weitere Angebote


Folgen Sie uns
       


  1. Gehalt.de

    Was Frauen in IT-Jobs verdienen

  2. Kurzstreckenflüge

    Lufthansa verspricht 15 MBit/s für jeden an Bord

  3. Anonymisierungsprojekt

    Darf ein Ex-Geheimdienstler für Tor arbeiten?

  4. Schalke 04

    Erst League of Legends und nun Fifa

  5. Patentverletzungen

    Qualcomm verklagt Meizu

  6. Deep Learning

    Algorithmus sagt menschliche Verhaltensweisen voraus

  7. Bungie

    Destiny-Karriere auf PS3 und Xbox 360 endet im August 2016

  8. Vive-Headset

    HTC muss sich auf Virtual Reality verlassen

  9. Mobilfunk

    Datenvolumen steigt während EM-Spiel um 25 Prozent

  10. Software Guard Extentions

    Linux-Code kann auf Intel-CPUs besser geschützt werden



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Zenbook 3 im Hands on: Kleiner, leichter und schneller als das Macbook
Zenbook 3 im Hands on
Kleiner, leichter und schneller als das Macbook
  1. 8x Asus ROG 180-Hz-Display, Project Avalon, SLI-WaKü-Notebook & mehr
  2. Transformer 3 (Pro) Asus zeigt Detachable mit Kaby Lake
  3. Asus Zenbook Flip kommt für fast 800 Euro in den Handel

Android Wear 2.0 im Hands on: Googles Aufholjagd mit Komplikationen
Android Wear 2.0 im Hands on
Googles Aufholjagd mit Komplikationen
  1. Android Wear 2.0 Google etabliert Fragmentierung bei Smartwatches
  2. Microsoft Outlook-Watch-Face für Android-Smartwatches
  3. Samsung Keine neuen Smartwatches mit Android Wear geplant

E-Mail-Verschlüsselung: EU-Kommission hat Angst vor verschlüsseltem Spam
E-Mail-Verschlüsselung
EU-Kommission hat Angst vor verschlüsseltem Spam
  1. Netflix und Co. EU schafft Geoblocking ein bisschen ab
  2. Android FTC weitet Ermittlungen gegen Google aus
  3. Pay-TV Paramount gibt im Streit um Geoblocking nach

  1. 25 Mio MByte da wären passend zu Thema eine...

    HûntStârJonny | 18:43

  2. Re: Ich versteh immer nicht

    neocron | 18:43

  3. Er lernte das durch Fernsehgucken.

    azeu | 18:43

  4. Re: Merkt man das?

    ark | 18:42

  5. Re: Bluetooth muss standard werden!

    FreiGeistler | 18:41


  1. 18:37

  2. 17:43

  3. 17:29

  4. 16:56

  5. 16:40

  6. 16:18

  7. 16:00

  8. 15:47


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel