Структура
JaCarta OS USB-токена JaCarta SF/ГОСТ включает в себя следующие компоненты:
- ядро;
- библиотеку драйверов LPC Lib;
- библиотеку уровня аппаратной абстракции, включающую в себя библиотеки для управления
- USB-интерфейсом;
- микроконтроллером смарт-карты;
- периферийными устройствами;
- специальный процесс JaCarta OS.
Ядро и библиотеки драйверов и уровня аппаратной абстракции составляют базовую часть JaCarta OS. Специальный процесс JaCarta OS (App) при своей работе взаимодействует с базовой частью JaCarta OS, а именно с библиотекой уровня аппаратной абстракции.
Специальный процесс JaCarta OS
Специальный процесс содержит логику реализации функционального назначения JaCarta OS.
В состав специального процесса JaCarta OS входят следующие модули:
- фильтр APDU-команд (Firewall);
- диспетчер APDU-команд;
- служебный апплет;
- виртуальный апплет;
- авторизационный апплет;
- блок служебных функций специального процесса.
Фильтр 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 ЭП".