Smartcards als sicheren Datenspeicher oder Passwortersatz verwenden erfordert eine entsprechende Leseeinheit am Rechner. Das Hardware-Labor untersuchte drei Geräte mit unterschiedlichen Schnittstellen auf ihre Linux-Tauglichkeit.
Smartcards mit leistungsfähigen Krypto-Prozessoren speichern Schlüssel, Passwörter und – in begrenztem Umfang – Daten sicher. Im Idealfall verlässt ein einmal gespeicherter Schlüssel die Karte nicht mehr, denn der Krypto-Prozessor übernimmt das Verschlüsseln und Signieren der Daten. Die Karte kann dafür verlangen, dass sich der Benutzer ihr gegenüber mittels PIN authentifiziert. Im Gegensatz zu Passwörtern oder PIN/TAN-Verfahren erfordern Smartcards jedoch zusätzliche Hardware am Rechner: einen Kartenleser.
Serieller Zugriff
Stellvertretend für die Geräte anderer Hersteller testete das Hardware-Labor drei Smartcard-Reader von Kobil[1] mit unterschiedlichen Schnittstellen: Als PC-Card, mit serieller Schnittstelle und mit USB-Anschluss. Grundsätzlich wird auf Smartcard-Reader über die serielle Schnittstelle zugegriffen – bei den USB- und PC-Card-Lesern ist deshalb einfach ein serieller Adapter zwischengeschaltet. Der Smartcard-Reader bleibt intern ein serielles Gerät und war in allen drei getesteten Geräten gleich.
Was viele Hersteller als Treiber für die Kartenleser bezeichnen, ist tatsächlich eine Protokollbibliothek. Für die Ansteuerung der seriellen Adapter oder Schnittstellen ist allein das Betriebssystem verantwortlich. Das bedeutet allerdings gerade bei USB-Kartenlesern, dass sie unter Linux oft nicht laufen. Eine Liste mit den Protokollbibliotheken (Treibern) für die Kartenleser verschiedener Hersteller ist über das Muscle-Projekt[2] unter[3] zu finden.
Einfacher Funktionstest
Um die Linux-Tauglichkeit zu prüfen, reicht es meist schon, den Kartenleser einfach anzuschließen. Findet der Kernel bei USB- oder PC-Card-Geräten eine neue serielle Schnittstelle, ist der Smartcard-Reader grundsätzlich einsetzbar, anschließend sind noch die Protokollbibliotheken zu installieren. Für einen ersten Funktionstest reichen dann Krankenversicherungs- oder Telefonkarte, entsprechende Programme für das Auslesen gibt es bei[4].
Für die Kobil-Leser verwendeten die Tester das Paket aus dem Downloadbereich von[1]. Es enthält die Bibliotheken »libct.so« und »libkobil_idf.so«, die sie zur Installation einfach nach »/usr/lib« kopierten. Entwickler benötigen zudem die Headerdatei »ct_api.h« und gegebenenfalls die Bibliothek »libct.a«, die sie entsprechend in »/usr/include« und »/usr/lib« installieren.
Installation
Für den Betrieb empfehlenswert sind zudem die PCSC-Tools und der PCSC-Daemon »pcscd«, er überwacht Events wie das Einstecken oder Herausziehen der Karte und leitet je nach Konfiguration entsprechende Aktionen ein. Das Debian-Sid-Testsystem verwendete die vorkompilierten Pakete »pcscd« in Version 1.1.2-ubeta5, »pcsc-tools« in Version 1.3.0 sowie »1.1.2-ubeta5«.
Abweichend von der Installationsanleitung des Herstellers Kobil sollte die Konfigurationsdatei »reader.conf« aus dem Treiberpaket nicht nach »/etc« kopiert werden, sondern nach »/etc/reader .conf.d/kobil«. Dort sind dann außerdem der Pfad zu der Bibliothek »libkobil _ifd.so« sowie unter »CHANNELID« die hexadezimale Adresse des seriellen Anschlusses den lokalen Gegebenheiten anzupassen.
Die Konfigurationsdateien für weitere Kartenleser werden ebenfalls in dem Verzeichnis »/etc/reader.conf.d« abgelegt, ein Aufruf von »update-reader.conf« baut daraus die von den Chipkarten-Applikationen gemeinsam genutzte Datei »/etc/reader.conf«.

Abbildung 1: Nach Umdrehen der roten Schublade liest das Kobil Kaan Twin statt der Scheckkarten-großen Smartcards auch SIM-Karten.
Kaan Twin seriell
Das Kobil Kaan Twin (Abbildung 1) kostet in der getesteten Version mit seriellem Anschluss rund 30 Euro, die USB-Variante ist 5 Euro teurer. Es handelt sich um ein Gerät ohne Display und Tastatur zur Eingabe der PIN. Zur Stromversorgung dient eine PS/2-Verlängerung zwischen Tastatur und Rechner, was bei Notebooks nicht ganz unproblematisch ist – manche Geräte schalten den PS/2-Anschluss ab, wenn sie beim Start keine Tastatur finden.
Das Kaan Twin liest sowohl die Scheckkarten-großen Smartcards als auch SIM-Karten. Für Letztere muss man die rote Schublade herausziehen und umdrehen, auf der Rückseite befindet sich eine entsprechende Vertiefung für die SIM-Karte. Beim Test fiel auf, dass sich normal große Smartcards hin und wieder nicht weit genug einschieben ließen. Schuld daran ist das erhabene Kartensymbol auf der Oberseite der Schublade (Abbildung 2). Es ragt fast einen halben Millimeter heraus, sodass die Karte daran hängen bleibt. Abhilfe schafft, den vorderen Rand des Symbols mit etwas feinem Schmirgelpapier abzuschleifen.
Kaan Standard Plus USB
Das Kaan Standard Plus (Abbildung 3) kostet mit USB-Anschluss rund 50 Euro. Das eingebaute Display dient der Anzeige von Buchungsinformationen, die PIN wird über die Tastatur des Kartenlesers eingegeben. Eine entsprechende Logik im Gerät verhindert, dass der PC die PIN mitliest. Kartenleser und Standfuß lassen sich trennen, das USB-Adapterkabel wird dann statt am Standfuß direkt unten an das Lesegerät angeschlossen. Zum Lieferumfang des Kartenlesers gehört ein Adapter für SIM-Karten. Anders als beim Kaan Twin muss man den Adapter des Kaan Standard Plus entfernen, um Scheckkarten-große Smartcards einführen zu können.
Im Treiberpaket von Kobils Homepage[1] ist ein Patch für Kernel 2.4.18 enthalten, mit dem der USB-Kartenleser funktionieren soll. Ab Version 2.4.21 unterstützt der Standardkernel das Gerät – wenn auch noch experimentell. Im Test war der Kartenleser nicht zum Laufen zu bringen, weder erkannte der Kernel eine neue serielle Schnittstelle, noch konnten Moneyplex und das Testprogramm Cardping den Kartenleser finden.
Das Lesegerät selbst ist nicht das Problem, sondern der im Kabel eingebaute USB-Seriell-Adapter: Die Version mit seriellem Anschlusskabel verhält sich genau wie das Kaan Twin und bereitete keine Probleme; sie ist mit 45 Euro auch etwas billiger als das USB-Gerät.

Abbildung 2: Das erhabene Kartensymbol auf der Schublade des Kaan Twin behindert beim Einlegen einer Smartcard.

Abbildung 3: Das Kobil Kaan Standard Plus kann samt Display und Tastatur aus dem schwarzen Ständer herausgenommen werden, es hat dann nur noch die Größe eines Handballens.
PCMCIA-Reader B1
Der PCMCIA-Reader B1 von Kobil ist ebenso groß wie eine Smartcard. Deshalb besteht das Gerät aus einem Ober- und einem Unterteil, die nahe dem PC-Card-Anschluss beweglich miteinander verbunden sind. Die Seiten sind offen, sodass die Wände des Notebook-Slots als Führung für die Smartcard dienen. Mit rund 130 Euro ist der Kartenleser recht teuer, für Notebooks jedoch deutlich praktischer als ein USB-Gerät – eine sichere PIN-Eingabe wie beim Kaan Standard Plus ist jedoch nicht möglich. Die Linux-Einbindung war problemlos, die Card Services erkannten den Leser als seriellen Adapter.

Abbildung 4: Der PCMCIA-Reader B1 von Kobil in der Größe einer Smartcard ist zweigeteilt, um die Karten überhaupt aufnehmen zu können.
Fazit
Smartcard-Reader funktionieren unter Linux, wenn ihr serieller Adapter einwandfrei erkannt wird. Bei USB-Geräten ist Vorsicht geboten, kaum ein Hersteller gibt an, welcher serielle Adapter in dem Kartenleser steckt. Im Zweifel schließt man das Gerät vor dem Kauf an und sieht nach, ob der Kernel eine weitere serielle Schnittstelle erkennt.
|
Infos |
|---|
|
[1] Kobil Systems: [http://www.kobil.de] [2] Muscle: [http://www.linuxnet.com/] [3] Treiberliste mit Angabe der unterstützten Kartenleser: [http://www.linuxnet.com/sourcedrivers.html] [4] Programme zum Auslesen von Chipkarten: [http://www.linuxnet.com/apps.html] |






