# Бот-свидетель

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

Позвольте отдельному процессу проверять журнал и публиковать подписанные контрольные точки в вашем канале.

## Два сервера, два ключа подписи

ХОСТИНГ / СБОРЩИК**Учётная запись + журнал**

Ключ подписи сборщика сеансов Telegram

Конечная точка контрольной точки, доступная только для чтения

← запросить подписанный ответ →

HOST B / WITNESS**Проверка + сохранение**

Закрепленный отпечаток сборщика; отдельный ключ подписи свидетеля

Собственный журнал + токен бота

Witness → API бота Telegram →**Ваш канал · подписанные сообщения TGW1**

Witness самостоятельно выполняет проверки. Доступ сборщика ограничен только чтением. При публикации бот использует подключение и токен Witness; сессия учетной записи Witness не предоставляется.

03 / РЕШЕНИЯ ПО КОНТРОЛЬНЫМ ТОЧКАМПримерные ответы

ПОСЛЕДНЕЕ УТВЕРЖДЕНИЕ**120 записей**`head 9c7d…`

СЛЕДУЮЩИЙ ОТВЕТ**128 записей**`head a4f2…`

Принято: количество записей увеличивается, подпись подтверждается, а ключ совпадает. Свидетель сохраняет эту новую границу.

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

## Подготовьте бота и канал

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

## Три шага в разделе «Дополнительные функции»

1. **Доступ только для чтения.** Откройте **раздел «Дополнительные настройки» → «Бот в вашем канале»**, создайте токен Witness и сохраните файл доступа. Это позволяет просматривать контрольные точки и состояние системы, но не доступ к перепискам или настройкам сборщика данных.
2. **Канал и интервал.** Укажите канал и адрес коллектора, доступный для свидетеля. Сохраните файл настроек.
3. **Запуск.** Объедините файлы `witness.json`, `witness-token.txt` и `bot-token.txt`, созданные на хосте Witness. Выполните приведённые ниже команды в установленной среде проекта.

```
python -m tgwitness.witness run --config witness.json --check-config
python -m tgwitness.witness run --config witness.json
```

Загрузка файлов не запускает работу инструмента TgWitness. Убедитесь, что в канале появилось первое подписанное сообщение, а затем отдельно сохраните отпечаток открытого ключа инструмента TgWitness.

## Выберите периодичность публикаций

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

**Что именно подтверждает этот бот?**

Свидетель запрашивает у сборщика подписанный контрольный точку, сверяет её с ожидаемым ключом и ведёт отдельный подписанный журнал. В нём фиксируются как отсутствующие ответы и отклоненные ответы, так и успешные проверки. Публикация по-прежнему зависит от того, запущен ли «Свидетель» и имеет ли он доступ к Bot API Telegram.

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

## Проверьте доказательства позже

Сохраняйте журнал свидетельств, сообщения каналов и независимо сохраненные отпечатки. В ходе [полной процедуры проверки](https://phishdestroy.github.io/TgWitness/ru/docs/reference/witness/#verify) они сравниваются с подписанным экспортом сборщика данных.
