Nitrokey 3A Mini: GPG, firmware v1.4.0, Nitrokey App 3, Kein passendes Gerät gefunden

Hallo,

Ich habe meinen Nitrokey 3A Mini nach der Meldung:

erfolgreich auf die Firmware v1.4.0 upgedated.

Danach wollte ich meinen privaten Schlüssel auf das Gerät laden. Allerdings, wird das Gerät nicht erkannt.

$ gpg2 --card-status
gpg: selecting card failed: Kein passendes Gerät gefunden
gpg: OpenPGP Karte ist nicht vorhanden: Kein passendes Gerät gefunden

Wo könnte der Fehler liegen?

Ich nutze Ubuntu 20.04.6 LTS, “udev rules” sind aktuell, das Gerät wird nicht anderweitig blockiert (ie. USBGuard), ältere Nitrokeys funktionieren …

Grüße

###################
$ python3 -V
Python 3.8.10

$ lsusb
Bus 001 Device 011: ID 20a0:42b2 Clay Logic Nitrokey 3

$ usbguard list-devices
54: allow id 20a0:42b2 serial “” name “Nitrokey 3” hash “pnXUe5x/pI5MD7yhaBeH1g5yEaVnAXib+qc2KjlqiWY=” parent-hash “jEP/6WzviqdJ5VSeTUY8PatCNBKeaREvo2OqdplND/o=” via-port “1-4” with-interface { 0b:00:00 03:00:00 02:02:00 0a:00:00 } with-connect-type “unknown”

Gleiches Problem hier with 3C.

Hallo! Bitte prüfen Sie, ob das hilft:

sudo systemctl restart pcscd pcscd.socket
gpg2 --card-status

Hi,

I followed your advice. Unfortunately, it did not help …

Ich hatte auch das Problem.
Ich bekam den Tipp:
disable-ccid in der Datei ~/.gnupg/scdeamon.conf zu setzen und dann den GPG Daemon mittels:
gpg-connect-agent ‘SCD KILLSCD’ /bye
Neu zu starten. Dann lief es zwar, aber aufgrund einer skurrilen Implementierung Seitens GPG wird die “Karte” dann exklusiv gesperrt, was zur Folge hat, das Thunderbird und co nicht mehr auf diese via PC/SC zugreifen können.

Vielen Dank. Auch das funktioniert leider nicht.
Wie kann es sein, dass älter Nitrokey funktionieren:

$ gpg2 --card-status
Reader ...........: 20A0:4108:000000000000000000008952:0
Application ID ...: D2760001240103030005000089520000
Application type .: OpenPGP
Version ..........: 3.3
Manufacturer .....: ZeitControl

aber nicht der neuer Nitrokey 3A Mini ?!?

$ gpg2 --card-status
gpg: selecting card failed: Kein passendes Gerät gefunden
gpg: OpenPGP Karte ist nicht vorhanden: Kein passendes Gerät gefunden



############################################
OFI
$ sudo ls -l /etc/udev/rules.d/
insgesamt 340
-rw-r--r-- 1 root root   2985 Apr 28 10:36 41-nitrokey.rules

$ sudo nano /etc/udev/rules.d/41-nitrokey.rules
#u.a.
# Nitrokey U2F
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="f1d0", TAG+="uaccess"
# Nitrokey FIDO U2F
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="4287", TAG+="uaccess"
# Nitrokey FIDO2
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42b1", TAG+="uaccess"
# Nitrokey 3A Mini/3A NFC/3C NFC
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42b2", TAG+="uaccess"
# Nitrokey 3A NFC Bootloader/3C NFC Bootloader
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42dd", TAG+="uaccess"
# Nitrokey 3A Mini Bootloader
ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42e8", TAG+="uaccess"

Ich vermute, deine libccid-Version ist zu alt. Für Ubuntu 20.04 gibt es nur 1.4.31 in den offiziellen Paketquellen, allerdings wird der Nitrokey 3 erst ab Version 1.5.0 unterstützt. Du kannst das Problem lösen, indem du die Gerätedatenbank von libccid manuell aktualisierst oder eine neuere Version portierst und installierst. Hier gibt es dazu genauere Informationen:

Bei mir (Fedora 38) funktioniert übrigens der Workaround (pcscd stoppen oder neu starten). Allerdings muss ich das jedes Mal machen, wenn ich den Stick anstöpsle. Hier wäre noch eine Info, warum das so ist bzw. ob es da noch Abhilfe geben wird, interessant.

Vermutlich nutzt GnuPG bei dir den internen Treiber, der nicht funktioniert, wenn pcscd die Smartcard bereits gelockt hat. Durch das Stoppen von pcscd wird die Smartcard freigegeben. Ich würde empfehlen, GnuPG so zu konfigurieren, dass auch pcscd genutzt wird. Das geht durch den Eintrag disable-ccid in .gnupg/scdaemon.conf. Alternativ kannst du auch pcscd ganz deaktivieren oder deinstallieren. Mehr Infos gibt es hier: Ludovic Rousseau's blog: GnuPG and PC/SC conflicts

1 Like

Hi, vielen Dank. Dieser Hinweis war sehr hilfreich! Freundliche Grüße

Nitrokey 3A, Kubuntu 22.10 (Kinetic Kudu), Firmware 1.4.0, gpg (GnuPG) 2.2.35, libgcrypt 1.10.1
I’ve never used a smartcard with GPG, so I can’t tell if this is OK, but at least it’s not an error :wink:

$ gpg2 --card-status
Reader ...........: Nitrokey Nitrokey 3 [CCID/ICCD Interface] 00 00
Application ID ...: D276000124010304000F31EC76040000
Application type .: OpenPGP
Version ..........: 3.4
Manufacturer .....: unknown
Serial number ....: 31EC7604
Name of cardholder: [not set]
Language prefs ...: [not set]
Salutation .......: 
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 0 3
Signature counter : 0
KDF setting ......: off
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

disable-ccid in .gnupg/scdaemon.conf hat bei mir zwar keine Auswirkungen, mit pcsc-shared hatte ich hingegen Erfolg.

Das setzt natürlich voraus, dass das Paket “scdaemon” auch installiert ist :slight_smile:
Die Installation des Pakets hat bei mir unter Debian 11 das Problem gelöst.