← Назад до WindowsHelper

Модель безпеки

Як WindowsHelper захищає ваш комп’ютер і ваш телефон, яку криптографію ми використовуємо, а від чого ми явно не захищаємося. Останнє оновлення: 2026-04-25.

повідомлення про вразливість

Електронна пошта support@windowshelper.app з предметом [security]. Будь ласка, не відкривайте загальнодоступні проблеми GitHub — дайте нам вікно, щоб надіслати виправлення перед розголошенням.

Життєвий цикл сполучення коду

Код сполучення — це спільний секрет, з якого походить кожна інша криптооперація. Повний життєвий цикл:

[ Телефон СТВОРЮЄ випадковий код із 8 символів ]
   ↓
[ Телефон ЗАПИСУЄ код + sessionId у Firestore, у документ pc_connections ]
   ↓
[ Телефон ПОКАЗУЄ код користувачеві на екрані ]
   ↓
[ Користувач ЧИТАЄ код і вводить його в поле Companion ]
   ↓
[ Companion ШУКАЄ у Firestore сеанс в очікуванні, що відповідає коду ]
   ↓
[ Обидві сторони ВИВОДЯТЬ ключі шифрування з SHA-256(код, sessionId) ]
   ↓
[ Код ЗАЛИШАЄТЬСЯ в пам'яті з обох боків; жодна не записує його у Firestore ]
   ↓
[ Відключення / повторне спарювання СТИРАЄ код з обох боків ]

Криптографія

AES-256-GCM (конфіденційність команд + цілісність)

Кожна команда, що надсилається по дроту, шифрується за допомогою AES-256-GCM, режиму автентифікованого шифрування.

HMAC-SHA256 (автентичність команд)

Кожна команда також містить підпис HMAC, тому телефон, який не знає коду сполучення, не може вводити команди, навіть якщо він може писати у Firestore.

Модель загрози

ЗагрозаСтатусПримітки
Прослуховувач локальної мережіПом'якшеноШифрований текст AES-GCM є непрозорим для спостерігачів MITM.
Підслуховувач на серверах FirestoreПом'якшеноGoogle бачить блоки AESGCM:..., а не команди.
Зловмисник, який може писати у Firestore, але не знає кодуПом'якшеноПеревірка HMAC не проходить; Companion записує відмову й не виконує команду.
Зловмисник, який зламав/зібрав код підключенняЗалишковийВони можуть видавати команди, як якщо б вони були користувачем. Пом'якшення: поверніть код із меню трея.
Повторне відтворення записаної командиЗалишковийsentAtMillis прив'язаний до HMAC; Companion поки не перевіряє вікно актуальності. Майбутнє виправлення додасть термін дії.
Неавтентифікований зловмисник у режимі локальної мережіПом'якшеноРукостискання пари WebSocket перевіряє код; HMAC + AES gate кожна наступна команда.
Зламаний телефон із вкраденим ключем сполученняЗалишковийНевідрізнити від «самого користувача». Пом'якшення: обмеження швидкості (10 cmd/хв) + підтвердження руйнівної команди вимагає клацання на стороні ПК.
Неправильно введена команда з програми для телефонуПом'якшеноСписок дозволів на боці телефона блокує невідомі префікси; попередня перевірка на боці Companion блокує команди до неіснуючих служб.
Деструктивна команда запускається випадковоПом'якшеноВікно на боці Companion вимагає натискання користувача, щоб підтвердити Remove-Item, Format-Volume, reg delete, shutdown /r тощо.
Завислий/неактивний процес PowerShellПом'якшеноКожна команда має обмеження в часі — 5 хвилин за замовчуванням, 45 для тривалого виправлення, 60 на жорсткій стелі — і завершується все дерево процесів.
Companion .exe змінюється між завантаженням і запускомПом'якшеноSHA-256 публікується в companion-version.json; користувачі можуть його перевірити. Підпис Authenticode заплановано до запуску.
Companion аварійно завершується витік конфіденційного стануПом'якшеноЗвіти про збої + очищення зворотних записів про помилки Firestore %USERPROFILE% / %MACHINE% / %USER%.
Викрадений пристрій, збережений ключ сполучення реєструПом'якшеноПостійний код сполучення зашифровано за допомогою Windows DPAPI (для кожного облікового запису), тому його не можна прочитати зі скопійованого диска чи іншого облікового запису Windows.

Поза рамками

Те, від чого WindowsHelper явно не захищає:

Розкриття