Утечка информации в сети

Анализ утечек информации в сети и их классификация. Проектирование базы данных. Построение диаграммы последовательности. Процедура подготовки веб-интерфейса. Реализация функций на языке PHP. Необходимость в сервисах и средствах для защиты информации.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.07.2017
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Содержание

Введение

Глава 1. Предпроектное исследование и анализ предпроектной ситуации

1.1 Анализ утечек информации в сети и их классификация

1.2 Анализ существующих разработок

1.3 Обоснование необходимости разработки сервиса

1.4 Развёрнутая постановка целей и задач

1.5 Обоснование проектных решений

Глава 2. Проектная часть

2.1 Проектирование сервиса

2.2 Проектирование базы данных

2.3 Построение диаграммы классов

2.4 Построение диаграммы последовательности

2.5 Построение диаграммы прецедентов

Глава 3. Реализация программы

3.1 Выбор среды и инструментов разработки

3.2 Общая структура проекта

3.3 Подготовка веб-интерфейса

3.4 Разработка базы данных для сервиса

3.5 Реализация функций на языке PHP

3.6 Демонстрация работы сервиса

Заключение

Список используемых источников

Приложения

Введение

утечка информация сеть интерфейс

Одной из самых востребованных возможностей современных информационных технологий, является возможность хранения информации. Однако с другой стороны, эта возможность создает проблему анонимности и безопасности для информации в сети.

Например, по данным “SearchInform” в 2016 году от утечек конфиденциальных данных пострадали 49%, российских компаний.

Согласно индексу критичности утечки данных Gemalto (Breach Level Index), в 2016м году по всему миру было зафиксировано более полутора тысяч инцидентов утечки информации, которые привели к компрометации более миллиарда записей данных. Например, в России, самой крупной среди них является атака на сервис Mail.ru получившая 9 баллов по Индексу критичности утечек. В результате этой атаки было скомпрометировано более 20ти миллионов записей, включавших в себя данные об именах пользователей, зашифрованные пароли, IP-адреса, а также их телефонные номера.

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

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

Востребованность темы подтверждается перспективностью стремительного перехода компаний к использованию электронного документооборота.

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

Цель работы - создание сервиса приватных сообщений. В связи с поставленной целью требуется решить следующие задачи:

1. Анализ существующих сервисов для доставки приватных сообщений.

2. Разработка веб-сервиса.

3. Сравнение существующих и созданного сервисов.

4. Общая оценка работы сервиса.

Глава 1. Предпроектное исследование и анализ предпроектной ситуации

1.1 Анализ утечек информации в сети и их классификация

Утечки информации - неправомерное получение конфиденциальной информации, которое может быть как умышленным так и случайным. Большинство информации передаваемой в сети является ценной и утечка таких данных обычно влечет за собой вред. Утрата важных данных может случиться в результате неправильного использования и несоблюдения правил информационной защиты, но иногда данные теряются по независимым от пользователя причинам. Далее рассмотрим основные виды утечек информации в сети.

Инсайдеры

Такие утечки происходят по вине сотрудников имеющих доступ к информации и умышленно передающих их третьим лицам.

Кража информации (внешняя)

Данный вид утечки обычно осуществляются непосредственно в сети или воруются с носителей. По данным Infowatch, в 2013 году, большинство утечек важных данных была совершенна в результате умышленных действий извне.

Рисунок 1. Статистика умышленных утечек данных в сети, 2013 г.

Эти утечки в свою очередь можно разделить на несколько категорий:

Кражи с физических носителей

Удаленные кражи в сети

Кража данных с внешнего сервера

Потеря данных с физических носителей происходит значительно реже, так как требует непосредственного доступа к устройству, компьютеру, телефону, подключаемому внешнему диску. В свою очередь для кражи в сети, злоумышленнику не обязательно иметь прямой физический доступ, поэтому каждое устройство подключенное к проводной или беспроводной сети оказывается под угрозой. По статистике популярного независимого информационно-аналитического центра anti-mailware, 15% случаев приходится на прямые или косвенные хакерские атаки. К числу таких относятся вредоносные программы (бекдоры, трояны), нацеленные на проникновение в систему для дальнейшего похищения важных данных, ее копирования, искажения или вовсе удаления.

Случайные утечки

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

Однако другой частой причиной таких утечек является физические, бумажные носители. Решением данной проблемы является переход на функциональные системы DLP, которые блокируют отправку на печать недозволенной информации, проверяя соответствие почтового адреса и адресата.

В 2016-м году аналитический центр InfoWatch предоставил результаты исследования утечек информации в компаниях. Согласно этим данным, число случайных утечек в сети возросло до 79,7%. Например, в 2014-2015 годах, большая часть чувствительных данных, к которым относятся персональные данные, государственная и коммерческая тайна, платежная информация, была скомпрометирована в результате непреднамеренных действий сотрудников.

Рисунок 2. Статистика случайных утечек данных в сети, 2013-2015 гг.

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

Почта - 49%;

Интернет мессенджеры 21%;

Skype - 16%;

Облачные хранилища данных 14%.

Рисунок 3. Распределение утечек по каналам 2013-2014 гг.

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

1.2 Анализ существующих разработок

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

Таблица 1. Сравнение сервисов

Функциональное требование

privnote

Temp.pm

wickr

Наличие кроссплатформенности или веб-интерфейса

Да

Да

Нет

Наличие открытого исходного кода

Нет

Нет

Нет

Шифрование передаваемых данных

Нет

Нет

Да

Наличие сведений о том, что сервис не сохраняет логи.

Нет

Нет

Нет

HTTPS/TLS соединение

Нет

Да

Нет

Наличие выделенного сервера

Нет

Да

Да

Доступ к информации по парою

Да

Да

Нет

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

наличие веб-интерфейса;

открытый исходный код;

шифрование передаваемых данных;

отсутствие логирования;

доступ к информации по паролю.

1.3 Обоснование необходимости разработки сервиса

Опираясь на анализ современных сервисов отправки приватных сообщений можно выделить ряд недостатков:

1. Наличие логирования.

2. Отсутствие веб-платформы.

3. Отсутствие шифрования данных.

4. Отсутствие открытого исходного кода.

Решением данных проблем будет создание нового сервиса приватных сообщений, не сохраняющего логи, а так же шифрующего передаваемые данные, кроме того использующего простую и удобную веб-платформу.

1.4 Развёрнутая постановка целей и задач

Целью данной работы является разработка сервиса приватных сообщений без логирования.

Для достижения поставленной цели необходимо решить следующие задачи:

1. Проанализировать данные об утечках информации в сети;

2. Разработать сервис для отправки приватных сообщений;

3. Программно реализовать сервис, с помощью инструментальных средств;

4. Оценить общую работу программы;

Сервис должен быть написан на подходящем языке программирования, без ошибок.

Большое внимание должно быть уделено безопасности во избежание уязвимостей, которые могут привести к компрометации важных данных. Стоит обратить внимание на несколько пунктов:

Защита от SQL-инъекций, путем подставления данных только через плейсхолдеры;

Использование нестандартных директорий каталогов и служебных файлов. (Например расположение админ-панели по адресу /admin, ставит ее под легкий удар хакеров);

Использование “сложных” паролей доступа к панели администратора, для защиты от подбора паролей с помощью программных средств хакеров (Brute Force);

Минимизация таймаута сессии. При наличии большого таймаута сессии взломщик может использовать старые данные для входа;

Индексирование директорий. Если на сайте отсутствует определенная страница, сервер отображает список директорий, что может привести к тому, что злоумышленник узнает место расположения панели администратора.

Сервис должен иметь шифрование данных по алгоритму blowfish, что позволит обеспечить дополнительную сохранность информации в случае утечки.

Чтобы не допустить утечек информации со стороны клиента, на сервисе должна быть реализована функция установки пароля для доступа к передаваемым данным.

Сервис также должен иметь простой и доступный веб-интерфейс (UI), обладающий кроссплатформенной версткой.

Исходный код программы должен быть открытым, поэтому он будет размещен на веб-сервисе для хостинга IT-проектов Github, в открытом репозитории. Такая мера является хорошим тоном и указывает на «прозрачность» сервиса.

Сам сервис должен быть размещен на выделенном сервере, на котором не будут вестись логи.

Итого сервис должен обладать следующими чертами:

Доступность - наличие полнофункционального веб-интерфейса, доступного для работы с любого устройства;

Шифрование данных;

Защищенность данных на сервере ;

Наличие пароля для доступа к информации .

1.5 Обоснование проектных решений

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

Требования к структуре и функционированию

Перечень подсистем, их назначение и основные характеристики

Сервис предполагает использование подсистемы Добавление сообщения в базу данных. Назначением этой подсистемы является фильтрация и сбор данных полученных от сервера. Основными характеристиками являются, хранение в БД, данных о наличии оставленного сообщения и зашифрованном пароле.

Требования к способам и средствам связи для информационного обмена между компонентами системы

Обмен данными в системе должен происходить с помощью базы данных MySQL.

Требования к характеристикам взаимосвязей системы со смежными системами

Программно-технические средства реализовываемого сервиса должны соответствовать стандартам сети Интернет и поддерживать безопасный прием и передачу данных по протоколу прикладного уровня HTTP с расширением HTTPS. Сервер должен иметь поддержку языка PHP версии не ниже чем 5.4 и иметь удаленный доступ к серверу через протокол SSH. Клиентская часть должна поддерживать формат передачи данных JSON, а так же язык JavaScript.

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

Технические требования к вышеперечисленным функциям будут определены на стадии технического проекта.

Требования к режимам функционирования

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

Требования к надежности

Сервис всегда должен быть доступен клиенту, за исключением технических работ, о которых администрация сервиса сообщает заранее. Кроме того система должна быть защищена от уязвимостей: SQL-инъекций, ISE, Directory Indexing. Сервис также должен уведомлять пользователя об вводе информации неверного формата.

Требования безопасности

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

Требования к эргономике и технической эстетике

Взаимодействие пользователей с системой должно осуществляться посредством визуального графического интерфейса (GUI). Ввод-вывод данных, прием управляющих команд и отображение результатов их исполнения должны выполняться в интерактивном режиме, в реальном времени. Интерфейс должен соответствовать современным эргономическим нормативам: ГОСТ 12.2.049, ГОСТ 30.001, ГОСТ 20.39.108, ГОСТ 21958 и ГОСТ 50948 (для пользователей с мониторами ЭЛТ).

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

- панели навигации должны располагаться одинаково на всех страницах платформы;

- элементы интерфейса должны быть разделены в логические блоки, для простоты восприятия.

- важные элементы интерфейса должны располагаться на видимой части экрана и должны быть выделены соответствующим образом.

Интерфейс должен обеспечивать комфортный доступ к основным функциям и операциям, выполняемым подсистемами.

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

Требования к эксплуатации, техническому обслуживанию, ремонту и хранению компонентов системы

Для эксплуатации разрабатываемой информационной системы необходимы следующие условия:

1) подключение к глобальной сети интернет с минимальной скоростью прередачи данных 1Mб/c.

2) со стороны пользователя выдвигаются следующие требования к браузерам: Internet Explorer версии не ниже 9.0, Google Chrome версии не раньше 12.0, Opera версии не ниже 18.0, Firefox версии не ниже 16.0, Safari начиная с версии 6.0.

3) электропитание технических средств от сети напряжением 220 В с частотой 50 Гц с глухо-заземленной нейтралью;

4) физическая защита аппаратных компонентов системы.

Требования к защите информации от несанкционированного доступа

Разрабатываемый сервис должен обеспечивать защиту от несанкционированного доступа к передаваемой информации и данным пользователей.

Компоненты подсистемы защиты от НСД должны обеспечивать:

передачу данных пользователей по HTTPS и SSH;

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

фильтрацию входящих и исходящих запросов;

проверку типа информации, которою клиент передает через поле ввода;

blowfish шифрование полученной информации для хранении в базе данных;

Требования по сохранности информации при авариях

Система должна обладать процедурой восстановления требуемого объема информации по всем уровням иерархии после восстановления, а также должна обеспечивать резервное копирование баз данных на внешние носители.

Программное обеспечение серверной части системы должно автоматически восстанавливать ее функционирование после аварии.

Требования к функциональности системы

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

Требования к видам обеспечения

Требования к информационному обеспечению

База данных должна соответствовать требованиям нормализации не ниже 2 нормальной формы. Также база данных должна быть целостна и связана по ключам.

Все подсистемы связаны между собой общим набором данных находящихся в базе данных.

Требования по применению в системе языков высокого уровня

При разработке сервиса используется язык программирования - PHP, с использованием фреймворка Yii2

Требования к программному обеспечению

Разрабатываемая платформа должна базироваться на удаленных серверах со стеком LAMP(linux nginx MySql PHP). Сервер должен иметь подключение по протоколу SSH, также на сервере должна быть подключаемая библиотека Curl. Cо стороны пользователя выдвигаются следующие требования к браузерам: Internet Explorer версии не ниже 9.0, Google Chrome версии не раньше 12.0, Opera версии не ниже 18.0, Firefox версии не ниже 16.0, Safari начиная с версии 6.0.

Требования к техническому обеспечению

Для нормального функционирования веб-платформы сервер должен иметь приблизительные характеристики:

Платформа Linux, Windows;

Операционная система: Ubuntu 16.04.2 x64;

Процессор Intel Xeon 1 CPU;

Тактовая частота 2.4 Ghz;

Оперативная память (RAM) 512Mb DDR3;

Защита от DDOS-атак;

Требования к метрологическому обеспечению

Требований к метрологической совместимости технических средств системы не предъявляется.

Требования к организационному обеспечению

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

Глава 2. Проектная часть

2.1 Проектирование сервиса

На сегодняшний день, одной из самых актуальный проблем в области IT-технологий, является проблема безопасности информации в сети интернет. Информационная безопасность, это состояние, при котором информация является защищенной, обеспеченна безопасность ее целостности, конфиденциальности и доступности. Такое состояние можно охарактеризовать следующими пунктами:

Аутентификация - процесс при котором пользователь будет распознан, после чего ему будут выданы определенные права.

Целостность - состояние информации, при котором сохраняется ее изначальное содержание. В частности, под этим понимают идентичность отправленных данных с принятыми.

Секретность - защита от несанкционированного перехвата данных.

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

Шифрование данных - обратимое преобразование информации в целях её защиты от неавторизованных лиц. Шифрование данных защищает информацию и в тоже время создает условие, при котором попадание такой информации в руки злоумышленника не принесет ему никакой ценности.

Шифрование данных происходит по определенному алгоритму. В современном мире их принято разделять на три группы:

алгоритмы симметричного шифрования;

алгоритмы ассиметричного шифрования;

алгоритмы хэш-функций.

В алгоритмах симметричного шифрования, для дешифрования и шифрования данных используется один и тот же ключ. Основными требованиями в симметричных алгоритмах являются:

полное уничтожение всех статистических закономерностей;

отсутствие линейности.

Симметричные алгоритмы разделяются на блочные и поточные.

Блочные системы разбивают данные на блоки для дальнейшего преобразования с помощью ключа.

В поточных системах шифрование происходит потоком, по мере генерации выходной гаммы.

Рисунок 4. Пример схемы с использованием симметричного алгоритма

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

Хэширование преобразовывает информацию произвольной длины в строку или целочисленный элемент. Хэширование является односторонним процессом, это означает, что произвести обратное преобразование практически невозможно.

Простейшим примером хэширование является PHP функция md5().

Рисунок 5. Пример применения функции md5()

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

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

Сравнение алгоритмов шифрования приведено в таблицах 2, 3.

Таблица 2. Параметры алгоритмов шифрования

Алгоритм шифрования

Размер ключа, бит

Длина блока, бит

Число циклов

Основные операции

DES

56

64

16

Подстановка, перестановка, сумма.

IDEA

128

64

8

Умножение по модулю 216+1, сложение по модулю 216 , кольцевая сумма

Blowfish

32-448

64

16

Сложение по модулю 232, подстановка, кольцевая сумма

ГОСТ 28147-89

256

64

32

Сложение по модулю 232, перестановка, кольцевая сумма, циклический сдвиг.

Таблица 3. Сравнительные характеристики скорости алгоритмов шифрования на Intel Xeon 1 CPU 2.4 GHz

Алгоритм шифрования

Число циклов на раунд

Число раундов

Число циклов на зашифрованный байт

Примечания

DES

18

16

45

Размер ключа 56 бит

IDEA

50

8

50

Размер ключа 128 бит

Blowfish

9

16

18

Размер ключа 448 бит

ГОСТ 28147-89

32

32

256

Размер ключа 256 бит

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

Пароль создается с помощью функции http://php.net/manual/ru/function.password-hash.php.

Пароль расшифровывается с помощью http://php.net/manual/ru/function.password-verify.php.

К указанному паролю перед хешированием добавляется случайная строка (соль). Таким образом, у двух пользователей с паролем «123456» будут разные соли «соль1» и «соль2», а соответственно и хеш-функции от «123456соль1» и «123456соль2» в базе тоже будут разные.

2.2 Проектирование базы данных

В качестве СУБД была выбрана система MySQL. В базе данных будут храниться записи о данных передаваемых пользователями полученных от удаленного сервера.

Структура базы данных предполагает наличие следующих таблиц (сущностей): уникальный ключ сообщения, текст сообщения, зашифрованный пароль.

Таблица 4. Структура БД

Название

Назначение

uid

Уникальный ключ сообщения

password_hash

Зашифрованный пароль

body

Зашифрованный текст сообщения

Разберем на примере ссылки http://whispr.in/GIO7IqbXjjdlwi4F!A03qf5Cq.

Строка GIO7IqbXjjdlwi4F - генерируемый, уникальный ключ записи (uid). Как можно заметить ссылка делиться на две части знаком “!”, A03qf5Cq в данном случае - это пароль сгенерированный автоматически, если пользователь не ввел свой пароль. Из формы ввода текста на сайте, пользователь отправляет текст сообщения (body) на сервер, генерируется уникальный ключ записи (uid), генерируется пароль (password_hash), затем все это шифруется через функцию bcrypt(blowfish) и сохраняется в базу данных.

Основываясь на этих данных создадим диаграмму IDEF0 и диаграмму декомпозиции.

Все функциональные процессы описаны в диаграммах (6, 7).

Рисунок 6. Диаграмма IDEF0

Рисунок 7. Диаграмма декомпозиции

2.3 Построение диаграммы классов

Класс -- это элемент ПО, описывающий абстрактный тип данных и его частичную или полную реализацию. Другие абстрактные типы данных -- метаклассы, интерфейсы, структуры, перечисления, -- характеризуются какими-то своими, другими особенностями. Наряду с понятием «объекта» класс является ключевым понятием в ООП

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

Таблица 5. Описание классов

Наименование

Описание

NoteController

Основной класс, предназначенный для создания, просмотра, и удаления сообщений

Note.php

Класс модели сообщения. В нем описаны сценарии и валидация данных

SiteController

Подключения экшна, для вывода ошибок

Для построения диаграммы классов мы воспользуемся встроенной функцией IDE Phpstorm автоматической генерации UML-диаграммы.

2.4 Построение диаграммы последовательности

Используя данные полученные из прошлого пункта мы можем построить диаграмму последовательности.

Диаграмма последовательностей относится к диаграммам взаимодействия UML, описывающим поведенческие аспекты системы, но рассматривает взаимодействие объектов во времени. Другими словами, диаграмма последовательностей отображает временные особенности передачи и приема сообщений объектами.

Основными элементами диаграммы последовательности являются обозначения объектов (прямоугольники с названиями объектов), вертикальные «линии жизни», отображающие течение времени, прямоугольники, отражающие деятельность объекта или исполнение им определенной функции (прямоугольники на пунктирной «линии жизни»), и стрелки, показывающие обмен сигналами или сообщениями между объектами.

Рисунок 8. Диаграмма последовательности

2.5 Построение диаграммы прецедентов

Диаграмма прецедентов (диаграмма вариантов использования) в UML -- диаграмма, отражающая отношения между актёрами и прецедентами и являющаяся составной частью модели прецедентов, позволяющей описать систему на концептуальном уровне

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

Рисунок 9. Диаграмма прецедентов (вариантов использования)

У актера «Пользователь» есть следующие варианты использования:

Отправить сообщение;

Удалить сообщение сейчас;

Прочитать сообщение.

Глава 3. Реализация программы

3.1 Выбор среды и инструментов разработки

Сервис решено разрабатывать в виде веб приложения, для достижения кроссплатформенности. Существенное преимущество построения веб-приложений для поддержки стандартных функций браузера заключается в том, что функции должны выполняться независимо от операционной системы данного клиента. Вместо того, чтобы писать различные версии для Microsoft Windows, Mac OS X, GNU/Linux и других операционных систем, приложение создаётся один раз для произвольно выбранной платформы и на ней разворачивается.

Логика любого веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети.

Веб-приложение состоит из клиентской и серверной частей, тем самым реализуя технологию «клиент-сервер».

Клиентская часть реализует пользовательский интерфейс, формирует запросы к серверу и обрабатывает ответы от него.

Серверная часть получает запрос от клиента, выполняет вычисления, после этого формирует веб-страницу и отправляет её клиенту по сети с использованием протокола HTTP.

Для создания веб-приложений на стороне сервера используются разнообразные технологии и любые языки программирования, способные осуществлять вывод в стандартную консоль. Современные языки разработки backend-части приведены в таблице 6.

Таблица 6. Языки программирования веб-приложения на стороне сервера

Название языка

Лицензия

Веб-сервер

ASP

проприетарная

специализированный

C/C++

свободная

любой

Java

свободная

любой

Perl

свободная

любой

PHP

свободная

любой

Python

свободная

любой

Ruby

свободная

любой

Nodejs

MIT License

собственный

Языки программирования и технологии, которые используются на стороне клиента (Frontend) для реализации GUI:

HTML, XHTML;

CSS, SASS, LESS.

Для формирования запросов, создания интерактивного и независимого от браузера интерфейса используют:

ActiveX;

Adobe Flash, Adove Flex;

Java;

Javascript;

Silverlight.

Язык программирования должен предоставить нам средства для решения поставленной задачи. Благодаря своей богатой функциональности PHP отлично подходит для решения широкого спектра задач. Язык php, не имеет строгой типизации, поэтому достаточно прост в использовании. Так как PHP является встраиваемым языком, это дает чрезвычайную гибкость в процессе разработки. Чаще всего сценарии PHP интегрируются в HTML страницы, но при необходимости могут встраиваться и в JavaScript, WML, XML и другие языки.

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

Одним из самых больших преимуществ PHP является поддержка большого числа баз данных (более 20 видов). Кроме того, PHP поддерживает DBX для работы на абстрактном уровне и ODBC, что позволяет работать с любой базой данных, поддерживающей эти стандарты.

В качестве фреймворка, для облегчения задачи и построения проекта будет использоваться фреймворк YII2.

В выборе IDE, остановимся на JetBrains PhpStorm IDE, так как она привычней и обладает массой плюсов в разработке.

3.2 Общая структура проекта

В качестве шаблона будем использовать YII2 Basic Template. Этот шаблон - скелет веб-приложения, который идеально подходит для быстрой разработки ненагруженных проектов.

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

Рисунок 10. Структура директорий

assets - папка с бандлами, управление статикой в проекте;

commands - папка с контроллерами для консольных команд;

config - все конфигурации проекта;

controllers - контроллера;

mail - шаблоны для писем;

models - модели

runtime - папка в которой хранятся логи, файловый кеш и тп.;

tests - тесты для проекта;

vendors - внешние зависимости;

views - шаблоны проекта;

web - вэб директория проекта.

3.3 Подготовка веб-интерфейса

Полезной особенностью выбранного фреймворка Yii2, является поддержка front-end CSS фреймворка Twitter Bootstrap 3.0.

Bootstrap, позволяет упростить разработку, с помощью HTML и CSS-шаблонов для оформления типографики, веб-форм, блоков, сетки, навигации и т.д.

Данный фреймворк мы используем, чтобы:

Ускорить разработку;

Реализовать адаптивный дизайн;

Реализовать кроссбраузерность;

Фреймворк направлен на создание макета под различные устройства, планшеты, смартфоны, так как масштабируется в зависимости от ширины.

В Bootstrap встроены различные шаблоны, которые позволяют настроить дизайн с учётом работы различных браузеров. Это означает, что интерфейс будет выглядеть одинаково на любом используемом браузере.

Подключение Bootstrap к Yii2 выполняется с помощью оператора use.

Рисунок 11. Подключение Bootstrap

Для вывода компонентов фреймворка используются виджеты Yii2, настройки к которому передаются в виде массива параметров. Виджеты можно многократно использовать для форматированного вывода данных.

Чтобы реализовать веб-интерфейс разрабатываемого сервиса понадобятся определенные компоненты Bootstrap, указанные в таблице 7.

Таблица 7. Используемые компоненты Bootstrap

Название компонента

Классы

Назначение

Grid-система

row,col

верстка колонками

Навигационная панель

navbar,nav

меню навигации

Групированный список

list-group

отображение подменю

Блок

jumbotron

отображение большого центрального блока

Форма ввода

form-group

форма для ввода данных

Уведомления

alert

вывод сообщений о статусе сообщения, пользовательских ошибках и т.д.

Форма вывода

form-control

форма для вывода информации

В качестве тестирования адаптивности проверяем веб-интерфейс с помощью встроенного отладчика в браузере Google Chrome, имитируя работу с сервисом на устройстве IPhone 6 (375x667).

Рисунок 12. Отображение интерфейса сервиса на мобильном устройстве

3.4 Разработка базы данных для сервиса

Для хранения информации и параметров отправленных сообщений будет использоваться база данных Mysql.

После установки приложения на сервер и подключения к БД, нужно выполнить команду для выполнения миграции БД, которая создаст структуру на основе файла m170602_124754_init.php.

3.5 Реализация функций на языке PHP

Для данного программного модуля был сделан HTML/СSS каркас с учетом отображения на различных расширений экранов устройств с помощью фреймворка Bootstrap.

Реализация Back-end-части, будет производиться на языке PHP, на заявленном фреймворке Yii2.

Шифрование данных bcrypt.

3.6 Демонстрация работы сервиса

Рисунок 13. Создание приватного сообщения

Рисунок 14. Генерация уникальной ссылки

Рисунок 15. Запрашивание пароля для дешифрования

Рисунок 16. Получение дешифрованного сообщения

Заключение

В данном дипломном проекте разработана платформа для привлечения трафика с учетом его геолокации.

Целью данной работы являлась разработка веб-платформы для привлечения трафика с учетом его геолокации.

Для достижения поставленной цели были решены следующие задачи:

1. Выполнен анализ существующих открытых источников трафика;

2. Разработана платформа для привлечения трафика.

Существующие аналоги данной платформы по ряду характеристик уступают созданной.

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

Функционал даннной системы может быть расширен путем добавления новых модулей и расширения уже имеющихся.

Список используемых источников

1. SearchInform [Электронный ресурс]: Итоги 2016 года в области информационной безопасности. URL: https://searchinform.ru/ezhegodnoe-issledovanie-urovnya-informatsionnoj-bezopasnosti/ (дата обращения 18.05.2017).

2. InfoWatch [Электронный ресурс]: Глобальное исследование утечек конфиденциальной информации в 2016 году URL: https://www.infowatch.ru/report2016 (дата обращения 13.05.2017).

3. Tadviser [Электронный ресурс]: Утечки данных URL: http://www.tadviser.ru/index.php/ (дата обращения 11.05.2017).

4. Д.А. Ломаш. Оформление выпускных квалификационных бакалаврских проектов (работ) для студентов направления подготовки 230100.62 - Информатика и вычислительная техника: учебно - методическое пособие; Рост. гос. ун-т путей сообщения. - Ростов н/Д, 2013. - 20-21 с.

Приложение 1

Глоссарий

SQL - Standard Query Language (Стандартный язык запросов).

АИС - автоматизированная информационная система.

Архитектура системы -- совокупность свойств системы, существенных для пользователя.

Атрибут - поле данных, содержащих информацию об объекте.

БД - база данных, именованная совокупность взаимосвязанных данных, отображающая состояние объектов и их отношение, используемых несколькими пользователями и хранящимися с минимальной избыточностью.

БП - бизнес-процесс.

ГОСТ - государственный стандарт.

Ж/Д - железная дорога.

Импорт - утилита СУБД, служащая для чтения файлов информационной системы, которая содержит данные из базы данных.

Индекс - таблица, используемая для определения адреса записи.

Информационная система (ИС) - взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной цели»

ИО - информационное обеспечение

ИТ - информационные технологии.

Ключ - элемент данных, используемый для идентификации и определения адреса записи.

ЛВС - локальная вычислительная сеть.

Модель данных - базовый инструментарий, обеспечивающий на формальном абстрактном уровне конкретные способы представления объектов и связей.

ОС - операционная система.

Отношения - агрегат данных, хранящийся в одной из таблиц БД.

ПО - программное обеспечение.

Реляционная СУБД - система управления базами данных, поддерживающая реляционную модель данных.

Сервер - программа, реализующая функции СУБД: определение данных, запись/чтение/удаление данных, диспетчирование и оптимизация выполнения запросов.

Тип данных - характер данных, определяющий способ представления значения в памяти.

Файл - именуемая единица информации, поддерживаемая операционной системой.

Приложение 2

Класс NoteController - контроллер управления сообщениями

<?php

namespace app\controllers;

use app\models\Note;

use yii\web\Controller;

use yii\web\NotFoundHttpException;

class NoteController extends Controller

{

public function actionCreate()

{

$model = new Note(['scenario' => Note::SCENARIO_CREATE]);

if ($model->load(\Yii::$app->request->post()) && $model->save()) {

return $this->render('created', [

'model' => $model,

]);

} else {

return $this->render('create', [

'model' => $model,

]);

}

}

public function actionView($hash = null)

{

list($uid, $password) = array_pad(explode('!', $hash), 2, null);

$model = Note::findOne(['uid' => $uid]);

if (is_null($model)) {

throw new NotFoundHttpException(

'Записка с ID: '. $uid. ' уже была прочитана и безвозвратно уничтожена.'

'Если вы забыли переписать текст - попросите отправителя отправить новую записку.'

);

}

if (!empty($password) && !$model->validatePassword($password)) {

return $this->render('enterPasswordForm', [

'model' => $model,

]);

}

if (empty($password)) {

$model->setScenario(Note::SCENARIO_ENTER_PASSWORD);

if ($model->load(\Yii::$app->request->post()) && $model->validate() && $model->delete()) {

return $this->render('view', [

'model' => $model,

]);

} else {

return $this->render('enterPasswordForm', [

'model' => $model,

]);

}

}

$model->delete();

return $this->render('view', [

'model' => $model,

]);

}

public function actionDelete($uid)

{

$model = Note::findOne(['uid' => $uid]);

if (!is_null($model)) {

$model->delete();

}

return $this->redirect(\Yii::$app->homeUrl);

}

}

Приложение 3

Класс модели Note.php - описание сценариев и валидации данных

<?php

namespace app\models;

use yii\db\ActiveRecord;

/**

* Class Note

* @package app\models

*

* @property $uid string

* @property $password_hash string

* @property $body string

*

* @property $password string

* @property $passwordRepeat string

*/

class Note extends ActiveRecord

{

const SCENARIO_CREATE = 'create';

const SCENARIO_ENTER_PASSWORD = 'enter_password';

public $password;

public $passwordRepeat;

private $passwordEntered = false;

public static function tableName()

{

return '{{%note}}';

}

public function scenarios()

{

return [

self::SCENARIO_CREATE => ['body', 'password', 'passwordRepeat'],

self::SCENARIO_ENTER_PASSWORD => ['password'],

];

}

public function rules()

{

return [

['body', 'required', 'on' => self::SCENARIO_CREATE],

[['password', 'passwordRepeat'], 'string', 'min' => 6, 'max' => 32],

['password', 'compare', 'compareAttribute' => 'passwordRepeat', 'on' => self::SCENARIO_CREATE],

['password', 'required', 'on' => self::SCENARIO_ENTER_PASSWORD],

['password', 'validateEnterPassword', 'on' => self::SCENARIO_ENTER_PASSWORD],

];

}

public function validateEnterPassword($attribute, $params)

{

if (!$this->validatePassword($this->$attribute)) {

$this->addError($attribute, 'Неверный пароль.');

}

}

public function attributeLabels()

{

return [

'body' => 'Текст записки',

'password' => 'Секретный пароль',

'passwordRepeat' => 'Повторите пароль',

];

}

public function beforeSave($insert)

{

if (parent::beforeSave($insert)) {

$security = \Yii::$app->security;

if (empty($this->password)) {

$this->password = $security->generateRandomString(8);

} else {

$this->passwordEntered = true;

}

$this->uid = $security->generateRandomString(16);

$this->setPassword($this->password);

return true;

} else {

return false;

}

}

public function validatePassword($password)

{

return \Yii::$app->security->validatePassword($password, $this->password_hash);

}

public function setPassword($password)

{

$this->password_hash = \Yii::$app->security->generatePasswordHash($password, 8);

}

public function getLink()

{

$id = '';

if ($this->passwordEntered === false) {

$id .= $this->uid . '!' . $this->password;

} else {

$id .= $this->uid;

}

return \Yii::$app->request->getHostInfo() . '/' . $id;

}

}

Приложение 4

Класс SiteController - подключение экшена, для вывода ошибок

<?php

namespace app\controllers;

use yii\web\Controller;

class SiteController extends Controller

{

/**

* @inheritdoc

*/

public function actions()

{

return [

'error' => [

'class' => 'yii\web\ErrorAction',

],

];

}

}

Размещено на Allbest.ru

...

Подобные документы

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

    реферат [32,8 K], добавлен 21.09.2014

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

    курсовая работа [1,7 M], добавлен 18.03.2013

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

    курсовая работа [762,8 K], добавлен 21.06.2011

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

    курсовая работа [32,1 K], добавлен 12.01.2008

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

    курсовая работа [501,7 K], добавлен 02.12.2014

  • Общий анализ структуры локальной вычислительной сети военного назначения. Необходимость повышения защиты информации путем использования дополнительных средств защиты. Создание виртуальных защищенных сетей в рамках локальной компьютерной сети объекта.

    дипломная работа [1,2 M], добавлен 20.10.2011

  • Проблемы защиты информации человеком и обществом. Использование информации. Организация информации. Угроза информации. Вирусы, характеристика и классификация. Проблемы защиты информации в Интернете. Анализ и характеристики способов защиты информации.

    реферат [36,5 K], добавлен 17.06.2008

  • Пути несанкционированного доступа, классификация способов и средств защиты информации. Каналы утечки информации. Основные направления защиты информации в СУП. Меры непосредственной защиты ПЭВМ. Анализ защищенности узлов локальной сети "Стройпроект".

    дипломная работа [1,4 M], добавлен 05.06.2011

  • Обработка информации, анализ каналов ее возможной утечки. Построение системы технической защиты информации: блокирование каналов несанкционированного доступа, нормативное регулирование. Защита конфиденциальной информации на АРМ на базе автономных ПЭВМ.

    дипломная работа [398,5 K], добавлен 05.06.2011

  • Необходимость и потребность в защите информации. Виды угроз безопасности информационных технологий и информации. Каналы утечки и несанкционированного доступа к информации. Принципы проектирования системы защиты. Внутренние и внешние нарушители АИТУ.

    контрольная работа [107,3 K], добавлен 09.04.2011

  • Определение в процессе исследования эффективного способа защиты информации, передающейся по Wi-Fi сети. Принципы работы Wi-Fi сети. Способы несанкционированного доступа к сети. Алгоритмы безопасности беспроводных сетей. Нефиксированная природа связи.

    курсовая работа [2,3 M], добавлен 18.04.2014

  • Основные положения теории защиты информации. Сущность основных методов и средств защиты информации в сетях. Общая характеристика деятельности и корпоративной сети предприятия "Вестел", анализ его методик защиты информации в телекоммуникационных сетях.

    дипломная работа [1,1 M], добавлен 30.08.2010

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

    дипломная работа [1,6 M], добавлен 26.05.2014

  • Изучение и характеристика правовых, организационных и технических мер информационной безопасности. Технические средства защиты от утечек информации: криптография, идентификация пользователей и управление доступом. Описание алгоритма защиты базы данных.

    курсовая работа [788,8 K], добавлен 27.04.2013

  • Разработка базы данных для хранения сведений и расчета заработной платы работников ОАО "Печатный двор". Построение ER-диаграммы на основании информации о персонале. Построение нормальных форм отношений. Разработка запросов и пользовательского интерфейса.

    курсовая работа [1,4 M], добавлен 23.12.2010

  • Разработка программы, создающей и управляющей базой данных, ее реализация на языке Turbo Pascal. Организация алгоритма программы. Вывод информации и возможность добавления информации в базу данных. Поиск информации в базе данных по заданному значению.

    курсовая работа [26,7 K], добавлен 19.06.2010

  • Проблема защиты информации. Особенности защиты информации в компьютерных сетях. Угрозы, атаки и каналы утечки информации. Классификация методов и средств обеспечения безопасности. Архитектура сети и ее защита. Методы обеспечения безопасности сетей.

    дипломная работа [225,1 K], добавлен 16.06.2012

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

    презентация [226,0 K], добавлен 30.01.2012

  • Главные каналы утечки информации. Основные источники конфиденциальной информации. Основные объекты защиты информации. Основные работы по развитию и совершенствованию системы защиты информации. Модель защиты информационной безопасности ОАО "РЖД".

    курсовая работа [43,6 K], добавлен 05.09.2013

  • Определение перечня защищаемой информации и прав пользователей с учетом их должностных полномочий. Выявление путей несанкционированной утечки данных. Установка средств защиты информации, настройка антивирусных программ. Работа с журналами аудита системы.

    курсовая работа [753,4 K], добавлен 29.11.2011

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