Nahfeldsondierung

Seitenkanalangriff auf OpenThread

15. Mai 2018, 18:59 Uhr | Daniel Dinu und Ilya Kizhvatov
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 5

Angriffsimplementierung

Der vorgestellte Angriff kombiniert die obigen Schwachstellen in folgenden Schritten: 

  1. Der Datenverkehr wird abgehört und die Sequenzierung aus der MLE-Einladung der ThreadRouter und REEDs aufgezeichnet
  2. Die Feldemission eines Routers oder REEDs wird, unter Eingabe der MLE-Parent-Request-Nachricht und dem Auslösen einer AES-Operation, aufgezeichnet. Für den CPA-Angriff werden Sender-MAC-Adresse und Zähler nach Zufallsschema variiert. Der Angriff muss in physischer Nähe zu Router und REEDs erfolgen. Mit Aufzeichnung hinreichend vieler Spuren beginnt der nächste Angriffsschritt.
  3. Die Feldemissionen werden mit einem hypothetischen Modell korreliert und der MLE-Schlüssel extrahiert.
  4. Mit dem MLE-Netzwerkschlüssel kann die Routerverbindung hergestellt und Netzwerkkonfiguration einschließlich MasterKey abgefragt werden.

Der Erfolg von Schritt 4 hängt an der Länge der MLE-Child-ID-Antwort. Bei fragmentierter Nachricht muss zusätzlich der KMAC-Schlüssel mit einem CPA-Angriff auf die AES-CCM-Funktion extrahiert werden. Hier ist die Strategie von O'Flynn und Chen [5] für den IEEE 802.15.4-Standard anwendbar: Die 8-byte Sender-MAC-Adresse wird auf den Wert eines Nachbarn des Zieles gesetzt. Das erste Byte des Auxiliary-Security-Header wird auf 0x0D gesetzt. Damit wird die Kodierung mit KMAC ausgelöst, variiert werden die 4-Byte-Werte im Zählerfeld. Mit der hohen MAC-Rate reicht im Vergleich zu MLE eine passive Analyse. Da der SourceCode für OpenThread offen liegt, kann auch dieser Angriff einfach adaptiert werden.

Die Akquisitionsqualität beeinflusst die Angriffseffektivität: Mit besserem SNR sinkt die Anzahl der notwendigen Spuren und ihre Länge. Mit kürzerer Akquisition sinkt auch das Risiko physisch oder anhand des Datenverkehrs entdeckt zu werden.

Messaufbau

Das Threadnetzwerk im Labor besteht aus zwei CC2538EM-Wireless-Mikrocontrollern mit ARM Cortex-M3-Prozessor (32 MHz und bis zu 512 KB Flashspeicher) und IEEE 802.15.3 HF-Sender. Diese Geräte konnten das OpenThread-Netzwerk als erstes implementieren und sind von der Thread-Gruppe zertifiziert. Die Anschaffungskosten fallen wesentlich geringer aus als bei Geräten mit proprietärer Threadimplementierung. Nach SourceCode-Studium wurde dieser für die Erzeugung unterschiedlicher Nachrichten verändert. Mit der komplexen OpenThread-Codebasis ist dieser Schritt sehr anspruchsvoll.  

Messgeräte

Die Feldemission wurde mit dem Teledyne LeCroy WaveRunner 625Zi-Oszilloskop aufgezeichnet. Zur Identifikation der Emissionsstellen mit einer Nahfeldsonde lief die AES-Verschlüsselung in einer Schleife. Gute Kandidaten sind die Chipfläche und Koppelkondensatoren. Bild 4a zeigt die Aufnahme mit einer relativ erschwinglichen Hallsonde (15 mm Spulendurchmesser), aussagekräftige Muster lieferte erst das Nahfeldsondenset der Firma Langer (1 mm Spulendurchemsser) (Bild 4b). Die Proben befinden sich in wenigen Millimetern Abstand direkt über dem Board. Die Tastrate wurde auf 1 GS/s gesetzt: Eine niedrigere Tastrate von 500 MS/s verschlechterte das Ergebnis erheblich, eine höhere von 5 GS/s führte zu keinen wesentlichen Verbesserungen.

Bild 4a: Feldanalyse mit Hallsonde
Bild 4a: Feldanalyse mit Hallsonde
© Daniel Dinu
Bild 4b: Feldanalyse mit Nahfeldsonde
Bild 4b: Feldanalyse mit Nahfeldsonde
© Daniel Dinu

Das AngreiferBoard mit der veränderten OpenThread-Implementierung sendet mit jeder injizierten Nachricht ein zusätzliches Triggersignal zum Start der Oszilloskopaufzeichnung. Nachricht und die Feldprofile wurden auf einem PC gespeichert. Das Angriffsziel implementiert das unveränderte OpenThread und hatte im Threadnetz die Routerrolle. Das Ziel sendete kein dediziertes Triggersginal. Eine eigene Stromversorgung für das Ziel verringerte das Untergrundrauschen.

Im Experiment konnten 25 spezifische MLE-Parent-Requests pro Sekunde injiziert werden. In einem stark beanspruchten Netz mit wesentlich höherer Paketrate kann ein Versatz zwischen aufgezeichneten Spuren und gesendeten Paketen auftreten. Damit steigt die Anzahl der notwendigen Spuren. Abhilfe schafft die Auswahl der relevanten Spuren anhand von Mustern.

Spurenabgleich

Nach Aquisition muss der Angreifer die Spuren vergleichen. Das Timing der unterschiedlichen Events zeigt Bild 5. Die injizierte Nachricht wird zum Zeitpunkt t0 geschalten und das Oszilloskop ausgelöst. Das Oszilloskop zeichnet ein Signal zwischen deltamin und tau equals delta subscript m a x end subscript plus t subscript A E S end subscript auf.

Der Angriffszeitraum tAES befindet sich zwischen t1 und t2.

Bild 5: Timing unterschiedlicher Ereignisse während der Akquisition einer Feldspur.
Bild 5: Timing unterschiedlicher Ereignisse während der Akquisition einer Feldspur.
© Daniel Dinu

Ein beliebig langes Intervall, das die relevanten Speicherpunkte beinhaltet, kann aufgezeichnet werden. In unserem Fall lag delta zwischen [555 µs, 564 µs] , während Teile der AES-Ausführung tAES=14,656 µs beanspruchte. Wie Bild 5 zeigt, findet die relevante AES-Operation zu unterschiedlichen Zeitpunkten statt.
Hier kann ein Muster das relevante Signal in Verbindung zu den Operationen setzen. Im Experiment konnte die erste AES-Phase visuell identifiziert werden, dieses Ereignis bildet den Spurenabgleich. Abgleichsmethoden "Summe Absoluter Differenzen" und Kreuzkorrelation ergaben sich in der Auflösung etwa vergleichbar, die SAD-Methode weist geringfügig höhere Geschwindigkeit und weniger Fehlspuren auf.


  1. Seitenkanalangriff auf OpenThread
  2. Seitenkanalangriffe
  3. Sicherheitsschlüssel
  4. Thread-Bedrohungen
  5. MLE-Parent-Anfrage
  6. Angriffsimplementierung
  7. Angriffsergebnis
  8. Literatur

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Teledyne-LeCroy GmbH

Weitere Artikel zu Cyber-Security