Обновлено: 29.09.2026

Личные сообщения, шифрование и проверка ключей

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

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

1. Что и как шифруется

Текст личных сообщений шифруется алгоритмом XChaCha20-Poly1305. Ключ для переписки выводится из вашего закрытого ключа и открытого ключа собеседника по схеме X25519, а затем преобразуется функцией HKDF-SHA256.

Закрытый ключ никогда не покидает устройство и не отправляется на сервер. На сервер уходит только открытый ключ — по нему шифровать можно, расшифровать нельзя.

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

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

2. Главное ограничение: проверяйте значок

Если у собеседника ещё нет опубликованного открытого ключа, приложение отправит сообщение обычным текстом — молча, без предупреждения. Так же происходит при самом первом входе, пока ключи ещё генерируются.

Единственный признак этого — значок в шапке диалога. «Скрозное шифрование» означает, что текст зашифрован. «Без шифрования» и «Ожидание ключа собеседника» означают, что сообщение ушло открытым текстом.

Прежде чем обсуждать что-то чувствительное, посмотрите на этот значок. Он меняется по мере того, как собеседник заходит в систему.

3. Сверка кода безопасности

Нажмите на значок замка в шапке диалога — откроется окно «Проверка безопасности» с кодом безопасности из 32 символов и отпечатками ключей обоих собеседников.

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

Сверку достаточно провести один раз. Повторять её при каждом сообщении не нужно.

4. Чего приложение не делает

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

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

У ключей нет механизма скользящей генерации, поэтому взлом устройства раскрывает переписку с этим человеком целиком, включая старую.

5. Что не зашифровано

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

Голосовые разговоры, объявления, рассылки по расписанию и опросы не зашифрованы — это объявления для всего альянса.

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

6. Ключи и смена устройства

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

Собеседники при этом не получают предупреждения о смене ключа. Если человек внезапно попросил вас сверить код безопасности повторно после долгого перерыва — стоит сначала убедиться, что это тот же человек.