Untersuchung NFC Interface auf Android Telefonen
Wie schon im Vorjahr im Artikel NFC unter Android ist auch dieses Jahr Near-field communication (NFC) ein Thema des Seminars IT Security Workshop WS2013.
Ziele
Evaluation der Hardware
Im Rahmen des Seminars wird ein Samsung Galaxy Nexus <ref>http://www.areamobile.de/handys/3014-samsung-galaxy-nexus/datenblatt</ref> zu Verfügung gestellt. Auf diesem ist als NFC-fähiger Chip ein NXP PN65N <ref>http://www.nfc-tag.de/was-sind-nfc-tags/nfc-tag-kompatibilitatsliste/</ref><ref>http://www.nxp.com/news/press-releases/2011/11/nxp-nfc-solution-implemented-in-galaxy-nexus-from-google.html</ref> verbaut, der aus einem NXP PN544 und einem SecureElement SmartMX besteht.
Als weitere NFC-fähige Geräte stehen ein Google Nexus 7 (2013) und ein Samsung Galaxy S4 Mini zu Verfügung. Diese besitzen jedoch mit einem Broadcom BCM20793M (Nexus 7) bzw. BCM20794 (S4 Mini) einen im Grunde NFC-fähigen Chip, der aber durch die fehlenden proprietären Protokollerweiterung von NXP Tags vom Typ Mifare Classic nicht mehr unterstützt. Lediglich ein Auslesen der UID ist möglich; ein lesender oder schreibender Zugriff auf weitere Daten schlägt fehl.<ref>http://www.andytags.com/nfc-tags-compatibility-issues.html</ref>
Die zur Verfügung stehenden NFC-Transponder sind meist vom Typ Mifare Classic. Hier ist die klassische Mensakarte und die Karte für das Zugangssystem zum Johann von Neumann Haus zu erwähnen.
Da Nexus Geräte generell eine gute Treiberunterstützung bieten und das Galaxy Nexus schon seit 2011 auf dem Markt ist, ist dieses für die Zwecke des Seminarthemas gegenüber den neueren Geräten zu bevorzugen. Die fehlende Kompatibilität der zur Verfügung stehenden Karten unterstützt diese Entscheidung zusätzlich.
Evaluation der Software
Android stellt für die Kommunikation mit dem NFC-Chip lediglich eine High-Level-API in Java bereit, die keine Kommunikation auf dem Raw-Device zulässt. Aus dieser Tatsache entstehen zwei Probleme: Eine einfache Anbindung von in C-geschriebener Software (z.B. mfoc, zum Brechen der Schlüssel von Mifare Classic Karten) ist nicht möglich. Hierzu muss ein Binding zwischen der Java-NFC-API mittels JNI (Java Native Interface) erstellt werden. Das weitaus größere Problem ist jedoch die fehlende direkte Kommunikationsmöglichkeit mit dem NFC-Chip auf device-level.
Einzelnachweise
<references />