УДК 004.75, 004.056.5 С.А. Кипрушкин, Н.А. Королев, С.Ю. Курсков программных продуктов появилась возможность работы по протоколу SSL, что обусловлено возрастанием роли безопасности в информационных технологиях. ПРИМЕНЕНИЕ SSL-СОКЕТОВ И ПАКЕТНОГО РЕЖИМА РАБОТЫ В РАСПРЕДЕЛЕННОЙ ИНФОРМАЦИОННО-ИЗМЕРИТЕЛЬНОЙ И УПРАВЛЯЮЩЕЙ СИСТЕМЕ ПОДДЕРЖКИ НАУЧНО-ОБРАЗОВАТЕЛЬНОГО ПРОЦЕССА На физико-техническом факультете Петрозаводского государственного университета создана распределенная информационно-измерительная и управляющая система для решения исследовательских задач в области оптической спектроскопии и поддержки образовательного процесса [1]. Отличительной особенностью системы является то, что она позволяет объединить различные приборные интерфейсы (систему КАМАК, канал общего пользования (КОП) и др.) [2, 3] с выделенными для них компьютерами в единую сеть, функционирующую на базе стека протоколов TCP/IP. В качестве основы для построения системы была выбрана технология клиент-сервер, причем для доступа к физическому оборудованию экспериментального комплекса был разработан прикладной протокол [4] поверх TCP/IP, что обеспечивает функционирование системы в сетях Интранет/Интернет. Необходимость разработки собственного протокола обусловлена тем, что используемые обычно Web-технологии не обеспечивают гибкого управления ходом эксперимента, поскольку экспериментом в этом случае управляют не программы-клиенты, работающие на удаленных компьютерах, а исполняемый код, хранящийся на компьютере, непосредственно подключенном к экспериментальной установке (см., например, [5]). В состав гетерогенной системы входят программы-клиенты, осуществляющие непосредственное управление экспериментом, коммуникационный сервер, являющимся ключевым звеном системы, серверы оборудования (КАМАК-сервер [6], сервер канала общего пользования (КОП) [7], сервер микроконтроллеров Intel MCS-196, сервер Ethernet-устройств и др.), измерительные и исполнительные устройства экспериментального комплекса, а также сервер базы данных [8] (рис. 1). Программное обеспечение системы реализовано на языке Java. Целью данной работы являлся перевод распределенной информационно-измерительной и управляющей системы на протокол SSL (Secure Socket Layer) и дополнение системы пакетным режимом работы. Протокол SSL является стандартным протоколом, работающим на основе стека протоколов TCP/IP, по которому клиент и сервер могут осуществлять конфиденциальную связь. Протокол SSL реализует жестко регламентированные шаги защиты коммуникаций – это его преимущество и недостаток, то есть, с одной стороны, используемые в нем методы уже проверены, а с другой, теряется гибкость при создании уникальных систем, для которых этих методов уже недостаточно. Следует отметить, что в большинстве современных Рис. 1. Структура распределенной информационноизмерительной и управляющей системы Протокол SSL – это протокол связи, разработанный компанией Netscape Communications Corporation. Он помещен на вершину стека протокола TCP/IP. Протокол SSL позволяет обеспечить конфиденциальность с помощью шифрования данных, защиту целостности данных с помощью кода аутентификации сообщения (Message Authentication Code – МАС), аутентификацию и неаннулируемость, как клиента, так и сервера. Протокол SSL может также использоваться протоколами более высокого уровня, например, протоколом HTTP. Протокол SSL версии 1 не получил широкого распространения, но протокол SSL версии 2 был представлен компанией Netscape в первой версии Netscape Navigator. Третья версия данного протокола является наиболее современной и используемой. Протокол TLS (Transport Layer Security), созданный Группой по разработке технологий Internet (Internet Engineering Task Force – IETF), расширяет возможности протокола SSL версии 3 в части аутентификации. Протокол WTLS (Wireless Transport Layer Security) является версией протокола TLS, используемой в беспроводной связи. Разработанная система криптографической защиты в распределенной информационно-измерительной и управляющей системе является двухуровневой с точки зрения политики безопасности. Центральным звеном, отвечающим за распределение секретных ключей и удостоверение всех открытых ключей, является коммуникационный сервер. Он является эмитентом, то есть выдает сертификаты открытым ключам. Все безоговорочно ему доверяют. Сертификаты представляют собой средство для аутентификации клиента и сервера при установлении соединения. Сертификат – это блок данных, содержащий информацию, используемую для идентификации принципала. Эта информация включает в себя открытый ключ принципала, информацию о принципале, срок действия сертификата, информацию об эмитенте сертификата и его электронную подпись. В Java 2 имеется утилита keytool, которая обеспечивает возможность управления хранилищем ключей. В хранилище ключей собираются записи ключей и доверенных сертификатов. Запись ключа состоит из закрытого ключа и цепочки сертификатов по стандарту X.509, аутентифицирующей соответствующий ему открытый ключ. Утилита keytool не поддерживает симметричные ключи, но в процессе работы по протоколу SSL генерируется секретный сеансовый ключ (временные ключи), который используется для шифрования трафика. Защита информации в системе основана на механизме защищенных сокетов Java (Java Secure Socket Extension – JSSE), который предоставляет стандартный API-интерфейс для протокола SSL версии 2, 3 и протокола TLS (библиотека классов – файл jsse.jar). Криптографические особенности протокола SSL скрыты от программиста. Клиентское и серверное приложения, взаимодействующие по протоколу SSL на основе SSL-сокетов, создаются похожим образом: в программе указывается путь до хранилища ключей, его тип и пароль к нему, задается диспетчер ключей и доверенные диспетчеры. Создание хранилища ключей и работа с ним осуществляется с помощью утилиты keytool. Она позволяет задавать следующие параметры ключа: псевдоним, алгоритм шифрования, размер, время жизни и место хранения. По умолчанию они следующие: -alias “mykey”, keyalg “DSA”, -keysize 1024, -validity 90, -keystore “файл .keystore в домашней директории пользователя”. Если в качестве основного алгоритма используется DSA, то алгоритмом цифровой подписи по умолчанию будет SHA1withDSA. Если в качестве основного алгоритма используется RSA, то алгоритм цифровой подписи – MD5withRSA. Чтобы сервер и клиент могли взаимодействовать по протоколу SSL, нужно экспортировать сертификаты открытых ключей сначала в файл, а далее обменяться ими и импортировать их в свои хранилища ключей. Использование SSL-сокетов позволяет значительно снизить затраты на разработку безопасных коммуникаций и расширить возможности системы. К недостаткам SSL-сокетов можно отнести то, что они поддерживают не все криптографические алгоритмы. Созданные ранее криптографические классы [9] для данной информационно-измерительной и управляющей системы не теряют своей значимости, так как могут быть использованы для создания криптографической защиты практически любых информационноизмерительных систем. Переходя ко второму аспекту данной работы, отметим, что архитектура клиент-сервер обеспечивает конечным пользователям (клиентам) возможность получать гарантированный доступ к информации в разнородной аппаратной и программой среде. Модель клиент-сервер позволяет более эффективно использовать новые технологии автоматизации, дает возможность перенести обработку данных ближе к клиенту, облегчает использование графических интерфейсов и переход к открытым системам. Однако непосредственное управление экспериментальным комплексом последовательностью команд, посылаемых программой-клиентом, возможно лишь при условии надежной связи и достаточной пропускной способности сети. В противном случае возможно “затягивание” эксперимента и даже потеря результатов измерений. Суть пакетного режима работы состоит в передаче клиентом не отдельных команд, а пакетов команд, управляющих ходом эксперимента. Реализация пакетного режима позволяет минимизировать объем данных, передаваемых по сети, а также сократить время на передачу полезной информации. Это особенно важно при организации дистанционного лабораторного практикума для студентов, обучающихся в филиалах вуза. Для реализации пакетного режима были разработаны модули (классы) позволяющие передавать и обрабатывать блоки команд. Кроме того, библиотеки методов серверов оборудования для работы с физической аппаратурой были дополнены методами, не требующими вмешательства клиента в процесс измерений (например, процедурой вывода монохроматора на заданную длину волны, процедурой измерения скорости счета импульсов с ФЭУ и т.д.). Рассмотрим режимы работы системы в обычном и пакетном режимах (опуская процедуры обеспечения безопасности). В обычном режиме клиент отправляет запрос коммуникационному серверу на резервирование ресурса. Далее коммутационный сервер проверяет наличие этого ресурса у сервера оборудования, и не занят ли он другим пользователем. В зависимости от результатов проверки коммуникационный сервер отвечает клиенту, что ресурс свободен, занят другим пользователем, уже зарезервирован данным пользователем или отсутствует. Если ресурс свободен, клиент посылает первую команду коммуникационному серверу, который, после проверки команды, пересылает ее серверу оборудования. Сервер оборудования, выполнив команду, посылает коммуникационному серверу результат выполнения команды, который коммуникационный сервер пересылает клиенту. После этого клиент может отправлять следующую команду. При завершении работы с ресурсом клиент освобождает последний, посылая коммуникационному серверу соответствующую команду. В пакетном режиме работа системы несколько отличается. В начале, так же как и в обычном режиме, осуществляется резервирование необходимых ресурсов. После этого клиент передает коммуникационному серверу команду “начало передачи пакета”. По этой команде коммуникационный сервер начинает передачу серверу оборудования команд, полученных от клиента, не дожидаясь их исполнения. Сервер оборудования, получив команду “начало передачи пакета”, сохраняет все последующие команды в файл, пока не получит команду “конец пакета”. После этого сервер оборудования начинает выполнение полученных команд, читая их из файла. В это время клиент может отключиться от коммуникационного сервера, так как поддерживать соединение нет необходимости. После того, как сервер оборудования завершит выполнение команд, клиент может обратиться к коммутационному серверу для получения пакета результатов. Пересылка пакета команд (или пакета результатов) осуществляется отдельными кадрами; получение каждого кадра подтверждается сервером оборудования (или, соответственно, клиентом). Пакетный режим существенно повышает надежность системы в целом, поскольку предотвращает потерю экспериментальных данных при разрыве связи с клиентом и уменьшает количество потоков, обслуживаемых коммуникационным сервером. БИБЛИОГРАФИЧЕСКИЙ СПИСОК 1. 2. 3. 4. Гаврилов С.Е., Кипрушкин С.А., Королев Н.А., Курсков С.Ю. Распределенная информационноизмерительная система для спектроскопического анализа пучковых и плазменных объектов // Материалы семинаров-школ молодых ученых, студентов и аспирантов "Методы и техника экспериментального исследования процессов самоорганизации упорядоченных структур в плазменно-пылевых образованиях" (2002), "Фундаментальные проблемы приложений физики низкотемпературной плазмы (2003)". Петрозаводск, 2004. С. 279289. Hауман Г., Майлинг В., Щербина А. Стандартные интерфейсы для измерительной техники: Пер. с нем. М.: Мир, 1982. Эрглис К.Э. Интерфейсы открытых систем. М.: Горячая линия Телеком, 2000. Гаврилов С.Е., Жиганов Е.Д., Кипрушкин С.А., Курсков С.Ю. Распределенная информационноизмерительная система для удаленного управления экспериментом в области оптической спектроскопии // Научный сервис в сети Интернет: Тр. Всерос. науч. конф. М.: Изд-во Моск. ун-та, 2002. С.157159. 5. 6. 7. 8. 9. Зимин А.М., Букеткин Б.В., Почуев А.П. и др. Учебная Интернет-лаборатория “Испытания материалов” // Информационные технологии. 2006. № 10. С. 5865. Zhiganov E.D., Kiprushkin C.A., Kurskov S.Yu. CAMAC Server for Remote Access to Physical Equipment // Learning and Teaching Science and Mathematics in Secondary and Higher Education. Joensuu: University of Joensuu, 2000. P. 170173. Кашуба А.С., Кипрушкин С.А., Курсков С.Ю. Сервер канала общего пользования распределенной информационной системы поддержки научных исследований в области оптической спектроскопии // Технологии информационного общества – Интернет и современное общество 2002 (IST/IMS 2002): Материалы V Всерос. объединенной конф. СПб.: Изд-во С.-Петербург. ун-та, 2002. C. 104105. Кипрушкин С.А., Курсков С.Ю., Семин В.В. База данных распределенной информационноизмерительной и управляющей системы для поддержки научно-образовательного процесса в области оптической спектроскопии // Научный сервис в сети Интернет: Тр. Всерос. науч. конф., АбрауДюрсо, г. Новороссийск / МГУ. М.: Изд-во МГУ, 2006. Kiprushkin S.A., Korolev N.A., Kurskov S.Yu., Khakhaev A.D. Data security in the distributed information measurement system // Proceedings of the 8th World Multi-Conference on Systemics, Cybernetics and Informatics: SCI 2004 (July 18 21, 2004, Orlando, Florida, USA). Orlando, 2004. V. 1. P. 1316.