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

Довідка / Безпека та проект

Безпека та обробка даних

Модель загроз, модель доступу, збереження конфіденційних даних, мережева вразливість, імпорт сеансів та порядок повідомлення про вразливість.

TgWitness працює на вашому власному комп’ютері або сервері. Підключення облікових записів, ведення публічного списку проксі-серверів та опціональні зовнішні служби мають чітко визначені правила маршрутизації. Повідомлення, часові мітки, зовнішні копії та свідок налаштовуються окремо. На цій сторінці перелічено, що саме захищається, яким чином, а що залишається на розсуд оператора.

Область Коротко
Доступ Ключ адміністратора та обмежений доступ до облікових записів/чатів, сім рівнів дозволів та сесії, що можуть бути скасовані; за замовчуванням — localhost
Секрети в стані спокою Сесія, пара API, ключ підпису та налаштування проксі-сервера шифруються за допомогою алгоритму Fernet
Повідомлення та мультимедіа Зберігається у незашифрованому вигляді: використовуйте шифрування диска та суворі права доступу
Цілісність Ланцюжок хеш-кодів SHA-256 та підпис Ed25519 на кожному записі
Не охоплено Адміністратор сервера, витік токена панелі управління, повнота запису

Щодо повідомлень про вразливості див. політику безпеки.

Модель доступу#

Токен головної панелі надає повний контроль. Інші користувачі можуть отримати власний обмежений доступ: обрані робочі простори та чати, дозволи, термін дії, обмеження за IP-адресами, обмеження на вхід та сесії, що можуть бути скасовані. Користувач з обмеженим доступом до чату не може виконувати операції в межах усього робочого простору, навіть якщо його дозвіл відмічено. Робочі простори використовують спільний процес і не ізолюють дані від адміністратора хосту.

За замовчуванням панель слухає на localhost. При вході через браузер токен доступу обмінюється на сесійні облікові дані; браузер надсилає їх як токен-носій. Він зберігається у sessionStorage, а не у файлі cookie автентифікації. Блокування/вихід з системи очищає сесію браузера. Закриття браузера або завершення сесії не зупиняє збір даних.

Видані токени та облікові дані сеансів зберігаються у вигляді хеш-значень у зашифрованому сховищі. Анулювання призводить до завершення відповідних сеансів; зміни дозволів впливають на наступні запити. Завантажені файли неможливо відкликати. Адміністратор може обмежувати також власні сеанси браузера, але скрипти, що безпосередньо використовують токен головної панелі, зберігають повний доступ і обходять ці обмеження сеансів браузера.

Кількість невдалих спроб автентифікації обмежується за адресою клієнта. Обмеження за IP-адресою застосовуються до адреси, яку бачить додаток; перед тим, як покладатися на це, перевірте поведінку зворотного проксі-сервера. Повноваження Witness залишаються окремими повноваженнями для перевірки стану та контрольних точок, доступними лише для читання.

Доступ до демо-версії#

/api/demo-access — це навмисно неавтентифікований бутстрап для явно запущеної, ізольованої синтетичної демонстрації. Він видає окрему можливість, що діє протягом терміну існування процесу, але ніколи не видає справжній токен панелі або перезапис TGWITNESS_TOKEN. Для видачі та використання потрібні локальний вузол та хост, без переадресованих заголовків і без міждоменних запитів. Додаткові робочі простори або авторизована сесія блокують цей шлях. Активні робочі простори ніколи не видають цю можливість. Демо-версія не може пов’язувати акаунти або змінювати налаштування збору даних.

Вміст панелі та експорт даних#

Панель не використовує зовнішніх шрифтів, аналітики, ресурсів CDN або вбудованих віддалених медіафайлів. Текст із Telegram вставляється у вигляді тексту, а не HTML. Завантажені вкладення подаються як бінарні вкладення. Експорт у форматі JSONL зберігає оригінальні рядки; HTML замінює їх; комірки CSV, які можуть стати формулами, мають префікс у вигляді апострофа.

Експортовані дані не містять секретів автентифікації та підпису, але навмисно містять зібрані метадані джерела, ідентифікатори та, можливо, особистий або конфіденційний вміст. У необроблених метаданих джерела можуть зустрічатися хеші доступу до Telegram та посилання на файли.

Секрети в стані спокою#

Повноваження API Telegram, StringSession та приватний ключ Ed25519 шифруються за допомогою Fernet. За замовчуванням цей ключ зберігається в тому самому захищеному каталозі даних. Це зменшує ризик випадкового розкриття відкритого тексту; це не є захистом від зловмисника, який може прочитати весь каталог. Вміст повідомлень та мультимедійні файли не шифруються TgWitness. Використовуйте шифрування диска та обмежувальні права доступу в ОС. Файли приватних ключів у Unix створюються з режимом доступу 0600; новостворені каталоги даних використовують режим 0700. Існуючі права доступу до каталогів не змінюються. Windows успадковує списки контролю доступу (ACL) каталогів: обмежте їх обліковим записом служби та авторизованими адміністраторами.

Зовнішній головний ключ#

Для нового каталогу даних TGWITNESS_VAULT_KEY_FILE може надавати зовнішній випадковий головний ключ. HKDF-SHA256 та окремий випадковий солт генерують окремий ключ Ферне для кожної робочої області. Файл 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 МіБ, і обробляє завантажені дані в пам’яті без розпакування архіву чи збереження оригінальних файлів. Нормалізовані облікові дані повертаються лише браузеру, що надіслав запит та пройшов автентифікацію; вони зберігаються у зашифрованому сховищі після успішної авторизації в Telegram. Захищайте оригінали та конвертовані файли, а також уникайте одночасного клонування авторизації різними клієнтами.

Під час обробки даних перевіряються контрольні суми контейнерів, хеші локального дешифрування та довжина структур. Наданий локальний пароль для Desktop використовується тимчасово і не зберігається. Цей обмежений парсер не гарантує сумісність із кожною версією Desktop. Зображення QR-кодів генеруються локально, містять короткочасні токени входу в Telegram і ніколи не надсилаються до зовнішньої служби візуалізації. Блокування, перемикання робочого простору, новий вхід та зміни маршруту скасовують очікувані спроби сканування QR-коду. Перезавантаження/закриття вкладки може залишити спробу в стані очікування до закінчення терміну дії. Успішний вхід за допомогою QR-коду все одно вимагає прив’язки облікового запису. Звичайні тіла запитів API залишаються обмеженими до 16 Кбайт; маршрут імпорту з автентифікацією приймає до 12 Мбайт закодованого JSON, окремо застосовуючи обмеження на розмір розкодованого файлу.

Коди входу та паролі двоступеневої аутентифікації Telegram не зберігаються. Стан номера телефону/хешу коду зберігається в пам’яті під час авторизації. Сесії Telegram надають доступ до облікового запису; ніколи не завантажуйте каталог даних, сесію, токен, ключ сховища або приватний ключ підпису на GitHub.

Журнали та передача даних#

Стандартна відповідь API на перевірку замінена, щоб вона не відображала значення облікових даних. Реєстрація доступу до додатка вимкнена. Не налаштовуйте зворотний проксі-сервер для реєстрації заголовків авторизації або тіл запитів. Протокол HTTP передає токени та секретні дані для входу у вигляді відкритого тексту: використовуйте HTTPS або SSH-тунель під час виходу за межі localhost.

Обмеження щодо цілісності#

Ланцюг хеш-кодів, тригери бази даних та підписи виявляють певні зміни; вони не заважають локальному адміністратору переписати та перепідписати журнал. Зберігайте підписані контрольні точки та відбиток відкритого ключа на окремій системі. Режим доказів та позасайтова копія (обидва вимкнені за замовчуванням) надсилають хеші контрольних точок до сервісів часових міток та зашифровані копії до сховища, сумісного з S3; див. формат доказів. Журнали прозорості, підписання з використанням HSM та офіційна сертифікація ланцюга зберігання не реалізовані.

Якщо ви підозрюєте наявність проблеми#

Зберігайте оригінальний каталог даних і використовуйте окрему копію для аналізу. Не включайте приватні дані Telegram або облікові дані у публічні звернення. Не заявляється про наявність жодної незалежної сертифікації безпеки.