Расширение защиты информационных систем защитой индивидуальных web-приложений в ОС Linux
Расширение возможностей класса QHttpServer, используемого для создания серверных web-приложений в системе Linux. Связь браузера и серверного WEB-приложения по защищенному кодированному TCP соединению. Реализация проекта в среде Qt Creator 3.3.0.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 06.09.2021 |
Размер файла | 523,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Дальневосточный государственный университет путей сообщения
РАСШИРЕНИЕ ЗАЩИТЫ ИНФОРМАЦИОННЫХ СИСТЕМ ЗАЩИТОЙ ИНДИВИДУАЛЬНЫХ WEB-ПРИЛОЖЕНИЙ В ОС LINUX
В.Д. Епанешников, д-р физ.-мат. наук
И.В. Епанешникова, канд. техн. Наук
Хабаровск
Аннотация
linux приложение серверный соединение
Возможности класса QHttpServer, используемого для создания серверных web-приложений в операционной системе Linux, были расширены добавлением протокола SSL. Это позволило связывать браузер и серверное WEB-приложение по защищенному кодированному TCP соединению. Проект был реализован в среде Qt Creator 3.3.0 (основан на Qt 5.4.0) операционной системы Fedora-20 (32-битная версия) (коммерческой версией Fedora является Red Hat). Проект также был реализован в среде Qt Creator 4.2.1 (основан на Qt 5.8.0) операционной системы Fedora- 25 (64-битная версия) и в операционной системе AstraLinux.
Ключевые слова: защита информации, серверное web-приложение, протокол SSL.
Введение
Разработка WEB-приложений находит все большее применение для решения широкого круга технических и научных задач. Это позволяет использовать всю аппаратную и программную мощность сервера, и нет необходимости создавать специальную программу-клиента, так как в этом качестве можно задействовать любой браузер. Создавать такие приложения лучше в среде программирования, имеющей доступ к обширным библиотекам функций, реализующих решение множества прикладных задач. В операционной системе Windows такими средами WEB-программирования являются, например, MS Visual Studio, RAD Studio, позволяющие пользоваться языками C#, C++ и обширными библиотеками функций. В операционной системе Linux такую возможность предоставляет, например, пакет Qt [1] с использованием QT Creator. В стандартную поставку Qt не входит класс, реализующий функции WEB-сервера на языке C++. Однако существует его реализация с открытым кодом по адресу [2], которая хорошо включается в среду Qt и позволяет создавать web-приложения, удовлетворяющие практическим требованиям. Обмен информацией между браузером и серверным WEB-приложением осуществляется по TCP соединению, которое совершенно не защищено, что по нынешним временам является серьезным недостатком. В среде Internet существует несколько предложений, как защитить соединение QHttpServer и браузера по протоколу SSL, например, [3], однако полной реализации этих идей пока не опубликовано. В настоящей статье представлена практическая реализация использования протокола SSL для защиты информации TCP соединения браузера и QHttpServer.
Постановка задачи и реализация
Использование протокола SSL [4] для защиты TCP соединения предпочтительно потому, что его поддержка уже включена в браузере и остается организовать ее только на стороне QHttpServer. Используя идеи [3, 5], можно произвести замену взаимодействия классов следующим образом. Исходное взаимодействие классов QHttpServer HttpConnection (здесь используется незащищенное TCP соединение) представлено на рис. 1.
Рис. 1 Упрощенная диаграмма исходных классов
Эту последовательность классов следует заменить на другую последовательность QHttpServer QSslServer QHttpConnection (в классе QSslServer используется QSslSocket), которая представлена на рис. 2.
Рис. 2 Упрощенная диаграмма новой последовательности классов
Для этого необходимо произвести некоторые изменения в исходных файлах [2]. Ниже приведены фрагменты текстов изменяемых файлов (рис. 3 - 5). Все изменения и дополнения выделены жирным шрифтом.
Рис. 3 Изменения в файле qhttpserverfwd.h
Рис. 4 Изменения в файле qhttpserverfwd.h.
Рис. 5 Изменения в файле qhttpserver.cpp
Все изменения были осуществлены при создании серверного WEB-приложения, реализующего краткосрочное прогнозирование момента времени и магнитуды будущего землетрясения на основе волновых форм предшествующих землетрясений [6, 7]. Проект был реализован в среде Qt Creator 3.3.0 (основан на Qt 5.4.0) операционной системы Fedora - 20 (32-битная версия) (коммерческой версией Fedora является Red Hat). Были использованы внутренние сертификационные файлы Fedora-20 localhost.crt и localhost.key, которые были скопированы в другой рабочий каталог проекта.
Проект также был реализован в среде Qt Creator 4.2.1 (основан на Qt 5.8.0) операционной системы Fedora-25 (64-битная версия) и в операционной системе As- traLinux (64-битная версия).
На рис. 6 и 7 представлены входные формы проекта в различных браузерах.
Рис. 6 Входная форма проекта в браузере Yandex
Рис. 7 Входная форма проекта в браузере Firefox
При вызове проекта необходимо соглашаться на использование ненадежного сертификата. Факт передачи по сети кодированных сообщений проверялся сниффером WireShark [8].
Заключение
Web-приложение, созданное на основе класса QHttpServer, является мини - WEB-сервером, у которого оставлены только методы, необходимые для обслуживания самого web-приложения. Это снижает риск успешных атак на такой мини- WEB-сервер по сравнению с полновесными WEB-серверами.
Расширение возможностей класса QHttpServer включением протокола SSL повышает надежность и защищенность разработанных на его основе серверных WEB-приложений в операционной системе Linux, исключая возможность перехвата логинов и паролей, а также шифрованием всего трафика при взаимодействии браузера и серверного WEB-приложения.
Литература
1. URL: https://www.qt.io/ru/ (время обращения - ноябрь 2019 г.)
2. URL: https://github.com/nikhilm/qhttpserver/ (время обращения - ноябрь 2019 г.)
3. URL: https://github.com/nikhilm/qhttpserver/issues/33 (время обращения - ноябрь 2019 г.)
4. Фороузан Б.А. Криптография и безопасность сетей. М.: Интернет-Университет информационных технологий: Бином. Лаборатория знаний. 2010.
5. URL: https://doc-snapshots.qt.io/qt5-5.9/qsslsocket.html (время обращения - ноябрь 2019 г.)
6. Пат. 2558277 РФ. Способ краткосрочного прогнозирования локальной магнитуды землетрясения / В.Д. Епанешников, И.В. Епанешникова // Официальный бюл. «Изобретения. Полезные модели». 2015. № 21. С. 1-9.
7. Епанешникова И.В. Защищенное ПО SSL серверное WEB-приложение мониторинга краткосрочных предвестников землетрясений В ОС LINUX. № 2019613705, 21.03.2019 Бюл. № 4. URL:http://www1.fips.ru/wps/PA_FipsPub/res/BULLETIN/PrEVM/2019/04/20/ INDEX.HTM.
8. URL: https://www.wireshark.org (время обращения - ноябрь 2019 г.)
Размещено на Allbest.ru
Подобные документы
Анализ принципа создания приложений для Linux. Состав стандартного проекта CLX, его иерархия классов, свойства, методы, отличия от VCL. Особенности кроссплатформенного программирования, а также дополнительные возможности кроссплатформенных приложений.
курсовая работа [107,2 K], добавлен 25.12.2009Linux – одна из наиболее популярных распространяемых бесплатно операционных систем. Работа с базовым ограниченным набором программ по умолчанию. Характеристика основных программ, которые расширяют возможности операционной системы Linux для пользователя.
презентация [486,5 K], добавлен 09.10.2013Знакомство с этапами разработки трёх приложений для системы семейства Linux с использованием языка программирования С++. Анализ особенностей операционной системы Ubuntu 12.10. Характеристика способов тестирования команд с помощью стандартных средств.
контрольная работа [732,1 K], добавлен 06.08.2013Назначение серверных операционных систем. Сравнительный анализ серверных операционных систем Windows и Linux и сравнение их по важным показателям таким как: пользовательский графический интерфейс, безопасность, стабильность работы, возможность и цена.
курсовая работа [50,1 K], добавлен 03.07.2012Преимущество построения Web-приложений для поддержки стандартных функций браузера. Настройка проекта Web-приложения. Создание и изменение исходных файлов. Изменение файла JavaServer Pages по умолчанию. Основные проблемы при выполнении Web-приложений.
контрольная работа [362,8 K], добавлен 10.11.2013Принципы написания оконных приложений, представляющих данные в табличном виде и осуществляющих взаимодействие с символьными и байтовыми потоками ввода-вывода в среде Eclipse. Особенности построения приложений с расширенным графическим интерфейсом.
методичка [1,0 M], добавлен 01.05.2014История создания и общая характеристика операционных систем Windows Server 2003 и Red Hat Linux Enterprise 4. Особенности установки, файловых систем и сетевых инфраструктур данных операционных систем. Использование протокола Kerberos в Windows и Linux.
дипломная работа [142,7 K], добавлен 23.06.2012Основные вехи на пути развития систем программирования. Microsoft Access - первая СУБД для персональных компьютеров, созданная для работы в среде Windows. Перенос файл-серверных приложений в среду клиент-сервер. Использование ActiveX Data Objects.
презентация [662,2 K], добавлен 11.04.2013Анализ технических возможностей операционной системы Mandriva Linux - дистрибутива GNU/Linux, разрабатываемого французской компанией Mandriva, выпускающей свободные, коммерческие и корпоративные версии своего дистрибутива. Этапы установки оболочки Linux.
презентация [26,2 M], добавлен 23.05.2010Пример окна входа в систему Linux (графический режим). Простейшие команды Linux. Основные задачи при управлении пользователями. Сведения, которые нужно указать для вновь создаваемого пользователя. Содержимое файла/etc/shadow (в котором содержатся пароли).
лекция [603,7 K], добавлен 20.12.2013