Entsperren von Android Smartphones mit Hilfe von Near Field Communication

Die Seite wird erstellt Hortensia-Diana Keßler
 
WEITER LESEN
Entsperren von Android Smartphones mit Hilfe von Near Field Communication
Gottfried Wilhelm Leibniz Universität Hannover
Fachgebiet Distributed Computing
Distributed Computing Security Group

Bachelor-Arbeit
im Studiengang Informatik (B. Sc.)

Entsperren von Android Smartphones mit Hilfe von
Near Field Communication

 Verfasser:          Marcus Wobig
 Erstprüfer:         Prof. Dr. rer. nat. M. Smith
 Zweitprüferin:      Prof. Dr.-Ing. G. von Voigt
 Betreuer:           Dipl. Inf. S. Fahl
 Datum:              03. August 2012
Entsperren von Android Smartphones mit Hilfe von Near Field Communication
Hannover, den 03.08.2012
Hiermit versichere ich, dass ich diese Arbeit selbstständig verfasst habe und
keine anderen als die angegebenen Quellen und Hilfsmittel verwandt habe.

Marcus Wobig
Entsperren von Android Smartphones mit Hilfe von Near Field Communication
Abstract

Die Authentifizierung auf mobilen Geräten soll die Daten des Besitzers vor unerlaub-
tem Zugriff anderer Personen schützen. Dabei gibt es unterschiedliche Möglichkei-
ten die Rechtmäßigkeit des Zugriffes zu prüfen, wie etwa durch Eingabe einer PIN,
oder eines Patterns auf einem Touchdisplay. Beide Wege haben den Nachteil, dass
der Nutzer sich etwas merken muss, was er vergessen könnte.
In dieser Arbeit wird ein alternativer Ansatz entwickelt, der über die Near Field
Communication und einen physikalischen Token den Besitzer erkennt und Zugang
gewährt. Allein durch die Anwesenheit des Token wird das Mobiltelefon zur Ver-
wendung freigeschaltet.
Weil die Near Field Communication in immer mehr Geräten verfügbar ist, wird in
dieser Arbeit die Machbarkeit einer Near Field Communication basierten Freigabe
auf einem Android Smartphone untersucht.

                                         i
Entsperren von Android Smartphones mit Hilfe von Near Field Communication
Inhaltsverzeichnis

Abbildungsverzeichnis                                                              iv

Abkürzungsverzeichnis                                                               v

1. Einleitung                                                                       1
   1.1. Smartphones . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       1
   1.2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    3
   1.3. Inhalt und Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . .     3
   1.4. Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      4

2. Android und Authentikation                                                     6
   2.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    6
   2.2. Was bedeutet Authentifikation? . . . . . . . . . . . . . . . . . . . .      8
        2.2.1. Passwort . . . . . . . . . . . . . . . . . . . . . . . . . . .       9
        2.2.2. PIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     10
        2.2.3. Pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . .     11
        2.2.4. Andere Möglichkeiten . . . . . . . . . . . . . . . . . . . .        11
   2.3. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . .        12

3. NFC - Near Field Communication                                                  13
   3.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   13
   3.2. Technik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    13
   3.3. Einsatzmöglichkeiten und Gefahren . . . . . . . . . . . . . . . . .        14
   3.4. Vergleich zwischen NFC, RFID und Bluetooth . . . . . . . . . . .           15
        3.4.1. NFC und RFID . . . . . . . . . . . . . . . . . . . . . . . .        15
        3.4.2. NFC und Bluetooth . . . . . . . . . . . . . . . . . . . . . .       15
   3.5. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . .        18

4. NFC Unlock - Design                                                             19
   4.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   19
   4.2. Vorüberlegungen . . . . . . . . . . . . . . . . . . . . . . . . . . .      19

                                          ii
Entsperren von Android Smartphones mit Hilfe von Near Field Communication
Inhaltsverzeichnis                                                                    iii

    4.3. Grundaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        24

5. NFC Unlock - Implementierung                                                       25
    5.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     25
    5.2. Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . .       25
    5.3. Einschränkungen . . . . . . . . . . . . . . . . . . . . . . . . . . .        42
    5.4. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . .          43

6. NFC Unlock - Evaluation                                                            44
    6.1. Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     44
    6.2. Limitierungen und Erweiterungen . . . . . . . . . . . . . . . . . .          44
           6.2.1. Recent Apps Taste . . . . . . . . . . . . . . . . . . . . . .       44
           6.2.2. NFC Service Modifikation . . . . . . . . . . . . . . . . . .        46
           6.2.3. Statistiken . . . . . . . . . . . . . . . . . . . . . . . . . . .   46
    6.3. Auswertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       46
    6.4. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . .          48

7. Fazit                                                                              49

A. Anhang                                                                             51

.   Literaturverzeichnis                                                              56
Abbildungsverzeichnis

 2.1. Android Versionen . . . . . . . . . . . . . . . . . . . . . . . . . .       6
 2.2. Android Updates . . . . . . . . . . . . . . . . . . . . . . . . . . .       7
 2.3. Android Screenshot . . . . . . . . . . . . . . . . . . . . . . . . . .      8
 2.4. Zusammensetzung von Passwörtern . . . . . . . . . . . . . . . . .          10

 3.1. Setup Time von NFC und Bluetooth . . . . . . . . . . . . . . . . .         17
 3.2. Pairing bei Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . .    17

 4.1. Verwendete NFC Chips . . . . . . . . . . . . . . . . . . . . . . . .       20
 4.2. Android Lockscreens . . . . . . . . . . . . . . . . . . . . . . . . .      21
 4.3. Softwaretasten . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   22

 5.1. Android Life Cycle . . . . . . . . . . . . . . . . . . . . . . . . . .     27
 5.2. Arten von NFC Tags . . . . . . . . . . . . . . . . . . . . . . . . .       31
 5.3. NDEF Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      33

                                       iv
Abkürzungsverzeichnis

APP    Applikation

NDEF   NFC Data Exchange Format

NFC    Near Field Communication

PDA    Personal Digital Assistant

PIN    Persönliche Identifikationsnummer

RFID   Radio Frequency Identification

                               v
1. Einleitung

Erzähle mir und ich vergesse.
Zeige mir und ich erinnere mich.
Lass mich tun und ich verstehe.
- Konfuzius

1.1. Smartphones

Smartphones sind aus dem heutigen Alltag kaum noch wegzudenken. Sie stellen
ein wichtiges Mittel zur Kommunikation und Unterhaltung dar, ihr Einfluss auf die
Menschen spielt daher eine große Rolle.
Zunächst stellt sich die Frage, wie ein solches Smartphone definiert wird 1 .
Ein Smartphone ist eine Kombination aus mehreren Einzelgeräten, wie zum Beispiel
dem Telefon mit dem Personal Digital Assistant (PDA).
Eine mögliche Definition ist daher:

     • bietet Telefonfunktionalität

     • verfügt über die Möglichkeit, um Programme (sogenannte Apps) von Dritther-
        stellern zu verwenden

     • hat ein großes, hochauflösendes Display

     • hat eine Internetanbindung

     • besitzt Sensoren wie GPS

Dabei ist besonders die Rolle des PDA wichtig. Ein PDA ist ein tragbarer Computer,
der hauptsächlich einen Kalender und verschiedene Software für die Verwaltung von
Aufgaben und Adressen bietet.
Eine weitere entscheidende Entwicklung auf dem Weg zum Smartphone ist das Mo-
biltelefon. Frühe Versionen von Mobiltelefonen hatten eher den Funktionsumfang
 1
     http://wirtschaftslexikon.gabler.de/Archiv/569824/smartphone-v1.html

                                            1
1. Einleitung                                                                             2

eines tragbaren Festnetztelefons. Nach und nach erlaubten schnellere Computerchips
und größerer Speicher umfangreichere Funktionen. PDA und Mobiltelefon über-
schnitten sich mehr und mehr.
Ein Smartphone ist somit ein Multifunktionsgerät, das sich aus einer Kombination
dieser Geräte ergeben hat. Funktionen, die der besseren Bedienbarkeit dienen, finden
sich in immer mehr Geräten. Zu diesen kann auch die Near Field Communication
gezählt werden. Near Field Communication (NFC) ermöglicht eine Kommunikation
von zwei Geräten auf sehr kurzer Distanz. Verwendet werden können Chips, soge-
nannte Tags oder Token und Mobiltelefone, die bereits mit der NFC-Technologie
ausgerüstet sind.
Einige größere Unternehmen planen, eine nutzerfreundliche Bezahlfunktion mithil-
fe von NFC-fähigen Smartphones anzubieten. So bietet Google einen Bezahldienst
namens Google Wallet 2 , über welchen ein Kunde an einem speziellen Terminal mit
seinem Mobiltelefon bezahlen kann. Google und Visa haben sich hierfür zusammen-
geschlossen, um den Nutzern die Möglichkeit zu bieten über 300.000 Visa PayPass
Stationen zu nutzen [8].
Ähnlich zu dem Google Wallet Projekt ist die ISIS Mobile Wallet, bei welcher sich
AT&T, T-Mobile und Verizon Wireless zusammengeschlossen haben 3 , sowie das
Projekt Quick Tap von Orange und Barclaycard 4 in Großbritannien.
Es ist also davon auszugehen, dass die Verbreitung der NFC-Technologie und da-
mit auch der Bezahlmöglichkeiten per Smartphone in Zukunft deutlich zunehmen
werden. Damit wird es auch einen erhöhten Bedarf an durchdachten und sicheren
NFC-Lösungen geben.

Die Datenübertragung zwischen zwei Geräten soll für den Nutzer per NFC verein-
facht werden, da gegenüber Bluetooth das Pairing5 entfällt.
Mithilfe von SmartTags könnten NFC-Chips QR-Codes6 ersetzen und so zum Bei-
spiel auf Filmplakaten, oder ähnlichen Werbeflächen den Nutzer auf passende Inter-
netseiten weiterleiten. Denn QR Codes sind statische Bilder, die lediglich auf eine
Webseite weiterverlinken. NFC kann sogar einen dauerhaften Datenaustausch zwi-
schen zwei Geräten ermöglichen.
Ebenfalls interessant könnten NFC-Tags in wechselnden Umgebungen sein. Steigt
ein Fahrer in sein Fahrzeug, so könnte er das Mobiltelefon an einen Tag halten, wo-
 2
     http://www.google.com/wallet/
 3
     http://www.paywithisis.com/
 4
     http://shop.orange.co.uk/mobile-phones/contactless/
 5
     Pairing: Aushandeln eines Schlüssels, welcher bei einem künftigen Verbindungsaufbau ge-

      nutzt wird
 6
     QR-Code: Zweidimensionale Binärmatrix, die meist eine URL beinhaltet
1. Einleitung                                                                      3

durch es ein bestimmtes Profil auswählt, automatisch in einen Modus mit lautlosen
Benachrichtigungen schaltet, das Navigationssystem startet und die Route zu seiner
Arbeitsstelle anzeigt. Hierdurch entfällt für den Nutzer der Aufwand, jedes Mal diese
Einstellungen erneut vorzunehmen.

1.2. Motivation

Diese Arbeit untersucht, inwieweit es möglich ist, Passwörter - die sich ein Nutzer
merken muss - durch Token zu ersetzen, für die kein gespeichertes Wissen beim An-
wender nötig ist.
Ausgangspunkt dieser Arbeit ist ein Paper von Bonneau et. al. [1], in dem die Mög-
lichkeiten untersucht werden, eine Alternative zum Passwort zu verwenden. Nutzer
können sich oftmals schwer die PIN merken und wählen daher eine einfache Kom-
bination, was zu einer erheblichen Verschlechterung der Sicherheit führt [2]. Das
Smartphone ist so nicht mehr ausreichend gegen unberechtigte Nutzung von Frem-
den geschützt.
NFC könnte dabei eine Alternative zur PIN darstellen, denn um eine Freigabe zu
ermöglichen, muss das Smartphone lediglich den korrekten Token in seiner Umge-
bung erkennen. Der Nutzer muss sich nichts mehr merken oder eingeben, sondern
einen physikalischen Gegenstand bei sich tragen. Wird dieser Gegenstand gegen das
Mobiltelefon gehalten und erkannt, so wird es freigeschaltet und der Nutzer kann es
normal benutzen.
In dieser Arbeit wird das Android Betriebssystem in der Version „Ice Cream Sand-
wich“ 4.0.2 verwendet, welches die Möglichkeit bietet ein Programm zu entwickeln,
um ein Mobiltelefon über NFC zu sperren bzw. zu entsperren.
Dieses bietet dem Nutzer die Möglichkeit, NFC und PIN gleichwertig zu benut-
zen. Die Entscheidung welches Verfahren er verwendet, wird dabei im Hintergrund
gespeichert und kann im Rahmen einer Nutzerstudie auf einen Server übertragen
werden.

1.3. Inhalt und Aufbau

Diese Arbeit gliedert sich zum einen in eine Einführung in die Thematik der Sicher-
heit, Authentifizierung und Technik von NFC und zum anderen in einen Block über
die Implementierung der Near Field Communication in ein Smartphone mit einem
Android Betriebssystem, sowie eine Auswertung der erstellten Lösung.
1. Einleitung                                                                             4

Es wird ein Proof-of-Concept 7 erstellt. Für ein Android-Smartphone wird eine An-
wendung entwickelt, die selbstständig das Mobiltelefon sperrt und nur dann wieder
freigibt, wenn entweder die korrekte PIN eingegeben, oder der korrekte NFC-Token
an das Mobiltelefon gehalten wird.
Mit dieser App soll später in einem nachfolgenden Projekt die Akzeptanz der Nutzer
gegenüber NFC zum Freischalten des Smartphones untersucht werden.

1.4. Related Work

Wie in Kapitel 1.1 bereits beschrieben, existieren Bezahlsysteme, welche die Near
Field Communication auf Smartphones verwenden. Es gibt jedoch auch Projekte, die
kein Smartphone nutzen, sondern stattdessen eine eigenständige Karte mit Near Field
Communication, so etwa Visa mit VisaPaywave 8 oder GiroGo 9 der Sparkassen.

Authentifizierung kann über verschiedene Methoden erfolgen. Die Firma AT&T hat
dazu in ihren AT&T Labs [3] einige Möglichkeiten demonstriert. Darunter der bio-
akustische Datentransfer, bei welchem ein Signal über die Person geleitet wird, wel-
ches von einem Türgriff mit Sensor erkannt und unterschieden werden kann und
damit die Person identifiziert. Ähnliche Verfahren nutzen oft aus, dass es bei einem
Menschen verschiedene eindeutige biometrische Merkmale gibt, die zur Identifizie-
rung verwendet werden können.

Ein Projekt, das die Machbarkeit von magnetbasierten Token zur Identifizierung
prüft ist [4]. Der Vorgang der Authentifizierung ist sehr ähnlich zu einem NFC Un-
lock, es wird ein Magnetfeld verwendet, das vom Smartphone - genauer, von seinem
Kompass - detektiert werden kann. Darüber hinaus wird in [4] auch die Möglichkeit
getestet, Audiosignale zur Freischaltung eines Smartphones zu nutzen. Der große
Vorteil ist der sehr geringe Stromverbrauch, wenn die Authentifizierung über das im
Smartphone verbaute Mikrofon mit einem akustischen Signal erfolgt.

Da es zwar möglich ist, einen Nutzer anhand seiner einzigartigen Iris zu identifizie-
ren, dieser Ansatz jedoch ziemlich teuer ist, beschäftigt [5] sich mit einer günsti-
geren Variante. Dabei werden die Augenbewegungen untersucht und mit Hilfe von
bestimmten Gesten kann der Benutzer sich identifizieren. Da es viel einfacher, ist
lediglich die grobe Richtung zu verfolgen in die der Nutzer schaut, als wo er exakt
 7
     Machbarkeitsnachweis
 8
     http://www.visa.de/de/uber_visa/presse/aktuelle_pressemitteilungen/sechs_deutsche_
      banken_f%C3%BChren_2.aspx
 9
     http://www.girogo.de/
1. Einleitung                                                                        5

hinblickt, kann günstigere Hardware verwendet werden. Nachteil dieser Methode,
verglichen mit der Eingabe eines herkömmlichen Passwortes, ist die Geschwindig-
keit, da es signifikant länger dauert ein Passwort mit den Augen einzugeben, als mit
den Händen [5].

Eine weitere Möglichkeit Zugang zu einem Gerät zu erteilen ist die Gesichtserken-
nung. Dabei nimmt das Gerät ein Bild vom Benutzer auf und vergleicht es mit einer
gespeicherten Version. Ist die Übereinstimmung groß genug, so gilt der Nutzer als
identifiziert und erhält Zugang.
Ab der Version 4.0 von Android stellt das Betriebssystem standardmäßig diese Mög-
lichkeit zur Verfügung. In Sicherheitstests wurde jedoch festgestellt, dass sich dieses
System teilweise sehr einfach überwinden lässt, indem der Angreifer eine Fotografie
des Besitzers vor die Kamera hält [6].

Bei vielen Ansätzen besteht die Gefahr, dass ein Angreifer einen Benutzer dazu
zwingt, ihm sein Passwort zu verraten oder den Token zu übergeben, der die Frei-
schaltung ermöglicht. [7] untersucht einen Weg das zu unterbinden, indem zusätzlich
zu einem Passwort der Stress in der Stimme gemessen und mit einem Muster vergli-
chen wird. Ist Stress in der Stimme des Opfers erkennbar, wird der Zugriff verwei-
gert. Auf diese Weise kann ein Angreifer sein Ziel nicht erreichen, ganz gleich ob er
die Tokens besitzt, oder den Nutzer zwingen will ihm Zugang zu erteilen.
Einsatzmöglichkeiten wären die Türen von Flugzeugen, Banktresore und ähnliches.
Denn bei diesen besteht die Gefahr eines Angriffes, der über eine Person erfolgt.
2. Android und Authentifikation

2.1. Einleitung

Android ist ein Betriebssystem für mobile Geräte wie Smartphones oder Tablets und
wird von Google entwickelt. Derzeit [9] hat es mit 56.1% die höchste Verbreitung
auf dem Handymarkt, noch deutlich vor Apples iOS mit 22.9%.
Android basiert auf Linux. Ein Vorteil ist zum einen die Sicherheit und zum anderen
die Offenheit des Systems. Drittanbieter können einfach Applikationen entwickeln
und über den Google Market den Nutzern zur Verfügung stellen. Entweder kostenlos,
oder gegen einen bestimmten Geldbetrag. Darüber hinaus ist der Entwickler nicht
an den Google Market gebunden, sondern kann die Applikation auf seiner eigenen
Homepage zur Verfügung stellen.
Zum Stand dieser Arbeit [10] ist die Version 2.3 unter Android am verbreitetsten,
obwohl Version 4.0 aktuell ist.

                   Abbildung 2.1.: Versionen von Android [10]

Dabei gibt es große Unterschiede bei den Anbietern, HTC schafft es innerhalb von
5,6 Monaten [11] eine neue Android Version von Google in ihre Mobiltelefone zu
integrieren. Andere Anbieter von mobilen Betriebssystemen benötigen deutlich län-
ger (siehe Abb.: 2.2).

                                        6
2. Android und Authentifikation                                                    7

Abbildung 2.2.: Monate, die die Hersteller benötigen, um ein Android Update
                in ihr Handy zu integrieren [11]

Der Markt der Android Smartphones ist also in Bezug auf die Versionen sehr hete-
rogen, bei der Implementierung einer Applikation ist daher auf diesen Umstand zu
achten. Dies liegt vor allem an den Anbietern selbst, die erst eine neue Version von
Android auf ihre Hardware anpassen müssen und eigene Funktionen beziehungswei-
se eine eigene Oberfläche bereitstellen möchten.
Die schnelle Aktualisierung von Google für sein Betriebssystem Android hat jedoch
den Vorteil für diese Arbeit, dass neue Funktionen bereits zur Verfügung stehen und
sich testen lassen, so auch die Near Field Communication Technologie.

Android bietet dem Nutzer verschiedene Möglichkeiten, um sich am System zu au-
thentifizieren. Vom Betriebssystem aus ist eine gewöhnliche PIN nutzbar. Der Nutzer
wählt eine Nummer, welche gespeichert wird. Wird das Smartphone ausgeschaltet,
oder in den Standby Modus versetzt, so muss nach dem Aktivieren die korrekte PIN
eingegeben werden. Es ist unter Android üblich, dass das Passwort beim Eingeben
als Symbolreihe angezeigt wird, wobei das jeweils letzte Zeichen kurz im Klartext
dargestellt ist. So soll das Schulter surfen erschwert werden, während der Nutzer den
Komfort hat abschätzen zu können, ob er die richtige PIN eingegeben hat. Die PIN
darf nicht kürzer als vier Zeichen sein.
Der Nutzer kann statt einer PIN auch ein Passwort verwenden. Die Vorgaben sind
die gleichen wie bei der PIN Eingabe.
Ein weiterer Weg das Mobiltelefon gegen unberechtigte Zugriffe zu schützen ist das
Pattern. Auf dem Touchscreen des Gerätes werden neun Knoten angezeigt, die der
Nutzer mit dem Finger berühren kann. Das dadurch entstehende Muster dient in
Zukunft dann zur Authentifizierung. Auch hier gilt, dass mindestens vier Knoten,
maximal jedoch neun gewählt werden können.
Die unsicherste Möglichkeit das Mobiltelefon zu schützen stellt die Gesichtserken-
2. Android und Authentifikation                                                  8

nung dar. Der Nutzer macht ein Bild von seinem Gesicht, welches im Gerät gespei-
chert wird. Über die eingebaute Front-Kamera kann Android nun den Nutzer abfoto-
grafieren und mit dem Bild aus der Datenbank vergleichen. Ist die Übereinstimmung
groß genug, so wird das Gerät freigegeben. Allerdings wird bereits im Aktivierungs-
bildschirm von Android darauf hingewiesen, dass die Gesichtserkennung wesentlich
unsicherer als PIN, Passwort oder das Pattern ist (siehe Abbildung 2.3).

Abbildung 2.3.: Screenshot: Android 4.0 Sicherheitswarnung für Face
                Unlocking

2.2. Was bedeutet Authentifikation?

Um Zugriff auf eine Ressource oder ein Gerät zu bekommen, muss ein Nutzer sich
gegenüber einem Server als die korrekte Person mit den nötigen Rechten auswei-
sen können. Die Erteilung der Berechtigung kann aufgrund verschiedener Faktoren
gewährt werden:

   • etwas, das der Nutzer weiß

   • etwas, das der Nutzer besitzt

   • etwas, das der Nutzer ist
2. Android und Authentifikation                                                     9

Der Nutzer kann beispielsweise ein Passwort oder eine PIN wissen, mithilfe dessen
er sich ausweisen kann. Dabei muss der Nutzer jedoch dafür Sorge tragen, dass PIN
/ Passwort nicht von einem unberechtigten Dritten in Erfahrung gebracht werden.
Gängige Methoden um diese Informationen unberechtigterweise zu erlangen, wären
zum Beispiel Shoulder Surfing, Keylogger usw.
Besitzt der Nutzer einen bestimmten Gegenstand, so kann er sich mit diesem auswei-
sen. Ein Beispiel aus dem realen Leben wäre ein simpler Haustürschlüssel. Nur mit
diesem ist es möglich, eine Haustür zerstörungsfrei zu öffnen. Auch hier muss der
Nutzer darauf achten, dass sein Gegenstand nicht gestohlen wird, oder er ihn verliert.

Biometrische Verfahren stellen eine weitere Möglichkeit dar, den Nutzer zu erken-
nen. Dabei kann zum Beispiel die Iris abgetastet werden. Auch möglich ist der Fin-
gerabdruck als Erkennungsverfahren.
Auf biologischen Gegebenheiten beruhende Authentifizierungsverfahren sind nicht
absolut sicher [13] und auch nicht perfekt. Bei schwerer körperlicher Arbeit nutzen
sich die Minutien auf den Fingerkuppen unter Umständen stark ab, so dass sie für
ein Anmeldeverfahren ungeeignet sind. Ebenso problematisch ist die Haut älterer
Menschen, da sie nach etlichen Jahren an Struktur verliert bzw. Haut durch Son-
neneinstrahlung geschädigt wird, oder generell Personen die durch diese Verfahren
benachteiligt sind. Außerdem können diese Verfahren bestimmte Menschen benach-
teiligen, die zum Beispiel durch einen Unfall oder eine Behinderung nicht daran
teilnehmen können.
Zusammengefasst kann gesagt werden, dass kein Verfahren gleichzeitig preiswert,
bequem und absolut sicher ist.

2.2.1. Passwort

Passwörter sind weit verbreitet. Wie in [12] gezeigt, können die Nutzer von alpha-
numerischen Passwörtern in vier Kategorien eingeteilt werden. Lediglich die Grup-
pe “cryptic“ verwendet schwer zu erratende Passwörter. Die drei anderen Gruppen
verwenden Begriffe aus ihrem alltäglichen Umfeld. Daher können diese Passwort-
gruppen mit Kenntnis des Umfeldes leichter angegriffen werden als die Gruppe der
“cryptic“.
Abbildung 2.4 zeigt ebenfalls, dass die meisten Nutzer Passwörter mit einer durch-
schnittlichen Länge von 6-8 Zeichen verwenden, die hauptsächlich aus Großbuch-
staben, Kleinbuchstaben oder Mischungen davon bestehen. Sonderzeichen sind eher
selten anzutreffen.
2. Android und Authentifikation                                                  10

Durch die geringe Anzahl der möglichen Kombinationen sind unkreative, oder zu
kurze Passwörter anfällig für Brute-Force Angriffe mithilfe von großen Wörterbü-
chern. Dabei werden alle Worte durchprobiert, die in einer Quelle stehen. Oftmals
können durch bestimmte Regeln noch mehr Kombinationen automatisiert erzeugt
und probiert werden, die zum Beispiel noch Sonderzeichen enthalten.

    Abbildung 2.4.: Welche Zeichen für ein Passwort genutzt werden [12]

2.2.2. PIN

Eine PIN ist quasi eine Geheimzahl und damit eine Untermenge von Passwörtern.
Verwendet wird sie häufig von Banken an Geldautomaten oder für Mobiltelefone.
Dabei ist die Einfachheit der PIN auch ihre Schwachstelle.
Beispiel PIN am Geldautomat:

   • Es gibt 10 Ziffern zur Eingabe {0...9}

   • Es gibt 4 Stellen für die Eingabe {Position1, Position2, Position3, Position4}

Daraus ergeben sich 104 = 10.000 mögliche Kombinationen.
Ist das angegriffene System nicht gegen ein schnelles Durchprobieren der Kombina-
tionen geschützt, so kann die PIN in einer vertretbaren Zeit geknackt werden.
Auf Mobiltelefonen wird nach einigen fehlgeschlagenen Versuchen ein Zeitraum
eingeführt, den der Nutzer warten muss bis er weitere Kombinationen eingeben kann.
2. Android und Authentifikation                                                  11

Unter Umständen kann sogar das Mobiltelefon gesperrt werden. Es muss dann mit
einer anderen PIN, oft PUK10 genannt, freigeschaltet werden.

2.2.3. Pattern

Mit dem Aufkommen von Smartphones haben sich noch weitere Authentifizierungs-
verfahren durchgesetzt. Beim Android Pattern handelt es sich um ein Muster, das der
Nutzer auf dem Touchscreen mit seinem Finger nachfahren muss. [15]
Auf dem Display werden neun Knoten angezeigt, der Nutzer muss sich ein Muster
ausdenken, das mindestens die Länge vier hat und maximal alle neun Knoten bein-
haltet. Knoten mehrfach zu wählen ist dabei nicht möglich.
Daraus ergeben sich 389.112 mögliche Kombinationen [16].
Schwachstelle dieses Verfahrens können die Abdrücke auf dem Display sein. Wählt
der Nutzer eine zu simple Kombination, so kann eventuell die Route des Fingers
nachverfolgt werden, indem die Fettschmierungen auf dem Display betrachtet wer-
den. Durch weitere Überlegungen wie etwa dem Wischverhalten der Nutzer kann
die Anzahl der möglichen Kombinationen noch weiter auf bis zu 158.410 Patterns
eingeschränkt werden [14], [16].

2.2.4. Andere Möglichkeiten

Es gibt noch eine Fülle an anderen Optionen, die genutzt werden können, um den
Nutzer als rechtmäßigen Verwender zu erkennen. Einige Verfahren sollen daher hier
vorgestellt werden:

      • Passfaces

      • Physikalische Token

      • Gesichtserkennung

Bei den Passfaces muss der Nutzer kein Passwort eingeben, sondern unter einer An-
zahl aus Bildern, die zufallsbasiert zusammengestellt werden, die Gesichter finden,
die er vorher festgelegt hat [12]. Die Idee ist daher in den Bereich „etwas, das der
Nutzer weiß“ einzuordnen.
Bei diesem Verfahren wird der Umstand ausgenutzt, dass Menschen sich besser et-
was visuelles merken können als etwas abstraktes wie ein Passwort. Dies ist auch als
der „Picture Superiority Effect“ bekannt [21].
10
     Personal Unblocking Key
2. Android und Authentifikation                                                  12

Allerdings zeigt [21] ebenfalls, dass diese Methode unter Umständen unsicher ist.
Denn basierend auf der Rasse, dem Geschlecht etc. des Nutzers, kann der mögliche
Lösungsraum unter Umständen so stark eingeschränkt werden, dass das Verfahren
leicht zu brechen ist.

Physikalische Token sind Gegenstände, die eine bestimmte Eigenschaft besitzen und
daher als Identifizierungsmerkmal verwendet werden können. Sei es durch ihre Form,
ihr Gewicht oder eine Informationsübertragung in Form eines elektrischen Feldes
(zum Beispiel NFC).
Sie fallen damit unter „etwas, das der Nutzer besitzt“.
Dieses Verfahren wird den Fokus dieser Arbeit bieten und ist der Ansatz nach dem
die Applikation entwickelt wird.

Wie in [17] nachzulesen, funktioniert Gesichtserkennung über markante Punkte im
Gesicht und fällt in den Bereich „etwas, das der Nutzer ist“.
Es werden bestimmte Abstände von Punkten miteinander verglichen. Da ein mensch-
liches Gesicht nicht perfekt symmetrisch ist, kann über diese Abstände ein Nutzer
erkannt werden. Das Verfahren lässt sich jedoch unter Umständen mit einer simplen
Fotografie austricksen (siehe [6]).

2.3. Zusammenfassung

Android ist ein Betriebssystem, das auf vielen gängigen mobilen Geräten läuft. Es
bietet dem Nutzer viele Funktionen zur Kommunikation und Verwaltung. Um die
Rechtmäßigkeit des Zugriffes eines Nutzers auf das Gerät zu klären, werden Au-
thentifizierungsverfahren wie die PIN oder das Pattern angeboten.
Jedes dieser Verfahren hat Stärken und Schwächen, die sich auf die Sicherheit bezie-
hungsweise den Komfort auswirken.
Diese Arbeit und die daraus entstandene Applikation ist daher ein erster Schritt um
festzustellen, welches die Stärken und Schwächen der Near Field Communication
bezogen auf Sicherheit und Komfort sind.
3. NFC - Near Field Communication

3.1. Einleitung

NFC steht für Near Field Communication oder auf Deutsch Nahfeld-Kommunikation.
Dabei können Daten auf bis zu 20 cm [18] kontaktlos übertragen werden. Für diese
Arbeit konnte diese Distanz jedoch nicht erreicht werden, da für eine größere Ent-
fernung auch eine starke Sendeleistung nötig ist. Die maximale Entfernung lag hier
etwa bei 2 cm.
NFC basiert auf einer ähnlichen Technik wie RFID. Die kurze Übertragungsdistanz
ist ein Sicherheitsfeature und gewollt. Es bieten sich daher für Micropayment Sy-
steme an. Auch ein Ersatz für QR Codes ist denkbar, da die Anbieter über einen
NFC-Tag mehr Informationen direkt übermitteln können, der Datenfluss ist nämlich
kontinuierlich entgegen den statischen QR Codes.

3.2. Technik

NFC ist eine Weiterentwicklung der RFID Technologie und besitzt zwei grundlegen-
de Modi, den Passiven und den Aktiven [18].
Beim Passiven erzeugt ein Gerät ein Magnetfeld, das Strom in einem Empfänger
induziert. Dadurch werden dann Informationen ausgesendet, die vom Erzeuger ge-
lesen werden können. Der Erzeuger des Magnetfeldes wird dabei Initiator genannt,
der passive Empfänger Target.
Beim aktiven Modus gibt es zwei gleichwertige Geräte, die über ihre elektromagne-
tischen Felder Informationen übertragen können.
Die Technologie selbst arbeitet mit 13,56 MHz [18] und bietet dabei verschiedene
Übertragungsraten von 106, 212 oder 424 kbit/s [19].
Bis 424 kbit/s kann die Übertragung im Passiv-Modus erfolgen, bei theoretischen
höheren möglichen Raten müssen allerdings beide Seiten im Aktiv-Modus arbeiten,
da sonst die Sendeleistung zu gering ist.

                                            13
3. NFC - Near Field Communication                                                 14

Die Übertragung erfolgt im Half-Duplex Verfahren. Das bedeutet, dass ein Master-
Slave Verhältnis existiert. Das Gerät, das sich im Poll-Mode befindet, wird Master
genannt, das Gerät, das sich im Listening-Mode befindet Slave. Während die eine
Seite sendet, deaktiviert die andere Seite ihr elektromagnetisches Feld und schaltet
in den Empfangsmodus, da sich im Full-Duplex Verfahren sonst beide Felder stö-
ren würden. Ist die eine Seite fertig mit dem Senden der Daten, werden die Rollen
getauscht [22].

3.3. Einsatzmöglichkeiten und Gefahren

Durch die geringe Reichweite eignet sich NFC für sicherheitskritische Anwendun-
gen wie zum Beispiel Micropayment Angebote [20]. Ein Kunde, der etwas kaufen
möchte, kann sein NFC taugliches Smartphone an der Kasse auf ein dafür vorge-
sehenes Terminal legen. Dieses erkennt die zur Zahlung nötigen Informationen und
bucht das Geld vom NFC-Chip ab. Da die Beträge klein sind, sollen Diebstahl und
Betrug uninteressant werden.
Ein weiteres großes Einsatzfeld ist der Ticketkauf. Die Deutsche Bahn AG bietet in
einem Pilotprojekt namens Touch & Travel11 seinen Kunden die Möglichkeit, direkt
am NFC-Terminal Reisetickets zu kaufen, die als gültiger Fahrausweis dienen.
Da die NFC-Technologie nur auf sehr geringe Entfernungen von etwa 20 cm ausge-
legt ist [18], muss ein eventueller Angreifer entweder direkten Kontakt zum Gerät be-
kommen oder zum Beispiel das Bezahlterminal manipulieren. Bei der Entwicklung
der Applikation für diese Arbeit lag die maximale Entfernung sogar noch deutlich
geringer als die 20 cm bei etwa 2 cm. Beispielsweise könnte ein Schreib-/Lesegerät
in ein Sofa eingearbeitet werden. Setzt sich jemand auf die manipulierte Couch, so
könnte ein Angreifer unbemerkt das Mobiltelefon in der Gesäßtasche attackieren.
Der direkte Kontakt wird dabei jedoch nochmals eingeschränkt, indem Android als
Sicherheitsfeature den NFC-Service deaktiviert sobald der Bildschirm ausgeschaltet
wird. Auf diese Weise soll das sogenannte “Buttsniffing“ unterbunden werden, bei
dem ein Angreifer an der Hosentasche des Opfers vorbei läuft und mit einem Gerät
Daten ausliest oder auf das Mobiltelefon des Opfers aufspielt [34].
Weitere Einsatzmöglichkeiten sind denkbar, so zeigen NXP und Continental12 in ei-
nem gemeinsamen Pilotprojekt einen Autoschlüssel-Ersatz. Über ein NFC-fähiges
Smartphone authentifiziert sich der Nutzer am Fahrzeug und muss nicht erst noch

11
     http://www.touchandtravel.de
12
     http://www.pressetext.com/news/20110217011
3. NFC - Near Field Communication                                                    15

manuell die Tür aufschließen. Ähnliche Verfahren für Eingangstüren sind ebenfalls
denkbar.
Im Juli 2012 gelang es dem Sicherheitsspezialisten Charlie Miller durch NFC die
Kontrolle über verschiedene Smartphones zu erhalten und mit Schadcode zu infizie-
ren13 .
Potentiell gefährlich dürften auch manuell geänderte Werbeflächen sein, auf denen
ein NFC-Chip angebracht ist. Tauscht man diesen gegen einen präparierten aus, so
könnte der Chip auf eine Webseite leiten, die eine Schwachstelle im Mobiltelefon
ausnutzt. Die Gefahr wäre für den Nutzer im Vorfeld nur schwer ersichtlich.

3.4. Vergleich zwischen NFC, RFID und Bluetooth

3.4.1. NFC und RFID

NFC ist eine Untermenge zu RFID, da beide Technologien auf dem gleichen Grund-
prinzip beruhen. Ein aktiver Sender emittiert ein Signal, das eine Antwort im Emp-
fänger erzeugt. RFID kann jedoch nur mit einem aktiven Sender und einem passiven
Empfänger arbeiten, wohingegen NFC auch eine aktiv/aktiv Verbindung unterstützt.
So können von einem Mobiltelefon mit NFC Daten auf ein anderes übertragen wer-
den und zurück, bei Android nennt sich dieses Feature Beam.
RFID kann auf unterschiedlichen Frequenzen arbeiten14 , unter anderem 13,56 MHz.
Die Frequenz ist also die gleiche wie bei NFC. Da RFID eine größere Reichweite bie-
tet, unterscheiden sich die möglichen Anwendungen zu NFC. Während RFID eher
für die Güterkennzeichnung eingesetzt wird, können mit NFC, wenn auch begrenzt,
Daten übertragen und ausgetauscht werden.

3.4.2. NFC und Bluetooth

Bluetooth arbeitet in einem Frequenzbereich zwischen 2,402 und 2,480 GHz [23].
Dieser Bereich wird auch von anderen Geräten genutzt, daher kann es zu Einstrah-
lungen in das Sendefeld kommen. Mikrowellen, WLANs und Schnurlostelefone kön-
nen also zu Störungen führen. Es wird versucht dies zu vermeiden, indem Bluetooth-
Geräte ein sogenanntes Frequenzhopping durchführen und dabei mehrfach pro Se-
kunde die Frequenz ändern. So werden die Überschneidungen und damit die Störun-
gen minimiert.
13
     http://heise.de/-1652934
14
     http://www.itwissen.info/definition/lexikon/RFID-Frequenz-RFID-frequency.html
3. NFC - Near Field Communication                                                      16

Es bietet im Vergleich zu NFC deutlich höhere Datenübertragungsraten von bis zu 3
Mbit/s [24], die sowohl synchron als auch asynchron sein können.
Bluetooth bietet die Möglichkeit größere Netze zu erstellen, in denen bis zu 255 Ge-
räte verbunden sein können. Über NFC können aufgrund der geringen Reichweite
effektiv nur einige wenige Geräte gleichzeitig verbunden werden.
Die Reichweite von Bluetooth ist mit bis zu 100 m um den Faktor 500 höher als bei
NFC, das auf etwa 20 cm begrenzt ist [18]. Dadurch ist es allerdings auch einfacher
für einen Angreifer den Datenverkehr von Bluetooth mitzuhören. Da Bluetooth je-
doch seit einigen Jahren auf dem Markt ist, gilt dessen Sicherheit als ausreichend
erprobt. Angriffe sind also eher schwer und nur unter bestimmten Bedingungen er-
folgreich [27], [28]. NFC hingegen ist noch vergleichsweise jung, wie sicher es daher
in der Praxis ist, muss sich also erst noch zeigen.
Da Bluetooth eine Verbindung über eine größere Strecke ermöglicht, muss auch die
Sendeleistung entsprechend hoch sein. Dadurch wird dann auch mehr Strom ver-
braucht. NFC arbeitet auf eine viel kleinere Entfernung und benötigt daher nur eine
kleine Antenne und einen geringen Strom von unter 15 mA15 . Außerdem wird NFC
deaktiviert, wenn der Bildschirm ausgeschaltet ist.
Da NFC auch aktiv/passiv arbeiten kann, wird in den Tags keine Stromquelle benö-
tigt, der erforderliche Strom zum Betreiben wird durch die Induktion bereitgestellt.
Um seine Gegenstelle zu erkennen, braucht NFC lediglich wenige Milisekunden.
Bluetooth ist verglichen zu NFC deutlich langsamer und benötigt bis zu sechs Se-
kunden (siehe Abbildung 3.1).

Auch der Ablauf beim Erkennen ist anders, für NFC ist es lediglich notwendig die
zwei Geräte aneinander zu halten, bei Bluetooth muss erst noch ein Pairing vorge-
nommen werden. Den genauen Ablauf zeigt Abbildung 3.2. Beim Pairing wird ein
Prozess ausgeführt, an dessen Ende ein Verbindungsschlüssel steht. Über diesen kön-
nen beide Geräte in Zukunft miteinander kommunizieren. Wird der Schlüssel jedoch
auf mindestens einem der Geräte gelöscht, so muss beim nächsten Verbindungsauf-
bau der Pairingprozess erneut durchlaufen werden.

15
     http://www.popsci.com/gadgets/article/2011-02/near-field-communication-helping-
      your-smartphone-replace-your-wallet-2010/
3. NFC - Near Field Communication                                 17

        Abbildung 3.1.: Setup Time von NFC, Bluetooth u.a. [25]

               Abbildung 3.2.: Pairing bei Bluetooth [26]
3. NFC - Near Field Communication                                               18

Da NFC und RFID relativ ähnliche Technologien sind und auf dem gleichen Fre-
quenzband miteinander arbeiten können, sind sie unter bestimmten Umständen kom-
patibel. Bluetooth hingegen arbeitet nach einem anderen Verfahren, nämlich in einem
anderen Frequenzband und ist daher inkompatibel zu NFC und RFID.
Einer der Einsatzzwecke von Bluetooth ist, Geräte unabhängiger von Kabeln zu ma-
chen. Headsets, Tastaturen und externe I/O-Geräte sollen ihre Daten per Funk über-
tragen. Dieser Ansatz ist bei NFC nicht möglich, da bereits die geringe Übertra-
gungsgeschwindigkeit etliche Anwendungen wie etwa die Übertragung von Bildern,
die unter Bluetooth möglich ist, nicht erlaubt.

3.5. Zusammenfassung

NFC ist eine neue und vielversprechende Entwicklung. Die begrenzte Reichweite ist
dabei eher ein Vorteil, da so Anwendungen wie Micropayments möglich werden.
Außerdem können Geräte mit NFC im aktiven Modus miteinander Informationen
austauschen, was die Übertragung von Daten von einem Gerät zum anderen sehr er-
leichtert. Im Vordergrund steht der Nutzerkomfort.
Ob und, wenn ja, wie sich NFC großflächig durchsetzen wird, hängt auch von der
Sicherheit der Geräte ab. Viele Smartphone-Hersteller zögern, ihre Geräte NFC-
tauglich zu produzieren. Denn es gibt nur eine begrenzte Anzahl an Anwendungs-
möglichkeiten auf dem Markt, daher muss die Zeit zeigen, wie erfolgreich NFC wird
und wie stark es sich verbreiten kann.
4. NFC Unlock - Design

4.1. Einleitung

Dieses Kapitel erläutert, welche Entscheidungen zu treffen waren, bevor eine Appli-
kation für NFC Unlocking programmiert werden konnte.
Im Vordergrund stand dabei die geforderte Funktionalität. Das Mobiltelefon muss
mithilfe eines NFC-Tags freischaltbar sein. Alternativ dazu soll die Möglichkeit ge-
boten werden, das Mobiltelefon mit einer PIN freizuschalten. Darüber hinaus soll
das Mobiltelefon eine Statistik darüber führen, welches dieser Verfahren der Be-
nutzer tatsächlich verwendet. Das Layout der Oberfläche spielt eine untergeordnete
Rolle, muss jedoch nutzbar sein.
Der NFC-Tag enthält eine individuelle Kennung, anhand derer das Mobiltelefon die
Freigabe erteilen oder ablehnen kann. In diesem Fall wird die ID der Tags verwen-
det. Hält der Nutzer den Tag nahe genug an das Mobiltelefon, so kann es den Tag
erkennen, prüfen ob es sich um die korrekte ID handelt und die Freigabe erteilen
oder gegebenenfalls ablehnen.

4.2. Vorüberlegungen

Der Ansatz für diese Arbeit war zunächst ein Smartphone mit einem NFC-Token
zu verwenden, wobei der Token zum Beispiel in eine Halskette oder ein Armband
eingesetzt werden könnte. Trägt der Nutzer das Token in Form eines Schmuckstückes
bei sich, so erkennt das Smartphone diesen und schaltet sich frei, ohne dass der
Bediener des Smartphones irgendeine Aktion manuell auslösen muss.
Da die tatsächliche Reichweite der Near Field Communication jedoch stark unter
der erwarteten Reichweite von 20 cm liegt, musste die Idee mit dem unauffälligen
Schmuck verworfen werden. Im Umgang mit den NFC-Tags lag die reale Reichweite
bei ca. 2 cm. Eventuell möglich wäre noch ein Ring, da dieser unter Umständen

                                        19
4. NFC Unlock - Design                                                          20

direkt am Mobiltelefon anliegt. Die zuverlässigste Art ist es, einen NFC-Token in
Form eines Chips zu verwenden.

                     Abbildung 4.1.: Verwendete Chips [29]

Dieser kann an den Schlüsselbund gehängt, oder in der Klebevariante auf den Schreib-
tisch geheftet werden. Dann reicht es, den Token kurz mit dem Smartphone zu berüh-
ren. Bei dieser Arbeit wurden Chips der Firma Tagstand verwendet, siehe Abbildung
4.1.

Da Android ein sehr auf Sicherheit bezogenes Betriebssystem ist [30] und gleich-
zeitig den Entwicklern die Möglichkeit geboten werden soll, einfach Applikationen
zu programmieren, musste ein Kompromiss zwischen Sicherheit und Machbarkeit
gefunden werden.
Für diese Arbeit kamen grundsätzlich drei Ansätze in Frage: Entweder eine Home-
screen Applikation zu schreiben, eine normale Applikation oder das Betriebssystem
zu patchen und damit ein Custom Rom zu entwickeln.
Bei einer Homescreen Applikation wird der Homescreen des Mobiltelefons durch
einen Eigenen ersetzt. Dieses ermöglicht ein Austauschen der Komponenten die zum
Homescreen gehören, wie etwa dem Lockscreen. Ein Homescreen stellt dabei die er-
ste Seite dar, die dem Nutzer gezeigt wird, wenn er das Mobiltelefon startet.
Eine normale Applikation läuft hingegen unabhängig von einem Homescreen. Sie
4. NFC Unlock - Design                                                            21

stellt also eine eigene Entität dar. In dieser können ebenfalls Funktionen ausgeführt
werden, die den Lockscreen ersetzen.
Der Lockscreen, der bereits in Android eingebaut ist, kann nicht verändert werden.
Daher bleibt nur die Möglichkeit den Lockscreen des Betriebssystems zu deakti-
vieren, indem er in den Sicherheitseinstellungen abgeschaltet wird und dann seinen
eigenen Lockscreen zu starten, wenn die Notwendigkeit dazu besteht.

Abbildung 4.2.: Screenshot vom Android Lockscreen, links PIN, rechts Pattern

Der Ansatz Custom Rom bedeutet einen tiefen Eingriff in das Betriebssystem. Das
Linux Grundsystem wird bearbeitet und dann im Smartphone verwendet. Grund-
voraussetzung damit man das Custom Rom nutzen kann sind „Root“-Rechte, der
Nutzer muss also mit einer Software den höchsten Rechtestatus erhalten. Dieses wi-
derspricht jedoch dem Ansatz für Android. Denn schließlich soll der Nutzer nur die
minimal nötigen Rechte besitzen, um so keinen Schaden am Betriebssystem anrich-
ten zu können. Daher kann es unter Umständen passieren, dass der Nutzer keine
Garantieansprüche in Richtung des Herstellers geltend machen kann.
In einem Custom Rom werden meist unnötige Applikationen und Dienste entfernt,
um den Kernel so schlank wie möglich zu halten. Gleichzeitig werden Funktio-
nen ermöglicht, die unter Umständen vom Standardbetriebssystem so nicht vorge-
4. NFC Unlock - Design                                                            22

sehen sind. Der genaue Prozess um den Quellcode zu erhalten, ihn zu bearbeiten und
schließlich zu kompilieren, wird Schritt für Schritt von Google auf deren Developer-
Seiten erläutert [31].

Um ein Custom Rom zu erstellen, ist tiefgreifendes Wissen vom zugrunde liegenden
Linux System und dem Android Kernel nötig. Außerdem werden für das Verwenden
eines Custom Roms Root-Rechte auf dem zu benutzenden Gerät benötigt. Da jedoch
die Nutzerstudie zum Verhalten eines Anwenders auf möglichst allgemeinen Stan-
dardgeräten stattfinden soll, wurde dieser Ansatz bereits zu Beginn verworfen.
Ein weiteres wichtiges Merkmal von Android, das beim Schreiben dieser Arbeit zu
berücksichtigen war ist, dass es unter Android sogenannte Softwaretasten gibt. Diese
werden in jedem Bildschirm von Android eingeblendet (siehe Abbildung 4.3). Dabei
ist anzumerken, dass es diese Tasten erst seit Version 4.0 gibt.

    Abbildung 4.3.: Softwaretasten, rechts mit der Recent Apps-Taste [32]

Von links nach rechts befinden sich in Abbildung 4.3 die Backtaste, die Hometaste
und die Recent Apps-Taste. Mit der Backtaste kann der Benutzer auf den zuletzt
angezeigten Bildschirm gelangen beziehungsweise im Webbrowser zur letzten Inter-
netseite navigieren. Mit der Hometaste springt der Nutzer direkt zurück auf seinen
Homescreen und die Recent Apps Taste zeigt die zuletzt genutzten Applikationen
an, die sich direkt aus diesem Bildschirm heraus starten lassen. Es gilt zu bedenken,
dass diese Tasten dauerhaft angezeigt werden und daher die grundlegendste, stän-
dig verfügbare Navigation in Android und seinen Applikationen darstellen [41]. Die
Funktionsweise der Buttons zu ändern, schlägt sich negativ auf die Erwartungshal-
tung des Nutzers wieder. Der ist es gewohnt, die Tasten wie eben beschrieben zu ver-
wenden. Außerdem soll so sichergestellt werden, dass keine bösartige Anwendung
den Nutzer aus seinem Smartphone aussperrt, indem sie die Navigation deaktiviert
oder abändert.

Aufgrund der eben angeführten Begründung wurden für diese Arbeit die ersten bei-
den Ansätze einer Applikation probiert, also eine normale Applikation zu schrei-
ben beziehungsweise eine Homescreen Applikation. In der Homescreen Applikation
zeichnete sich dann folgendes Problem ab: Die Hometaste ließ sich nicht bearbeiten,
der Nutzer kann also durch das Drücken dieser Taste aus dem Lockscreen heraus-
springen, ohne eine korrekte PIN oder den korrekten Tag zu besitzen. Der Code in
4. NFC Unlock - Design                                                           23

     Listing 4.1 dient in der Version 2.0 von Android dazu, zum Beispiel die Home- und
     die Backtaste auf einem Gerät abzufangen und zu deaktivieren.

 1        @Override
 2        public boolean onKeyDown(int keyCode, KeyEvent event) {
 3            Log.v(TAG, "Button pressed: " + new Integer(keyCode).toString());
 4

 5            switch (keyCode) {
 6            case KeyEvent.KEYCODE_BACK:
 7                return true;
 8            case KeyEvent.KEYCODE_CALL:
 9                return true;
10            case KeyEvent.KEYCODE_HOME:
11                return true;
12            }
13            return super.onKeyDown(keyCode, event);
14        }

                       Listing 4.1: onKeyDown() sperrt bestimmte Tasten

     In der auf dem Smartphone verwendeten Version 4.0 von Android funktioniert dieser
     Code jedoch nicht für die Hometaste, da deren onKeyDown Event nicht mehr an die
     Applikation weitergeleitet wird. Dadurch wird verhindert, dass eine bösartige Appli-
     kation den Nutzer aus seinem Gerät aussperrt.
     Eine frühere Version von Android zu nutzen, kam ebenfalls nicht in Frage, da die
     Near Field Communication Technologie erst ab der Android Version „Gingerbread“
     2.3 unterstützt wird16 und die von dieser Arbeit verwendeten Funktionen erst nach
     und nach in Android implementiert wurden.
     Um die Hometaste dennoch zu deaktivieren, kann im Manifest der Applikation ein
     Filter festgelegt werden, der nur auf bestimmte Intents17 reagiert, wie etwa auf das
     Drücken der Hometaste. Der Nutzer wird dann auf die eben gestartete Applikation
     umgeleitet (Listing 4.2). Somit kann der Nutzer nicht mehr über die Home-Taste aus
     der Lock-Applikation herausspringen, da er immer wieder im Bildschirm der Appli-
     kation landet.

     16
          http://developer.android.com/about/versions/android-2.3.3.html
     17
          Intent: Systemweite Nachricht
4. NFC Unlock - Design                                                           24

1   
2     
3

4     
5     
6   

                       Listing 4.2: Intentlter für die Hometaste

    Es blieb zu entscheiden, ob auch die Recent Apps Taste deaktiviert werden soll. Eine
    Erläuterung dazu ist in Kapitel 6.2 - Limitierungen und Erweiterungen - zu finden.

    4.3. Grundaufbau

    Die Anwendung beruht auf einer normalen Applikation, in welcher sich ein Broad-
    cast Receiver sowie ein Service befindet.
    Ein Broadcast Receiver lauscht auf Systemebene auf gewisse Intents und reagiert
    gegebenenfalls, wenn sie mit seinem Filter übereinstimmen. Der Broadcast Receiver
    achtet auf den Intent ACTION_SCREEN_ON der von einem eingeschalteten Bild-
    schirm ausgelöst wird. Vom Receiver wird dann ein Service gestartet, der damit dy-
    namisch arbeitet. Er wird also nur gestartet, wenn er tatsächlich benötigt wird. Auf
    diese Weise werden Systemressourcen wie zum Beispiel der Akku geschont.
    Wird das Smartphone angeschaltet, merkt die Applikation dieses und ruft den eige-
    nen Lockscreen auf. Der Bildschirm, die Back- und die Hometaste sind gesperrt, so
    dass der Nutzer nicht auf diese Weise aus dem Lockscreen herausspringen kann. Erst
    wenn der korrekte NFC-Tag an das Smartphone gehalten oder die korrekte PIN ein-
    gegeben wurde, wird das System wieder freigegeben.
5. NFC Unlock - Implementierung

5.1. Einleitung

In diesem Kapitel wird erläutert, auf welchem Weg die App erstellt wurde.
Es soll gezeigt werden, was bei der Entwicklung zu beachten war. Darüber hinaus
wird erklärt, welche Einzelteile das Programm ausmachen, wie sie einzeln funktio-
nieren und wie sie zusammengesetzt die NFC Unlocking Applikation ergeben. Dabei
werden die wichtigsten Teile des Quellcodes der Applikation gezeigt und kommen-
tiert.

5.2. Vorgehensweise

Zuerst muss ein Grundgerüst hergestellt werden, eine sogenannte Activity. Eine Acti-
vity ist dabei der Oberbegriff für eine Seite in Android und ermöglicht es dem Nutzer
mit dem Betriebssystem zu interagieren. Diese Seite ist meistens im Vollbild darge-
stellt, kann aber auch kleiner als der Bildschirm sein oder gar über anderen Activities
schweben [33].

Um auf einem Android Smartphone die Near Field Communication nutzen zu kön-
nen, muss der NFC-Service verwendet werden. Dieser ist aktiviert solange sich das
Mobiltelefon im Wachzustand befindet. Wird der Bildschirm deaktiviert, etwa durch
das Ausschalten des Mobiltelefons, so wird auch das Polling - also die zyklische
Abfrage, ob sich ein NFC-Gerät in der Nähe befindet - abgeschaltet. Ein NFC-Tag
kann so nicht mehr in der Umgebung des Smartphones gefunden werden. Damit
wird unterbunden, dass ein Angreifer seinem Opfer unaufgefordert Daten auf sein
Mobiltelefon überspielt oder ausliest, wenn das Opfer sein Mobiltelefon in der Ho-
sentasche trägt. Diesen Vorgang nennt Google „Buttsniffing“ [34].
Um das Smartphone beispielsweise über eine PIN oder ein Passwort freizuschal-
ten, muss erst der Powerbutton auf dem Gerät gedrückt werden. Dieser ist meist
als Hardwarebutton realisiert und befindet sich nicht auf dem Touchscreen, sondern

                                          25
5. NFC Unlock - Implementierung                                                           26

am Gehäuse. Um wiederum eine Near Field Communication basierte Applikation
verwenden zu können, muss der Nutzer also erst sein Gerät über den Powerbutton
aktivieren und dann den Bildschirm freischalten. Das mag umständlich wirken, dient
letztlich aber der Sicherheit. Denn wie bereits beschrieben, kann ein Angreifer auf
ein Mobiltelefon, das sich gesperrt in der Hosentasche befindet, keinen Schadcode
aufspielen oder Daten auslesen [34].
In der LockPage wird ein NFC-Adapter instanziiert. Dieser repräsentiert den loka-
len NFC-Adapter im Mobiltelefon, auf welchem dann alle weiteren NFC-Funktionen
ausgeführt werden können. Die meisten Geräte besitzen lediglich einen einzigen Ad-
apter, welcher über getDefaultAdapter() im Singleton-Pattern18 zurückgeliefert wird.
Der Ablauf eines Android Programmes wird bestimmt durch den sogenannten Life
Cycle (siehe Abb.: 5.1).

18
     Singleton-Pattern: Entwurfsmuster, das garantiert, dass nur exakt ein Objekt einer Klasse

      existiert
5. NFC Unlock - Implementierung                                  27

           Abbildung 5.1.: Lebenszyklus einer Applikation [35]
5. NFC Unlock - Implementierung                                                    28

Der Life Cycle kann in 3 große Bereiche unterteilt werden (siehe [36]):

   • tatsächliche Lebenszeit der Applikation

   • sichtbare Lebenszeit der Applikation

   • Vordergrund Lebenszeit der Applikation

Die tatsächliche Lebenszeit findet zwischen onCreate() und onDestroy() statt, wo-
bei in letzterer Methode die Applikation zerstört und alle veranschlagten Ressourcen
freigegeben werden.
Die sichtbare Lebenszeit siedelt sich zwischen der Methode onStart() und der Me-
thode onStop() an. Dabei ist mit onStart() gemeint, dass der Nutzer die Anwendung
sehen kann, auch wenn sie von einer Dialogbox überlagert ist. Beide Methoden kön-
nen über die gesamte Lebenszeit der Applikation mehrfach aufgerufen werden.
Die Vordergrund Lebenszeit ist der Zeitraum zwischen onResume() und onPause().
Dabei liegt die Activity im Vordergrund über allen anderen Activities und interagiert
mit dem Benutzer.

Der Life Cycle beginnt damit, dass eine Activity vom Nutzer gestartet wird. Im er-
sten Schritt wird onCreate() aufgerufen. Hier werden wichtige Dinge festgelegt, die
für die Laufzeit der Activity wichtig sind wie zum Beispiel welche Layout-Datei an-
gezeigt werden soll.
onStart() wird aufgerufen, wenn die Activity sichtbar für den Nutzer wird.
Die nächste aufzurufende Methode ist onResume(). Dabei liegt die Activity auf der
Spitze des Activity Stacks. onResume() wird aufgerufen wenn die Activity für die
Interaktion mit dem Benutzer bereit ist.
Von nun an wird die Activity als laufend bezeichnet.
Wird eine andere Activity aufgerufen, die nun über der vorherigen liegt, so wird
für die überlagerte Activity die onPause() Methode gestartet, in welcher üblicher-
weise eingegebene Daten des Nutzers gespeichert werden. Wird die Activity wieder
in den Vordergrund geholt, wird onResume() ausgeführt. Da onPause() und onRe-
sume() mehrfach im Leben einer Activity aufgerufen werden können, sollten diese
Methoden eher leichtgewichtig sein und nicht mit zu vielen Funktionen angereichert
werden.
Ist die Activity dann nicht mehr für den Nutzer sichtbar, so wird onStop() aufgerufen.
Wird die Activity wieder in den Vordergrund geholt, so wird onRestart() aufgerufen.
Ruft das System onRestart() nicht auf, so läuft der Life Cycle weiter zum nächsten
Punkt.
onDestroy() ist der letzte Aufruf den eine Activity haben kann. Entweder weil sie
5. NFC Unlock - Implementierung                                                    29

    vom Nutzer beendet wird, oder weil das Betriebssystem sie beendet, um Speicher
    und sonstige Ressourcen wieder freizugeben.

    Nachdem die NFC Unlock Applikation aufgerufen wird, wird in diesem Fall in der
    onCreate Methode der Klasse LockPage.java der sogenannte NFC-Adapter ange-
    sprochen und ein Adapter-Objekt erzeugt.

1     NfcAdapter nfcAdapter;
2

3     public void onCreate(Bundle savedInstanceState) {
4       super.onCreate(savedInstanceState);
5       nfcAdapter = NfcAdapter.getDefaultAdapter(this);
6       (...)

                       Listing 5.1: NFC-Adapter Objekt erzeugen

    Ein Programm für Android kann auf zwei verschiedene Arten laufen: Dauerhaft oder
    nur solange es benötigt wird.
    Letzteres ist der Standardfall, da der Nutzer meist sein Programm startet, eine Aufga-
    be damit erledigt und es dann wieder beendet. Bei einigen Anwendungsfällen macht
    es jedoch Sinn, dass das Programm weiterläuft, teils unbemerkt vom Nutzer. So ist
    zum Beispiel eine Kalenderverwaltung vorstellbar, in welcher Termine mit einem
    Alarm eintragen werden. Die Verwaltung läuft im Hintergrund mit und benachrich-
    tigt den Nutzer über ein Signal, wenn ein neuer Termin anliegt. Das Mitlaufen im
    Hintergrund wird über einen sogenannten Service erledigt [37].
    In dieser Arbeit wird ein Service verwendet, der zusammen mit einem Broadcast Re-
    ceiver auf den Zustand des Bildschirmes (An oder Aus) reagiert und gegebenenfalls
    eine Aktion vornimmt wie zum Beispiel den Bildschirm zu sperren.
    Um lauffähig zu sein, wird der Service in der onCreate Methode von NFCUnlockSer-
    viceApp.java gestartet. Der Service selbst ist dabei in einer Klasse MyService.java
    untergebracht.

    Um auf systemweite Intents wie das Anschalten des Monitors reagieren zu können,
    wird ein Broadcast Receiver benötigt [42]. Dieser wird ebenfalls in der onCreate-
    Methode der MyService Klasse erzeugt.
    Ein Broadcast Receiver ist dabei ein Prozess, der auf bestimmte Intents wartet und
    reagiert. Welche Intents das sind, muss über eine Filterliste voreingestellt werden.
    Der Receiver beachtet dann nur diese Intents. Bei dieser Arbeit gibt es einen Broad-
Sie können auch lesen