поиск по сайту
Особенности реализации криптографического ядра для применения в терминальном режиме

Т. М. Борисова, А. И. Обломова

РОССИЯ, ОКБ САПР

Особенности реализации криптографического ядра для применения в терминальном режиме

В настоящее время все чаще для защиты данных, хранящихся на персональном компьютере и передающихся по сети, используются средства шифрования и подписи данных. Имеются ввиду криптографические ядра (криптоядра), функционал которых позволяет шифровать и подписывать хранящуюся или передаваемую информацию. Некоторые из этих криптоядер основаны на шифровании «на лету», при котором данные зашифровываются и расшифровываются соответственно при записи и считывании с виртуального логического диска. Другие используются для шифрования и подписи файлов, передаваемых по сети в целях обмена информацией. В качестве примера криптоядер с перечисленной функциональностью можно привести криптоядра следующиих продуктов: КриптоПро, TrueCrypt, BestCrypt, Secret Disk 4, Info Watch CryptoStorage, Криптосейф. Все перечисленные криптоядра основаны на программной реализации криптографических алгоритмов, позволяющих обеспечить описанные выше функции. Чтобы обеспечить минимальную защиту важной информации, используемой в этих продуктах, а именно ключей и ключевых пар, используют различные носители информации, при помощи которых можно хранить и переносить ключи.

Все описанные криптоядра, как правило, применяются в системах, которые построены на локальных сетях и состоят из автономных ПК. Однако в последнее время многие организации стремятся к использованию терминальных систем. Причинами этому являются снижение затрат на программное обеспечение и оборудование, обеспечение сохранности данных, увеличение надежности, снижение временных расходов на администрирование. Помимо этого создание рабочих мест становится проще и быстрее, и повышается мобильность сотрудников.

Терминальные системы построены на основе сетевых технологий, и включают в себя сервер (или группу серверов) и связанные с ним (ними) терминальные станции, которые называют терминальные клиенты. Терминальный сервер предоставляет клиентам вычислительные ресурсы, а терминальный клиент представляет компактный (возможно, и бездисковый) «тонкий клиент», к которому подключаются обычные периферийные устройства - клавиатура, мышь, монитор, акустические системы и т.п. Взаимодействие в терминальной системе организовано таким образом, что терминальный клиент (ТК) соединяется с терминальным сервером (ТС), на котором установлено все системное и прикладное ПО, хранятся данные и выполняются все вычисления, и отображает графическую информацию на монитор. При этом вся вычислительная работа в терминальной системе выполняется на сервере.

При использовании программных криптоядер в системах с атономными ПК устанавливать их программное обеспечение требуется локально на каждый ПК,  при этом все криптографические операции осуществляются именно на нем. Совершенно другая ситуация возникает, когда встает вопрос об использовании программных криптоядер в терминальных системах.

Если программное криптоядро, предназначенное для работы на автономном ПК, перенести в терминальную систему, то, как и любое программное обеспечение, его нужно устанавливать на терминальный сервер. Пользователь, работающий на терминальном клиенте, будет получать доступ к программному криптоядру в терминальном режиме, установленном на терминальном сервере (Рис.1).

Рис. 1. Схема взаимодействия ТС и ТК при использовании программного криптоядра на терминальном сервере

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

Однако, как было указано выше, некоторые криптоядра могут хранить важную ключевую информацию на отчуждаемых носителях, и в терминальных системах это дает возможность выделить клиентскую часть. В данном случае носитель информации находится у пользователя, работающего на терминальном клиенте. Но для корректного функционирования программного криптоядра в терминальных системах все же необходимо, чтобы была возможность работы с этим носителем в терминальном режиме. Это необходимо для того, чтобы ключевая информации находилась на стороне терминального клиента и пользователь, работающий на ТК, являлся ее владельцем. Поэтому программное обеспечение для терминальных систем в любом случае должно состоять из терминальной и серверной компоненты (Рис. 2).

Но даже этот факт не дает уверенности в том, что ключевая информация является «собственностью» пользователя, она может быть перехвачена при передаче на терминальный сервер, так как именно на нем выполняются криптографические операции.

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

Рис. 2. Схема взаимодействия ТС и ТК с использованием программного криптоядра, состоящего из серверной и клиентской частей

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

Естественно, в данном случае, как и во всех описанных выше, нужно понимать, что среда функционирования криптоядра как на автономном ПК, так и в терминальном режиме, должна быть доверенной, что обеспечивается использованием специальных СЗИ.

Примером программно-аппаратного криптоядра является ШИПКА-Т (терминальная) с использованием на терминальном сервере ПО для ПСКЗИ ШИПКА, и ШИПКи - на терминальном клиенте.

 ШИПКА-Т представляет собой программное обеспечение, предназначенное для обеспечения возможности работы с криптографическими ресурсами ПСКЗИ ШИПКА в режиме терминального доступа. При этом на ТС устанавливается локальное ПО для ПСКЗИ ШИПКА и серверная компонента ШИПКА-Т, называемая ШИПКА-ТС (терминальный сертвер), а на терминальном клиенте - клиентская компонента - ШИПКА-ТК (терминальный клиент). В основу ШИПКи-Т легли виртуальные каналы, которые обеспечивают передачу данных между сервером и клиентом. Использование стандартного программного обеспечения для ПСКЗИ ШИПКА в терминальном режиме приводит к следующему результату: пользователь запускает программу на терминальном сервере, программа через один из стандартных интерфейсов обращается к библиотеке взаимодействия с ПСКЗИ, которая в свою очередь обращается к драйверу устройства для обмена данными с ШИПКой. Но устройство при этом подключено не к серверу, а к терминалу. То есть операционная система должна перенаправить обращение из терминальной сессии к устройству, установленному на терминале (Рис. 3).

Рис. 3. Схема взаимодействия ТС и ТК с использованием программно-аппаратного криптоядра

Серверная компонента создает виртуальные каналы, в рамках которых производится весь последующий обмен данными между приложениями, которые запускаются в терминальной сессии, и ШИПКами, установленными на терминалах. Клиенсткая компонента, в свою очередь, обеспечивает обработку команд обмена данными с устройствами.

В результате использование ШИПКи-Т в терминальных системах позволяет прикладному ПО осуществлять обмен данными с ШИПКами, установленными в USB-порт терминального клиента. И хотя программы продолжают выполняться на терминальном сервере, обращения к устройствам перенаправляются на терминалы, к которым подключены ШИПКи, и все криптографические операции  выполняются на стороне пользователя, не говоря уже о том, что ключи также защищенно генерируются и хранятся в устройстве.

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


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