Reite die (NFC-)Welle

From
Revision as of 09:54, 17 October 2013 by Strobel (talk | contribs) (Installation & Starten der VSC)
Jump to navigation Jump to search

Ziel des Seminars war es, den neuen Reiner SCT cyberJack wave Comfort-Kartenleser<ref>cyberJack wave</ref> mittels eines Smartphones (Android) über Bluetooth anzusprechen. Weiterhin haben wir versucht die Kommunikation zu einem PC weiterzureichen um damit (bspw.) die AusweisApp<ref>AusweisApp</ref> oder einen anderen Service (Selbstauskunft) für den neuen Personalausweis (nPA) benutzen zu können. Damit wäre ein Man-In-The-Middle-Angriff denkbar/durchführbar. Zum Zeitpunkt des Seminars befand sich der cyberJack wave noch in Entwicklung und dessen Firmware war noch nicht ausgereift.

Voraussetzungen

  • Reiner SCT cyberJack wave
  • Reiner SCT cyberJack wave Android SDK
  • Android SDK
  • VirtualSmartCard

Virtual Smart Card

Da uns die Installation/Benutzung der Virtual Smart Card (VSC)-Komponenten einige Probleme bereitet hat, wollen wir im Folgendem kurz unser Vorgehen erläutern um anderen den Einstieg zu erleichtern! Die Installation erfolgte unter Ubuntu/Linux 12.10. Folgende Pakete werden inkl. Abhängigkeiten für die "Installation" der VSC benötigt:

 sudo apt-get install git autoconf swig libtool libpcsclite-dev help2man gengetopt libusb-dev libusb-1.0.0-dev

Da noch zusätzlich weitere Software kompiliert werden muss, empfiehlt es sich einen seperaten Ordner zu erstellen

 mkdir build; cd build

Auf der Webseite wird beispielhaft für jede Komponente der Compile-Vorgang beschrieben. Wir empfehlen sich daran zu halten, da OpenSSL gepatcht und neu kompiliert wird. Das kann auf einem produktiven System zu Nebenwirkungen führen, wenn die neu kompilierten Bibliotheken in die Standard-Verzeichnisse installiert werden! Deshalb definiert man ein entsprechendes Installations-Prefix:

 PREFIX=/tmp/install

(Achtung!: /tmp wird nach einem Neustart gelöscht! ;) )

Compile & Install OpenPACE

 OPENPACE=openpace
 git clone http://git.code.sf.net/p/openpace/git $OPENPACE
 cd $OPENPACE
 autoreconf --verbose --install
 # with `--enable-openssl-install` OpenSSL will be downloaded and installed along with OpenPACE
 ./configure --enable-openssl-install --prefix=$PREFIX --enable-python --enable-java #CFLAGS=-fno-stack-protector
 make install && cd -

Compile & Install OpenSC

 VSMARTCARD=vsmartcard
 git clone http://git.code.sf.net/p/vsmartcard/git $VSMARTCARD

Das auf der Webseite beschriebene Submodul funktionierte bei uns nicht, deshalb holen wir uns die Quellen seperat...

 cd $VSMARTCARD/npa/src/opensc
 git clone https://github.com/OpenSC/OpenSC.git .
 autoreconf --verbose --install
 # adding PKG_CONFIG_PATH here lets OpenSC use the patched OpenSSL
 ./configure --prefix=$PREFIX PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig --enable-sm
 make install && cd -

Compile & Install nPA-Lib

 cd $VSMARTCARD/npa
 autoreconf --verbose --install
 ./configure --prefix=$PREFIX PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig OPENSC_LIBS="-L$PREFIX/lib -lopensc -lcrypto"
 make install && cd -

Compile & Install VirtualSmartCard

 cd $VSMARTCARD/virtualsmartcard/
 autoreconf --verbose --install
 ./configure --prefix=$PREFIX
 make
 make install
 cd -

Compile & Install USB CCID

 cd $VSMARTCARD/ccid 
 autoreconf --verbose --install
 ./configure --prefix=$PREFIX OPENSC_LIBS="-L$PREFIX/lib -lopensc" PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
 make install && cd -

Compile & Install LibNFC

 LIBNFC=libnfc
 git clone https://code.google.com/p/libnfc $LIBNFC
 cd $LIBNFC
 autoreconf -i
 # See `./configure --help` for enabling support of additional hardware
 ./configure --prefix=$PREFIX
 make
 make install
 cd -

Compile & Install PC/SC-Relay

 cd $VSMARTCARD/pcsc-relay/
 autoreconf --verbose --install
 ./configure --prefix=$PREFIX PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
 make
 make install
 cd -

VSC-Reader starten & VSC emulieren

Um nun den Emulator zu starten wird zunächst der entsprechende Service angehalten

 sudo service pcscd stop

Überprüfen mittels

 sudo service pcscd status

Jetzt können wird den Emulator mit der "mitgelieferten" config starten

 sudo pcscd -f -d -a -c $PREFIX/etc/reader.conf.d/vpcd

Der Emulator bleibt im Vordergrund (-f) und gibt verschieden Informationen aus (-d / -a). Testen, ob die VSC-Reader korrekt erzeugt wurden:

 pcsc_scan

Eine Smart Card (z.B. nPA) lässt sich nun mit dem Befehl

 $PREFIX/bin/vicc -t nPA

emulieren. Sowohl im Fenster von pcscd als auch bei pcsc_scan sollten nun entsprechende Ausgaben erscheinen.

Einzelnachweise

<references />