web-dev-qa-db-ja.com

ScdaemonはWindows10でYubikeyを検出しません

これは、Windows 10 1803(x64)に更新した後に最近開始されました。 Gpg4Winを最新バージョン(3.1.2)に更新しましたが、何も修正されていません。

私は以下を試しました:

  • ミニドライバーを削除します( https://forum.yubico.com/viewtopicbe08.html?f=35&t=2756
  • チュードを変更します( https://forum.yubico.com/viewtopicb199.html?f=35&t=2757
  • Yubikeyに関連するすべてのドライバーをアンインストールして、NirsoftのUsbdeviewを使用して再インストールします。
  • Yubikeyのエントリを_HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\SmartCards_から削除します
  • Yubicoのツールを使用して、CCIDインターフェイスを無効にしてから再度有効にします
  • スマートカードサービスを再起動します
  • Scdaemonとgpg-connect-agentを強制終了して再起動します
  • (明らかに)再起動

これのどれもそれを修正しませんでした、そして私は現時点でほとんど考えがありません。これは私のマシン上で(TPMを除いて)唯一のスマートカードリーダーであり、YubikeyはLinux上のgpgで動作することがテストされています。

YubikeyはIdentity Device (NIST SP 800-73 [PIV])として表示されています

いくつかのログ:

Gpgは以下を返します:

_$ gpg --card-status
gpg: selecting openpgp failed: No such device
gpg: OpenPGP card not available: No such device
_

Certutilは以下を返します:

_$ certutil -scinfo


=======================================================
Analyzing card in reader: Yubico Yubikey 4 OTP+U2F+CCID 0

--------------===========================--------------
================ Certificate 0 ================
--- Reader: Yubico Yubikey 4 OTP+U2F+CCID 0
---   Card: Identity Device (NIST SP 800-73 [PIV])
Provider = Microsoft Base Smart Card Crypto Provider
Key Container = (null) [Default Container]

Cannot open the AT_SIGNATURE key for reader: Yubico Yubikey 4 OTP+U2F+CCID 0
Cannot open the AT_KEYEXCHANGE key for reader: Yubico Yubikey 4 OTP+U2F+CCID 0

--------------===========================--------------
================ Certificate 0 ================
--- Reader: Yubico Yubikey 4 OTP+U2F+CCID 0
---   Card: Identity Device (NIST SP 800-73 [PIV])
Provider = Microsoft Smart Card Key Storage Provider
Key Container = (null) [Default Container]

Cannot open the  key for reader: Yubico Yubikey 4 OTP+U2F+CCID 0

--------------===========================--------------

Done.
CertUtil: -SCInfo command completed successfully.
_

Scdaemonによるログは、読者を検出しているように見えるので、何か(私は思う)が面白いかもしれないことを示しています:

_2018-07-26 18:13:36 scdaemon[13612] detected reader 'Windows Hello for Business 9'
2018-07-26 18:13:36 scdaemon[13612] detected reader 'Yubico Yubikey 4 OTP+U2F+CCID 0'
2018-07-26 18:13:36 scdaemon[13612] reader slot 0: not connected
2018-07-26 18:13:36 scdaemon[13612] DBG: leave: apdu_open_reader => slot=0 [pc/sc]
2018-07-26 18:13:36 scdaemon[13612] DBG: enter: apdu_connect: slot=0
2018-07-26 18:13:36 scdaemon[13612] pcsc_control failed: insufficient buffer (0x80100008)
2018-07-26 18:13:36 scdaemon[13612] pcsc_vendor_specific_init: GET_FEATURE_REQUEST failed: 65538
2018-07-26 18:13:36 scdaemon[13612] reader slot 0: active protocol: T1
2018-07-26 18:13:36 scdaemon[13612] slot 0: ATR=3B 8D 01 80 FB A0 00 00 03 97 42 54 46 59 04 01 CF
2018-07-26 18:13:36 scdaemon[13612] DBG: pcsc_get_status_change:  changed present excl inuse
2018-07-26 18:13:36 scdaemon[13612] DBG: leave: apdu_connect => sw=0x0
2018-07-26 18:13:36 scdaemon[13612] DBG: send apdu: c=00 i=A4 p1=00 p2=0C lc=2 le=-1 em=0
2018-07-26 18:13:36 scdaemon[13612] DBG:   PCSC_data: 00 A4 00 0C 02 3F 00
2018-07-26 18:13:36 scdaemon[13612] DBG:  response: sw=6A82  datalen=0
2018-07-26 18:13:36 scdaemon[13612] DBG: send apdu: c=00 i=A4 p1=04 p2=00 lc=6 le=-1 em=0
2018-07-26 18:13:36 scdaemon[13612] DBG:   PCSC_data: 00 A4 04 00 06 D2 76 00 01 24 01
2018-07-26 18:13:36 scdaemon[13612] DBG:  response: sw=6A82  datalen=0
2018-07-26 18:13:36 scdaemon[13612] can't select application 'openpgp': Not supported
2018-07-26 18:13:36 scdaemon[13612] DBG: enter: apdu_close_reader: slot=0
2018-07-26 18:13:36 scdaemon[13612] DBG: enter: apdu_disconnect: slot=0
2018-07-26 18:13:36 scdaemon[13612] DBG: leave: apdu_disconnect => sw=0x0
2018-07-26 18:13:36 scdaemon[13612] DBG: leave: apdu_close_reader => 0x0 (close_reader)
2018-07-26 18:13:36 scdaemon[13612] DBG: chan_0x00000188 -> ERR 100696144 No such device <SCD>
_
3
vagaerg

問題は、Office365をインストールすると、MicrosoftPassportに基づく認証メカニズムであるWindows Hello for Business用の仮想スマートカードリーダーが追加されることにあるようです。

(ログに基づいて)これにより、scdaemonがクラッシュすると思います。これは、このリーダーとYubikeyの2つのリーダーを見つけることができるためです。しかし、後者を初期化しようとはせず、Windows Hello for Business仮想リーダーを試した直後に失敗します。 certutilのログには、マシン上のWindows Hello仮想リーダーの証明書を取得できなかったことが示されているため、scdaemonがクラッシュする可能性があります。

この問題は、Kleopatra設定の[スマートカード]タブでYubico Yubikey 4 OTP+U2F+CCID 0(ログから取得した名前)を設定することで解決されました。

YMMVですが、私がお勧めするのは次のとおりです。

  • デバッグレベルを4に設定し、Kleopatraのsmartcardsタブでログファイルのパスを設定します
  • ログファイルでYubikeyスマートカードの名前を探します。detected readerで始まる行があります。私の場合はdetected reader 'Yubico Yubikey 4 OTP+U2F+CCID 0'です。
  • その名前をKleopatraのConnect to reader at port Nフィールドにコピーします
  • 生成されるガベージを減らすために、ロギングを再度無効にできるようになりました。

参考のために画像を参照してください:

Screenshot

4
vagaerg