summaryrefslogtreecommitdiffstats
path: root/ausarbeitung/Grundlagen.tex
blob: f193e6977b55412733082b7e43d8fb141ddd4f49 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
\section{Grundlagen}

\textit{Location privacy} wird von Duckham und Kulik durch ``\textit{... a special type of information
privacy which concerns the claim of individuals to determine for themselves when, how, and to what extent location
information about them is communicated to others.}'' \citep{privacy} definiert. Ein Anwender sollte also in der Lage sein den
Zeitpunkt, wie und in welchem Umfang Positionsdaten über sie verbreitet werden, selbst festzulegen. Es stellt sich die
Frage, wie der Benutzer in der Lage ist dieser drei Punkte zu kontrollieren. Dabei soll er den
Zeitpunkt frei bestimmen könnnen, wann und auf welche Art und Weiße er die Daten versendet und wieviele andere Benutzer oder
Institutionen darauf Zugriff haben.
Im ersten Teil wird der momentane Stand von \textit{location privacy} Software auf mobilen
Geräten aufgezeigt. Des weiteren werden die Anforderungen, die an ein Programm dieser Art gestellt werden, analysiert und mögliche
Ziele einer solchen Software beschrieben.

\subsection{Aktueller Stand}

Da so gut wie alle aktuellen Smartphones mit dem \textit{Global Positioning System (GPS)} ausgestattet sind, existieren für die
verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten. So
existieren Anwendungen um sich Routen erstellen zu lassen, die eigene Position zu bestimmen oder um \textit{Geocaching}
\citep{geocaching} zu betreiben.\newline
Zum Beispiel bietet \textit{Google} den Dienst \textit{Google Latitude} \citep{Latitude} an. Bei diesem Programm
ist es möglich die Position von Freunden, die diesen Dienst auch nutzen, auf einer Karte anzeigen zu lassen. Es besteht hierbei
die Möglichkeit die eigene Position per \textit{GPS} oder mit Hilfe von Daten der \textit{GSM-Funkzelle} zu bestimmen.\newline
Vergleicht man \textit{Google Latitude} mit der Defintion von \textit{location privacy} durch Duckham und Kulik, so stellt man
fest dass der Anwender hier nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann. Dies
geschieht genau dann, wenn sie das Programm starten. Nutzen sie das Programm, so werden die Daten an \textit{Google} gesendet.
Die einzige Einsicht die der Benutzer in diesen Vorgang hat, ist die dass er befreundete Teilnehmer auf seinem Display und diese
ihn auf ihrem Display sehen. Er hat also keinerlei Kontrolle darüber, was mit den Daten nach dem Absenden passiert, da diese
an \textit{Google} gesendet werden, wo sie dann durch ein interenes, ihm unbekanntes System an die anderen Nutzern weitergereicht
werden. Wie dieses von statten geht, weiß der Anwender nicht. Der Anwender kann also weder festlegen, wie noch in
welchem Umfang er die Daten versenden möchte, da er keinen Einblick in diesen Teil der Strukturen von \textit{Google} hat.
\newline
An genau diesem Punkt schliesst die Arbeit \textit{Spontaneous Privacy-Aware Location Sharing} \citep{SPALS} an. Hier werden die
Daten über ein offenes und frei zugängliches System versendet. Da, dass zum Versenden genutzte, System offen zugänglich ist,
müssen diese Daten zusätzlich verschlüsselt werden, da ansonsten jederman Zugang zu ihnen hätte. \newline 
Zum Verschleiern der Position nutzen Kido u.a. \citep{dummy} Datensätze die falsche Positionsangaben beinhalten. Diese werden
an einen Dienst gesandt, welcher auf alle antwortet. Nur der Client weiß, welche der empfangenen Daten auf der
eigentlichen Position basieren. Mit dieser Lösung ist es zwar möglich Positionsdaten zu verschleiern, allerdings wird
hiermit nicht das Problem gelöst, dass der Nutzer die Kontrolle darüber hat, wie seine Daten versendet und genutzt werden.\newline
Einen anderer Ansatz verfolgen Gruteser und Grundwald \citep{kprivacy}. Sie versuchen mit Hilfe von \textit{k-anonymity}
\citep{kanonymity} die Position zu verschleiern. Man versteht unter \textit{k-anonymity}, dass in
einer Menge von $k$ Personen ein Teilnehmer nicht von den anderen $k-1$ Teilnehmern unterschieden werden kann. Gruteser und
Grundwald haben hierfür einen \textit{quadtree} \citep{quadtree} genutzt um bestimmte Bereiche zu erstellen. Diese Bereiche haben
nur eine Vorraussetzung, sie müssen $k$ Personen enthalten. Somit kann nicht festgestellt werden, welche Person
eines Bereiches die Daten versandt hat. Allerdings kann dieses Vorgehen nicht für einen Dienst mit der Funktionalität von
\textit{Google Latitude} genutzt werden, da es mit diesem Ansatz nicht möglich ist Positionsdaten von einzelnen Personen zu
versenden. Zusätzlich ist auch hier nicht gegeben, dass die Anwender Einsicht in die Verwendung und Verbreitung ihrer Daten
erhalten.\newline


\subsection{Vorraussetzungen}

Da die Verbreitung von mobilen Geräten in den letzten Jahren beständig zugenommen hat und
alle neueren Modelle ein \textit{GPS}-Modul besitzen, sind die Vorraussetzungen für Anwendungen die Positionsdaten nutzen,
gegeben. Auch im Rahmen der Datenübertragung sind alle modernen Geräte in der Lage, Daten sowohl über den \textit{3G}-Standard
sowie per \textit{WLAN} zu übertragen. \newline
Wenn nun ein sicherer Austausch von Positionsdaten erfolgen soll, so müssen neben der Hardware, auch andere Rahmenbedingungen
gegeben sein. Da man durch Positionsdaten die aktuelle Position erfahren oder Bewegungsprofile erstellen kann, sollten der Zugang
zu ihnen nur dann erlaubt sein wenn der betreffende Benutzer damit einverstanden ist. Die Daten müssen also soweit entfremdet oder
abgeändert werden damit nur eine vom Nutzer bestimmte Gruppe diese wieder rekonstruieren kann. Somit ist gegeben, dass der Nutzer
über das Ausmaß der Verbreitung seiner Daten die Kontrolle bewahren kann.\newline
Der Anwender sollte in der Lage zu sein Daten zu jedem von ihm gewünschten Zeitpunkt zu versenden. Er muss also in der Lage sein
die dafür benötigten Parameter zu sofort zu erstellen und weiterzugeben. Somit kann er den Zeitpunkt, zu welchem er seine Daten
versenden möchte, frei wählen.\newline 
Ist dies gegeben, sollen die Daten im nächsten Schritt versendet werden. Auch hier sollte ein Weg gefunden werden mit dem der
Nutzer möglichst viel Kontrolle über seine Datensätze inne hat. Um diese Kontrolle zu wahren, müssen die Informationen mit
einer möglichst transparenten und doch verlässlichen Methode verteilt werden. Hierbei darf die Möglichkeit der Speicherung der
Daten über die Zeit nicht ausser Acht gelassen werden. Um dies zu erschweren sollte man zum Übertragen der Informationen
nicht nur auf einen zentralen Knoten angewiesen sein, sondern nutzt im optimalen Fall ein ganzes Netzwerk von solchen
Knotenpunkten. Bei diesem Netzwerk sollen allerdings alle Knotenpunkt einsehbar sein, damit der Nutzer zu jedem Zeitpunkt weiß,
was mit seinen Daten geschieht. Ist dies gegeben so ist der Nutzer in der Lage zu kontrollieren wie seine Daten versandt
werden.\newline


\subsection{Ziele}

Zusammenfassend kann also gesagt werden, dass eine Software mit den beschriebenen Eigenschaften die Sicherheit der
Daten, in Bezug auf Zugänglichkeit, und das Vermeiden von Datenspeicherung zum Ziel haben sollte. Dem
Anwender soll es aber trotz allem einfach gemacht werden dieses Programm zu nutzen. Die Inhalte der Anwendung sollen also soweit
abstrahiert werden, als dass auch ein Benutzer ohne Fachkenntnis alle Features nutzen kann, ohne dass die obigen Punkte ausser
Kraft treten. \newline

Zum Versenden der Daten muss eine offene Struktur genutzt werden, in welche jeder Einsicht hat und welche frei genutzt werden
kann. Es soll gewährleistet sein das jeder Teilnehmer dieser sofort beitreten kann, ohne das für ihn Restriktionen, wie zum
Beispiel ein Benutzeraccount, gelten. Diese Struktur sollte über ein Protokoll verfügen das verlässlich, stabil und auch für
langsame Netzwerke optimiert ist. Eine reibungslose Kommunikation kann somit garantiert werden. \newline
Um die Kommunikation zwischen verschiedenen Teilnehmern zu ermöglichen soll es möglich sein Chatnachrichten auszutauschen. Die
Interaktion zwischen den Anwendern und somit der Nutzen des Dienstes kann dadurch weiter gesteigert werden.\newline

Durch die Nutzung einer, für alle, offenen Struktur ist es von Nöten, dass die Daten verschlüsselt werden. Da bei
Verschlüsselungen der Austausch von Schlüsseln voraussetzt wird, muss ein Verfahren genutzt werden welches den Austausch von zwei
Schlüsseln auf einfache Weise ermöglicht. Gleichzeitig muss garantiert sein dass die Schlüssel während des Austauschs nicht von
unbefugten Personen abgefangen werden. \newline
Ist ein solches Verfahren gegeben, so kann ein Algorithmus genutzt werden der sowohl sicher ist, als auch mit möglichst geringem
Aufwand die Daten ver- und entschlüsselt. \newline
Da Positionsdaten versendet werden, sollte die Applikation in der Lage sein die Standorte anderer Nutzer anzuzeigen. Da aus
Gründen der Nutzbarkeit die Positionen der Teilnehmer auf einer Karte dargestellt werden sollen, muss ein Format für die Karte
genutzt werden, welches auf dem mobilen Gerät darstellbar und einfach auf den neusten Stand zu bringen ist.\newline
Benutzer die sich in größeren Entfernungen befinden sind für Programme dieser Art nur begrenzt interessant, da sie mit zunehmender
Entfernung immer schwerer zu erreichen sind. Deshalb werden nur Teilnehmer innerhalb eines bestimmten Radius angezeigt.\newline

Ein weiterer Punkt ist die Plattformunabhängigkeit. Diese steht zwar nicht in Verbindung mit der Privatsphäre der Benutzer,
allerdings sollt ein solches Programm unter möglichst vielen Plattformumgebungen lauffähig sein. Zum Einen wird somit der Aufwand
der Implementierung verringert, da die Software nicht mehrmals implementiert werden muss. Zum Anderen werden möglichst viele
Benutzer erreicht und es kann auch Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
stattfinden.\newline
Die Software möglichst modular gehalten werden, damit es auch zu einem späteren Zeitpunkt leicht fällt Programmteile
auszutauschen oder zu erweitern. So wäre es zum Beispiel denkbar verschiedene Algorithmen zur Verschlüsselung oder ein anderes
Protokoll zum Versenden der Daten, zusätzlich zu implementieren. \newline

\subsection{Verfahren}

Anhand der Anforderungen müssen nun geeignete Verfahren und Protokolle sowohl für Kommunikation als auch für Verschlüsselung
gewählt werden. Da man mit mehreren Benutzern oder auch mehreren Benutzergruppen kommunizieren kann, können mehrere Schlüssel
anfallen. Somit sollte der Aufwand um diese Schlüssel zu speichern, zu löschen oder neu zuzuordnen möglichst gering ausfallen. Aus
Gründen der Schlüsselverwaltung ist daher ein symmetrisches Verfahren besser geeignet als ein asymmetrisches. Es ist einfacher
einen Schlüssel pro Gruppe zu verwalten als einen privaten, einen öffentlichen sowie unter Umständen noch ein Zertifikat. Des
Weiteren sind symmetrische Verfahren nicht so berrechnungsintensiv wie asymmetrische \citep{symm}, was einen
wichtigen Punkt auf mobilen Geräten darstellt. \newline

Da der Schlüsselaustausch spontan durchführbar sein soll, muss dieser zu jedem Zeitpunkt möglich sein ohne das dafür
Vorbereitungen getroffen werden müssen. So könnte man die Schlüssel per \textit{Bluetooth} übertragen, da eine solche
Verbindung ohne Vorarbeit aufgebaut werden kann. Allerdings stellt \textit{Bluetooth} ein unsicheres Medium dar
\citep{bluetooth}, da der \textit{Bluetooth-Sitzungs-PIN}  per Daten-Phishing wiederhergestellt werden kann. Eine andere
Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes \citep{qrcode} aus einer Zeichenkette.
Dieser kann fotographieren und wieder in eine Zeichenkette umwandelt werden. Da keine Kommunikation über einen
unsicheren Kanal zwischen den Geräten stattfindet sind die Barcodes bestens zum Schlüsselaustausch geeignet, da der Schlüssel auf
diesem Wege nicht abgefangen werden kann. \newline

Ein vorhandenes, nutzbares Protokoll welches ein aktives Netzwerk bereitstellt ist das \textit{IRC}-Protokoll \citep{IRC}. Es
stehen bereits mehrere Server zur Verfügung und jeder Nutzer kann einen eigenen Server bereitstellen. Die Server sind in
Netzwerken organisiert, wodurch der Ausfall eines Servers nicht zum Beenden der gesamten Kommuniktion führt. Nachrichten
werden innerhalb des Netzwerkes von Server zu Server weitergeleitet bis diese auf dem Zielserver ankommen. Innerhalb der
\textit{IRC}-Netzwerke werden verschiedene \textit{Channels} bereitgestellt, an welche die Nachrichten gesendet werden können.
Des weiteren steht es jedem Benutzer frei, eigene \textit{Channels} zu öffnen. Gesendete Nachrichten werden in diesen
\textit{Channels} ausgegeben. Somit ist zu jedem Zeitpunkt einsehbar was mit versandten Daten passiert.\newline
In der beschriebenen Software werden die Positionsdaten als Zeichenfolge an einen dieser \textit{Channels} gesendet und können
dort von beliebig vielen anderen Instanzen der Software ausgelesen werden. Diese verarbeiten die Daten im Anschluss, so dass diese
dann als Position auf einer Karte ausgegeben werden können. Beim Versenden der Textnachrichten ist die vorgehensweiße equivalent.
\newline

Durch diesen Lösungsansatz werden die Berechnungszeiten durch ein symmetrisches Verfahren niedrig gehalten. Der
Verwaltungsaufwand für die Schlüssel ist ebenfalls gering und die Verteilung selbiger kann durch die angesprochenen Barcodes
erfolgen. Bei der Kommunikation gibt es keinen einzelnen zentralen Server der den gesamten Datenverkehr einsehen kann. Die Daten
werden nur in verschlüsselter Form über die \textit{IRC}-Server versendet. Folglich kann jedes beliebige \textit{IRC}-Netzwerk zur
Kommunikation gewählt werden.