В этой статье описываются средства и службы, которые разработчики интеллектуальных карта могут использовать для выявления проблем с сертификатами при развертывании смарт-карта.
Для отладки и трассировки проблем интеллектуального карта требуются различные средства и подходы. В следующих разделах содержатся рекомендации по инструментам и подходам, которые можно использовать.
- Certutil
- Отладка и трассировка с помощью препроцессора трассировки программного обеспечения Windows (WPP)
- Протокол Kerberos, центр распространения ключей (KDC) и отладка и трассировка NTLM
- Служба смарт-карт
- Интеллектуальные средства чтения карта
- Диагностика CryptoAPI 2.0
Certutil
Полное описание Certutil, включая примеры его использования, см. в разделе Certutil [W2012].
Вывод списка сертификатов, доступных в смарт-карта
Чтобы получить список сертификатов, доступных в смарт-карта, введите certutil -scinfo .
Для этой операции ввод ПИН-кода не требуется. Если вам будет предложено ввести ПИН-код, можно нажать клавишу ESC.
Токены или смарт-карты не доступны. Как восстановить работу?
Удаление сертификатов в смарт-карта
Каждый сертификат заключен в контейнер. При удалении сертификата на смарт-карта удаляется контейнер для сертификата.
Чтобы найти значение контейнера, введите certutil -scinfo .
Чтобы удалить контейнер, введите certutil -delkey -csp «Поставщик шифрования смарт-карт Microsoft Base» «ContainerValue>».
Отладка и трассировка с помощью WPP
WPP упрощает трассировку работы поставщика трассировки. Он предоставляет механизм, позволяющий поставщику трассировки регистрировать двоичные сообщения в режиме реального времени. Зарегистрированные сообщения можно преобразовать в удобочитаемую трассировку операции. Дополнительные сведения см. в разделе Диагностика с помощью WPP — блог NDIS.
Включение трассировки
С помощью WPP используйте одну из следующих команд, чтобы включить трассировку:
Параметры, приведенные в следующей таблице, можно использовать.
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 start scardsvr -ets -p 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 используйте одну из следующих команд, чтобы остановить трассировку:
Примеры:
Чтобы остановить трассировку, выполните приведенные далее действия.
Отладка и трассировка протокола Kerberos, KDC и NTLM
Эти ресурсы можно использовать для устранения неполадок с этими протоколами и KDC:
- Советы по устранению неполадок Kerberos и LDAP.
- Комплект драйверов Windows (WDK) и средства отладки для Windows (WinDbg). Средство журнала трассировки в этом пакете SDK можно использовать для отладки ошибок проверки подлинности Kerberos.
Чтобы начать трассировку, можно использовать 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, выполните следующую команду:
Проверка подлинности Kerberos
Чтобы включить трассировку для проверки подлинности Kerberos, выполните следующую команду:
- tracelog.exe -kd -rt -start kerb -guid #6B510852-3583-4e2d-AFFE-A67F9F223438 -f .kerb.etl -flags 0x43 -ft 1
Чтобы остановить трассировку для проверки подлинности Kerberos, выполните следующую команду:
KDC
Чтобы включить трассировку для 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_MACHINESYSTEMCurrentControlSetControlLsaKerberosParameters
Имя значения: KerbDebugLevel
Тип значения: DWORD
Данные значения: c0000043
Если вы использовали Tracelog , найдите следующий файл журнала в текущем каталоге: kerb.etl/kdc.etl/ntlm.etl.
Если вы использовали параметры раздела реестра, показанные в предыдущей таблице, найдите файлы журнала трассировки в следующих расположениях:
- NTLM: %systemroot%tracingmsv1_0
- Kerberos: %systemroot%tracingkerberos
- KDC: %systemroot%tracingkdcsvc
Для декодирования файлов трассировки событий можно использовать Tracefmt (tracefmt.exe). Tracefmt — это программа командной строки, которая форматирует и отображает сообщения трассировки из файла журнала трассировки событий (ETL) или сеанса трассировки в реальном времени. Tracefmt может отображать сообщения в окне командной строки или сохранять их в текстовом файле. Он находится в подкаталоге toolstracing комплекта драйверов Windows (WDK). Дополнительные сведения см. в статье Tracefmt .
Служба смарт-карт
Интеллектуальная служба диспетчера ресурсов карта выполняется в контексте локальной службы. Он реализуется как общая служба процесса узла служб (svchost).
Проверка, запущена ли служба смарт-карт
- Нажмите клавиши CTRL+ALT+DEL, а затем выберите Запустить диспетчер задач.
- В диалоговом окне Диспетчер задач Windows выберите вкладку Службы .
- Выберите столбец Имя , чтобы отсортировать список в алфавитном порядке, а затем введите s.
- В столбце Имя найдите SCardSvr, а затем просмотрите столбец Состояние , чтобы узнать, запущена или остановлена служба.
Перезапуск службы смарт-карт
- Запустите от имени администратора в командной строке.
- Если появится диалоговое окно Контроль учетных записей пользователей, убедитесь, что отображается нужное действие, и нажмите кнопку Да.
- В командной строке введите net stop SCardSvr .
- В командной строке введите 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:>
Интеллектуальные средства чтения карта
Как и любое устройство, подключенное к компьютеру, диспетчер устройств можно использовать для просмотра свойств и начала процесса отладки.
Чтобы проверка, работает ли средство чтения интеллектуального карта
- Перейдите в раздел Компьютер.
- Щелкните правой кнопкой мыши Компьютер и выберите Свойства.
- В разделе Задачи выберите диспетчер устройств.
- В диспетчер устройств разверните узел Средства чтения смарт-карта, выберите имя средства чтения смарт-карта, которое вы хотите проверка, а затем выберите Свойства.
Если средство чтения смарт-карта отсутствует в списке диспетчер устройств, в меню Действие выберите Пункт Проверить наличие изменений оборудования.
Диагностика CryptoAPI 2.0
Диагностика CryptoAPI 2.0 доступна в версиях Windows, которые поддерживают CryptoAPI 2.0 и могут помочь в устранении неполадок инфраструктуры открытых ключей (PKI).
Диагностика CryptoAPI 2.0 регистрирует события в журнале событий Windows. Журналы содержат подробные сведения о проверке цепочки сертификатов, операциях хранилища сертификатов и проверке подписи. Эти сведения упрощают выявление причин проблем и сокращают время, необходимое для диагностики.
Дополнительные сведения о диагностике CryptoAPI 2.0 см. в разделе Устранение неполадок с PKI предприятия.
Источник: learn.microsoft.com
Нет доступа к системной службе «Смарт-карты»
В приложении «Панель управления Рутокен» на вкладке «Администрирование» отображается ошибка «Нет доступа к системной службе «Смарт-карты». Дальнейшая работа невозможна. Если вы подключены через службу Удаленных рабочих столов (RDP), смотрите подробности здесь».
Для решения проблемы требуются права администратора на ПК. Убедитесь, что они у вас есть. Если нет, попросите системного администратора настроить ПК.
Причина №1. Неправильно организовано подключение через «Удаленный рабочий стол» (RDP)
Настройте работу носителя и RDP по инструкции разработчика Рутокен.
Причина №2. Некорректно работает служба «Смарт-карта»
Причина №3. Повреждена операционная система
Попробуйте установить последний Service Pack либо обновить или переустановить операционную систему.
Источник: sbis.ru
Программа не видит смарт карту
Добрый день! Уважаемые читатели и подписчики IT блога Pyatilistnik.org. Последние два дня у меня была интересная задача по поиску решения на вот такую ситуацию, есть физический или виртуальный сервер, на нем установлена наверняка многим известная КриптоПРО. На сервер подключен USB ключ JaCarta, который используется для подписи документов для ВТБ24 ДБО.
Локально на Windows 10 все работает, а вот на серверной платформе Windows Server 2016 и 2012 R2, Криптопро не видит ключ JaCarta. Давайте разбираться в чем проблема и как ее поправить.
Описание окружения
Есть виртуальная машина на Vmware ESXi 6.5, в качестве операционной системы установлена Windows Server 2012 R2. На сервере стоит КриптоПРО 4.0.9944, последней версии на текущий момент. С сетевого USB хаба, по технологии USB over ip, подключен ключ JaCarta. Ключ в системе видится, а вот в КриптоПРО нет.
Алгоритм решения проблем с JaCarta
Как видно в утилите UTN Manager ключ подключен, он видится в системе в смарт картах в виде Microsoft Usbccid (WUDF) устройства, но вот CryptoPRO, этот контейнер не определяет и у вас нет возможности установить сертификат. Локально токен подключали, все было то же самое. Стали думать что сделать.
Возможные причины с определением контейнера
- Во первых, это проблема с драйверами, например, в Windows Server 2012 R2, JaCarta в идеале должна определяться в списке смарт карт как JaCarta Usbccid Smartcard, а не Microsoft Usbccid (WUDF)
- Во вторых если устройство видится как Microsoft Usbccid (WUDF), то версия драйверов может быть устаревшей, и из-за чего ваши утилиты будут не определять защищенный USB носитель.
- Устарелая версия CryptoPRO
Как решить проблему, что криптопро не видит USB ключ?
Создали новую виртуальную машину и стали ставить софт все последовательно.
Перед установкой любого программного обеспечения работающего с USB носителями на которых находятся сертификаты и закрытые ключи. Нужно ОБЯЗАТЕЛЬНО отключить токен, если воткнут локально, то отключаем его, если по сети, разрываем сессию
- Первым делом обновляем вашу операционную систему, всеми доступными обновлениями, так как Microsoft исправляет много ошибок и багов, в том числе и драйверами.
- Вторым пунктом является, в случае с физическим сервером, установить все свежие драйвера на материнскую плату и все периферийное оборудование.
- Далее устанавливаете Единый Клиент JaCarta.
- Устанавливаете свежую версию КриптоПРО
Установка единого клиента JaCarta PKI
Единый Клиент JaCarta — это специальная утилита от компании «Аладдин», для правильной работы с токенами JaCarta. Загрузить последнюю версию, данного программного продукта, вы можете с официального сайта, или у меня с облака, если вдруг, не получиться с сайта производителя.
Официальный сайт: https://www.aladdin-rd.ru/support/downloads/87d06960-71a6-4fc0-853f-31c518fc1e2d
Далее полученный архив вы распаковываете и запускаете установочный файл, под свою архитектуру Windows, у меня это 64-х битная. Приступаем к установке Jacarta драйвера. Единый клиент Jacarta, ставится очень просто (НАПОМИНАЮ ваш токен в момент инсталляции, должен быть отключен). На первом окне мастера установки, просто нажимаем далее.
Принимаем лицензионное соглашение и нажимаем «Далее»
Чтобы драйвера токенов JaCarta у вас работали корректно, достаточно выполнить стандартную установку.
Если выберете «Выборочную установку», то обязательно установите галки:
- Драйверы JaCarta
- Модули поддержки
- Модуль поддержки для КриптоПРО
Далее нажимаем «Установить».
Через пару секунд, Единый клиент Jacarta, успешно установлен.
Обязательно произведите перезагрузку сервера или компьютера, чтобы система увидела свежие драйвера.
Установка КриптоПРО
После установки JaCarta PKI, нужно установить КриптоПРО, для этого заходите на официальный сайт.
https://www.cryptopro.ru/downloads
На текущий момент самая последняя версия КриптоПро CSP 4.0.9944. Запускаем установщик, оставляем галку «Установить корневые сертификаты» и нажимаем «Установить (Рекомендуется)»
Инсталляция КриптоПРО будет выполнена в фоновом режиме, после которой вы увидите предложение, о перезагрузке браузера, но я вам советую полностью перезагрузиться.
После перезагрузки подключайте ваш USB токен JaCarta. У меня подключение идет по сети, с устройства DIGI, через клиента Anywhere View. В клиенте Anywhere View, мой USB носитель Jacarta, успешно определен, но как Microsoft Usbccid (WUDF), а в идеале должен определиться как JaCarta Usbccid Smartcard, но нужно в любом случае проверить, так как все может работать и так.
Открыв утилиту «Единый клиент Jacarta PKI», подключенного токена обнаружено не было, значит, что-то с драйверами.
Microsoft Usbccid (WUDF) — это стандартный драйвер Microsoft, который по умолчанию устанавливается на различные токены, и бывает, что все работает, но не всегда. Операционная система Windows по умолчанию, ставит их в виду своей архитектуры и настройки, мне вот лично в данный момент такое не нужно. Что делаем, нам нужно удалить драйвера Microsoft Usbccid (WUDF) и установить драйвера для носителя Jacarta.
Откройте диспетчер устройств Windows, найдите пункт «Считыватели устройств смарт-карт (Smart card readers)» щелкните по Microsoft Usbccid (WUDF) и выберите пункт «Свойства». Перейдите на вкладку «Драйвера» и нажмите удалить (Uninstall)
Согласитесь с удалением драйвера Microsoft Usbccid (WUDF).
Вас уведомят, что для вступления изменений в силу, необходима перезагрузка системы, обязательно соглашаемся.
После перезагрузки системы, вы можете увидеть установку устройства и драйверов ARDS Jacarta.
Откройте диспетчер устройств, вы должны увидеть, что теперь ваше устройство определено, как JaCarta Usbccid Smartcar и если зайти в его свойства, то вы увидите, что смарт карта jacarta, теперь использует драйвер версии 6.1.7601 от ALADDIN R.D.ZAO, так и должно быть.
В диспетчере устройств вы можете увидеть вот такие ошибки:
- не удалось запустить это устройство код 19
- не удалось запустить это устройство код 28
- не удалось запустить это устройство код 10
Если открыть единый клиент Jacarta, то вы увидите свою электронную подпись, это означает, что смарт карта нормально определилась.
Открываем CryptoPRO, и видим, что криптопро не видит сертификат в контейнере, хотя все драйвера определились как нужно. Есть еще одна фишка.
- В RDP сессии вы не увидите свой токен, только локально, уж такая работа токена, либо я не нашел как это поправить. Вы можете попробовать выполнить рекомендации по устранению ошибки «Не возможно подключиться к службе управления смарт-картами».
- Нужно снять одну галку в CryptoPRO
ОБЯЗАТЕЛЬНО снимите галку «Не использовать устаревшие cipher suite-ы» и перезагрузитесь.
После этих манипуляций у меня КриптоПРО увидел сертификат и смарт карта jacarta стала рабочей, можно подписывать документы.
Еще можете в устройствах и принтерах, увидеть ваше устройство JaCarta,
Если у вас как и у меня, токен jacarta установлен в виртуальной машине, то вам придется устанавливать сертификат, через console виртуальной машины, и так же дать на нее права ответственному человеку. Если это физический сервер, то там придется давать права на порт управления, в котором так же есть виртуальная консоль.
Не возможно подключиться к службе управления смарт-картами
Когда вы установили все драйвера для токенов Jacarta, вы можете увидеть при подключении по RDP и открытии утилиты «Единый клиент Jacarta PKI» вот такое сообщение с ошибкой:
Не возможно подключиться к службе управления смарт-картами
- Не запущена служба смарт-карт на локальной машине. Архитектурой RDP-сессии, разработанной Microsoft, не предусмотрено использование ключевых носителей, подключенных к удалённому компьютеру, поэтому в RDP-сессии удалённый компьютер использует службу смарт-карт локального компьютера. Из этого следует что, запуска службы смарт-карт внутри RDP-сессии недостаточно для нормальной работы.
- Служба управления смарт-картами на локальном компьютере запущена, но недоступна для программы внутри RDP-сессии из-за настроек Windows и/или RDP-клиента.
Как исправить ошибку «Не возможно подключиться к службе управления смарт-картами».
- Запустите службу смарт-карт на локальной машине, с которой вы инициируете сеанс удалённого доступа. Настройте её автоматический запуск при старте компьютера.
- Разрешите использование локальных устройств и ресурсов во время удалённого сеанса (в частности, смарт-карт). Для этого, в диалоге «Подключение к удалённому рабочему столу» в параметрах выберите вкладку «Локальные ресурсы», далее в группе «Локальные устройства и ресурсы» нажмите кнопку «Подробнее…», а в открывшемся диалоге выберите пункт «Смарт-карты» и нажмите «ОК», затем «Подключить».
- Убедитесь в сохранности настроек RDP-подключения. По умолчанию они сохраняются в файле Default.rdp в каталоге «Мои Документы» Проследите, чтобы в данном файле присутствовала строчка «redirectsmartcards:i:1».
- Убедитесь в том, что на удалённом компьютере, к которому вы осуществляете RDP-подключение, не активирована групповая политика
[Computer ConfigurationAdministrative TemplatesWindows ComponentsTerminal ServicesClientServer data redirectionDo not allow smart card device redirection] -[Конфигурация компьютераадминистративные шаблоныкомпоненты windowsслужбы удалённых рабочих столовузел сеансов удалённых рабочих столовперенаправление устройств и ресурсовНе разрешать перенаправление устройства чтения смарт-карт]. Если она включена (Enabled), то отключите её, и перегрузите компьютер. - Если у вас установлена Windows 7 SP1 или Windows 2008 R2 SP1 и вы используете RDC 8.1 для соединения с компьютерами под управлением Windows 8 и выше, то вам необходимо установить обновление для операционной системы https://support.microsoft.com/en-us/kb/2913751
Вот такой вот был траблшутинг по настройке токена Jacarta, КриптоПРО на терминальном сервере, для подписи документов в ВТБ24 ДБО. Если есть замечания или поправки, то пишите их в комментариях.
Популярные Похожие записи:
Не установлен драйвер (код 28) у SafeNEt USB SuperPRO
- Не подключается USB ключ в SEH UTN Manager
Не работает Nic Teaming на картах Broadcom NetXtreme E-Series
- Экспорт и импорт сертификата Windows
- Автозагрузка в windows server 2012-2016
Ошибка UTN driver error (31)
3 Responses to Криптопро не видит ключ JaCarta, решаем за минуту
Всё делаю по Вашей статье. НО! Драйвер не определяется как ARDS JaCarta. Может быть подскажете что делать?
Источник: pyatilistnik.org