ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

HBCI Kartenleser

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung: Der Artikel müsste für die Verwendung mit aktuellen Kartenlesern überarbeitet werden, da einige der genannten Geräte nur noch von historischer Bedeutung sind. Außerdem sind die Installationsangaben zu den benötigten Paketen und zum Chipcard Daemon verwirrend.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Finanzverwaltung/gnucash_logo.png HBCI (Homebanking Computer Interface), inzwischen auch als FinTS bekannt, ist ein offener Standard für den Bereich Electronic Banking und Kundenselbstbedienung und gehört derzeit zu den sichersten Verfahren für Online-Banking. Dazu benötigt man einen speziellen Kartenleser für die von den Banken ausgegebenen HBCI-Karten. Diese Karten haben die Größe einer EC-Karte.

Die Bibliothek libchipcard 🇩🇪 stellt die Kommunikation zwischen Kartenleser und Homebanking-Anwendung her. Obwohl libchipcard so konzipiert ist, dass Kartenleser automatisch erkannt und eingerichtet werden, gibt es in der Praxis immer wieder Probleme und damit Handlungsbedarf, um die drei Komponenten (HBCI-Karte, Kartenleser und Software) zur Zusammenarbeit zu bewegen.

Hibiscus und die kommerziellen Programme Moneyplex 🇩🇪 sowie Starmoney 🇩🇪 (unter Linux mittels Wine nutzbar) benutzen die CT-API-Schnittstelle, um Kartenleser anzusprechen und benötigen daher libchipcard nicht.

Getestete Kartenleser

Grundinstallation

Folgende Pakete werden benötigt [1]:

  • aqbanking-tools (universe )

  • libaqbanking35 (universe )

  • libaqbanking-data (universe )

  • libaqofxconnect7 (universe )

  • libaqhbci22 (universe )

  • libchipcard-data (universe)

  • libchipcard-tools (universe)

  • libchipcard-libgwenhywfar60-plugins (universe )

Befehl zum Installieren der Pakete:

sudo apt-get install aqbanking-tools libaqbanking35 libaqbanking-data libaqofxconnect7 libaqhbci22 libchipcard-data libchipcard-tools libchipcard-libgwenhywfar60-plugins 

Oder mit apturl installieren, Link: apt://aqbanking-tools,libaqbanking35,libaqbanking-data,libaqofxconnect7,libaqhbci22,libchipcard-data,libchipcard-tools,libchipcard-libgwenhywfar60-plugins

Für Ubuntu 14.04 muss das Paket libaqbanking35 durch eine ältere Version ersetzt werden: libaqbanking34

Für KDE:

Paketliste zum Kopieren:

sudo apt-get install qbankmanager libchipcard-tools libchipcard-libgwenhywfar47-plugins libchipcard-data libchipcardd0 libchipcard-ctapi0 libchipcardc2 libaqbanking20-plugins libaqbanking20-plugins-qt libaqbanking20 aqbanking-tools libqbanking5 libaqbanking-plugins-libgwenhywfar47 libaqbanking-data 

Die übrigen Abhängigkeiten werden automatisch aufgelöst.

Chipcard Daemon

Der chipcard-daemon ist ein Programm, dass im Hintergrund für die richtige Ansprache des Kartenlesers sorgt. Der chipcard-daemon wird in der Regel als Benutzer der Gruppe chipcard gestartet. Alle Benutzer, die einen HBCI-Leser benutzen wollen, müssen also der Gruppe chipcard angehören. Normaler Weise ist die Gruppe bereits angelegt. Wenn nicht, muss man sie selbst hinzufügen. Dazu benutzt man entweder die grafischen Tools der jeweiligen Oberfläche [8] (Systemverwaltung) oder auf der Kommandozeile:

sudo addgroup chipcard 

Danach fügt man den BENUTZERNAME der Gruppe hinzu

sudo usermod -aG chipcard BENUTZERNAME 

Optionale Programme

Folgende Programme sind in den Ubuntu-Quellen vorhanden und arbeiten mit libchipcard2 zusammen. Je nachdem, welches Programm man bevorzugt einsetzen möchte, sollte dieses installiert werden:

  • GnuCash - Finanzverwaltung für GNOME

  • KMyMoney - Finanzverwaltung für KDE

Installation Towitoko micro seriell

Die Treiber-Version 2.0.7 befindet sich in den Ubuntu Quellen und arbeitet einwandfrei mit libchipcard2/3/4 zusammen, folgendes Paket muss installiert [1] werden:

  • libtowitoko2 (universe )

Befehl zum Installieren der Pakete:

sudo apt-get install libtowitoko2 

Oder mit apturl installieren, Link: apt://libtowitoko2

Jetzt muss noch der Libchipcard-Server/-Client eingerichtet werden, damit der Leser erkannt wird. Dazu öffnet man mit einem Editor mit Root-Rechten [4] eine leere Datei und fügt folgende Zeilen ein:

enabled="1"

server {
        typ="local"
# Hardy, falls Hardy eingesetzt wird die nächste Zeile auskommentieren, das heißt # entfernen 
#       addr="/var/run/chipcardd.sock"
 }

#
# Settings used for the PC/SC ressource manager
#


  driver {
    char driverType="ctapi"
    char driverName="tow_ctapi"
    char driverDataDir="/usr/lib/chipcard/server/drivers/ctapi"
    char libraryFile="/usr/lib/libtowitoko.so.2.0.0"
  
    vars {
     char WriteBoundary="32" # for Towitoko 2.0.7
     # char WriteBoundary="249" # for Towitoko 2.0.8 (not yet released)
    }
    
    reader {
      char readerType="tow_cdm"
      char readerName="tow1"
      int slots="1"
      char busType="serial"
      int port="0" # 0=COM1, 1=COM2 etc
    }
  } # driver

Folgende Argumente überprüfen auf Richtigkeit und gegebenfalls korrigieren:

  • addr=, je nach Ubuntu-Version die entsprechende Zeile mit # aus/-kommentieren

  • char libraryFile auf den korrekten Pfad zur Treiber-DLL überprüfen

  • int port, COM Port des angeschlossenen Kartenlesers angeben, 0=COM1, 1=COM2 usw.

Die restlichen Argumente können ohne Änderungen übernommen werden. Die Angaben für Server und Client sind identisch.

USB HBCI-Kartenleser

HBCI-Kartenleser mit USB-Anschluss sind wesentlich einfacher zu installieren, da sie automatisch erkannt werden. Daher dürfte die folgenden Installationsanleitung für den ReinerSCT Cyberjack Pinpad auf andere Kartenleser übertragbar sein.

ReinerSCT Cyberjack Pinpad Sicherheitsklasse 2 (USB)

Experten-Info:

Dieser Kartenleser wird vom Hersteller nicht mehr unterstützt. Für neuere Modelle eignet sich das Paket libifd-cyberjack6, das in den offiziellen Paketquellen enthalten ist. Zusätzlich existiert mit dem Paket fxcyberjack eine grafische Oberfläche zur Konfiguration des Lesers.

Der Hersteller ReinerSCT bietet fertige Treiberpakete für die verschiedenen Distributionen an, unter anderem auch für die verschiedenen Ubuntu-Versionen. Von der Herstellerseite das passende, neueste DEB-Paket zur eingesetzten Ubuntu-Version herunterladen 🇩🇪 und installieren [6].

Hinweis!

Fremdpakete können das System gefährden.

Bei älteren Kartenlesern mit der ID-Nummer 100 (alte Ecom/Pinpad, herauszufinden mit dem Befehl lsusb), kann evtl. die automatische Erkennung nicht funktionieren. Hier einmalig den Befehl

sudo cyberjack addflags 0x100000 

eingeben. Dadurch schickt der Treiber bei jedem Initialisieren des Lesers ein Reset-Kommando.

Bei manchen gehen die Leser nur mit folgendem (kleineren) Flag (den anderen zurücksetzten):

sudo cyberjack addflags 0x10000 

Evtl. muss noch der Libchipcard-Server/-Client eingerichtet werden, damit der Leser erkannt wird, dazu einen Editor [4] mit Root-Rechten öffnen und folgende Zeilen kopieren und in eine leere Datei einfügen:

enabled="1"

server {
        typ="local"
        addr="/var/run/chipcard.sock"
 }

Die Angaben für Server und Client sind identisch. Als /etc/chipcard/client/chipcardc.conf und /etc/chipcard/server/chipcardd.conf speichern und wie folgt die entsprechenden Rechte setzen:

sudo chmod 644 /etc/chipcard/client/chipcardc.conf
sudo chmod 644 /etc/chipcard/server/chipcardd.conf 

Der Cyberjack Pinpad hat einen USB-Anschluss und benötigt daher keine Treiberangaben, er wird automatisch von libchipcard2 gefunden und erkannt.

Zu beachten gilt noch beim Cyberjack Pinpad, dass beim Kontoabgleich das abgefragte Passwort blind am Pinpad eingetippt und mit OK bestätigt werden muss, am Bildschirm erscheint nur die Aufforderung, das Passwort am Pinpad einzutippen. Es erscheint kein visuelle Rückmeldung wie sonst üblich mit Sternchen (*****) in einem Eingabefeld.

Optional gibt es ein Diagnosewerkzeug (cyberjack-diag) 🇬🇧 für den Cyberjack Pinpad. Dieses Paket liegt nur im Quellcode vor und muss kompiliert [5] werden, es steht aber im Konflikt mit dem Cyberjack-Treiber, weil in beiden die Datei cyberjack enthalten ist. Es kann nur mit dpkg --force-all -i cyberjack-diag_*_i386.deb installiert werden, dies ist aber nicht zu empfehlen. Alternativ kann man das DEB-Paket entpacken [7] und die ausführbare Datei fxcyberjack starten. Diese bietet eine GUI zur Analyse und Überprüfung für die Einrichtung des Kartenlesers mit Lösungsvorschlägen bei Problemen.

Es kann Probleme im Zusammenspiel vom Cyberjack Pinpad-Treiber (libifd-cyberjack6) mit AqBanking geben, weil eine benötigte Treiber-Bibliothek umbenannt worden ist. Abhilfe schafft ein symbolische Verknüpfung auf den neuen Dateinamen Quelle 🇩🇪:

# Verzeichnis wechseln
cd /usr/lib/pcsc/drivers
# Symbolische Verknüpfung anlegen
sudo ln -s /usr/lib/readers/libifd-cyberjack.bundle ifd-cyberjack.bundle
# pcscd-Dienst neu starten
sudo /etc/init.d/pcscd restart  

Hinweis:

Das Auslesen einer HBCI-Karte für das Anlegen eines neuen Kontos scheint mit den aktuellen Versionen von GnuCash (1:2.6.6-2ubuntu2, wily), AqBanking (5.6.1beta-1build1, wily) und libifd-cyberjack6 (3.99.5final.sp08) nicht mehr zu funktionieren. Alternativ ist die Verwendung von Hibiscus (2.6.12-0ubuntu1~trusty~ppa1) möglich.

Möchte man mit anderen Programmen als den obengenannten Homebanking-Anwendungen auf den Cyberjack-Kartenleser zugreifen, z.B. mit Kommandozeilenwerkzeugen, dann muss man den eigenen Benutzernamen und den Benutzer chipcard zur Gruppe cyberjack hinzufügen [8]. Ein Terminal [3] öffnen und folgenden Befehl ausführen:

sudo adduser $USER cyberjack
# user durch den eigenen Usernamen ersetzen
sudo adduser chipcard cyberjack 

Chipcardserver

Um zu überprüfen, ob die Einrichtung korrekt war, ein Terminal [3] öffnen und den Chipcard-Server mit folgendem Befehl temporär starten:

sudo chipcardd4 --pidfile /var/run/chipcard.pid 

Die gewählte Homebanking Anwendung starten und den Aqbanking-Einrichtungsassistent starten, siehe dazu in den Wikis zu den einzelnen Anwendungen.

libchipcard2 richtet automatisch einen Dienst ein, dieser Dienst erkennt aber den Kartenleser alleine nicht, daher muss noch ein Befehlszeile in die /etc/rc.local eingefügt werden, dieser Dienst ermöglicht dann den korrekten Zugriff auf den Leser. Dazu einen Editor [4] mit Root-Rechten starten, die Datei /etc/rc.local öffnen und den oben genannten Befehl zum Starten des Chipcards Server kopieren und einfügen vor dem Befehl exit 0 und abspeichern:

/etc/rc.local

#!/bin/sh -e
sudo chipcardd4 --pidfile /var/run/chipcard.pid
exit 0

Nach dem nächsten Neustart steht der Chipcard-Server zur Verfügung.

libchipcard 3/4

Diese Pakete sind voneinander abhängig, z.B. Qbankmanager 0.9.41 arbeitet nicht mit libchipcard2 zusammen. Für KMyMoney reicht die Version aus den Quellen, aber es muss diese (KMyMoney Banking Plugin) Erweiterung 🇬🇧 zusätzlich kompiliert [5] und installiert [6] werden. Gnucash wurde noch nicht zusammen mit libchipcard/3/4 getestet. Diese Versionen liegen nur im Quellcode vor und müssen selber kompiliert [5] werden, worauf hier nicht näher eingegangen wird. Der sichtliche Vorteil dieser Versionen ist der optisch verbesserte Dialog beim Konto-Abgleich, welcher nicht, wie bei libchipcard2, in Fortschrittsbalken-Anzeige und Dialogfenster zweigeteilt ist.

Der Towitoko-Treiber arbeitet auch sehr gut mit libchipcard3/4 zusammen, der Cyberjack Treiber arbeitet zur Zeit nur mit libchipcard2 zusammen.

Es gilt gegenüber libchipcard2 Folgendes zu beachten :

libchipcard3

  • Der Server-/Clientpfad liegt nicht in /etc/chipcard-* sondern in /usr/etc/chipcard3/client und /usr/etc/chipcard3/server

  • Die Einrichtungsdatei heißen dementsprechend chipcardd3.conf / chipcardc3.conf

  • Der Aufruf zum Starten des Servers lautet:

sudo chipcardd3 --pidfile /var/run/chipcardd3.pid 

libchicard4

  • Server-/Clientpfad in /usr/etc/chipcard/client und /usr/etc/chipcard/server

  • Die Einrichtungsdatei heißen dementsprechend chipcardd.conf / chipcardc.conf

  • Der Aufruf zum Starten des Servers lautet:

sudo chipcardd --pidfile /var/run/chipcardd.pid 

PC/SC-Treiber

Für viele USB-Kartenleser (Übersicht 🇬🇧) lassen sich aus den Quellen Treiber nachinstallieren, um den Kartenleser über die PC/SC-Schnittstelle anzusprechen.

Folgende Pakete werden benötigt [1]:

  • pcscd (universe)

  • pcsc-tools (universe)

  • libpcsclite1 (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install pcscd pcsc-tools libpcsclite1 

Oder mit apturl installieren, Link: apt://pcscd,pcsc-tools,libpcsclite1

Im Paket pcsc-tools ist das Programm Gscriptor enthalten. Nach der Installation PC neu starten.

Ein Test offenbart, ob der Kartenleser erkannt wurde:

pcsc_scan 

KOBIL EMV CAP - SecOVID Reader III

Zusätzlich zum PCSC-Treiber wird nur das Paket libccid (bei 14.04 zur Zeit libccid_1.4.15-1) benötigt. In der Regel ist das Paket schon installiert. Wenn nicht, gibt es das Paket auf der Herstellerseite (die dort angebotene Version 1.4.5-1 sollte nur eingesetzt werden, wenn die Version aus den offiziellen Paketquellen noch älter ist).

Der Hersteller Kobil bietet fertige Treiberpakete für die verschiedenen Distributionen an, unter anderem auch für die verschiedenen Ubuntu-Versionen. Von der Herstellerseite das passende, neueste Deb-Paket zur eingesetzten Ubuntu-Version herunterladen 🇩🇪 und installieren [6].

Hinweis!

Fremdpakete können das System gefährden.

Installation des Wrappers

Homebanking-Clients wie z. B. Hibiscus sprechen den Kartenleser allerdings über die CT-API-Schnittstelle an. Um den Kartenleser für diese Programme verfügbar zu machen, ist ein sogenannter "Wrapper" (engl. Hülle) nötig, der die Befehle übersetzt.

Installation eines Pakets für pcsc-ctapi-wrapper

Hinweis!

Fremdpakete können das System gefährden.

Auf der Projektseite gibt es die Version 0.2 als Paket für pcsc-ctapi-wrapper. Da das Paket keine Abhängigkeiten hat, funktioniert es auch mit neueren Ubuntu Versionen. Die für die Einrichtung benötigte Datei findet sich dann unter /usr/lib/libpcsc-ctapi-wrapper.so.0.2. Dieses Paket eignet sich nicht für ein 64bit-System!

Selber kompilieren

Die neueste Version pcsc-ctapi-wrapper-0.3.tar.gz ⮷ des Wrappers liegt nicht als fertiges Paket vor und muss daher selber kompiliert werden [5]. Die für die Einrichtung benötigte Datei findet sich dann unter /usr/local/lib/libpcsc-ctapi-wrapper.so.0.3. Eine Anleitung zum korrekten Kompilieren gibt es hier.

Diese Revision wurde am 7. Mai 2017 14:06 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Büro, Hardware, Chipkarte