TgWitness / Документация

Документация / 07

Экспорт и проверка

Поделитесь подписанной записью, которую может проверить любой желающий.

Сохранить ссылкуЭкспорт подписанного ZIP-архиваПолучатель проверяет

Не знакомы с подписями и контрольными точками? Измените пример записи и посмотрите, какие проверки это обнаружат.

Хотите хранить копию отдельно от системы сбора данных? Перейдите в раздел «Настройка S3», «Блокировка объектов» или «Проверенное восстановление».

Сохраните надёжный справочный материал

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

Скачайте ZIP-архив с подписью

Откройте функцию «Экспорт» и создайте ZIP-архив с подписанными доказательствами. Он включает журнал рабочей области и подписанный манифест файлов. Фильтры панели не ограничивают экспорт полного журнала: ознакомьтесь с материалами перед их передачей.

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

Проверьте с помощью надёжной копии TgWitness

В установленной среде проекта замените пример отпечатка и пути к файлам:

python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --checkpoint retained-checkpoint.json

Если обе проверки пройдут успешно, в отчёте будут указаны результаты key_pinned: true и checkpoint_checked: true. Сохраните результат проверки вместе с исходным архивом. Сохраненная контрольная точка должна находиться на границе экспорта или до неё.

Понимание результата

  • Целостность: записанная история и экспортированные файлы соответствуют своим цифровым подписям.
  • Предыдущее замечание: внешняя контрольная точка позволяет сравнить экспортированные данные с ранее сохраненным префиксом журнала.
  • Процедура: контролируемый тест «отправка → редактирование → удаление» позволяет сверять конкретные события с зафиксированной записью.

Наличие действительной подписи не доказывает, что каждое событие в Telegram действительно произошло, что источник сообщил правду или что часы сборщика данных были настроены правильно.

Настройка внешней копии в S3

В запущенной рабочей области откройте Экспорт → Внешняя копия. Эта необязательная функция работает с AWS S3 и другими S3-совместимыми сервисами. Копируются сегменты журнала, сохранённые фотографии и файлы, контрольные точки с ответами служб меток времени и готовые экспорты чатов. Перед загрузкой каждый объект шифруется на коллекторе с помощью AES-256-GCM.

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

Полная панель настроек для внешнего хранения: конечная точка, регион, хранилище, ключи доступа, расписание, управление функцией Object Lock и ключом восстановления
Вся форма с раскрытыми дополнительными настройками. Учётные данные хранилища не указаны.
Настройки хранения в разделе «Экспорт» → «Внесайтовая копия»
Область примененияЧто следует ввести
Конечная точкаАдрес сервиса без пути к бакету и без учётных данных. Вымышленный пример: https://s3.example.invalid.
РегионРегион, указанный провайдером. Значение по умолчанию в приложении — us-east-1.
BucketСуществующий бакет, к которому у вас есть доступ. Вымышленный пример: example-case-backup.
Папка в хранилищеПрефикс объектов; по умолчанию tgwitness. Приложение добавляет к нему часть отпечатка ключа подписи этой рабочей области.
Идентификатор ключа доступа / Секретный ключ доступаВведите оба ключа доступа. Они сохраняются в защищённом хранилище рабочей области. При последующих сохранениях оставьте оба поля пустыми, чтобы использовать сохранённую пару.
Адреса в формате «Path»При включённой настройке используется endpoint/bucket, при выключенной — bucket.endpoint. Выберите вариант, который поддерживает провайдер.
Интервал копированияОт 1 до 1 440 минут; по умолчанию 5 минут. Для копирования по расписанию приложение должно быть запущено.
Сохранение данных с помощью Object LockСрок хранения в днях и режим для бакета с поддержкой Object Lock. При нулевом значении действует политика хранения бакета по умолчанию.
  1. Введите параметры хранилища и ключи доступа. На время подготовки оставьте флажок Хранить внешнюю копию выключенным, затем нажмите Сохранить настройки внешней копии.
  2. Нажмите Проверить подключение. Приложение загрузит зашифрованный тестовый объект и проверит ответ хранилища.
  3. Нажмите Скачать ключ шифрования. Храните этот файл отдельно от коллектора: он понадобится для восстановления.
  4. Включите флажок Хранить внешнюю копию и снова сохраните настройки. Нажмите Скопировать сейчас для ручного запуска или дождитесь копирования по расписанию.

Чего не делает Не создаёт бакет. Когда приложение остановлено, копирование по расписанию не выполняется.

Проверьте срок хранения и ход копирования

В разделе Дополнительные настройки задайте срок хранения и режим GOVERNANCE или COMPLIANCE, если бакет поддерживает Object Lock. TgWitness запрашивает фактический режим и срок удержания загруженного объекта. Статус показывает подтверждение, отсутствие удержания или ошибку проверки. Успешная загрузка сама по себе не подтверждает удержание.

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

Загрузка данных осуществляется через маршруты Direct, SOCKS5 или HTTP рабочей среды. Копирование в S3 недоступно через MTProxy; приложение не переключается на прямое соединение.

Чего не делает Это не обязывает провайдера применять функцию Object Lock лишь по той причине, что загрузка была принята.

Храните ключ восстановления отдельно

Скачанный JSON содержит ключ расшифрования, параметры хранилища, префикс объектов рабочей области и отпечаток ключа подписи. Ключей доступа к S3 в нём нет: для восстановления отдельно нужны учётные данные с правом чтения из бакета.

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

Чего не делает Без экспортированного ключа копия не расшифровывается. Учетные данные для доступа к хранилищу не могут заменить этот ключ.

Восстановление и проверка на другом компьютере

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

Windows PowerShell

$env:TGWITNESS_S3_ACCESS_KEY = 'YOUR_READ_ACCESS_KEY'
$env:TGWITNESS_S3_SECRET_KEY = 'YOUR_READ_SECRET_KEY'
python -m tgwitness.replica restore --key-file tgwitness-replica-key.json --out restored-evidence

Linux / macOS

export TGWITNESS_S3_ACCESS_KEY='YOUR_READ_ACCESS_KEY'
export TGWITNESS_S3_SECRET_KEY='YOUR_READ_SECRET_KEY'
python -m tgwitness.replica restore --key-file tgwitness-replica-key.json --out restored-evidence

Загруженные и расшифрованные объекты остаются в закрытом временном каталоге, пока проверяются весь журнал, сохранённые контрольные точки, хеши и размеры медиафайлов. Небезопасные пути, противоречащие друг другу сегменты журнала и журнал короче границы контрольной точки отклоняются. При неудачной проверке восстановленные файлы не переносятся в целевой каталог.

После успешного восстановления материалы из копии появятся в events.jsonl, media/, checkpoints/ и exports/. Сохраните JSON с результатом команды вместе с восстановленными материалами.

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