SuisseID unter Debian GNU/Linux nutzen

Copyright © 2010 by Bernd Fix <brf@hoi-polloi.org>



Die SuisseID

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)


Benutzung der SuisseID unter Linux

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:


Einsatz der SuisseID-Chipkarte von SwissSign AG unter Debian GNU/Linux

Leider unterstützt die SuisseID von SwissSign von Haus aus kein Debian GNU/Linux.

Initialisierung der SuisseID

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!

Test der SuisseID unter Debian

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
C_SeedRandom() and C_GenerateRandom():
  seeding (C_SeedRandom) not supported
Speicherzugriffsfehler
$

Verwendung der SuisseID unter Debian


Linux-Applikationen mit Signaturkarten-Support

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)


Konfigurations-Anleitungen


Mozilla Firefox / Thunderbird

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:


OpenOffice

(Noch nicht erstellt)


OpenSSH

(Noch nicht erstellt)


PAM

(Noch nicht erstellt)


OpenVPN

(Noch nicht erstellt)


Anhang 1: Kartenleser und Leser-Software

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

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.
  • 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.

  • Zusätzlich kann bei Transaktionen (z.B. Online-Bezahlvorgängen) eine Anzeige (z.B. Warenkorbwert) angezeigt werden, was die Sicherheit erhöht.
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)


Leser-Software (Treiber)

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

 


Anhang 2: Installations-Anleitungen

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.


OpenSC

Detaillierte Informationen (auf Englisch) finden Sie auf der Projekt-Homepage.


OpenCT

Detaillierte Informationen (auf Englisch) finden Sie auf der Projekt-Homepage.


PC/SC