Документы
Приватность
Последнее обновление: 11 октября 2026
Коротко
/ summary
GChat — это мессенджер. Мы передаём между устройствами шифротекст со сквозным шифрованием. Ваши сообщения и звонки не можем прочесть ни мы, ни наш хостинг, ни тот, кто перехватывает трафик до наших серверов.
Ниже — простым языком, какие данные проходят через нашу систему и как долго. Если читать только один абзац — читайте предыдущий. Всё остальное просто разворачивает ту же мысль технически.
Личность и никнеймы
/ ваш аккаунт
GChat не требует номера телефона. Чтобы создать аккаунт, вы выбираете
ник (например @dragekorn), а устройство генерирует вашу
долгосрочную криптографическую личность: одну пару ключей подписи
Ed25519 и одну пару для обмена ключами
X25519. Приватные половинки этих ключей
хранятся только у вас на устройстве. Мы их не видим и восстановить не
можем.
Также вы получаете одноразовое recovery-слово. Только оно позволит восстановить аккаунт на новом устройстве. Его мы тоже не храним — если потеряли, восстановить нельзя. Это цена того, чтобы нам не приходилось доверять.
Что мы всё-таки храним об аккаунте
- Случайный идентификатор пользователя.
- Выбранный ник и отображаемое имя.
- Публичные ключи вашей личности.
- Ротируемый набор публичных одноразовых pre-key-ев для старта новых сессий.
- Непрозрачный токен устройства для доставки пушей — если вы дали на это согласие.
- Сессии ваших устройств. Сессия, которой не пользовались 90 дней, истекает автоматически — устройству придётся войти заново.
Сообщения и звонки
/ горячий путь
Каждое сообщение шифруется на вашем устройстве уникальным симметричным ключом, выведенным из сессии Double Ratchet, инициализированной через X3DH. Наш сервер видит только идентификатор получателя, таймстамп доставки и непрозрачный шифротекст. Он хранит этот блок до тех пор, пока устройство получателя не подтвердит доставку — после чего удаляет.
Голосовые и видеозвонки используют тот же ключевой материал для согласования медиа-сессии. Аудио и видео защищены сквозным шифрованием, наш релей только пересылает уже зашифрованные RTP-пакеты.
Если устройства не могут соединиться напрямую, звонок идёт через релей: наши собственные TURN-серверы или, для части звонков, наш собственный медиасервер LiveKit. Релей пересылает зашифрованный поток и расшифровать его не может: ключи передаются внутри вашей сквозно-зашифрованной сессии. Как и любой релей, он видит IP-адреса участников, время и объём трафика. Сторонние публичные TURN-серверы мы не используем даже как запасной вариант.
По каждому звонку сервер хранит запись: кто кому звонил, аудио или видео, когда звонок начался, был принят и завершён — чтобы работали вызов, уведомления о пропущенных и история звонков.
Фото, голос и видео
/ вложения
Вложения (фото, голосовые, видеокружочки) шифруются на устройстве одноразовым ключом AES-GCM-256. Шифротекст загружается на сервер; сам ключ упакован внутрь сквозно-зашифрованного сообщения и в открытом виде наш сервер никогда не видит.
У каждого загруженного блока есть TTL (по умолчанию 7 дней). Фоновый процесс-«уборщик» автоматически удаляет просроченные шифротексты. Статистику удалений мы публикуем на status-странице.
Резервные копии чатов
/ по желанию, шифруются на устройстве
Резервное копирование чатов по умолчанию выключено. Если вы его включите (Настройки → Резервная копия), устройство упакует ваши чаты — и, по вашему выбору, медиа, уже сохранённые на телефоне, — в архив и зашифрует его AES-256-GCM случайным ключом резервной копии, созданным на устройстве. На наш сервер загружается только зашифрованный архив. Прочитать его мы не можем.
- Ключ: ключ резервной копии также хранится на сервере в виде, зашифрованном вашим секретным словом, — чтобы вы могли восстановиться на новом телефоне. Без секретного слова он для нас бесполезен.
- Ключи в облаке (по желанию): если включить «Хранить ключи в iCloud / аккаунте Google», ключи аккаунта и ключ резервной копии сохраняются в Связке ключей iCloud (iOS) или Google Block Store (Android). Это хранилище принадлежит вашему аккаунту Apple или Google и регулируется их политиками конфиденциальности — доступа к нему у нас нет. Тот, кто получит ваш Apple ID / аккаунт Google и код-пароль телефона, сможет восстановить ваш аккаунт GChat; если это важно — не включайте эту опцию.
- Что мы храним: только последнюю резервную копию (каждая новая заменяет предыдущую), её размер, время создания и признак «с медиа». У каждого аккаунта есть квота (сейчас 2 ГБ); незавершённые загрузки удаляются в течение 24 часов.
- Удаление: удалить копию с сервера можно в любой момент в приложении («Удалить копию с сервера») или написав нам. При удалении аккаунта она удаляется автоматически.
Поиск и видимость
/ что могут найти другие
- Люди: если включено «Разрешить поиск по этому никнейму» (по умолчанию включено; выключается в «Настройки → Конфиденциальность» или при выборе ника), другие пользователи могут найти вас по нику или имени и увидеть ваш публичный профиль. Если выключить, вы пропадёте из поиска людей; те, у кого вы уже в контактах или у кого есть ваша ссылка-приглашение, по-прежнему смогут вам написать.
- Публичные каналы и группы: их название, описание, аватар и число участников может найти любой пользователь. Посты публичных каналов тоже находятся через глобальный поиск.
- Закрытые каналы и группы видны в поиске только их участникам.
- Поисковые запросы отправляются на сервер, чтобы получить результаты. Историю поиска мы не храним.
Профиль, истории и безопасность
/ без сквозного шифрования
Часть данных по своей природе публична для ваших собеседников и хранится на сервере без сквозного шифрования:
- Профиль: никнейм, имя, описание, аватар (и прежние аватары, если вы их оставили).
- Истории: фото и видео, которые вы публикуете в историях для контактов, а также кто их смотрел и реагировал.
- Каналы: посты каналов (текст и медиа), реакции и счётчики просмотров хранятся на нашем сервере и не защищены сквозным шифрованием. Технически мы можем их прочитать — как любую публичную рассылку. Относитесь к каналу как к публикации, а не к личному чату.
- Группы и каналы: названия, описания, аватары, списки участников и роли администраторов. Сама переписка в группах остаётся сквозно-зашифрованной.
- Плейлисты: аудио, загруженное в плейлисты.
- Контакты и безопасность: список контактов, заявки на переписку (кто кому написал и принята ли заявка), заблокированные пользователи и ваши жалобы. В жалобе хранятся причина, объект жалобы и добавленные вами подробности. Если вы жалуетесь на сообщение, его текст отправляется модераторам с вашего устройства — сами мы расшифровать его не можем. Жалобы хранятся для модерации.
- Заявки на вступление: когда вы просите вступить в группу или канал, администраторы видят ваш профиль и необязательное сообщение к заявке (до 200 символов).
- Качество звонков: технические метрики (битрейт, потери пакетов, задержка, кодек, тип сети, платформа, версия приложения и модель устройства) для диагностики — но не звук и не видео.
- Уведомления: push-токен; доставка через Apple Push Notification service или Firebase Cloud Messaging. В уведомлениях о сообщениях нет их текста — только имя отправителя и тип сообщения (например, «Фото») или сведения о звонке. Уведомления о постах в каналах могут содержать начало поста, так как посты каналов не шифруются сквозным шифрованием.
- Геопозиция: точка на карте и трансляция геопозиции уходят собеседнику внутри сквозно-зашифрованного сообщения — координаты наш сервер не видит и не хранит. Трансляция идёт только то время, которое вы выбрали (15 минут, 1 час или 2 часа), и останавливается кнопкой в любой момент. Картинки карты приложение загружает через наш сервер, чтобы поставщик карт не видел ваш адрес; сервер при этом видит, какой участок карты запрошен, но в базе это не сохраняется.
- Беззвучный режим: если на устройстве включён режим «Не беспокоить» или «Фокусирование», сервер хранит одну отметку «уведомления заглушены» (не дольше 24 часов), чтобы собеседники видели её в чате. Какой именно режим включён, мы не знаем. Отключается в Настройки → Конфиденциальность.
- Стикеры: список наборов стикеров и эмодзи, которые вы добавили себе.
Метаданные, которых мы касаемся
/ неизбежное
Чтобы доставить сообщение, сервер неизбежно видит следующие не-контентные метаданные:
- Ваш user-ID (случайный, это не номер телефона).
- User-ID получателей.
- Таймстамп каждой доставки.
- Размер каждого шифротекста.
- IP-адрес устройства на момент подключения.
Мы не храним IP-адреса в базе данных. Соединительные IP существуют только в оперативной памяти на время активной сессии. Для ограничения частоты запросов (регистрация, вход, восстановление, ссылки-приглашения) мы используем хеш IP с солью, которая меняется каждый день; эти счётчики истекают в течение 24 часов. Серверные журналы отдельных событий, важных для безопасности, могут содержать IP-адрес и используются только для расследования злоупотреблений.
Хранение и удаление
/ сроки
- Сообщения: удаляются с нашего сервера в секунды после подтверждения доставки. Недоставленные — хранятся до 30 дней, дальше выкидываются.
- Медиа: удаляются в рамках TTL (по умолчанию 7 дней).
- Записи о звонках и метрики качества: хранятся для истории звонков, диагностики и борьбы со злоупотреблениями. После удаления аккаунта они больше не связаны ни с каким именем или ником.
- Резервная копия чатов: хранится только последняя; её заменяет следующая, и она удаляется, когда вы удаляете её или аккаунт.
- Посты каналов: хранятся, пока их не удалит автор или администратор канала либо пока не удалён сам канал.
- Жалобы: хранятся для модерации и выполнения требований закона, в том числе после удаления любого из аккаунтов.
- Сессии устройств: истекают после 90 дней без использования.
- Резервные копии сервера: базу данных мы ежедневно копируем на случай аварии и храним последние 7 ежедневных и 4 еженедельные копии, поэтому удалённые из рабочей системы данные могут оставаться в них примерно до пяти недель, пока копии не будут перезаписаны. Доступ к ним ограничен, используются они только для восстановления работы сервиса. Загруженные файлы (медиа, аватары, истории, аудио, резервные копии чатов) хранятся в файловом хранилище на наших собственных серверах, а не в дампах базы данных.
- Истории: удаляются по истечении срока, если вы не закрепили их в профиле; удалить любую можно в любой момент.
- Аккаунт: удалить можно из приложения в любой момент. Стираются профиль, ключи, устройства, истории, плейлисты, контакты, резервная копия чатов и ещё не доставленные сообщения. Полный список и способ удалить аккаунт без приложения — на странице удаления аккаунта.
Законные запросы
/ прозрачность
Если мы получим законный запрос на раскрытие данных, мы выдаём ровно то, что можем технически произвести. А это, по дизайну, очень немного: ваш user-ID, ник и профиль, таймстампы последних подключений, записи о звонках и контент без сквозного шифрования (например, посты каналов). Мы не можем выдать содержимое сообщений, содержимое звонков, содержимое резервных копий или метаданные прошлых сообщений: первые три мы не можем расшифровать, последние — не храним.
Мы обязуемся дважды в год публиковать отчёт о прозрачности с описанием полученных запросов.
Дети
GChat не предназначен для детей младше 13 лет. Мы сознательно не собираем данные о детях. Если вы знаете, что несовершеннолетний зарегистрировал аккаунт — напишите нам, мы его удалим.
Изменения в этой политике
Любое существенное изменение этого документа анонсируется в приложении и фиксируется в публичном репозитории проекта. Дата в строке «Последнее обновление» наверху страницы — авторитативна.
Контакты
Вопросы, претензии, находки по безопасности: privacy@gchat.tech. Раскрытия по безопасности прошу направлять согласно процессу из security.txt.