[Bug 1641746] Re: gpg2: gpg2 --card-status: gpg: selecting openpgp failed: Card error
Dimitri John Ledkov
launchpad at surgut.co.uk
Tue Nov 15 00:52:19 UTC 2016
Yubikey 4 is a multi-function device.
It can generate static passwords, yubi-oauth, event totp.
Further more it has multiple applets:
- openpgp card
- PKCS#11 mode (e.g. to have elliptic curve private key for SSL)
- ulimited time & event based tokens (for use with yubioauth desktop app)
- fido U2F
And maybe others.
I have found that Yubikey applets do lock the device up, thus care needs
to be taken when multiple applets access the device. Specifically, pcscd
is probably preventing from scdaemon to use the card. Similarly, after
using yubioauth desktop app to generate OTP tokens i must close
yubioauth app & remove & reinsert the yubikey to get OpenPGP
functionality going again.
I'm not sure if it's a bug in software side stacks, or just the simple
fact of life that yubikey is multi-function device that needs access
mitigation assistance.
I use neo on 16.04. I have not yet upgraded to yubikey 4 yet, but I know
that some people on my team have.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gnupg2 in Ubuntu.
https://bugs.launchpad.net/bugs/1641746
Title:
gpg2: gpg2 --card-status: gpg: selecting openpgp failed: Card error
Status in gnupg2 package in Ubuntu:
New
Bug description:
gpg2 does not work with OpenPGP card:
$ gpg2 --card-status
gpg: selecting openpgp failed: Card error
gpg: OpenPGP card not available: Card error
I also enabled scdaemon debug output and have the following there:
2016-11-14 22:43:49 scdaemon[4817] listening on socket '/home/antonm/.gnupg/S.scdaemon'
2016-11-14 22:43:49 scdaemon[4817] handler for fd -1 started
2016-11-14 22:43:49 scdaemon[4817] DBG: enter: apdu_open_reader: portstr=(null)
2016-11-14 22:43:49 scdaemon[4817] detected reader 'Yubico Yubikey 4 U2F+CCID 00 00'
2016-11-14 22:43:49 scdaemon[4817] detected reader 'Gemalto GemPC Express 01 00'
2016-11-14 22:43:49 scdaemon[4817] reader slot 0: not connected
2016-11-14 22:43:49 scdaemon[4817] DBG: leave: apdu_open_reader => slot=0 [pc/sc]
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 -> OK GNU Privacy Guard's Smartcard server ready
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 <- GETINFO socket_name
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 -> D /home/antonm/.gnupg/S.scdaemon
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 -> OK
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 <- OPTION event-signal=12
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 -> OK
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 <- GETINFO version
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 -> D 2.1.11
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 -> OK
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 <- SERIALNO openpgp
2016-11-14 22:43:49 scdaemon[4817] DBG: enter: apdu_connect: slot=0
2016-11-14 22:43:49 scdaemon[4817] pcsc_connect failed: sharing violation (0x8010000b)
2016-11-14 22:43:49 scdaemon[4817] reader slot 0: not connected
2016-11-14 22:43:49 scdaemon[4817] DBG: leave: apdu_connect => sw=0x10006
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 -> ERR 100663404 Card error <SCD>
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 <- RESTART
2016-11-14 22:43:49 scdaemon[4817] DBG: chan_5 -> OK
2016-11-14 22:43:49 scdaemon[4817] DBG: enter: apdu_get_status: slot=0 hang=0
2016-11-14 22:43:49 scdaemon[4817] DBG: leave: apdu_get_status => sw=0x0 status=6 changecnt=1
2016-11-14 22:43:49 scdaemon[4817] updating reader 0 (0) status: 0x0000->0x0006 (0->1)
2016-11-14 22:43:49 scdaemon[4817] sending signal 12 to client 2143
2016-11-14 22:43:50 scdaemon[4817] DBG: enter: apdu_get_status: slot=0 hang=0
that might be the reason. The card in questions is Yubikey 4 with
OpenPGP applet loaded, but I also tried regular OpenPGP v2 card with
the same result.
I also have pcscd running as I use Estonian eID card a couple of other
smart cards too.
systemctl status pcscd.service has the following in log:
Nov 14 22:12:36 loki systemd[1]: Started PC/SC Smart Card Daemon.
Nov 14 22:12:36 loki pcscd[2045]: 00000000 ifdhandler.c:144:CreateChannelByNameOrChannel() failed
Nov 14 22:12:36 loki pcscd[2045]: 00000029 readerfactory.c:1043:RFInitializeReader() Open Port 0x200000 Failed (usb:1050/0406:libudev:0:/dev/bus/usb/002/003)
Nov 14 22:12:36 loki pcscd[2045]: 00000006 readerfactory.c:335:RFAddReader() Yubico Yubikey 4 U2F+CCID init failed
But pcsc_scan works and is able to recognize OpenPGP card on Yubikey:
$ pcsc_scan
PC/SC device scanner
V 1.4.25 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau at free.fr>
Compiled with PC/SC lite version: 1.8.14
Using reader plug'n play mechanism
Scanning present readers...
0: Yubico Yubikey 4 U2F+CCID 00 00
1: Gemalto GemPC Express 01 00
Mon Nov 14 22:54:46 2016
Reader 0: Yubico Yubikey 4 U2F+CCID 00 00
Card state: Card inserted, Shared Mode,
ATR: 3B F8 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 34 D4
ATR: 3B F8 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 34 D4
+ TS = 3B --> Direct Convention
+ T0 = F8, Y(1): 1111, K: 8 (historical bytes)
TA(1) = 13 --> Fi=372, Di=4, 93 cycles/ETU
43010 bits/s at 4 MHz, fMax for Fi = 5 MHz => 53763 bits/s
TB(1) = 00 --> VPP is not electrically connected
TC(1) = 00 --> Extra guard time: 0
TD(1) = 81 --> Y(i+1) = 1000, Protocol T = 1
-----
TD(2) = 31 --> Y(i+1) = 0011, Protocol T = 1
-----
TA(3) = FE --> IFSC: 254
TB(3) = 15 --> Block Waiting Integer: 1 - Character Waiting Integer: 5
+ Historical bytes: 59 75 62 69 6B 65 79 34
Category indicator byte: 59 (proprietary format)
+ TCK = D4 (correct checksum)
Possibly identified card (using /home/antonm/.cache/smartcard_list.txt):
3B F8 13 00 00 81 31 FE 15 59 75 62 69 6B 65 79 34 D4
Yubico Yubikey 4 OTP+CCID
and the only process using /dev/bus/usb/002/003 according to lsof is
pcscd itself.
Tried a couple of restarts of pcscd, gpg-agent and scdaemon with no
success. Also tried "disable-ccid" for scdaemon.conf with not much
luck either.
At this point I am stuck with debugging in further. If anything comes
to the mind will update the bug.
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: gnupg2 2.1.11-6ubuntu2
ProcVersionSignature: Ubuntu 4.4.0-47.68-generic 4.4.24
Uname: Linux 4.4.0-47-generic x86_64
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: amd64
CurrentDesktop: Unity
Date: Mon Nov 14 22:47:15 2016
InstallationDate: Installed on 2016-05-16 (182 days ago)
InstallationMedia: Ubuntu 16.04 LTS "Xenial Xerus" - Release amd64 (20160420.1)
SourcePackage: gnupg2
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnupg2/+bug/1641746/+subscriptions
More information about the foundations-bugs
mailing list