Расширение защиты информационных систем защитой индивидуальных 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Требования к операционной системе Linux, встраиваемые приложения. Предсказуемость поведения, свойства ОС реального времени. Структура ядра; системные вызовы; работа с файлами. Стандартные устройства; обзор программирования; компилирование и линковка.
лекция [112,2 K], добавлен 29.07.2012Назначение, классификация, состав и назначение компонентов операционных систем. Разработка сложных информационных систем, комплексов программ и отдельных приложений. Характеристика операционных систем Windows, Linux, Android, Solaris, Symbian OS и Mac OS.
курсовая работа [2,1 M], добавлен 19.11.2014Разработка приложения, которое осуществляет удаленный доступ управления компьютером с операционной системой Linux с компьютера с ОС Windows. Реализация функциональной части. Графический интерфейс клиента и сервера. Разработка интеграционных тестов.
курсовая работа [1,1 M], добавлен 28.04.2014Управление памятью в операционной системе Linux. Физическая и виртуальная память. Исполнение и загрузка пользовательских программ, файловая система. Передача данных между процессами. Структура сети в операционной системе. Развитие и использование Linux.
презентация [1,4 M], добавлен 24.01.2014UNIX - одна з найпопулярніших в світі операційних систем. Ключеві риси Linux. Порівняльні характеристики 32-розрядних операційних систем. Поверхневий огляд характеристик ядра Linux. Програмні характеристики: базові команди і утиліти, мови програмування.
курсовая работа [33,3 K], добавлен 07.12.2010Понятие и сущность операционных систем, особенности их возникновения. История создания операционной системы Linux, ее основные характеристики, сетевые возможности. Анализ бизнес-модели производства и распространения "свободного" программного обеспечения.
реферат [35,8 K], добавлен 05.04.2010Архитектура строения операционной системы. Назначение API в операционных системах и разных платформах. Особенности строения API в ядре Linux. Реализация проекта для работы с CDROM на CentOS. Сравнение Linux и Windows. Реализация проекта на Win32 API.
дипломная работа [1,6 M], добавлен 08.06.2017История создания, архитектура операционной системы и перечень возможностей, реализуемых в Linux. Инструментальные средства и цикл разработки новой версии ядра. Жизненный цикл патча. Структура принятия решений при добавлении новых функций (патчей) в ядро.
лекция [303,8 K], добавлен 29.07.2012Анализ серверных операционных систем на базе ядра Linux. Подходы к построению маршрутизации и оценка полученных результатов. Установка операционной системы CentOS 6.6 и закономерности ее настройки. Принципы и основные этапы тестирования созданного шлюза.
курсовая работа [2,9 M], добавлен 19.11.2015Разложение функции в ряд Тейлора, алгоритм работы программного интерфейса сокетов, исходный текст программ с комментариями. Возможности языка программирования Си и среда разработки приложений в ОС Linux. Виртуальная среда VMWare Player и VirtualBox.
лабораторная работа [1,8 M], добавлен 02.09.2014