Назад в библиотеку

Разработка защищенного протокола обмена сообщениями между пользователями и клиент-серверного программного обеспечения Crypto Messenger

Автор: Крушанов А.И., Чернышова А.В.
Источник: Программная инженерия: методы и технологии разработки информационно-вычислительных систем (ПИИВС-2018) / Материалы II Международной научно-практической конференции. – Донецк, ДонНТУ – 2018.

Аннотация

Крушанов А.И., Чернышова А.В. Разработка защищенного протокола обмена сообщениями между пользователями и клиент-серверного программного обеспечения Crypto messenger. Разработан протокол обмена мгновенными сообщениями на базе протокола XMPP, сформированы требования к клиент-серверному программному продукту Crypto Messenger. Проведено проектирование и реализация программного продукта.

Общая постановка проблемы

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

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

Цель работы

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

Обзор существующих мессенджеров, поддерживающих шифрование передаваемых данных

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

Telegram Messenger [2] – кроссплатформенный мессенджер, созданный Павлом Дуровым и Николаем Дуровым. Впервые представлен в 14 августа 2013 года. В продукте используются проприетарная серверная часть c закрытым кодом, работающая на мощностях нескольких компаний США и Германии и несколько клиентов с открытым исходным кодом, в том числе под лицензией GNU GPL [3]. Мессенджер позволяет обмениваться сообщениями, вложениями любых типов, аудиосообщениями, а также совершать аудио звонки. В продукте реализованы возможности оконечного шифрования без хранения данных на сервере. На рынке мессенджер представлен в виде веб-клиента, клиентов для мобильных устройств и компьютеров.

WhatsApp [4] – мессенджер, созданный Яном Кумом и Брайаном Эктоном (с октября 2014 года принадлежит Facebook Inc.), обладающий обширным рядом функций, а именно: обмен сообщениями, поддержка голосовой и видеосвязи. Первая версия продукта была продемонстрирована 24 февраля 2009 года. Мессенджер был неоднократно раскритикован экспертами в связи с тем, что сообщения и прочие конфиденциальные данные пользователя передавались в открытом виде. Шифрование данных было реализовано только в 2012 году. Приложение представлено в виде клиентов для мобильных устройств.

Проектирование авторского протокола

Проанализировав существующие методы передачи моментальных сообщений, было принято решение о проектировании собственного протокола, базирующегося на протоколе XMPP [5]. Разрабатываемый протокол предназначен для передачи данных по HTTP в формате XML [6].

На рисунке 1 представлен пример взаимодействия пользователей по авторскому протоколу, описывающий следующие этапы:

Рисунок 1 – Пример взаимодействия клиентов по авторскому протоколу

Рисунок 1 – Пример взаимодействия клиентов по авторскому протоколу

Проектирование приложения Crypto Messenger

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

На основе вышеперечисленных требований произведено проектирование программного продукта.

На рисунке 2 представлена диаграмма вариантов использования.

Рисунок 2 – Диаграмма вариантов использования

Рисунок 2 – Диаграмма вариантов использования

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

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

На рисунке 3 представлена схема данных серверной базы данных. Клиентская схема данных аналогична серверной.

Рисунок 3 – Схема данных серверной базы данных

Рисунок 3 – Схема данных серверной базы данных

Выводы

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

Список использованной литературы

1. Protectimus – Каким должен быть безопасный мессенджер. https://www.protectimus.com/blog/ru-secure-messenger
2. Википедия – Telegram Messenger https://ru.wikipedia.org/wiki/Telegram
3. Википедия – GNU General Public License https://ru.wikipedia.org/wiki/GNU_General_Public_License
4. Википедия – WhatsApp https://ru.wikipedia.org/wiki/WhatsApp
5. Википедия – XMPP https://ru.wikipedia.org/wiki/XMPP
6. Википедия – XML https://ru.wikipedia.org/wiki/XML
7. Википедия – RSA https://ru.wikipedia.org/wiki/RSA
8. Википедия – Протокол Диффи – Хеллмана https://ru.wikipedia.org/wiki/ Протокол_Диффи_—_Хеллмана
9. Википедия – Advanced Encryption Standard https://ru.wikipedia.org/wiki/Advanced_Encryption_Standard