Hibiscus: Experimenteller PC/SC-Support!

Vor fast zwei Jahren hatte ich mich schonmal daran versucht, neben dem existierenden Support für Kartenleser mit CTAPI-Treiber auch solche mit PC/SC-Treiber zu unterstützen (siehe auch mein Mailinglisten-Posting). Leider war ich damals an der PIN-Abfrage gescheitert. Volker - ein Hibiscus-User - hatte sich die Sache jetzt mal angeschaut und mit Protokoll-Traces des pcsc-ctapi-wrappers verglichen. Dabei haben wir festgestellt, dass nur ein paar einzelne Bytes falsch waren. Der größte Teil war schon korrekt. Nach etwas Nacharbeit und Bugfixing hat er mir vorhin Erfolg gemeldet. Er konnte die Umsätze seines Kontos via PC/SC in Hibiscus abrufen! Da ich noch nicht weiss, ob das jetzt bei allen Kartenlesern mit PC/SC und auf allen Betriebssystemen funktioniert, sind mutige Tester gefragt. Falls ihr also bisher euren Kartenleser nicht nutzen konntet, weil es keine CTAPI-Treiber gibt oder weil der pcsc-ctapi-wrapper bei euch nicht funktioniert habt, dann könnt ihr mit dem aktuellen Nightly-Build (Windows und Linux ab sofort, für OS X ist der Support erst ab morgen im Nightly-Build) mal testen. Legt hierzu in der Kartenleser-Konfiguration einen neuen Bank-Zugang an und wählt als Kartenleser "PC/SC-Kartenleser". Das Feld "Name des PC/SC-Kartenlesers" muss nur ausgefüllt werden, falls ihr mehrere Kartenleser parallel angeschlossen habt. Die PC/SC-Konfiguration kann parallel zu einer existierenden CTAPI-Konfiguration verwendet werden.

Ich bin auf eure Rückmeldungen gespannt.

PS: Der neue Support betrifft nur den Kartenleser bzw. dessen Treiber. Es werden jedoch nach wie vor nur DDV-Chipkarten unterstützt, wie sie beispielsweise von den Sparkassen verwendet werden. Keine RDH-Chipkarten.

Danke an der Stelle nochmal an Volker fürs Testen!

Trackbacks

Trackback-URL für diesen Eintrag

Dieser Link ist nicht aktiv. Er enthält die Trackback-URI zu diesem Eintrag. Sie können diese URI benutzen, um Ping- und Trackbacks von Ihrem eigenen Blog zu diesem Eintrag zu schicken. Um den Link zu kopieren, klicken Sie ihn mit der rechten Maustaste an und wählen "Verknüpfung kopieren" im Internet Explorer oder "Linkadresse kopieren" in Mozilla/Firefox.

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Uwe am :

Ich benutze einen Kobil KAAN Trib@nk.

Nach der Erstinstallation und der Anlage eines neuen Bankzugangs wurde ich vom Chipkartenleser einmalig zur Eingabe einer PIN aufgefordert. Danach nimmermehr.

Bei "KonfigurationTesten" erscheint jetzt:
Teste Sicherheits-Medium...
Kein CTAPI-Treiber in der Kartenleser-Konfiguration angegeben

Kubuntu 12.04 64-bit
Der pcsc_scan liefert folgende Werte:
$ pcsc_scan
PC/SC device scanner
V 1.4.18 (c) 2001-2011, Ludovic Rousseau
Compiled with PC/SC lite version: 1.7.4
Using reader plug'n play mechanism
Scanning present readers...
0: KOBIL EMV CAP - SecOVID Reader III (SD101318933) 00 00

Sun Jun 23 08:05:29 2013
Reader 0: KOBIL EMV CAP - SecOVID Reader III (SD101318933) 00 00
Card state: Card inserted,
ATR: 3B FF 18 00 FF 81 31 FE 45 65 63 11 08 66 01 56 00 11 57 10 03 05 06 20 4B

Vielleicht hilft diese Rückmeldung weiter.

Olaf am :

Du musst als Kartenleser-Typ in Hibiscus "PC/SC-Kartenleser" auswaehlen.

Uwe am :

Das habe ich gemacht.

http://www.wlsoft.de/sites/default/files/bilder/hibiscus_250.png

Olaf am :

Das ist nicht das aktuelle Nightly-Build. Bitte lade nochmal ein aktuelles Nightly von Hibiscus runter.

Uwe am :

Auch wenn es im Bild anders aussieht Version 2.5.0

unter Hibiscus - Über steht:

Software-Version: 2.5.1-nightly
Datenbank-Version: 42
Build: 570 [Datum 20130623]

Olaf am :

Das KANN nicht die aktuelle Hibiscus-Version sein. Zum einen, weil dort noch das Eingabefeld fuer den PCSC-Namen fehlt. Zum anderen weil dort noch der CTAPI-Treiber als Pflichtfeld angezeigt wird. Beides sind Aenderungen, die jetzt erst gekommen sind. Eventuell hast du Hibiscus doppelt installiert, dass hier so eine Art Versionsmix entstanden ist. Schau mal in die Logdatei jameica.log - dort steht nach dem Start drin, von wo welche Version geladen wird und wann sie erzeugt wurde.

Uwe am :

Entschuldigung, Du hattest recht. Ich hatte noch von anno dunnemals ein Hibiscus unter /home/wnf/bin/

Wenn ich keinen PCSC-Namen eingebe kommt die Meldung:

Teste Sicherheits-Medium...
Kein CTAPI-Treiber in der Kartenleser-Konfiguration angegeben

Wenn ich als PCSC-Namen "Reader 0" eintrage

Teste Sicherheits-Medium...
Fehler beim Testen des Sicherheits-Mediums.
Aufgetretene Fehlermeldungen:
-----------------------------
error while opening chipcard; nested exception is:
Kartenleser "Reader 0" nicht gefunden
Kartenleser "Reader 0" nicht gefunden
-----------------------------

Olaf am :

Und du hattest auch Recht. Da war noch ein Fehler, der bewirkte, dass der Kartenleser nur dann als PCSC erkannt wurde, wenn man einen PCSC-Namen angegeben hat. Nun ist es aber so, dass - WENN man einen Namen angibt - dieser absolut exakt dem entsprechen muss, was von pcsc_scan zurueckgemeldet wurde. Ich hab den Bug gefixt. Ist verfuegbar im Nightly-Build ab morgen. Entferne dann einfach den Eintrag im Feld "Name des PC/SC-Kartenlesers" und versuche es dann nochmal. Hibiscus verwendet dann den ersten gefundenen Kartenleser.

Wie gesagt - Nightly-Build ab morgen frueh.

Uwe am :

Danke. jetzt läuft es. (Entschuldige noch einmal meinen Fehler mit der fehlerhaften Installation)

Kubuntu 12.04 LTS

KAAN TriBank V79.23

Olaf am :

Klasse! Hatte ja echt befuerchtet, dass es mit anderen Kartenlesern als dem ReinerSCT nicht auf Anhieb klappt und da am Code nochwas gemacht werden muss. Aber bisher scheint das ja mit jedem Kartenleser zu funktionieren.

Kasper am :

Windows 7 64-Bit
Oracle Java 7 64-Bit

Cherry GmbH SmartTerminal ST-2xxx 0
Cherry SmartCard Package V3.2 Build 2

läuft :)

Olaf am :

Klasse! Danke fuer die Rueckmeldung.

jürgen am :

hallo olaf, vielen dank für hibiscus!
ich teste gerade mit reiner sct komfort auf debian wheezy 64 und bekomme die fehlermeldung:

[27.06.2013 17:12:04] Teste Sicherheits-Medium...
[27.06.2013 17:12:04] open ddv passport
[27.06.2013 17:12:04] pcsc name: REINER SCT cyberJack RFID komfort (1079944751) 00 00
[27.06.2013 17:12:04] soft pin: false
[27.06.2013 17:12:04] entry index: 1
[27.06.2013 17:12:04] passport type: DDVPCSC
[27.06.2013 17:12:04] Bitte legen Sie die Chipkarte in das Lesegerät
[27.06.2013 17:12:04] found card terminals:
[27.06.2013 17:12:04] REINER SCT cyberJack RFID komfort (1079944751) 00 00
[27.06.2013 17:12:14] card type: T=1
[27.06.2013 17:12:14] using: org.kapott.hbci.smartcardio.DDVCardService1
[27.06.2013 17:12:14] querying features
[27.06.2013 17:12:14] FEATURE_VERIFY_PIN_DIRECT: 42000db2
[27.06.2013 17:12:14] FEATURE_MODIFY_PIN_DIRECT: 42000db3
[27.06.2013 17:12:14] FEATURE_MCT_READER_DIRECT: 42000db4
[27.06.2013 17:12:14] FEATURE_MCT_UNIVERSAL: 42000db5
[27.06.2013 17:12:14] Fehler beim Testen des Sicherheits-Mediums.
[27.06.2013 17:12:14] Aufgetretene Fehlermeldungen:
[27.06.2013 17:12:14] -----------------------------
[27.06.2013 17:12:14] error while opening chipcard; nested exception is:
[27.06.2013 17:12:14] org.kapott.hbci.exceptions.HBCI_Exception
[27.06.2013 17:12:14] 32
[27.06.2013 17:12:14] -----------------------------

hbci version ist 2.2
kannst du damit was anfangen?

Olaf am :

Schau mal in die Log-Datei "~/.jameica/jameica.log" - dort sollten sich noch mehr Meldungen sowie der komplette Stacktrace finden. Wenn dir das noch nicht weiterhilft, dann schick mir die Log-Datei mal an "hibiscus[at]willuhn.de".

Uwe am :

Hier läuft es ebenfalls:

openSUSE 12.3 (Dartmouth) (x86_64)

KAAN TriBank V79.23

Clio am :

Hallo Olaf,

auch hier verlief der Test erfolgreich.
Debian Sid, Kernel 3.10.0 mit ReinerSCT e-com plus.

Mal wieder ganz hervorragende Arbeit, vielen Dank dafür.

Gruß
Clio

David am :

Debian Jessie, ARMv7
pcscd und libifd-cyberjack6 mit allen Abhaengigkeiten installiert
Jameica & Hibiscus nightly vom 24.7.2013
ReinerSCT cyberJack RFID comfort (dual interface smartcard reader)
* Sparkassen DDV-Karte

Resultat: Klappt einwandfrei. Leser wird bei automatischer Suche (nach PIN-Eingabe) erkannt und kann danach wie ueblich genutzt werden.

Olaf am :

Cool! Haette nicht gedacht, dass das auch auf ARM funktioniert.

MAK am :

Hallo Olaf,
unter FreeBSD 8.3 wird der Kartenleser von Hibiscus nicht gefunden. Unter pcsc_scan taucht der Leser auf:

PC/SC device scanner
V 1.4.21 (c) 2001-2011, Ludovic Rousseau
Compiled with PC/SC lite version: 1.8.8
Using reader plug'n play mechanism
Scanning present readers...
0: KOBIL KAAN Advanced (E_071102426) 00 00

Gruss,
Martin

Olaf am :

Unter Umstaenden hat die Java-Version von FreeBSD keinen PCSC-Support. Da ich dieses Betriebssystem nicht verwende, kann ich da leider auch nicht weiter helfen. Du koenntest mal schauen, ob es fuer dein OS vielleicht noch andere Java-Implementierungen gibt.

Weiterhin: Hibiscus kann nur mit DDV-Karten umgehen, wie sie etwa von den Sparkassen verwendet werden. Falls du eine RDH-Karte hast (wie sie z.Bsp. von den Volksbanken genutzt werden), kann die auch mit PCSC nicht in Hibiscus genutzt werden.

MAK am :

Danke für den Hinweis. Irgendwie muss unter FreeBSD noch sun.security.smartcardio.library (-Dsun.security.smartcardio.library=/usr/local/lib/libpcsclite.so) gesetzt werden. Dann gehts...

Aber kann es sein, dass bei der Einstellung "PC/SC-Kartenleser" immer "Index des HBCI-Zugangs" = 1 verwendet wird, egal was im zugehörigen Eingabefeld steht?

Olaf am :

Danke fuer den Hinweis. Hab im Wiki eine Seite mit FreeBSD-Hinweisen unter http://www.willuhn.de/wiki/doku.php?id=support:list:kartenleser:pcsc:freebsd angelegt und unter http://www.willuhn.de/wiki/doku.php?id=support:list:kartenleser verlinkt.

Norbert am :

Hallo,
nun erkennt hibiscus meinen Kartenleser ReinerSCT. Leider bin ich Künder einer Volksbank und die benutzen wohl RDH-Karten. Fehlermeldung:
[02.09.2013 18:07:05] Fehler beim Testen des Sicherheits-Mediums: SCARD_E_INVALID_PARAMETER
[02.09.2013 18:07:05] Aufgetretene Fehlermeldungen:
[02.09.2013 18:07:05] card type: T=1
[02.09.2013 18:07:05] -----------------------------
[02.09.2013 18:07:05] error while opening chipcard; nested exception is:
[02.09.2013 18:07:06] org.kapott.hbci.exceptions.HBCI_Exception
[02.09.2013 18:07:06] transmitControlCommand() failed
[02.09.2013 18:07:06] SCARD_E_INVALID_PARAMETER
[02.09.2013 18:07:06] -----------------------------

Dann muss ich mir wohl ein anderes Banking-Programm und eine andere Vereinsverwaltung (Verein) zulegen.

Schade.

Viele Grüße,

N.D.

Olaf am :

Ja, diese Karten werden von Hibiscus in der Tat nicht unterstuetzt. In naechster Zeit wird sich daran leider auch nichts aendern.

Allerdings bieten die Volksbanken inzwischen auch alle die neuen TAN-Verfahren smsTAN und chipTAN an, wobei letzteres als mindestens genau so sicher gilt, wie Chipkarte. Die Sicherheit ist eher noch hoeher, weil auf dem Display des TAN-Generator der abzusendende Auftrag nochmal zur Bestaetigung angezeigt wird. Diese Verfahren unterstuetzt auch Hibiscus.

Gerald am :

Unterstützung RDH/Seccos6-Chipkarten
Hallo, ich würde gern Hibiscus nutzen, habe allerdings obige HBCI-Chipkarten. Worin liegt die Schwierigkeit auch diesen Kartentyp zu unterstützen?
Gruß Gerald

Olaf am :

> Worin liegt die Schwierigkeit auch diesen Kartentyp
> zu unterstützen?

Es ist halt komplex und umfangreich.Und es gibt derzeit erheblich dringendere Themen - wie etwa SEPA.

lateiner am :

Mit den aktuellen nightly Builds gibt es wieder Probleme mit dem PCSC Support.
Bei mir wird der Kartenleser (REINER SCT cyberJack RFID standard) nicht gefunden. Mit
Build: 598 [Datum 20130718] funktioniert es einwandfrei.

Olaf Willuhn am :

Das einzige, was ich da geaendert hab, ist die Default-HBCI-Version. Geaendert von HBCI 2.1 auf FinTS3. Derzeit stellen immer mehr Banken auf SEPA und FinTS3 um. Koennte sein, dass die HBCI-Version das Problem ist.

Oeffne mal die Kartenleser-Config und stelle die explizit auf "HBCI 2.1" und speichere.

Wenn es danach wieder geht, gib Bescheid. Dann aendere ich den Default-Wert wieder.

Doc am :

Hallo,
das Testen eines REINER SCT cyberJack RFID standard unter Linux Mint Maya (13) 64-bit (entspricht Ubuntu Precise) mit Nightly-builds vom 23.11.13 (Jameica und Hibiscus) ergibt nur "Kein Kartenleser gefunden". pcsc_scan, cyberjack und fxcyberjack in der Konsole ergibt erkannten Leser und keine Fehler. Liegt es evtl. am 64-bit System?

Olaf Willuhn am :

Schau mal in den Kommentar direkt oben drueber von mit mit der HBCI-Version.

Doc am :

Danke für die schnelle Antwort. Es funktioniert mit keiner HCBI-Version, auch nicht mit 2.1. Habe es auch schon früher ausprobiert, es hatte noch nie den Leser erkannt.

Sebastian am :

Hier dasselbe. Leser ist ein cyberJack Wave mit neuestem Treiber von der Reiner-Seite. pcsc_scan findet den Leser ohne Probleme. Hibiscus meldet "keinen Leser gefunden".

Kann man auf die ältere Version zurückgreifen? Im Sommer scheint es ja mal funktioniert zu haben?!

lateiner am :

Ich habe den Fehler gerade gefunden: In der aktuellen Version wird der Pfad für die libpcsclite shared library beim Start an Java übergeben. Das ist natürlich Supper, wenn der übergebene Pfad überhaupt nicht vorhanden ist. Debian und seine Derivaten legen auch 64 Bit Libs unter /usr/lib/ und nicht unter /usr/lib64/ ab.
Wenn man die Zeilen 12 und 13 in der jameica.sh auskommentiert, funktioniert es einwandfrei. Das sind die beiden Zeilen nach "# Ergänzung für PCSC"

@Olaf vielleicht wäre es ganz klug vorher zu prüfen, ob es die libpcsclite überhaupt unter diesem Pfad gibt, bevor man das setzt. Besser noch man vertraut darauf, dass der Pfad für die shared library für Java richtig eingestellt ist.

Olaf Willuhn am :

> Ich habe den Fehler gerade gefunden: In der
> aktuellen Version wird der Pfad für die libpcsclite
> shared library beim Start an Java übergeben.

Oha! Prima. Dann kriegen wir damit wohl auch http://www.onlinebanking-forum.de/forum/topic.php?t=16599 geloest.

> Das ist natürlich Supper, wenn der übergebene Pfad
> überhaupt nicht vorhanden ist. Debian und seine
> Derivaten legen auch 64 Bit Libs unter /usr/lib/ und
> nicht unter /usr/lib64/ ab.

Das ist dann aber von Distribution zu Distribution unterschiedlich. Bei OpenSuSE z.Bsp. wird /usr/lib64 verwendet.

> Wenn man die Zeilen 12 und 13 in der jameica.sh
> auskommentiert, funktioniert es einwandfrei. Das sind
> die beiden Zeilen nach "# Ergänzung für PCSC"

Ich werde das aus dem Shell-Script wieder entfernen. Allerdings wird es dann wieder bei den anderen Usern nicht mehr funktionieren, bei denen genau dieser Parameter noetig war.

> @Olaf vielleicht wäre es ganz klug vorher zu prüfen,
> ob es die libpcsclite überhaupt unter diesem Pfad gibt,
> bevor man das setzt.

So einfach ist das leider nicht. Insbesondere dann, wenn man ein gemischtes System hat, auf dem 32- und 64Bit installiert sind und unter Umstaenden beide Versionen der Lib installiert sind. Und selbst dann weiss ich z.Bsp. in /usr/lib nicht, ob das die 32- oder 64-Bit-Version ist. Ich werde es daher besser komplett aus dem Shell-Script entfernen.

> Besser noch man vertraut darauf, dass der Pfad für
> die shared library für Java richtig eingestellt ist.

Leider kann man aber nicht immer darauf vertrauen, dass das ueberall funktioniert. Daher hab ich das ja erst hinzugefuegt. Siehe die Kommentare weitere oben in diesem Blog-Beitrag. Z.Bsp. Kommentar 7.1.1. Mir schrieb auch noch ein User mit Mageia-Linux, bei dem dieser Parameter ebenfalls noetig war.

Olaf am :

Hab das Setting aus dem Shell-Script entfernt und es fuer User, bei denen es dennoch noetig ist im Wiki unter http://www.willuhn.de/wiki/doku.php?id=support:list:kartenleser beschrieben.

lateiner am :

Hi Olaf,

die Diskussion habe ich in der Tat überlesen gehabt und war deshalb etwas genervt "Warum patch er was kaputt das doch schon ging" ;)

Mit diesen Bashzeilen sollte es für alle zufriedenstellend Funktionieren. Wenn die Lib unter /usr/lib* liegt wird der Pfad gesetzt sonst bleibt er einfach leer und wir hoffen mal das die Lib dann im java lib pfad liegt:
# Ergänzung für PCSC
_PCSCparam="-Dsun.security.smartcardio.library="
_PCSClib64="/usr/lib64/libpcsclite.so.1"
_PCSClib32="/usr/lib/libpcsclite.so.1"
if [ -f $_PCSClib64 ]; then
_PCSC64=$_PCSCparam$_PCSClib64
fi
if [ -f $_PCSClib32 ]; then
_PCSC32=$_PCSCparam$_PCSClib32
fi

Ich sollte mir wohl doch mal einen github Account anlegen :/

Olaf am :

Ich lasse den Parameter jetzt erstmal aus der jameica.sh raus. Zum einen hat er dort eigentlich nichts zu suchen (weil es Hibiscus-spezifisch ist). Zum anderen sollte es ja bei den meisten Usern auch ohne diesen Parameter gehen. Und zum nochmal anderen waere der Shellscript-Code ohnehin nicht eindeutig. Denn die Tatsache, dass eine "libpcsclite.so.1" in "/usr/lib" existiert, heisst nicht, dass das die 32Bit-Variante ist. Es gibt naemlich auch Linux-Distributionen, die die 64Bit-Libs dort ablegen. Und selbst wenn man es wuesste, weiss man noch nicht, ob die dann ueberhaupt zur JavaVM passen. Denn auf einem 64Bit-OS kann man problemlos eine 32Bit-JVM installieren. Und die braucht dann auch eine 32Bit .so Lib. Obwohl es sich um ein 64Bit OS handelt. Heisst: Beim Setzen des Parameters im Shellscript kann man einfach zu viel falsch machen. Daher lasse ich den lieber komplett weg und habe die ganze Sache stattdessen nur im Wiki dokumentiert: http://www.willuhn.de/wiki/doku.php?id=support:list:kartenleser

Wenn bei jemandem der Parameter noetig ist, kann er ihn auch selbst gemaess Doku setzen.

Kilian am :

Hallo

Ich habe versucht meinen im Laptop eingebauten Kartenleser zu verwenden. Leider Schlägt der Konfig test mit „Unknown error 0x1“ Fehl. Mit Starmony funktioniert dieser Kartenleser als PC/SC.
Hat jemand ne idee? Würde gerne auf Jameica/Hibiscus umstellen.

Schon mal Vielen Dank

Jameica:
Version: 2.7.0-nightly
SWT-Version: 4332 / win32
Java-Version: 1.7.0_09 / Windows 7 amd64
Build: 540 [Datum 20140106]

Hibiscus:
2.7.0-nightly
Datenbank-Version: 49
Build: 364

Kartenleser: Broadcom Corp Contacted SmartCard

Bank: Frankfurter Sparkasse (1822direkt)

OS: Win 7 64Bit

[06.01.2014 09:53:46] Teste Sicherheits-Medium...
[06.01.2014 09:53:46] creating progress monitor for GUI
[06.01.2014 09:53:46] activating progress monitor
[06.01.2014 09:53:46] open ddv passport
[06.01.2014 09:53:46] pcsc name:
[06.01.2014 09:53:46] soft pin: false
[06.01.2014 09:53:46] entry index: 1
[06.01.2014 09:53:46] passport type: DDVPCSC
[06.01.2014 09:53:46] found card terminals:
[06.01.2014 09:53:46] Broadcom Corp Contacted SmartCard 0
[06.01.2014 09:53:46] Mobile Broadband SIM Card Reader 0
[06.01.2014 09:53:46] card type: T=1
[06.01.2014 09:53:46] using: org.kapott.hbci.smartcardio.DDVCardService1
[06.01.2014 09:53:46] querying features
[06.01.2014 09:53:46] Fehler beim Testen des Sicherheits-Mediums: Unknown error 0x1
[06.01.2014 09:53:46] Aufgetretene Fehlermeldungen:
[06.01.2014 09:53:46] -----------------------------
[06.01.2014 09:53:46] error while opening chipcard; nested exception is:
org.kapott.hbci.exceptions.HBCI_Exception
[06.01.2014 09:53:46] transmitControlCommand() failed
[06.01.2014 09:53:46] Unknown error 0x1
[06.01.2014 09:53:46] -----------------------------

Olaf am :

Bitte wende dich hierzu doch bitte ans Forum unter http://www.onlinebanking-forum.de/forum/index.php?f=33

Die Blog-Kommentare sind eigentlich nicht als Support-Plattform gedacht.

Die Kommentarfunktion wurde vom Besitzer dieses Blogs in diesem Eintrag deaktiviert.