# Безопасность установки

Canonical page: https://phishdestroy.github.io/TgWitness/ru/docs/security/

Ознакомьтесь с маршрутами для Telegram, списками общедоступных прокси-серверов и дополнительными внешними сервисами. Узнайте, какие возможности открывает каждая настройка, что охватывают меры защиты и что остается на ваше усмотрение.

**127.0.0.1**Адрес панели по умолчанию

**256-битный**случайный токен панели

**0**CDN, аналитика или удалённые шрифты

**Ed25519**подпись на каждой записи

## Где всё хранится

Сборщик данных, его панель управления и все сохраненные записи остаются на том компьютере или сервере, на котором вы его запускаете. Telegram является единственным местом назначения по умолчанию; каждый другой вариант представляет собой отдельный переключатель.

06 / ЧТО ОСТАЁТСЯ В СИСТЕМЕВаша установка

ВАШ КОМПЬЮТЕР ИЛИ СЕРВЕР

**Панель**127.0.0.1:8787 · токен bearer

**Collector**один клиент Telegram на каждое рабочее пространство

КАТАЛОГ ДАННЫХ

**Журнал**SQLite · с цепочкой хешей · подписанный

**СМИ**Файлы, имена которых сформированы на основе SHA-256

**Хранилище**Fernet · сессия, пара API, ключ подписи, прокси

- **Telegram**Всегда · по вашему маршруту

  Тип подключения аккаунта по протоколу MTProto: прямое, SOCKS5, HTTP или MTProxy. Режим «Скрытие IP» ожидает подключения к рабочему прокси-серверу. Для перехода на прямое подключение в качестве резервного варианта требуется режим, явно разрешающий такую возможность.
- **Текст для внешних ресурсов**Необязательно · по умолчанию отключено

  Журнал, файлы и контрольные точки шифруются с помощью алгоритма AES-GCM перед загрузкой в хранилище, совместимое с S3. Ключ хранится у вас; вложения именуются по хэшам с ключом, а не по хэшам их содержимого.
- **Уведомления**Необязательно · по умолчанию отключено

  Указание проблем и количества изменений с указанием названий чатов. Выдержки из сообщений отправляются только в том случае, если вы включите эту функцию.
- **Авторитетный источник временных меток**Необязательно · по умолчанию отключено

  Только хеш SHA-256 подписанной контрольной точки и случайный нонс. Никаких сообщений, никаких имен участников чата.
- **Witness**Необязательно · по умолчанию отключено

  С помощью токена, предназначенного только для чтения, извлекает подписанные контрольные точки и счетчики захватов. Инструмент не может читать переписки или изменять настройки.

По умолчанию: с данного компьютера выходит только соединение с Telegram.

Дополнительные места назначения настраиваются для каждого рабочего пространства. Текст сообщений и мультимедийные файлы хранятся в незашифрованном виде в каталоге данных: обеспечьте их защиту с помощью шифрования диска и прав доступа к файлам.

## Что открывает каждая тайна

| Секретно | Где хранится | Какие возможности это открывает | В случае утечки |
| --- | --- | --- | --- |
| **Токен панели** | Файл `panel-token.txt` в каталоге данных; браузер сохраняет его только для данной вкладки | Все возможности в каждой рабочей области: просмотр и экспорт данных, изменение области охвата, вход в учетные записи | Остановите TgWitness, удалите `panel-token.txt`, запустите его заново: будет создан новый токен |
| **Сессия Telegram** | Хранилище, зашифрованное (`credentials.enc`) | Сам аккаунт в Telegram | Завершите сессию в Telegram в разделе *«Настройки» → «Устройства»* |
| **Ключ подписи** | Хранилище, зашифрованное (`signing.enc`) | Подписанные записи, проверка которых осуществляется с помощью вашего цифрового отпечатка | Контрольные точки, хранящиеся в других местах, свидетельские данные и временные метки показывают, что существовало ранее |
| **Ключ хранилища** | `vault.key` рядом с данными или внешний мастер-ключ для нового каталога данных | Расшифровка хранилища | Считайте, что сессионный ключ и ключ подписи также стали объектом утечки |
| **Токен Witness** | На хостинге Witness | Только для чтения: подписанные контрольные точки и состояние системы | Удалите его на странице «Witness»; создайте новый |
| **Ключевые фразы для текстов на внешних ресурсах** | Vault; загрузите его один раз для восстановления данных | Расшифровка внешней копии | Любой, у кого также имеются сохраненные объекты, может их расшифровать: рассматривайте эту копию как уязвимую |

## Что охватывают меры защиты

### : освещено

- Измененная, удалённая или перемещённая запись в экспортированном файле: цепочка хешей или подпись больше не проходит проверку.
- Журнал, сокращённый или восстановленный после того, как контрольная точка хранилась в другом месте: сохраненная контрольная точка больше не совпадает.
- Угадывание токена панели: 256 случайных битов, сравнение которых занимает постоянное время; после 15 неудачных попыток в минуту доступ к адресу блокируется.
- Содержание враждебных чатов: текст вставляется в виде текста, а не в формате HTML; вложения загружаются как файлы; панель не загружает никаких данных с других сайтов.
- Каталог скопированных данных с внешним ключом хранилища: сеансы и ключи подписи остаются зашифрованными без мастер-ключа.

### Решать вам

- Полный контроль принадлежит владельцу основного токена. Предоставляйте другим пользователям ограниченный доступ к необходимым им учетным записям, чатам и действиям; сохраняйте основной ключ в тайне.
- Администратор сервера может прочитать всё содержание, а также переписать и заново подписать журнал. Храните отпечаток и контрольные точки на другой системе.
- Текст сообщений и мультимедийные файлы не шифруются TgWitness. Используйте шифрование диска и строгие настройки прав доступа.
- Использование простого HTTP за пределами localhost приводит к раскрытию токена в сети. Используйте HTTPS или SSH-туннель.
- Подписи подтверждают, что записанные данные не были изменены, а не то, что каждое событие в Telegram было зафиксировано.

[Предоставляйте доступ к делу](https://phishdestroy.github.io/TgWitness/ru/docs/access/) с помощью настроек прав доступа, срока действия и ограничений сеанса. Токен свидетеля остаётся отдельным средством аутентификации.

## Усиление безопасности установки

Выполнено 0 из 8

1. **Используйте специальный аккаунт в Telegram** — ни в коем случае не ваш основной. Токен панели и сессия обеспечивают полный контроль над ним.
2. **Оставьте панель управления на адресе 127.0.0.1.** Удаленный доступ к ней осуществляйте исключительно через HTTPS (включенная в комплект конфигурация Caddy) или SSH-туннель.
3. **Зашифруйте диск**, на котором находится каталог данных: тексты сообщений и мультимедийные файлы хранятся в том виде, в каком они поступили.
4. **Ограничьте доступ**к **каталогу данных** только учётной записью службы. В системе Unix новым каталогам присваивается режим доступа 0700; в Windows необходимо настроить права доступа к папке.
5. **Храните главный ключ хранилища** на **других** серверах: перед созданием каталога данных установите значение `TGWITNESS_VAULT_KEY_FILE`.
6. **Сохраните отпечаток ключа подписи и контрольные точки** на другой системе, а также добавьте свидетеля на другом хосте.
7. **Ни в коем случае не загружайте** ключи `data/`, сеансовые ключи, `panel-token.txt` или ключи хранилища на GitHub или в чат.
8. **Не регистрируйте** заголовки `Authorization` или тела запросов на обратном прокси-сервере.

**Можно ли изменить токен панели без потери данных?**

Да. Токен служит лишь для открытия панели. Остановите TgWitness, удалите файл `panel-token.txt` из каталога данных и запустите программу заново; журнал, сессии и ключи останутся неизменными. При установке значения `TGWITNESS_TOKEN` вместо файла используется значение переменной среды.

**Почему сообщения не шифруются при хранении?**

Специалист по сбору данных должен иметь возможность просматривать эти записи для поиска, сравнения версий и экспорта. Шифрование данных с помощью ключа на том же компьютере не даст значительной защиты от лица, имеющего доступ к данному компьютеру. Шифрование диска защищает отвлечённый или похищенный диск; строгие права доступа защищают диск, находящийся в рабочем состоянии.

## Сообщить об уязвимости

Воспользуйтесь **разделом «Безопасность» → «Сообщить об уязвимости»** в репозитории GitHub. Укажите версию, последствия и минимальный синтетический пример воспроизведения. Ни в коем случае не отправляйте учетные данные, каталоги учетных записей или архивы реальных доказательств. Если возможность конфиденциального сообщения недоступна, создайте заявку с просьбой о предоставлении закрытого канала, не указывая подробностей уязвимости.
