Телега с логотипом Telegram преодолевает барьер с надписью "Блокировка".

Вайбкод челлендж: сгенерируй мессенджер, если «телега» больше не поедет

5ff7ae6f5c9c64d74ec381604a909244

В интернете нулевых любой школьник мог поднять P2P-хаб на домашнем компьютере. Не было пользовательских соглашений на 50 страниц. Ты сам писал правила, сам модерировал чат и сам решал, кого пускать, а кого банить.

Ностальгируя, мне захотелось переизобрести P2P-хабы прошлого прямо в браузере. Без регистрации по SMS. Без возни с сервером. С нормальной безопасностью.

Предлагаю вам пятничный вайбкод челлендж, у кого получится самая красивая реализация безопасного одностраничного мессенджера. Доставайте свой ClaudCode, Cursor, Jules, Codex или Clowdbot.

Под катом опишу детальнее идею, чтобы задать контекст для вашей AI команды.

P2P Хаб в браузере

План: Начать с текстового чата, по желанию, можно добавить обмен файлами и видео звонки. Чтобы это работало безопасно “даже на парковке”.

Кажется, что трудно придумать что-то проще статического файла index.html.

  • Не нужно ставить зависимости. Открыл файл друга — клиент доставлен.

  • Любой может открыть файл в Блокноте, проверить его и изменить под себя.

  • Работает локально, с флешки, хоть с дискеты.

Это идеальный формат доставки. Но есть проблема: чтобы два браузера начали общаться, они должны найти друг друга. 

Жаль, что мы не можем крикнуть на всю локальную сеть, но мы можем оставить записку на «общедоступном ресурсе», что мы тут. Используя внешний публичный сервер, который уже работает и доступен.

Для WebRTC (браузер-браузер) он тоже нужен для начального рукопожатия.

Чтобы не настраивать сервера, в качестве общедоступного ресурса можем использовать публичные демо сервера месседж брокеров. Их можно использовать для тестирования, что в целом подойдет для нашей задачи. Они созданы для IoT, лёгкие и быстрые.

Например, есть: HiveMQ (broker.hivemq.com), EMQX (broker.emqx.io), Mosquitto (test.mosquitto.org) или NATS Demo (demo.nats.io). Все они доступны для тестирования и разработки и работают по WSS.

Плюс, что не нужно поднимать свой сервер. Работает из коробки. Минус, что нужен интернет для рукопожатия. Для локальной сетипридется поднимать любой из этих брокеров, благо это делается одной командой.

Можно сказать, что у нас есть два режима работы: Internet и LAN.

Использование брокеров (MQTT или NATS) позволяет нам строить общение вокруг топиков (каналов). Топик — это просто строка-адрес, например my-chat/room-1/messages. Это позволяет строить логику маршрутизации, не написав ни строчки кода.

Важно: это не доверенные сервисы. Это транспорт. Без шифрования туда нельзя ничего отправлять.

Сообщения и безопасность

8947c462fd069ca8c41fef5d47bcf78b

Мы подошли к главному: как сделать безопасный чат, если транспорт публичный.

Нам нужен E2EE (End-to-End Encryption). Возьмем “золотой стандарт”, на котором держится весь HTTPS и SSH: ECDH (Elliptic Curve Diffie-Hellman) для обмена ключами и AES-GCM для шифрования данных.

Приятно, что нам не нужны сторонние библиотеки. В современном браузере есть Web Crypto API — это нативные C++ и аппаратно ускоренные криптофункции.

У нас нет удостоверяющего центра (CA), как в HTTPS. Поэтому, нам нужно защититься от атаки “человек посередине” (MITM). В мире SSH это решается моделью TOFU (Trust On First Use).

Вспомните, как вы впервые подключаетесь к серверу по SSH:

The authenticity of host ‘192.168.1.5’ can’t be established.

ED25519 key fingerprint is SHA256:r/wK9…

Are you sure you want to continue connecting (yes/no)?

Клиент запоминает ключ сервера в known_hosts. И если при следующем подключении ключ изменится, то клиент заблокирует соединение с криком WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!.

dd5512e61cc76bd23693a651eeeea33a

Давайте спроектируем такую же модель в браузере.

Абстракции безопасности:

  • IdentityKey (Паспорт): Долгосрочная пара public + private ключей. Наш цифровой паспорт пользователя. Генерируется один раз при первом запуске и сохраняется при обновлении страницы браузера.

  • IdentityId (Адрес): Уникальный идентификатор пользователя. Вычисляется как SHA-256 хэш от публичного ключа. Его нельзя подделать, не имея приватного ключа.

  • IdentityMeta (Визитка): JSON метаданные нашего пользователя, вроде { «username»: «Neo», «avatar»: «…» }, они не влияют на криптографию.

Для проверки собеседника мы будем использовать SAS (Short Authentication String) — визуальный emoji отпечаток. Его мы можем получить из IdentityKey, по аналогии с Telegram, WhatsApp и другими безопасными мессенджерами, чтобы визуально подтвердить личность собеседника.

P2P сессия

Но сам по себе “паспорт” не будет шифровать сообщения. Он нужен для двух вещей:

  • Подпись — чтобы доказывать, что сообщение отправил именно владелец этого ID.

  • TOFU — чтобы подтвердить, что ID собеседника не изменился с прошлого разговора.

По аналогии с SSH, для шифрования сообщений между пользователями, безопаснее использовать одноразовые сессионные ключи, которые генерируем на каждую сессию общения между пользователями.

Схема рукопожатия:

  • В начале P2P взаимодействия, генерируется временная пара ключей.

  • Временный ключ подписывается своим вечным IdentityKey.

  • Он отправляется собеседнику.

  • Собеседник проверяет подпись (защита от подмены на лету) и вычисляет общий AES-ключ SharedSecret.

Это даёт практический эффект:

  • компрометация одного сеанса не раскрывает другие;

  • можно ротировать ключи/делать новые сессии для улучшения безопасности;

  • если украдут «Паспорт» (IdentityKey) в будущем, расшифровать старые переписки не получится;

Групповые сообщения

4ebd3ec0955a0598468773ff43cd3d1c

На текущий момент, мы научились отличать доверенных/недоверенных пользователей и можем безопасно взаимодействовать peer-to-peer. Но как быть с чатами? В чатах больше чем один получатель.

Мы не можем шифровать каждое сообщение в чате отдельно для каждого получателя — это забьет весь трафик. Вместо этого мы будем использовать SenderKey (ключ отправителя).

У каждого участника будет свой SenderKey (симметричный AES ключ). Это его “личный микрофон”.

Каждое сообщение в общем чате будет зашифровано своим SenderKey. Чтобы другие могли меня услышать, я должен передать им копию моего SenderKey через защищенный 1-на-1 канал (который мы построили ранее).

Как всё будет работать?

Сквозной сценарий работы клиента: регистрация ? рукопожатие ? обмен ключами комнаты ? отправка/получение сообщений.

Чтобы не перегружать статью протоколом и кодом, я вынес в gist спецификацию и набор общих абстракций для прототипа (классы и структуры данных, на которые можно опереться при реализации): https://gist.github.com/pahaz/0e36887ff6ae003599e2b3d7f148a575 

Это удобно, если вы генерируете прототип через LLM, чтобы можно было сравнивать разные реализации участников.

Моя реализация: можно посмотреть в комментах.

Как участвовать?

Для участия в челлендже, отправляйте ссылки на результат в комментах к этому посту, пишите используемые модели и подход (можно ссылку на промт).

Все участники получат +1 в карму (и на хабре тоже). Победителя определим по итогам оценок комментов! Участие свободное. Погнали.

Update [15.02.2026]

Если вы не читали статью, не понимаете, о чём она, или не собираетесь участвовать в челлендже, пожалуйста, пройдите мимо.

Это техническая статья: мы проверяем, как современные AI-модели справляются с задачей создания нового мессенджера. Не нужно тут обсуждать блокировки или их обход, найдите для этого другую статью!

Пожалуйста, без флейма и оффтопа.

Источник: habr.com

Источник: ai-news.ru

✅ Найденные теги: Вайбкод, Мессенджер, новости, Телега, Челлендж

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Компания EY добилась четырехкратного увеличения производительности кодирования, подключив агентов искусственного интеллекта к инженерным стандартам.
Человеческий кишечник и микроскопическая структура тканей с внутренними деталями.
Программа Open WebUI с предложениями и интерфейсом на экране компьютера.
Экран интерфейса "Поделитесь экраном через ИИ" с описанием и кнопками задач.
ideipro logotyp
Женщина ест шоколад, статья о влиянии флаванолов на когнитивные функции.
Кот с бананом на полу, домашний питомец отдыхает.
Мужчина в парке с неоновыми жёлтыми геометрическими фигурами на фоне здания.
Вывеска музея CDC у здания CDC в зелёной окружающей среде.
Image Not Found
Компания EY добилась четырехкратного увеличения производительности кодирования, подключив агентов искусственного интеллекта к инженерным стандартам.

Компания EY добилась четырехкратного увеличения производительности кодирования, подключив агентов искусственного интеллекта к инженерным стандартам.

Эмилия Давид Источник: VentureBeat, сгенерировано с помощью MidJourney Агенты для разработки кода могут генерировать тысячи строк кода за считанные минуты. Проблема в том, что большая часть этого кода не может быть развернута. Он нарушает внутренние стандарты, не…

Мар 7, 2026
Человеческий кишечник и микроскопическая структура тканей с внутренними деталями.

Кокрейновский обзор не подтвердил пользу аспирина для профилактики колоректального рака. Зато указал на риски его применения

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

Мар 7, 2026
Кот с бананом на полу, домашний питомец отдыхает.

КАК НАУКА ИЗВРАЩАЕТ ДАННЫЕ, И ПОЧЕМУ НЕ ВСЕМ ИССЛЕДОВАНИЯМ НАДО ВЕРИТЬ

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

Мар 7, 2026
Черный открытый ноутбук с клавиатурой на белом фоне.

Ноутбук TUXEDO InfinityBook Max 16 предлагает процессоры AMD и ОС Linux

Компания TUXEDO оповестила пользователей о запуске нового ноутбука для работы InfinityBook Max 16. По сути, он представляет собой ранее анонсированную модель на базе процессоров Intel, но теперь переехал на AMD, продолжая работать с операционной системой на базе…

Мар 7, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых