Автор: Грищенко О.С., Чернышова А.В.
Источник: Сборник материалов VII Международной научно-технической конференции в рамках III Международного Научного форума Донецкой Народной Республики — г. Донецк, ДонНТУ — 2017, с. 115-119.
Грищенко О.С., Чернышова А.В. Защита информации в приложениях для мгновенной передачи сообщений.Представлен обзор существующих месенджеров, поддерживающих защиту на уровне сообщений, сформированы требования к авторской программе-месенджеру. Проведено проектирование и реализация авторской программы-месенджера.
Ключевые слова: месенджер, шифрование, криптографический протокол, защита данных.
Решение о создании системы было принято в связи с актуальностью проблемы защиты персональных данных и востребованностью приложений для защищенного обмена сообщениями. Необходимость обеспечения безопасности персональных данных в наше время очень важна. Информация всегда имела большую ценность, но в связи со стремительным развитием информационных технологий защита личных данных выходит на новый уровень. Из-за этого приложения, созданные для защиты данных, сейчас обретают все большую популярность.
Цель статьи –разработка приложения для обмена мгновенными сообщениями, предоставляющего защиту пользовательских данных и удовлетворяющего современным требованиям к безопасности пользовательской переписки. Проектирование приложения осуществляется на основе информации, полученной при анализе наиболее защищенных существующих приложений. Для реализации защиты данных было решено использовать стандартные криптографические алгоритмы шифрования и электронной цифровой подписи.
Chatsecure [1] – приложение для обмена мгновенными сообщениями с поддержкой шифрования. Реализован для iOS и Android (более не поддерживается). Разработчиком является GuardianProject. Шифрование обеспечивается с помощью протокола OTR (Off-the-Record)[2]. Передача сообщений осуществляется по протоколу XMPP[3]. ChatSecure не сохраняет отправленные сообщения в памяти устройства. ChatSecure также позволяет организовывать групповые чаты. Приложение позволяет передавать мультимедиа-сообщения, фотографии и файлы. ChatSecure является бесплатным open source проектом.
CryptoCat [4] – приложение для обмена мгновенными сообщениями с поддержкой шифрования. Является открытым. Может работать в браузерах Chrome, Firefox, Safari и Opera, а также в качестве отдельного клиента в Apple OS X и на iPhone. Использует шифрование данных через протокол OTR и передает зашифрованные данные по XMPP. Сообщения шифруются с помощью AES-256[5]. CryptoCat предоставляет пользователям возможность обмениваться документам и мультимедийными фалами (при этом файлы шифруются с помощью AES-256). Сообщения не хранятся и после окончания диалога удаляются автоматически в течение нескольких минут. При повторном входе в тот же диалог никто из участников не сможет просмотреть ранее отправленные сообщения. Файлы хранятся в течении 30 дней.
Telegram [6] – кроссплатформенный месенджер, позволяющий обмениваться текстовыми сообщениями и файлами размером до 1,5 Гб. Обеспечивает защиту данных с помощью протокола MTProto, который предполагает использование нескольких криптографических протоколов. При авторизации и аутентификации пользователя приложение используют алгоритмы RSA-2048[7] и Диффи-Хеллмана [8]. Для шифрования сообщений использует AES. В режиме секретных чатов реализует end-to-end шифрование[9]. Также позволяет организовывать аудио и видео конференции.
Signal[10] позволяет обмениваться сообщениями и звонками с абонентами из телефонной книги мобильного устройства. Приложение предоставляет возможность отправлять переписки в архив. Приложение обеспечивает криптографическую защиту телефонных разговоров от прослушки, записи и перехвата. Для шифрования данных используется алгоритм AES с 256-битным ключом. Signal способно обеспечить шифрование голосовой связи на всем пути прохождения сигнала. Передача данных осуществляется через Wi-Fi подключение или мобильное соединение. Для защиты от прослушки на экране отображаются два случайных слова, которые должен повторить собеседник.
TextSecure[10] – месенджер для безопасной передачи мгновенных сообщений, файлов и мультимедиа данных. TextSecure использует открытый протокол Signal, который реализует end-to-end шифрование данных. Ключи, использующиеся для шифрования, хранятся только на устройстве пользователя. Для проверки подлинности собеседника предусмотрено ручное сравнения отпечатков ключей на устройствах, либо сканирование QR-кода. TextSecure предоставляет также возможность создания групповых чатов, которые также шифруются. При этом серверы не имеют доступа к метаданным группы.
После анализа существующих защищенных месенджеров было принято решение о разработке нового месенджера с поддержкой защиты передаваемых данных. Основываясь на анализе механизмов защиты существующих продуктов, к разрабатываемому приложению были предъявлены следующие требования:
На основе описанных требований было произведено проектирование разрабатываемой системы.
На рисунке 1 представлена диаграмма вариантов использования разрабатываемого приложения.
Приложение использует собственнный протокол передачи данных. Для согласования ключей протокол использует алгоритм RSA. Для шифрования передаваемых данных используется алгоритм AES, для проверки целостности сообщений используется электронно-цифровая подпись. Протокол предполагает два уровня шифрования: шифрование канала между клиентом и сервером и шифрование передаваемых сообщений непосредственно между клиентами. Таким образом, сообщения клиентов будут храниться на сервере в зашифрованном виде, а ключи для расшифровки сообщений будут находиться только на пользовательских компьютерах. На транспортном уровне используется протокол TCP.
Разрабатываемое приложение состоит из трех частей: клиента, сервера и библиотеки, инкапсулирующей работу с протоколом передачи данных.
На рисунке 2 представлен фрагмент диаграммы классов приложения, содержащий классы, обеспечивающие защиту и передачу данных, а также их основные методы и атрибуты.
Для серверной части приложения была разработана база данных и использованием СУБД MS SQL Server. Схема данных базы данных представлена на рисунке 3.
На данный момент приложение реализует функциональность:
Был проведен обзор существующих месенджеров, поддерживающих защиту на уровне сообщений. Были выделены требования к разрабатываемому продукту. В рамках данной работы было проведено проектирование программы-месенджера и реализация ее основной функциональности. В дальнейшем планируется расширить функциональность приложения возможностью организации защищенных групповых чатов, а реализовать защищенные аудио и видео звонки.
1. Сhatsecure// hatsecure.org [Электронный ресурс]. – Режим доступа: https://chatsecure.org/
2. Off-the-RecordMessaging// Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Off-the-Record_Messaging.
3. XMPP // Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/XMPP
4. Cryptocat // crypto.cat [Электронный ресурс]. – Режим доступа: https://crypto.cat/
5. AdvancedEncryptionStandard// Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Advanced_Encryption_Standard.
6. Telegram // tlgrm.ru. [Электронный ресурс]. – Режим доступа: https://tlgrm.ru/techfaq
7. RSA // Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/RSA
8. Протокол Диффи—Хеллмана// Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Протокол_Диффи_—_Хеллмана
9. End-to-endencryption// Википедия [Электронный ресурс]. – Режим доступа: https://en.wikipedia.org/wiki/End-to-end_encryption
10. Open whisper systems// whispersystems.org. [Электронный ресурс].– Режим доступа: https://whispersystems.org/