поиск по сайту
ПСКЗИ ШИПКА расширяет коммуникационные возможности
Тафинцев Е.К., Москва, ОКБ САПР

ПСКЗИ ШИПКА расширяет коммуникационные возможности

В современных информационных системах в целях обеспечения безопасности информационных ресурсов получают широкое распространение смарт-карты и технологии основанные на них. С помощью смарт-карт решаются следующие основные задачи:

  • идентификация и аутентификация пользователей;
  • хранение ключевой информации;
  • выполнение криптографических операций в доверенной среде.
Смарт-карта представляет собой устройство, защищенное от несанкционированного доступа и использования и содержащее микропроцессор, операционную систему, энергонезависимую память. В энергонезависимой защищенной памяти смарт-карты хранятся конфиденциальные данные (в том числе криптографические ключи и другая идентификационная информация). Процедура обмена данными со смарт-картой предполагает наличие в системе считывателя смарт-карт и установленного драйвера считывателя. Обмен данных происходит при помощи APDU (Application Protocol Data Unit - блока данных прикладного протокола) с применением протоколов T=1 (блочный протокол) и T=0 (байтовый протокол). Структура APDU определена стандартом ISO/IEC 7816-4. APDU-команда представляет собой структурированное сообщение, несущее команду и данные в карту. Внутренний обработчик принимает эту команду и выполняет соответствующую ей операцию. Структура APDU-ответа включает в себя обязательные поля информации о категории ошибки и состоянии соответствующего конкретной команде. В APDU-ответе также могут содержаться данные - результат выполнения той или иной команды.

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

Области применения смарт-карт:

  • банковские смарт-карты;
  • телекоммуникационные смарт-карты;
  • идентификационные смарт-карты;
  • социальные смарт-карты;
  • транспортные смарт-карты;
  • медицинские смарт-карты.
Рассматривать конкретные реализации систем построенных на основе смарт-карт не имеет смысла, так как каждая система создается для решения специфичного и строго определенного круга задач.

По своему функционалу ПСКЗИ ШИПКА может использоваться как смарт-карта. Выполнено оно в виде USB-устройства, соответственно, для взаимодействия ПСКЗИ ШИПКА с ПК не требуется никаких дополнительных устройств, как-то считыватель смарт-карт. В своем составе оно имеет не только процессор и память, но и аппаратный датчик случайных чисел, кроме того, внутреннее ПО может быть достаточно просто обновлено, но в то же время оно защищено от несанкционированных модификаций. Набор системных команд работы с устройством практически соответствует набору команд, описанному в стандарте ISO/IEC 7816-4. Следовательно, ПСКЗИ ШИПКА как с точки зрения аппаратной части, так и с программной не только удовлетворяет базовым требованиям, предъявляемым к смарт-картам, но и во многом их превосходит. Представляется целесообразным использовать данное устройство в различных приложениях в качестве смарт-карты.

Однако в ПСКЗИ ШИПКА отсутствует внутренний обработчик APDU-команд. Это обусловлено ограничениями, накладываемыми на память внутреннего программного обеспечения. В то же время представляется и нецелесообразным выделять дополнительную память и накладывать дополнительную вычислительную нагрузку на процессор устройства для реализации совершенно не критичной с точки зрения безопасности функции. Все эти операции по обработке APDU можно с гораздо меньшими затратами производить в ОС ПК, ведь обработка APDU есть ни что иное, как преобразование данных из одного формата в другой. Исходя из такого подхода, по вполне понятным причинам, и дальнейшие модификация и усовершенствование обработки APDU можно производить путем замены соответствующего системного ПО на ПК, не изменяя при этом внутреннее ПО ПСКЗИ ШИПКА. Отметим, что в качестве платформы разработки рассматривается только Win32.

Итак, обработчик APDU, задачей которого будет преобразование блоков данных APDU во внутренние команды работы с устройством, должен быть встроен в системное ПО, выполняющееся в ОС. Чтобы понять какое место в системном ПО должен занимать такой обработчик, следует  рассмотреть ныне действующую систему работы с ПСКЗИ ШИПКА. В настоящий момент в системное ПО входят библиотеки CSP и PKCS#11, которые взаимодействуют с устройством через библиотеку системных команд пользовательского уровня и драйвер USB устройства. Стоит отметить, что любое взаимодействие с устройством идет по такому пути. Для работы CSP необходимо чтобы ОС ПК воспринимала ПСКЗИ ШИПКА как смарт-карту. Для этого в ОС существует драйвер виртуального считывателя смарт-карт, который на настоящий момент играет роль лишь индикатора того, что установленное ПСКЗИ ШИПКА является смарт-картой. Никакого обмена данными через этот драйвер не происходит, все данные передаются через CSP, хотя конструкция драйвера предполагает, что обмен данными со смарт-картой идёт непосредственно через него. Именно эти данные и должны представлять собой APDU. Легко видеть, что именно в этом месте необходимо встраивать обработчик APDU, то есть интегрировать его в драйвер виртуального считывателя смарт-карт. Следовательно,   данный обработчик будет функционировать на уровне ядра ОС. Отсюда следует и другое - библиотеку системных команд работы с устройством пользовательского уровня необходимо адаптировать для функционирования на уровне ядра ОС.

Значит, задача структурируется следующим образом:

  • разработка обработчика APDU;
  • адаптация драйвера виртуального считывателя смарт-карт;
  • адаптация библиотеки системных команд пользовательского уровня.
Обработчик APDU был разработан в соответствии со стандартами ISO/IEC 7816. Для обеспечения взаимодействия ПСКЗИ ШИПКА как смарт-карты с приложениями на платформе Win32 драйвер виртуального считывателя смарт-карт был адаптирован с интегрированным обработчиком APDU. В результате чего данный адаптированный драйвер позволяет теперь передавать данные в формате APDU от приложений к ПСКЗИ ШИПКА и обратно. Данный обработчик интерпретирует блоки данных APDU во внутренние команды работы с ПСКЗИ ШИПКА на уровне ядра ОС. Для решения задачи выполнения системных команд работы с устройством на уровне ядра ОС был адаптирован набор системных команд, который представляет собой библиотеку уровня ядра ОС, то есть теперь внутренние команды вместе с данными посылаются непосредственно драйверу ПСКЗИ ШИПКА как USB устройству полностью в ядре ОС. Следовательно, все подготовительные операции, связанные со смарт-картой, производятся на уровне ядра ОС.

Таким образом, разработанное системное ПО, позволяет любому приложению Win32 посылать команды в соответствии со стандартами ISO/IEC 7816 ПСКЗИ ШИПКА как смарт-карте и получать стандартной формы ответы, то есть теперь ПСКЗИ ШИПКА может выступать в новой роли - роли смарт-карты.

Разработанное системное ПО и ПСКЗИ ШИПКА позволяют:

  • пользователям работать с ПСКЗИ ШИПКА на самом низком уровне без знаний языков программирования;
  • интегрировать ПСКЗИ ШИПКА в качестве смарт-карты в существующие системы защиты информации с минимальными трудозатратами;
  • разработчики стороннего ПО теперь могут создавать своё собственное ПО используя Smart Card API и стандартные команды ISO/IEC 7816 для решения задач защиты информации на базе ПСКЗИ ШИПКА.


ФорумФорум
Форум ОКБ САПР
Вопросы специалистовВопросы специалистов
Вопросы, которые нам присылают, и наши ответы на них