Practical Security for Disconnected Nodes
Practical Security for Disconnected Nodes
NOT THE FINAL VERSION
UNDER HEAVY DEVELOPMENT
Szenario:
Wir haben ein Sensor Netzwerk gegeben, welches eine baumartige Struktur besitzt, sodass ein reverse Multicast möglich ist. Die einzelnen Knoten haben folgende Eigenschaften: Den Aufgaben entsprechende Sensoren, eine einfache CPU und eine Funk-Netzwerkschnittstelle. Die Knoten werden mit Batterie oder Solarenergie betrieben und sind nicht fälschungssicher. Die Sensorknoten werden über ein Gebiet verteilt und formen ein selbsorganisierendes Multihop-Netzwerk. Wir gehen davon aus, dass die Knoten in dem Sensornetzwerk stationär sind, obwohl auch mobile Knoten denkbar sind.
Folgende Anforderungen sind für das Szenario entscheidend: Reduzierung des Energieverbrauchs, die Möglichkeit der Zusammenfassung von Daten in den Knoten und einige statistische Berechnungen auf den Daten im Netzwerk. Das hier dargestellt Netzwerk ist statisch und densely distributed und kann durch einen Graphen G = (N,L) dargestellt werden. Dabei sind N die Knoten und L die Kanten. R ε N ist der Zielknoten, A bezeichnen wir als Menge der Aggregator-Knoten, F kennzeichnet die Menge der Forwarding-Knoten, S die Menge der Sensorknoten und I bezeichnet die Menge der Idle-Knoten. Die Menge der Aggregator-Knoten zum Zeitpunkt t kann sich von der Menge der Aggregator-Knoten zum Zeitpunkt t+1 unterscheiden, dieses Verhalten trifft auch auf die Forwarding-, Sensor- und Idle-Knoten zu. Nur der Zielknoten bleibt zu jedem Zeitpunkt gleich. In diesem Szenario gehen wir von einem Verhältnis des Energieverbrauchs der einzelnen Operationen aus: Senden/Empfangen 100 Energieeinheiten, Berechnungen anstellen 10 Energieeinheiten und schlafen 1 Energieeinheit.
Das Problem:
Wir möchten Nachrichten in unserem Netzwerk vertraulich übermitteln, das heißt der Netzwerkverkehr muß gegen Abhören geschützt werden, sprich verschlüsselt werden. Die Integrität der Knoten und Authentifizierung der Knoten untereinander sind zwar weitere wichtige Sicherheitsaspekte, werden aber an diesem Punkt nicht weiterbehandelt.
Die Lösung:
Die einfachste Methode, die Daten auf dem Weg zu verschlüsseln, ist die Hop-by-Hop-Verschlüsselung. Auf jeden Knoten werden die Daten verschlüsselt, an den nächsten Knoten gesendet, dort entschlüsselt, zusammen mit anderen Daten wieder verschlüsselt und an den nächsten Knoten geschickt. Dabei verwenden wir für jedes Knotenpaar unterschiedliche Schlüssel und erhalten so eine zuverlässige Verschlüsselung der Daten. Auch die statistischen Berechnungen innerhalb des Netzwerks auf den Daten ist einfach zu implementieren. Leider ist diese Variante sehr inflexibel. Fällt ein Forwarding-Knoten in einem Ast unseres Netzwerkbaumes aus, lässt sich der Netzwerkverkehr nicht über einen anderen Knoten leiten. Außerdem besteht das Problem, daß ein Angreifer einen Knoten unter seine Kontrolle bringen könnte und dadurch sämtlichen Netzwerkverkehr, der über diesen Knoten läuft, unverschlüsslt mitlesen könnte. Zusätzlich ist die ständige Ver- und Entschlüsselung sehr energieaufwändig. Eine andere Methode ist die End-zu-End-Verschlüsselung. Die Vorteile wären ein niedrigerer Energieverbrauch und die Möglichkeit eine flexible Netzwerkstruktur zu haben. Die Kontrolle eines Knotens durch einen Angreifer ist keine Problem, da dieser nur den verschlüsselten Netzwerkverkehr zu sehen bekommt. Das gesamte Verschlüsselungssystem würde eine ausreichende Verschlüsselung der Daten bieten. Problematisch ist die hohe Komplexität dieses Systems. Als mögliches System bieten sich sogenannte Privacy-Homomorphismen an. Dabei werden auf den verschlüsselten Daten Berechnungen durchgeführt und auch verschiedene Verschlüsselte Daten ohne Entschlüsselung für den Weitertransport zusammengefasst. Leider gibt es für dieses System keine effiziente Methode Public-Key-Verschlüsselung zu verwenden, deshalb müssen wir uns auf symmetrische Verschlüsselung beschränken. Im folgenden wird der PH von Domingo-Ferrer vorgestellt.
Doming-Ferrer-PH:
Aufbau:
Integer große Integer g, mit vielen kleinen Divisoren und vielen kleinen Integers kleiner als g, die modulo g invertiert werden können. Secret key k = (r,g') r ele Zg mit es existiert und ist ein integer mit einem kleinen g' Klartext: Zg' Ciphertext: (Zg)d
Verschlüsselung:
teile a ele Zg' zufällig in ein Geheimnis Ek(a) = (a1r mod g, a2r² mod g, ... , adrd mod g)
Entschlüsselung:
Dk (Ek (a)) = SUM j=1 bis d (aj mod g')
Ciphertextop +: Komponentenweise Ciphertextop x: kreuzmultipliziert in Zg mit dem Grad m1 von a und dem Grad m² blabla...
Was machen wir mit dem Schlüssel?
Wir haben die Möglichkeit eines Network-Shared-Key, welcher die Vorteile einer großen Routing-Flexibilität und eines einfachen Keymanagements mitbringt. Das Problem mit einem Network-Shared-Key ist aber, daß lediglich ein Knoten korrumpiert werden muß, um den Schlüssel zu bekommen.
Eine andere Möglichkeit ist das Topology-aware-Group-keying. Wir haben weiterhin eine hohe Routingflexibilität und ein moderates Key-Management. Zusätzlich ist durch einen korrumpierten Knoten nicht das ganze Netzwerk, sondern nur eine Region des Netzwerkes betroffen. Das Problem ist allerdings die Abwägung zwischen Sicherheit und Flexibilität. Es nicht möglich höchste Sicherheit und höchste Flexibilität gleichzeitig zu haben. Die Schlüsselverteilung läuft folgendermaßen ab:
Es gibt 4 Phasen:
1.Pre-Configuration:
Der Hersteller konfiguriert jeden Knoten mit dem gleichen Schlüsselpool K* und deren Schlüssel Ids Idk, k ele K*
2.Roll out:
Die Knoten werden zufällig in einer Region verteilt und der Sink-Node sollte im Zentrum plaziert werden.
3.Bootstrapping
Eine Teilmenge von Knoten, nahe des Sink-Nodes wählt eine Schlüsselliste aus und broadcastet deren Ids. Die Knoten, die diese Liste empfangen löschen entweder ihren gesamten Schlüsselpool, oder wählen zufällig einen Schlüssel aus der Liste aus. Was die Knoten tun, hängt von einer Wahrscheinlichkeitsfunktion basierend auf der Distanz und maximalen Distanz von den Knoten ab. Werden noch andere Schlüssellisten empfangen, werden diese ignoriert. Die Knoten broadcasten Idk1 || k || Idkr an die nächsten weiter entfernten Knoten.
4.Cleansing
Die Knoten, die keine Nachrichten nach einer bestimmten Zeit nach dem Roll-Out empfangen haben, löschen ihren gesamten Schlüsselpool, so daß unerreichbare Knoten keine sensiblen Daten mehr speichern.
Main Page --> S2006-IPI --> 15. Security in DTN