HSG

Aktuelle Seite: HSG/Fächer/Informatik/Kryptologie/Chipkarten

Installation eines Omnikey 3121-Readers unter Ubuntu

Zunächst wurden die PC/SC -Treiber installiert.

sudo apt-get install pcscd pcsc-tools libpcsclite1

Dann wurde der Omnikey-Treiber ifdokccid_lnx-3.6.0 heruntergeladen, entpackt und installiert.

mk@t41:~/Downloads/ifdokccid_lnx-3.6.0$ sudo ./install

Installing HID Global OMNIKEY CCID Smartcard reader driver ...

PCSC-Lite found: /usr/sbin/pcscd
Copying ifdokccid_lnx-3.6.0.bundle to /usr/lib/pcsc/drivers ...

Installation finished!

Ein Test mit pcsc_scan zeigt den ATR einer alten EC-Karte.

mk@t41:~/Downloads/ifdokccid_lnx-3.6.0$ pcsc_scan
PC/SC device scanner
V 1.4.16 (c) 2001-2009, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.5.3
Scanning present readers...
0: Fujitsu Siemens SmartCard USB 2A 00 00

Thu Jun 23 14:37:14 2011
 Reader 0: Fujitsu Siemens SmartCard USB 2A 00 00
  Card state: Card inserted, 
  ATR: 3B EF 00 FF 81 31 42 45 65 63 03 02 03 02 80 00 22 40 48 95 96 00 20 28

ATR: 3B EF 00 FF 81 31 42 45 65 63 03 02 03 02 80 00 22 40 48 95 96 00 20 28
+ TS = 3B --> Direct Convention
+ T0 = EF, Y(1): 1110, K: 15 (historical bytes)
  TB(1) = 00 --> VPP is not electrically connected
  TC(1) = FF --> Extra guard time: 255 (special value)
  TD(1) = 81 --> Y(i+1) = 1000, Protocol T = 1 
-----
  TD(2) = 31 --> Y(i+1) = 0011, Protocol T = 1 
-----
  TA(3) = 42 --> IFSC: 66
  TB(3) = 45 --> Block Waiting Integer: 4 - Character Waiting Integer: 5
+ Historical bytes: 65 63 03 02 03 02 80 00 22 40 48 95 96 00 20
  Category indicator byte: 65 (proprietary format)
+ TCK = 28 (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B EF 00 FF 81 31 42 45 65 63 03 02 03 02 80 00 22 40 48 95 96 00 20 28
	Scard Sparkasse Detmold, Deutschland BLZ 47650130

Direkter Zugriff auf eine Chip-Karte über ein serielles Terminal

Über ein sogenanntes Phoenix-Interface, das im Wesentlichen nur aus einem Taktgeber und entsprechenden Puffern für TxD und RxD besteht, kann mit Hilfe eines seriellen Terminalprogramms, unter Ubuntu, direkt auf die Karte zugegriffen werden. Vielleicht sollte man erwähnen, dass die Karte einen Open-Kollektor-Ausgang hat, dh., um Einsen zu lesen, braucht man einen Pull-Up. Im vorliegenden Fall wurde eine sogenannte 'Easymouse 2' verwendet, die einen USB-Seriell-Wandler enthält, sich in den Phoenix-Modus versetzen lässt und bei ebay für 22 Euro erworben wurde.

Konfiguration

Einen Reset löst man dabei mit der fallenden Flanke der RTS-Handshake-Leitung aus. Die Karte antwortet auf den Reset mit dem ATR. Es soll nicht verschwiegen werden, dass viele Details des ISO 7816-3 Protocols hier nicht korrekt eingehalten werden, sodass Fehler auftreten können.

ATR

Direkte Kommunikation mit einer smartcard über scriptor/gscriptor

Die pcsc-tools von Ludovic Rousseau erlauben über einen PC/SC-kompatiblen Cardreader eine direkten Kontakt mit der Karte.

mk@x2:~$ scriptor
No reader given: using FSC SCR USB 2A 00 00
Using T=1 protocol
Reading commands from STDIN
0000000000
> 00 00 00 00 00 
< 6D 00 : Instruction code not supported or invalid.

Der Datenaustausch zwischen Karte und Terminal geschieht durch sogenannte APDUs. Im obigen Beispiel wurde zwar das Format eines APDUs eingehalten, die Karte kennt aber den Befehl 00 00 00 00 00offensichtlich nicht.

Links