1. Коротко
Сообщения, звонки, вложения, имя и фото профиля, реакции, отметки о прочтении, «печатает» и «в сети» шифруются на телефоне до отправки. Сервер их передаёт, но прочитать не может. Он хранит данные, без которых не работает, — ниже, — и при доставке видит часть метаданных. Мы не продаём данные и не передаём их третьим лицам. Apple и Google участвуют только как поставщики услуг: доставляют пуш-уведомления, а на Android могут проверять установку приложения при регистрации (раздел 6).
2. Что шифруется между устройствами
- Личные сообщения и вложения (Olm/Double Ratchet), группы (MLS), посты каналов, звонки (медиа шифруется ключом, которого у нашего сервера звонков нет).
- Имя и фото профиля: уходят собеседникам внутри зашифрованных сообщений. Фото лежит на сервере только зашифрованным файлом.
- «Печатает», «в сети / был(а)» — только тем, с кем была переписка за две недели, и только если вы это не выключили.
3. Что хранит сервер сообщений
| Данные | Зачем | Сколько |
|---|---|---|
| Публичный ключ аккаунта, дата создания | ваш адрес в Tallis | до удаления аккаунта |
| Устройства: публичные ключи, номера, подписанный список устройств, отзывы | доставка, проверка запросов | до удаления устройства или аккаунта |
| Публичные одноразовые ключи и один запасной публичный ключ на устройство | чтобы с вами можно было начать зашифрованную переписку, пока вы не в сети; запасной выдаётся, только когда одноразовые кончились | одноразовые — до выдачи; запасной — до замены (примерно раз в месяц) |
| Зашифрованные сообщения, ждущие доставки, с устройством-получателем, размером и временем приёма | доставка на устройство не в сети | до подтверждения, не дольше 30 дней |
| Зашифрованные файлы вложений | передача файлов | 14 дней |
| Токены пушей — Apple (iPhone) или Google Firebase Cloud Messaging (Android, когда включено) — и время их обновления | разбудить телефон | пока устройство их не заменит или не удалит либо пока не удалено само устройство |
| Никнейм (если задан) | поиск; он публичен по смыслу и хранится открыто | до смены или отказа (см. раздел 7) |
| Почта или номер (по желанию) | поиск по ним; хранится только хеш с секретным ключом (HMAC) | до удаления вами |
| Коды приглашений (хеш, кто выдал, даты); кто воспользовался — не пишется | личные приглашения (необязательны: регистрация открыта для всех) | до использования или 30 дней |
| Счётчики против злоупотреблений: конверты в час (адресат — 8 байт хеша), поиски в час, объём вложений | защита от спама и перебора | сутки; двое суток; окно нормы вложений |
| Использованные номера запросов (nonce) с устройством и временем | защита от повтора запросов; это след того, когда устройство обращалось к серверу | сутки |
| Закрытые каналы: владелец, подписчики, администраторы, права; одна зашифрованная копия поста и её автор | доставка постов | посты — до года; подписка — до выхода или удаления канала |
| Ключ App Attest установки приложения (iPhone; проверяется при регистрации) | ограничить число аккаунтов с одного телефона | остаётся после удаления аккаунта (раздел 12) |
| Android, когда включено: одноразовые значения проверки Google Play Integrity (раздел 6) — только их хеш, когда выданы и предъявлены и завёлся ли аккаунт; ни устройства, ни аккаунта, ни вердикта | ограничить автоматические регистрации | около суток (старые строки убираются при новых проверках) |
| Жалобы (раздел 8) | модерация | год |
| Журнал прозрачности ключей (раздел 7) | доказать, что сервер не подменяет ключи | бессрочно |
| Обезличенная статистика: суммы за день и оценка числа устройств (HyperLogLog) | работа сервиса | данных о конкретном человеке нет |
| Статистика качества сети — только если вы её включили (раздел 10) | улучшение помощника выбора соединения | суммы по неделям, ни к кому не привязаны |
На сервере нет «последнего визита» и истории входов, списка ваших переписок, отметок о прочтении, списков контактов. Приложение не отправляет адресную книгу.
4. IP-адреса и журналы
- Сервер сообщений и служба управления VPN не получают ваш IP-адрес (наш прокси его убирает) и не ведут журналов обращений приложения. Сам VPN-туннель видит адрес только в памяти, пока вы подключены (раздел 9).
- Журнал ошибок прокси может содержать IP-адрес неудачного запроса; хранится 14 дней.
- Системный журнал серверов (события и ошибки служб) хранится до 30 дней (сейчас — 7). Сервер звонков может писать туда IP-адреса участников при диагностике.
5. Что сервер видит во время работы
Чтобы доставлять, сервер неизбежно видит, какой аккаунт отправляет зашифрованный конверт на какое устройство и когда, размеры конвертов и файлов, кто в звонке, пока он идёт. Что внутри — не видит. Карточки ссылок собирает ваш телефон; сайт видит ваш IP-адрес (или адрес VPN).
6. Пуш-уведомления и проверка установки (Apple, Google)
На iPhone пуши идут через Apple (APNs, для звонков — PushKit). В пуше нет ни текста, ни отправителя, ни беседы — только сигнал разбудить приложение; сообщение расшифровывает сам телефон. Apple видит токен и время. Имя отправителя (и название группы или канала) в уведомлении и имя звонящего на экране звонка подставляет сам телефон из своих данных, когда пуш уже пришёл; по умолчанию они показываются, выключаются в «Настройки → Уведомления», для скрытых бесед не показываются никогда. Apple и Google этих имён не получают.
На Android, когда включены пуши через Google, Tallis использует Google Firebase Cloud Messaging (FCM). Пуш — это служебное сообщение с одним постоянным значением: «sync» для новых сообщений или «call» для входящего звонка — и больше ничего: ни текста, ни отправителя, ни беседы, ни имён, ни счётчика. Google видит токен, время и вид пуша (сообщение или звонок). Затем приложение само забирает сообщения с нашего сервера и расшифровывает их на телефоне.
На Android при регистрации без кода приглашения, если эта проверка включена, Tallis может использовать Google Play Integrity, чтобы защитить регистрацию от автоматических злоупотреблений. Приложение запрашивает у Google вердикт: настоящее ли это приложение Tallis из Google Play на настоящем устройстве Android; Google обрабатывает технические сведения об устройстве и приложении по своим условиям, а наш сервер проверяет вердикт у Google. Результат нужен только чтобы разрешить или отклонить регистрацию; ни вердикт, ни идентификаторы устройства мы не храним (раздел 3). Если мы включим функцию Google «device recall», Google также сохранит отметку, что с этого устройства уже регистрировали аккаунт Tallis, — чтобы ограничить число аккаунтов с одного телефона. При регистрации по коду приглашения эта проверка не используется.
7. Журнал прозрачности ключей
Чтобы приложения могли проверить, что сервер не подменяет ключи, Tallis ведёт публичный журнал, в который можно только дописывать: никнеймы (метки nick: открытым текстом) и метки аккаунтов с отпечатками списков устройств (хеши по 32 байта); если вы добавили почту или номер для поиска — ещё метка disc:, выведенная из них (16 байт, по которым без секретного ключа нашего сервера почту или номер не восстановить). Удалять записи нельзя по устройству журнала: после удаления аккаунта история никнейма, отпечатков списков устройств и меток disc: в нём остаётся. Сообщений, контактов и имён, кроме никнейма, в нём нет.
8. Жалобы и блокировка
Пожаловаться можно на человека, сообщение, группу, канал или пост. В жалобе — причина, на что жалоба, ключ вашего аккаунта, ключ аккаунта, на который жалуются (если известен), и только сообщения, которые вы отметили сами. Вы видите их и подтверждаете перед отправкой; они уходят команде Tallis в читаемом виде для проверки. Больше ничего из переписки не уходит. Жалобы хранятся год; поданные вами удаляются вместе с аккаунтом. Доказать авторство сообщения мы не можем: подписи под отдельным сообщением нет намеренно. Блокировка работает только на вашем телефоне; список к нам не уходит.
9. VPN
Со встроенным VPN интернет-трафик идёт через наш сервер в Германии, и сайты видят адрес сервера. О каждом устройстве VPN сервер хранит: публичные ключи, внутренний адрес в туннеле, платформу, дату создания, хеш пароля подключения, аккаунт Tallis, к которому относится устройство (под псевдонимом, который с вашим аккаунтом может сопоставить только наш сервер сообщений; чтобы у одного аккаунта было не больше пяти устройств VPN), и, если устройство отозвано, отметку об отзыве (отозванные записи остаются). Когда действуют лимиты VPN, сервер также считает объём трафика за календарный месяц под этим псевдонимом — только число байт, без сайтов и времени. Эти записи не удаляются вместе с аккаунтом. Трафик, посещённые сайты и время подключений не записываются; текущий адрес подключения сервер держит только в памяти, пока вы подключены. Фильтр рекламы и трекеров — там, где приложение его предлагает, — по умолчанию выключен; если его включить, он работает только на телефоне по встроенному списку, а на наших серверах ничего не фильтруется.
10. Статистика качества сети и помощник выбора соединения
Небольшая модель на телефоне помогает выбрать лучший маршрут соединения; она работает только на телефоне. Если вы включите «Помочь улучшить связь» (по умолчанию выключено), раз в сутки приложение отправляет: число замеров в фиксированных корзинах задержки, потерь пакетов и разрывов, тип сети (Wi-Fi или сотовая), тип маршрута и неделю года. Без аккаунта, номера устройства и подписи; сервер хранит только суммы по неделям. Зачем: улучшать помощник выбора соединения.
11. Отчёты о сбоях
На iPhone iOS собирает отчёты о сбоях и подвисаниях на телефоне (MetricKit). Приложение хранит их у себя и само никуда не отправляет; поделиться можно вручную в «Диагностике». Если в iOS включено «Делиться с разработчиками», Apple может передавать нам свои отчёты.
На Android, если приложение упало или перестало отвечать, оно записывает короткий отчёт в своё хранилище на телефоне: тип ошибки и место в коде (стек вызовов), версию приложения, версию Android и модель телефона — без текста ошибки, сообщений, ключей, контактов и имён. Хранятся последние 10 отчётов; сами они никуда не уходят. После сбоя приложение предлагает отправить отчёт; это же можно сделать в «Профиль → Сообщить о проблеме». Отчёт уходит обычным письмом на info@nun-ar.org (или любым другим способом, который вы выберете в меню «Поделиться») и только когда вы его отправите; приложенный журнал можно прочитать до отправки, а всё, что в нём похоже на адрес, почту, номер телефона, ник или ключ, вымарывается. Если на Android включена отправка данных об использовании и диагностике, Google может передавать нам через Google Play обобщённую статистику сбоев и производительности приложения.
12. Удаление аккаунта
В приложении: вкладка «Профиль» → «Удалить аккаунт» (внизу) → «Удалить» (с главного телефона аккаунта). Сервер удаляет аккаунт, устройства, ключи, ждущие доставки сообщения, токены пушей, никнейм, хеши почты и номера, приглашения, счётчики, привязанные к аккаунту, ваши каналы и поданные вами жалобы. Остаётся: уже доставленные сообщения — на телефонах получателей; зашифрованные файлы вложений до истечения срока (до 14 дней); зашифрованные отложенные сообщения, которые вы запланировали, — до срока отправки (сервер не знает, что они ваши); ваше авторство постов в чужих каналах (до года); жалобы других людей на вас (до года); журнал прозрачности ключей (раздел 7); запись App Attest, если была; на Android — отметка Google «device recall», если эта функция включена (раздел 6); записи устройств VPN и помесячные счётчики объёма (раздел 9); обезличенная статистика; зашифрованные резервные копии сервера, в которых прежние копии базы хранятся до шести месяцев.
Если приложением воспользоваться нельзя (например, телефон потерян), попросите удалить аккаунт письмом — как мы сопоставляем такой запрос с аккаунтом — см. Поддержка. Администратор удалит на сервере то же, что и кнопка в приложении; данные на самом потерянном телефоне мы стереть не можем.
13. Ваши права
Мы обрабатываем данные на таких правовых основаниях по GDPR: чтобы предоставлять сервис, о котором вы просите (ст. 6(1)(b)), — аккаунт, устройства, ключи и доставка сообщений; наши законные интересы — защита Tallis и борьба со злоупотреблениями (ст. 6(1)(f)) — защита запросов, счётчики против злоупотреблений, App Attest и Play Integrity, жалобы и журнал прозрачности ключей; ваше согласие (ст. 6(1)(a)) — необязательные почта или номер телефона и статистика качества сети, которые можно убрать или выключить в любой момент.
Вы вправе получить доступ к своим данным, исправить и удалить их, ограничить их обработку или возразить против неё, а также получить их в переносимом виде. Большую часть данных можно изменить или удалить в приложении; удаление аккаунта стирает их с сервера (раздел 12). Сообщения зашифрованы сквозным шифрованием, поэтому прочитать или передать их содержимое мы не можем. Вы можете подать жалобу в надзорный орган — в Португалии это Comissão Nacional de Proteção de Dados (CNPD) — или в орган вашей страны ЕС.
Tallis предназначен только для людей от 18 лет. Пишите на info@nun-ar.org.
14. Изменения
Изменения публикуем на этой странице и обновляем дату выше.