Устранение неполадок смарт-карт
В этой статье описаны инструменты и службы, которые разработчики смарт-карт могут использовать для выявления проблем с сертификатами в приложениях смарт-карт.


Для отладки и устранения неисправностей смарт-карт требуются различные инструменты и подходы. В следующих разделах представлены рекомендации по инструментам и подходам, которые могут быть использованы.
Certutil
Полное описание Certutil, включая примеры использования, смотрите в Certutil W2012.
Просмотр списка сертификатов, доступных для смарт-карт
Чтобы получить список сертификатов, доступных для использования со смарт-картами, введите. certutil -scinfo.
Для этой функции не требуется PIN-код. Если появится запрос на ввод PIN-кода, нажмите клавишу ESC.
Удаление сертификатов смарт-карт.
Каждый сертификат вложен в контейнер. Удаление сертификата смарт-карты удаляет хранилище сертификатов.
Чтобы узнать цену контейнера, введите. certutil -scinfo
Чтобы удалить контейнер, введите certutil -delkey -csp «Microsoft Base Smart Card Crypto Provider» «ContainerValue >».
Отладка и трассировка с помощью WPP
С помощью WPP можно легко отследить поставщиков услуг. Он предоставляет поставщику трассировки механизм для регистрации двоичных сообщений в реальном времени. Зарегистрированные сообщения могут быть преобразованы в читаемые человеком следы операций. Для получения дополнительной информации см. раздел Диагностика с помощью WPP — Блог NDIS.
Включение обнаружения
Чтобы включить трассировку, используйте одну из следующих команд в WPP
tracelog.exe -kd -rt -start< Friendlyname > -guide-number.< GUID > -f . -f -f -f -f -f -f -f -f -f -f -f -f< LogFileName > .etl -флаги.< Флаги > -ft 1
Запустите logman.< Friendlyname > -ets -p GUID > > — флаги > -ft 1 -rt -o . \ LogFileName.etl > -mode 0x00080000
Можно использовать параметры, приведенные в таблице ниже.
Чистое имя. | Код GUID | Флажок |
---|---|---|
scardsvr. | 13038e47-ffec-425d-bc69-5707708075fe | 0xffff |
Выигрышная карта | 3fce7c5f-fb3b-4bce-a9d8-55cc0ce1cf01 | 0xffff |
basecsp | 133a980d-035d-4e2d-b250-94577ad8fced | 0x7 |
scksp | 133a980d-035d-4e2d-b250-94577ad8fced | 0x7 |
msclmd | fb36caf4-582b-4604-8841-9263574c4f2c | 0x7 |
Удостоверения. | dba0e0e0-505a-4ab6-aa3f-22f6f743b480 | 0xffff |
certprop | 30eae751-411f-414c-988b-a8bfa8913f49 | 0xffff |
scfilter | eed7f3c9-62ba-400e-a001-658869df9a91 | 0xffff |
wudfusbccid | a3c09ba3-2f62-4be5-a50f-8278a646ac9d | 0xffff |
Чтобы включить трассировку для службы SCardSvr :
tracelog.exe -kd -rt -startscardsvr -guid #13038e47-ffec-425d-bc69-5707708075fe -f . \scardsvr.etl -flags 0xffffffffffff -ft 1
logman start scardsvr -ets -p 0xffffffff -ft 1 -rt -o . \scardsvr.etl -mode 0x00080000
Чтобы включить трассировку в scfilter.sys :
- tracelog.exe -kd -rt -start scfilter -guid #eed7f3c9-62ba-400e-a001-658869df9a91 -f . \scfilter.etl -flags 0xffffffffffff -ft 1
Остановочный трек.
Остановите ползущий процесс, выполнив одну из следующих команд с помощью WPP
tracelog.exe -stop< Friendlyname >
logman -stop.< Friendlyname > -ets
Пример
Чтобы остановить отслеживание :
tracelog.exe -stop scardsvr
logman -stop scardsvr -ets
Протокол Kerberos, KDC и отладка и трассировка NTLM
Эти ресурсы можно использовать для устранения неисправностей этих протоколов и KDC.
Windows Driver Kit (WDK) и Средства отладки для Windows (WinDbg). Инструмент регистрации трассировки в этом SDK можно использовать для отладки ошибок аутентификации Kerberos.
Чтобы начать трассировку, можно использовать Tracelog. Разные компоненты будут использовать разные GUID для элементов управления, как показано в этих примерах. Для получения дополнительной информации см. статью Tracelog.
Протокол NTLM
Чтобы включить ведение журнала трассировки для аутентификации NTLM, выполните следующую команду в командной строке.
- tracelog.exe -kd -rt -start ntlm -guid #5BBB6C18-AA45-49b1-A15F-085F7ED0AA90 -f .
tlm.etl -flags 0x15003 -ft 1
Чтобы остановить зонд аутентификации NTLM, выполните следующую команду
Аутентификация Kerberos
- Чтобы включить трассировку аутентификации Kerberos, выполните следующую команду
tracelog.exe -kd -rt -start curb -guid #6B510852-3583-4e2d-AFFE-A67F9F223438 -f . \kerb.etl -flags 0x43 -ft 1
Чтобы остановить проверку подлинности Kerberos, выполните следующую команду.
- Чтобы включить трассировку KDC, выполните следующую команду в командной строке.
tracelog.exe -kd -rt -start kdc -guid #1BBA8B19-7F31-43c0-9643-6E911F79A06B -f . \kdc.etl -flags 0x803 -ft 1
Чтобы остановить сканирование KDC, выполните следующую команду в командной строке.
Чтобы остановить ведение журнала с удаленного компьютера, выполните команду logman.exe -s.
По умолчанию logman.exe расположен в %systemroot%system32\. Используйте параметр -s для указания имени компьютера.
Настройка обнаружения с помощью реестра
Вы также можете настроить трассировку, изменив значения реестра Kerberos, перечисленные в следующей таблице.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters Имя значения: KerbDebugLevel Тип значения: DWORD Данные значения: c0000043
Если вы использовали файл журнала трассировки, то в текущем каталоге вы найдете следующие файлы журнала: kerb.etl/kdc.etl/ntlm.etl.
Если вы использовали опции в разделе Реестр, показанные в предыдущей таблице, найдите журнал трассировки в следующем месте: kerb.etl/kdc.etl/ntlm.etl
Служба смарт-карт
Tracefmt (tracefmt.exe) можно использовать для декодирования файлов трассировки событий. Tracefmt — это инструмент командной строки, который форматирует и отображает сообщения трассировки из файла журнала трассировки событий (ETL) или сеанса трассировки в реальном времени. Tracefmt может отображать сообщения в окне командной строки и сохранять сообщения в текстовый файл. Он находится в Windows Driver Kit (WDK) в подкаталоге \tools\tracing. Для получения дополнительной информации см. статью Tracefmt.
Служба Smart Card Resource Manager запускается в разделе Local Services. Он реализован как общая служба в процессе узла обслуживания (svchost).
Чтобы проверить, запущена ли служба Smart Card
Нажмите CTRL + ALT + DEL и выберите Запустить диспетчер задач.
В диалоговом окне «Диспетчер задач Windows» выберите вкладку «Службы».
Выберите столбец Имя, отсортируйте список по алфавиту и введите s.
Найдите SCardSvr в столбце Имя и проверьте, запущена или остановлена служба в столбце Состояние. ****
Перезапустите службу смарт-карт
Запустите командную строку от имени администратора.
Если появится диалоговое окно Контроль учетных записей пользователей, проверьте, что отображаемое действие является желаемым, и нажмите Да.
В командной строке введите net stop SCardSvr.
В командной строке введите net start SCardSvr.
Чтобы проверить, запущена ли служба, вы можете использовать следующую команду в командной строке
Средства чтения смарт-карт
Следующий пример кода показывает вывод этой команды.
Как и для любого другого устройства, подключенного к компьютеру, вы можете использовать Диспетчер устройств для просмотра его свойств и начала отладки.
Тестирование считывателя смарт-карт
Перейдите к компьютеру.
Щелкните правой кнопкой мыши на компьютере и выберите Свойства.
В разделе Задачи** выберите Диспетчер устройств**.
В диспетчере устройств разверните Smart Card Reader, выберите имя Smart Card Reader, которым вы хотите управлять, и выберите Свойства.
Диагностика CryptoAPI 2.0
Если считыватель смарт-карт отсутствует в списке диспетчера устройств, выберите пункт Проверить изменения оборудования в меню **** Действия.
CryptoAPI 2.0 Diagnostics доступна для версий Windows, поддерживающих CryptoAPI 2.0, и может помочь в устранении проблем инфраструктуры открытых ключей (PKI).
Система диагностики CryptoAPI 2.0 регистрирует события в журнале событий Windows. В журнале отображается подробная информация о проверке цепочки хранения сертификатов, работе хранилища сертификатов и проверке подписи. Эта информация облегчает определение причины проблем и сокращает время, необходимое для их устранения.

