Расширение защиты информационных систем защитой индивидуальных 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.2009

  • Linux – одна из наиболее популярных распространяемых бесплатно операционных систем. Работа с базовым ограниченным набором программ по умолчанию. Характеристика основных программ, которые расширяют возможности операционной системы 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.2014

  • UNIX - одна з найпопулярніших в світі операційних систем. Ключеві риси 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.