Мессенджер без сервера и слежки: разбор 149-ФЗ на примере $mol
В эпоху тотальной цифровизации и повсеместного сбора данных вопрос приватности становится как никогда острым. Можно ли создать мессенджер, который работает без сервера, не требует логина и пароля и не собирает никаких данных? Один разработчик утверждает, что да, и опубликовал свой проект на Habr. Он

В эпоху тотальной цифровизации и повсеместного сбора данных вопрос приватности становится как никогда острым. Можно ли создать мессенджер, который работает без сервера, не требует логина и пароля и не собирает никаких данных? Один разработчик утверждает, что да, и опубликовал свой проект на Habr. Он использовал фреймворк $mol и базу данных GiperBaza, чтобы сделать приложение, которое можно встроить в любой проект на $mol одной строкой кода. В этой статье мы разберем, как устроен этот мессенджер, почему он не нарушает 149-ФЗ и какие ограничения у такого подхода.
Мессенджер на $mol и GiperBaza: как это работает
Автор проекта, известный на Habr как B-on-G, создал мессенджер под названием Gram. Его ключевая особенность — отсутствие центрального сервера. Вместо этого используется GiperBaza, децентрализованная база данных, которая синхронизируется между устройствами через P2P-соединение. Это значит, что сообщения передаются напрямую между участниками диалога, без промежуточного узла, который мог бы хранить или анализировать данные.
Для работы не нужны ни логин, ни пароль. Идентификация происходит по уникальному ID, который генерируется на устройстве. Пользователь может создать диалог с тем, чей ID ему известен, или создать беседу и пригласить туда людей. Также есть возможность создать «реестр» — публичный список участников, куда может добавиться любой желающий. Например, автор предлагает реестр всех айтишников, в который можно вступить по ссылке.
Весь код написан на TypeScript с использованием фреймворка $mol, который позволяет создавать веб-приложения с высокой производительностью и малым размером кода. Благодаря модульной архитектуре $mol, мессенджер можно интегрировать в любое другое приложение на этом фреймворке одной строкой импорта.
Как работает децентрализованный мессенджер на практике?
Чтобы понять, как функционирует Gram, нужно разобраться в базовых принципах P2P-сетей. В отличие от традиционных мессенджеров, где все данные проходят через центральный сервер, здесь каждое устройство является равноправным узлом. Когда вы отправляете сообщение, оно шифруется и передается напрямую получателю через WebRTC-соединение. Если получатель офлайн, сообщение хранится у «хранителей» — специальных узлов, которые временно сохраняют данные до момента подключения адресата. Это компромисс между полной децентрализацией и удобством использования.
Технически Gram использует GiperBaza, которая построена на основе CRDT (Conflict-free Replicated Data Types). Это математические структуры данных, которые позволяют разным устройствам синхронизироваться без центрального узла, автоматически разрешая конфликты. Каждое устройство хранит полную копию данных, а изменения распространяются через WebRTC-соединения.
Шифрование в Gram основано на протоколе Signal, который используется в WhatsApp и Signal. Однако, в отличие от этих мессенджеров, ключи шифрования хранятся только на устройствах участников, и никто другой не имеет к ним доступа. Это означает, что даже если злоумышленник перехватит сообщение, он не сможет его расшифровать.
Предыстория и контекст
Идея децентрализованных мессенджеров не нова. Ещё до Gram существовали проекты вроде Tox, RetroShare и Bitmessage, которые также работали без центральных серверов. Однако большинство из них так и не стали массовыми из-за сложности настройки и низкой производительности. Современные технологии, такие как WebRTC и P2P-сети, позволяют создавать более удобные решения, но они всё ещё требуют определённых технических знаний от пользователя.
Важно отметить, что автор называет свой проект «домашним» и не рекомендует использовать его для критически важных коммуникаций. Это связано с тем, что P2P-соединения могут быть нестабильными, а шифрование, хотя и присутствует, не гарантирует полную анонимность. Тем не менее, сам факт существования такого мессенджера поднимает важные вопросы о регулировании подобных технологий в России.
Что говорит 149-ФЗ о мессенджерах
Федеральный закон № 149-ФЗ «Об информации, информационных технологиях и о защите информации» регулирует деятельность организаторов распространения информации в интернете. Согласно закону, любой сервис обмена сообщениями, который позволяет пользователям обмениваться информацией, обязан уведомить Роскомнадзор о начале своей деятельности и хранить данные о фактах приёма, передачи и обработки сообщений в течение года.
Однако есть нюанс: закон распространяется на организаторов, то есть на тех, кто предоставляет сервис. Если мессенджер работает без центрального сервера и не собирает данные, то формально его создатель не является организатором распространения информации. Кроме того, если код открыт и каждый пользователь запускает свою копию, то ответственность за распространение информации лежит на конечных пользователях, а не на разработчике.
Тем не менее, юристы отмечают, что даже децентрализованные сервисы могут попадать под действие закона, если они предоставляют возможность обмена сообщениями неограниченному кругу лиц. В случае Gram, если реестр айтишников открыт для всех, это может считаться публичным сервисом, что потенциально требует регистрации. Однако пока нет судебной практики по таким случаям.
Какие риски для разработчика и пользователей?
Для разработчика основным риском является возможное привлечение к ответственности за нарушение 149-ФЗ, если его проект будет признан организатором распространения информации. Для пользователей риски связаны с возможной блокировкой сервиса, потерей данных при утере устройства и отсутствием гарантий доставки сообщений. Кроме того, децентрализованные сети могут быть уязвимы для атак типа Sybil, когда злоумышленник создаёт множество фейковых узлов для перехвата трафика.
Как это работает технически
Технически Gram использует GiperBaza, которая построена на основе CRDT (Conflict-free Replicated Data Types). Это математические структуры данных, которые позволяют разным устройствам синхронизироваться без центрального узла, автоматически разрешая конфликты. Каждое устройство хранит полную копию данных, а изменения распространяются через WebRTC-соединения.
Шифрование в Gram основано на протоколе Signal, который используется в WhatsApp и Signal. Однако, в отличие от этих мессенджеров, ключи шифрования хранятся только на устройствах участников, и никто другой не имеет к ним доступа. Это означает, что даже если злоумышленник перехватит сообщение, он не сможет его расшифровать.
Одним из ограничений является то, что для работы P2P-соединения необходимо, чтобы оба устройства были онлайн. Если одно из устройств офлайн, сообщение не будет доставлено до тех пор, пока оно не появится в сети. Автор решает эту проблему с помощью «хранителей» — узлов, которые могут временно хранить сообщения, но это уже требует наличия серверов, что частично нарушает идею децентрализации.
Кого затронет и как
Для обычных пользователей такой мессенджер может быть интересен как способ общения без слежки и сбора данных. Особенно это актуально для журналистов, активистов и тех, кто ценит приватность. Однако отсутствие центрального сервера означает, что нет возможности восстановить данные при потере устройства, а также нет гарантий доставки сообщений.
Для разработчиков этот проект интересен как пример использования $mol и GiperBaza. Они могут изучить код и адаптировать его для своих нужд. Кроме того, это демонстрация того, что можно создавать приложения без бэкенда, что снижает затраты на инфраструктуру.
В России и СНГ подобные проекты могут привлечь внимание регуляторов, особенно если они наберут популярность. Роскомнадзор уже пытался блокировать Telegram, но децентрализованные сервисы сложнее блокировать, так как у них нет единой точки отказа.
Что будет дальше
Автор планирует развивать проект, добавляя новые функции, такие как голосовые и видеозвонки. Он также надеется, что сообщество поможет улучшить код и повысить безопасность. Однако массовое распространение таких мессенджеров вряд ли произойдёт в ближайшее время из-за технических сложностей и привычки пользователей к централизованным сервисам.
Тем не менее, тенденция к децентрализации набирает обороты. Появляются проекты вроде Nostr и ActivityPub, которые уже используются в социальных сетях. Возможно, через несколько лет децентрализованные мессенджеры станут более распространёнными, и тогда законодателям придётся адаптировать законы под новые реалии.
Итог
Мессенджер на $mol и GiperBaza — это интересный эксперимент, который показывает, что можно создать сервис обмена сообщениями без сервера и сбора данных. Он не нарушает 149-ФЗ, так как не является организатором распространения информации, но его использование требует технической подготовки. Следить за развитием этого проекта стоит всем, кто интересуется приватностью и децентрализацией.