CryptoStick V1.2 Setup (unter Gentoo)

Moin zusammen,
seit wenigen Tagen bin ich nun auch Besitzer des CryptoSticks in der Version 1.2

Allerdings komm ich irgendwie mit dem Setup nicht so richtig voran. Der Ist-Zustand lautet wie folgt:

System:
gentoo Linux (~x86 <= aktuelle Pakete)
pcsc-lite-1.6.6
ccid-1.4.1-r1
gnupg-2.0.16-r2

Ausgabe von dmesg nach Einstecken des Sticks:
usb 3-1: new full speed USB device using uhci_hcd and address 16

Ausgabe von gpg --card-status:
gpg: selecting openpgp failed: Unsupported certificate
gpg: OpenPGP card not available: Unsupported certificate

Nach dem Einstoepseln am USB-Port leutet der Stick fuer 1-2 Sekunden auf.
Fuer mich bedeutet das soviel wie, dass er den Cryptostick bzw. die Smartcard darin nicht (richtig) erkennt. Hier im Forum hab ich die Meldung nur einem im Thread “Installation / Verwendung CryptoStick V1.0” gefunden, die wie folgt kommentiert wurde:

[quote]So eine Fehlermeldung kommt wenn der Kartenleser angeschlossen ist, aber keine Karte eingelegt ist.
Beim CryptoStick sollte das nicht vorkommen.
Ist vielleicht neben dem CryptoStick ein Kartenleser angeschlossen?[/quote]

Also bei mir ist ebenfalls kein weiterer Kartenleser angeschlossen.

Ich habe die den udev-rules-File von privacyfoundation.de/wiki/C … ersion_1.2 getestet, leider ohne Erfolg.
Laut einem grep in den Sourcen meines ccid-Paketes sieht es so aus, als wenn der Patch fuer den pcsc-Treiber schon enthalten ist. Die Vendor- und Product-ID tauchen zumindest auf.

Mittleriweile hab ich mir auch mal den debug-Output von pcscd angesehen, der erscheint, wenn man den Stick einstoepselt (siehe Ende der Nachricht). Wenn ich den richtig verstehe wird der Reader gefunden jedoch wird ihm die Stromzufuhr abgeschaltet. Ist das so gewollt oder ist das evtl. der Fehler?

Ich hoffe, dass es eine recht einfache Loesung fuer das Problem gibt. Falls noch weitere Infos benoetigt werden liefere ich diese gerne nach.

[UPDATE]
Habe gerade noch festgestellt, dass ich einen Betrag im Forum uebersehen haben der “meine” gpg-Fehlermeldung behandelt: viewtopic.php?f=13&t=920&start=0
Leider gibts dort auch keine Loesung aber ich habe mal einen Neustart gemacht und bekomme nun eine weitere Meldung die evtl. weiter helfen kann:
wenn ich jetzt gpg --card-status aufrufe kommt in der /var/log/messages folgende Ausgabe:
Dec 30 00:21:08 laptop gnome-keyring-daemon[5525]: unrecognized command: SCD

Bei dieser Meldung dachte ich gleich an einen Foreneintrag betreffend scdaemon (viewtopic.php?f=13&t=921&start=0) der aber leider auch zu keiner Loesung fuehrt :frowning:
[UPDATE ENDE]
Gruss

g.laber

Debug-Output von pcscd:
00000000 debuglog.c:277:DebugLogSetLevel() debug level=debug
00000076 debuglog.c:306:DebugLogSetCategory() Debug options: APDU
00000481 configfile.l:245:DBGetReaderListDir() Parsing conf directory: /etc/reader.conf.d
00000070 pcscdaemon.c:553:main() pcsc-lite 1.6.6 daemon ready.
00004795 hotplug_libusb.c:386:HPEstablishUSBNotifications() Driver ifd-ccid.bundle does not support IFD_GENERATE_HOTPLUG. Using active polling instead.
00000037 hotplug_libusb.c:395:HPEstablishUSBNotifications() Polling forced every 1 second(s)
13028355 hotplug_libusb.c:478:HPAddHotPluggable() Adding USB device: 3:17
00000069 readerfactory.c:931:RFInitializeReader() Attempting startup of German Privacy Foundation Crypto Stick v1.2 00 00 using /usr/lib/readers/usb/ifd-ccid.bundle/Contents/Linux/libccid.so
00000272 readerfactory.c:821:RFBindFunctions() Loading IFD Handler 3.0
00000108 ifdhandler.c:1727:init_driver() Driver version: 1.4.1
00001428 ifdhandler.c:1745:init_driver() LogLevel: 0x0003
00000031 ifdhandler.c:1755:init_driver() LogLevel from LIBCCID_ifdLogLevel: 0x0007
00000024 ifdhandler.c:1766:init_driver() DriverOptions: 0x0000
00027784 ifdhandler.c:79:IFDHCreateChannelByName() lun: 0, device: usb:20a0/4107:libusb-1.0:3:17
00000072 ccid_usb.c:178:OpenUSBByName() Reader index: 0, Device: usb:20a0/4107:libusb-1.0:3:17
00001296 ccid_usb.c:266:OpenUSBByName() ifdManufacturerString: Ludovic Rousseau (ludovic.rousseau@free.fr)
00000030 ccid_usb.c:267:OpenUSBByName() ifdProductString: Generic CCID driver
00000025 ccid_usb.c:268:OpenUSBByName() Copyright: This driver is protected by terms of the GNU Lesser General Public License version 2.1, or (at your option) any later version.
00023532 ccid_usb.c:378:OpenUSBByName() Checking device: 3/17
00000048 ccid_usb.c:433:OpenUSBByName() Trying to open USB bus/device: 3/17
00000384 ccid_usb.c:499:OpenUSBByName() Found Vendor/Product: 20A0/4107 (German Privacy Foundation Crypto Stick v1.2)
00000025 ccid_usb.c:501:OpenUSBByName() Using USB bus/device: 3/17
00000021 ccid_usb.c:974:ControlUSB() request: 0x03
00003478 receive:
00000038 ccid_usb.c:918:get_data_rates() IFD does not support GET_DATA_RATES request: -9
00003126 NotifySlotChange: 50 03
00000050 → 000000 65 00 00 00 00 00 00 00 00 00
00001915 ← 000000 81 00 00 00 00 00 00 00 00 00
00000045 ifdhandler.c:401:IFDHGetCapabilities() tag: 0xFB3, usb:20a0/4107:libusb-1.0:3:17 (lun: 0)
00000023 readerfactory.c:293:RFAddReader() Using the reader polling thread
00002000 ifdhandler.c:401:IFDHGetCapabilities() tag: 0xFAE, usb:20a0/4107:libusb-1.0:3:17 (lun: 0)
00000026 ifdhandler.c:489:IFDHGetCapabilities() Reader supports 1 slot(s)
00011908 ifdhandler.c:1146:IFDHPowerICC() action: PowerUp, usb:20a0/4107:libusb-1.0:3:17 (lun: 0)
00000077 → 000000 62 00 00 00 00 00 04 00 00 00
00952843 ← 000000 80 15 00 00 00 00 04 00 00 00 3B DA 18 FF 81 B1 FE 75 1F 03 00 31 C5 73 C0 01 40 00 90 00 0C
00000081 eventhandler.c:259:EHStatusHandlerThread() powerState: POWER_STATE_POWERED
00000041 Card ATR: 3B DA 18 FF 81 B1 FE 75 1F 03 00 31 C5 73 C0 01 40 00 90 00 0C
05007111 ifdhandler.c:1146:IFDHPowerICC() action: PowerDown, usb:20a0/4107:libusb-1.0:3:17 (lun: 0)
00000055 → 000000 63 00 00 00 00 00 07 00 00 00
00002901 ← 000000 81 00 00 00 00 00 07 01 00 01
00000040 eventhandler.c:449:EHStatusHandlerThread() powerState: POWER_STATE_UNPOWERED

Für den CryptoStick 1.2 braucht man nur eine Udev-Regel laut Anleitung awxcnx.de/handbuch_32r.htm

Die Datei privacyfoundation.de/wiki/C … tick.rules nach dem Downlaod in “/etc/udev/rules.d” speichern. Dann müsste es funktionieren.

Moin,
danke fuer die Antwort. Leider hat das nicht geklappt, wie ich oben in meinem Eingangspost geschrieben habe. Nach dem Kopieren der udev-Regel nach /etc/udev/rules.d/ hab ich auch das udev neu gestartet bzw. aus Verzweifelung sogar (ich weiss das ist eigentlicht Windows-like) den Rechner neu gestartet. Also daran kann es nicht liegen.
Daher habe ich dann noch die anderen Wege versucht, die aber auch nicht von Erfolg gekroent waren.

Mittlerweile hab ich den Stick auch schon unter einem Debian Lenny und unter Windows installiert. Jedoch ist das Ergebnis immer wieder das der Kartenleser erkannt wird, aber die Karte anscheinend nicht.

Gruss und nen erfolgreiches Jahr 2011 wuenscht

g.laber

Dann ist wahrscheinlich der Stick kaputt. Am Besten als Reklamation zurück. Schade. Das ist sicher ärgerlich für Dich.

Neue Erkenntnisse:
Der Stick ist anscheinend doch nicht kaputt. Heute haben wir nochmal einige Weitere Tests gemacht. Dabei fiel auf, dass der Stick an einem weiteren Gentoo-Linux ebenfalls den Dienst verweigert. Ein Rechner mit einem installierten Debian Squeeze hat ihn korrekt erkannt und bereitwillig Infos mittels “gpg --card-status” ausgegeben.

Ebenfalls positiv verlief ein Test auf einem frisch aufgesetzten squeeze in einer Virtualbox (Es wurde nach dem Minimalsetup lediglich gnupg2 und gpgsm installiert).

Immer noch komisch finde ich dass im Syslog von gentoo der Stick gar nicht angezeigt wird sondern lediglich die Meldung
"usb 3-1: new full speed USB device using uhci_hcd and address 16"
erscheint.
Unter Sqeeze kommen da noch weitere Zeilen mit
usb 2-2: New USB Device found…
usb 2-2: New USB Device Strings:…
usb 2-2: Product: Crypto Stick …
usb 2-2: Manufacturer: …
usb 2-2: configuration #1 chosen from 1 choice

Also da scheint beim Debian viel mehr im Hintergrund zu passieren als beim gentoo.

Kann hier vielleicht mal jemand die Hintergrundaktivitaeten etwas beleuchten, die da beim Einstecken des Sticks ablaufen bzw. wer/wie/wo wird denn nun genau der Treiber geladen?

Ich hab mir das so zusammengereimt/-gelesen, dass das Laden eines Treibers erst duch gpg angestossen wird, wenn es auf die Karte zugreifen will.
Ungefaehr ueber diesen Weg:
“User will was mit gpg entschluesseln” -> GPG -> scdaemon -> Treiber (irgend ne lib (aus libccid?)) -> OPENPGP-Card
Ist das so richtig?

Doch woher weiss Gnupg ueberhaupt das da nun irgendwo ne Karte ist/sein koennte? Fragt der immer erst rich scdaemon ob er existiert und ob er ne Karte hat?

Gibt es irgendwelche Kernelmodule, die man unbedingt braucht um auf die Karte zuzugreifen? Der Debian-Kernel war ein Standardkernel. Die getesteten Gentoo-System hatten alle selbst kompilierte Kernel, also wo evtl. Module fehlten.

Klar ist mir, dass das USB-Subsystem inklusive xHCI-Modul geladen sein muss. Aber was wird dann noch an weiteren Modulen fuer den Stick benoetigt?

Ich wuerde mich freuen, wenn nochmal jemand ein paar Tipps liefern koennte.

Gruss

g.laber

Der OpenPGP-Key im gpg-Keyring enthält die Information, dass der eigentliche Schlüssel auf der Card liegt.

Deshalb muss man den Key aus dem Keyring exportieren und auf einem neuen Rechner wieder importieren, wenn man den CryptoStick auch an einem anderen Rechner nutzen möchte. Nur den CryptoStick an den neiuen Rechner stecken reicht nicht.

Zu den anderen Fragen habe ich keine Ahnung. :frowning:

Erkannt werden muss der CryptoStick auch ohne passenden Key im Keyring - das ist ja klar.

Mit Gentoo habe ich keinerlei Erfahrung.

Das sollte grundsätzlich stimmen, ABER es gibt noch die alternative, dass GnuPG ohne die libccid auf die Karte zugreift und dabei einen eigenen Smartkartentreiber verwendet.

Ein Kernelmodul ist nicht nötig.