Entsperren von Android Smartphones mit Hilfe von Near Field Communication
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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
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
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
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
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