Ortung von mobilen Endgeräten

Aus Winfwiki

Wechseln zu: Navigation, Suche
Name des Autors / der Autoren: Marcel Wieczorek (Matr.-Nr.: 220592), Christian Karsten (Matr.-Nr.: 221873), Sven Pannek (Matr.-Nr.: 219425)
Titel der Arbeit: "Ortung von mobilen Endgeräten"
Hochschule und Studienort: FOM Berlin
Semester: 5. Fachsemester
Betreuer: Prof. Dr. rer. nat. Vladimir Stantchev


Inhaltsverzeichnis


1 Abkürzungsverzeichnis

AbkürzungBedeutung
OAOrtungs-App (Applikation zur Ortung von Smartphones)
JDKJava Development Kit
SDKSoftware Development Kit
ADTAndroid Development Tools
IDEIntegrated Development Environment (integrierte Entwicklungsumgebung)

2 Abbildungsverzeichnis

Abb.-Nr.Abbildung
1Ergebnis des Brainstormings
22D Positionsbestimmung mit 3 Satelliten und Korrektur des Uhrenfehlers
3Positionsbestimmung GSM-Funkzelle (Cell Of Origin)
4Wireless Hotspots zur Positionsbestimmung im Großraum Berlin (Kartenausschnitt)
5Schematischer Programmablauf der Android App
6Optimale Positionsbestimmung
7Screenshot "Handy 1", Schritt 1
8Screenshot "Handy 2", Schritt 2
9Screenshot "Handy 1", Schritt 3
10Screenshot Geo-Koordinaten in Google maps
11Server-Push-Kommunikation

3 Tabellenverzeichnis

Tab.-Nr.Tabelle
1Kriterienmatrix für technische Umgebung
2Projektplan
3Dauer der Positionsbestimmung
4Möglichkeiten zum Datenaustausch

4 Einleitung

Die XY GmbH gehört zu den führenden Anbietern für Spezialversicherungen im deutschen und österreichischen Raum und möchte ihren Kunden einen eigenen Zusatzservice zum Auffinden verloren gegangener und gestohlener Geräte anbieten.

Der größte Teil an versicherten Geräten entfällt bei der XY GmbH auf den Bereich der mobilen Elektronik. Neben dem klassischen Schutzbrief, der z.B. vor Raub-, Bruch und Wasserschäden schützt, bietet die XY GmbH zusätzlich einen Diebstahlschutz an. In diesem Zusammenhang möchte die XY GmbH ihren Kunden eine Applikation bereitstellen, mit deren Hilfe verloren gegangene bzw. gestohlene Smartphones geortet werden können.

Aktuell arbeitet die XY GmbH in diesem Bereich bereits mit einem Dienstleister zusammen, der eine Ortung mittels Mobilfunkpeilung vornimmt. Dazu muss der Kunde sich vorab registrieren, um im Verlustfall sein Handy orten lassen zu können. Das Handy muss dabei zum Zeitpunkt der Ortung angeschaltet sein und es muss die SIM-Karte des Kunden eingesteckt sein. Das Ergebnis der Ortung ist dann etwa auf 300 Meter genau.

5 Motivation

Da eine Genauigkeit von 300 Metern gerade in Ballungsgebieten zu ungenau ist und im Falle eines Diebstahls meist die SIM-Karte des Besitzers ausgetauscht wird, soll im Rahmen dieser Arbeit ein Konzept erstellt werden, wie dieser Service in Zukunft zuverlässiger gestaltet werden kann.

Es soll eine Applikation entwickelt werden, die unter Verwendung gängiger Ortungsverfahren in der Lage ist, die Position eines Smartphones zu bestimmen. Die Ortung soll dabei unabhängig von der eingesteckten SIM-Karte sein und auf deutlich weniger als 300 Meter genau sein. Zudem soll ein Sicherheitskonzept entwickelt werden, das beschreibt, wie diese Applikation möglichst wenig offensichtlich gestaltet werden kann.

6 Projekt

Das gesamte Vorhaben soll in Form eines Projekts realisiert werden. Dazu soll zunächst in einem Kick-Off-Meeting eine Mindmap im Rahmen eines Brainstormings erarbeitet werden. Zudem soll der Gesamtumfang des Projekts an sich abgesteckt werden.

Im weiteren Verlauf des Projekts soll dann die technische Umgebung für die Realisierung der App definiert werden.

In einem Folgemeeting soll das Projekt dann in einzelne Arbeitspakete unterteilt werden. Zudem sollen hierbei Meilensteine definiert und zeitliche Aufwände abgeschätzt werden.

Im Anschluss darin gilt es die Struktur des Software-Projekts an sich zu definieren. Hierbei müssen die verschiedenen eingesetzten Technologien miteinander zu einem Projekt verknüpft werden.

6.1 Brainstorming

Um einen guten Einstieg in die Thematik zu finden wurde zu Beginn des Projektes in einem Kick-Off-Meeting ein Brainstorming durchgeführt. Ziel war die allgemeine Ideensammlung zur Vorgehensweise und Strukturierung des Projektes als Basis für eine spätere Feingranulierung der einzelnen Schritte. Die aus dem Brainstorming entstandene Mindmap ist im Folgenden zu sehen:

Abb. 1: Ergebnis des Brainstormings
Abb. 1: Ergebnis des Brainstormings

Die Mindmap dient als Grundlage und Grobkonzept für die Definition der weiteren Vorgehensweise innerhalb des Projektes. Nachfolgend werden die elementaren Punkte der Mindmap näher erläutert, um ein besseres Verständnis für die dahinter steckenden Gedankengänge zu erhalten.

Wichtig war vor allem zu klären, für welche Plattform die Applikation entwickelt werden soll. Hier standen Apple (basierend auf Objective C), Windows (basierend auf .NET) und Android (basierend auf JAVA) zur Auswahl. Die finale Entscheidung und die entsprechende Begründung sind im Abschnitt "Auswahlkriterien für technische Umgebung" nachzulesen.

Bei den Ortungsverfahren wurde vor allem diskutiert, welche Verfahren zur Ortung überhaupt existieren, wie sie funktionieren und welche davon für Handyapplikationen genutzt werden können. Weiterhin waren auch die Verfügbarkeit, die Genauigkeit, die Voraussetzungen und die Geschwindigkeit der Verfahren relevant. Die Ergebnisse hierzu sind im Abschnitt "Verfahren zur Positionsbestimmung" zu finden.

Bei den Funktionen stellte sich primär die Frage, wie die Handyapplikation funktionieren soll, also z.B. wie die Ortungsfunktionalität ausgelöst werden soll (bspw. über SMS, MMS oder E-Mail), das Ergebnis übermittelt werden kann und wie das übermittelte Ergebnis schließlich ausgewertet werden kann.

Essentiell bei der Entwicklung der Applikation ist die Projektplanung, so dass hier beispielsweise geschaut wurde, welche Entwicklungsumgebungen es gibt und welche eingesetzt werden sollte. Diese Entscheidung ist eng mit der Auswahl der Plattform verbunden, so dass auch hier die Ergebnisse im Abschnitt "Auswahlkriterien für technische Umgebung" nachgelesen werden können. Neben der Entwicklungsumgebung spielt die weitere Infrastruktur eine wichtige Rolle, so dass hier Themen wie der Einsatz eines Repository mit einer Versionierungsfunktion diskutiert wurden. Zusätzlich wurde auch die Erstellung eines Projektplanes (einschließlich einzelner Phasen und Meilensteine) angedacht, um die Entwicklung der Handyanwendung strukturiert angehen zu können. Die Inhalte der Projektplanung sind im Abschnitt "Projekt" zu finden.

Abschließend wurden im Kontext weiterer Rahmenbedingungen die Betrachtung der rechtlichen Aspekte und die Erstellung eines Sicherheitskonzepts in Erwägung gezogen, um die Legitimität der Applikation sicherzustellen.

6.2 Auswahlkriterien für technische Umgebung

Die Applikation zur mobilen Ortung wird zunächst für die Android Plattform entwickelt. Aufgrund der unterschiedlichen Programmiersprachen und Technologien, auf denen die Plattformen basieren, kann die OA vorerst nicht plattformunabhängig programmiert werden.

In der nachfolgenden Matrix sind die einzelnen Kriterien aufgeführt, die zur Wahl der Android Plattform geführt haben.


KriterienAndroid OSApple iOS MS Windows Phone 7
Entwicklungsumgebung
geringe Systemvoraussetzungen x
freie Verfügbarkeit x x x
SDK zur Unterstützung x x x
Unterstützung von Team-Entwicklung x x
Java (Vorkenntnisse) x
Plattform
hoher Marktanteil x x
freies Publizieren der App x
Ergebnis 8/8 3/8 3/8
Tabelle 1: Kriterienmatrix für technische Umgebung


Android hat den Vorteil, dass es eine freie Plattform ist. Sie ist zudem quelloffen, erfordert keine besonderen Voraussetzungen und ist auf den gängigen Betriebssystemen einsatzfähig. Es werden viele offene Schnittstellen angeboten und es gibt zudem eine gute Plugin-Integration für Entwicklungsumgebungen wie eclipse. Ein weiterer Entscheidungsgrund für die auf Java basierende Android Plattform sind die bestehenden Java-Programmierkenntnisse der an dem Projekt beteiligten Personen. Dadurch ist sichergestellt, dass die Entwicklungsaufwände entsprechend verteilt werden können. Für die Apple iOS-Entwicklung hingegen wird beispielsweise ein Apple Mac vorausgesetzt und für die Windows Phone 7-Entwicklung ein Windows PC. Zudem müsste beim iOS eine neue Sprache (Objective C) erlernt werden. Die Android-Plattform ist insgesamt hervorragend für die Entwicklung der OA geeignet. Zusätzlich kann die fertige App später, einfach über einen Download-Link angeboten werden und muss nicht durch die zentrale Kontrolle eines AppStores, wie den Apple AppStore oder Windows Marketplace.

6.3 Projektplan

Zur strukturierten Vorgehensweise sowie zur entsprechenden Aufgabenverteilung wurde ein Projektplan ausgearbeitet. Dieser bildet die Grundlage für die Entwicklung der OA. Der Projektplan sieht fünf Meilensteine vor, die im Laufe des Projektes erreicht werden sollen.

Tabelle 2 zeigt den geplanten Ablauf des Projekts inklusive der fünf zu erreichenden Meilensteine sowie die jeweils zu erfüllenden Arbeitspakete und deren zu erwartenden zeitlichen Aufwand.

StatusBezeichnungAufwand (in Stunden)
ErledigtUmgebung einrichten (1. Meilenstein)14
Installation des JDK (J2SE 6) und des Android SDK bei allen Projektteilnehmern6
Installation der IDE eclipse und des ADT-Plugins bei allen Projektteilnehmern3
Einrichten zweier identischer virtueller Android-Maschinen1
Einrichten eines SVN-Repositories1
Aufsetzen des Software-Projekts1
Kurze Einführungen2
ErledigtAPI-Überblick (2. Meilenstein)7
Allgemeines Laufzeitverhalten (Programmstart, Behandlung eingehender Nachrichten) 3
LocationManager (System-Service)1
LocationListener (Behandlung von Positionsänderungen)1
BroadcastReceiver (Behandlung eingehender Nachrichten)1
SmsManager (Senden von SMS)1
ErledigtPrototyp (3. Meilenstein)14
Auslesen empfangener SMS2
Ermitteln der aktuellen Position10
Senden der Koordinaten per SMS2
ErledigtTest/Bugfix (4. Meilenstein)6
Verfügbarkeit/Ausfallsicherheit der Services2
Robustheit der Funktionalitäten2
Performance2
OffenLauffähige Version (5. Meilenstein) 8
Prototyp um MMS-Funktion erweitern4
Prototyp um Email-Funktion erweitern4
Tabelle 2: Projektplan

Umgebung einrichten (1. Meilenstein)
Der erste Meilenstein beinhaltet die Einrichtung der Entwicklungsumgebung. Dazu gehören u.a. die Installationen des JDK (J2SE 6), des Android SDK und der IDE eclipse (einschließlich des ADT-Plugins). Zusätzlich werden zwei identische virtuelle Android-Maschinen und ein SVN-Repository eingerichtet.

Letzteres dient vor allem dem Zweck der Versionierung und der Speicherung der Daten an einem zentralen Ort/Server. Zudem haben hierüber alle Projektteilnehmer die Möglichkeit, zusammen an diesem Projekt zu arbeiten.

Zur Initiierung des Projekts muss zunächst die interne Projektstruktur an sich erstellt werden. Dabei bietet das ADT-Plugin für eclipse einen Assistenten, der es ermöglicht, mit wenigen Klicks die Grundstruktur eines Hallo-Welt-Projekts zu erzeugen. Die erzeugten Dateien sowie die erstellten virtuellen Android-Maschinen werden dann in das CVS-Repository eingecheckt.

Danach erfolgt eine kurze Einführung aller Projektteilnehmer in die Projektstruktur, sodass dann alle in der Lage sind, die softwaretechnische Entwicklung voranzutreiben.

API-Überblick (2. Meilenstein)
Beim 2. Meilenstein geht es hauptsächlich darum, sich in die Android API einzuarbeiten, um für die eigentliche Programmierung vorbereitet zu sein. So gilt es hier u.a. zu verstehen, wie der Programmstart abläuft, wie eingehende Nachrichten behandelt werden und wie das Senden von SMS funktioniert.

Bereits im Vorfeld wurde recherchiert, dass die folgenden vier Klassen des Android SDK von besonderer Bedeutung für das Projekt sind:

  • android.location.LocationManager

Diese Klasse stellt Zugriffsmöglichkeiten auf die systemeigenen Ortungs-Services bereit. Diese Services ermöglichen es der Applikation, periodische Aktualisierungen der Standortinformationen des betreffenden Geräts zu ermitteln.[1]

  • android.location.LocationListener

Dieses Interface wird benutzt, um Mitteilungen des LocationManager zu empfangenen, wenn sich der Standort des betreffenden Geräts ändert.[2]

  • android.content.BroadcastReceiver

Hierbei handelt es sich um eine abstrakte Basisklasse zum Empfangenen und Senden von Broadcasts.[3]

  • android.telephony.SmsManager

Diese Klasse verwaltet SMS-Operationen wie das Senden von SMS.[4]

Prototyp (3. Meilenstein)
Die Entwicklung eines ersten Prototyps ist als 3. Meilenstein definiert. Hier sollen die elementaren Funktionen der OA realisiert werden. Dazu gehören das Auslesen empfangener SMS, das Ermitteln der Position des mobilen Endgerätes und das Senden der Koordinaten per SMS.

Dabei wird von vornherein davon ausgegangen, dass das Ermitteln der aktuellen Position den größten zeitlichen Aufwand verursacht. Da die systemeigenen Ortungs-Services darauf ausgelegt sind, die Position periodisch zu ermitteln, muss ein Weg gefunden werden, den Prozess der Positionsbestimmung zu kapseln.

Test/Bugfix (4. Meilenstein)
Umfangreiche Tests und die daraus folgende Fehlerkorrektur beinhaltet der 4. Meilenstein. Hier sollen vor allem die Verfügbarkeit/Ausfallsicherheit der Services und die Performance der OA getestet und optimiert werden.

Lauffähige Version (5. Meilenstein)
Die Entwicklung einer lauffähigen Version ist der fünfte und letzte Meilenstein. Dabei soll der lauffähige Prototyp um eine Email- und eine MMS-Funktion erweitert werden.

6.4 Projektstruktur

Für die Entwicklung der Ortungs-App werden die Programmiersprache Java (Version 6) und die Entwicklungsumgebung eclipse genutzt. Nach der Standardinstallation wird das Google ADT-Plugin (Android Development Toolkit) nachinstalliert.

Für die verteilte Zusammenarbeit an diesem Projekt wird ein SVN-Repository eingerichtet. Das entsprechende Subversion-Plugin wird eclipse ebenfalls hinzugefügt.

Quellen

Update Sites

SVN-Repository

7 Verfahren zur Positionsbestimmung

Um für die OA das beste Ortungsverfahren wählen zu können, müssen zunächst die vorhandenen und etablierten Positionsbestimmungsmethoden analysiert werden. Neben GPS haben sich hier in den letzten Jahren weitere Verfahren etabliert. Im folgenden Abschnitt sollen die verschiedenen Verfahren zur Positionsbestimmung näher erläutert und für den Einsatz zur genauen Ortung bewertet werden. Bei einem mobilen Endgerät gibt es dabei verschiedene Möglichkeiten, zum einen über ein Wireless-LAN Access Point, über das Mobilfunknetz (GSM) oder über das Global Positioning System (GPS).

7.1 Global Positioning System (GPS)

Das Global Positioning System (GPS) ist ein globales System zur Positionsbestimmung. Es wurde in den 1970er Jahren vom US-Verteidigungsministerium entwickelt und ist für militärische Zwecke seit ca. 1985 im Einsatz. Seit etwa 1995 ist das System vollständig in Betrieb. Im Jahr 2000 erfolgte die Abschaltung einer künstlichen Signalverschlechterung, so dass das System nun auch für zivile Zwecke zur Positionsbestimmung mit einer Genauigkeit von unter 10 Meter genutzt werden kann.

Das GPS basiert auf Satelliten, die ständig ihre aktuelle Position und die aktuelle Zeit mit kodierten Radiosignalen senden bzw. ausstrahlen. Der GPS-Empfänger kann daraus seine eigene Position und Geschwindigkeit berechnen. Für eine genaue Positionsbestimmung benötigt der GPS-Empfänger jedoch mit mindestens vier GPS-Satelliten Sichtkontakt bzw. muss sich im Abschallwinkel der Radiosignale befinden.

Über die Signallaufzeit wird die Entfernung zum Satelliten berechnet. Der Empfänger befindet sich also in einem bestimmten Radius zum Satelliten. Dieser Radius liefert jedoch mit Hilfe eines einzelnen Satelliten keine genaue Position. Mit Hilfe eines weiteren Satelliten kann ein weiterer Radius bestimmt werden. Der Empfänger befindet sich nach dieser zweiten Messung auf den Schnittpunkten beider Radien. Mit einem dritten Satelliten wird ein weiterer Radius berechnet. Der Empfänger befindet sich dann im Schnittpunkt der drei berechneten Radien. Da für die Berechnung der Entfernung die Signallaufzeit vom Satelliten zum Empfänger die Grundlage bildet, sollten die Uhren der Geräte sekundengenau synchron laufen. Um das zu gewährleisten, wird ein vierter Satellit hinzugezogen.[5]

Abb. 2: 2D Positionsbestimmung mit 3 Satelliten und Korrektur des Uhrenfehlers, (Quelle: http://www.kowoma.de/gps/Positionsbestimmung.htm)
Abb. 2: 2D Positionsbestimmung mit 3 Satelliten und Korrektur des Uhrenfehlers, (Quelle: http://www.kowoma.de/gps/Positionsbestimmung.htm)

Damit ein GPS-Empfänger immer die Signale von mindestens 4 Satelliten empfangen kann, müssen mindestens 24 Satelliten die Erde umkreisen. Die Satelliten umkreisen die Erde dabei in einer Höhe von ca. 20.200 km und sind zweimal am Tag über der gleichen Position der Erde. Um Ausfälle von Satelliten auszugleichen, umkreisen zurzeit etwa 31 Satelliten die Erde. Innerhalb der letzten Jahre sind die GPS-Empfänger kleiner geworden, so dass ein Einbau in moderne Smartphones zur Positionsbestimmung möglich wurde. Damit können Smartphones zur Positionsbestimmung eingesetzt werden und sog. Location based Services können angeboten werden. Da ein Smartphone in der Regel keinen ständigen Kontakt zu einem GPS-Satelliten hält bzw. der GPS-Empfänger nicht ständig an ist, dauert eine erste Positionsbestimmung verhältnismäßig lange. Wenn der Empfänger mehrere Tage seine Position nicht bestimmt hat oder seit der letzten Positionsbestimmung mehr als 300km liegen, dann kann rein rechnerisch die Bestimmung der Position bis zu 12,5 Minuten dauern. Bei einer „Abwesenheit“ von 2-6 Stunden braucht der GPS-Empfänger ca. 45 Sekunden.[6] Um diesen Nachteil der GPS auszugleichen wurde das A-GPS (Assisted-GPS) entwickelt.

BezeichnungZeit der letzten Positionsbestimmungrechnerische Dauer der Positionsbestimmung
Cold Startmehrere Tagebis zu 12,5 Minuten
Warm Start2-6 Stunden, keine aktuellen Bahndaten bis zu 45 Sekunden
Hot Start2-6 Stunden, aktuelle Bahndatenbis zu 15 Sekunden
Tabelle 3: Dauer der Positionsbestimmung

Beim A-GPS werden dem GPS-Empfänger Hilfsdaten aus einem anderen Kanal (beispielsweise dem Mobilfunk-Netz) zu Verfügung gestellt. Über das Mobilfunknetz kann die ungefähre Position des GPS-Empfängers bestimmt werden. Der GPS-Empfänger kann damit die aktuell sichtbaren Satelliten einschränken und schneller seine aktuelle Position über GPS bestimmen. Da A-GPS Nutzdaten aus dem Mobilfunknetz erhält, fallen hierfür Gebühren an, das herkömmliche GPS hingegen ist kostenlos. Die Positionsbestimmung ist mit A-GPS nur deutlich schneller, bietet aber keine weiteren Vorteil oder präzisere Position.

Da ein GPS-Empfänger ständig Daten der Satelliten zur Positionsbestimmung erhält, wirkt sich der Betrieb von GPS mit dem Smartphone natürlich negativ auf die Batterielaufzeit aus. Zusätzlich funktioniert in Gebäuden die Positionsbestimmung über GPS nicht, da keine Sichtverbindung zu einem Satelliten besteht, ein weiterer Nachteil für die Positionsbestimmung per GPS. Für Smartphones wurden daher in den letzten Jahren andere Techniken zur Positionsbestimmung entwickelt, zum Beispiel die Ortung über ein Wireless-LAN oder das Mobilfunknetz.

Um die Position eines mobilen Endgerätes über GPS zu bestimmen, ist ein GPS-Empfänger zwingend erforderlich. Ohne GPS-Empfänger können nur die alternativen Methoden über Wireless-LAN oder das Mobilfunknetz genutzt werden.

7.2 Mobilfunknetz (GSM)

Bei einem mobilen Endgerät, Smartphone oder Handy, handelt es sich um ein Gerät, welches den Mobilfunkstandard GSM (Global System for Mobile Communications) nutzt. Für die Positionsbestimmung wird keine weitere Infrastruktur als das Mobilfunknetz benötigt. Die Position des Endgerätes lässt sich in gewissen Grenzen mit Hilfe des Mobilfunknetzes bestimmen, die Positionsbestimmung mit Hilfe des GPS ist jedoch meist genauer.

Das mobile Endgerät ist, sofern es eingeschaltet ist, in einer Mobilfunkzelle im Mobilfunknetz eingebucht, über die sogenannte Location Area lässt sich die Position bestimmen. Die Information der eingebuchten Mobilfunkzelle ist für den Betrieb des Mobilfunknetzes grundlegend wichtig und wird deshalb in einer Datenbank (Home Location Register) regelmäßig aktualisiert. Dieses Verfahren bezeichnet man als „Cell of Origin“, dabei sind keine Änderungen bei Netz- oder Endgeräten notwendig. Dieses Verfahren ist jedoch sehr ungenau. Die Genauigkeit der Position ist abhängig von der Größe der verwendeten Funkzelle. Innerhalb von Städten beträgt der Radius nur wenige hundert Meter, außerhalb kann dieser aber bis zu 30 Kilometer betragen.

Abb. 3: Positionsbestimmung GSM-Funkzelle (Cell Of Origin), (Quelle: http://knol.google.com/k/gsm-umts-lokalisierung)
Abb. 3: Positionsbestimmung GSM-Funkzelle (Cell Of Origin), (Quelle: http://knol.google.com/k/gsm-umts-lokalisierung)

Mit Hilfe des Timing Advance-Verfahren lässt sich die Position etwas genauer bestimmen, technisch bedingt jedoch nicht genauer als 277 Meter. Bei diesem Verfahren wird der Wert für den Zeitversatz zwischen mobilen Endgerät und der Basisstation für die Entfernungsmessung genutzt. Die Basisstation erwartet in gewissen Zeitabständen (Zeitschlitze) eine Antwort vom mobilen Endgerät. Durch die verschiedenen Entfernungen zur Basisstation entstehen unterschiedliche Signallaufzeiten. Der Timing Advance-Wert gleicht die Signallaufzeit zwischen Basisstation und mobilem Endgerät aus. Damit ist der Timing Advance-Wert abhängig von der Signallaufzeit und diese wiederum von der Entfernung zur Basisstation. Die Entfernung zur Basisstation ist aber nur ein Anhaltspunkt für die Positionsbestimmung, da sich das Mobilgerät nur in einem Umkreis um die Basisstation befinden kann.

Um eine genaue Position zu bestimmen, muss der Timing Advance-Wert in Verbindung mit zwei anderen Basisstationen ermittelt werden. Da das mobile Endgerät jedoch nur mit einer Basisstation verbunden ist, nämlich der mit dem besten Empfang, muss das Endgerät zu mehreren Mobilfunkzellen-Wechsel zwingen. In jeder Mobilfunkzelle wird dann der Timing Advance-Wert bestimmt und ermittelt die Entfernung zur jeweiligen Basisstation. Die zusätzlichen Messwerte ergeben jeweils einen Radius um die Messstation, der Schnittpunkt der drei Kreise ist die Position des Endgerätes. In der Praxis wird dieses Verfahren jedoch nicht angewendet, da es sehr aufwendig ist.

Für die normale Positionsbestimmung wird nur die eingebuchte Mobilfunkzelle benutzt. Damit ist die Positionsbestimmung ohne zusätzliche Infrastruktur möglich, ist aber auch ein vielfach ungenaueres Verfahren im Vergleich zu GPS.

7.3 Wireless-LAN

Die Positionsbestimmung eines mobilen Endgerätes mit Hilfe eines Wireless-LAN funktioniert ähnlich wie die Ortung über das Mobilfunknetz (GSM).

Die Positionsbestimmung funktioniert mit Hilfe der Zugangspunkte (Access-Points) der in der Umgebung befindlichen frei empfangenen Wireless-LANs. Obwohl mit dem GPS ein freies und gebührenfreies System zur Ortung vorhanden ist, bietet die Positionsbestimmung über ein Wireless-LAN einen entscheidenden Vorteil, es wird keine direkte Sichtverbindung zu einem GPS-Satelliten benötigt. Die Positionsbestimmung kann damit auch innerhalb von Gebäuden oder tiefen Straßenschluchten erfolgen.

Eine einfache Positionsbestimmung erfolgt mit Hilfe der Position des Zugangspunktes des Wireless-LANs. Wenn das Endgerät mit einem Wireless-LAN verbunden ist, ist seine Position in einem gewissen Umkreis des Zugangspunktes. Das Endgerät nimmt in einer ersten Messung die Position des Zugangspunktes an. Die Genauigkeit dieser Messung, definiert sich durch die maximale Reichweite des Zugangspunktes. Bei einem Wireless-LAN sind das in ca. 100 m außerhalb von Gebäuden und ca. 10 m innerhalb von Gebäuden.

Die Position der Zugangspunkte wird in einer Referenzdatenbank nachgeschlagen. Diese Referenzdatenbank enthält die Positionsdaten verschiedener Zugangspunkte, diese werden durch Referenzmessungen oder durch Eintragungen von Benutzern oder Providern gepflegt. Sollten zu einem Zugangspunkt keine Positionsdaten hinterlegt sein, so werden die Positionsdaten eines anderen Zugangspunktes in der Reichweite benutzt. Um eine genauere Messung zu erreichen, kann die Signalstärke benutzt werden. Die Signalstärke ist aber nur außerhalb von Gebäuden proportional zur Entfernung des Zugangspunktes. Die Signalstärkemessung lohnt sich deshalb nur außerhalb von Gebäuden, und selbst dort sind die Strahlungseinflüsse der Umgebung hinderlich für eine homogene Ausbreitung des Signals. Innerhalb von Gebäuden kann diese Methode nicht angewendet werden, da die Metallteile in Zwischendecken und Leichtbauwänden die Signale zu sehr beeinflussen.

Innerhalb von Gebäuden, aber auch außerhalb, können mehrere Zugangspunkte für die Positionsbestimmung herangezogen werden. Die Genauigkeit hängt dabei von der Anzahl der Zugangspunkte in der Umgebung ab. Dieses Verfahren bezeichnet man als Multilateration. Dabei müssen die exakten Standorte der Zugangspunkte in einer Datenbank eingetragen sein. In Großstädten ist durch eine Vielzahl von öffentlichen Zugangspunkten (sog. HotSpots) diese Voraussetzung gegeben. In Großstädten lässt sich hierbei eine Genauigkeit auf 20 bis 40 Metern erzielen[7]. Genauer ist das sogenannte Fingerprint- oder Referenzpunktverfahren. Bei diesem Verfahren wird davon ausgegangen, dass an jeder Position die Signale mehrerer Zugangspunkte empfangen werden. Zu jedem Zugangspunkt werden die empfangene Signalstärke an der entsprechenden Position und die eindeutige MAC-Adresse des Zugangspunktes gespeichert, somit entsteht ein eindeutiger Fingerabdruck oder Referenzpunkt der Position. Die verschiedenen Referenzpunkte werden in einer Datenbank gespeichert. Bei der Positionsbestimmung wird dann in der Datenbank nach passenden Referenzpunkten gesucht und anhand der Abweichungen bei der Signalstärke wird die aktuelle Position bestimmt. Dieses Verfahren muss jedoch sehr flexibel sein, da die Referenzpunkte mit neuen oder gelöschten Zugangspunkten sich ständig ändern. Das mobile Endgerät kann diese Änderungen jedoch bei erfolgter Positionsbestimmung in die Datenbank übernehmen.

Die stärkere Verbreitung der Endgeräte und die steigende Anzahl an „Location Based Services“ helfen bei der Pflege der Referenzdaten.

Abb. 4: Wireless Hotspots zur Positionsbestimmung im Großraum Berlin (Kartenausschnitt), (Quelle: http://www.skyhookwireless.com/howitworks/coverage.php)
Abb. 4: Wireless Hotspots zur Positionsbestimmung im Großraum Berlin (Kartenausschnitt), (Quelle: http://www.skyhookwireless.com/howitworks/coverage.php)

7.4 Verwendung der Verfahren zur Positionsbestimmung

Je nach Umgebung kann eines der drei Verfahren für die Positionsbestimmung angewendet werden. In aller Regel ist bei einem Smartphone die Positionsbestimmung mit Hilfe des Mobilfunknetzes (GSM) immer möglich. Befindet sich das Smartphone außerhalb eines Gebäudes sollte auch eine Positionsbestimmung über das GPS möglich sein, sofern das Smartphone einen Empfänger eingebaut hat. Sollte das Smartphone sich in einem Gebäude befinden, so ist je nach Verfügbarkeit auch eine Positionsbestimmung über ein oder mehrere vorhandene Wireless-LAN Zugangspunkte möglich.

In der OA ist der Zugriff auf die Positionskoordinaten mit Hilfe der API, die das SDK für Android zur Verfügung stellt, geplant. Dabei wird vom Android-System das beste Verfahren zur Positionsbestimmung bereits automatisch ausgewählt.

8 Technische Funktionen der App

Im Rahmen dieser Arbeit soll die Ortungs-App (OA) zunächst nur für Smartphones mit dem Betriebssystem Android 2.1+ entwickelt werden. Unter Verwendung des Android SDK sollen die einzelnen Funktionen der Applikation realisiert werden.

Die OA soll über verschiedene Wege aufgefordert werden können, den Standpunkt des Smartphones zu ermitteln, auf dem sie installiert wurde. Diese Information soll dann auf einem zuvor festgelegten Weg nach außen gegeben werden. Beispielsweise soll der Besitzer die App per SMS auffordern können, die Positionsdaten per SMS an eine vorkonfigurierte Nummer zu senden.

Für die Standortbestimmung des Smartphones kommen alle drei o.g. Ortungsverfahren in Fragen. Mindestens eines davon wird von jedem Smartphone unterstützt. Es soll jedoch immer das genaueste Verfahren bestimmt und ausgewählt werden. Für den Besitzer des Smartphones entstehen zumindest für die reine Ortung des Geräts keine Kosten.

Allerdings können die Kosten für die Datenübertragung zum und vom Gerät je nach Mobilfunkvertrag stark variieren. Daher soll der Besitzer hier die freie Wahl zwischen verschiedenen Ein- und Ausgängen haben.

Dabei sollen in beide Richtungen Daten per SMS, MMS und Email versandt werden können. Die folgende Tabelle listet alle Möglichkeiten zum Datenaustausch auf.

EingabeOrtungsverfahrenAusgabe
SMSWLAN, GPS, GSMSMS, MMS, Email
MMSWLAN, GPS, GSMSMS, MMS, Email
EmailWLAN, GPS, GSMSMS, MMS, Email
Tabelle 4: Möglichkeiten zum Datenaustausch

8.1 Programmablauf

Im Folgenden soll nun der genaue Programmablauf schematisch dargestellt werden. Dabei gilt: Das Programm verhält sich für alle drei Arten der Kommunikation völlig gleich. Es macht also keinen Unterschied, ob Daten per SMS, MMS oder Email übermittelt werden.

Abb. 5: Schematischer Programmablauf der Android App
Abb. 5: Schematischer Programmablauf der Android App

Der Besitzer von "Handy 2" übermittelt von "Handy 1" aus eine Nachricht an "Handy 2". Dieses soll daraufhin mit den aktuellen Geo-Koordinaten antworten. Auf "Handy 2" ist die Ortungs-App installiert. Beim Empfangen einer neuen Nachricht wird diese von der App auf eine zuvor definierte Zeichenkette hin untersucht. Sofern die Nachricht diese Zeichenkette enthält, wird die aktuelle Position des Geräts bestimmt.

Abb. 6: Optimale Positionsbestimmung
Abb. 6: Optimale Positionsbestimmung

Dabei wird versucht, die Position über alle drei o.g. Ortungsverfahren (GPS, GSM und WLAN) zu ermitteln. Nach maximal 40 Sekunden wird dann der bis dahin beste verfügbare Wert an den Sender übermittelt.

Die Kernfunktionalität der OA liegt darin, die aktuelle Position zu bestimmen und das Ergebnis über eine definierte Schnittstelle zu publizieren. Dieser Teil des Programms ist in der Klasse "de.wieczorekit.loc.LocationPublisher" implementiert.

Ein Auszug aus dem Quelltext dieser Klasse ist im Folgenden dargestellt.

/**
 * handyortung
 * 30.11.2010 | 12:09:50
 */
package de.wieczorekit.loc;

import static de.wieczorekit.loc.LocationUtil.getBestProvider;
import static de.wieczorekit.loc.LocationUtil.isBetterLocation;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import de.wieczorekit.pub.MessagePublisher;

/**
 * @author Marcel Wieczorek
 * @version 1.0
 */
public class LocationPublisher {
    private final Context context;

    [...]

    /**
     * Requests all available providers for location updates in order to publish the most accurate
     * one via messagePublisher.
     * 
     * @param messagePublisher
     *            the publisher to use
     * @author Marcel Wieczorek
     */
    public void publishLocation(final MessagePublisher messagePublisher) {
	final Handler handler = new Handler(Looper.getMainLooper());
	handler.post(new Runnable() {

	    /*
	     * (non-Javadoc)
	     * @see java.lang.Runnable#run()
	     */
	    @Override
	    public void run() {
		Location location = null;
		// acquire a reference to the system Location Manager
		final LocationManager locationManager = (LocationManager)
                  LocationPublisher.this.context.getSystemService(Context.LOCATION_SERVICE);
		// acquire available providers
		final List<String> enabledProviders = locationManager.getProviders(true);
		if (enabledProviders != null && !enabledProviders.isEmpty()) {
		    final List<PublishLocationListener> locationListeners =
                      new ArrayList<PublishLocationListener>(enabledProviders.size());
		    for (final String provider : enabledProviders) {
			Log.i(getClass().getName(), "acquired provider: " + provider);
			// obtain last known location from provider
			final Location lastKnownLocation =
                          locationManager.getLastKnownLocation(provider);
			Log.i(getClass().getName(), "last known location: " + lastKnownLocation);
			// define a listener that responds to location updates
			final PublishLocationListener publishLocationListener =
                          new PublishLocationListener(lastKnownLocation);
			Log.i(getClass().getName(), "start requesting location updates...");
			// register the listener with the Location Manager to receive location
                        // updates
			locationManager.requestLocationUpdates(provider, 0, 0,
                          publishLocationListener);
			locationListeners.add(publishLocationListener);
		    }

		    int i = 0;
		    while (true) {
			try {
			    Thread.sleep(2000L);
			} catch (final InterruptedException e) {
			    Log.e(getClass().getName(), e.getMessage(), e);
			} finally {
			    if (++i >= 20) {
				// find most accurate location
				for (final PublishLocationListener publishLocationListener :
                                  locationListeners) {
				    locationManager.removeUpdates(publishLocationListener);
				    if (isBetterLocation(
                                      publishLocationListener.getCurrentLocation(), location)
                                    ) {
					location = publishLocationListener.getCurrentLocation();
				    }
				}
				break;
			    }
			}
		    }

		    messagePublisher.publish(location);
		}
	    }
	});
    }

    [...]

}

Nach erfolgreicher Validierung einer eingehenden Nachricht wird die Methode "publishLocation" dieser Klasse aufgerufen. Der Methode wird ein Objekt übergeben, dass das Interface "de.wieczorekit.pub.MessagePublisher" implementiert. Dieses Interface schreibt eine Methode "publish" vor, der ein Objekt vom Typ "android.location.Location" übergeben wird. Dabei handelt es sich um die letzte bzw. beste ermittelte Position.

Inhaltlich passiert in der Methode "publishLocation" folgendes:

  • Es wird eine Instanz des Ortungs-Service aus dem System-Kontext geladen. Mit diesem Service wird eine Namens-Liste aller verfügbaren Ortungs-Dienste (z.B. WLAN, GPS, GSM) ermittelt.
  • Sofern diese Liste nicht leer ist, wird jeder verfügbare Ortungs-Dienst gestartet.
  • Im Anschluss daran wird 40 Sekunden lang auf Positions-Änderungen aller Ortungs-Dienste gelauscht.
  • Der beste verfügbare Wert wird anschließend an den "MessagePublisher" übergeben. Dieser publiziert das Ergebnis dann z.B. per SMS.

8.2 Prototyp der App

Anhand des o.g. Programmablaufs ist ein lauffähiger Prototyp der App implementiert worden. Unter Verwendung des im Android SDK enthaltenen Smartphone-Emulators wurde ein entsprechendes Test-Szenario erstellt.

Es wurden zwei identische virtuelle Maschinen erstellt:

  • 5554:NexusOne_2_2
  • 5556:NexusOne_2_2_2

Dabei entspricht "NexusOne_2_2" dem "Handy 1" des Programmablauf-Schemas. Das Gerät ist auf dem Port 5554 zu erreichen. Das Gerät "NexusOne_2_2_2" entspricht dem "Handy 2" des Programmablauf-Schemas. Dieses Gerät ist auf dem Port 5556 zu erreichen. Wie im Programmablauf-Schema ist hier die OA installiert.

Im Test-Szenario dienen die Port-Nummern der beiden Maschinen als Rufnummer.

Um auf den o.g. Maschinen eine Positionsbestimmung per GPS simulieren zu können, war es notwendig, deren Standardkonfiguration anzupassen. Im obersten Ordner einer virtuellen Android-Maschine befindet sich die Datei "config.ini". In dieser Datei können Hardware-Eigenschaften der Maschine definiert werden. Nachfolgend ist der Inhalt der Datei "config.ini" aufgezeigt.

hw.sdCard=yes
hw.accelerometer=yes
hw.dPad=yes
hw.lcd.density=160
hw.camera.maxHorizontalPixels=640
disk.cachePartition.size=66MB
skin.name=HVGA
sdcard.size=16M
hw.trackBall=yes
hw.audioOutput=yes
hw.camera.maxVerticalPixels=480
hw.battery=yes
hw.camera=yes
image.sysdir.1=platforms/android-8/images/
hw.audioInput=yes
hw.touchScreen=yes
hw.gps=yes
skin.path=platforms\android-8\skins\HVGA
disk.cachePartition=yes
hw.keyboard=yes
vm.heapSize=16
hw.ramSize=96
hw.gsmModem=yes

Durch die Zeile "hw.gps=yes" wird die GPS-Funktionalität der Maschine aktiviert. Nur wenn dieses Flag gesetzt ist, können den beiden Maschinen über das ADT-Plugin für eclipse Geo-Koordinaten zur Laufzeit zugespielt werden, um eine realistische Ortung zu simulieren.

Mit Hilfe von Screenshots soll im Folgenden der Prototyp vorgestellt werden. Dabei ist der Ablauf in vier Schritte unterteilt.

Abb. 7: Screenshot "Handy 1", Schritt 1
Abb. 7: Screenshot "Handy 1", Schritt 1

Schritt 1
Abb. 7 zeigt das Gerät "5554:NexusOne_2_2", von dem aus die Nachricht "123" an die Rufnummer "5556" (Gerät: "5556:NexusOne_2_2_2") per SMS gesendet wird.

Abb. 8: Screenshot "Handy 2", Schritt 2
Abb. 8: Screenshot "Handy 2", Schritt 2

Schritt 2
Abb. 8 zeigt das Gerät "5556:NexusOne_2_2_2", das die Nachricht empfangen hat. Man sieht das SMS-Symbol in der oberen linken Ecke, das anzeigt, dass eine neue Nachricht eingegangen ist. Zudem ist das GPS-Symbol aktiv.

Abb. 9: Screenshot "Handy 1", Schritt 3
Abb. 9: Screenshot "Handy 1", Schritt 3

Schritt 3
Abb. 9 zeigt wieder das Gerät "5554:NexusOne_2_2", das eine SMS mit den Geo-Koordinaten des Geräts "5556:NexusOne_2_2_2" erhalten hat. Die Nachricht enthält den geografischen Breiten- und Längengrad, über den sich der Standort des Geräts ermitteln lässt. Diese Daten wurden dem Gerät "5556:NexusOne_2_2_2" über das ADT-Plugin für eclipse zugespielt.

Abb. 10: Screenshot Geo-Koordinaten in Google maps
Abb. 10: Screenshot Geo-Koordinaten in Google maps

Schritt 4
Abb. 10 zeigt den Standort des Geräts "5556:NexusOne_2_2_2" auf einer Karte von Google maps. Dabei können Breiten- und Längengrad durch ein Komma getrennt direkt zur Suche verwendet werden. Das Ergebnis der Suche nach (37.422834, -122.085367) ist das Goolge-Hauptquartier in Kalifornien.

9 Sicherheitskonzept

Das Sicherheitskonzept der Ortungs-App ist darauf ausgerichtet, die Applikation vor unbefugtem Zugriff zu tarnen. So soll beispielsweise im Fall eines Diebstahls nicht sofort ersichtlich sein, dass eine entsprechende App auf dem Smartphone installiert ist. Zu diesem Zweck soll die OA ausschließlich über ein Kontextmenü konfiguriert, gestartet und gestoppt werden können. Auf eine offensichtliche GUI sowie Hinweise auf den Programmstatus wird verzichtet.

Weiterhin darf die App im Ernstfall nicht auf sich aufmerksam machen. Befehle zur Standortbestimmung müssen abgefangen werden, ohne ein akustisches, haptisches oder optisches Feedback zu geben. Wird z.B. eine Standortbestimmung per SMS angefordert, darf das Smartphone nicht klingeln, vibrieren oder blinken. Anderenfalls würde das Smartphone vermutlich zu schnell abgeschaltet, um den Standort zuverlässig zu bestimmen.

Die OA soll zudem beim Tausch der SIM-Karte diesen automatisch auf einem vorkonfigurierten Weg melden. Beispielsweise soll die App eigenständig den Hinweis auf den Tausch der SIM-Karte sowie Standortinformationen an eine bestimmte Nummer per SMS senden.

Zum Sicherheitskonzept der OA zählt jedoch auch die Definition der Rechte, die die App auf dem Smartphone benötigt. Um alle Funktionen unterstützen zu können, werden die folgenden Rechte benötigt:

  • Senden/Empfangen von SMS
  • Senden/Empfangen von MMS
  • Senden/Empfangen von Email
  • Standortbestimmung per WLAN
  • Standortbestimmung per GPS
  • Standortbestimmung per GSM

9.1 Umsetzung des Sicherheitskonzepts

Für den Erfolg der App ist es notwendig, so viele Kriterien des Sicherheitskonzepts wie möglich zu erfüllen. Dabei steht neben dem Rechtemanagement vor allem die Unauffälligkeit der App im Vordergrund.

Die Rechte einer Android-App werden über die Datei "AndroidManifest.xml" gewährt. Diese liegt im obersten Verzeichnis der Projekt-Struktur. Der Inhalt dieser Datei ist nachfolgend abgebildet.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="de.wieczorekit" android:versionCode="1" android:versionName="1.0">
	<application android:icon="@drawable/icon" android:label="@string/app_name">
		<receiver android:name="de.wieczorekit.receivers.SmsReceiver">
			<intent-filter>
				<action android:name="android.provider.Telephony.SMS_RECEIVED" />
			</intent-filter>
		</receiver>
	</application>
	<uses-sdk android:targetSdkVersion="8" android:minSdkVersion="8" />
	<uses-library android:name="com.google.android.maps" />
	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
	<uses-permission android:name="android.permission.SEND_SMS" />
	<uses-permission android:name="android.permission.RECEIVE_SMS" />
</manifest>

Rechtemanagement
Für den o.g. Prototypen wurden neben den Rechten für die Standortbestimmung (ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION) zunächst nur die Rechte zum Senden und Empfangen von SMS (SEND_SMS, RECEIVE_SMS) gewährt.

Unauffälligkeit der App
Zur Tarnung der App auf dem Smartphone wird bewusst auf eine grafische Benutzeroberfläche verzichtet. Die App wird in der Datei "AndroidManifest.xml" als Broadcast-Empfänger von SMS-Nachrichten definiert. Sie reiht sich damit in eine Kette weiterer Empfänger ein und wird immer dann aufgerufen, wenn eine neue SMS empfangen wurde.

Zur Behandlung von Kurznachrichten wurde die Klasse "de.wieczorekit.receivers.SmsReceiver" implementiert. Sie stellt den Einstiegspunkt der App dar. Ihre Methode "onReceive" wird bei jedem Empfang einer neuen SMS durchlaufen. In dieser Methode wird zunächst geprüft, ob der Inhalt der empfangenen Nachricht einer vorkonfigurierten Zeichenkette entspricht.

Nur in diesem Fall wird an dieser Stelle eine Standortbestimmung eingeleitet. Das Ergebnis dieser Standortbestimmung wird dann automatisch an die Sender-Rufnummer geschickt. Stimmt der Inhalt der Nachricht nicht mit der vorkonfigurierten Zeichenkette überein, terminiert das Programm an dieser Stelle und das nächste Glied in der Broadcast-Empfänger-Kette kann mit der Behandlung dieser Nachricht fortfahren.

9.2 Grenzen des Sicherheitskonzepts

Eine Schwachstelle des Sicherheitskonzepts ist die Tatsache, dass eingehende Nachrichten unter Android prinzipiell in Form eines Broadcasts an alle darauf lauschenden Applikationen behandelt werden. Eine Vorhersage der Abarbeitungsreihenfolge sowie eine Unterbrechung der Broadcast-Empfänger-Kette sind daher nicht möglich.

Das Bedeutet unter anderem, dass etwaige Feedbacks des Geräts (z.B. die Anzeige des SMS-Symbols oder die Ausgabe eines akustischen Signals) nicht unterdrückt werden können.

Zwar lässt sich ggf. vom Inhalt der Nachricht nicht zwangsläufig auf dessen tatsächliche Bedeutung schließen, eine komplette Umsetzung des o.g. Sicherheitskonzepts lässt sich mit dieser Architektur der App jedoch nicht realisieren.

9.3 Alternative Kommunikation

Als Alternative zur direkten Kommunikation der mobilen Endgeräte untereinander lässt sich der Prototyp zu einer Client-Server-Version weiterentwickeln. Bei dieser Art der Architektur entfällt das Broadcast-Empfänger-Problem, da hierbei die App serverseitig direkt angesprochen wird.

Abb. 11 zeigt den schematischen Aufbau dieser Architektur.

Abb. 11: Server-Push-Kommunikation
Abb. 11: Server-Push-Kommunikation

Dabei muss der Besitzer von "Handy 2" sich im Vorfeld ein Profil auf dem Server einrichten. Auf dem Server wird dafür eine entsprechende Web-Applikation bereit gestellt. Über diese Web-Applikation kann der Besitzer unter Angabe seines Benutzernamens und seines Passworts eine Standortbestimmung seines Smartphones auslösen.

Die OA, die auf "Handy 2" installiert ist, startet sobald das Gerät hochgefahren wird, baut eine WebSocket-Verbindung zum Server auf und wartet auf Nachrichten vom Server. Dabei spricht man von der so genannten Server-Push-Kommunikation.

Erhält die OA eine Server-Nachricht mit der Aufforderung die aktuellen Geo-Koordinaten zu übermitteln, wird wie zuvor der Standort bestimmt und die Daten an den Server übermittelt. Der Server wiederum reicht diese Daten an den Browser des Besitzers weiter.

Vorteile
Der Vorteil dieser Architektur liegt einerseits darin, dass das Broadcast-Empfänger-Problem umgangen wird. Andererseits hat der Besitzer des zu ortenden Geräts die Möglichkeit, von jedem browserfähigen Gerät aus eine Standortbestimmung auszulösen.

Zudem erweitern sich möglichen Funktionen der App. So kann beispielsweise kostengünstig ein permanentes Tracking durchgeführt werden, ohne dass für jede Ortung SMS-Kosten entstehen. Weiterhin können die Daten bei dieser Art der Architektur besser aufbereitet werden. Die von der OA gelieferten Geo-Koordinaten können serverseitig gleich mit Informationen aus Google maps angereichert werden, sodass die Bedienung an Komfort gewinnt.

Nachteile
Nachteilig ist an dieser Art der Architektur jedoch die deutlich höhere Ressourcen-Belastung des zu ortenden Geräts.

Durch das permanente Aufrechterhalten einer Verbindung mit dem Server erhöht sich der Stromverbrauch. Zudem erhöht sich die Fehleranfälligkeit der App durch das komplexe Verbindungsmanagement. Es müssen Routinen implementiert werden, die die Verbindung zum Server überwachen und ggf. eine neue Verbindung aufbauen.

10 Rechtliche Aspekte

Die Ortung von mobilen Endgeräten kann aus rechtlicher Sicht sehr problematisch sein. Aus diesem Grund müssen auch im Kontext dieser Seminararbeit die rechtlichen Aspekte betrachtet werden, um sicherzustellen, dass die Entwicklung und vor allem die Anwendung der Ortungsapplikation nicht gegen bestehende Gesetze verstoßen.

Grundlage für die Klärung sind hierbei das Recht auf Informationelle Selbstbestimmung und vor allem das Telekommunikationsgesetz (TKG). „Das Recht auf informationelle Selbstbestimmung ist im bundesdeutschen Recht das Recht des Einzelnen, grundsätzlich selbst über die Preisgabe und Verwendung seiner personenbezogenen Daten zu bestimmen.”[8] Kurz gesagt bedeutet dies, dass jeder das Recht hat zu wissen, wer was wann über ihn weiß. Das Telekommunikationsgetz (TKG) ist ein Bundesgesetz, das eigentlich den Wettbewerb im Bereich der Telekommunikation regelt. Dazu gehören z.B. die Bereiche Anmeldepflicht, Abhören von Nachrichten, Marktregulierung, Datenschutz und Vorratsdatenspeicherung.[9]

Aufgrund der vielen Missbrauchsfälle von mobiler Ortung in der Vergangenheit ist am 04.08.2009 eine Gesetzesänderung für das Telekommunikationsgesetz in Kraft getreten, wonach für Ortungsdienste, bei denen Standortdaten an Dritte übermittelt werden, erweiterte Anforderungen gelten. Es wurden folgende Änderungen vorgenommen:

  • "Gemäß § 98 Abs. 1 Satz 2 TKG ist nun Voraussetzung für die Übermittlung von Standortdaten eines Mobilfunkendgerätes an einen anderen Teilnehmer oder Dritte, die nicht Anbieter des Dienstes mit Zusatznutzen sind, eine ausdrücklich, gesondert und schriftlich erteilte Einwilligung des Teilnehmers."[10]
  • "Außerdem ist der Diensteanbieter gem. § 98 Abs. 1 Satz 3 TKG ab sofort verpflichtet, den Teilnehmer spätestens nach jeder fünften Ortung per SMS über die Zahl der erfolgten Ortungen zu informieren."[10]
  • "Nach § 98 Abs. 1 Satz 3 TKG wird der Teilnehmer nicht per SMS über die Anzahl der erfolgten Standortfeststellungen informiert, wenn er gem. § 95 Abs. 2 S. 2 TKG widersprochen hat."[10]
  • "Schließlich stellt ein Verstoß gegen diese Regelungen nun eine Ordnungswidrigkeit dar (§ 149 Abs. 1 Nummern 17a und 17b TKG)."[10]

"Hintergrund der gesetzlichen Neuregelung ist, dass dem einwilligenden Teilnehmer deutlicher vor Augen geführt werden soll, dass er die Feststellung des Standortes seines Mobilfunkendgerätes ermöglicht. Daneben bestand bei einer elektronischen Einwilligung eine nicht unerhebliche Missbrauchsgefahr. Aus diesen Gründen wurde die zuvor erforderliche elektronische Einwilligung durch das Erfordernis einer schriftlichen Einwilligung ersetzt. Das heißt insbesondere, dass eine Einwilligung über eine Textmitteilung nicht mehr möglich ist. Dem Erfordernis der schriftlichen Einwilligung kommt einerseits eine Warnfunktion zu, andererseits werden Zweifel hinsichtlich der Identität des Einwilligenden minimiert. Um der Missbrauchsgefahr zu begegnen, wurde darüber hinaus die Verpflichtung eingeführt, den Teilnehmer spätestens nach jeder fünften Ortung per SMS über die Zahl der erfolgten Ortungen zu informieren."[10]

Die in der Gesetzesverabschiedung formulierten Änderungen betreffen ausschließlich die sogenannte „Fremdortung“, bei der Standortdaten an einen anderen Teilnehmer oder Dritte übermittelt werden. Somit tangieren die Gesetzesänderungen nicht die Entwicklung und Anwendung der Ortungsapplikation, da der Handybesitzer hier lediglich sein eigenes Mobilgerät ortet und nicht fremde Geräte oder Personen, die darüber informiert werden und einwilligen müssten.

11 Weitere Anwendungsgebiete mobiler Ortung

Neben dem Anwendungsfall unserer Seminararbeit, der Ortung verlorener oder gestohlener mobiler Endgeräte, gibt es noch einige weitere Anwendungsgebiete, für welche die verschiedenen Ortungsverfahren genutzt werden können. Im nachfolgenden werde diese aufgelistet und näher erläutert:

Standortbezogene Dienste

Sehr populär in Zeiten der Handy Applikationen für iPhone und Co. ist das zur Verfügung stellen ortsabhängiger Informationen. Dem Benutzer werden hierbei beispielsweise Angaben zur nächstgelegen Apotheke oder Bankfiliale bereitgestellt und gleichzeitig die Möglichkeit geboten, die Route zu diesen Adressen zu berechnen. Gleichzeitig werden Informationen wie z.B. Öffnungszeiten bereitgestellt. Bei Restaurants können zudem auch die Bewertungen anderer User über die entsprechende Örtlichkeit gelesen werden. Auch das Bereitstellen historischer Informationen über Gebäude in der Umgebung als eine Art Stadtführer wird immer populärer.

Standortermittlung und -verfolgung von Personen

Die Ortung der Mobilgeräte selbst kann nicht nur zur Lokalisierung dieser genutzt werden, sondern auch zur Positionsfestellung der Gerätebesitzer. Bedingt durch die Fakten, dass jedes Handy über das Verfahren GSM lokalisiert werden kann, immer mehr Endgeräte auch integrierte GPS Empfänger besitzen und die Eigentümer der Geräte diese meist dabei haben, ist dies relativ leicht möglich. Die Anzahl der Dienstleister auf diesem Gebiet (meist Online Plattformen) ist in den letzten Jahren stark gestiegen. So können Eltern beispielsweise ihre Kinder jederzeit orten lassen, um ihre Position herauszufinden. Auch eher unseriöse Dienste wie die Ortung der Ehepartner gibt es viele. Die Anbieter dieser Dienstleistungen bewegen sich hier jedoch in einem aus gesetzlicher Sicht kritischen Bereich. Die automatische Überwachung von Personen mittels deren Mobilgeräts ohne dessen Zustimmung ist ein Verstoß gegen deren informationelle Selbstbestimmung. Mehr zu dieser Thematik folgt im Abschnitt „Rechtliche Aspekte“ in dieser Seminararbeit.

Flottenmanagement für Transportunternehmen/ Mobile Zeiterfassung

Das Ortungsverfahren GPS wird häufig auch von Transportunternehmen für das Flottenmanagement genutzt. So kann jederzeit die aktuelle Position eines bestimmten Fahrzeugs ermittelt werden, um z.B. zu überprüfen, auf welchem Abschnitt der vorgegeben Route es sich gerade befindet. Zudem ist die Überwachung und Aufzeichnung von Fahrtrouten und die Erstellung von Bewegungs- und Geschwindigkeitsprofilen möglich. Hierzu befinden sich in den Fahrzeugen meistens entsprechende GSP-Empfänger. Der Diebstahlschutz ist ebenfalls ein Einsatzgrund. Ein weiteres Szenario ist die mobile Zeiterfassung. Mittels eigens dafür entwickelten Geräten können Informationen wie die Anmeldung/ Abmeldung und der Pausenbeginn und das Pausenende des Fahrers oder die Standzeiten beim Kunden erfasst werden.

Standortfeststellung nach Notrufen

Ein schon sehr lange eingesetztes Anwendungsszenario ist die Lokalisierung nach Notrufen. Hier kann auf Veranlassung der Rettungsdienste nach einem eingegangenen Notruf der Standort des Anrufers ermittelt werden. Die Verwendung für Rettungsdienste ermöglicht das schnelle Auffinden von Unfallopfern. Dies kann in vielen Fällen lebensrettend sein, da diese oft ihren Aufenthaltsort nicht genau kennen oder sogar falsch angeben. In Ländern wie beispielsweise den USA wird bei einem Notruf immer automatisch die Position des Teilnehmers bestimmt und übermittelt

Polizeiliche Ermittlungen

Auch bei der Polizei werden die bekannten Ortungsverfahren angewendet. Im Zuge polizeilicher Ermittlungen kann aufgrund schwerer Straftaten oder bei Gefahr im Verzug, allerdings nur nach vorheriger richterlicher Anordnung, die Ortung eines Endgeräts durchgeführt werden. Ein Sonderfall stellt dabei allerdings die lautlose SMS dar, mit der das Netz zur genauen Ortung eines Mobiltelefons ohne Kenntnisnahme eines Verbindungsaufbaus durch den Nutzer gezwungen werden kann. Diese Methode wird in der Strafverfolgung als Hilfsmittel der Polizei eingesetzt. Mit Hinweis auf „Gefahr im Verzug“ erfolgt dies teilweise auch ohne richterliche Prüfung, wodurch diese Praxis jedoch umstritten ist.

[11] [12]

12 Fazit

Die Umsetzung der im Projektplan definierten Meilensteine und der darin enthaltenen, einzelnen Projektschritte wurde erfolgreich realisiert. Es ist ein Prototyp entstanden, der die mit speziellem Code versendeten SMS auslesen, die aktuelle Position ermitteln und diese wieder per SMS verschicken kann. Einzig der fünfte und letzte Meilenstein, die Erweiterung des Prototyps um die MSS- und Email-Funktion, wurde im Zuge dieser Seminararbeit aufgrund des Umfangs nicht mehr realisiert. Die gewünschte Grundfunktionalität ist jedoch durch die SMS-Variante erreicht worden.

Die Entscheidung, sich zunächst auf die freie und quelloffene Android Plattform zu beschränken, hat sich als sehr hilfreich hinsichtlich der möglichst unkomplizierten Entwicklung der OA erwiesen. Auch die Nutzung des zentralen SVN Repository erleichterte die Kollaboration des Projektteams untereinander erheblich.

Die Analyse der drei Ortungsverfahren GPS, GSM und WLAN hat gezeigt, dass für eine optimale Bestimmung der Position eine Kombination aus den drei Verfahren zu empfehlen ist. Android wählt hierbei jeweils das beste Verfahren automatisch aus.

Die Motivation dieser Seminararbeit und die damit zusammenhängende Entwicklung der OA war die Ortungsgenauigkeit von 300m, welche die XY GmbH ihren Kunden bisher anbietet, zu verbessern. Dies ist durch den Prototyp der OA bereits deutlich gelungen, da die Genauigkeit bei GPS und WLAN im besten Fall bei 10m liegen kann.

Im Kontext dieser Arbeit wurden zudem rechtliche Aspekte analysiert, mit dem Ergebnis, dass die Entwicklung der OA unproblematisch ist, da es sich um eine Eigenortung handelt und nicht um eine Fremdortung.

Beim Sicherheitskonzept der OA wurde im Laufe der Entwicklung der OA jedoch eine Schwachstelle entdeckt. Durch die Behandlung aller eingehenden Nachrichten als Broadcasts ist eine Vorhersage der Abarbeitungsreihenfolge sowie eine Unterbrechung der Broadcast-Empfänger-Kette nicht möglich. Etwaiges Feedback des Geräts (z.B. die Anzeige des SMS-Symbols oder die Ausgabe eines akustischen Signals) kann also nicht unterdrückt werden. Somit lässt sich eine vollständige Umsetzung des ausgearbeiteten Sicherheitskonzepts nicht realisieren. Die Lösung hierfür wurde jedoch schon theoretisch ausgearbeitet. Der Prototyp könnte zu einer Client-Server-Version weiterentwickelt werden.

Die Analyse weiterer Anwendungsgebiete mobiler Ortung hat zudem viele weitere potentielle Möglichkeiten des Einsatzes der OA aufgezeigt. Die Grundlage ist dank der sehr genauen Ortungsmöglichkeit der OA jeweils gegeben.

13 Referenzen

  1. http://developer.android.com/reference/android/location/LocationManager.html, Abruf am 15.02.2011
  2. http://developer.android.com/reference/android/location/LocationListener.html, Abruf am 15.02.2011
  3. http://developer.android.com/reference/android/content/BroadcastReceiver.html, Abruf am 15.02.2011
  4. http://developer.android.com/reference/android/telephony/SmsManager.html, Abruf am 15.02.2011
  5. http://www.kowoma.de/gps/Positionsbestimmung.htm, Abruf am 18.11.2010
  6. http://www.kowoma.de/gps/Signalaufbau.htm, Abruf am 18.11.2010
  7. http://www.heise.de/mobil/artikel/Multilateration-225072.html, Abruf am 25.11.2010
  8. http://de.wikipedia.org/wiki/Informationelle_Selbstbestimmung, Abruf am 28.11.2010
  9. http://de.wikipedia.org/wiki/Telekommunikationsgesetz_%28Deutschland%29, Abruf am 28.11.2010
  10. 10,0 10,1 10,2 10,3 10,4 http://www.bundesnetzagentur.de/DE/Sachgebiete/Telekommunikation/RegulierungTelekommunikation/Datenschutz/HandyOrtung/HandyOrtung_node.html, Abruf am 28.11.2010
  11. http://de.wikipedia.org/wiki/GSM-Ortung#Anwendungsf.C3.A4lle, Abruf am 28.11.2010
  12. http://www.mcortung.de/, Abruf am 18.11.2010
Persönliche Werkzeuge