поиск по сайту
ШИПКА-Т

ШИПКА-T

ШИПКА-T (Terminal) - это программное обеспечение (ПО), предназначенное для обеспечения возможности работы с криптографическими ресурсами ПСКЗИ ШИПКА в режиме терминального доступа.

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

В стоимость ШИПКА-T включена стоимость лицензии на 1 год. Стоимость лицензии на последующие годы рассчитывается по числу применяемых ШИПКА-Т в терминальном режиме ШИПОК и оплачивается отдельно.

Для использования функций ШИПКИ в режиме терминального доступа требуется только установка ПО ШИПКА-T в порядке, описанном в документе «ПСКЗИ ШИПКА. Установка и настройка в системах терминального доступа». Все действия пользователя при этом остаются такими же, как если бы он работал с ШИПКОЙ локально.

Далее приведены основные сведения об особенностях работы с СКЗИ в режиме терминального доступа и особенностях реализации ШИПКИ-T.

При внедрении в систему терминального доступа (СТД) системы криптографической защиты информации (СКЗИ) возможно возникновение следующих проблем:

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

2. Если ключи пользователя хранятся на терминальном сервере (ТС), то они вообще, строго говоря, не являются ключами пользователя, и подпись, выполненная с их помощью, никак не подтверждает авторство пользователя.

3. Если ключи находятся на стороне терминального клиента (ТК), а выработка ЭЦП выполняется на стороне ТС, а не на стороне пользователя, который находится на ТК, то закрытые ключи ключевых пар передаются в рамках терминальной сессии по сети. Такая подпись тоже не может вполне гарантировать авторство.

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

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

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

1. СКЗИ должна поддерживать работу в терминальном режиме (Требование 1).

2. Закрытый ключ ключевой пары ЭЦП должен располагаться на ТК (Требование 2).

3. Информационные наборы данных должны создаваться на ТК (Требование 3).

4. Выработка подписи и шифрование данных должны производиться на ТК (Требование 4).

5. Должно быть исключено несанкционированное использование закрытого ключа ключевой пары в период его применения или хранения на ТК (Требование 5).

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

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

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

В качестве терминальных клиентов, используемых в системе терминального доступа с описываемой системой могут выступать клиенты под управлением следующих ОС (для которых реализовано терминальное ПО для ПСКЗИ):

  • Win32 (Windows 98, Windows 2000, Windows XP);
  • WinCE;
  • Linux.

Поддержка различных терминальных ОС позволяет применять тонкие клиенты разных производителей и моделей, что дает определенную свободу заказчику, внедряющему решение (это могут быть клиенты Wyse, КАМИ, Depo и многие другие). Терминальные сервера могут быть как под управлением Windows, так и под управлением Citrix.

Технология защиты

Функциональность ПО ПСКЗИ ШИПКА (терминальное применение)

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

  • ключевая информация, ассоциированная с пользователем, и программное обеспечение, выполняющее криптографические преобразования, сосредоточены в одном устройстве, доступны на исполнение только авторизованному пользователю и технологически защищены от несанкционированного чтения и модификации;
  • собственные ресурсы (возможность получения аппаратной случайной последовательности, возможность хранения собственного закрытого и открытого ключа, возможность хранения отрытого ключа терминального сервера, а также возможность вычисления и проверки подписи) для организации защиты виртуальных каналов, построенных в рамках протоколов RDP или ICA:
  • поддержка стандартных интерфейсов (криптопровайдера и PKCS#11), позволяющая избавить производителей ПО, взаимодействующего с внутренним ПО ПСКЗИ, от изучения особенностей реализации процедур этого взаимодействия.

Выполнение криптографических операций

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

Ключи, необходимые для проведения криптографических расчетов, также хранятся в устройстве, где и генерируются с использованием аппаратного ДСЧ. Хранятся ключи в файловой системе ШИПКИ в защищенном виде - так, что несанкционированный доступ к ключам путем извлечения и прямого чтения микросхем, которые используются для хранения файлов, исключен. Еще одной особенностью ключевых файлов является регламент доступа: несмотря на то, что ключевые файлы - объекты файловой системы, работать с ними как с обычными файлами нельзя. Firmware ШИПКИ спроектировано таким образом, что с ключевыми файлами можно работать только из функций криптографических преобразований и никак иначе. В свою очередь, функции криптографических преобразований получают доступ к ключевым файлам только после того, как пользователь пройдет процедуру аутентификации и подтвердит с помощью PIN-кода, что он имеет право доступа к ключевым данным, которые хранятся в ШИПКЕ.

Таким образом, в случае применения ШИПКИ для криптографических преобразований в терминальном режиме:

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

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

Использование стандартного программного обеспечения ПСКЗИ ШИПКА в терминальном сеансе приводит к следующему результату: пользователь запускает программу на терминальном сервере, программа через интерфейс CryptoAPI (CSP) или PKCS#11 обращается к библиотеке взаимодействия с firmware ПСКЗИ, которая в свою очередь обращается к драйверу устройства для обмена данными с устройством.

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

В этом ПО можно выделить три основные группы функций:

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

Эти три группы функций реализуются для терминального сервера и для терминального клиента, то есть в состав ПО ШИПКА-T входит два CD  с ПО - для установки на ТС (ШИПКА-TC) и на ТК (ШИПКА-TК). Причем, серверная компонента не зависит от операционной системы терминальных клиентов, так как виртуальные каналы обеспечивают унифицированный интерфейс взаимодействия с ТК (см. Рис. 1).

унифицированный интерфейс взаимодействия с ТК

Рис. 1. Взаимодействие приложения с устройством ШИПКА в терминальном сеансе

Реализация серверной компоненты

Серверная компонента во время старта определяет режим работы (локально, в терминальной сессии Windows Terminal Server, в терминальной сессии Citrix) и загружает нужную библиотеку. Та в свою очередь создает виртуальные каналы, в рамках которых производится весь последующий обмен данными между приложениями, которые запускаются в терминальной сессии, и ШИПКАМИ, установленными на терминалах.

Реализация клиентской компоненты

Клиентская компонента для Win32

Клиентская компонента для Win32 (Windows 98, Windows 2000, Windows XP) обеспечивает обработку команд обмена данными с устройствами. В момент создания терминальной сессии происходит инициализация библиотек и создание виртуальных каналов с терминальным сервером. После этого библиотеки обрабатывают запросы от серверной компоненты и транслируют их через библиотеку взаимодействия с firmware ПСКЗИ на терминале в устройство  или сообщают о фактах установки/удаления ПСКЗИ из терминала (Рис. 2).

Клиентская компонента ПСКЗИ

 

Рис. 2. Клиентская компонента ПСКЗИ

Клиентская компонента для WinCE

Windows CE (она же WinCE) - это вариант операционной системы Microsoft Windows для наладонных компьютеров, мобильных телефонов и встраиваемых систем. Поддерживаются архитектуры x86, MIPS, ARM и процессоры Hitachi SuperH. Windows CE оптимизирована для устройств, имеющих минимальный объём памяти.

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

В остальной клиентская компонента для Windows CE полностью аналогична по своему составу и зависимостям клиентской компоненте для Win32 (см. Рис. 2).

Клиентская компонента для «Ками-терминал»

«Ками-терминал» - это дистрибутив ОС Линукс, предназначенный специально для использования на терминальных клиентах. Этот дистрибутив ОС Линукс описан для примера и не является единственно возможным для применения ШИПКИ в терминальном режиме.

Загрузка «Ками-терминала» проходит в четыре этапа:

  • Загрузка базового образа файловой системы (ФС). С заранее подготовленного носителя стартует базовая часть, состоящая из ядра Линукс и образа ФС с минимальным набором файлов, необходимых для установки сетевого соединения с сервером загрузки.
  • Аутентификация и загрузка профиля пользователя. Пользователю предлагается подключить ПСКЗИ и ввести PIN-код. При успешном завершении процесса аутентификации с устройства считывается профиль пользователя, на основе которого производится загрузка файла настроек и пакетов ПО с сервера загрузки.
  • Загрузка, проверка и установка пакетов ПО, необходимых для старта сессии с ТС. С сервера загрузки по протоколу NFS скачиваются пакеты ПО, указанные в файле настроек профиля пользователя на сервере. Для каждого загруженного пакета вычисляется хеш, значение которого сравнивается с соответствующим значением, записанным в профиль пользователя в устройстве. В случае успешного завершения проверки содержимое пакета устанавливается в ФС «Ками-терминала».
  • Старт терминальной сессии. На основе содержимого файла настроек устанавливается соединение с ТС и создаются виртуальные каналы.

Диаграмма зависимостей клиентской компоненты для Linux аналогична приведенной на рис. 2.

Что в результате?

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

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

Общая схема взаимодействия

Рис. 3. Общая схема взаимодействия.

«Библиотека 1» - библиотека взаимодействия с терминальным сервером, «библиотека 2» - интерфейсная библиотека.

В данном случае взаимодействие прикладного ПО с устройством производится через криптопровайдер, но возможна реализация и с взаимодействием через PKCS#11.

Документация