Справочник / Безопасность и проект
Безопасность и обращение с данными
Модель угроз, модель доступа, защита конфиденциальных данных в состоянии покоя, сетевая уязвимость, импорт сеансов и порядок сообщения об уязвимостях.
TgWitness работает на вашем собственном компьютере или сервере. Подключение учетных записей, ведение списка общедоступных прокси-серверов и использование дополнительных внешних сервисов регулируются четко сформулированными правилами маршрутизации. Уведомления, временные метки, резервные копии за пределами системы и свидетель настраиваются отдельно. На этой странице перечислено, что именно защищается, каким образом, а также что остается на усмотрение оператора.
| Область | Вкратце |
|---|---|
| Доступ | Ключ администратора, а также ограниченный доступ к аккаунтам и чатам, семь уровней прав доступа и сеансы с возможностью отзыва; по умолчанию используется localhost |
| Секреты в состоянии покоя | Настройки сеанса, пары API, ключа подписи и прокси шифруются с помощью алгоритма Fernet |
| Сообщения и мультимедиа | Данные хранятся в незашифрованном виде: рекомендуется использовать шифрование диска и строгие настройки прав доступа |
| Целостность | Цепочка хешей SHA-256 и подпись Ed25519 на каждой записи |
| Не охвачено | Администратор системы, утечка токена панели управления, полнота записи |
Информацию об отчетах об уязвимостях см. в политике безопасности.
Модель доступа#
Токен главной панели предоставляет полный контроль. Другие пользователи могут получить доступ с ограниченным объемом полномочий: выбранные рабочие пространства и чаты, разрешения, срок действия, ограничения по IP-адресам, ограничения на вход в систему и отзывные сессии. Пользователь с доступом, ограниченным чатом, не может выполнять операции в масштабе всего рабочего пространства, даже если соответствующее разрешение отмечено. Рабочие пространства используют общий процесс и не изолируют данные от администратора хоста.
По умолчанию панель прослушивает соединения на localhost. При входе через браузер токен доступа обменивается на сессионные учетные данные; браузер отправляет их в виде токена «bearer». Он хранится в sessionStorage, а не в файле cookie аутентификации. Блокировка или выход из системы очищает сессию браузера. Закрытие браузера или завершение сессии не останавливает сбор данных.
Выданные токены и учетные данные сеанса хранятся в виде хэшей в зашифрованном хранилище. Отзыв токена приводит к завершению связанных с ним сеансов; изменения прав доступа влияют на последующие запросы. Загруженные файлы невозможно отозвать. Администратор может ограничить также свои собственные сеансы браузера, однако скрипты, использующие токен главной панели напрямую, сохраняют полный доступ и обходят эти ограничения сеансов браузера.
Число неудачных попыток аутентификации ограничивается по адресу клиента. При ограничении по IP-адресу используется адрес, видимый приложению; прежде чем полагаться на это ограничение, проверьте поведение обратного прокси-сервера. Учетные данные Witness остаются отдельными учетными данными для проверки работоспособности и контроля состояния, доступными только для чтения.
Доступ к демо-версии#
/api/demo-access представляет собой намеренно неаутентифицированный начальный код для явно
запущенной, изолированной синтетической демонстрационной версии. Он предоставляет отдельную возможность, действующую в течение срока жизни процесса,
но никогда не предоставляет реальный токен панели или переопределение TGWITNESS_TOKEN. Для выдачи и использования требуются
узел loopback и хост, отсутствие перенаправленных заголовков и отсутствие междоменных запросов. Дополнительные
рабочие пространства или авторизованная сессия блокируют этот путь. Активные рабочие пространства никогда не выдают
данную возможность. Демонстрационная версия не может связывать учетные записи или изменять настройки сбора данных.
Содержание панелей и экспорт данных#
На данном сайте не используются внешние шрифты, аналитические инструменты, ресурсы CDN или встроенные удалённые мультимедийные файлы. Текст из Telegram вставляется в виде текста, а не HTML. Загруженные вложения предоставляются в виде двоичных вложений. При экспорте в формат JSONL сохраняются исходные строки; в HTML они кодируются; ячейки CSV, которые могут содержать формулы, снабжаются префиксом в виде апострофа.
При экспорте исключаются секретные данные аутентификации и подписи, однако намеренно сохраняются собранные исходные метаданные, идентификаторы, а также, возможно, личный или конфиденциальный контент. В исходных метаданных могут присутствовать хэши доступа к Telegram и ссылки на файлы.
Секреты в состоянии покоя#
Учетные данные API Telegram, StringSession и закрытый ключ Ed25519 шифруются с помощью Fernet. По умолчанию ключ хранится в том же защищённом каталоге данных. Это снижает риск случайного раскрытия данных в виде открытого текста; однако это не является защитой от злоумышленника, который может прочитать содержимое всего каталога. Содержание сообщений и мультимедийные файлы не шифруются TgWitness. Используйте шифрование диска и ограничительные права доступа в ОС. Файлы с закрытыми ключами в системе Unix создаются с режимом доступа 0600; вновь создаваемые каталоги данных используют режим 0700. Существующие права доступа к каталогам не изменяются. В системе Windows права доступа к каталогам наследуются: ограничьте их до учётной записи службы и уполномоченных администраторов.
Внешний мастер-ключ#
Для нового каталога данных TGWITNESS_VAULT_KEY_FILE может предоставлять внешний случайный главный ключ. С помощью алгоритма HKDF-SHA256 и отдельного случайного солевого значения для каждого рабочего пространства генерируется уникальный ключ Fernet . Файл vault.external.json необходимо сохранить для восстановления. Отсутствие или неверность мастер-ключей приводит к сбою с закрытием системы. Существующие локальные хранилища не переносятся автоматически. Запущенный процесс имеет доступ к ключу; это не является изоляцией HSM. На панели отображается информация о выбранном режиме и явно указывается, что хранение сообщений и мультимедиа не шифруется приложением. Полную модель угроз см. в разделах «Подключение», «Прокси» и «Защита данных ».
Прокси-серверы и сетевые маршруты#
Настройки прокси зашифрованы в хранилище. Пароли и секретные ключи MTProxy не возвращаются API и не записываются в записи доказательств. Каждая рабочая область выбирает свой маршрут Telegram и режим IP.
Режим «Скрытие IP» блокирует прямой доступ к Telegram в качестве резервного варианта и требует использования прокси для внешних HTTP-запросов. Явно выбранный режим резервного доступа разрешает прямой доступ к Telegram после некоторой задержки; режим «Туннель/VPN» разрешает прямые маршруты. Выбор режима «туннель» не предполагает установку или проверку VPN. Эти настройки не контролируют весь трафик устройства, браузеры, менеджеры пакетов или разрешение DNS локального прокси-хоста.
MTProxy передаёт исключительно трафик Telegram. Для внешних запросов можно использовать отдельный прокси SOCKS5/HTTP, маршрут SOCKS5/HTTP рабочей среды или разрешённый прямой маршрут; их также можно отключить. Независимый свидетель имеет собственные настройки транспорта. Обычная аутентификация SOCKS5/HTTP CONNECT не шифруется самими этими протоколами прокси. Поддельные секретные ключи TLS для MTProxy по-прежнему не поддерживаются.
Вход в систему и импорт сеансов#
Преобразованные файлы .tgwitness-session содержат секретный ключ авторизации в виде открытого текста до тех пор, пока они не будут загружены и сохранены в хранилище. Автономный интерфейс командной строки (CLI) поддерживает проверенные схемы Telethon. Функция импорта через панель управления дополнительно поддерживает форматы Pyrogram SQLite, современный ZIP-файл TData для одной учетной записи, а также задокументированные входы в формате JSON. Она проходит аутентификацию, ограничена четырьмя файлами / 8 MiB, и обрабатывает загрузки в памяти без извлечения архивов или сохранения исходных файлов. Нормализованные учетные данные возвращаются исключительно запрашивающему авторизованному браузеру; они сохраняются в зашифрованном хранилище после успешной авторизации в Telegram. Обеспечьте защиту исходных и преобразованных файлов и предотвратите клонирование авторизационных данных параллельными клиентами.
В процессе обработки данных проверяются контрольные суммы контейнеров, хэши локального дешифрования и длины структур. Предоставленный локальный пароль для Desktop используется временно и не сохраняется. Данный ограниченный парсер не гарантирует совместимость со всеми версиями Desktop. Изображения QR-кодов генерируются локально, содержат краткосрочные токены входа в Telegram и никогда не отправляются во внешний сервис рендеринга. Блокировка, переключение рабочего пространства, новый вход в систему и изменение маршрута отменяют ожидающие попытки сканирования QR-кода. Перезагрузка или закрытие вкладки может привести к тому, что попытка останется в ожидании до истечения срока действия. Успешный вход с помощью QR-кода по-прежнему обеспечивает привязку учетной записи. Размер обычных тел запросов API по-прежнему ограничен 16 КиБ; маршрут импорта с аутентификацией принимает до 12 МиБ закодированного JSON, при этом отдельно применяется ограничение на размер декодированного файла.
Коды входа и пароли двухэтапной аутентификации Telegram не сохраняются. Состояние номера телефона/хеша кода хранится в памяти во время авторизации. Сеансы Telegram предоставляют доступ к учётной записи; ни в коем случае не загружайте каталог данных, сеанс, токен, ключ хранилища или закрытый ключ подписи на GitHub.
Журналы и передача данных#
Стандартный ответ API при проверке достоверности заменяется таким образом, чтобы он не повторял значения учетных данных. Регистрация доступа к приложению отключена. Не настраивайте обратный прокси-сервер так, чтобы он регистрировал заголовки авторизации или тела запросов. Протокол HTTP передаёт токены и секретные данные для входа в виде открытого текста: всегда используйте HTTPS или SSH-туннель при выходе за пределы localhost.
Ограничения целостности#
Цепочка хэшей, триггеры базы данных и подписи позволяют обнаруживать определённые изменения; однако они не препятствуют локальному администратору переписать и заново подписать журнал. Храните подписанные контрольные точки и отпечаток открытого ключа на отдельной системе. Режим доказательств и удалённая копия (оба отключены по умолчанию) отправляют хеши контрольных точек в сервисы временных меток, а зашифрованные копии — в хранилище, совместимое с S3; см. формат доказательств. Журналы прозрачности, подпись с использованием HSM и формальная сертификация цепочки хранения не реализованы.
Если у вас возникли подозрения о наличии проблемы#
Сохраняйте исходный каталог данных и используйте отдельную копию для анализа. Не включайте личные данные Telegram или учетные данные в публичные запросы. Не заявлено о наличии каких-либо независимых сертификатов безопасности.