TarnVeil — мессенджер с текстовым общением, личными и групповыми сообщениями,
голосовыми сообщениями, голосовыми и видео-звонками, пространственными аудио-комнатами
и сообществами. Доступен в браузере, как приложение для Windows (десктоп) и для Android.
Настоящая политика описывает, какие данные мы обрабатываем, зачем и как вы можете ими
управлять.
1. Какие данные мы обрабатываем
Аккаунт: логин, отображаемое имя, аватар и пользовательский статус
(по желанию), хеш пароля. Сам пароль мы не храним — только криптографический
хеш (bcrypt). Ни почта, ни номер телефона для регистрации не нужны и не
запрашиваются.
Контент: сообщения в каналах и сообществах, личные и групповые сообщения,
обсуждения, вложения (файлы, картинки, голосовые сообщения), реакции, закреплённые
сообщения и ответы.
Личные сообщения: личная переписка «один на один» защищена сквозным
шифрованием (E2EE) — подробнее в разделе 7. В этом режиме сервер хранит только
зашифрованный текст и вложения и не может их прочитать.
Голос и видео: передаются между участниками звонка или аудио-комнаты в
реальном времени (через собственный SFU TarnMedia) и не записываются и не хранятся нами.
В пространственных комнатах между участниками синхронизируются только их условные
координаты (позиция на «карте»), звук нигде не сохраняется.
Служебные данные общения: отметки о прочтении, индикатор «печатает…»,
статус «в сети / последний раз в сети», ваши избранные контакты и настройки
уведомлений. Они нужны для работы соответствующих функций.
Сессии и оповещения безопасности: список ваших активных устройств
(описание устройства, IP-адрес, дата входа) и записи о входе с нового устройства
или восстановлении доступа. Подробнее об IP — в разделе 4.
Техническая информация: токен устройства для push-уведомлений (FCM).
2. Гостевые аккаунты
«Заглянуть как гость» — это не анонимный режим просмотра: гостевой вход создаёт
настоящий аккаунт в нашей базе, просто без формы регистрации.
Как он устроен: логин вида гость-xxxxxx генерирует сервер,
а пароль генерирует ваше устройство случайным образом и не показывает вам.
Поэтому войти в гостевой аккаунт можно только с этого устройства и только пока
браузер помнит вход.
Что это значит на практике: очистка данных сайта, другой браузер, другое
устройство или режим инкогнито означают потерю доступа без возможности
восстановления — у нас нет ни почты, ни телефона, по которым можно было бы
вернуть такой аккаунт.
Что хранится: всё, что вы напишете гостем — сообщения, вложения,
участие в сообществах — хранится так же, как у обычного аккаунта, и остаётся в
базе, пока аккаунт не удалён. Неиспользуемые гостевые аккаунты автоматически
не удаляются.
Как остаться: гостевой аккаунт можно «закрепить» — задать свои логин и
пароль в настройках. Переписка, сообщества и настройки при этом сохраняются, и
аккаунт становится обычным.
Права те же: гость может удалить свой аккаунт так же, как любой другой
пользователь (раздел 8).
3. Зачем мы их используем
Чтобы предоставлять работу приложения: доставлять сообщения, звонки,
уведомления, отображать профиль, друзей и сообщества.
Для безопасности: защита от спама, перебора паролей и злоупотреблений.
Мы не продаём ваши данные и не используем их для рекламы.
4. IP-адрес
Ваш IP-адрес виден серверу при каждом обращении — без этого сеть попросту не
работает. Вот что мы с ним делаем:
Временно — для защиты: ограничение частоты запросов при входе,
регистрации и других действиях, чтобы затруднить перебор паролей и спам. Такие
счётчики живут минуты и в базу не попадают.
В записи об активной сессии: когда вы входите, IP сохраняется рядом с
описанием устройства. Это ваш собственный список сеансов в
Настройки → Аккаунт: вы видите, откуда открыт ваш аккаунт, и можете
завершить любой сеанс. Запись вместе с IP удаляется, когда сеанс завершён — вами,
выходом или сменой пароля (она завершает все сеансы сразу).
В оповещениях безопасности: при входе с нового устройства и при
восстановлении доступа создаётся запись с описанием устройства и IP, чтобы вы
могли заметить чужой вход. Эти записи остаются в вашей истории до удаления
аккаунта.
Мы не определяем по IP ваше местоположение, не строим на его основе профиль и не
передаём его третьим лицам. Отдельно отметим: IP виден и техническим провайдерам,
через которых проходит соединение (хостинг, сеть) — как и при заходе на любой сайт.
5. Cookie и локальное хранилище
Само приложение не использует cookie. Всё, что нужно для работы, хранится в
локальном хранилище вашего браузера и никуда автоматически не отправляется:
Токен входа — чтобы не спрашивать пароль при каждом открытии.
Ключи шифрования личной переписки (IndexedDB). Приватный ключ не покидает
устройство; на сервере лежит только его резервная копия, запечатанная так, как
описано в разделе 7.
Настройки: язык интерфейса, режим обработки микрофона и настройки звука,
громкости собеседников, скрытые диалоги, состояние перевода сообщений, отметки о
просмотренных версиях.
Если очистить данные сайта, всё это удалится — включая ключи шифрования. После этого
старые зашифрованные сообщения на новом устройстве прочитать не удастся, пока ключ
не будет восстановлен по коду восстановления или по обращению к оператору
(см. раздел 7).
Cookie появляются только до входа. На публичных страницах сайта и на экране
входа работает счётчик Яндекс.Метрики — он ставит собственные cookie. В момент входа
счётчик выключается и удаляется со страницы: внутри приложения — в переписке, звонках
и настройках — аналитики нет. Подробнее в разделе 6.
6. Кому передаются данные
Firebase Cloud Messaging (Google) — для доставки push-уведомлений
на устройство. Для зашифрованных личных сообщений в push уходит только
обезличенное «🔒 Новое сообщение» без текста.
Яндекс.Метрика (Яндекс) — веб-аналитика на публичных страницах и на
экране входа: посещения, источники переходов, клики и запись действий на странице
(Вебвизор), чтобы понимать, где люди спотыкаются при первом знакомстве. Метрика
получает ваш IP-адрес и ставит свои cookie. Счётчик не работает после входа
в приложение — переписка, звонки и настройки в аналитику не попадают. Условия
Яндекса: yandex.ru/legal/confidential.
Klipy — поиск гифок. Текст поискового запроса уходит к ним через наш
сервер, поэтому сервису не видно, кто именно ищет. Сами гифки ваш браузер
загружает напрямую с их CDN (static.klipy.com) — при этом Klipy видит
ваш IP-адрес и параметры браузера, как любой сайт, с которого браузер грузит
картинку. Сведения о вашем аккаунте и содержимое переписки ему не передаются.
Других передач третьим лицам нет.
7. Хранение, шифрование и защита
Данные хранятся на нашем сервере. Всё сетевое соединение защищено TLS (HTTPS/WSS).
Пароли хранятся только в виде хеша.
Личные сообщения (E2EE): когда оба собеседника настроили ключи шифрования
(это происходит автоматически при входе на устройстве), личная переписка и вложения
в ней шифруются на устройстве — сервер получает и хранит только шифротекст и
не может прочитать содержимое сам по себе.
Приложение честно показывает статус шифрования для каждого диалога (значок замка).
Если у собеседника шифрование ещё не настроено, сообщения защищены шифрованием на
стороне сервера (см. ниже), но технически доступны серверу — об этом сигнализирует
соответствующий статус замка.
Важное исключение — восстановление доступа администратором. Чтобы забытый
пароль не означал безвозвратную потерю переписки, приложение хранит на сервере
резервную копию вашего приватного ключа. Она запечатана на отдельный ключ
восстановления администратора, закрытая половина которого хранится офлайн и на
сервер не попадает: утечка базы сама по себе переписку не раскрывает. Но оператор
сервиса, располагая этим офлайн-ключом, технически может восстановить ваш ключ и
получить доступ к вашей личной переписке. Это осознанный размен: без него
забытый пароль стоил бы вам всей истории. На практике восстановление выполняется
по обращению самого пользователя, требует отдельного офлайн-ключа и фиксируется в
журнале действий администратора. Отключить эту резервную копию в приложении нельзя.
Если такая модель доверия вам не подходит — не используйте сервис для переписки,
которую нельзя доверить его оператору.
Групповые диалоги и сообщения в сообществах: шифруются на сервере в
состоянии покоя (AES-256-GCM). Это защищает данные при хранении, но, в отличие от
личной переписки, они технически доступны серверу (полноценное групповое сквозное
шифрование пока не реализовано).
Доступ: к личным сообщениям имеют доступ только участники переписки; к
сообщениям в сообществе — его участники.
8. Удаление аккаунта и резервные копии
Удалить аккаунт можно самостоятельно: Настройки → Аккаунт → Удалить
аккаунт. Подтверждение необратимо, и по обращению мы аккаунт не восстановим.
Вместе с аккаунтом из работающего сервиса удаляются:
ваши сообщения, личные и групповые диалоги, обсуждения и вложения;
созданные вами сообщества;
сессии устройств, оповещения безопасности и push-токены;
резервная копия вашего ключа шифрования — после этого расшифровать вашу
переписку не может уже никто, включая оператора.
Честная оговорка про «безвозвратно». Мы ежедневно делаем резервную копию базы
и загруженных файлов — иначе один сбой диска стоил бы переписки всем пользователям
сразу. Копии хранятся 14 дней на сервере и до 30 дней на отдельном
носителе оператора вне сервера, после чего затираются автоматически. Поэтому
точная формулировка такая: из работающего сервиса ваши данные исчезают немедленно и
навсегда, а из резервных копий — в течение месяца. Копии используются только для
аварийного восстановления сервиса целиком; выборочно доставать из них удалённые
аккаунты мы не делаем ни по чьей просьбе.
Отдельно: сообщения, которые вы отправили другим людям, — это часть и их переписки
тоже. Копии, сохранённые вашими собеседниками у себя (например, снимок экрана), под
удаление аккаунта не попадают.
9. Ваши права и управление данными
Смена пароля: в Настройки → Аккаунт; при смене пароля сессии
на других устройствах завершаются, а ключ шифрования переупаковывается под новый пароль.
Сеансы: список активных устройств с возможностью завершить любой из них
или все сразу.
Блокировка: вы можете заблокировать любого пользователя — он не сможет
писать вам и звонить.
Жалобы: вы можете пожаловаться на пользователя или сообщение — жалобу
рассмотрят модераторы.
Удаление: см. раздел 8.
10. Контент пользователей и модерация
Контент создают сами пользователи. Запрещены оскорбления, угрозы, незаконные
материалы и спам. Модераторы вправе удалять такой контент и блокировать
нарушителей по жалобам пользователей. Обратите внимание: содержимое личной
переписки с включённым сквозным шифрованием не читается сервером и недоступно
модераторам в обычной работе — модерация личной переписки ведётся только по
жалобам, к которым заявитель сам прикладывает снимок сообщения. Единственная
возможность оператора получить доступ к содержимому описана в разделе 7
(«Восстановление доступа администратором»).
11. Возраст
Приложение не предназначено для детей младше 12 лет; рекомендуемый возраст
использования — 12+.
Для пользователей из других стран действуют более высокие пороги, установленные
местным законодательством: не младше 13 лет для пользователей из США и не
младше 16 лет для пользователей из Европейской экономической зоны и
Великобритании (либо более низкий возраст, если он установлен вашей страной, но не
менее 13 лет, — и при согласии родителя или опекуна). Мы сознательно не собираем
данные детей младше этих возрастов; если вы считаете, что аккаунт завёл ребёнок
младше, сообщите нам, и мы его удалим.
12. Изменения политики
Мы можем обновлять эту политику. Актуальная версия всегда доступна по этому
адресу с указанием даты обновления.
13. Контакты
TarnVeil находится в ранней бета-версии. По вопросам конфиденциальности, сообщениям об ошибках
и уязвимостях — через раздел Issues на странице проекта в GitHub:
github.com/Amesu-afk/TarnVeil.