Concealed Data Aggregation: Difference between revisions
Line 80: | Line 80: | ||
Die Ciphertext-Operation <math>\ +</math> wird komponentenweise durchgeführt. |
Die Ciphertext-Operation <math>\ +</math> wird komponentenweise durchgeführt. |
||
Für die Ciphertext-Operation <math>\times</math> werden alle Terme in <math>Z_g</math> kreuzmultipliziert, wobei wir beim Grad <math>m_1</math> von <math>a</math> und dem Grad <math>m_2</math> und einen Term mit dem Grad <math>(m_1 + m_2)</math> erhalten. |
Für die Ciphertext-Operation <math>\times</math> werden alle Terme in <math>Z_g</math> kreuzmultipliziert, wobei wir beim Grad <math>m_1</math> von <math>a</math> und dem Grad <math>m_2</math> und einen Term mit dem Grad <math>(m_1 + m_2)</math> erhalten. Terme mit dem gleichen Grad werden einfach addiert. |
||
===Was machen wir mit dem Schlüssel?=== |
===Was machen wir mit dem Schlüssel?=== |
Revision as of 10:10, 10 January 2007
Main Page --> S2006-IPI --> 15. Security in DTN
Concealed Data Aggregation for Reverse Multicast Traffic in Sensor Networks
NOT THE FINAL VERSION
UNDER HEAVY DEVELOPMENT
Szenario:
Wir haben ein Sensor Netzwerk gegeben, welches eine baumartige Struktur besitzt, so daß ein "Reverse Multicast" möglich ist. Die einzelnen Knoten haben folgende Eigenschaften:
- den Aufgaben entsprechende Sensoren (z.B. Wärmesensoren für die Erkennung von Waldbränden)
- eine einfache CPU ( meist keine FPU, auf niedrigen Energieverbrauch optimiert)
- eine Funk-Netzwerkschnittstelle
- die Stromversorgung erfolgt durch Batterie oder Solarzellen
- die Knoten sind nicht fälschungssicher
Die Sensorknoten werden über ein Gebiet verteilt und formen ein selbstorganisierendes Multihop-Netzwerk. Wir gehen davon aus, daß 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
- statistische Berechnungen auf den Daten im Netzwerk
Das hier dargestellte Netzwerk ist statisch mit dicht verteilten Knoten. Durch den Graphen kann dieses Netzwerk beschrieben werden. Dabei sind die Knoten und die Kanten. ist der Zielknoten, mit bezeichnen wir die Menge der Aggregator-Knoten, kennzeichnet die Menge der Forwarding-Knoten, die Menge der Sensorknoten und bezeichnet die Menge der Idle-Knoten. Die Menge der Aggregator-Knoten zum Zeitpunkt kann sich von der Menge der Aggregator-Knoten zum Zeitpunkt unterscheiden. Dieses Verhalten trifft auch auf die Forwarding-, Sensor- und Idle-Knoten zu. Nur der Zielknoten ist zu jedem Zeitpunkt fest. In diesem Szenario gehen wir von einem Verhältnis des Energieverbrauchs der einzelnen Operationen aus:
- Senden/Empfangen 100 Energieeinheiten
- Berechnungen 10 Energieeinheiten
- Schlafzustand 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. Dafür müssen wir zu Verschlüsselung greifen. Weitere wichtige Sicherheitsaspekte sind die Integrität der Knoten, sprich die Fälschungssicherheit der Knoten, was durch die Authentifizierung der Knoten untereinander gewährleistet werden könnte. Dieses Problem wird an dieser Stelle aber nicht betrachtet, da wir im folgenden mit der fehlenden Fälschungssicherheit zu leben lernen werden.
Die Lösung:
Die einfachste Methode, die Daten auf dem Weg zu verschlüsseln, ist eine Hop-by-Hop-Verschlüsselung. Das heißt, jeder Knoten verschlüsselt die Daten und sendet sie anschließend an den nächsten Knoten. Der entschlüsselt sie wieder, aggregiert die Daten eventuell, verschlüsselt sie wieder und sendet sie weiter. Für ein zuverlässiges Sicherheitskonzept ist es notwendig für jedes Knotenpaar innerhalb des Netzwerks unterschiedliche Schlüssel zu verwenden. Die statistischen Berechnungen lassen sich leicht auf den Knoten realisieren, da alle erhaltenen Daten auf dem Knoten unverschlüsselt sind. Ein großes Problem ist allerdings die Unflexibilität. Wenn ein Forwarding-Knoten ausfällt, lassen sich die Daten, die über diesen Knoten geleitet wurden, nicht über andere Knoten leiten, da dafür die entsprechenden Schlüsselpaare fehlen. Wenn sehr zentrale Knoten in unserem Netzwerk ausfallen, gehen dadurch große Teile des Netzwerkes verloren. Schlüssel für Alternativrouten zu berechnen und auf den einzelnen Knoten vorrätig zu halten, ist aus Kapaziätsgründen keine Lösung. Ein weiterer Nachteil ergibt sich aus der Manipulierbarkeit der Knoten, welche sich aus der fehlenden Fälschungssicherheit ergibt. Wenn ein Angreifer nur einen Knoten unter seine Kontrolle bringen kann, ist der gesamte Netzwerkverkehr der über diesen Knoten läuft, durch die vollständige Entschlüsselung aller empfangenen Daten, kompromittiert. Dies wird besonders kritisch, wenn zentrale Knoten angegriffen werden, da in diesem Fall ein Großteil des Netzwerkverkehrs mitgelauscht werden kann. Ein großes Problem bereitet auch der Energieaufwand für Ver- und Entschlüsselung, der der Reduzierung des Energiebedarfs zuwiderläuft.
Ein andere Möglichkeit die Daten zu verschlüsseln, ist die End-zu-End-Verschlüsselung. Vorteilhaft sind der niedrigere Energieverbrauch, da auf den Forwarding-Knoten nicht entschlüsselt werden müssen, beziehungsweise nicht entschlüsselt werden können. Das Routing kann flexibel gehalten werden, da keine Notwendigkeit besteht, die Daten über bestimmte Knoten zu routen. Jeder sich in der Nähe befindliche Knoten, kann als Forwarding-Knoten fungieren und die verschlüsselten Daten weiterleiten. Wenn ein Knoten kompromittiert wird, stellt dies kein gravierendes Problem dar, da nur die auf dem Knoten gewonnen Daten unverschlüsselt, alle von anderen Knoten empfangenen Daten sind verschlüsselt und können nicht einfach entschlüsselt werden. Das gesamte System bietet eine Gute Verschlüsselung der Daten. Problematisch wird bei steigender Zahl der Knoten die hohe Komplexität des Systems, welche aber beherrschbar bleibt. Doch wie lassen sich in einem Netzwerk mit End-zu-End-Verschlüsselung Berechnungen auf den gesammelten Daten anstellen? Dafür lassen sich sogenannte Privacy-Homomorphismen verwenden. Mit Hilfe derer auf den verschlüsselten Daten Berechnungen angestellt werden können ohne diese in irgendeiner Weise zu entschlüsseln. Daten können mit Hilfe der Privacy-Homomorphismen auch aggregiert werden, um sie gebündelt weiterzuleiten, was unter anderem die Energieeffizienz erhöht. Es sind effiziente sysmetrische Verschlüsselungen bekannt, unter anderem der Privacy-Homomorphismus von Domingo-Ferrer, auf den im folgenden näher eingegangen wird. Wünschenswert wäre eine effiziente asymmetrische Verschlüsselung um die Vorteile einer Public-Private-Key-Verschlüsselung nutzen zu können, doch leider ist bisher keine effizienter Ansatz bekannt.
Doming-Ferrer-PH:
Aufbau:
- die öffentlichen Parameter:
- eine nichtnegative ganze Zahl
- eine große Ganzzahl
sollte vielen kleinen Divisoren haben und gleichzeitig sollten vielen kleinen Ganzzahlen, die kleiner als sind, existieren, die modulo invertiert werden können
- der geheime Schlüssel:
- ist so zu wählen, daß existiert und eine Ganzzahl mit kleinem ist
- Klartext:
- Ciphertext:
Verschlüsselung:
wird zufällig in ein Geheimnis zerlegt, so daß und gilt
Nun wird folgende Berechnung durchgeführt:
Entschlüsselung:
Um zu erhalten, muß die j-te Koordinate durch berechnet werden.
Um zu erhalten, muß berechnet werden.
Die Ciphertext-Operation wird komponentenweise durchgeführt.
Für die Ciphertext-Operation werden alle Terme in kreuzmultipliziert, wobei wir beim Grad von und dem Grad und einen Term mit dem Grad erhalten. Terme mit dem gleichen Grad werden einfach addiert.
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 und deren Schlüssel IDs
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 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