Twitter Bots – Sie sind mitten unter uns

Congratulation_you_have_over_600_followers
Twitter gratulierte mir heute morgen zu meinem 600sten Follower. Habe ich mich darüber gefreut? Nein, nicht wirklich denn die letzten 20 neuen Follower sind nichts anderes als Bots – Skripte, die automatisch agieren: folgen, retweeten. Dieser Bot scheint aber wirklich sehr einfach gestrickt zu sein, da er keine eigenen Tweets verfasst. Wie ich drauf komme dass es ein Bot ist? Das kann man recht einfach herausfinden indem man sich die Tweets näher anschaut und die Accounts miteinander vergleicht. Hier ist die (unvollständige) Liste meiner 34 neuen ‚Freunde‘:

bot_follower

Clemens Hahn https://twitter.com/HahnClemens
Joanna Hahn https://twitter.com/HahnJoanna
Vera Baumann https://twitter.com/VeraBaumann007
Marius Lang https://twitter.com/mariuslang2
Tino Becker https://twitter.com/TnoBckr
Evelin Schmidt https://twitter.com/schmidt_evelin
Sina Friedrich https://twitter.com/FriedrichSina
Benjamin Voigt https://twitter.com/benjaminvoigt1
Gerrit Braun https://twitter.com/BraunGerrit
Axel Günther https://twitter.com/GuntherAxel
Norman Meyer https://twitter.com/MeyerNormann
Steffen Fischer https://twitter.com/FischerSteffe
Sabine Schneider https://twitter.com/sabine12schneid
Isabel Krämer https://twitter.com/IsabelKraemer
Michael Stein https://twitter.com/SteinMicha
Julian Busch https://twitter.com/JulianBuschFr
Kirstin Klein https://twitter.com/KleinKirstin
Ute Schulz https://twitter.com/UtSchulz
Nadine Hartmann https://twitter.com/HartmannNd
Katrin Werner https://twitter.com/KatrinWernerFFM
Angelika Martin https://twitter.com/AngiMq
Frauke Wolff https://twitter.com/FraukeWolff
Alexander Schwarz https://twitter.com/sc_schwarz
Erik Schmitt https://twitter.com/ErikSchmittchen
John Graf https://twitter.com/JohnGraf2014
Harald Bergmann https://twitter.com/BergmanHarald
Miriam Schmidt https://twitter.com/MiriamLeipzig
Jens Weber https://twitter.com/Weber4Jens
Iris Schwarz https://twitter.com/IriSSchwar_z
Silke Lang https://twitter.com/LangeSilke
Friederike Schäfer https://twitter.com/FrSchafer
Klemens Roth https://twitter.com/KlemensRoth
Ralph Hofmann https://twitter.com/RalphHofmann300
Ole Simon https://twitter.com/simon_ole

Die wollen doch nur spielen

Auf den ersten Blick sehen die Accounts ja ganz normal aus: Vorname + Nachname, seit Oktober 2014 registriert und mit Profilbild. Wenn man allerdings die Namen googelt stösst man z.B. auf http://personifind.com/influencer/TnoBckr und sieht dass die ‚Freunde‘ alle zusammen gehören.
Googelt man dann noch nach den Profilbilder wird man sehr schnell fündig und kann die ‚Fälschungen‘ den ‚Originalen‘ zuordnen:
hans_juergen_stark_vs dave_palmer_vs Andreas_Schulte_vs

Wer also sein Profilbild ins Web stellt muss scheinbar damit rechnen dass der Zwillingsbruder/-schwester @eCommerce_DE Tweets verteilt? Wer das ganze nur lustig findet kann sich dann ja mal die Artikel ‚Mit der Maschine Meinung machen‘‚Die unheimliche Manipulation durch Robot-Herden‘ oder ‚Wie Social Bots uns manipulieren, wer daran verdient und wie die Fakes auffliegen‘ durchlesen.

Kommentare (z.B. zum Entfernen der Originalbilder vor Beauftragung des Rechsanwalts) bitte im Anschluss abgeben oder direkt bei @regnerischerTag

boon – Android Pay ohne Google, ohne NFC-SIM aber mit HCE

boon_webside_countdown

Während der Countdown auf der boon Webseite noch bis zum 23.11.2015 den Start des ersten in Deutschland nutzbaren Wallets für alle Android NFC Smartphones (mit HCE-Unterstützung) anpreist bin ich auf dem Weg zum Aldi um die Zukunft des Bezahlen auszuprobieren. Bisher war es für mich zwar schon möglich mit einem NFC-Sticker oder einer kontaktlosen Kreditkarte bei einigen Läden in Hamburg zu bezahlen, aber das kontaktlose Bezahlen mit dem Smartphone blieb zunächst leider nur den Besitzern eines Telekom-, Vodafone- bzw E-Plus-Vertrags vorenthalten. Denn bisher war es nur möglich eine sogenannte NFC-SIM bei dem Provider anzufordern und in eins der kompatiblen Android Smartphones einzusetzen. Den Witz mit den auf dem Telefon (mit ausgeschaltetem NFC) aufgeklebten NFC-Stickern führe ich an dieser Stelle nicht weiter aus.

Was ist nun anders?

Neu ist dass keine spezielle NFC-SIM erforderlich ist, entsprechend auch Prepaid-Kunden in den Genuss des ‚Bezahlen 2.0‘ kommen und sie dafür jedes NFC-Smartphone mit Android ab 4.4 nutzen können. Beispielsweise können so alle Nexus 4,5,6 Besitzer schon einmal vor dem Android Pay Start in Deutschland im Jahre 20XX Erfahrungen sammeln.

boon? Wer?

boon payment ist der im März 2015 auf dem MWC 2015 angekündigte Bezahldienst von Wirecard. Und wer ist Wirecard? Die Firma, die den erster NFC Sticker in Deutschland unter dem Namen mpass herausgebracht hat und für viele Payment-Kunden das Backend zur Verfügung stellt.

Installation und Registrierung

Als erstes muss also – wie üblich – die erforderliche App installiert werden. Nach dem Download/Installation dann durch einige Registrierungdialoge (Telefonnummer, Passwort, PIN, Sicherheitsfrage) klicken:
screenshot_boon_reg1  screenshot_boon_reg2
screenshot_boon_reg4  screenshot_boon_reg5  screenshot_boon_reg6  screenshot_boon_reg7  screenshot_boon_reg8  screenshot_boon_reg9

Für den Start muss nur die Telefonnummer preisgegeben werden und man bekommt als Dankeschön ein Willkommens-Entgeld von 5 Euro gutgeschrieben.
screenshot_welcome_to_boon  screenshot_boon_startscreenshot_boon_available_amount.5EUR.

Es kann evtl 1 Tag dauern bis die Gutschrift erscheint. Ansonsten darf man gerne auf den schnellen Support zurückgreifen, der bei mir innerhalb von einer Stunde via Mail geantwortet hat!

Der Praxistest

Im Aldi angekommen. Meine Lieblingsschokolade aus dem Regal gezückt und direkt zur Kasse. Prima, kein anderer Kunde da, sonst wird’s evtl peinlich. Aber auch keine Kassierin an der Kasse. Die räumt grade Regale ein. Warten. Dann kommt der Kollege. Nexus5X aus der Hosentasche gezückt. Fingerprintsensor erleichert das Einloggen ungemein. Kassierer sagt „99 Cent“ und hält die Hand auf. Ich sage „einmal kontaktlos Zahlen“. Dann Smartphone rann an das Verifone H5000 Terminal, PIN-Dialog der App wird angezeigt – ja das ist etwas umständlich!

screenshot_boon_1m_countdown  screenshot_transaction

Nach Eingabe der PIN wieder (innerhalb von 1 Minute) ans Terminal halten und Biep, es hat funktioniert! Kassierer grinst mich noch an und sagt „…Sie sind der Erste… die Anderen trauen sich noch nicht so recht…“. Im Auto angekommen wird die Transaktion bereits in der App gelistet.

Besser? Schlechter?

So kann man also Bezahlen. Etwas anders – mit der PIN-Eingabe umständlicher – gegenüber einer Kreditkarte. Aber ok – es ist ja eine weitere Möglichkeit und bestimmt nicht die letzte im NFC-Smartphone-Universum. Von Vorteil wäre wenn Wirecard die PIN-Abfrage durch einen vorhandenen Fingerprintsensor-Scann ersetzten könnte. Fraglich ist auch wie Kaufland-Mitarbeiter reagieren und ob sie die Transaktionszeit evtl durch eine abschliessende Unterschrift noch einmal drastisch anheben sollten?
Der Testballon – der Starter Account ist kostenlos (kann aber auch nicht aufgeladen werden), die Basic und Plus Variante kosten nach 1 Jahr dann 99Cent/Monat, ausserdem sind dann weitere Daten – wie bei jedem Konto – erforderlich.
Probiert die Testversion ruhig einmal aus und postet Eure Kommentare & Feedback.

Lycos Life Wearables: NFC Ring und Smartes NFC Armband

lycos-7band-ring

LYCOS, das Webportal mit dem Hundelogo mag dem einen oder anderen noch aus den 90ern bekannt zu sein. Nachdem die Firma lange nichts von sich hören ließ scheint nun Leben zurück zu kommen: in einer Presseankündigung weisst man auf den 08. Juni 2015 hin, an dem die Produktlinie LYCOS Life vorgestellt wird.

Die ersten zwei Produkte: ein Smart Armband für $124.99 und ein Ring für $59.99. Die Geräte sollen Bluetooth und NFC als Schnittstelle bieten und Daten per Tap to Transfer (T2T) Protokoll austauschen können. Das Smartband bietet die üblichen Sensoren zum Monitoren von Aktivität, Schlaf, Herzfrequenz.
Als weitere Features bietet der “NO Passwords” Personal Security Manager das Eingeben von Passwörtern zu erleichern und ein Advanced Fitness Monitor darf natürlich auch nicht fehlen.

Für $59.99 scheint der NFC Ring im Vergleich zu anderen Ringen sehr teuer zu sein, ausser er bietet weitere Features als nur einen eingebauten NFC Tag. Für $59.99 scheint der NFC Ring im Vergleich zu anderen Ringen auf den ersten Blick sehr teuer zu sein, da er aber mit einer Batterie und Bluetooth BLE 4.0 ausgestattet ist, bietet er gegenüber den einfachen NFC Tags scheinbar zusätzliche Features.

Produktseite: http://www.lycos.life
Pressenotiz: http://corp.lycos.com/wp-content/uploads/2014/11/Final-June-5.pdf
Twitter Account: https://twitter.com/lycos_life
Android App: https://play.google.com/store/apps/details?id=com.lycos.lycoslife

NFC Wearables

In diesem Blogpost soll eine Liste von NFC Wearables gesammelt werden. Als erstes gleich ein paar Armbänder evtl später einmal gefolgt von Schmuckstücken (?) oder worin auch immer NFC Chips integriert werden. Falls iBeacons ebenfalls ihre Daseinsberechtigung finden und in Wearables integriert werden dann werde ich sie hier ergänzen. NFC Ringe sind bereits in einem älteren Blogpost zusammengetragen.

Haloband

haloband

Das Haloband war das erste Armband mit NFC Chips. Zuerst als Kickstarter Projekt von chinesischen Designern iniziiert und aufgrund des großen Erfolges gleich im Anschluss auf Indiegogo ebenfalls mit einem mehrfachen der geplanten Summe erfolgreich durchgeführt. In diesem Silikonband stecken 3 NTAG203/NTAG213 NFC Tags mit dem unterschiedliche Events auf einem NFC Phone grtiggert werden können.

Kickstarter Projekt ab 19$ (bis 16.01.2014) https://www.kickstarter.com/projects/haloband/haloband-control-your-smartphone-with-simple-wrist
Indiegogo Kampagne (20.01.2014-08.03.2014) https://www.indiegogo.com/projects/haloband-control-your-smartphone-with-simple-wrist-move
Twitter Account https://www.twitter.com/iHaloBand
Website http://www.haloband.me/
HALOBAND App https://play.google.com/store/apps/details?id=com.haloband.android

NFC Leder Armband

nfc_leather_bracelet
Es geht auch ohne Kunststoff – mit diesem Lederarmband für 10EUR (+ 4EUR Versand)! Zusätzlich hebt es sich noch von den anderen NFC-Armbändern ab, da es mit 3 NFC Chips ausgeliefert wird.
Website http://www.nfcleatherbracelet.com/
Kickstarter Projekt (02.09.2014-02.10.2014) https://www.kickstarter.com/projects/nfcleatherbracelet/the-first-leather-nfc-bracelet-with-3-chips
Twitter Account https://twitter.com/NLB_Support

UpLocket – Medaillon

uplocket
Wer die Arme bereits mit Uhren und Armbändern behängt hat kann sich den Hals mit einem per 3D-Drucker erstellten Medaillon für $25 verschönern. Todd Blatt’s neues Kickstarter Projekt macht’s möglich. Welcher NFC-Tag Typ hier verwendet wird war auf der Webseite leider nicht zu erfahren.
Kickstarter Projekt (21.09.2014 – 23.10.2014) https://www.kickstarter.com/projects/baltimore/uplocket-a-classic-accessory-with-contemporary-con
Todd Blatt’s Blog http://toddblatt.blogspot.de/
Todd Blatt’s Facebook Seite https://www.facebook.com/tblatt

Simples NFC Armband

nfc-tag-shop-armband

Wer es gerne einfach und günstig mag und einfach nur einen NFC Tag am Arm tragen will greift auf ein herkömmliches Armband zu, wie es zB vom NFC-Tag-Shop angeboten wird. Auf den NTAG203 können 168 Bytes geschrieben werden.

NFC Anhänger

nfc-anhaenger

nfc-herz

Ebenfalls im NFC tag Shop erhältlich ist das 7,90EUR NFC Herz und einige andere NFC-Anhänger (unterschiedliche NFC-Tag Typen)
http://www.nfc-tag-shop.de/

Arduino M24SR NFC Tag Library

M24SR_NFC_Tag_with_I2C_Interface
Gegenstand dieses Blogartikels ist der ST M24SR im praktischen Einsatz mit einem Arduino:
Oft ist eine Benutzerschnittstelle erforderlich, wenn eine Mikrokontroller Schaltung konfiguriert werden muss. Falls ein paar Taster, evtl inkl. Mini-LCD zu teuer sind bzw das Gerät nicht über Bluetooth-, RF- oder Ethernet-Schnittstelle verfügt kann die sehr stromsparende, kostengünstige NFC-Schnittstelle zum Einsatz kommen. Der M24SR von ST dient in dieser Konstellation als NFC-I2C-Brücke zum Auslesen von Logeinträgen, Status- oder Fehlercodes und zum Konfigurieren per Smartphone. Dieser NFC-Chip ist gegenüber den komplexen NFC-Controllern (zB PN532) recht günstig ($0.34 – $1.88) da er nicht alle NFC-Modie wie Reader/Writer, P2P und Card-Emulation unterstützt sondern nur als NFC-Tag fungieren kann. Daten können in den Speicher (EEPROM) des Chips entweder per I2C-Schnittstelle (Arduino) oder per NFC (NFC Phone, Smartcard-Reader) geschrieben bzw ausgelesen werden.

Was wird benötigt?

  • ST M24SR Chip
  • Breadboard + Verbindungskabel
  • SO8-Sockel oder SO8-DIL8-Adapter-Platine zum Auflöten des Chips
  • Arduino Duemilanove (o.ae.)
  • Arduino M24SR Library
  • Antenne: Größe 75 mm x 48 mm, 6 Windungen
  • 10k Ohm Pull-up Widerstand

Setup

Das IC mit 8 Pins ist recht überschaubar zu verdrahten: Spannungsversorgung (GND, VCC), I2CInterface (SDA, SCL),  Antennenanschlüsse (AC0, AC1) und optional RF disable, Schreib-/Leseereignisse (GPO).

    • Schaltung zusammen stecken:

      Pinout:
      -------------------------------------------------------------------------------
      M24SR -> Arduino / resistor / antenna
      -------------------------------------------------------------------------------
      1 RF disable -> TODO not used
      2 AC0 (antenna) -> Antenna
      3 AC1 (antenna) -> Antenna
      4 VSS (GND) -> Arduino Gnd
      5 SDA (I2C data) -> Arduino A4
      6 SCL (I2C clock) -> Arduino A5
      7 GPO -> Arduino D7 + Pull-Up resistor (>4.7kOhm) to VCC
      8 VCC (2...5V) -> Arduino 5V
      -------------------------------------------------------------------------------
    • Arduino M24SR-Lib https://github.com/rena2019/ArduinoM24SR herunterladen

Beispiele

Sample: SystemFile

Dieses Beispiel zeigt nur die Eigenschaften des Tags an (UID, Speichergrösse, Produktcode). Es dient nur zum Überprüfen der korrekten Verdrahtung/Funktionsweise des Chips. Dafür ist weder Smartcard-Reader noch NFC-Smartphone erforderlich.

#include #include
#include
#include
#include
#define gpo_pin 7
M24SR m24sr(gpo_pin);

void setup()
{
Serial.begin(9600);
//for debug purpose
//m24sr._verbose = true;
//m24sr._cmds = true;
m24sr._setup();
m24sr.displaySystemFile();
}

void loop()
{
}

 

Sample: NDefWrite

Einfachstes Beispiel, bei dem eine (von drei) vordefinierten NDef-URL-Records in den M24SR via I2C geschrieben wird. Nach einem Reset wird der Record jedesmal neu geschrieben und kann mit einem NFC-Smartphone ausgelesen werden (Browser öffnet automatisch URL)

Sample: NFC-Info-Display

Für dieses Beispiel muss der GPO-Pin mit einem Pullup-Widerstand zusätzlich zu den I2C-Leitungen an den Arduino angeschlossen werden. Über diesen Pin erhält der Arduino ein Signal bei Schreib-/Leseversuchen über das RF-Interface. Beschreibt man den NFC-Tag mit einer App (z.B. NFC-TagWriter oder ST M24SR Demo App) so wird der Inhalt des NDEF-Records auf dem optional via SPI angeschlossenen TFT zb 128×160 angezeigt.

Arduino_M24SR_Antenna_TFT_CIMG4837
Bei gleichzeitiger Nutzung von mehreren Bibliotheken (NDef, M24SR) kommt man mit dem Arduino schnell an die Grenzen des RAMs. Bei der Implementierung der M24SR-Bibliothek kam es mehrfach zu unerklärlichem Verhalten, die Funktion displayFreeRAM legte dann das Problem offen: Speicher zu klein:-/

Links
Blogartikel: ST M24SR – Low-Cost NFC Tag mit I2C-Schnittstelle
Arduino M24SR Lib (Source Code) https://github.com/rena2019/ArduinoM24SR
ST M24SR64-Y Datenblatt http://www.st.com/web/en/resource/technical/document/datasheet/DM00067892.pdf
Google Play – ST M24SR Demo App https://play.google.com/store/apps/details?id=com.nfc.m24srdemo
Google Play – NFC TagWriter App https://play.google.com/store/apps/details?id=com.nxp.nfc.tagwriter

ST M24SR – Low-Cost NFC Tag mit I2C-Schnittstelle

IC-SO8

STMicroelectronics bietet sehr günstige ($0.34 – $1.88) Bausteine an um die NFC-Schnittstelle in eigene Schaltungen/Produkte zu intergrieren: M24SR

Features

* NFC Forum Tag Type 4 (basierend auf ISO 14443 RF-Interface)
* 1 MHz I2C-Schnittstelle (2.7 bis 5.5 V)
* EEPROM Speichergrössen: 2, 4, 16, 64 Kbits mit built-in NDEF Unterstützung
* ‚RF disable‘-Pin erlaubt der Anwendung den RF Zugriff per NFC Phone zu kontrollieren
* 128-bit Passwortschutz
* Ausgangspin zum Triggern von Applikationen (bei unterschiedlichen Ereignissen)
* einfaches Antennen Design
* 7 Byte UID

Der M24SR wird u.a. im SO8-Package (neben TSSOP8- und UFDFPN8-Package ) angeboten sodass er sogar ohne SMD-Werkzeug auf PCB eingelötet werden kann. Das Konkurrenzprodukt NTAG I2C (NT3H1101/NT3H1201
) von NXP wird im Gegensatz nur als XQFN8-Package (Body 1.6 x 1.6 x 0.6mm) angeboten.

Praxis

M24SR-Pin-Layout
Schliesst man an die AC0 und AC1 Pins des Baustein nur eine Antenne an (5 Windungen aus dünnem Kabel um 2 Finger gewickelt) kann er als einfacher NFC-Tag genutzt werden. Mit einem NFC Android Smartphone z.B. kann man den Tag auslesen, bzw mit einer App mit Text-,URI-, etc NDEF-Records beschrieben werden. Das Besondere an dem Chip ist allerdings die I2C-Schnittstelle. Schliesst man zusätzlich die Pins VSS alias GND (Pin4), VCC (Pin8), SCL (Pin6) und SDA (Pin5) an einen Mikrokontroller an können hierüber Daten an den M24SR gesendet werden und aus dem statischen NFC-Tag wird ein dynamischer (z.B. Temperatur als NDEF-Record oder URI mit One-Time-Password).

GPO (General Purpose Output) Pin

Verbindet man zusätzlich noch den GPO-Pin (Pin7) kann der angeschlossene Mikrokontroller Events empfangen, wenn z.B. die Daten im Speicher via RF-Interface geändert worden sind. Somit ist es möglich Daten aus dem M24SR auszulesen ohne die RF-Kommunikation zu unterbrechen.

App Kompatibilität

ST bietet im Google Play Store die ST M24SR Demo App an, um den Tag zu beschreiben/auszulesen. Da der Tag aber NFC-Forum Tag Type 4 kompatibel ist können auch andere Apps beispielweise die NXP TagWriter App benutzt werden.

Screenshot_M24SR_Demo_App   Screenshot_M24SR_Demo_App_NDEF_Editor

Am PC lässt sich der NFC-Tag wie eine kontaktlose (ISO14443-4) Smartcard auslesen:

screenshot_mysmartcardioshell_m24sr

 

Links und Info

ST M24SR64-Y Datenblatt http://www.st.com/web/en/resource/technical/document/datasheet/DM00067892.pdf
Evalboard M24SR-DISCOVERY 32EUR http://www.exp-tech.de/Shields/Wireless/RFID/M24SR-DISCOVERY-Dynamic-NFC-RFID-tag.html
Google Play – ST M24SR Demo App https://play.google.com/store/apps/details?id=com.nfc.m24srdemo
ST M24SR Demo App – Source Code  http://www.st.com/web/catalog/tools/FM147/SC1871/PF260169
Mouser: STMicroelectronics M24SR Dynamic NFC/RFID Tag ICs http://www.mouser.com/new/stmicroelectronics/stm-m24sr-nfc-rfid/?cm_mmc=PressRelease-PR-_-STMicro-_-M24SR_RFIDNFC-_-2014-04-02
NXP NTAG I2C (NT3H1101/NT3H1201) http://www.nxp.com/documents/short_data_sheet/NT3H1101_1201_SDS.pdf

Android HCE(Host Card Emulation) JavaScript App alias Virtual JavaScript Smartcard

Die App zu diesem Artikel ist eigentlich aus drei Gründen entstanden:
* zur Evaluierung der Android HCE Funktionalität
* zur Evaluierung der Mozilla Rhino Bibliothek
* weil ich immer gern das passendes Tool parat habe

Was kann die App?

virtualjavascriptcard
Eigentlich nichts Grosses. Ein Byte-Array einem JavaScript (via Rhino-Bibliothek) übergeben und den Rückgabewert des JavaScripts wieder in ein Byte-Array konvertieren. Das einzig Spannende daran ist dass das HCE-Framework damit (via Aufruf der processApdu Funktion) befüllt wird. D.h. mit dem richtigen JavaScript-Code, den man selber editieren muss, kann man beliebige NFC Smartcards emulieren. Einziger Wermutstropfen: fehlende AIDs muessten bei Bedarf im Source-Code der App(!) ergänzt werden und die App müsste dann natürlich neu kompiliert und installiert werden. Aber diese Restriktion lässt sich bei einem gerooteten Gerät auch umgehen.

 

In der Praxis

Das einfachste JavaScript würde so aussehen:

function processApdu(apdu){
return new Array(0x90, 0x00);
}

Die virtuelle Karte würde jede Anfrage mit einem Statusword (SW) von 0x9000 (OK) quitieren.
Testen kann man das ganze wie folgt:
1. App installieren: APK-Datei direkt mit dem Smartphone runterladen und Installationsdialog bestätigen (Sicherheit | Geräteverwaltung | Installation aus andeten Quellen zulassen). Oder
1a. aus den Sourcen kompilieren, weil man evtl eine andere AID ergänzen möchte. Hierzu den Source herunterladen, AID mit folgender Zeile:

<aid-filter android:name="xxxxxxxxxxxx" />

in apduservice.xml ergänzen, mit dem SDK kompilieren und dann installieren. Optional könnte man
1b. Xposed-Framework nutzen: bei einem gerooteten Gerät kann man sich 1a auch sparen, wenn man das XposedModifyAidRouting-Modul nutzt. Hiermit können alle SELECT-Kommandos auf die App umgebogen werden und das Ergänzen von neuen/benötigten AIDs wird dynamisch erledigt.
2. JavaScript evtl verändern: nach dem ersten Start der App kann die HCE.js Datei auf den per USB-Kabel angeschlossenen PC editiert werden. Hierzu die Datei erst vom Android Gerät per adb (befindet sich im Android SDK) kopieren, zB:

~/adt-bundle-linux-x86_64-20130219/sdk/platform-tools/adb pull /sdcard/VirtualJavaScriptCard/HCE.js ~/HCE.js

Nun das Skript je nach Wunsch anpassen, zB alle Kommandos mit der Ausgabe eines File Control Information (FCI) Templates für Mastercard beantworten (macht zwar kein Sinn soll nur ein Beispiel sein)

function processApdu(apdu) {
return new Array(0x6F, 0x23, 0x84, 0x0E, 0x32, 0x50, 0x41, 0x59, 0x2E, 0x53, 0x59, 0x53, 0x2E, 0x44, 0x44, 0x46, 0x30, 0x31, 0xA5, 0x11, 0xBF, 0x0C, 0x0E, 0x61, 0x0C, 0x4F, 0x07, 0xA0, 0x00, 0x00, 0x00, 0x04, 0x30, 0x60, 0x87, 0x01, 0x01, 0x90, 0x00);
}

Danach die editierte Datei einfach wieder auf das Gerät zurück kopieren:

~/adt-bundle-linux-x86_64-20130219/sdk/platform-tools/adb push ~/HCE.js /sdcard/VirtualJavaScriptCard/HCE.js

3. Interaktion mit Smartcard Reader testen, zB mit MySmartcardIOShell (interaktive Shell zum Senden von APDUs):

$ java -cp ./MySmartCardIOShell.jar -Dsun.security.smartcardio.library=/lib/x86_64-linux-gnu/libpcsclite.so.1 MySmartCardIOShell

Android Gerät auf den Kontaktlos-Reader des PCs legen, verbinden und APDU senden. Mit dem Nexus10 würde das ganze ungefähr so aussehen:

-/term
0: REINER SCT cyberJack RFID basis 0, sun.security.smartcardio.TerminalImpl, card present: true
protocol: T=1, ATR: 3b 80 80 01 01
>/sel 325041592E5359532E4444463031
=> 00 a4 04 00 0e 32 50 41 59 2e 53 59 53 2e 44 44
46 30 31
<= 6F 23 84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46
30 31 A5 11 BF 0C 0E 61 0C 4F 07 A0 00 00 00 04
30 60 87 01 01 90 00
Status: OK
>

Das gewünschte JavaScript wird durch Auswahl in der Checkbox-Liste der App aktiviert, die App muss aber nicht aktiv sein um Anfragen zu beantworten, da hierfür eine Implementierung des HostApduService im Hintergrund läuft.

Probleme

Wenn mehr als 1 App zum Bezahlen installiert ist kann man unter Einstellungen | Mobil bezahlen die gewünschte App auswählen. Aus Evaluierungszwecke war auf meinem Tablet die Tapp App installiert (und mit keinem Account verknüpft). Diese Konstellation führte dazu dass entsprechende SELECT Kommandos nicht beantwortet werden konnten und die aufrufende Reader Anwendung hing. Nach Auswahl der VirtualJavaScriptCard App als Bezahl-App war das Problem behoben.

payment_select

Ausserdem kann man emulierte Karte nur mit Android Devices ab 4.4 auslesen, da hierfür der NFC-Controller in einen speziellen Modus mit enableReaderMode gesetzt werden und Android Beam ausgeschaltet sein muss.

Auf meinem Nexus 10 scheint sich der Broadcomm NFC-Controller ab und zu mal zu verabschieden. Dann hilft nur ein deaktivieren der NFC-Funktionalität mit anschliessender Re-Aktivierung.

Beispiel: Kreditkarte / PPSE

Mit dem beigefügten HCE_PPSE.js Skript kann man bereits Teile einer Kreditkarte emulieren. Cardpeek zeigt zB folgende Daten an:screenshot-cardpeek-emv

Oder man schaut sich mit dem MasterCard Terminal Simulator an welche Kommandos an die Karte gesendet werden:

screenshot_mastercard_terminal_simulator

Links

Virtual JavaScriptCard App – Source Code https://github.com/rena2019/VirtualJavaScriptCard
XposedModifyAidRouting https://github.com/johnzweng/XposedModifyAidRouting
Blogartikel: List of HCE (Host Card Emulation) Apps

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.