-
Die
vorliegende Erfindung betrifft ein Verfahren zum Schutz von Ortsinformationen
in drahtlosen Kommunikationsnetzwerken, wobei das Kommunikationsnetzwerk
einen Access Point sowie mit dem Access Point assoziierte Knoten
umfasst.
-
Drahtlose
Kommunikationsnetzwerke, insbesondere WLANs (wireless local area
networks), erfreuen sich zunehmender Beliebtheit und werden mehr
und mehr eingesetzt, beispielsweise in Flughäfen und Bahnhöfen, Einkaufszentren,
Cafés,
Büroräumen, Universitäten, etc.
Diese Art der Kommunikationsnetzwerke bietet den Vorteil, dass Knoten ständig „connected" sein können und
demzufolge ständig
Informationen aus dem Netzwerk empfangen bzw. mit anderen Knoten
austauschen können.
Die ständige
Verbindung mit dem Netzwerk bringt jedoch auch Nachteile mit sich,
die insbesondere im Hinblick auf den Verlust von Privatsphäre durchaus
gravierend sein können,
obschon sich die meisten Nutzer dessen kaum bewusst sind. So können beispielsweise
Ortsveränderungen,
die während
einer Verbindung mit dem Kommunikationsnetzwerk vorgenommen werden,
von Dritten nachvollzogen werden.
-
Da
das Problem der sogenannten „location privacy" erst in jüngster Zeit
identifiziert worden ist, gibt es bislang nur wenige Ansätze, die
sich mit seiner Lösung
beschäftigen.
Die meisten der bekannten Lösungen
auf dem Gebiet der Location Privacy operieren auf der Ebene der
Vermittlungsschicht, obwohl viele Probleme bereits in der Sicherungsschicht
(d.h. auf link layer level) auftreten. Ansätze auf Netzwerkebene verhindern
zwar, dass ein Knoten den Ort von Peers über den Link-Rahmen hinaus verfolgen
kann, lassen jedoch das Problem offen, dass zwei Knoten in derselben
Link Layer Domain miteinander kommunizieren. Dieses Problem tritt
besonders deutlich zu Tage in Broadcast-Medien, bei denen ein Angreifer noch
nicht einmal an der Kommunikation partizipieren muss, um alle notwendigen
Informationen zu überwachen.
Verschärft
wird dieses Problem durch die wachsende Größe von Link Layer Domains,
die mit der Verbreitung von WiMax einhergeht. Operatoren nutzen
Netzwerkidentifizierungen zunehmend ausschließlich für Inter-Netzwerk-Domain-Routing, und die Unterscheidung
zwischen einer Link Layer Domain und einer Netzwerkdomain verschwinden immer
stärker.
-
Ein
Angriff auf der Sicherungsebene kann beispielsweise darin bestehen,
dass der Weg eines Geräts/Knoten
von einem Netzwerk zu einem anderen Netzwerk verfolgt wird, indem
sich ein Angreifer in derselben Link Layer Wolke positioniert und
die sich nicht verändernde
MAC-Adresse des Geräts entschlüsselt. Indem
der Angreifer die Adressen der Sicherungsschicht und der Vermittlungsschicht
(z.B. MAC und IP) miteinander verknüpft, wird er zudem in der Lage
sein, jegliche Schutzmechanismen der Location Privacy, die in Schicht
3 implementiert sind, zu umgehen. Ein Prüfen der MAC-Adresse stellt
zudem eine einfache Möglichkeit
dar, sogar ohne visuelle Bestätigung
festzustellen, ob sich ein bestimmtes Gerät (und sein Eigentümer) innerhalb
des Netzwerks bewegen.
-
Einen
weiteren Gesichtspunkt stellt die Behandlung des Ursprungs und des
Ziels von Nachrichten auf Sicherungsebene dar. Mit gegenwärtigen Technologien
ist es für
einen Angreifer leicht, sowohl Traffic-Muster als auch die Richtungen
von Traffic zu bestimmen. Diese Informationen können nach entsprechender Auswertung
genutzt werden, um einen Nutzer genau zu lokalisieren oder – verknüpft mit
weiteren Informationen, die zum Beispiel aus einem periodischen
Prüfen
eines IMAP-Servers resultieren können – die Identität des Nutzers
aufzudecken.
-
Der
vorliegenden Erfindung liegt nunmehr die Aufgabe zugrunde, ein Verfahren
zum Schutz von Ortsinformationen in drahtlosen Kommunikationsnetzwerken
der eingangs genannten Art anzugehen, wonach Pakete sicher, d.h.
ohne einem Dritten im Hinblick auf Location Privacy direkt oder
indirekt relevante Informationen preiszugeben, über das drahtlose Medium übertragen
werden können.
-
Erfindungsgemäß wird die
voranstehende Aufgabe durch ein Verfahren mit den Merkmalen des Patentanspruchs
1 gelöst.
Danach ist ein Verfahren der eingangs genannten Art derart ausgestaltet,
dass zwischen dem Access Point und den Knoten jeweils ein individueller
Broadcast-Link – Kanal – erzeugt wird,
wobei die Kanäle
jeweils durch einen kanalspezifischen Schlüssel definiert werden, und
dass die Header oder Teile der Header von zwischen dem Access Point
und den Knoten zu sendenden Paketen vor ihrer Übertragung mit dem jeweiligen
Schlüssel verschlüsselt werden.
-
In
erfindungsgemäßer Weise
ist zunächst
erkannt worden, dass ein effektiver Schutz von Ortsinformationen
in drahtlosen Kommunikationsnetzwerken nur dann gegeben ist, wenn
entsprechende Mechanismen bereits in Schicht 2, d.h. der Sicherungsschicht
im OSI-Modell, ansetzen. In einem nächsten Schritt ist sodann erkannt
worden, dass sich ein effektiver Schutz generieren lässt, indem
zwischen dem Access Point und den Knoten jeweils ein individueller
Broadcast-Link – im
Folgenden als Kanal bezeichnet – erzeugt
wird, wobei die Kanäle
jeweils durch einen kanalspezifischen Schlüssel definiert werden. Durch
paarweise geheime Schlüssel,
die jeweils nur dem Access Point und dem jeweiligen Knoten bekannt
sind, können
Daten sicher über
das drahtlose Medium transportiert werden. Um im Hinblick auf die
Location Privacy sensitive Informationen vor Angriffen Dritter zu
schützen,
werden dabei die kanalspezifischen Schlüssel in erfindungsgemäßer Weise
verwendet, um die Header oder Teile der Header von zwischen dem
Access Point und den Knoten zu sendenden Paketen vor ihrem Transport
zu verschlüsseln.
Diese Verschlüsselung
kann zusammen mit der Verschlüsselung
der Payload, d.h. der eigentlichen Nutzinformation der Pakete durchgeführt werden.
Eine Trennung der Verschlüsselung
von Headerinformationen einerseits und Payload andererseits ist
ebenfalls möglich,
wobei dann Headerinformationen und Nutzinformationen unabhängig voneinander verschlüsselt werden.
-
Im
Rahmen einer konkreten Ausführungsform
ist vorgesehen, dass Teile von zu sendenden Paketen auf unterschiedliche
Weise verschlüsselt werden.
So können
bspw. Teile des Headers, die besonders sensitive Informationen umfassen,
mit einer besonders sicheren Chiffre verschlüsselt werden, wohingegen weniger
sensitive Informationen mit einer schwächeren Chiffre verschlüsselt oder
sogar unverschlüsselt übertragen
werden können.
Auf diese Weise lässt
sich der für
die Verschlüsselung
benötigten
Zeit- und Rechenaufwand optimieren.
-
Um
Variabilität
in die Chiffretexte zu bringen, wird in einer besonders bevorzugten
Ausführungsform
ein Initialisierungsvektor verwendet, welcher den zu sendenden Paketen
vor ihrem Transport über den
drahtlosen Kanal hinzugefügt
wird. Die so präparierten
Pakete werden mittels des kanalspezifischen Schlüssels verschlüsselt, wobei
die Verschlüsslung derart
durchgeführt
wird, dass das Ergebnis der Verschlüsselung von dem jeweils verwendeten
Initialisierungsvektor abhängt.
Mit anderen Worten resultiert die Verschlüsselung desselben Klartextes
in Abhängigkeit
des Wertes des verwendeten Initialisierungsvektors in unterschiedlichen
Chiffretexten. Der Initialisierungsvektor wird nach jeder gesendeten Nachricht
geändert.
Im Hinblick bspw. auf eine MAC-Adresse bedeutet dies, dass zwei Pakete,
die von demselben Knoten, d.h. mit der gleichen MAC-Adresse, gesendet
und mit demselben Schlüssel
verschlüsselt
wurden, für
einen Angreifer unterschiedlich aussehen. Ein Angreifer hat demzufolge keine
Möglichkeit,
die beiden Pakete dem gleichen Knoten zuzuordnen.
-
In
besonders vorteilhafter Weise wird der Initialisierungsvektor an
beiden Endpunkten der Paketübertragung,
d.h. am Access Point und am jeweiligen Knoten, synchronisiert. Durch
diese Maßnahme
ist es möglich,
dass sowohl der Access Point als auch der jeweilige Knoten unter
Verwendung des jeweils nächsten
Initialisierungsvektors den Chiffretext für die erwarteten Klartexte
im Voraus berechnen können.
Somit ist eine besonders schnelle Bestimmung der Ursprungs- und/oder
Zieladresse der Pakete möglich.
-
Da
es sich bei der Synchronisation beider Endpunkte normalerweise um
eine teure Operation handelt, ist es von besonderem Vorteil als
Initialisierungsvektor eine einfache Sequenznummer zu verwenden.
Die Sequenznummer kann dabei so festgelegt werden, dass sie für jeden
Kanal eindeutig ist. Im Hinblick auf eine besonders hohe Sicherheit
kann es sich bei der Sequenznummer um eine Zufallszahl handeln,
die nach jeder über
den Kanal gesendeten Nachricht zufällig neu bestimmt wird. Unter
Berücksichtigung
der Tatsache, dass Pakete auf dem drahtlosen Link verloren gehen
können,
was unmittelbaren Einfluss auf die Synchronisation haben kann, ist es
von besonderem Vorteil, wenn die Sequenznummer als Zähler ausgeführt ist,
der nach jeder gesendeten Nachricht um den Wert 1 inkrementiert
wird oder in einer anderen eindeutigen Art und Weise erneuert wird.
-
Im
Hinblick auf eine einfache Implementierung kann vorgesehen sein,
dass die jeweils aktuelle Sequenznummer an das zu sendende Paket
angehängt
wird. Im Konkreten kann vorgesehen sein, dass die Sequenznummer
in Form eines Transport-Headers
angehängt
wird. Zusätzlich
zu der Sequenznummer kann der Transport-Header weitere Informationen umfassen.
So kann insbesondere ein Feld mit der Länge des ursprünglichen
(d.h. unverschlüsselten)
Pakets, ein Feld mit der Zieladresse sowie gegebenenfalls Werte
von aus dem ursprünglichen
Paket entfernten und für
den Transport über den
Kanal zwingend erforderlichen Klartextfeldern vorgesehen sein.
-
Im
Rahmen einer konkreten Ausführungsform
kann vorgesehen sein, dass zur Verschlüsselung eine Blockverschlüsselung
eingesetzt wird. Da die Verschlüsselung
für jedes
Paket und zudem in einer zeitkritischen Umgebung eingesetzt wird,
sollte eine sehr effiziente Verschlüsselung eingesetzt werden.
Aufgrund ihrer kleinen Blockgröße und ihrem hocheffizienten
Arbeitszyklus bietet sich hier insbesondere der Einsatz einer RC5-Verschlüsselung
an. Diese könnte
insbesondere im CBC (Cipher Block Chaining) Modus arbeiten. Falls
die Größe des Initialisierungsvektors
nicht mit der Blockgröße der verwendeten
Blockverschlüsselung übereinstimmt, kann
die Größe des Initialisierungsvektors
durch Padding an die Blockgröße angepasst
werden.
-
Alternativ
kann zur Verschlüsselung
auch eine Stromverschlüsselung
eingesetzt werden, wobei diese für
jedes Paket mit einem bekannten Vektor reinitialisiert werden müsste.
-
In
jedem Fall werden die zu sendenden Pakete jeweils von hinten nach
vorne verschlüsselt
und entschlüsselt.
Auf diese Weise ist sichergestellt, dass bei einer Implementierung,
bei der die Sequenznummer das Paket terminiert, alle Teile des Pakets
bei ihrer Verschlüsselung
von dem Wert der Sequenznummer beeinflusst werden.
-
Nach
Empfang eines Pakets seitens eines Knotens kann vorgesehen sein,
dass der Knoten zunächst
die Sequenznummer entschlüsselt.
In einem nächsten
Schritt wird der Knoten unter Verwendung der entschlüsselten
Sequenznummer die MAC-Adresse,
an die das Paket gerichtet ist, entschlüsseln. Stimmt die entschlüsselte Ziel-MAC-Adresse
mit der eigenen MAC-Adresse des Knotens überein, so weiß der Knoten,
dass das Paket für
ihn bestimmt ist. Anderenfalls kann der Knoten das Paket sofort
verwerfen, ohne dass weitere Entschlüsselungsschritte notwendig
wären.
-
Auf
Seiten des Access Points kann vorgesehen sein, dass dieser eine
Tabelle speichert, in denen die Schlüssel der mit dem Access Point
assoziierten Knoten abgelegt sind. In dieser gespeicherten Tabelle
kann den Schlüsseln
jeweils die vorab berechnete verschlüsselte Adresse der assoziierten
Knoten zugeordnet sein. Diese Maßnahme liefert erhebliche Einsparungen
an Zeit- und Rechenaufwand, da der Access Point beim Empfang eines
Pakets zur Ermittlung des Absenders des Pakets lediglich die verschlüsselt gespeicherten
Adressen in der Tabelle durchsuchen muss.
-
Für den Fall,
dass die Synchronisation zwischen dem Access Point und einem Knoten
verloren geht, bspw. aufgrund eines Paketverlustes, kann vorgesehen
sein, dass der Access Point nacheinander die bekannten Schlüssel verwendet,
um die Sequenznummer eines Pakets zu entschlüsseln und unter Verwendung
der entschlüsselten
Sequenznummer die Quell-MAC-Adresse des Pakets zu entschlüsseln. Sobald
der Access Point den passenden Schlüssel gefunden hat, kann der
Access Point die Sequenznummer aktualisieren und damit die Synchronisation
wieder herstellen. Hat der Access Point hingegen alle bekannten
Schlüssel
erfolglos ausprobiert, so bedeutet dies, dass mit dem Absendeknoten des
entsprechenden Pakets noch kein Schlüssel vereinbart worden ist.
In diesem Fall kann vorgesehen sein, dass das Paket fallengelassen
wird oder dass der Access Point ein Schlüsselaustauschprotokoll initiiert.
-
In
besonders vorteilhafter Weise kann das Schlüsselaustauschprotokoll auf
der Verbreitung und der Lösung
eines Puzzles basieren, wobei es sich konkret um das sogenannte
Merkte-Puzzle handeln könnte.
Dabei generiert der Access Point zunächst eine Vielzahl von Datenpaaren,
die jeweils einen Schlüssel
kj sowie eine Identifizierung rj umfassen. Die
Identifizierungen rj werden jeweils mit
dem zugehörigen
Schlüssel
kj verschlüsselt, d.h. der Access Point
berechnet Ekj(rj)
und speichert die Paare (kj, Ekj(rj)) in einer Tabelle. Die so generierten
Chiffretexte sendet der Access Point über den drahtlosen Link.
-
Ein
Knoten, der einen Schlüssel
mit dem Access Point etablieren möchte, wählt aus der Vielzahl der Chiffretexte
zufällig
einen Chiffretext aus und entschlüsselt diesen mittels eines
Brute-Force Angriffs. Der dabei gefundene Schlüssel k dient dem Knoten sodann
als Basis zur Initiierung eines Diffie-Hellmann-Schlüsselaustauschs
mit dem Access Point. Im Konkreten kann der Knoten dabei eine Nachricht an
den Access Point senden, die zum einen den mit dem gefundenen Schlüssel verschlüsselten öffentlichen
Parameter ga umfasst. In vorteilhafter Weise könnte die
Nachricht des Weiteren einen Transport-Header umfassen, der – wie oben
be schrieben – ebenfalls
eine Sequenznummer umfasst. Als Sequenznummer kann der Wert der
Identifizierung des jeweils ausgewählten Puzzles gewählt werden.
-
In
vorteilhafter Weise werden die von dem Access Point im Rahmen des
Puzzles versendeten Datenpaare mit einer öffentlichen Kennzeichnung versehen,
dass sie ein Puzzle umfassen, so dass Knoten, die noch keinen Schlüssel mit
dem Access Point etabliert haben, über die Möglichkeit, nunmehr einen Schlüssel etablieren
zu können,
informiert werden.
-
Um
zu vermeiden, dass im Rahmen des Schlüsselaustauschprotokolls zusätzliche
Nachrichten gesendet werden müssen,
kann vorgesehen sein, dass die Puzzle zusammen mit Beacons gesendet
werden, welche der Access Point ohnehin periodisch, gewöhnlich in
Intervallen von 100 ms, sendet.
-
Im
Hinblick auf ein besonders hohes Maß an Sicherheit kann vorgesehen
sein, dass ein oder mehrere der beschriebenen Mechanismen mit Verfahren zum
Schutz von Ortsinformationen kombiniert werden, welche auf der Vermittlungsschicht
arbeiten.
-
Es
gibt nun verschiedene Möglichkeiten,
die Lehre der vorliegenden Erfindung in vorteilhafter Weise auszugestalten
und weiterzubilden. Dazu ist einerseits auf die dem Patentanspruch
1 nachgeordneten Patentansprüche
und andererseits auf die nachfolgende Erläuterung bevorzugter Ausführungsbeispiele
der Erfindung anhand der Zeichnung zu verweisen. In Verbindung mit
der Erläuterung
der bevorzugten Ausführungsbeispiele
der Erfindung anhand der Zeichnung werden auch im Allgemeinen bevorzugte
Ausgestaltungen und Weiterbildungen der Lehre erläutert. In
der Zeichnung zeigt
-
1 in
einer schematischen Darstellung den allgemeinen Aufbau eines Kommunikationsnetzwerks
sowie die Verwendung von kanalspezifischen Schlüsseln und Sequenznummern gemäß einem ersten
Ausführungsbeispiel
des erfindungsgemäßen Verfahrens,
-
2 in
einer schematischen Darstellung ein Schlüsselaustauschprotokoll basierend
auf dem Merkte-Puzzle und
-
3 in
einer schematischen Darstellung einen gemäß einem Ausführungsbeispiel
des erfindungsgemäßen Verfahrens
präparierten
802.11 Header.
-
1 zeigt – schematisch – den prinzipiellen Aufbau
eines Kommunikationsnetzwerks, in dem das erfindungsgemäße Verfahren
zur Anwendung kommt. Das Netzwerk umfasst einen Access Point AP,
an dem insgesamt n Knoten N1, ..., Nn assoziiert sind. Das Broadcast-Medium ist
durch die mit Bezugszeichen 1 gekennzeichnete Wolke symbolisiert.
-
Erfindungsgemäß ist zwischen
dem Access Point AP und den einzelnen Knoten Ni jeweils
ein individueller Broadcast-Link ausgebildet, der im Folgenden als
Kanal Ci bezeichnet wird. Jeder Kanal hat zwei
Endpunkte, nämlich
die Adresse des jeweiligen Knoten Ni – MACi – und
die Adresse des AP – MACAP – und
wird durch einen paarweise geheimen, kanalspezifischen Schlüssel Ki definiert. Obwohl die Kommunikation nur
zwischen dem jeweiligen Knoten Ni und dem
AP auftritt, können
alle Knoten Ni alle Nachricht hören, die über irgendeinen
der Kanäle
Ci gesendet werden, da es sich um ein Funkmedium
handelt. Zum Schutz der Ortsinformationen der Knoten Ni im
Rahmen ihrer Kommunikation mit dem Access Point AP werden die Header
oder Teile der Header von zu sendenden Paketen vor ihrem Transport über das
drahtlose Medium mit dem jeweiligen Schlüssel Ki verschlüsselt.
-
Es
sei angemerkt, dass das erfindungsgemäße Verfahren prinzipiell auch
in einem Ad Hoc Szenario angewendet werden kann, bei dem pro Knoten
mehrere Kanäle
zur Verfügung
stehen.
-
In
dem konkret dargestellten Ausführungsbeispiel
wird die Verschlüsselung
unter Verwendung eines synchronisierten Initialisierungsvektors
iv durchgeführt.
Mittels eines derartigen Vektors ist es möglich, die Verschlüsselung
derart vorzunehmen, dass die Verschlüsselung desselben Klartextes
in Abhängigkeit
von dem Wert von iv in unterschiedlichen Chiffretexten resultiert.
Da iv an beiden Endpunkten der Kommunikation synchronisiert ist,
können
beide Endpunkte unter Verwendung des nächsten iv den Chiffretext für erwartete
Klartexte im Voraus berechnen. Durch die Anwendung dieses Mechanismus
auf die in den gesendeten Paketen verschlüsselte MAC-Adresse ist eine äußerst schnelle Bestimmung
des Ursprungs und/oder des Ziels der Pakete realisiert.
-
Ein
Problem liegt in der Synchronisation beider Endpunkte, was eine
teure Operation darstellt. Aus diesem Grund ist der Initialisierungsvektor
in dem dargestellten Ausführungsbeispiel
als Sequenznummer si ausgeführt, die
innerhalb eines Kanals Ci von beiden Endpunkten
eindeutig bestimmbar ist. Da Pakete auf dem drahtlosen Link und
damit auch die Synchronisation verloren gehen können, wird ein Mechanismus
zur Wiederherstellung der Synchronisation eingesetzt, der weiter
unten im Detail beschrieben wird. Dieser Mechanismus erlaubt es
zudem, dass sowohl die Knoten Ni als auch
der AP den Initialisierungsvektor iv zu jedem Zeitpunkt während der
Kommunikation neu ansetzen.
-
An
jede zu sendende Nachricht, d.h. sowohl an Nachrichten von einem
der Knoten Ni als auch an Nachrichten vom
AP, wird vor der Verschlüsselung der
aktuelle Wert von si angehängt. Die
Knoten Ni werden beim Empfang eines Pakets
stets versuchen, die Nachricht zu entschlüsseln und die entschlüsselte Adresse
mit ihrer eigenen Adresse vergleichen. Der Access Point AP hingegen
wird zunächst
das verschlüsselte
Adressfeld einer empfangenen Nachricht mit den vorab berechneten
Werten vergleichen, wobei er für
einen schnellen Vergleich eine Tabelle wie in 1 gezeigt
speichert. Für
den Fall, dass der Access Point AP keine Übereinstimmung herstellen kann,
wird er mit allen bekannten Schlüsseln
Ki zunächst
den Wert der Sequenznummer si entschlüsseln und
diesen Wert verwenden, um dass Adressfeld zu entschlüsseln. Die
Adresse, die mit dem jeweils getesteten Schlüssel Ki korrespondiert,
kann zur Überprüfung herangezogen
werden, um zu bestimmen, ob die Entschlüsselung erfolgreich war. Führt auch
dieser Mechanismus zu keinem Ergebnis, so wird ein Schlüsselaustauschprotokoll
initiiert, das weiter unten im Detail beschrieben wird.
-
Bei
dem beschriebenen Ausführungsbeispiel werden
Pakete stets vom Ende her zum Anfang hin verschlüsselt und entschlüsselt. Auf
diese Weise beeinflusst der Wert von si das
gesamte Paket. Darüber hinaus
wird das Adressfeld des Pakets unabhängig von dem Rest des Pakets
verschlüsselt
und entschlüsselt,
indem der Wert von si – gegebenenfalls durch Hinzufügen von
Padding-Daten an die Größe einer
verwendeten Blockchiffre angepasst – vorangestellt wird, so dass
die ersten verschlüsselten
Blöcke ausschließlich mit
si korrespondieren und entfernt werden,
bevor die Adresse wieder in das Paket eingepasst wird.
-
Durch
die Anwendung des beschriebenen Verfahrens werden alle Punkt-zu-Punkt
Pakete innerhalb des Netzwerks ununterscheidbar. Ein Angreifer wird
dementsprechend nicht in der Lage sein, zwei unterschiedliche Pakete
unter Verwendung von Link layer Informationen miteinander zu verknüpfen.
-
Bei
der Verschlüsselung
ist es wahrscheinlich, dass sich die resultierende Chiffre-Nachricht von der
Klartext-Nachricht nicht nur in ihrem Inhalt sondern auch hinsichtlich
ihrer Größe unterscheidet.
Aus diesem Grund wird die Größe der ursprünglichen Nachricht
angehängt,
um in der Lage zu sein, zwischen dem aktuellen Inhalt des ursprünglichen
Pakets und den Padding-Daten zu unterscheiden.
-
In
Abhängigkeit
von der Technologie, bei der das Verfahren angewendet wird, kann
es notwendig sein, aus dem ursprünglichen
Paket entfernte Informationen ebenfalls zu übertragen, so dass diese wieder
eingefügt
werden können,
bevor das Paket in höhere
Schichten transportiert wird. Zu diesem Zweck wird in dem in 1 dargestellten
Ausführungsbeispiel
ein Transport-Header verwendet, der alle notwendigen Informationen
umfasst, und der vor der Verschlüsselung
an alle Pakete angehängt
wird. Im Konkreten umfasst dieser Transport-Header diejenigen Werte,
die aus zwingend notwendigen Klartextfeldern entfernt wurden, sowie
Informationen hinsichtlich der ursprünglichen Länge des Pakets. Der Transport-Header
wird mit dem Wert der Sequenznummer si abgeschlossen.
Da die Verschlüsselung und
die Entschlüsselung – wie oben
bereits erwähnt – von hinten
nach vorne durchgeführt
wird, ist sichergestellt, dass die durch Veränderung von si verursachten
Variationen in der Chiffrierung die gesamte Paketverschlüsselung
erfassen.
-
Im
Folgenden wird der Sendevorgang von Paketen näher beschrieben. Wenn ein Knoten
Ni oder der Access Point AP ein Paket senden
wollen, müssen
sie zunächst
den richtigen Schlüssel
festlegen. Im Falle der Knoten ist dies trivial, da den Knoten jeweils
nur ein Schlüssel
zur Verfügung
steht. Der Access Point kann die Adresse der Knoten Ni verwenden,
um festzulegen, welchen Schlüssel
er verwenden muss.
-
Der
Knoten hängt
sodann den oben beschriebenen Transport-Header an das Paket an und verschlüsselt das
Paket vom Ende zum Anfang mit Ausnahme von zwingend erforderlichen
Klartextfeldern sowie der Adresse, die verwendet wird, um den Knoten
zu identifizieren. Die Klartextfelder, die zwingend von allen Knoten
lesbar sein müssen,
müssen von
Fall zu Fall behandelt werden, und, wenn nötig, müssen die Originalwerte wie
oben beschrieben zu dem Transport-Header hinzugefügt werden.
Da auch die wirkliche Länge
des Pakets in den Transport-Header eingebettet ist, können zufällig erzeugte Padding-Daten
hinzugefügt
werden, um so eine Traffic-Analyse für einen Angreifer zu erschweren.
-
Die
Adresse des Knotens Ni – MACi– wird unabhängig verschlüsselt, da
sie auf der anderen Seite, d.h. beim AP, im Voraus berechnet wird.
Der Knoten verschlüsselt
MACi, indem er EKi(si||Padding||MACi) anwendet.
Durch das Padding wird erreicht, dass si an
die Blockgröße der verwendeten
Chiffrierung angepasst wird. Nach der Verschlüsselung wird der verschlüsselte Teil
von si abgeschnitten, und nur die verschlüsselte Adresse
MACi wird zu dem Paket hinzugefügt.
-
Es
sei angemerkt, dass es sich bei der verschlüsselten Adresse um die Herkunftsadresse
oder die Zieladresse des Pakets handeln kann. In den meisten Fällen wird
der AP den beschriebenen Mechanismus auf die Zieladresse anwenden,
wohingegen die Knoten den Mechanismus in der Regel auf die Herkunftsadresse
anwenden werden. Der Grund hierfür
ist, dass die Knoten verifizieren müssen, ob ein Paket für sie bestimmt
ist, während
der AP verifizieren muss, wer das Paket, das er empfangen hat, ausgesendet
hat.
-
Schließlich aktualisiert
der Knoten den Wert von si, wobei die Aktualisierung
hier durch Hinzufügen
einer Einheit realisiert ist. In einer alternativen Ausführungsform
ist es möglich,
zur Erhöhung
der Sicherheit den Wert zufällig
zu verändern.
-
In
Folgenden wird der Empfang eines Pakets beschrieben, wobei in diesen
Zusammenhang zwischen Knoten und Access Point zu unterscheiden ist.
-
Wenn
ein Knoten ein Paket empfängt,
wird er am Paketende mit der Entschlüsselung anfangen und auf diese
Weise si erhalten. In einem nächsten Schritt
wird er den Wert si verwenden, um MACm zu entschlüsseln, indem er zunächst den
ver schlüsselten
Wert si mit den Padding-Daten verknüpft und
folgende Entschlüsselungsoperation
ausführt: DKi(EKi(Si||padding||)EKi(MACi)). Dieser
Schritt ist notwendig, da die Adresse MACm unabhängig verschlüsselt worden
ist, wobei si als ein Vektor für die Chiffrierung
verwendet worden ist. Schließlich
kann der Knoten die gefundene Adresse MACm mit
seiner eigenen Adresse MACi vergleichen
und prüfen,
ob das Paket für
ihn bestimmt ist. Sobald die Originalwerte für zwingend notwendige Klartextfelder
und die Paketlänge
durch die Informationen aus dem Transport-Header ersetzt sind, kann
das Paket in höhere Schichten
transportiert werden. Schließlich
verwendet der Knoten den Wert si um seine
eigene interne Sequenznummer zu aktualisieren.
-
Ähnlich wie
im Fall der Knoten sucht auch der AP wenn er ein Paket empfängt, nach
dem richtigen Schlüssel.
Zur Optimierung dieses Vorgangs berechnet der AP vorab verschlüsselte MAC-Adressen von
assoziierten Knoten und speichert diese in einer Tabelle ab, wie
sie in 1 gezeigt ist. Mittels einfachen Durchsuchens
der Tabelle kann der AP folglich versuchen, die in dem Paket vorhandene
verschlüsselte
MACm zu finden. Scheitert dieser Prozess
aufgrund eines Verlustes der Synchronisation, kann es sein, dass
der AP alle ihm bekannten Schlüssel
in seiner Tabelle wie oben beschrieben prüfen muss. Sobald der Schlüssel gefunden
ist, fährt
der AP mit der Entschlüsselung
des Pakets fort, wie dies im Zusammenhang mit dem Empfang von Paketen
durch die Knoten oben beschrieben worden ist. Der AP wird zudem
den Wert sm aus dem Paket verwenden, um die
gespeicherte Tabelle für
das nächste
Paket (sm+1) zu aktualisieren und EKi(sm||padding||MACi) zu berechnen.
-
Sollte
keiner der bekannten Schlüssel
zu einem Ergebnis führen,
wechselt das Verfahren in die Phase eines Schlüsselaustausches. Das Schlüsselaustauschverfahren
basiert auf dem sogenannten Merkel-Puzzle und ist in 2 im
Detail dargestellt.
-
In
Schritt 1 generiert der AP eine Vielzahl unterschiedlicher Paare
(kj, rj). Die kj werden später als die Lösung der
Puzzles dienen, während
die Werte rj sowohl als Identifizierungen
als auch als ursprüngliche
Sequenznummern dienen werden. Als nächstes nutzt der AP eine Verschlüsselung,
um die Tupel (< padding >||rj)
mit dem Schlüssel
kj zu verschlüsseln, d.h. der AP berechnet
Ekj(padding||rj).
Als Padding dient in diesem Zusammenhang ein String mit einer festen
Bitlänge,
die größer als
|kj| ist. Für die Verschlüsselung
wird eine Stromchiffre oder eine Blockchiffre verwendet, die eine
flexible Anpassung an kleine Blockgrößen erlaubt, wie zum Beispiel
die Blockchiffre RC5.
-
Die
Chiffretexte werden von dem AP gesendet und können von allen Knoten empfangen
werden, so insbesondere von denjenigen Knoten, die noch keinen Schlüssel mit
dem AP teilen. Obschon in 2 nicht
gezeigt, sind diese Pakete öffentlich
gekennzeichnet, so dass die Knoten wissen, dass sie ein Puzzle enthalten.
Die Paare (kj, Ekj(rj)) werden – ggf. mit notwendigen Padding-Daten
versehen – von dem
AP in einer Tabelle gespeichert.
-
Die
Zeitdauer, während
der ein Puzzle am AP verfügbar
ist, hängt
von dem Zeitfenster ab, das einem Knoten zur Verfügung gestellt
wird, um sich an dem AP zu registrieren. Es sollte geringfügig länger sein
als das Zeitfenster, das ein Knoten benötigt, um ein Puzzle auszuwählen und
aufzubrechen.
-
Ein
Knoten N, der einen Schlüssel
mit dem AP etablieren möchte,
empfängt
während
einer bestimmten vorgegebenen Zeitdauer alle Puzzle vom AP und wählt während dieser
Zeit zufällig
einen der Chiffretexte aus und startet eine Brute-Force Attacke. Das
bedeutet konkret, dass der Knoten versucht, die Daten mit jedem
möglichen
Wert von k zu entschlüsseln,
bis der erste Teil des Ergebnisses mit dem Padding übereinstimmt.
Wenn das Padding lang genug ist, kann man davon ausgehen, dass diese
Bedingung nur für
den ursprünglich
von dem AP gewählten Wert
zutrifft. Im Prinzip kann der Chiffretext als ein Puzzle gesehen
werden, wobei der Schlüssel
dessen Lösung
ist.
-
Sobald
N den Schlüssel
k herausgefunden hat, initiiert der Knoten in Schritt 3 einen verschlüsselten
Diffi-Hellmann-Schlüsselaustausch
(DH) wobei der Knoten die Struktur des oben beschriebenen, verschlüsselten
Transport-Headers verwendet. Genauer gesagt sendet der Knoten eine
Nachricht an den AP, die den öffentlichen
Parameter ga sowie einen Transport-Header
umfasst, wobei die Sequenznummer in dem Transport-Header der Identifizierung r
entspricht. Da die Struktur des Pakets der Struktur der Pakete aus
der Transportphase entspricht, versucht der AP, den oben beschriebenen
Algorithmus durchzuführen.
Falls der AP den Schlüssel
in der Liste von Schlüsseln
aktiver Kommunikationen nicht finden kann, schaut er den verschlüsselten
Wert Ek(r) in seiner Puzzle-Tabelle nach,
um den verwendeten Schlüssel
herauszufinden. Danach entschlüsselt
der AP den Rest des Pakets, um sowohl an ga als
auch an die MAC-Adresse von N zu gelangen. Der AP verschlüsselt sodann
seinen Teil gb des Diffie-Hellmann-Schlüsselaustausches
entsprechend dem Format des Transport-Headers unter Verwendung von
k und sendet seinen Teil an N. Darüber hinaus berechnet der AP
den Schlüssel
K := (gb)a und fügt für den Knoten
N den Schlüssel
K zu der Schlüsselliste
hinzu. Des Weiteren setzt der AP einen Zeitgeber, der verwendet
wird, um diesen Eintrag wieder zu löschen, falls der Schlüsselaustausch
nicht erfolgreich sein sollte. Der AP setzt zudem si gleich
r + 1 und aktualisiert den Wert für die verschlüsselte MAC-Adresse
von N, um zukünftige
Pakete einfach handhaben zu können.
-
In
Schritt 4 verwendet der Knoten N den Schlüssel k, um das empfangene Paket
zu entschlüsseln.
Der Knoten kann anhand der MAC-Adresse die Validität des Pakets
prüfen.
Sobald der Knoten das richtige Paket empfangen und entschlüsselt hat, kennt
er gb und kann selbst K := (ga)b Von diesem Zeitpunkt an können N und
AP den Schlüssel
K für zukünftige verschlüsselte Kommunikationen
verwenden.
-
Wenn
der AP schließlich
in Schritt 5 eine Bestätigung
empfängt,
dass die Prozedur abgeschlossen ist, entfernt er den in Schritt
3 eingefügten
Zeitgeber und geht davon aus, dass die Registrierung erfolgreich
vollzogen worden ist. Die Handhabung von zukünftigen Paketen kann sodann
entsprechend dem oben beschriebenen Verfahren erfolgen.
-
Das
erfindungsgemäße Verfahren
kann unmittelbar innerhalb des IEEE 802.11 Standards realisiert
werden. Allen 802.11 Rahmen ist ein generisches Format gemeinsam,
das sich aus dem MAC-Header, dem Frame Body und der Frame Check
Sequence (FSC) zusammensetzt. Der Aufbau eines typischen 802.11
Headers ist in 3 dargestellt. Zwischen dem
Frame Body und der FSC wird der oben beschriebene Transport-Header
eingefügt. Der
Transport-Header hat zwei Aufgaben, nämlich zum einen eine Information
bezüglich
der korrekten Länge
des entschlüsselten
Pakets zu tragen und ein Problem hinsichtlich derjenigen Pakete
zu lösen,
die eine AID umfassen. Die zweite Aufgabe besteht darin, den Wert
von si zu transportieren, der verwendet wird,
um die Verschlüsselung
der Pakete zu initiieren.
-
3 zeigt
die Felder und die hinzugefügten Optionen
in einem standardisierten 802.11 Paket Header. Mit Ausnahme des
Durstion-Feldes sind alle Felder verschlüsselt, was durch die helle
Unterlegung der Felder angedeutet ist. Das dunkel unterlegte Adressfeld – Adress
2 – ist
unabhängig
verschlüsselt
worden. Wenn ein Knoten Ni ein Paket sendet, wird
dieses Feld der Quelladresse entsprechen, im Falle eines von dem
AP gesendeten Pakets wird hingegen die Zieladresse auf diese Weise
genutzt.
-
Im
Ergebnis erhält
man Pakete, die untereinander nicht unterscheidbar sind. Ein Angreifer
kann demzufolge weder den Ursprung noch das Ziel eines Pakets herausfinden.
Ebenso wird es ihm nicht möglich
sein, zwei Punkt-zu-Punkt Pakete durch bloße Analyse des Traffics miteinander
zu verknüpfen.
-
Abschließend sei
darauf hingewiesen, dass die voranstehend erörterten Ausführungsbeispiele
lediglich der beispielhaften Erörterung
der beanspruchten Lehre dienen, diese jedoch nicht auf das Ausführungsbeispiel
einschränken.