Smartcards, Linux Logon und mehr...

Im Zuge eines Uni Projekts, welches sich mit Smartcards und all seinen schönen Eigenschaften auseinandersetzt, habe ich mir meine Siemens Smartcard genommen und damit einen Linux Logon und vieles mehr realsiert. Da ich ausser das offizielle PAM PKCS11 Handbuch nichts gutes als Anleitung finden konnte, habe ich mich entschieden hier mal meine Erfahrungen step-by-step aufzuschreiben.

  1. Reader installieren
  2. Ubuntuimage herunterladen
  3. Ubuntu installieren
  4. erste Schritte in Linux

Smartcard Reader installieren

Da ich den Hauptteil meiner Arbeiten an meinem Laptop unter Linux erledige, bezieht sich das gesamte Tutorial auf Ubuntu (9.10). Als Reader benutze ich OMNIKEY CardMan Mobile 4040 für den PCMCIA Steckplatz. Nachdem der Reader eingesteckt wurde sollte man mit

lsmod | grep cm4040

eine ähnliche Ausgabe bekommen:

cm4040_cs 6708 3
pcmcia 36808 1 cm4040_cs

Wenn nicht, kann man mit

modprobe cm4040_cs

versuchen das Modul manuell zu laden. Auch muss das Gerät /dev/cmx0 existieren.

Der nächste Schritt ist es den CardReader mit den pcsc Daemon zum laufen zu bringen. Dazu installiert man folgende Programme:
sudo aptitude install opensc pcsc-tools pcscd pcsc-omnikey

Man trägt in /etc/reader.conf.d/reader.conf und in /var/lib/pcscd/reader.conf folgendes ein ( notfalls Datei erstellen ):

# Configuration file for CardMan 4040 smartcard reader.
FRIENDLYNAME    "OMNIKEY CardMan 4040 Socket 0"
DEVICENAME      /dev/cmx0
LIBPATH         /usr/lib/pcsc/drivers/ifdok_cm4040.so
CHANNELID       0

anschliessend führt man /usr/sbin/update-reader.conf durch notfalls mit FORCE paramter.
Jetzt nur noch pcscd neustarten mit sudo /etc/init.d/pcscd restart.

Man sollte mit
pcsc_scan

folgendes sehen
PC/SC device scanner
V 1.4.15 (c) 2001-2009, Ludovic Rousseau ludovic.rousseau@free.fr
Compiled with PC/SC lite version: 1.4.102
Scanning present readers...
0: OMNIKEY CardMan 4040 Socket 0 00 00

Wed Apr 21 21:56:43 2010
Reader 0: OMNIKEY CardMan 4040 Socket 0 00 00
Card state: Card removed,

openSC

Da opensc teilweise mit openct zusammenhängt, wir aber openct nicht benutzen, konfigurieren wir opensc so, dass es nur pcscd als reader anspricht. Man sucht also in der Datei /etc/opensc/opensc.conf die Zeile
# reader_drivers = [...] pcsc, openct;

um in
reader_drivers = pcsc;

nun sollte auch opensc-tool -l ähnliches liefern:
Nr.    Driver     Features  Name
0      pcsc                 OMNIKEY CardMan 4040 Socket 0 00 00

TODO: Pam.d/ konfigurieren