Sicherheit von NFC-basierten Anwendungen auf Smartphone Betriebssystemen Bachelorarbeit an der Hochschule Ulm Fakult¨at Informatik Studiengang Technische Informatik Vorgelegt von Stefan Cepcik Oktober 2013 1. Gutachter: Prof. Dr. rer. nat. Markus Sch¨affter 2. Gutachter: Prof. Dr. rer. nat. Stefan Traub I Eigenst¨andigkeitserkl¨arung Hiermit erkl¨are ich, dass ich die vorliegende Arbeit selbstst¨andig und ohne fremde Hil- fe verfasst und keine anderen als die im Literaturverzeichnis angegebenen Hilfsmittel verwendet habe. Insbesondere versichere ich, dass ich alle w¨ortlichen und sinngem¨aßen U¨bernahmen aus anderen Werken als solche kenntlich gemacht und mit genauer Quel- lenangabe dargelegt habe. Ulm, den 4. Oktober 2013 Stefan Cepcik II III Abstract ModereSmartphonesunterstu¨tzenNearFieldCommunication,NFC,d.h.die direkte und drahtlose Kommunikation mit anderen NFC Ger¨aten und Tags. Diesbringtfu¨rdenAnwendereinenGewinnanBedienkomfortmitsich,daso eine Kommunikationsverbindung zu anderen Ger¨aten alleine durch beru¨hren derbeidenGer¨atehergestelltwerdenkann.Dochh¨aufigbedeutetderGewinn anKomfortgleichzeitigeinenVerlustanSicherheit.SomitwerdendurchNFC neue Angriffe m¨oglich, etwa durch Social Engineering. Die vorliegende Ar- beit beschreibt ein Konzept fu¨r einen sicheren Informationsaustausch unter Beru¨cksichtigung der Gef¨ahrdung beim Einsatz von NFC als auch des Si- cherheitsmodells des Smartphone Betriebssystems Windows Phone 8. Dieses Konzept sieht zun¨achst das Hardcoden des Public Key des Readers in der Smartphone App vor, damit dieser nicht u¨ber einen ungesicherten Kommu- nikationskanal u¨bertragen werden muss. Als n¨achstes zeigt der Reader einen Code am Bildschirm an, den der Anwender in die App eingeben muss, da- mit der Public Key der App sicher an den Reader u¨bertragen werden kann. DaraufhinwerdendieDiffie-Hellman-Teilgeheimnissedigitalsigniertundaus- getauscht. Anschließend erzeugen beide den geheimen Schlu¨ssel und setzen die Kommunikation mit einer symmetrischen Verschlu¨sselung fort. Dieses Konzept wird in der Implementierung dieser Arbeit nahezu vollst¨andig um- gesetzt. IV V Danksagung An dieser Stelle m¨ochte ich mich zun¨achst bei Herrn Prof. Dr. Markus Sch¨affter be- danken. Ihr kontinuierliches Feedback, die h¨aufigen Treffen und Diskussionen haben mir geholfen aus dieser Arbeit das zu machen, was daraus geworden ist. Wie Sie neulich selbst sagten, ging ich h¨aufig mit mehr Ideen heim, als ich mit Fragen gekommen bin. Vielen Dank hierfu¨r! Ein Dankesch¨on geht ebenfalls an meinen Kommilitonen Michael Schreiber fu¨r die Un- terstu¨tzung rund um das Betriebssystem Android. Ein besonderer Dank geht auch an Erich Beer und Benjamin Schanzel fu¨r die inve- stierte Zeit fu¨r das Korrekturlesen. Danken m¨ochte ich auch meinen Eltern an dieser Stelle, die mich w¨ahrend meiner Schu- lischen Laufbahn immer wieder darauf hingewiesen haben, wie wichtig Bildung ist. Wo ich heute ohne euren positiven Einfluss stehen wu¨rde, kann ich nicht sagen. Danke! VI VII Inhaltsverzeichnis 1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 ISO/IEC 14443 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.2 NFCIP-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.3 NDEF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Communication Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1 Active Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 Passive Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 Handshake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4 Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.1 Reader/Writer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.2 Peer-To-Peer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.3 Card Emulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Sicherheitsanalyse von NFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1 Eavesdropping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2 Data Corruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3 Data Modification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.4 Data Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.5 Man-In-The-Middle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4 Smartphone Betriebssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.1 Sicherheitsmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2 Bezugsquellen von Apps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 App-zu-App-Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.4 Unterstu¨tzte NFC Standards. . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.5 NFC-Inhalte in einer App empfangen . . . . . . . . . . . . . . . . . . . . . . 25 5 Sicherheitsschwachstelle: Social Engineering . . . . . . . . . . . . . . . . . . 27 5.1 URI-Schema-U¨bernahme durch Schadsoftware . . . . . . . . . . . . . . . . . 28 5.2 Automatisches O¨ffnen von Apps u¨ber NFC . . . . . . . . . . . . . . . . . . . 29 5.3 NFCProxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.3.1 Relay-Angriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6 Aufbau eines sicheren Kanals u¨ber NFC . . . . . . . . . . . . . . . . . . . . . 35 6.1 Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.2 Sicherheitsanforderungen an das Smartphone Betriebssystem. . . . . . . . . 40 6.3 M¨oglicher Implementierungsansatz . . . . . . . . . . . . . . . . . . . . . . . 41 6.3.1 Sichere U¨bertragung des generierten Public Keys der App . . . . . . . 41 6.3.2 Schlu¨sselaustausch u¨ber ECDH . . . . . . . . . . . . . . . . . . . . . . 44 VIII Inhaltsverzeichnis 7 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.1 Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 7.2 Handshake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.3 Schlu¨sselverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 7.4 Umsetzung der Peer-To-Peer Kommunikation . . . . . . . . . . . . . . . . . 51 7.5 U¨bertragung des Teilgeheimnisses . . . . . . . . . . . . . . . . . . . . . . . . 56 7.6 Digitales signieren der Teilgeheimnisse . . . . . . . . . . . . . . . . . . . . . 59 7.7 U¨bertragung einer verschlu¨sselten Nachricht . . . . . . . . . . . . . . . . . . 61 8 Zusammenfassung und Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . 71 IX
Description: