Як WindowsHelper захищає ваш комп’ютер і ваш телефон, яку криптографію ми використовуємо, а від чого ми явно не захищаємося. Останнє оновлення: 2026-04-25.
Електронна пошта support@windowshelper.app з предметом [security]. Будь ласка, не відкривайте загальнодоступні проблеми GitHub — дайте нам вікно, щоб надіслати виправлення перед розголошенням.
Код сполучення — це спільний секрет, з якого походить кожна інша криптооперація. Повний життєвий цикл:
[ Телефон СТВОРЮЄ випадковий код із 8 символів ] ↓ [ Телефон ЗАПИСУЄ код + sessionId у Firestore, у документ pc_connections ] ↓ [ Телефон ПОКАЗУЄ код користувачеві на екрані ] ↓ [ Користувач ЧИТАЄ код і вводить його в поле Companion ] ↓ [ Companion ШУКАЄ у Firestore сеанс в очікуванні, що відповідає коду ] ↓ [ Обидві сторони ВИВОДЯТЬ ключі шифрування з SHA-256(код, sessionId) ] ↓ [ Код ЗАЛИШАЄТЬСЯ в пам'яті з обох боків; жодна не записує його у Firestore ] ↓ [ Відключення / повторне спарювання СТИРАЄ код з обох боків ]
Кожна команда, що надсилається по дроту, шифрується за допомогою AES-256-GCM, режиму автентифікованого шифрування.
SHA-256("WH_SECURE_{code}_{sessionId}_CMD_KEY").Random.secure() по телефону або RandomNumberGenerator на боці Companion.AESGCM:<nonce_b64>:<ciphertext_b64>:<tag_b64>Кожна команда також містить підпис HMAC, тому телефон, який не знає коду сполучення, не може вводити команди, навіть якщо він може писати у Firestore.
SHA-256("WH_SECURE_{code}_{sessionId}_HMAC_KEY"). Окремо від ключа шифрування.HMAC-SHA256(hmacKey, commandId | ciphertext | sentAtMillis). Вертикальні лінії — це буквальні символи вертикальної лінії, а не роздільники — три об’єднані рядки.| Загроза | Статус | Примітки |
|---|---|---|
| Прослуховувач локальної мережі | Пом'якшено | Шифрований текст 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 явно не захищає:
[security].