У мене смарт-карта CAC і USB-зчитувач карт SCM Microsystems SCR3310 . Я запускаю Windows 7 Ultimate з SP1.
Цей параметр працював чудово. Коли я б вставив свій CAC, мої сертифікати негайно поширюватимуться у сховище сертифікатів (про що свідчить менеджер сертифікатів certmgr.msc
), і я міг би увійти на веб-сайти, яким потрібен CAC для доступу.
Останнім часом я перестав мати доступ до веб-сайтів. Дивлячись на диспетчера сертифікатів, я бачу, що лише один, а іноді і два мої сертифікати є. Якщо я видаляю їх і повторно вставляю карту, може з’явитися інший сертифікат.
Я щойно повернувся і замінив читача на ту саму модель, тож знаю, що це не винуватець.
Нарешті я подумав подивитися системний журнал і помітив наступні помилки при вставці смарт-карти:
Помилки в хронологічному порядку:
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, що є ВЗАЄМО ВІДПОВІДЬ .
Як сказати, що протокол не підтримується? Що водій робить інакше, ніж коли він працював? Зауважте, що я також просто спробував це з новим CAC, і я бачу подібну поведінку. Проблема з читачем карт або драйвером?
Зважаючи на те, що я щойно замінив зчитувач (і перевстановив драйвери, перезавантажив тощо), чи не так у моїй смарт-картці? Я не припускаючи, тому що це робить роботу з іншим читачем на іншу систему. Я не пробував іншого читача в одній системі.
Насправді той самий зчитувач, підключений до Windows 7 VM на одній фізичній машині, працює просто чудово! Щось явно зламане, і це ганяє мене, намагаючись зрозуміти, що.
То в чому проблема?