Устранение неполадок со смарт-картой

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

Для отладки и трассировки проблем интеллектуального карта требуются различные средства и подходы. В следующих разделах содержатся рекомендации по инструментам и подходам, которые можно использовать.

Certutil

Полное описание Certutil, включая примеры его использования, см. в разделе Certutil [W2012].

Вывод списка сертификатов, доступных в смарт-карта

Чтобы получить список сертификатов, доступных в смарт-карта, введите certutil.exe -scinfo.

Примечание.

Для этой операции ввод ПИН-кода не требуется. Если вам будет предложено ввести ПИН-код, можно нажать клавишу ESC.

Удаление сертификатов в смарт-карта

Каждый сертификат заключен в контейнер. При удалении сертификата на смарт-карта удаляется контейнер для сертификата.

Чтобы найти значение контейнера, введите certutil.exe -scinfo.

Чтобы удалить контейнер, введите certutil.exe -delkey -csp "Microsoft Base Smart Card Crypto Provider" "<ContainerValue>".

Отладка и трассировка с помощью WPP

WPP упрощает трассировку работы поставщика трассировки. Он предоставляет механизм, позволяющий поставщику трассировки регистрировать двоичные сообщения в режиме реального времени. Зарегистрированные сообщения можно преобразовать в удобочитаемую трассировку операции. Дополнительные сведения см. в разделе Диагностика с помощью WPP — блог NDIS.

Включение трассировки

С помощью WPP используйте одну из следующих команд, чтобы включить трассировку:

tracelog.exe -kd -rt -start <FriendlyName> -guid <GUID> -f .<LogFileName*>.etl -flags <flags> -ft 1
logman.exe start <FriendlyName> -ets -p {<GUID>} -<Flags> -ft 1 -rt -o .<LogFileName><em>.etl -mode 0x00080000</em>

Параметры, приведенные в следующей таблице, можно использовать.

Понятное имя Код GUID Флажки
scardsvr 13038e47-ffec-425d-bc69-5707708075fe 0xffff
winscard 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
credprov dba0e0e0e0-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 -start scardsvr -guid \#13038e47-ffec-425d-bc69-5707708075fe -f .\scardsvr.etl -flags 0xffff -ft 1
logman.exe start scardsvr -ets -p {13038e47-ffec-425d-bc69-5707708075fe} 0xffff -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 0xffff -ft 1

Остановка трассировки

С помощью WPP используйте одну из следующих команд, чтобы остановить трассировку:

tracelog.exe -stop <*FriendlyName*>
logman.exe -stop <*FriendlyName*> -ets

Например, чтобы остановить трассировку:

tracelog.exe -stop scardsvr
logman.exe -stop scardsvr -ets

Отладка и трассировка протокола Kerberos, KDC и NTLM

Эти ресурсы можно использовать для устранения неполадок с этими протоколами и KDC:

Чтобы начать трассировку, можно использовать Tracelog. Различные компоненты используют разные guid элемента управления, как описано в этих примерах. Дополнительные сведения см. в разделе Tracelog

Протокол NTLM

Чтобы включить трассировку для проверки подлинности NTLM, выполните в командной строке следующую команду:

tracelog.exe -kd -rt -start ntlm -guid \#5BBB6C18-AA45-49b1-A15F-085F7ED0AA90 -f .\ntlm.etl -flags 0x15003 -ft 1

Чтобы остановить трассировку для проверки подлинности NTLM, выполните следующую команду:

tracelog -stop ntlm

Проверка подлинности Kerberos

Чтобы включить трассировку для проверки подлинности Kerberos, выполните следующую команду:

tracelog.exe -kd -rt -start kerb -guid \#6B510852-3583-4e2d-AFFE-A67F9F223438 -f .\kerb.etl -flags 0x43 -ft 1

Чтобы остановить трассировку для проверки подлинности Kerberos, выполните следующую команду:

tracelog.exe -stop kerb

KDC

Чтобы включить трассировку для KDC, выполните в командной строке следующую команду:

tracelog.exe -kd -rt -start kdc -guid \#1BBA8B19-7F31-43c0-9643-6E911F79A06B -f .\kdc.etl -flags 0x803 -ft 1

Чтобы остановить трассировку для KDC, выполните в командной строке следующую команду:

tracelog.exe -stop kdc

Чтобы остановить трассировку с удаленного компьютера, выполните следующую команду:

logman.exe -s <ComputerName>

Примечание.

Расположение по умолчанию для logman.exe — %systemroot%system32. Используйте параметр -s , чтобы указать имя компьютера.

Настройка трассировки с помощью реестра

Вы также можете настроить трассировку, изменив значения реестра Kerberos, показанные в следующей таблице.

Элемент Параметр раздела реестра
Протокол NTLM HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
Имя значения: NtLmInfoLevel
Тип значения: DWORD
Данные значения: c0015003
Kerberos HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos
Имя значения: LogToFile
Тип значения: DWORD
Данные о значении: 00000001

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Имя значения: KerbDebugLevel
Тип значения: DWORD
Данные значения: c0000043

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Имя значения: LogToFile
Тип значения: DWORD
Данные о значении: 00000001
KDC HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc
Имя значения: KdcDebugLevel
Тип значения: DWORD
Данные значения: c0000803

Если вы использовали Tracelog, найдите следующий файл журнала в текущем каталоге: kerb.etl/kdc.etl/ntlm.etl.

Если вы использовали параметры раздела реестра, показанные в предыдущей таблице, найдите файлы журнала трассировки в следующих расположениях:

  • NTLM: %systemroot%\tracing\msv1_0
  • Kerberos: %systemroot%\tracing\kerberos
  • KDC: %systemroot%\tracing\kdcsvc

Для декодирования файлов трассировки событий можно использовать Tracefmt (tracefmt.exe). Tracefmt — это программа командной строки, которая форматирует и отображает сообщения трассировки из файла журнала трассировки событий (ETL) или сеанса трассировки в реальном времени. Tracefmt может отображать сообщения в окне командной строки или сохранять их в текстовом файле. Он находится в подкаталоге \tools\tracing комплекта драйверов Windows (WDK). Дополнительные сведения см. в статье Tracefmt.

Служба смарт-карт

Интеллектуальная служба диспетчера ресурсов карта выполняется в контексте локальной службы. Он реализуется как общая служба процесса узла служб (svchost).

Чтобы проверка, запущена ли служба смарт-карт, выполните приведенные далее действия.

  1. Нажмите клавиши CTRL+ALT+DEL, а затем выберите Запустить диспетчер задач.
  2. В диалоговом окне Диспетчер задач Windows выберите вкладку Службы .
  3. Выберите столбец Имя , чтобы отсортировать список в алфавитном порядке, а затем введите s
  4. В столбце Имя найдите SCardSvr, а затем просмотрите столбец Состояние , чтобы узнать, запущена или остановлена служба.

Чтобы перезапустить службу смарт-карт, выполните приведенные далее действия.

  1. Запуск от имени администратора в командной строке
  2. Если появится диалоговое окно Контроль учетных записей пользователей, убедитесь, что отображается нужное действие, и нажмите кнопку Да.
  3. В командной строке введите net stop SCardSvr
  4. В командной строке введите net start SCardSvr

В командной строке можно использовать следующую команду, чтобы проверка, запущена ли служба: sc queryex scardsvr.

Следующий пример кода является примером выходных данных этой команды:

SERVICE_NAME: scardsvr
    TYPE        : 20 WIN32_SHARE_PROCESS
    STATE       : 4 RUNNING
                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
    WIN32_EXIT_CODE  : 0 (0x0)
    SERVICE_EXIT_CODE : 0 (0x0)
    CHECKPOINT     : 0x0
    WAIT_HINT     : 0x0
    PID        : 1320
    FLAGS       :
C:\>

Интеллектуальные средства чтения карта

Как и любое устройство, подключенное к компьютеру, диспетчер устройств можно использовать для просмотра свойств и начала процесса отладки.

Чтобы проверка, работает ли средство чтения интеллектуального карта:

  1. Перейдите к компьютеру
  2. Щелкните правой кнопкой мыши компьютер и выберите Пункт Свойства.
  3. В разделе Задачи выберите диспетчер устройств
  4. В диспетчер устройств разверните узел Средства чтения смарт-карта, выберите имя средства чтения смарт-карта, которое вы хотите проверка, а затем выберите Свойства.

Примечание.

Если средство чтения смарт-карта отсутствует в списке диспетчер устройств, в меню Действие выберите Пункт Проверить наличие изменений оборудования.

Диагностика CryptoAPI 2.0

Диагностика CryptoAPI 2.0 доступна в версиях Windows, которые поддерживают CryptoAPI 2.0 и могут помочь в устранении неполадок инфраструктуры открытых ключей (PKI).

Диагностика CryptoAPI 2.0 регистрирует события в журнале событий Windows. Журналы содержат подробные сведения о проверке цепочки сертификатов, операциях хранилища сертификатов и проверке подписи. Эти сведения упрощают выявление причин проблем и сокращают время, необходимое для диагностики.

Дополнительные сведения о диагностике CryptoAPI 2.0 см. в разделе Устранение неполадок с PKI предприятия.

См. также

Технический справочник по смарт-карточкам