Перейти к содержимому

Режимы работы

USB-токены и смарт-карты JaCartaAPI и SDKUSB-токены и смарт-карты JaCarta

Набор доступных функций и возможность доступа к закрытым объектам в памяти поддерживаемого библиотекой устройства зависят от текущего режима работы.

Библиотека jcPKCS11-2 может работать в трёх режимах:

  • Гость;
  • Пользователь;
  • Администратор.

Основным режимом работы устройства является режим пользователя.

По умолчанию работа идет в гостевом режиме, не требующем введения PIN-кода. Объекты, доступные в этом режиме, называются открытыми. Открытые объекты доступны и в остальных режимах. Закрытые объекты доступны только в режиме пользователя.

Для включения режима пользователя необходимо предъявить PIN-код пользователя, а для включения режима администратора – PIN-код администратора (см. C_Login()).

Для защиты от несанкционированного доступа в JaCarta® предусмотрены счётчики, регистрирующие количество последовательно введённых неверных значений PIN-кода. При достижении максимально допустимого числа неудачных попыток ввода (до 15-ти), PIN-код блокируется и соответствующий ему режим становится недоступным. PIN-код пользователя может быть разблокирован (см. Разблокирование PIN-кода пользователя).

Если устройство было заблокировано на уровне администратора (счётчик неудачных попыток ввода ПИН-кода администратора достиг максимального значения), или пользователь и администратор заблокированы вместе, то можно выполнить сброс устройства, при котором будут удалены все объекты и ПИН-коды, и их можно будет выставить заново. В зависимости от типа приложения, поведение устройства будет разниться (см. Режим сброса).

В гостевом режиме доступны функции, не связанные с обращением к закрытым объектам и выполнением криптографических преобразований. Режим гостя обычно используется для получения общей информации об электронном ключе (см. C_GetTokenInfo()) и для чтения открытых объектов, например, сертификатов (см. C_GetAttributeValue()).

В режиме пользователя доступны основные функции библиотеки, а также операции с открытыми и закрытыми объектами и с PIN-кодом пользователя. Для работы в режиме пользователя необходимо предъявить PIN-код пользователя (см. C_Login()). При этом PIN-код пользователя должен быть инициализирован администратором.

Приложение GOST версий 2.5.5: Инициализация приложения не поддерживается. Согласно правилам пользования, данная операция должна выполняться с использованием ПО “АРМ Администратора Безопасности”.

Для облегчения процесса интеграции в прикладное ПО в ходе работ по разработке и тестированию допускается использовать “АРМ разработчика”, входящего в состав комплекта разработчика JaCarta SDK.

Приложение Biomanager: Инициализация приложения Biomanager не поддерживается. Вместо этого необходимо пользоваться функцией сброса к заводским настройкам JC_BIO_MANAGER_ResetToFactorySettings

Все остальные приложения: Инициализация приложения предполагает:

  • удаление хранящихся в памяти объектов (повторное создание файловой системы);
  • удаление значения PIN-кода пользователя;
  • сохранение значения PIN-кода администратора.

В момент инициализации устройству присваивается метка – строковое значение, используемое для идентификации устройства. Подробнее об инициализации см. C_InitToken().

Для работы с устройством после инициализации необходимо выполнить инициализацию PIN-кода пользователя.

Приложение GOST версий 2.5.5:

Инициализация PIN-кода пользователя приложения не поддерживается.

Согласно правилам пользования, данная операция должна выполняться с использованием ПО “АРМ Администратора Безопасности”.

Для облегчения процесса интеграции в прикладное ПО в ходе работ по разработке и тестированию допускается использовать “АРМ разработчика”, входящего в состав комплекта разработчика JaCarta SDK.

Приложение Biomanager: Инициализация PIN-кода пользователя для приложения Biomanager не применима.

Все остальные приложения:

Инициализация PIN-кода пользователя – это назначение администратором PIN-кода пользователя после инициализации приложения. Операция осуществляется только в режиме администратора (см. C_InitPIN()).

PIN-код пользователя блокируется, когда превышается число допустимых попыток его ввода (до 10 или 15, в зависимости от апплета).

Приложение GOST версий 2.5.5: Для приложения GOST версий 2.5.5 предусмотрено несколько вариантов разблокировки PIN-кода пользователя:

  • С помощью PUK-кода. Необходимо предъявить PUK-код с типом пользователя CKU_PUK (см. C_Login()). При этом будет сброшен счетчик неудачных попыток ввода PIN-кода пользователя, а его значение останется прежним. Задание и разблокировка PUK-кода осуществляется при помощи ПО “АРМ Администратора Безопасности” или “АРМ разработчика”;

  • С помощью ПО “АРМ Администратора Безопасности” или “АРМ разработчика”;

Приложение PKI: Для разблокировки приложения PKI необходимо из под администратора вызвать функцию JC_PKI_UnlockUserPIN().

Приложения GOST версии 2.5.13 и LT: Необходимо предъявить PIN-код администратора (см. C_Login()). При этом будет сброшен счетчик неудачных попыток ввода PIN-кода пользователя, а его значение останется прежним.

Приложение Biomanager: Для разблокировки неудачных попыток прохождения биометрической идентификации, используется функция JC_BIO_MANAGER_Unlock

Разблокирование PIN-кода администратора не доступно (см. Инициализация приложения).

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

Приложение PKI: Для полной очистки памяти необходимо воспользоваться функцией JC_PKI_WipeCard().

Приложение GOST: Начиная с версии 2.5.13 появилась возможность предъявить ПИН сброса к заводским настройкам. Необходимо вызвать функцию C_Login() с типом пользователя JC_KT2_PIN_TYPE_FACTORY_RESET.

Если устройство было заблокировано на уровне администратора (счётчик неудачных попыток ввода ПИН-кода администратора достиг максимального значения), или пользователь и администратор заблокированы вместе (счётчики неудачных попыток ввода ПИН-кода пользователя и администратора достигли максимального значения), то можно выполнить сброс устройства, при котором будут удалены все объекты и ПИН-коды, и их можно будет выставить заново. В зависимости от типа приложения, поведение устройства будет разниться.

PIN-код форматирования (сброса к заводским настройкам) используется для сброса всех настроек приложения GOST версии 2.5.13 до заводских, а также удаления всех данных.

Установка, смена, удаление: Установка, смена, удаление PIN-кода форматирования должна проводиться Администратором Безопасности на “АРМ Aдминистратора Безопасности”.

Предъявление PIN-кода форматирования: PIN-код форматирования предъявляется с помощью функции C_Login() с параметром userType равном JC_KT2_PIN_TYPE_FACTORY_RESET. При этом будет включена гостевая сессия, память очищена, а все настройки сброшены до заводских.

После сброса, с приложением можно будет работать как обычно. По умолчанию ПИН-код форматирования установлен в значение 0801378717.

Для полной очистки памяти вызовите функцию JC_PKI_WipeCard(). Затем инициализируйте токен функцией C_InitToken(), передав новый ПИН-код Администратора. Установите ПИН-код Пользователя с помощью функции C_InitPIN().

Примечание

Новый ПИН-код Администратора может также быть задан с помощью функции JC_PKI_SetComplexity() путём заполнения полей NewAdminPinLength, *NewAdminPin * структуры JC_PKI_PERSONALIZATION_INFO. Для завершения процесса нужно вызвать функцию C_InitToken(). При этом параметр pPin в C_InitToken() игнорируется - вместо него используется ПИН-код, установленный через JC_PKI_SetComplexity().

Для полной очистки токена необходимо выполнить инициализацию с помощью функции C_InitToken(), указав ПИН-код Администратора. После инициализации токена ПИН-код Пользователя автоматически устанавливается в значение, совпадающее с ПИН-кодом Администратора. Изменить ПИН-код пользователя на требуемый можно с помощью функции C_SetPIN(), предварительно открыв сессию функцией C_OpenSession().

По умолчанию ПИН-код Администратора установлен в значение 87654321.

Функция C_InitPIN() не поддерживается и возвращает ошибку CKR_FUNCTION_NOT_SUPPORTED.

Для сброса приложения и возврата к заводским настройкам, воспользуйтесь функцией JC_BIO_MANAGER_ResetToFactorySettings