Copyright © 2010 by Bernd Fix <brf@hoi-polloi.org>
Die SuisseID entstand aus einer Initiative des Staatssekretariat für Wirtschaft SECO, um eine standardisierte Signaturkarte für Privatpersonen, Firmen und öffentliche Einrichtungen in der Schweiz zu schaffen. Sie erlaubt dazu die Erstellung qualifizierter digitaler Signaturen (elektronische Unterschriften), die nach schweizerischem Gesetz seit 2001 der eigenhändigen Unterschrift rechtlich gleichgestellt sind. SuisseID-Zertifikate genügen der ElDI-V und können deshalb auch im elektronischen Datenaustausch mit Behörden und Ämtern (z.B. Steuerverwaltung) eingesetzt werden.
(siehe auch: Wikipedia:Elektronische Signatur, EStV:ElDI-V)
Die Linux-Unterstützung für die SuisseID ist - wie bei vielen kommerziellen Produkten - leider etwas eingeschräkt. Aktuell sieht bietet sich je nach Aussteller/Lieferant folgendes Bild:
SwissSign AG bietet zur Zeit die beste (einzige) Unterstützung von Linux-Umgebungen an. Offiziell werden folgende Systeme unterstützt:
Es werden sowohl 32-bit als auch 64-bit Versionen unterstützt. Unter den aufgeführten Umgebungen werden jeweils Firefox (Browser) und Thunderbird (eMail) unterstützt.
Quo Vadis Trustlink Schweiz AG bietet zur Zeit keine Unterstützung für Linux-Umgebungen an.
swisscom AG liefert nur für Grosskunden. Es ist nicht zu ersehen, ob Linux unterstützt wird oder nicht.
Leider unterstützt die SuisseID von SwissSign von Haus aus kein Debian GNU/Linux.
Mit den folgenden Schritten habe ich die SuisseID von SwissSign unter Debian (32-bit) initialisieren können:
Nutzung auf eigene Gefahr! Es wird keine Haftung für zerschossene Karten
übernommen!
Die Verwendung von SuisseIDs anderer Hersteller kann dazu führen, dass die SuisseID
unwiderbringlich beschädigt wird!
Benötigte Debian-Pakete installieren
Die Initialisierung und spätere Verwendung der SuisseID erfordert, das bestimmte Debian-Pakete auf dem Rechner installiert sind.
Sollten diese Pakete nicht vorhanden sein, dann sind sie vorgängig zu installieren:
$ sudo apt-get install libpcsclite1 pcscd pcsc-tools libccid
|
Herunterladen und entpacken des Linux-Software-Paketes von der SwissSign-Webseite
Bei der OS-Auswahl wird zwar Debian aufgeführt, aber das scheint ein Fehler zu sein; nach dem Entpacken des Archives bitte nicht das Installations-Skript starten! Statt dessen auf jeden Fall das PDF-Dokument mit der Setup-beschreibung lesen.
$ wget http://postsuisseid.ch/images/setup/postsuisseid-lin-1647.tar.bz2 |
N.B.: Die Versionsnummer der Software (hier 1647) kann sich mit der Zeit ändern; bitte den Download-Link direkt von der aktuellen SwissSign-Seite kopieren!
Kopieren einer "passenden" C++-Library
Damit das Initialisierungs-Programm ausgeführt werden kann, braucht es eine neuere C++-Bibliothek. Ich habe dazu die entsprechende 32-bit Library aus Ubuntu 9.10 in das Verzeichnis lib_i386 des entpackten Archives kopiert:
$ cd lib_i386 |
Manuelles Starten des Initialisierungs-Programmes
SuisseID-Karte in den Leser stecken (ich benutze einen REINER SCT cyberJack als Klasse-3-Gerät) und warten, bis die LED aufhört zu blinken. Dann das Initialisierungs-Programm aus dem Verzeichnis heraus starten, in das das Archiv entpackt wurde:
$ LD_LIBRARY_PATH=lib_i386 share/swisssign-init/init 2>&1 | tee init.log
|
Der Ablauf ist genauso wie im Original-PDF-Dokument zum Setup beschrieben. Nach Abschluss der Initialisierung ist die SuisseID einsatzbereit. Die Ausgabe des Programms befindet sich in der Logdatei 'init.log' und kann bei Problemen konsultiert werden.
Kopieren der PKCS#11-Library
Damit Firefox und Thunderbird später auf die SuisseID zugreifen können, muss vorher die PKCS#11-Bibliothek kopiert werden:
$ sudo cp lib_i386/libcvP11.so /usr/local/lib
|
Der Einsatz der SuisseID unter Debian wird zum jetzigen Zeitpunkt (19.August 2010) durch ein Problem in der mitgelieferten PKCS#11-Bibliothek verhindert. Dies kann einfach mit dem Werkzeug "pkcs11-tool" nachvollzogen werden:
$ pkcs11-tool --verbose --test --module /usr/local/lib/libcvP11.so |
Einrichten der SuisseID für Firefox und Thunderbird
Die Einrichtung der SuisseID für Firefox (Browser) und Thunderbird (eMail) ist gesondert beschrieben.
Einrichten weiterer SwissSign-Applikationen
Eine Installation von SwissSigner habe ich (noch) nicht vorgenommen.
Unter Linux verwenden alle gängigen Applikationen mit Smartcard-Support die vom OpenSC-Projekt bereitgestellte PKCS#11-Schnittstelle (die Installation von OpenSC wird später beschrieben):
Tabelle "Applikationen" | ||
Anwendungsart | Applikation | Anwendungsfall |
Web-Browser | Mozilla Firefox | Anwender-Identifikation bei gesicherten Verbindungen |
Email-Client | Mozilla Thunderbird | Verschlüsselung von Emails (S/MIME) |
Evolution | ||
Office | OpenOffice | Signieren von Dokumenten |
OpenSignature, jPdfSign | Signieren von PDF-Dateien | |
Login | OpenSSH (remote) | Anwender-Identifikation |
PAM (lokal) | ||
VPN | OpenVPN (SSL) | Anwender-Identifikation |
StrongSWAN (IPSec) |
(siehe auch: Wikipedia:PKCS#11, OpenSC-Projekt-Homepage)
Die Einrichtung für Firefox und Thunderbird ist identisch, auch wenn die jeweiligen Dialoge leicht in ihrem Aussehen voneinander abweichen. Die Beschreibung erfolgt beispielhaft für Firefox:
Den Menüpunkt "Bearbeiten->Einstellungen" auswählen:
In der Dialogbox den Eintrag "Erweitert" und dann den Tab "Verschlüsselung" anwählen; anschliessend den Button "Kryptographie-Module" betätigen:
Nach Betätigen des Buttons "Laden" auf der rechten Seite des Dialogs kann das benötigte Modul geladen werden:
Der Name des neuen Moduls kann frei gewählt werden; als Pfad ist /usr/local/lib/libcvP11.so zu verwenden:
Das neue Modul wird auf der linken Seite in der Liste angezeigt; darunter findet sich der Name des zugeordneten Kartenlesegerätes (kann bei Ihnen abweichen oder leer sein):
Nach Einstecken der SuisseID-Smartcard wird diese in der Liste angezeigt; es hat noch kein Anmeldevorgang auf die Karte stattgefunden:
Nach Betätigung des Buttons "Anmelden (Log-in)" wird nach dem Passwort für die SuisseID gefragt:
Nach erfolgreicher Anmeldung wird dies in der Dialogbox angezeigt:
Nach Schliessen der Dialogbox sollte noch OCSP als Standard zur Zertifikatsvalidierung gewählt werden; dazu wird der Button "Validierung" gedrückt und in der neuen Dialogbox die entsprechende Einstellung vorgenommen:
Nach Schliessen der Dialogbox können wir uns mit dem Button "Zertifikate anzeigen" unsere SuisseID-Zertifikate ansehen:
Nach Doppelklick auf eines unserer Zertifikate wird dieses angezeigt:
(Noch nicht erstellt)
(Noch nicht erstellt)
(Noch nicht erstellt)
(Noch nicht erstellt)
Damit Sie die SuisseID (oder jede beliebige andere Chipkarte) unter Linux verwenden können, benötigen Sie einen Chipkartenleser und die dazugehörige Leser-Software (Treiber). Ein zusätzlicher Kartenleser wird nicht benötigt, wenn Sie die SuisseID in Form eines USB-Sticks verwenden.
Chipkartenleser können in unterschiedlichen Ausführungen im gut sortierten Elektronik-Fachhandel erworben werden. Lesegeräte werden dabei nach Sicherheitsklassen unterschieden; höhere Sicherheitsklassen sind in der Regel auch mit höheren Preisen verbunden. Die für den privaten Einsatz gebrächlichen Sicherheitsklassen sind:
Tabelle "Chipkartenleser" | ||||
Klasse | Beispiel | Beschreibung | Vorteile | Nachteile |
1 | Einfacher Chipkartenleser ohne Tastatur oder Anzeige; der Anschluss erfolgt über USB oder die serielle Schnittstelle. Auch USB-Sticks (mit integrierter Chipkarte/Leser) oder PCMCIA/Expresscard-Einsteckgeräte fallen unter diese Klasse. | Günstiger Preis (externer Leser zwischen CHF 30.00 und CHF 50.00) | Die PIN-Eingabe erfolgt auf dem Computer und kann so unter Umständen von Schadsoftware (z.B. trojanischen Pferden) ausgespäht werden. | |
2 | Chipkartenleser mit Tastatur, aber ohne Anzeige; der Anschluss erfolgt über USB oder die serielle Schnittstelle. | Die PIN-Eingabe erfolgt nicht auf dem Computer, sondern über die eingebaute Tastatur. Damit wird verhindert, dass die PIN von Schadsoftware (z.B. trojanischen Pferden) ausgespäht werden kann. | Höherer Preis (ab CHF 50.00) | |
3 | Erweiterter Chipkartenleser mit Tastatur und Anzeige; der Anschluss erfolgt über USB oder die serielle Schnittstelle. |
|
Höherer Preis (ab CHF 120.00) |
Für die Verwendung mit der SuisseID (die immerhin eine qualifizierte digitale Signatur erlaubt) empfiehlt sich der Einsatz eines Chipkartenlesers der Sicherheitsklasse 2 (oder höher).
(siehe auch: Wikipedia:Chipkartenleser)
Je nach eingesetztem Chipkarten-Leser wird entweder OpenCT oder PC/SC für die Kommunikation mit dem Lesegerät benötigt. Um ein möglichst breites Einsatzspektrum (z.B. bei Wechsel der Kartenleser) zu gewährleisten, können PC/SC und OpenCT auch problemlos parallel installiert werden.
Die nachfolgenden Treiber sind in Open-Source-Versionen (GPL resp. LGPL) verfügbar; sollte Ihr Kartenleser hier nicht aufgeführt sein, stellt der Hersteller eventuell einen propritären Treiber für OpenCT oder PC/SC zum Download bereit. Es lohnt sich, vor dem Kauf eines Kartenlesers die Verfügbarkeit eines passenden Linux-Treibers abzuklären.
Tabelle "Treiber-Software" | ||||
Hersteller | Modell | OpenCT | PC/SC | Bemerkung |
Athena | ASEDrive IIIe | X | USB / Seriell | |
Cherry | Smartboard G83-6744 | X | X | PIN-Tastatur nicht unterstützt (OpenCT) |
Gemalto | GemPC 410 | X | ||
GemPC 412 | X | |||
GemPC 413 | X | |||
GemPC 415 | X | |||
GemPC 430 | X | |||
GemPC 432 | X | |||
GemPC 435 | X | |||
GemPlus GCR410 | X | |||
HP | Smartcard Keyboard | X | X | |
OMNIKEY | CardMan 3021 | X | X | |
CardMan 3121 | X | X | ||
CardMan 5121 | X | X | ||
PertoSmart | AC-1030 Chipsatz | X | USB / Seriell | |
AC-1038 Chipsatz | X | |||
ACS ACR30 | X | USB / Seriell | ||
ACS ACR38 | X | inkl. Varianten, aber nicht ACS38-CCID | ||
ACS ACR38U | X | |||
ACS ACR100 | X | USB ID 072f/9007 | ||
ACS Cryptomate | X | |||
Smartmouse / Phoenix | X | |||
SCM / Towitoko | SCR 331 | X | X | |
SCR 3310 | X | X | ||
Chipdrive Micro | X | X | ||
Kartenzwerg | X | X | ||
Kartenzwerg II | X | X | ||
Chipdrive External | X | X | ||
Chipdrive Twin | X | X | ||
Chipdrive Internal | X | X |
Die Installation der benötigten Software-Komponenten ist auf den meisten Linux-Installationen sehr einfach, da die gängigen Linux-Distributionen diese Komponenten als Installationspakete enthalten. Die nachfolgenden Anleitungen beziehen sich auf Debian/GNU Linux; bei anderen Distributionen ist in der Regel nur der spezifische Paket-Manager (statt apt-get z.B. yum unter Ubuntu) zu verwenden.
Ist in der eingesetzten Linux-Distribution ein Paket unbekannt, so kann die Software von der Projekt-Homepage geladen und dann lokal übersetzt werden. Anleitungen und Hilfestellung dazu finden Sie im Internet, auf den Support-Seiten des Linux-Distributors oder in Diskussionsforen.
Detaillierte Informationen (auf Englisch) finden Sie auf der Projekt-Homepage.
Paket-Installation
# apt-get install opensc
|
Die Installation zieht ggf. weitere benötigte Pakete (wie libopensc2, libssl0.9.8, zlib1g, libltdl3, ...) an, falls diese noch nicht auf Ihrem System installiert sind.
Installation aus Quellcode
Müssen Sie OpenSC aus dem Quellcode installieren (kompilieren), dann führen Sie bitte vorher die Installation der Treibersoftware (OpenCT und/oder PC/SC) aus, da OpenSC auf die Bibliotheken dieser Pakete verweist und diese vorgängig vorhanden sein müssen. Das gleiche gilt für referenzierte Bibliotheken, die sie am einfachsten als Pakete vorher installieren:
# apt-get install libssl-dev zlib1g-dev libltdl3-dev |
Die weiteren Kompilations-/Installations-Schritte entnehmen Sie bitte der Dokumentation, die dem Quellcode beigefügt ist.
Detaillierte Informationen (auf Englisch) finden Sie auf der Projekt-Homepage.
Paket-Installation
# apt-get install openct
|
Die Installation zieht ggf. weitere benötigte Pakete (wie libopenct1, libusb-0.1-4, libltdl3, ...) an, falls diese noch nicht auf Ihrem System installiert sind.
Installation aus Quellcode