Существует несколько сетевых архитектур, обычно используемых для передачи сообщений между людьми. Эти сети могут предоставлять разные гарантии конфиденциальности, поэтому при принятии решения о том, какое приложение использовать, стоит учитывать вашу модель угроз.
Централизованные сети¶
Централизованные мессенджеры - это те, где все участники находятся на одном сервере или сети серверов, контролируемых одной организацией.
Некоторые мессенджеры позволяют настроить собственный сервер. Самостоятельный хостинг может обеспечить дополнительные гарантии конфиденциальности, например, отсутствие журналов использования или ограниченный доступ к метаданным (данные о том, кто с кем разговаривает). При самостоятельном хостинге централизованные мессенджеры изолированы, и для общения все должны находиться на одном сервере.
Преимущества:
- Новые функции и изменения могут быть внедрены быстрее.
- Легче начать использовать и найти контакты.
- Наиболее проверенные и стабильные функции экосистем, так как их легче программировать в централизованном программном обеспечении.
- Проблемы конфиденциальности могут быть снижены, если вы доверяете серверу, который вы самостоятельно размещаете.
Недостатки:
- Может включать ограниченный контроль или доступ. Это может включать в себя такие вещи, как:
- Запрет на подключение сторонних клиентов к централизованной сети, которые могли бы обеспечить большую персонализацию или лучший опыт. Это часто написано в условиях использования.
- Плохая документация для сторонних разработчиков или ее полное отсутствие.
- The ownership, privacy policy, and operations of the service can change easily when a single entity controls it, potentially compromising the service later on.
- Самостоятельный хостинг требует усилий и знаний о том, как настроить сервис.
Федеративные сети¶
Федеративные мессенджеры используют несколько независимых, децентрализованных серверов, которые могут общаться друг с другом (электронная почта является одним из примеров федеративной службы). Федерация позволяет системным администраторам контролировать свой собственный сервер и при этом быть частью большой коммуникационной сети.
При самостоятельном хостинге участники объединенного сервера могут обнаруживать и общаться с участниками других серверов, хотя некоторые серверы могут предпочесть оставаться закрытыми, не будучи объединенными (например, сервер рабочей группы).
Преимущества:
- Позволяют получить больший контроль над собственными данными при работе на собственном сервере.
- Позволяют выбирать, кому доверять свои данные, выбирая между несколькими "публичными" серверами.
- Часто позволяют использовать сторонние клиенты, которые могут обеспечить более нативный, индивидуальный или доступный опыт использования.
- Программное обеспечение сервера может быть проверено на соответствие публичному исходному коду, если у вас есть доступ к серверу или вы доверяете человеку, который имеет такой доступ (например, члену семьи).
Недостатки:
- Добавление новых функций является более сложной задачей, поскольку эти функции должны быть стандартизированы и протестированы для обеспечения их работы со всеми серверами в сети.
- В связи с предыдущим пунктом, функции могут отсутствовать, быть неполными или работать неожиданным образом по сравнению с централизованными платформами, например, передача сообщений в автономном режиме или удаление сообщений.
- Некоторые метаданные могут быть доступны (например, информация "кто с кем разговаривает", но не фактическое содержание сообщения, если используется E2EE).
- Федеративные серверы обычно требуют доверия к администратору вашего сервера. Они могут быть любителями или не являться "профессионалами в области безопасности" и не предоставлять стандартные документы, такие как политика конфиденциальности или условия предоставления услуг, в которых подробно описывается, как используются ваши данные.
- Администраторы серверов иногда решают блокировать другие серверы, которые являются источником немодерируемых злоупотреблений или нарушают правила общепринятого поведения. Это затруднит вашу возможность общаться с участниками этих серверов.
Пиринговые сети¶
Мессенджеры P2P подключаются к распределенной сети узлов, чтобы передать сообщение получателю без стороннего сервера.
Клиенты (peers) обычно находят друг друга с помощью сети распределенных вычислений. Примером могут служить распределенные хэш-таблицы (DHT), используемые, например, в торрентах и IPFS. Another approach is proximity based networks, where a connection is established over WiFi or Bluetooth (for example, Briar or the Scuttlebutt social network protocol).
Если клиент нашел маршрут к своему контакту с помощью любого из этих методов, между ними устанавливается прямое соединение. Хотя сообщения обычно шифруются, наблюдатель все равно может определить местоположение и личность отправителя и получателя.
В сетях P2P не используются серверы, так как пиры общаются непосредственно между собой. Однако некоторые сервисы могут зависеть от централизованных серверов, например, обнаружение пользователей или ретрансляция автономных сообщений, которые могут выиграть от самостоятельного хостинга.
Преимущества:
- Минимальная информация передается третьим лицам.
- Современные платформы P2P реализуют E2EE по умолчанию. В отличие от централизованных и федеративных моделей, здесь нет серверов, которые могли бы перехватывать и расшифровывать ваши передачи.
Недостатки:
- Уменьшенный набор функций:
- Сообщения могут быть отправлены только тогда, когда оба собеседника находятся в сети, однако ваш клиент может хранить сообщения локально, чтобы дождаться возвращения контакта в сеть.
- Обычно увеличивается расход заряда батареи на мобильных устройствах, поскольку клиент должен оставаться подключенным к распределенной сети, чтобы узнать, кто находится в сети.
- Некоторые распространенные функции мессенджера могут быть не реализованы или реализованы не полностью, например, удаление сообщений.
- Ваш IP-адрес и IP-адрес контактов, с которыми вы общаетесь, могут быть раскрыты, если вы не используете программное обеспечение в сочетании с VPN или Tor. Во многих странах, в том или ином виде, существует форма массового наблюдения и/или хранения метаданных.
Анонимная маршрутизация¶
Мессенджер, использующий анонимную маршрутизацию, скрывает либо личность отправителя, либо личность получателя, либо доказательства того, что они общаются. В идеале, мессенджер должен скрывать все эти три составляющие.
Существует много различных способов реализации анонимной маршрутизации. Одним из самых известных является onion routing (т.е. Tor), который передает зашифрованные сообщения через виртуальную оверлейную сеть, скрывающую местоположение каждого узла, а также получателя и отправителя каждого сообщения. Отправитель и получатель никогда не взаимодействуют напрямую и встречаются только через секретный узел рандеву(rendezvous node), так что утечки IP-адресов и физического местоположения не происходит. Узлы не могут расшифровывать сообщения, как и конечный пункт назначения; это может сделать только получатель. Каждый промежуточный узел может расшифровать только ту часть, в которой содержится информация, указывающая дальнейший путь зашифрованного сообщения. Только получатель сможет полностью расшифровать сообщение, отсюда и "луковые слои."
Самостоятельный хостинг узла в анонимной сети маршрутизации не дает хостеру дополнительных преимуществ в плане конфиденциальности, однако это способствует повышению устойчивости всей сети к атакам идентификации, что выгодно всем.
Преимущества:
- Третьим лицам передаётся либо минимальная информация, либо вообще никакая.
- Сообщения могут передаваться децентрализованно, даже если одна из сторон находится в офлайн.
Недостатки:
- Медленное распространение сообщений.
- Часто можно отправить только текст, поскольку сеть медленная.
- Менее надежны, если узлы выбираются методом случайной маршрутизации, некоторые узлы могут находиться очень далеко от отправителя и получателя, добавляя задержку или даже не передавая сообщения, если один из узлов выходит из сети.
- Более сложный для начала работы, поскольку требуется создание и защищенное резервное копирование криптографического приватного ключа.
- Как и на других децентрализованных платформах, добавление функций является более сложным для разработчиков, чем на централизованной платформе. Следовательно, могут отсутствовать или быть не полностью реализованы такие функции, как офлайн передача сообщений или удаление сообщений.