- PVSM.RU - https://www.pvsm.ru -

Проектируем вместе защищенное приложение для обмена сообщениями

Большинству из нас известно, что «защищённые» приложения для обмена сообщениями, которые мы используем каждый день (SMS, WhatsApp, Viber, Skype и тд) на самом деле изобилуют возможностями перехвата переписки. Они используют промежуточные сервера для передачи сообщений и сохраняют копию каждого сообщения. Автоматически [1] копия каждого сообщения дублируется на государственных серверах и оттуда уже никогда не удаляется. Также автоматически логируется информация о том, какой IP в какое время с кем общался.

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

Иногда сообщения пытаются шифровать и отправить их на сервер уже шифрованными, но работает ли это в действительности? Здесь легко реализуется атака Man In The Middle, когда сервер притворяется клиентом, которому предназначается сообщение и получает сообщение в незашифрованном виде, хотя клиент думает, что сообщение может быть прочитано только конечным получателем.

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

  1. Открытый [2] исходный код. Таким образом любой может детально изучить, как именно работает приложение и убедиться в отсутствии бэкдоров.
  2. P2P. Клиенты устанавливают соединение друг с другом напрямую. Сообщения никогда не проходят через сервер, что исключает возможность их перехвата в любом виде. В данный момент я рассматриваю WebRTC Jingle [3], чтобы реализовать P2P с использованием libjingle для iOS и Android.
  3. TOR [4]. Все соединения клиент осуществляет внутри анонимной сети Tor. Таким образом скрываются IP адреса клиентов, а также происходит первоначальная шифрация трафика, которая предоставращает прослушивание.
  4. OTR [5] используется для дополнительного шифрования всех сообщений между пользователями и целей аутентификации.
  5. Версия для Android разрабатывается на базе ChatSecure [6]. Версия для iOS разрабатывается с нуля.
  6. Для того, чтобы помочь клиентам найти друг друга и установить прямые P2P соединения, используется XMPP сервер. В данный момент выбор лежит между Openfire и ejabberd.

Что я упустил при разработке безопасной архитектуры приложения? Что может быть улучшено?

Автор: golubevpavel

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/privatnost/47094

Ссылки в тексте:

[1] Автоматически: http://ru.wikipedia.org/wiki/%D0%A1%D0%9E%D0%A0%D0%9C

[2] Открытый: http://github.com/prive

[3] WebRTC Jingle: https://github.com/prive/webrtc-jingle-client

[4] TOR: https://www.torproject.org/

[5] OTR: https://otr.cypherpunks.ca/

[6] ChatSecure: https://github.com/guardianproject/ChatSecureAndroid

[7] Источник: http://habrahabr.ru/post/200248/