v5 · loading SW...

Прямое соединение браузер→браузер.
Сообщения не проходят через сервер.

Если включено — после входа второго участника ссылка «сгорает», повторный вход невозможен.
— или —
Как это работает · безопасность · проверка

🔗 Как устроена передача

Это прямое соединение браузер → браузер (технология WebRTC). Ваши браузеры устанавливают канал напрямую, и сообщения идут между ними, не проходя через сервер.

Сервер нужен только на несколько секунд в начале — как «телефонист», чтобы познакомить браузеры друг с другом (обменяться «адресами» через код комнаты). После установки соединения сервер полностью выпадает из цепочки.

🔐 E2E-шифрование (по ссылке)

Ссылка выглядит так: /chat/XK3PT#c2VjcmV0LWtleQ==. Код комнаты — в пути (виден серверу для соединения), а секретный ключ — во фрагменте #…, который браузер никогда не отправляет на сервер. Оба пира получают ключ из одной ссылки и шифруют каждое сообщение AES-256-GCM. Даже сервер и TURN не могут прочитать переписку.

🚫 Что НЕ хранится

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

🔒 DTLS (транспортное шифрование)

Даже без ссылки канал шифруется автоматически по протоколу DTLS — тот же механизм, что защищает HTTPS. Ручной ввод кода даёт только DTLS, ссылка — DTLS + E2E.

🔁 Что если открыть ту же ссылку третьему человеку?

Комната рассчитана ровно на двоих. Кто первым войдёт — тот собеседник. Третий получит «комната занята» и не увидит ваши сообщения.

🌐 Что такое «TURN»?

Если браузеры не могут соединиться напрямую (строгий NAT), сообщения идут через TURN-релей — «трубу», которая передаёт зашифрованный поток, не читая и не запоминая его.

🎙️ Аудиозвонок

Кнопка 🎙️ в чате запускает голосовую связь. Звук с микрофона идёт напрямую браузер → браузер по тому же защищённому каналу, что и текст — через WebRTC. Сервер и TURN только помогают установить соединение, а сам разговор идёт мимо них.

Аудио шифруется протоколом DTLS (тот же механизм, что в HTTPS). Перехватчик в сети — провайдер, WiFi-сниффер — видит только зашифрованный поток и не может его прослушать.

⚠️ Честно: DTLS защищает от чужих в сети, но не от владельца сервера. Владелец сервера теоретически мог бы встать посередине (MITM) и слушать разговор. Для полной защиты «даже от сервера» нужно E2E-шифрование аудио — пока его нет. Текст по ссылке защищён E2E (AES-256), а аудио — только DTLS.

✅ Как убедиться, что безопасно

  • F12 → Network → начните обмен. Серверу идут только /chat, /ws, /turn — служебные.
  • F12 → Console при соединении: 🔒 Соединение установлено.
  • По ссылке E2E: сообщения в Network выглядят как случайные зашифрованные байты.
  • После начала переписки новых запросов к серверу нет — сообщения идут напрямую.
🔗 WebRTC P2P🔐 AES E2E 🚫 No server storage🗑️ in-memory