Конфиденциальность
Политика конфиденциальности ЯЧата
ЯЧат — веб-сервис для общения. Приложение размещается на Vercel, а основные записи аккаунтов и чатов хранятся в Supabase.
1. Документ
Здесь описана работа с информацией пользователей в ЯЧате.
2. Формат
ЯЧат работает как веб-сервис, а не как отдельная привязка к одному типу устройства.
3. Устройства
Сервис можно открывать с поддерживаемых телефонов, планшетов и компьютеров. Для защищённых личных сообщений каждое устройство получает отдельный криптографический идентификатор и публичные ключи.
4. Хранилище
Основные записи сервиса находятся в Supabase. Передача данных между браузером и инфраструктурой выполняется по защищённому HTTPS-соединению.
5. Аккаунт
Для аккаунта используются сведения, нужные для входа и показа профиля.
6. Профиль
Профиль может содержать имя, ник, описание и аватар.
7. Вход
Вход работает через текущий способ подтверждения, доступный в сервисе. Активная сессия может быть связана с конкретным устройством для проверки готовности сквозного шифрования.
8. Настройки
Сервис может сохранять тему, язык и другие настройки интерфейса.
9. Поиск
Поиск помогает находить аккаунты внутри ЯЧата.
10. Личные чаты
Для существующих аккаунтов новые личные сообщения требуют устройства протокола E2EE 5 у обоих участников. Пока миграция не завершена, отправка блокируется. Сервер не принимает для такого чата открытый текст или downgrade на старую версию.
11. Защищённые сообщения
В защищённом режиме текст, форматирование, сведения об ответе и пересылке, клиентское время и вложения шифруются на устройстве отправителя. Сообщение дополняется до фиксированного размерного диапазона и подписывается ключом устройства. Сервер хранит шифротекст и отдельные зашифрованные ключевые конверты. Расшифровка выполняется только устройствами участников.
12. Метаданные защищённого чата
Сквозное шифрование не скрывает от инфраструктуры сам факт существования чата, участников, зарегистрированные устройства, сетевого отправителя и получателя, приблизительное время операции, размерный диапазон шифротекста, количество устройств и размеры зашифрованных контейнеров. Полное сокрытие этих данных потребовало бы отдельной анонимной сети доставки.
13. Старые сообщения
Сообщения, отправленные до активации защищённого режима, сохраняют тот способ хранения, который использовался в момент их отправки. Активация не переписывает старую историю задним числом.
14. Вложения
В обязательном защищённом режиме бинарное содержимое вложения шифруется на устройстве отправителя, а исходные имя, тип, вид, размер и контрольный отпечаток находятся внутри подписанного защищённого сообщения. Сервер хранит только технический зашифрованный контейнер.
15. Локальные ключи
Приватные ключи сообщений не отправляются серверу. В поддерживаемом браузере их переносимое представление и cache ключей истории хранятся внутри локального хранилища, зашифрованного AES-GCM отдельным секретом аккаунта и устройства. Использованный одноразовый приватный prekey удаляется после сохранения ключа сообщения. Отдельный приватный ключ уведомлений доступен service worker. Очистка данных сайта может удалить возможность расшифровывать предназначенную этому устройству историю, Digital ID и уведомления.
16. Уведомления
Отправитель отдельно шифрует для каждого устройства заголовок, реальный текст, маршрут, tag и клиентское время уведомления. Сервер и push-провайдер получают общий fallback и непрозрачный контейнер, а браузер проверяет подпись и расшифровывает descriptor перед показом. Push-провайдер всё равно видит endpoint устройства и время сетевой доставки. Расшифрованный текст может отображаться на экране блокировки согласно настройкам устройства.
17. Цифровой ID
Цифровой ID владельца хранится в подписанном клиентском AES-GCM vault с отдельным X25519-конвертом для каждого его устройства. После успешной миграции plaintext удаляется из основной записи. Для поиска остаётся HMAC-индекс, ключ которого находится вне Supabase. Цифровой ID сам по себе не подтверждает доступ: внешняя проверка дополнительно требует одноразовый код и PKCE.
18. Группы
Группы содержат название, описание, участников и приглашения. Режим защищённого текста этого этапа относится только к личным чатам и не должен считаться групповым E2EE.
19. QR-сессии
QR-сессии используются только в пределах текущих функций ЯЧата.
20. Технические записи
Технические записи нужны для стабильной работы сервиса и не предназначены для публичного просмотра.
21. Обезличенная аналитика
Vercel Web Analytics используется только для агрегированной статистики посещений. Маршруты внутри приложения вида /web/... перед отправкой сокращаются до /web, а параметры запроса и фрагменты адреса удаляются. Тексты сообщений, юзернеймы, номера телефонов, названия чатов, цифровые ID и содержимое файлов в аналитику не отправляются.
22. Использование
Информация используется для входа, профиля, чатов, групп, поддержки, защиты сообщений и стабильной работы сервиса.
23. Доступ
Открытая информация видна пользователю и участникам тех чатов, где она опубликована. Содержимое нового защищённого текста предназначено для устройств участников соответствующего личного чата.
24. Браузер
Браузер может хранить кэш страницы, настройки интерфейса, криптографические записи устройства и локальные ключи.
25. Изменение
Профиль можно изменить через настройки аккаунта.
26. Удаление
Профиль можно удалить через доступный раздел или через поддержку. Удаление локального устройства или его ключей может сделать предназначенную для него зашифрованную историю недоступной.
27. Индексация
Публичные страницы ЯЧата могут индексироваться поисковыми системами. Чаты, профили, номера телефонов, настройки, служебные маршруты и API не предназначены для индексации.
28. Обновления
Документ обновляется при изменении функций, хранения, шифрования или инфраструктуры.
29. Связь
Telegram: @murochko_com. WhatsApp: @murochko.