TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Fakultät | Informatik
Informatikzentrum

Abhärtung des RPL-Protokolls gegen transiente Knotenausfälle

Bearbeiter (anonym, Login erforderlich)
Betreuer Dr. Ulf Kulau
Professor Prof. Dr.-Ing. Lars Wolf
Projekt reap
IBR Gruppe CM (Prof. Wolf)
Art Masterarbeit
Status abgeschlossen
Beginn 14.12.2016

Einleitung

Ein Wireless Sensor Network (WSN) ist ein Verbund von mehreren Sensorknoten, welche gemeinsam in diesem Netzwerk Informationen sammeln, gegebenenfalls auswerten und zur weiteren Verwendung bereitstellen. Heute gibt es für WSNs unzählige Einsatzgebiete, die sich drastisch in Funktion, nötiger Zuverlässigkeit und Umweltbedingungen unterscheiden. Eine Gemeinsamkeit teilen sich jedoch die meisten WSNs: Sie sollen so lange wie möglich wartungsfrei funktionieren. Ein bestimmender Faktor für eine lange Lebenszeit der Sensorknoten ist ihre Energieversorgung, denn im Regelfall werden die Sensorknoten mit Akkus oder Batterien betrieben, welche nur eine begrenzte Menge an Energie zur Verfügung stellen. Das Ziel einiger aktueller Arbeiten ist es ein WSN so energieeffizient wie möglich zu gestalten, um die Energieversorgung so lange wie möglich aufrecht zu erhalten.

Das de-facto Routingprotokoll für solche WSNs ist das Routing Protocol for Low power and Lossy Networks (RPL). Es wurde bereits eingehend auf Funktionalität, Energieeffizienz und mögliche Angriffsvektoren hin überprüft. Alle diese Arbeiten haben jedoch gemeinsam, dass sie nicht auf kurz zeitig ausfallende Knoten als Angriffs- bzw. Fehlerquelle eingehen. Diese kurzzeitigen Aus fälle bzw. Neustarts sind in realen WSNs kein unbekanntes Problem, da sie unter Anderem durch extreme Umweltbedingungen wie Hitze oder Kälte, schlechte bzw. fehlerhafte Hardware oder Undervolting ausgelöst werden können. In einer vorherigen Arbeit konnte jedoch gezeigt werden, dass kurzzeitig ausfallende knoten den Energieverbrauch des gesamten Netzes messbar beeinflussen. Im Falle eines solchen fehlerhaften Knotens konnte RPL durch seine Mechanismen diesen Effekt eingrenzen, indem der betroffene Knoten bei Routingentscheidungen ignoriert wurde. So hatte jeder weitere Neustart des gleichen Knotens eine geringere Auswirkung auf das Netz. Ein möglicher Angreifer allerdings könnte sich diesen Effekt auf eine leicht abgewandelte Art und Weise zu nutze machen: Ein Knoten, der regelmäßig in kurzen Intervallen mit einer neuen, vorgetäuschten IP startet würde den Reparaturmechanismus von RPL aushebeln und hätte somit eine signifikant größere Auswirkung auf die Energieeffizienz des Netzwerkes. Dieses Verhalten destabilisiert das Netz lokal und führt zu einem frühzeitigen Ausfallen der benachbarten Knoten.

Solch ein Angriff könnte mittels RPL-eigener Sicherheitsmechanismen verhindert werden. Diese sind allerdings weder in Contiki, noch in TinyOS implementiert (Stand 11.2016). Alternativ kann das Netzwerk mittels Link Layer Verschlüsselung und Authentifizierung und eines globalen pre-shared Key gegen solche Angriffe geschützt werden. Jedoch wird beim Einrichten eines Sensornetzwerkes oft auf solche Mechanismen verzichtet, da sie meistens nur schwer mit den begrenzten Ressourcen der Knotenhardware vereinbar sind oder einen erhöhten Einrichtungs- bzw. Wartungsaufwand zur Folge haben. Diese beiden Maßnahmen schützen jedoch lediglich vor einem Angreifer, der versucht das WSN zu kompromittieren. Ein valider Knoten, welcher aus verschiedenen möglichen Gründen regelmäßig abstürzt oder neu startet wird durch sie nicht daran gehindert die Verfügbarkeit des Netzes zu gefährden.

Das Thema dieser Arbeit soll es sein ein auf RPL basiertes Sensornetzwerk gegen solche fehlerhaften und ausfallenden Knoten abzuhärten. Das Absichern des Netzes gegen böswillige Eingriffe von außen ist Fokus einer ganzen Reihe anderer Arbeiten und stellt auch weiterhin einen wichtigen Schwerpunkt in der Forschung und Entwicklung von Sensornetzen dar, soll jedoch im Rahmen dieser Arbeit nicht näher betrachtet werden.

Aufgabenstellung

Zunächst sollen die in der vorherigen Arbeit vorgestellten Simulationsergebnisse in einem realen Testbed, bestehend aus Zolertia Z1 Sensorknoten, validiert werden. Dazu müssen im Testbed Situationen geschaffen werden, die mit den Simulationen aus vergleichbar sind. Das bedeutet, dass zum einen überprüft werden soll, welchen Effekt der Neustart eines Knotens auf seine Nachbarn hat und zum anderen welchen Effekt er auf das Subnetz des Knotens hat. Für diese Tests wird es erforderlich sein ein Testframework zu implementieren, welches die Experimente im Testbed automatisiert. Dazu gehört das Neustarten eines zufälligen Knotens pro Testdurchlauf und das Formatieren der Testergebnisse.

Der Schwerpunkt dieser Arbeit soll es sein RPL gegen kurzzeitig ausfallende Sensorknoten abzuhärten. Die Grundidee sieht dabei wie folgt aus: Die Sensorknoten halten ihren RPL-Zustand persistent vor. Nach einem Neustart soll dieser Zustand, falls noch aktuell, wieder hergestellt und damit weitergearbeitet werden können. Dabei lässt sich die Umsetzung dieser Idee in drei wesentliche Arbeitsschritte unterteilen:

  • Den RPL-Zustand identifizieren
    Der RPL-Zustand umfasst unter Anderem die Routingtabelle, verschiedene Trickle Timer und Intervalle und eine ganze Reihe weiterer Parameter, welche zur Laufzeit regelmäßig verändert werden. Um nach der Wiederherstellung des Zustands die korrekte Reintegration des Sensorknotens in das RPL-Netzwerk zu gewährleisten, müssen alle relevanten Teile des RPL-Zustandes zunächst identifiziert werden.
  • Den RPL-Zustand persistent sichern und wiederherstellen
    Es muss eine Schnittstelle geschaffen werden, über welche der RPL-Zustand persistent gesichert und wiederhergestellt werden kann. Denkbare persistente Speicher wären eine SD Karte oder der EEPROM, welcher auf z.B. dem Inga Knoten über 4 kB Speicherkapazität verfügt. Außerdem muss entschieden werden, welche Teile des Zustandes in welchen Intervallen gesichert werden. So können zum Beispiel immer, wenn der Zustand modifiziert wird nur diese Änderungen oder in regelmäßigen Intervallen der gesamte Zustand gesichert werden.
  • Die Integration in den RPL-Kontrollfluss
    Direkt nach dem Start eines RPL-Knotens fragt er Informationen zur aktuellen RPL Instanz bei seinen Nachbarknoten an. Diese Anfrage löst eine Kaskade an RPL-Kontrollnachrichten aus, welche eine Destabilisierung des Netzes zur Folge haben kann. Dies hatte in der vorherigen Arbeit einen deutlich erhöhten Energieverbrauch zur Folge, da eine große Menge an Kon trollnachrichten benötigt wird, um das Netz wieder zu stabilisieren. Dies soll verhindert werden, indem der neu gestartete Knoten zunächst überprüft, ob er zuvor einen RPL-Zustand gesichert hat und diesen, sollte er aktuell genug sein, weiter verwendet. In diesem Fall kann die Anfrage an die Nachbarknoten unterdrückt werden. Dazu muss zunächst ein Mechanismus entworfen werden, welcher die Aktualität des gesicherten Zustandes feststellen kann. Dieser Mechanismus und die anschließende Wiederherstellung des Zustandes müssen so in den RPL-Kontrollfluss eingearbeitet werden, dass der Knoten sich nach einem Neustart korrekt in das bestehende RPL-Netzwerk reintegrieren kann.
  • Außerdem sollen die Modifikationen auf ihre Funktionalität und Effizienz hin ständig durch Evaluationen überprüft werden.

    Links


aktualisiert am 05.07.2017, 11:46
printemailtop