Структура

JaCarta OS USB-токена JaCarta SF/ГОСТ включает в себя следующие компоненты:

  • ядро;
  • библиотеку драйверов LPC Lib;
  • библиотеку уровня аппаратной абстракции, включающую в себя библиотеки для управления
    • USB-интерфейсом;
    • микроконтроллером смарт-карты;
    • периферийными устройствами;
  • специальный процесс JaCarta OS.

Ядро и библиотеки драйверов и уровня аппаратной абстракции составляют базовую часть JaCarta OS. Специальный процесс JaCarta OS (App) при своей работе взаимодействует с базовой частью JaCarta OS, а именно с библиотекой уровня аппаратной абстракции.

Ядро и библиотеки драйверов и уровня аппаратной абстракции составляют базовую часть JaCarta OS

Специальный процесс JaCarta OS

Специальный процесс содержит логику реализации функционального назначения JaCarta OS.

В состав специального процесса JaCarta OS входят следующие модули:

  1. фильтр APDU-команд (Firewall);
  2. диспетчер APDU-команд;
  3. служебный апплет;
  4. виртуальный апплет;
  5. авторизационный апплет;
  6. блок служебных функций специального процесса.

Специальный процесс JaCarta OS

Фильтр APDU-команд

Фильтр APDU-команд (Firewall) выполняет блокировку APDU-команд, не отвечающих критериям, которые задаются специальными масками.

Диспетчер APDU-команд

Диспетчер APDU-команд осуществляет маршрутизацию APDU-команд к апплету, функционирующему в рамках специального процесса JaCarta, либо в составе СКЗИ "Криптотокен 2 ЭП".

Маршрутизация APDU-команд осуществляется по принципу триггера с множеством устойчивых состояний.

Служебный апплет

Служебный апплет выполняет следующие функции:

  • запись блока конфигурационных данных о USB-токене в процессе его производства;
  • получение конфигурационных данных о USB-токене в процессе его эксплуатации;
  • получение дополнительной служебной и эксплуатационной информации о USB-токене:
    • номера версии апплета;
    • размера блока конфигурационных данных;
    • объёма свободной памяти ЭСППЗУ на микроконтроллере смарт-карты USB-токена;
  • получение значений эксплуатационных параметров JaCarta SF/ГОСТ:
    • номера этапа жизненного цикла карты памяти;
    • счётчика подключений JaCarta SF/ГОСТ к порту USB;
    • счётчика прерванных APDU-команд;
    • счётчика невыполненных APDU-команд "Отключить скрытые разделы";
    • счётчика общего времени работы JaCarta SF/ГОСТ;
    • версии JaCarta OS;
    • кода последней ошибки, сохранённого в оперативной памяти JaCarta SF/ГОСТ;
  • получение информации об ЭСППЗУ ведущего микроконтроллера, в частности следующих значений
    • полного размера доступного ЭСППЗУ;
    • текущего смещения используемой на данный момент ячейки памяти относительно начала ЭСППЗУ;
    • размера ячейки хранения служебных счётчиков;
    • счётчика фактов записи в текущую ячейку хранения служебных счётчиков;
    • счётчика подключений JaCarta SF/ГОСТ к порту USB;
    • счётчика прерванных APDU-команд;
    • счётчика невыполненных APDU-команд "Отключить скрытые разделы" из состояния подключённых скрытых разделов;
    • счётчика общего времени работы JaCarta SF/ГОСТ (с начала эксплуатации) в минутах;
  • получение комплекса данных для аудита JaCarta SF/ГОСТ.

Приведённые выше функции реализуются в процессе обработки набора APDU-команд служебного апплета.

Виртуальный апплет

Виртуальный апплет выполняет следующие функции:

  • получение серийного номера ведущего микроконтроллера;
  • получение данных о виртуальном апплете, в частности:
    • версии виртуального апплета;
    • признак возможности инвалидации контрольной суммы векторов прерываний;
    • контрольной суммы параметров виртуального апплета;
  • получение сведений о конфигурации USB-токена JaCarta SF/ГОСТ, в частности
    • кода последней ошибки, сохранённого в оперативной памяти;
    • серийного номера смарт-карты;
    • счётчика включений JaCarta SF/ГОСТ;
    • версии JaCarta OS;
    • поля "Служебная информация производства" (mdata);
  • получение параметров загрузчика JC SF GOST Booter;
  • управление прошивкой средствами загрузчика JC SF GOST Booter.

Приведённые выше функции реализуются в процессе обработки набора APDU-команд виртуального апплета.

Авторизационный апплет

Авторизационный апплет содержит основную логику поддержки карты памяти (управления её жизненными циклами), обеспечения аутентификации и авторизации пользователя для работы с картой памяти, а также защищённую запись и чтение информации с карты памяти USB-токена JaCarta SF/ГОСТ. В частности, авторизационный апплет выполняет следующие функции:

  • разметку и переразметку карты памяти на разделы (открытые и скрытые разделы RW и CD-ROM);
  • подключение открытых разделов на постоянной основе для записи и чтения из них (раздел RW) или только чтения (раздел CD-ROM);
  • установку размеров ISO-образов для их последующей записи на карту памяти;
  • получение блока служебной информации о карте памяти;
  • удаление с карты памяти всех разделов и обнуление содержимого всех секторов;
  • предоставление программного интерфейса для реализации протоколов аутентификации и авторизации пользователя, подключения скрытых разделов / автономного подключения скрытых разделов на карте памяти, в частности
    • получения данных о карте памяти для вычисления ключей авторизации и специального преобразования скрытых разделов;
    • записи мастер-ключа (массива ключей) авторизации / записи ключа (массива ключей) авторизации и передачи данных для вычисления контрольной суммы ключа специального преобразования скрытых разделов;
    • активации мастер-ключа / ключа авторизации;
    • генерации параметров инициализации для USB-токена пользователя;
    • подготовки USB-токена пользователя к автономному подключению скрытых разделов;
    • подключеня скрытых разделов RW и CD-ROM;
    • выработки служебной последовательности для подключения скрытых разделов на USB-токен пользователя;
    • подключения скрытых разделов RW и CD-ROM на USB-токен пользователя в автономном режиме;
    • инициации протокола подключения скрытых разделов RW и CD-ROM на USB-токен пользователя;
    • отключения скрытых разделов RW и CD-ROM.

Приведённые выше функции реализуются в процессе обработки набора APDU-команд авторизационного апплета.

Блок служебных функций специального процесса

Служебные функции специального процесса включают в себя:

  • функции работы с микроконтроллером смарт-карты;
  • функции прикладного уровня работы со смарт-картой;
  • функции прикладного уровня поддержки интерфейса USB CCID;
  • функции прикладного уровня поддержки интерфейса USB;
  • функции поддержки работы с CD-ROM-разделами карты памяти;
  • функции контроля целостности ПО JaCarta OS;
  • функции вычисления контрольных сумм CRC32;
  • функции прикладного уровня для специального преобразования скрытых разделов карты памяти;
  • функции управления ячейкой хранения служебных счётчиков в ЭСППЗУ;
  • функции хранения массива ключей авторизации в ЭСППЗУ;
  • функции прикладного уровня для работы с ЭСППЗУ;
  • функции эмуляции временных дисков на период записи ISO-образов в разделы CD-ROM карты памяти;
  • функции работы с файловой системой;
  • функции прикладного уровня поддержки светодиодного индикатора;
  • функции прикладного уровня для обращения к скрытым разделам карты памяти;
  • функции специального преобразования скрытых разделов карты памяти;
  • функции вычисления контрольной суммы с использованием ключа специальных преобразований;
  • функции вычисления контрольной суммы.

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

Используемые технические средства

JaCarta OS поставляется в составе USB-токена JaCarta SF/ГОСТ. Помимо указанного аппаратного обеспечения для корректного функционирования программы требуется наличие:

  • микроконтроллера смарт-карты с установленными и настроенными на нём компонентами СКЗИ "Криптотокен 2 ЭП";
  • карты microSD (карты памяти).

Вызов и загрузка

Загрузка программы JaCarta OS выполняется автоматически при подаче электропитания на микроконтроллеры в составе USB-токена JaCarta SF/ГОСТ.

Входные и выходные данные

Параметры входных и выходных данных программы JaCarta OS при взаимодействии с микроконтроллером смарт-карты определяются спецификациями I2C и ISO/IEC 7816-4.

Параметры входных и выходных данных JaCarta OS при взаимодействии с ПО терминала определяются спецификациями USB, CCID и ISO/IEC 7816-4.

Входные данные

Входными данными JaCarta OS являются APDU-команды, поступающие от ПО терминала.

Выходные данные

Выходными данными JaCarta OS является информация, формируемая

  • служебными функциями специального процесса;
  • служебным апплетом;
  • виртуальным апплетом;
  • авторизационным апплетом;

а также APDU-команды, передаваемые диспетчером средству криптографической защиты "Криптотокен 2 ЭП".