Почему Signal — не идеальный мессенджер. Нам нужна децентрализация

Специальный корреспондент
Собака

Собака

Пресс-служба
Команда форума
Private Club
Регистрация
13/10/15
Сообщения
55.044
Репутация
62.840
Реакции
277.292
RUB
0
focx-xf6g62pls_tyjnqrx5d8gu.png

Федеративная система Matrix поддерживает связь с другими сетями через мосты. Это пример инфраструктуры, к которой нужно стремиться Signal

4 января 2021 года WhatsApp в пользовательское соглашение. Теперь каждый пользователь обязан согласиться на отправку личных данных в материнскую компанию Facebook, иначе его аккаунт WhatsApp просто заблокируют. Эффект от изменений был вполне предсказуем — миллионы человек массово ушли из WhatsApp. Прежде всего, в Telegram и Signal.

Павел Дуров это «крупнейшей цифровой миграцией в истории»: всего за трое суток у Telegram появилось 25 млн новых пользователей, абсолютный рекорд. Илон Маск в твиттере прокомментировал события просто: , — написал он. То же самое Эдвард Сноуден. Мессенджер для многих стал настоящим открытием.
После изменения политики WhatsApp : если говорить по-русски, это значит в 43 раза, а Telegram вышел на второе место по количеству скачиваний в США. В итоге они примерно сравнялись по количеству загрузок: 7,5 млн и 9 млн за первую неделю после той новости от WhatsApp.

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

Таким образом, если пользователи бегут от драконовской политики WhatsApp в области приватности, то логично переходить на более защищённый и приватный мессенджер, то есть на Signal. Это лучшее, что у нас есть.

qdshix8m55te9s3ubkrohxkfqt0.jpeg

Граффити, сделанное во время массовых протестов в Калифорнии в 2017 году. Фото: Elijah Nouvelage, Getty Images

Как клиенты заддосили собственный сервер

К сожалению, инфраструктура Signal не справилась с наплывом миллионов новых людей. Причём случилось довольно забавно: клиентское программное обеспечение Signal фактически .

В коде клиента под Android была ошибка по обработке таймаута. С наплывом десятков миллионов новых пользователей серверы начали иногда возвращать ошибку HTTP 508, но клиент не обрабатывал эту ошибку должным образом. Он снова и снова повторял попытки. Хотя в алгоритме и реализована , но не был предусмотрен вариант, когда сервер специально отказывает клиенту в соединении. При этом экспоненциальная выдержка работала без джиттера (элемента случайности).

В итоге получилось так, что все начинали стучаться к серверу одновременно — и не было никакой возможности отключить эти «волны» DDoS'а.

Примечание. Строго говоря, здесь не совсем DDoS. В компьютерной науке для данной проблемы существует специальный термин . Это можно перевести как «проблема грохочущего стада» — имеется в виду стадо, которое начинает орать одновременно.

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

16 января для исправления ситуации в код Android-клиента внесли следующие изменения. «Флаги функций» означают, что соответствующий параметр в клиентской программе может быть установлен сервером:




  • int boundedAttempt = Math.min(nextAttempt, 30);
    long exponentialBackoff = (long) Math.pow(2, boundedAttempt) * 1000;
    long actualBackoff = Math.min(exponentialBackoff, maxBackoff);


Теперь клиенты Signal не должны ддосить свой сервер.

Для таких ситуаций Mozilla предлагает принять новый код ошибки , чтобы определить ситуацию более ясно. Он сопровождается заголовком с указанием предпочтительного таймаута. Например:

HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600

Возможно, такой код ошибки будет проще обрабатывать на клиенте.

Стабильность инфраструктуры Signal не налажена до сих пор, так что серверы периодически уходят в даун. Ничего не поделаешь, ведь Signal Foundation — это некоммерческая организация, которая существует на . В отличие от компаний Telegram FZ LLC и Telegram Messenger Inc., привлекающих десятки миллионов долларов от инвесторов с общей оценкой мессенджера в . Но там пользователей фактически считают товаром. Павел Дуров объявил, что , то есть показывать рекламу, зарабатывать на профилировании, продаже данных, таргетировании рекламы и так далее. Единственное, что Дуров пообещал не показывать рекламу в личных чатах.

Signal никогда не сделает ничего подобного. Но поэтому вынужден страдать от недостатка финансирования и связанных с этим технических проблем.

Кстати, мессенджер WhatsApp до покупки компанией Facebook нормально выдерживал более 100 млн пользователей. Но у него были деньги на инфраструктуру.

Централизованная инфраструктура — всегда плохо

Дело не только в недостатке инвестиций. Организацию Signal и ведущего разработчика Мокси Марлинспайка ещё упрекают в выборе не самого корректного технологического стека, который не позволил внезапно масштабироваться в десять раз. Никто не знал, что WhatsApp выкинет такой фокус и произойдёт массовый наплыв пользователей в Signal, это было совершенно неожиданно, но инфраструктура оказалась не готова.

Вообще, Мокси Марлинспайк выступает принципиально против , которая предусматривает сосуществование произвольного количества серверов Signal, принадлежащих третьим лицам. Например, такую модель предусматривает протокол коммуникации XMPP (Jabber), на котором отлично работает служба обмена сообщениями.

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

Ещё один пример федеративной системы — социальная сеть , свободная альтернатива Facebook.

w_-eb4o05wet7zpgboglrdlxdv0.png

Инстансы Mastodon

Матрица

Сквозное шифрование в любом случае делает невозможным перехват сообщений Signal на сервере, поэтому никто не мешает реализовать федеративную систему. Например, такая система реализована в сети , которая поддерживает любые виды коммуникаций, в том числе разработаны мосты в Slack, IRC, XMPP, Gitter, Telegram, Discord, WhatsApp, Facebook, Hangouts, Signal и .

Нативный клиент для Matrix называется , он выпускается в версиях для Windows, macOS, Android, iOS, а также , то есть просто в браузере.

gqcmp-tlexgxztxb55lqrnmhqp4.png


6uxwzhztzmhbz-fn1qfsyxsasyy.png

Веб-версия Element

Matrix поддерживает сквозное шифрование, причём фактически на том же , что и сам Signal. Но это система иного типа. В реальности Matrix — это инфраструктура для сторонних сервисов, некий промежуточный слой, его называют . Используя все вышеперечисленные мосты, можно интегрировать все сторонние мессенджеры, приложения для групповой работы и социальные сети в едином интерфейсе Matrix.

kivhgdjsw-u5now2vkroel_jeig.jpeg


В прошлом году удалось значительно увеличить количество мостов для разных сервисов благодаря одному предпринимателю, который за создание мостов Hangouts, Slack, Instagram, Facebook, Twitter, WeChat, Line, Linkedin, Airbnb, Tinder, Gmail и Snapchat.

Как выяснилось сейчас, это были инвестиции с дальним прицелом: в январе 2021 года этот предприниматель запустил новый стартап: с интеграцией 15 мостов из Matrix.

Тем временем разработчики Matrix рассматривают дальнейшую эволюцию проекта. Вместо федеративной системы с определённым количеством серверов они . На пиринговой инфраструктуре работает демонстрационная версия мессенджера .

4rghnz28omhhixblt3tr1ry62_e.png

Демо Riot P2P

Несколько лет назад разработчики Matrix Мокси подключить Signal (тогда он назывался TextSecure) к Matrix.

Мокси вежливо отказался, а через несколько месяцев опубликовал пост с объяснением, почему он «больше не верит в возможность разработки конкурентного мессенджера на федеративной основе».

Аргументом Мокси Марлинспайка является то, что децентрализованную систему сложнее корректно спроектировать и запрограммировать. Программиста можно понять по-человечески, но сложность в реализации — это всё-таки недостаточное оправдание.

С каждым новым даунтаймом централизованная инфраструктура выглядит всё менее подходящей для Signal, да и для любого другого веб-сервиса, который ставит главным приоритетом надёжность работы. Даунтайм 16 января 2021 года !




Даунтайм на сутки — уже достаточный аргумент против централизации. Есть и другие. Например, Signal , а это уже определённый риск, как мы знаем по печальной истории , который тоже рискнул положиться на AWS.

Хотя исходный код Signal открыт, но тот же не обновлялся с апреля 2020 года. Это не значит, что там нет багов, а скорее указывает на недостаток внимания.

Если Мокси по-прежнему будет игнорировать федеративные системы, то в будущем есть смысл посмотреть в сторону альтернативных приложений со сквозным шифрованием. Кроме Matrix, например, есть приложение . Оно не полагается на центральные серверы и не требует номер телефона для регистрации (это ещё один повод для критики Signal).

xwd3ziwcoe_uv3agl4jkjbk3yce.png

Мессенджер Session

Судя по , одним из разработчиков Session является Максим Шишмарёв из проекта Loki Project. Эта организация занимается разработкой инструментов приватности и анонимных коммуникаций.

Session и Riot выглядят более стабильно, хотя по функциональности и удобству использования уступают Signal. Но они показывают, в каком направлении нужно двигаться Signal с точки зрения инфраструктуры. Федеративная система без центральных серверов — это отсутствие единой точки отказа, что означает более стабильную и надёжную работу.

По крайней мере, такое приложение не заддосит само себя.




 
Огонь статья
 
Сверху Снизу