Обзор мессенджера Onym

Мне выслали донат в размере 77 EURMTL и попросили обзор на децентрализованный мессенджер Onym. Приступаю.

На сайте onym.app разъясняется концепция мессенджера. Основная его идея в том, чтобы устранить единую точку отказа и позволить пользователю самому выбирать сервисы, которые будут отвечать за разные составляющие информационного обмена.

Предполагается, что структура продукта примерно такова.

  1. Авторы предлагают клиент мессенджера с открытым исходным кодом, который ставится на телефоны пользователей. Любые желающие могут написать свой клиент, и он сможет работать в рамках этого же протокола.
  2. Для регистрации нового пользователя не требуется ввод каких-либо данных, ключи генерируются на пользовательском телефоне и привязаны к нему. Поскольку, однако, любой желающий может написать свой клиент, ничто не мешает ему регистрировать пользователей хоть с полным прохождением KYC, если придумает, как убедить их устанавливать именно его клиент.
  3. Передача данных происходит через ностр-релеи. По умолчанию клиент использует единственный релей, поддерживаемый авторами проекта, однако его можно заменить собственным или любым публичным. Релей это тупой передаточный механизм: он получает зашифрованные приватным ключом данные пользователя и выставляет их в открытый доступ, откуда их могут забрать любые желающие. Релеи не обязаны долго хранить пользовательский контент, поэтому в конечном итоге все данные привязаны строго к конечному устройству, на котором установлен клиент мессенджера.
  4. Самая необычная часть архитектуры связана с групповыми чатами. Информация о том, кто является администратором, кто может приглашать новых участников и кто вообще входит в состав группы, записывается в смарт-контракты на блокчейне Stellar. Благодаря этому управление группами не зависит от какого-либо одного сервера. Однако конечному пользователю не нужно заботиться о деньгах на счету для записей в блокчейн, это за него делает так называемый relayer. Цена транзакций в стелларе копеечная, однако это, тем не менее, точка отказа. Злоумышленник может организовать регистрацию множества фиктивных аккаунтов, заводя новую идентичность в своём клиенте и тут же её снося. Регистрация каждой такой идентичности потребует транзакцию в блокчейне, и релееру придётся её оплачивать. Сейчас проект работает в тестовой версии блокчейна, но при переходе в мэйннет расходы станут реальными.

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

Теперь немного о личных впечатлениях от работы с мессенджером Onym. Это ранняя альфа, то есть он, конечно, ужасно сырой, и на это приходится делать скидку, оценивая не столько тот функционал, что уже есть, сколько тот, который предполагается. Мессенджер позволяет создавать группы, приглашать туда произвольное количество народу и общаться в этих группах. В принципе, то же самое умеют и многие другие ностр-клиенты, поскольку такой функционал является частью протокола. Но там чаты имеют какой-то непонятный околопубличный статус, а Onym за счёт дополнительного стеллар-слоя обеспечивает закрытость чата без использования закрытых релеев. В общем-то, именно эта милая особенность и призвана стать киллер-фичей мессенджера: обычные ностр-клиенты недостаточно приватны, а приватные привязанные к устройству мессенджеры типа Briar предлагают полностью доверять клиенту мессенджера. Тут же доверие распределяется между несколькими слоями, в каждом из которых можно выбирать конкретную реализацию, в том числе свою собственную.

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

Мои рекомендации авторам мессенджера, в порядке убывания срочности:

  1. Доработать минимальный функционал, позволяющий пользоваться мессенджером: администрирование групп (удаление пользователей/сообщений), пуш-уведомления, демонстрация статусов пользователя, хотя бы простое онлайн/офлайн. Обязательно доделать заявленную, но пока не реализованную возможность экспорта-импорта аккаунта.
  2. Приучать пользователей к распределённой архитектуре. Клиенту стоило бы предлагать список независимых релеев и Blossom-серверов с мониторингом их статуса. По мере появления альтернативных релееров и реализаций смарт-контрактов для управления группами аналогичный выбор должен появиться и для них. Без предложения сторонних сервисов неподготовленный пользователь будет ограничиваться настройками по умолчанию, и это создаст единую точку отказа.
  3. Подумать над десктоп-приложением и возможностью одновременного запуска мессенджера с нескольких устройств. Привязка всей идентичности к устройству, а не к ключу, просто не позволит мессенджеру приобрести хоть какую-то массовость.
  4. Внедрить аудио и видеозвонки, такой функционал протокол ностр уже позволяет обеспечивать.
  5. Внедрить функционал каналов, в том числе с функцией стриминга, что также можно реализовать через протокол ностр, а подключение смарт-контрактов на стелларе позволит при этом не светить себя в списке подписчиков канала.

У проекта есть ещё один сайт, opym.foundation, где описывается фонд, который должен будет рулить инфраструктурой. Сайт фонда рассказывает о том, зачем фонду нужны деньги, и как он будет управляться. Рассказ про деньги лишён расчётов, и это сильно портит впечатление потенциальных инвесторов. К тому же идея управляющего органа несколько противоречит задумке, согласно которой каждый пользователь должен легко запускать собственный сервис для обслуживания того или аспекта обмена сообщениями. Мне кажется, что идея с фондом не должна взлететь, даже если сама концепция ностр-мессенджера со стеллар-контрактами будет тепло принята публикой. Поэтому я не планирую детально разбирать предложения по управлению фондом, однако не согласные со мной легко могут сами разобраться с ними на сайте фонда.

В целом идея видится мне мощной, но для того, чтобы она завоевала рынок, потребуется очень много усилий.

Ваш аккаунт больше не принадлежит вам: что стоит за блокировкой СМС в России

Недавний кейс из России: гос. власти начали массово фильтровать входящие СМС-сообщения с кодами авторизации от популярных мессенджеров вроде Telegram и WhatsApp. Фактически это означает, что если вы хотите зарегистрироваться или даже просто снова зайти в свой аккаунт, СМС с кодом вам не придёт. Почему так?

Это не борьба с мошенниками и спамом, как уверяют чиновники, а вполне осознанная попытка стационарного бандита полностью заблокировать Telegram, не прибегая к грубым методам, которые уже много раз проваливались. Telegram уже много лет технически противостоит попыткам Роскомнадзора его заблокировать, не сотрудничает с властями РФ в вопросах удаления неудобного контента и не раскрывает им данные своих пользователей. Государство, не сумев заблокировать приложение напрямую, решило нанести удар через операторов связи, препятствуя отправке кодов авторизации. Простая и эффективная (на первый взгляд) тактика: нет кода – нет аккаунта. В результате пострадали миллионы обычных пользователей. Власти традиционно использовали аргумент «заботы о гражданах», чтобы скрыть истинную цель – получение полного контроля над коммуникацией населения.

Cтоит в целом задаться вопросом: почему привязка к номеру – это плохо? Для властей номер телефона – как паспорт, только цифровой. Получить симку без паспорта тяжело, а значит, любая ваша активность онлайн сразу привязывается к вам лично. Более того, существует SIM-swapping: мошенники (или вовсе спецслужбы) могут перевыпустить вашу симку и получить доступ ко всем вашим аккаунтам. Даже использование сервисов анонимной аренды номеров для регистрации вроде Onlinesim – это не панацея. Эти виртуальные номера часто помечены системами антифрода и блокируются при регистрации, восстановление доступа к аккаунту невозможно после окончания аренды номера, также существует риск ведения логов и передачи/утечки их в спецслужбы.

Но как же быть со спамом, если не по номеру? Хорошая новость – методов масса, и многие из них лучше:

1) Капчи и тесты на человечность. Да, бывает раздражает выбирать картинки с автобусами, но это лучше, чем отдавать стационарному бандиту свои персональные данные.

2) Proof-of-work. Небольшая техническая хитрость: устройство пользователя незаметно выполняет короткую математическую задачу при регистрации, требующую вычислительных мощностей. Для одного человека это легко, а для массовых ботов – ад, что делает их использование невыгодным для злоумышленника.

3) Ограничение новых аккаунтов. Новые пользователи не могут сразу рассылать тысячи сообщений, например, в течении 24 после регистрации. Спамеры теряют интерес, а обычные люди этого даже не замечают.

4) Система репутации и модерация сообществ. Если на какой-то аккаунт поступает много жалоб за рассылку спама, он блокируется.

5) Технические ограничения (по IP, идентификатору устройств, отпечаткам браузера). Хорошая платформа легко вычислит множественные автоматические регистрации и не допустит их.

6) Платная верификация в криптовалюте без раскрытия личности. Пусть спамеры платят за свои развлечения, а честному человеку не жалко потратить несколько центов на вход, если это гарантирует анонимность.

Так что же делать? К счастью, мир не сошёлся клином на Telegram и WhatsApp. Существуют мессенджеры, созданные людьми, которые понимают ценность приватности.

Session – полная анонимность без централизованного сервера.
Threema – швейцарская конфиденциальность. Приложение платное (порядка $5 разово), но не требует ни номера, ни даже e-mail.
Briar – даже если вам отрубили интернет, он найдёт соседа по Bluetooth, что очень важно для участников протестов.

Почему это важно для всех нас? Свобода коммуникации – это самое базовое условие любой свободы. В мире, где государства пытаются цифровыми наручниками привязать каждого человека к номеру телефона, любая попытка сохранить анонимность уже становится маленькой революцией. И запомните: либо вы контролируете свои данные и свою личность, либо государство сделает это за вас!

Волюнтарист, Битарх