У меня есть смарт-карта CAC и устройство чтения карт USB SCM Microsystems SCR3310 . Я использую Windows 7 Ultimate с пакетом обновления 1 (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, которая является GET RESPONSE .
Как можно сказать, что протокол не поддерживается? Что делает драйвер иначе, чем когда он работал? Обратите внимание, что я также только что попробовал это с новым CAC, и я вижу подобное поведение. Проблема с картридером или драйвером?
Учитывая, что я только что заменил считыватель (и переустановил драйверы, перезагрузил и т. Д.), Что-то не так с моей смарт-картой? Я не предполагая, потому что это делает работу с другим читателем на другую систему. Я не пробовал другой читатель в той же системе.
Фактически, тот же читатель, подключенный к виртуальной машине Windows 7 на той же физической машине, работает просто отлично! Что-то явно сломано, и это сводит меня с ума, пытаясь понять, что.
Так в чем проблема?