Выбор читателей
Популярные статьи
Добрый день!. Последние два дня у меня была интересная задача по поиску решения на вот такую ситуацию, есть физический или виртуальный сервер, на нем установлена наверняка многим известная КриптоПРО. На сервер подключен , который используется для подписи документов для ВТБ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. Ключ в системе видится , а вот в КриптоПРО нет.
КриптоПРО очень часто вызывает различные ошибки в Windows, простой пример (Windows installer service could not be accessed). Вот так вот выглядит ситуация, когда утилита КриптоПРО не видит сертификат в контейнере.
Как видно в утилите UTN Manager ключ подключен, он видится в системе в смарт картах в виде Microsoft Usbccid (WUDF) устройства, но вот CryptoPRO, этот контейнер не определяет и у вас нет возможности установить сертификат. Локально токен подключали, все было то же самое. Стали думать что сделать.
Создали новую виртуальную машину и стали ставить софт все последовательно.
Перед установкой любого программного обеспечения работающего с USB носителями на которых находятся сертификаты и закрытые ключи. Нужно ОБЯЗАТЕЛЬНО отключить токен, если воткнут локально, то отключаем его, если по сети, разрываем сессию
Единый Клиент JaCarta - это специальная утилита от компании "Аладдин", для правильной работы с токенами JaCarta. Загрузить последнюю версию, данного программного продукта, вы можете с официального сайта, или у меня с облака, если вдруг, не получиться с сайта производителя.
Далее полученный архив вы распаковываете и запускаете установочный файл, под свою архитектуру Windows , у меня это 64-х битная. Приступаем к установке Jacarta драйвера. Единый клиент Jacarta, ставится очень просто (НАПОМИНАЮ ваш токен в момент инсталляции, должен быть отключен). На первом окне мастера установки, просто нажимаем далее.
Принимаем лицензионное соглашение и нажимаем "Далее"
Чтобы драйвера токенов JaCarta у вас работали корректно, достаточно выполнить стандартную установку.
Если выберете "Выборочную установку", то обязательно установите галки:
Через пару секунд, Единый клиент Jacarta, успешно установлен.
Обязательно произведите перезагрузку сервера или компьютера, чтобы система увидела свежие драйвера.
После установки JaCarta PKI, нужно установить КриптоПРО, для этого заходите на официальный сайт.
https://www.cryptopro.ru/downloads
На текущий момент самая последняя версия КриптоПро CSP 4.0.9944. Запускаем установщик, оставляем галку "Установить корневые сертификаты" и нажимаем "Установить (Рекомендуется)"
Инсталляция КриптоПРО будет выполнена в фоновом режиме, после которой вы увидите предложение, о перезагрузке браузера, но я вам советую полностью перезагрузиться.
После перезагрузки подключайте ваш USB токен JaCarta. У меня подключение идет по сети, с устройства DIGI, через . В клиенте 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, так и должно быть.
Если открыть единый клиент Jacarta, то вы увидите свою электронную подпись, это означает, что смарт карта нормально определилась.
Открываем CryptoPRO, и видим, что криптопро не видит сертификат в контейнере, хотя все драйвера определились как нужно. Есть еще одна фишка.
ОБЯЗАТЕЛЬНО снимите галку "Не использовать устаревшие cipher suite-ы" и перезагрузитесь .
После этих манипуляций у меня КриптоПРО увидел сертификат и смарт карта jacarta стала рабочей, можно подписывать документы.
Еще можете в устройствах и принтерах, увидеть ваше устройство JaCarta,
Если у вас как и у меня, токен jacarta установлен в виртуальной машине, то вам придется устанавливать сертификат, через console виртуальной машины, и так же дать на нее права ответственному человеку. Если это физический сервер, то там придется давать права на порт управления , в котором так же есть виртуальная консоль.
Когда вы установили все драйвера для токенов Jacarta, вы можете увидеть при подключении по RDP и открытии утилиты "Единый клиент Jacarta PKI" вот такое сообщение с ошибкой:
Как исправить ошибку "Не возможно подключиться к службе управления смарт-картами".
Вот такой вот был траблшутинг по настройке токена Jacarta, КриптоПРО на терминальном сервере, для подписи документов в ВТБ24 ДБО. Если есть замечания или поправки, то пишите их в комментариях.
Все функции из реализации стандарта PKCS#11 возвращают различные коды ошибок. Все возвращаемые коды ошибок делятся на две большие группы:
Все функции из реализации стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).
Все функции из реализации расширения стандарта PKCS#11 возвращают специальные коды ошибок (определяются производителем).
В силу особенностей реализации библиотек rtPKCS11 и rtPKCS11ECP некоторые стандартные функции могут вернуть стандартный код ошибки PKCS#11, не входящий в список допустимых для данной функции. Подобная ситуация является исключением. Стандартные коды ошибок, возвращаемые каждой функцией в исключительных ситуациях, перечислены в описании для каждой функции отдельно.
В таблице 2.29 приведен список кодов ошибок стандарта PKCS#11 и их описаний, поддерживаемых устройствами Рутокен. Подробную информацию по каждому коду ошибки можно найти в стандарте (английский язык) или приложении (русский язык).
Таблица 2.29 . Коды ошибок стандарта
Код ошибки | Описание |
CKR_ARGUMENTS_BAD | Недопустимый аргумент |
CKR_ATTRIBUTE_READ_ONLY | Невозможно установить или изменить значение атрибута приложением |
CKR_ATTRIBUTE_SENSITIVE | Атрибут недоступен для чтения |
CKR_ATTRIBUTE_TYPE_INVALID | Некорректный тип атрибута |
CKR_ATTRIBUTE_VALUE_INVALID | Некорректное значение атрибута |
CKR_BUFFER_TOO_SMALL | Размер заданного буфера является недостаточным для вывода результатов выполнения функции |
Библиотека не поддерживает блокировку для защиты потоков; возвращается только при вызове функции C_Initialize |
|
CKR_CRYPTOKI_ALREADY_INITIALIZED | Библиотека уже инициализирована (предыдущий вызов функции C_Initialize не был сопровожден соответствующим вызовом функции С_Finalize ); возвращается только при вызове функции C_Initialize |
CKR_CRYPTOKI_NOT_INITIALIZED | Выполнение функции невозможно, так как библиотека не инициализирована; возвращается только при вызове любой функции, за исключением C_Initialize иС_Finalize |
CKR_DATA_INVALID | Некорректные входные данные для выполнения криптографической операции |
CKR_DATA_LEN_RANGE | Входные данные имеют некорректный размер для выполнения криптографической операции |
CKR_DEVICE_ERROR | Ошибка при обращении к токену или слоту |
CKR_DEVICE_MEMORY | Недостаточно памяти токена для выполнения запрошенной функции |
CKR_DEVICE_REMOVED | Токен был удален из слота во время выполнения функции |
CKR_DOMAIN_PARAMS_INVALID | Функции переданы некорректные или не поддерживаемые параметры домена |
CKR_ENCRYPTED_DATA_INVALID | Для операции расшифрования переданы некорректно зашифрованные данные |
CKR_ENCRYPTED_DATA_LEN_RANGE | Для операции расшифрования переданы зашифрованные данные некорректного размера |
CKR_FUNCTION_CANCELED | Выполнение функции было прервано |
CKR_FUNCTION_FAILED | При выполнении функции возник сбой |
CKR_FUNCTION_NOT_SUPPORTED | Запрашиваемая функция не поддерживается библиотекой |
CKR_FUNCTION_REJECTED | Запрос на подпись был отклонен пользователем |
CKR_GENERAL_ERROR | Критическая ошибка, связанная с аппаратным обеспечением |
Недостаточно памяти для выполнения функции на рабочей станции, где установлена библиотека |
|
CKR_KEY_FUNCTION_NOT_PERMITTED | Атрибуты ключа не позволяют выполнить операцию |
CKR_KEY_HANDLE_INVALID | Функции передан некорректный идентификатор (хэндл) ключа |
CKR_KEY_NOT_WRAPPABLE | Невозможно зашифровать ключ |
CKR_KEY_SIZE_RANGE | Недопустимый размер ключа |
CKR_KEY_TYPE_INCONSISTENT | Тип ключа не соответствует данному механизму |
CKR_KEY_UNEXTRACTABLE | Невозможно зашифровать ключ, так как атрибут CKA_UNEXTRACTABLE установлен в значение CK_TRUE |
CKR_MECHANISM_INVALID | Указан неправильный механизм для выполнения криптографической операции |
CKR_MECHANISM_PARAM_INVALID | Указаны неправильные параметры механизма для выполнения криптографической операции |
CKR_NEED_TO_CREATE_THREADS | Программа не поддерживает внутренних методов операционной системы для создания новых потоков |
CKR_OBJECT_HANDLE_INVALID | Функции передан некорректный идентификатор (хэндл) объекта |
CKR_OPERATION_ACTIVE | Выполнение операции невозможно, поскольку такая операция уже выполняется |
CKR_OPERATION_NOT_INITIALIZED | Невозможно выполнить операцию в этой сессии |
Срок действия PIN-кода истек |
|
CKR_PIN_INCORRECT | Функции передан PIN-код, который не соответствует тому, который сохранен на токене |
Значение PIN-кода содержит недопустимые символы |
|
CKR_PIN_LEN_RANGE | Недопустимая длина PIN-кода |
CKR_RANDOM_NO_RNG | Данный токен не поддерживает генерацию случайных чисел |
CKR_SESSION_CLOSED | Сессия была закрыта во время выполнения функции |
CKR_SESSION_COUNT | Достигнуто предельное количество открытых сессий для данного токена |
CKR_SESSION_EXISTS | Сессия с токеном уже открыта и поэтому токен не может быть инициализирован |
CKR_SESSION_HANDLE_INVALID | Функции передан некорректный идентификатор (хэндл) сеанса |
CKR_SESSION_PARALLEL_NOT_SUPPORTED | Данный токен не поддерживает параллельные сессии |
CKR_SESSION_READ_ONLY | Невозможно выполнить действие, поскольку это сессия R/O |
CKR_SESSION_READ_WRITE_SO_EXISTS | Уже открыта сессия R/W, поэтому открыть сессию R/O невозможно |
CKR_SIGNATURE_INVALID | Неверное значение ЭЦП |
CKR_SIGNATURE_LEN_RANGE | Значение ЭЦП неверно по длине |
CKR_SLOT_ID_INVALID | Слота с данным ID не существует |
CKR_TEMPLATE_INCOMPLETE | Для создания объекта недостаточно атрибутов |
CKR_TEMPLATE_INCONSISTENT | Заданные атрибуты противоречат друг другу |
CKR_TOKEN_NOT_PRESENT | Токен отсутствует в слоте во время вызова функции |
CKR_UNWRAPPING_KEY_HANDLE_INVALID | Функции передан некорректный идентификатор (хэндл) ключа дешифрования |
CKR_UNWRAPPING_KEY_SIZE_RANGE | Недопустимый размер ключа дешифрования |
CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT | Тип ключа дешифрования не соответствует данному механизму |
CKR_USER_ALREADY_LOGGED_IN | |
CKR_USER_ANOTHER_ALREADY_LOGGED_IN | |
CKR_USER_NOT_LOGGED_IN | |
CKR_USER_PIN_NOT_INITIALIZED | Не инициализирован PIN-код пользователя |
CKR_USER_TOO_MANY_TYPES | |
CKR_USER_TYPE_INVALID | Задан некорректный тип пользователя |
CKR_WRAPPED_KEY_INVALID | Задан некорректный зашифрованный ключ |
CKR_WRAPPED_KEY_LEN_RANGE | Задана некорректная длина зашифрованного ключа |
CKR_WRAPPING_KEY_HANDLE_INVALID | Функции передан некорректный идентификатор (хэндл) ключа шифрования |
CKR_WRAPPING_KEY_SIZE_RANGE | Недопустимый размер ключа шифрования |
CKR_WRAPPING_KEY_TYPE_INCONSISTENT | Тип ключа шифрования не соответствует данному механизму |
В таблице 2.30 приведен список всех расширенных кодов ошибок стандарта PKCS #11 вместе с их описанием. Расширенные коды ошибок могут возвращать как стандартные функции, так и функции расширения.
Таблица 2.30 . Коды ошибок стандарта PKCS #11, поддерживаемые устройствами Рутокен
Код ошибки | Описание |
CKR_CORRUPTED_MAPFILE | Данная ошибка возвращается при повреждении MAP-файла (при считывании MAP-файла было обнаружено, что тег заголовка MAP-файла (2 байта) является недопустимым) |
CKR_RTPKCS11_DATA_CORRUPTED | Данная ошибка возвращается, если было обнаружено нарушение целостности данных на токене (при считывании файла, содержащего объект PKCS#11, было обнаружено, что тег заголовка объекта (2 байта) является недопустимым) |
CKR_WRONG_VERSION_FIELD | Данная ошибка возвращается, если файл, содержащий объект PKCS#11, имеет некорректную версию (при считывании любого файла (MAP-файла или файла, содержащего объект PKCS#11) было обнаружено, что версия заголовка (4 байта) является недопустимой) |
CKR_WRONG_ PKCS1_ ENCODING | Данная ошибка возвращается, если расшифрованное сообщение имеет некорректную форму |
CKR_RTPKCS11_RSF_DATA_CORRUPTED | Данная ошибка возвращается, если попытка использовать RSF-файл завершилась неудачей |
Описание проблемы. Для работы с ЕГАИС используется носитель JaCarta PKI/ГОСТ/SE. Часто один из разделов блокируется (раздел PKI). В этом случае дальнейшая работа с ЕГАИС невозможна.
Причина блокировки – частое обращение универсального транспортного модуля к носителю JaCarta. При десяти неудачных попытках авторизации, носитель блокирует раздел и исключает дальнейшую работу.
Решить проблему можно двумя способами:
Инструкция на примере Microsoft Windows 10.
В меню «Пуск» найдите приложение «Единый клиент JaCarta» и откройте его.
Рис. 1. Единый клиент JaCarta
Откроется рабочая область программы.
Рис. 2. Переключение в режим администрирования
Откроется рабочая область программы. Если раздел PKI заблокирован, вкладка PKI будет красной.
Рис. 3. Информация о токене
Чтобы понять, что раздел PKI действительно заблокирован, нажмите во вкладке «Информация о токене» на ссылку «Полная информация…».
Откроется «Подробная информация о токене». В новом окне найдите раздел «Информация о приложении PKI». Если статус в строке «PIN-код» - «Заблокирован», то закройте окно и перейдите к следующему пункту инструкции.
Рис. 4. Подробная информация о токене
Перейдите на вкладку «PKI». В панели «Операции с приложением» выберите пункт «Разблокировать PIN-код пользователя…».
Откроется окно «Разблокировка PIN-кода пользователя», в котором укажите:
Рис. 6. Разблокировка PIN-кода пользователя
После указания PIN-кодов, нажмите «Выполнить».
Если все введено корректно, появится уведомление. Нажмите «ОК» для завершения.
Рис. 7. Уведомление об успешной разблокировке
Перейдите на вкладку «Информация о токене» и нажмите на ссылку «Полная информация» для проверки текущего статуса приложения PKI. Статус должен быть «Установлен».
Рис. 8. Проверка статуса
Если статус изменился, разблокировка завершена.
Носитель Jacarta PKI/ГОСТ блокируется при многочисленных попытках ввести неверный пин-код. При этом теряется связь с сервером ФСРАР, и данные о фактурах не поступают в вашу учетную систему. Как быстро разблокировать ключ и восстановить работу с ЕГАИС?
По умолчанию на всех новых носителях установлены следующие пароли:
PKI | 11 11 11 11 |
Администратор PKI | 00 00 00 00 |
ГОСТ | 0987654321 |
Администратор ГОСТ | 1234567890 |
Для снятия блокировки на компьютере должна быть установлена программа Единый клиент Jacarta. Если настройка и установка ЕГАИС производилась нашими специалистами, то эта программа у вас уже есть.
Запустите программу и дождитесь, когда в окне Единого клиента появится информация о носителе Jacarta PKI/ГОСТ.
В разделе ГОСТ записан сертификат КЭП, выданный в удостоверяющем центре. Будьте внимательны - нельзя удалять из этого раздела какие-либо компоненты. После удаления придется повторно обращаться в удостоверяющий центр для выпуска ключа.
Чтобы разблокировать пин-код ГОСТ, в верхнем меню “Операции с приложением” выберите первый пункт “Разблокировать PIN-код пользователя”. На экране появится уведомление, что снятие блокировки обнулит счетчик ошибочных попыток ввода.
Нажмите “ОК” и во вновь открывшемся окне введите пин-код администратора Jacarta ГОСТ 1234567890. После обнуления счетчика ошибок введите стандартный пин-код пользователя ГОСТ 0987654321.
Важно: эта процедура поможет только скинуть счетчик, но не изменить забытый пароль на новый. Если вы изменили пароль ГОСТ, установленный по умолчанию, и забыли его, придется проводить инициализацию и вновь записывать ключ в удостоверяющем центре.
В контейнере PKI записан RSA-ключ, который генерируется в личном кабинете на сайте egais.ru. В случае утери пин-кода этот раздел может быть инициализирован (полностью очищен), так как вы можете повторно записать ключ самостоятельно и бесплатно, без обращения в удостоверяющий центр.
Статьи по теме: | |
Как настроить выключение компьютера?
На дворе 21-й век и сейчас мало кто выключает компьютер перед тем как... Как сохранить набранный текст
Большинство знакомых мне интернет-маркетологов неохотно пишут тексты. Их... Юань стал новой резервной валютой мвф
С 1 октября 2016 года в мире начали официально действовать уже не... |