[〜#〜] cac [〜#〜] スマートカードと SCM Microsystems SCR3310 USBカードリーダー を持っています。 Windows 7 Ultimate SP1を実行しています。
この設定は以前は問題なく機能していました。 CACを挿入すると、証明書はすぐに証明書ストアに伝達され(Certificate Managerの_certmgr.msc
_で証明されています)、アクセスにCACを必要とするWebサイトにログオンできます。
最近、ウェブサイトにアクセスできなくなりました。証明書マネージャーを見ると、証明書が1つ、場合によっては2つしか存在しないことがわかります。それらを削除してカードを再度挿入すると、別の証明書が表示される場合があります。
返品して同じモデルに交換したところ、原因ではないことがわかりました。
ついにシステムログを確認しようと思いましたが、スマートカードの挿入時に次のエラーに気づきました。
時系列のエラー:
_Smart Card Service Event ID: 610
Smart Card Reader 'SCM Microsystems SCR33xx v2.0 USB SC Reader 0' rejected
IOCTL TRANSMIT: Incorrect function. If this error persists, your smart card
or reader may not be functioning correctly.
Command Header: 00 c0 00 00
WudfUsbccidDrv Event ID: 11
A Request has returned failure.
MsgType: 0x80
ICCStatus: 0x0
CmdStatus: 0x1
Error: 0xf6 // ICC_PROTOCOL_NOT_SUPPORTED
SW1: 0x0
SW2: 0x0
WudfUsbccidDrv Event ID: 11
An operation has failed (0x0, 0x0, 0x0, 0x0).
ScT0Transmit: Failed to send request at TPDU level.
HResult: The specified request is not a valid operation for the target device.
// Note: this one comes from WUDFUsbccidDriver.dll CMyDevice::UsbScT0Transmit+7D0h
WudfUsbccidDrv Event ID: 10
Request[0](CLS=0x0,INS=0xc0,P1=0x0,P2=0x0,Lc=0,Le=256,.NETServiceMethod=0x0)
_
ハードウェアが_IOCTL TRANSMIT
_中に障害を示したようです。これは、ユーザーモードドライバーフレームワークを介して細流しました。
編集:CCID仕様を確認すると、カードがbmCommandStatus = 1 - Failed (error code provided by the error register)
で応答しているようです。そしてError = ICC_PROTOCOL_NOT_SUPPORTED -10 (F6h)
。ドライバーがこのエラーを「HResult:指定された要求はターゲットデバイスに対して有効な操作ではありません」に変換すると想定しています。メッセージ。
また、送信されたコマンドはINS = 0xC0、つまり GET RESPONSE でした。
サポートされていないプロトコルとはどのように言えますか?ドライバーはそれが働いたときとは異なって何をしていますか?新しいCACでもこれを試したところ、同様の動作が見られます。カードリーダー、またはドライバーに問題がありますか?
リーダーを交換したばかり(ドライバーの再インストール、再起動など)を考慮して、スマートカードに問題がありますか?別のシステムの別のリーダーでが動作するため、私はそうではないと想定しています。同じシステムで別のリーダーを試したことはありません。
実際、Windows 7に接続されたsameリーダーは、同じ物理マシンでVMで問題なく動作します!私は何を理解しようとしているのかわからない。
それで問題は何ですか?
誰かがその問題で立ち往生している場合に備えて-私は一日中それを修正しようとしました。
これが解決策です:
64ビットWindowsの場合-次のレジストリキーに移動します
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers
すでに読者がいるはずです。そうでない場合は、それがすべてのドライバがインストールされているにもかかわらず、まったく機能しない理由です。
Device Manager
にアクセスし、問題のリーダーを見つけて、[詳細]タブでこの文字列を探します:Bus reported device description
。
上記のキーのサブキーを作成します。名前はBus reported device description
と完全に同じである必要があります。次に、最後にカウンターを追加します。したがって、キーは次のようになります。
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers\O2Micro CCID SC Reader 0
次に、2つの文字列値を作成します。1つ目はデバイス名、2つ目はグループです。これが私の例です:
Device = O2Micro CCID SC Reader 0
Groups = SCard$DefaultReaders
それでおしまい。これを機能させるには、リーダーを取り外して再度接続します。内部デバイスの場合は、マシンを再起動する必要があります。次に、.reg
ファイルの例を示します(デバイス名と番号を独自の値に変更します)。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Cryptography\Calais\Readers\O2Micro CCID SC Reader 0]
"Device"="O2Micro CCID SC Reader 0"
"Groups"=hex(7):53,00,43,00,61,00,72,00,64,00,24,00,44,00,65,00,66,00,61,00,75,\
00,6c,00,74,00,52,00,65,00,61,00,64,00,65,00,72,00,73,00,00,00,00,00