Стартапы, Проекты | Олег Брагинский, Марина Строева
Основатель «Школы траблшутеров» Олег Брагинский и ученица Марина Строева рассказывают, как решали проблему безопасной коммуникации и шифровали данные. Привычные средства общения мессенджеров пугают уязвимостями в системах приватности. Что с этим сделать, и какие технологии помогут защитить личную переписку, читайте далее.

Мессенджеры поддерживают коммуникацию в личной и профессиональной среде. Обеспечивают удобство и быстроту взаимодействия, предоставляют постоянно расширяющийся спектр типовых и редких функций: от обмена текстовыми сообщениями до организации групповых видеозвонков.
Польза платформ связи определяется уровнем защищённости. С каждым годом растёт число угроз, связанных с несанкционированным доступом. Следовательно, в работе пришлось учитывать не только базовый функционал, но и продумывать хитрую систему защит. Но обо всём по порядку.
Описали функции, к которым отнесли регистрацию, идентификацию и верификацию пользователей. Предусмотрели создание аккаунта, ввод логина, пароля, адреса почты, номера телефона. Доступ к учётной записи оснастили возможностью восстановления по согласованию с техподдержкой.
Проработали отправку, редактирование и удаление сообщений, проведение голосовых и видеозвонков, обмен файлами разных форматов. Пользователи могут участвовать в групповых чатах, настраивать уведомления, интерфейс. Вести поиск по сообщениям, контактам, чатам
Не забыли и о групповых взаимодействиях и управление ролями участников, где администраторы и модераторы могут контролировать обсуждения и доступ к данным. Кроме того, поддержали запись видеоконференций для последующего просмотра и совместное использование экранов.
Дизайн мессенджера сделали интуитивно понятным и адаптивным, чтобы соответствовать потребностям пользователей на различных устройствах и многообразных операционных системах.
Главным экраном очертили структурированные разделы: список чатов, панели для звонков и уведомлений. Кнопки «Создать чат», «Добавить контакт» и «Настройки», выделили визуально:
На этапе разработки архитектуры продумали комплексную систему серверов, протоколов и технологий шифрования для обеспечения быстрого и безопасного взаимодействие между пользователями, поддержания высокой производительности даже при большом объёме данных.
При проектировании соединения абонентов использовали протокол SDP (Session Description Protocol), передающий IP-адреса, порты, количество медиатреков, кодеки, ключи безопасности.
Для передачи SDP-сообщений применили REST API, веб-сокеты или аутентификационные прокси, что обеспечило быструю пересылку сообщений.
Задействовали протоколы DTLS и SRTP. Первый – создаёт защищённый канал поверх UDP, используя сертификаты для шифрования данных, второй – защищает пакеты реального времени.
Передачу медиаданных настроили через RTP, текстовые сообщения – передаём посредством SCTP, что обеспечило достаточную надёжность и приемлемую скорость коммуникации.
RTP позволяет эффективно передавать аудио- и видеопотоки с минимальными задержками, что критически важно для реального времени.
SCTP, в свою очередь, используем для гарантированной доставки сообщений, обеспечивая устойчивость к потерям пакетов, поддерживая порядок их передачи.
Снижение задержек и обеспечение стабильности связи в мессенджере достигли за счёт технологий минимизации времени отклика и оптимизации маршрутов передачи данных.
Для адаптации потоков данных к сети применили кодеки Opus (аудио) и VP8/VP9 (видео), способные динамически изменять качество в зависимости от пропускной способности.
Протокол ICE автоматически выбирает лучший маршрут для соединения, что позволяет поддерживать связь при сложной сетевой архитектуре.
RTP корректирует потери пакетов, компенсируя временные перебои. SCTP отвечает за надёжность сообщений, оптимизируя доставку. Предусмотрели алгоритмы адаптации к перегрузке сети.
Роль фронтенда в разработке мессенджера переоценить сложно. HTML, CSS и JavaScript взяли для построения интерфейса. React, и Vue.js – для создания динамичных интерактивных элементов.
Адаптивный дизайн проектировали с использованием медиазапросов и фреймворков, чтобы мессенджер одинаково хорошо выглядел на смартфонах, планшетах и ПК.
WebSocket и WebRTC API подключили для реального времени чатов, уведомлений, звонков. Сообщения, медиафайлы и профили пользователей конфигурировали в PostgreSQL и MongoDB.
Разработка мессенджера заняла у нас шесть месяцев. Далее, подобные проекты собирали втрое быстрее, даже с учётом модернизации и улучшений. Сейчас в копилке разработок храним несколько передовых решений для обеспечения взаимодействия пользователей:
- установление связи, протоколы, SDP, совместимость устройств, технологии STUN и TURN
- дизайн, включая меню, кнопки быстрого доступа, панели уведомлений, другие элементы
- шифрование и защита данных на протоколах DTLS, SRTP и их комбинации с ICE
- серверная инфраструктуры, протоколы связи, алгоритмы шифрования данных
- обмен текстовыми сообщениями, звонки, передача файлов, групповые чаты
- проведение видеоконференций, совместное использование материалов
- адаптивность интерфейса к различным устройствам и платформам
- базовые модули, регистрации, верификация, доступ к аккаунту.
Создание мессенджера требовало поэтапного подхода, работа была интересной и многоуровневой. По итогу получили интересный опыт и освоили технологии, применение которых возможно не только в разработке средств общения, но и в других проектах, где требуется связь и безопасность.