Довідка / Зібрати
Як відбувається збір даних
Обсяг спостереження, оновлення в режимі реального часу, повторні перевірки, вкладення, власні дії та значення пропусків — запис за записом.
TgWitness фіксує те, що бачить підключений обліковий запис Telegram. Журнал зберігає ці спостереження, їхню послідовність та контекст, що супроводжує їх. Він не робить висновків про невидимі дії на підставі відсутнього повідомлення або підключеного облікового запису.
Від входу в систему до журналу#
Діаграма у вигляді тексту
- Авторизація облікового запису користувача → Виберіть доступні групи та канали
- Виберіть доступні групи та канали → Зберегти налаштування подій та вкладень
- Зберегти налаштування подій та вкладень → Почати спостереження
- Почати спостереження → Отримуйте оновлення від активного клієнта
- Отримуйте оновлення від активного клієнта → Дотримуватися політики щодо джерел та подій
- Дотримуватися політики щодо джерел та подій → Додати підписане спостереження
- Додати підписане спостереження → Переглянути або експортувати журнал
- Додати підписане спостереження → Обробка будь-яких вкладень у черзі
- Обробка будь-яких вкладень у черзі → Додайте результат завантаження
Авторизація, доступ до джерела, працюючий колектор та повна доставка — це різні питання. Успішний вхід у систему не гарантує доступ до всіх груп. Підключений канал передачі даних не гарантує, що всі відповідні оновлення надійшли.
Обсяг спостереження: вибрані чати, папка або весь акаунт#
Джерела → Сфера спостереження визначає, які чати записує робоча область.
| Режим | Записи | Нові чати |
|---|---|---|
| Вибрані чати (за замовчуванням) | Лише ті чати, які ви додаєте вручну | Ніколи не додається автоматично |
| Папка Telegram | Чати в одній із папок облікового запису: чати, включені за назвою, а також категорії папки (контакти, неконтакти, групи, канали, боти), за вирахуванням виключених чатів та, якщо це зазначено в папці, архівних чатів | Відповідні чати додаються, щойно вони стають активними; чати, які ви додаєте до папки в Telegram, додаються протягом години |
| Весь опис | Кожен чат, який бачить цей акаунт | Кожен новий чат, група, приватний чат або бот додається в той самий момент, коли надходить його перше оновлення |
- Типи джерел (канали, групи, приватні чати, боти) обмежують режими «папка» та «весь акаунт». Вибрані чати можуть бути будь-якого типу, включаючи приватні чати та ботів.
- Виключені чати ніколи не записуються, у жодному режимі. У режимах «Папка» та «Весь обліковий запис» вибір опції «Виключити» або «Видалити» для джерела додає його до цього списку, щоб система не додавала його знову. Повторний вибір чату вручну (у розділі «Джерела» або з «Чатів») видаляє його зі списку. Список містить до 5 000 чатів; якщо їх кількість перевищує цю межу, команда «Видалити» не працює, і замість цього чат можна призупинити.
- Власні дії (увімкнено за замовчуванням): повідомлення, які надсилає цей обліковий запис, його редагування та натискання клавіш на клавіатурі для відповіді. Якщо функція вимкнена, вихідні повідомлення та редагування пропускаються.
- Перехід до папки або всього облікового запису вимагає підтвердження: ці режими записують
приватні чати та повідомлення третіх осіб і призначені виключно для спеціального облікового запису.
Підтвердження та кожна зміна обсягу записів підписуються у форматі
scope.changed. - Чати, додані за критеріями пошуку, відображаються як джерела з позначкою «auto» і записуються як
scope.applied(на початку та щогодини) абоsource.discovered(новий чат під час спостереження). Повернення до обраних чатів призупиняє всі автоматично додані джерела.
Чого ці режими не можуть зробити:
- Секретні чати шифруються за принципом «від кінця до кінця» між двома пристроями і ніколи не надходять до TgWitness у жодному режимі.
- Нічого не записується, коли TgWitness не працює. Після перезапуску програма запитує у Telegram
про пропущені оновлення та повторно перевіряє чати, але Telegram не повертає всі дані після тривалих
перебоїв у роботі. У звітах та
verify.pyтакі періоди відображаються як прогалини (див. охоплення). - Спочатку відображаються лише перші 1 000 діалогів (обмеження вказано в розділі «Параметри»); старіші чати додаються, коли вони знову стають активними. Рання історія доданого чату не завантажується — зробіть знімок історії або повний експорт чату, коли це буде потрібно.
- Умови папок, що постійно змінюються (приховані, прочитані), не застосовуються: такі чати залишаються під спостереженням.
- Натискання вбудованих (з зворотним викликом) кнопок бота в іншому додатку є невидимими для другої
сесії; відповідь або редагування бота фіксуються. Натискання клавіш під час відповіді надходять як вихідні
повідомлення та позначаються як
button_press. - Чим більше чатів, тим більше запитів. Telegram обмежує акаунти за обсягом, який вважає надмірним, що є ще однією причиною використовувати спеціальні акаунти.
Сфера застосування та вибір подій#
Кожна робоча область має власні джерела. TgWitness не приєднується до груп, не приймає запрошення та не перелічує всіх учасників автоматично. Джерела повинні бути вже доступними для облікового запису. Під час запуску колектор перевіряє вибрані джерела на відповідність видимим діалогам облікового запису; перевіряються перші 1 000 діалогів, якщо в розділі «Параметри → Чати, зчитані зі списку облікового запису» не вказано інше. Відсутнє джерело позначається як «доступ не підтверджено», а не як таке, що видалило вас.
| Налаштування | Збирає | Наслідки у разі вимкнення |
|---|---|---|
| Нові повідомлення | Звичайні надіслані повідомлення | У разі пізніших редагувань/видалень може не бути раніше збереженого тексту для порівняння. |
| Редагування | Надано відредаговані версії повідомлень | Проміжні зміни згодом не відтворюються. |
| Видалення | Повідомлення про видалення в межах певного діапазону та повідомлення на рівні облікового запису без обмеження діапазону | Повідомлення про видалення не додаються до журналу. |
| Реакції | Надані знімки реакцій | Окремі оновлення щодо реакції не додаються. |
| Членство | Надсилання повідомлень про послуги для членів та оновлень для учасників | Ці спостереження щодо членства не додаються. |
Налаштування застосовуються до всіх вибраних джерел у робочому просторі. Збережіть форму, щоб застосувати зміни; зміни фіксуються із підписаними значеннями «до» та «після». Вимкнення категорії не призводить до видалення попередніх записів. Повторне ввімкнення не відновлює пропущені оновлення.
Операційні записи та інші події, пов’язані з роботою групи, залишаються окремими від цих параметрів. Повідомлення служби членства можуть створювати записи повідомлень, коли функція членства увімкнена, навіть якщо звичайне фіксування нових повідомлень вимкнено. Зафіксовані об’єкти Telegram зберігають вбудовані метадані; параметр не є правилом редагування.
Видалення у приватних чатах та звичайних групах надходять у вигляді ідентифікаторів повідомлень без вказівки чату.
Ці чати використовують єдину послідовність ідентифікаторів повідомлень для всього облікового запису, тому коли повідомлення з цим ідентифікатором було
збережено раніше, його чат відомий: видалення фіксується в цьому чаті, а
chat_resolution пояснює, як саме. Ідентифікатори, які ніколи не зберігалися, залишаються видаленням без конкретного контексту з
явно невідомим джерелом; колектор не робить припущень. Telegram ніколи не вказує, хто видалив
повідомлення; якщо видалене повідомлення було надіслано цим обліковим записом, у записі це зазначається
(deleted_message_was_outgoing) без вказівки імені особи, яка здійснила видалення.
Власні дії#
Повідомлення, надіслані з обстежуваного облікового запису, позначаються як outgoing. Щодо редагування вихідного
повідомлення зазначається, що в приватних чатах та групах його може редагувати лише автор, тоді як дописи в каналах
можуть редагувати інші адміністратори. Коли вихідне повідомлення повторює текст кнопки
з останньої збереженої клавіатури відповідей у цьому чаті, воно має позначку «button_press» із посиланням на
запис цієї клавіатури.
Виключення власних дій також поширюється на фонові перепровірки та автоматичну історію нових чатів. Пропущені вихідні повідомлення зміщують позицію перепровірки вперед, щоб вони не могли блокувати пізніші вхідні повідомлення. Явні дії на панелі та знімки історії, запитувані вручну, залишаються записаними.
Режим розслідування: приєднання до команд та спілкування з ботами#
Джерела → Сфера спостереження → Режим розслідування готує сферу спостереження для спеціального облікового запису, який приєднується до групових чатів, запускає ботів та пише їм: весь обліковий запис, кожен тип джерела, власні дії, а також для кожного чату чи бота, що з’являється, — його профіль та останні 200 видимих повідомлень. Перегляньте форму та натисніть «Зберегти сферу»; перехід до всього облікового запису вимагає звичайного підтвердження.
- Кнопки. Кнопки під повідомленням зберігаються разом із ним і відображаються в чатах: посилання, веб- додатки, посилання для входу, текст для копіювання, дані для зворотного дзвінка, вбудовані запити, запити на номер телефону або місцезнаходження. Посилання відображаються у вигляді тексту й ніколи не відкриваються панеллю. Коли бот змінює лише кнопки (нове посилання для оплати), це вважається новою версією повідомлення як під час оперативних оновлень, так і під час повторної перевірки.
-
Нові чати та боти. У режимах «У папці» та «Весь обліковий запис», коли з’являється новий чат або бот, дані зберігаються одразу після їх появи:
- його профіль у вигляді запису
source.profile: опис бота та команди, текст «Про» користувача, групи чи каналу, учасники, пов’язаний чат та посилання на запрошення, якщо Telegram його надає; - його останні видимі повідомлення (до 1 000) у вигляді знімка історії з позначкою
new_chat: попередні повідомлення у груповому чаті, до якого щойно приєдналися, або те, що сказав бот до того, як система спостереження зафіксувала цей чат. Повідомлення, які вже збережено в режимі реального часу, не повторюються.
Чати, які вже знаходяться у списку на момент увімкнення режиму, додаються без знімків екрана. FloodWait призупиняє цю роботу, яка відновлюється згодом; збої фіксуються, а запис чату в режимі реального часу продовжується. - Профілі за запитом. У меню «Чати» → «Профіль» → «Зберегти профіль» тепер зберігається поточний профіль будь-якого джерела; найновіший профіль відображається над повідомленнями. - Невидиме. Кнопки в тексті (зворотного виклику), натиснуті в іншому додатку Telegram, спливаюче вікно або посилання, яким бот відповідає на таке натискання, а також посилання-запрошення, що використовуються в іншому додатку, не надходять до TgWitness. Те, що бот надсилає або редагує згодом, записується.
- його профіль у вигляді запису
Дія з панелі#
У розділі «Чати» тепер доступний міні-клієнт, що використовує обліковий запис Telegram обраного робочого простору:
- Напишіть повідомлення простим текстом або виберіть «Відповісти» під збереженим повідомленням. Повернуте вихідне повідомлення записується навіть тоді, коли сфера дії не охоплює вихідні оновлення.
- Натисніть кнопку «Press» під поточним кнопкою зворотного виклику або текстовою кнопкою. Сервер знову отримує повідомлення та відхиляє дію, якщо текст на клавіатурі відрізняється від збереженої версії. Квитанції зворотного виклику зберігають спливаючий текст Telegram, прапорець сповіщення та URL-адресу; відповідь також відображається під розмовою. URL-адреси залишаються текстом, який можна виділити, і не відкриваються автоматично.
- Розгорніть посилання «Відкрити Telegram», введіть
@username, публічне посиланняhttps://t.me/name,https://t.me/+invite/joinchat/inviteабо посилання на бота з?start=parameter, а потім натисніть «Зберегти попередній перегляд». Оригінальне посилання та попередній перегляд Telegram підписуються перед приєднанням. Приєднатися / відкрити та спостерігати — це означає приєднатися до групи/каналу або відкрити користувача/бота, додати чат як увімкнене джерело та надіслати/startботу, включаючи його параметр запуску. Запит на приєднання, що очікує на затвердження адміністратора, реєструється як «у процесі», а не як членство.
Увімкніть функцію «Почати спостереження», щоб фіксувати вхідні відповіді в режимі реального часу. Дії на панелі працюють, коли спостереження призупинено, але в такому разі гарантується збереження лише їхніх безпосередніх відповідей. Новододані джерела використовують налаштований профіль/історію під час роботи спостереження. Коли джерело призупинено, увімкніть його в розділі «Джерела» перед тим, як надсилати повідомлення або натискати його кнопки.
interaction.preview, interaction.requested та interaction.result — це звичайні підписані
події журналу, що включаються в експорт доказів. Запити ідентифікують обліковий запис, повідомлення/кнопку
або запис попереднього перегляду, а також вказують, чи працював модуль спостереження. Квитанції розрізняють успіх,
відмову, очікування затвердження та невідомий результат. Перерваний запит міг надійти до
Telegram: перевірте чат перед початком нової дії. Повторне використання ідентифікатора запиту дозволяє отримати його
збережене підтвердження без повторення дії, у тому числі після перезапуску. Панель зберігає
ідентифікатор після неоднозначної відповіді на ту саму дію протягом поточної сесії сторінки.
Вона також зберігає цей ідентифікатор, коли оновлення екрана не вдається після успішної дії: підтвердження
залишається видимим, і повторне натискання дозволяє його отримати. RPC-виклики зворотного виклику та приєднання мають одну спробу
виконання; операції читання з можливістю повторення зберігають налаштовану політику повторних спроб. Перемикання чатів негайно
очищає чернетку та адресата відповіді й вимикає надсилання до завантаження нової розмови.
Цей міні-клієнт обробляє текстові повідомлення та кнопки зворотного виклику. Для веб-додатків, запитів на вхід/номер телефону/місцезнаходження, платежів, вбудованих запитів та вкладень все ще потрібен клієнт Telegram; збережені метадані кнопок залишаються видимими. Нові елементи керування використовують англійський текст.
Перевірте рівні ще раз#
Під час повторної перевірки Telegram знову запитується про пропущені повідомлення, редагування та повідомлення, які він більше не повертає.
Джерела, позначені зірочкою, є пріоритетними і за замовчуванням перевіряються кожні 15 хвилин;
усі інші джерела — кожні 6 годин. Вибрані чати спочатку вважаються пріоритетними, а чати, додані через
папку або весь акаунт, — звичайними. За один цикл перевіряється не більше 30 джерел, а
решта чекають до наступної хвилини; після повторного підключення пріоритетні джерела перевіряються першими. Обидва
інтервали налаштовуються в меню «Джерела» → «Налаштування запису» → «Повторна перевірка» (значення 0 вимикає рівень) і
записуються як «recheck.changed».
Пропущені повідомлення завантажуються, починаючи з того місця, де зупинився попередній цикл, максимум
Параметри → кількість нових повідомлень на перепровірку (за замовчуванням — 1 000) за цикл. Тому після тривалої перерви
повторна перевірка заповнює весь пробіл, навіть якщо спочатку були збережені поточні повідомлення, новіші за цей пробіл
. Чат, який ще наздоганяє пробіл, перевіряється знову через наступну хвилину, замість того, щоб
чекати на його інтервал рівня; recheck.completed показує continues_after, доки процес не завершиться.
Порівняння охоплюють текст повідомлень, об’єкти, клавіатурні введення (включно з видаленням) та вміст/ідентифікацію вкладень. Сама по собі зміна хеш-кодів доступу до файлів або посилань на файли не вважається редагуванням, так само як і те, що Telegram заповнює самостійно: завантаження попереднього перегляду посилання, перегляди історій, платні медіа, розблоковані цим обліковим записом, отримання рахунку-фактури. Кожна збережена версія в чатах містить посилання на повний запис у журналі, включаючи метадані медіафайлів.
Історія повідомлень та їхнє походження#
Припустимо, що система збору даних фіксує «Зустріч о 10:00», згодом бачить «Зустріч о 11:00», а потім отримує повідомлення про видалення. Вона додає три окремі записи. Оригінальний текст залишається, редагування є окремою версією, а повідомлення фіксує, що було зафіксовано видалення.
Якщо збір даних розпочався після зникнення першої версії, цей текст недоступний. Якщо під час перебування процесу в автономному режимі відбулося кілька редагувань, зберегти можна лише ті версії, які були зафіксовані пізніше. Повідомлення про видалення не дозволяє відновити вміст, який ніколи не був зафіксований.
Відправник повідомлення не обов’язково є його редактором. Telegram зазвичай не надає інформацію про особу, яка видалила повідомлення, або точний час видалення. Невідомі учасники залишаються невідомими. Знімки реакцій та оновлення учасників містять лише кількість та ідентифікаційні дані, які Telegram робить видимими для цього облікового запису.
Порядкові номери відображають порядок спостереження. Мітка часу UTC колектора відповідає його місцевому часу; мітка часу джерела Telegram зберігається окремо, якщо вона надана. Жодна з них не є незалежною надійною міткою часу.
Знімки історії#
Запит на знімок вимагає останніх видимих повідомлень із увімкненого джерела, до 500 на запит. Результати позначаються як спостереження в історії. Вони можуть перекриватися з поточним записом, а повторювані спостереження зберігаються як окремі записи.
Знімки відповідають політиці щодо вкладень, але залишаються окремими від перемикань під час реального часу. Вони не відтворюють видалені повідомлення або пропущені проміжні версії. Ви можете запросити знімок під час паузи; будь-які вкладення, що знаходяться в черзі, очікують до початку спостереження та запуску модуля завантаження.
Обробка вкладень#
Завантаження вкладень увімкнено за замовчуванням і призупиняється, якщо вільного місця на диску менше 1 ГіБ. Колектор виконує спостереження за повідомленнями та завантаження одночасно. Задача зберігає оригінальний дескриптор медіафайлу та політику розміру, тому вкладення, яке було відредаговано пізніше, не замінюється без попередження.
Завантаження виконуються після фіксації повідомлення. Завершене завантаження створює запис media.saved
із його SHA-256 та кількістю байтів. Пропущені, невдалі, повторені та перервані
операції мають окремі результати. Завдання у черзі не є доказом того, що файл було збережено.
Завершений файл також повинен відповідати кількості байтів у оригінальному дескрипторі спостережуваного вкладення.
Коротка або несподівано довга відповідь не реєструється як збережений медіафайл.
Обмеження встановлюються для кожного типу: фотографії, відео, GIF-файли та анімації, кругові відеозвернення,
голосові повідомлення, музика та аудіо, стікери та файли. Кожен тип можна вимкнути, і для нього встановлено
власне обмеження розміру від 1 до 2 000 МіБ; нові робочі простори починаються з 20 МіБ для фотографій,
100 МіБ для відео, 50 МіБ для файлів, аудіо та круглих відео, 20 МіБ для голосових повідомлень та GIF-файлів і
5 МіБ для стікерів. Максимальний розмір файлу встановлюється для всіх типів одночасно. Політики, збережені до
введення обмежень за типами, зберігають єдине обмеження для кожного типу. Вимкнення типу створює
запис media.skipped; файли невідомого розміру або файли, що перевищують обмеження, не завантажуються. Для великих файлів
визначається швидкість завантаження не менше 256 КіБ/с. Завдання зберігаються після перезапуску, але посилання, термін дії яких закінчився, втрачений
доступ або видалені файли все одно можуть перешкоджати відновленню. Існуючі завдання зберігають політику, збережену
разом з ними.
Призупинення, блокування, відключення та перезапуск#
| Дія або стан | Ефект |
|---|---|
| Перейти до робочого простору | Змінює вигляд панелі; інші колектори зберігають свій стан. |
| Заблокувати панель або закрити вкладку | Сервер та спостереження продовжують працювати. |
| Призупинити спостереження | Припиняє роботу цього збирача та зберігає в черзі вкладені файли. |
| Вимкнути джерело | Припиняє подальший запис у заданому діапазоні; завдання з обробки мультимедіа, що знаходяться в черзі, очікують, поки функція вимкнена. |
| Видалити джерело | Він ігнорує це джерело та видаляє профілі його користувачів; вже збережені записи залишаються у журналі, до якого можна лише додавати дані. Вкладення, що все ще очікують на обробку, фіксуються як невдалі (source_removed). У режимах «папка» та «весь обліковий запис» вони також виключаються. |
| Змінити маршрут з’єднання | Вимагає паузи, закриває старі клієнти та скасовує незавершений вхід. |
| Зупинити процес Python | Призупиняє роботу всіх робочих просторів; під час перебування в режимі офлайн спостереження не здійснюються. |
| Перезапуск після активного спостереження | Спроба відновити збережений діапазон за допомогою збереженої сесії. Ручна пауза скасовує цю спробу. |
Колектор фіксує виявлені розриви з’єднання, повторні спроби, помилки, запуски/зупинки та сигнали активності. Короткі переривання можуть бути пропущені під час періодичних перевірок з’єднання. Після перезапуску пропущені оновлення запитуються, починаючи з збереженої позиції оновлення, а спостережувані чати періодично перевіряються повторно; див. формат доказів. Знімок екрана надає контекст; він не доводить, що прогалина була усунена.
Ізоляція та верифікація облікових записів#
Кожна робоча область має власний журнал, авторизацію, ключ підпису, політику та чергу. Лише активний клієнт може вносити спостереження в режимі реального часу. Відхилені, очікувані, замінені та клієнти, що перевіряють з’єднання, не можуть записувати оновлення в режимі реального часу до цього журналу. Різні облікові записи можуть спостерігати за однією й тією ж групою, але їхні журнали залишаються окремими.
Кожна подія містить попередній хеш та підпис Ed25519. Експорт охоплює весь журнал робочого простору за допомогою фіксованого порядкового номера. Фільтри панелі не фільтрують експорт; збір даних може тривати за межами його меж під час підготовки.
Журнал перевірки перевіряє ланцюжок подій та підписи в межах відображеної межі. Його результат очищується при зміні робочого простору, а панель ідентифікує нові записи, додані після перевірки. Експорт у форматі ZIP також перевіряє зібрані мультимедійні файли.
Дійсний підпис підтверджує цілісність відносно довіреного ключа, а не походження з Telegram або правдивість змісту. Зберігайте відбитки та контрольні точки незалежно. Дивіться модель доказів, щоденні операції та процедуру прийому в режимі реального часу для ознайомлення з вимогами щодо довіри та доставки.