\section{Grundlagen}

\textit{Location privacy} wird von Duckham und Kulik durch \begin{quote}... 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}\end{quote} 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 die aktuelle Entwicklung 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{Aktuelle Entwicklungen}

Da so gut wie alle aktuellen Smartphones mit dem \textit{Global Positioning System (GPS)} ausgestattet sind, so gibt es für die
verschiedenen Betriebssysteme mittlerweile eine Reihe von Anwendungen die Funktionalitäten rund um die eigene Position bieten. So
gibt es 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}\footnote{Google Latitude http://www.google.com/intl/en\_us/latitude/intro.html\newline[Online;
letzter Aufruf 11.02.2010]} 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-Funkzellen} zu bestimmen.\newline
Betrachtet man ein solches Programm unter den obigen Gesichtspunkten von Duckham und Kulik,
so stellt man fest dass der Anwender hier nur den Zeitpunkt, zu dem die Positionsinformationen versendet werden, bestimmen kann.
Nutzen Anwender das Programm, so werden die Daten an den Anbieter eines solchen Dienstes gesendet. Diesem Anbieter obliegen die
Rechte über die Daten ab diesem Zeitpunkt. 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 den Anbieter gesendet werden, wo sie dann durch ein interenes, ihm
unbekanntes System an die anderen Nutzern weitergereicht werden. Somit ergibt sich eine Informationsasymmetrie, da der
Betreiber mehr Informationen über die Verarbeitung der Daten des Anwenders besitzt wohingegen der Anwender nicht im genauen weiß
wie mit seinen Daten verfahren wird. Der Benutzer kann also weder festlegen, wie noch in welchem Umfang er die Daten versenden
möchte, da er keinen Einblick in diesen Teil der Strukturen der Institution, die den Dienst zur Verfügung stellt, hat.\newline
An genau diesem Punkt schließt 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 all diese Datensätze antwortet, egal ob diese die richtigen oder die falschen Daten
beinhalten. 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 keine 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 eine Anwendung mit der Funktionalität eines
Dienstes, der gezielt Positionen einzelner andere Benutzer anzeigt, genutzt werden. Der Grund dafür ist, dass 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.

\subsection{Vorraussetzungen}

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 diesen nur dann erlaubt sein wenn der Benutzer der sie versendet damit einverstanden ist. Die Daten müssen also soweit
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 muss Daten zu jedem von ihm gewünschten Zeitpunkt zu versenden können. 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, werden die Daten im nächsten Schritt versendet. Auch hier muss 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 verschickt werden.
Zum Weiteren Schutz der verschlüsselten Daten darf 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 sind
allerdings alle Knotenpunkt einsehbar, 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.

\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 hat, ohne dabei die Benutzerfreundlichkeit
einzuschränken. Die Inhalte der Anwendung müssen also soweit abstrahiert werden, als dass auch ein
Benutzer ohne Fachkenntnis alle Funktionen der Anwendung 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 ist also bei der Auswahl zu vermeiden, dass diese Struktur Restriktionen wie einen Benutzeraccount mit sich bringt. 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
Kommunikation zwischen verschiedenen Teilnehmern kann durch den Austausch von Chatnachrichten ermöglicht werden. Die
Interaktion zwischen den Anwendern und somit der Nutzen des Dienstes kann hierdurch weiter gesteigert werden.\newline
Durch die Nutzung einer, für alle, offene 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. Da diese Software für mobile Geräte ausgelegt ist, ist der spontane Austausch der
benötigten Schlüssel im Interesse des Benutzers, da der Anwender die Nutzung eines solchen Dienstes nicht immer im Vorraus
planen möchte und kann. 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, müssen diese visualisiert werden. Somit muss die Applikation in der Lage sein die Standorte
anderer Nutzer auf einer Karte anzuzeigen. Es wird also ein Format benötigt, 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 sollte ein solches Programm unter möglichst vielen Plattformumgebungen lauffähig sein. Zum Einen wird somit der Aufwand
der Implementierung verringert, da die mehrfache Ausführung dieser somit vermieden wird. Zum Anderen werden möglichst viele
Benutzer erreicht und es kann auch Kommunikation unter Besitzern von unterschiedlichen Typen von Mobiltelefonen
stattfinden.\newline
Die Struktur der Software muss 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.

\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 soll der Aufwand, für den Anwender, um diese Schlüssel zu speichern, zu löschen oder neu zuzuordnen möglichst
gering gehalten werden. Um den Schlüsselaustausch einfach zu gestalten wird eine symmetrische Verschlüsselung genutzt.\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 \textit{Daten-Phishing} wiederhergestellt werden kann. Eine andere
Möglichkeit, die ebenfalls keine Vorarbeit benötigt, ist das Erstellen eines 2D-Barcodes\footnote{QR Code
http://www.denso-wave.com/qrcode/qrstandard-e.html [Online; letzter Aufruf 11.02.2010]} 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 optimal zum Schlüsselaustausch geeignet, da der Schlüssel auf
diesem Wege nicht abgefangen werden kann.\newline
Aufgrund der Möglichkeit das jeder Nutzer beliebig beitreten und Daten in dieser Struktur austauschen kann, fiel die Wahl zum
versenden der Daten auf das \textit{IRC}-Protokoll. Des weiteren spricht für diese Entscheidung, dass das
\textit{IRC}-Protokoll \citep{IRC} weit verbreitet ist und eine ausgedehnte Serverstruktur zu Grunde liegt. Auch die Stabilität
und Verlässlichkeit des Protokolles ist gegeben. Da die \textit{IRC}-Server in Netzwerken organisiert sind führt der Ausfall eines
Servers nicht zur Beendigung der gesamten Kommuniktion. Innerhalb der \textit{IRC}-Netzwerke werden verschiedene \textit{Channels}
bereitgestellt, an welche Nachrichten gesendet werden können. Ein weiterer Vorteil von \textit{IRC} ist, wenn Daten an
mehrere Benutzer gesendet werden sollen, diese nur einmal an einen \textit{Channel} versandt werden müssen und jeder Benutzer in
diesem \textit{Channel} diese Daten empfangen kann. Des weiteren steht es jedem Benutzer frei, eigene \textit{Channels} zu
öffnen.\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.