Як WindowsHelper захищає ваш комп’ютер і ваш телефон, яку криптографію ми використовуємо, а від чого ми явно не захищаємося. Останнє оновлення: 2026-04-25.
Електронна пошта support@windowshelper.app з предметом [security]. Будь ласка, не відкривайте загальнодоступні проблеми GitHub — дайте нам вікно, щоб надіслати виправлення перед розголошенням.
Код сполучення є спільний секрет кожна інша криптооперація походить від. Повний життєвий цикл:
[ Phone GENERATES random 8-char code ] ↓ [ Phone WRITES code + sessionId to Firestore in pc_connections doc ] ↓ [ Phone DISPLAYS code to user on screen ] ↓ [ User READS code, types it into companion's input field ] ↓ [ Companion QUERIES Firestore for waiting session matching the code ] ↓ [ Both sides DERIVE crypto keys from SHA-256(code, sessionId) ] ↓ [ Code STAYS in memory on both sides; never written to Firestore by either ] ↓ [ Disconnect / re-pair WIPES the code from both sides ]
pairingCode; після створення пари код залишається виключно в пам’яті.Кожна команда, що надсилається по дроту, шифрується за допомогою AES-256-GCM, режиму автентифікованого шифрування.
SHA-256("WH_SECURE_{code}_{sessionId}_CMD_KEY").Random.secure() по телефону або RandomNumberGenerator на компаньйона.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 sees AESGCM:... blobs, not commands. |
| Зловмисник, який може писати у Firestore, але не знає коду | Пом'якшено | Перевірка HMAC не вдається; компаньйон реєструє відхилення + відмовляється від виконання. |
| Зловмисник, який зламав/зібрав код підключення | Залишковий | Вони можуть видавати команди, як якщо б вони були користувачем. Пом'якшення: поверніть код із меню трея. |
| Повторне відтворення записаної команди | Залишковий | sentAtMillis is HMAC-bound; companion doesn't yet enforce a freshness window. Future fix adds a TTL. |
| Неавтентифікований зловмисник у режимі локальної мережі | Пом'якшено | Рукостискання пари WebSocket перевіряє код; HMAC + AES gate кожна наступна команда. |
| Зламаний телефон із вкраденим ключем сполучення | Залишковий | Невідрізнити від «самого користувача». Пом'якшення: обмеження швидкості (10 cmd/хв) + підтвердження руйнівної команди вимагає клацання на стороні ПК. |
| Неправильно введена команда з програми для телефону | Пом'якшено | Білий список на стороні телефону блокує нерозпізнані префікси; перед польотом на стороні компаньйона блокує команди, спрямовані на неіснуючі служби. |
| Деструктивна команда запускається випадково | Пом'якшено | Companion-side modal requires user click to approve Remove-Item, Format-Volume, reg delete, shutdown /r, etc. |
| Завислий/неактивний процес PowerShell | Пом'якшено | Жорсткий 5-хвилинний тайм-аут вбиває все дерево процесів. |
| Companion.exe змінюється між завантаженням і запуском | Пом'якшено | SHA-256 published in companion-version.json; users can verify. Authenticode signing landing soon. |
| Companion аварійно завершується витік конфіденційного стану | Пом'якшено | Звіти про збої + очищення зворотних записів про помилки Firestore %USERPROFILE% / %MACHINE% / %USER%. |
| Викрадений пристрій, збережений ключ сполучення реєстру | Залишковий | Зловмисник із доступом до диска + логіном міг прочитати збережений код. Майбутнє виправлення обгортає його Windows DPAPI. |
Те, що WindowsHelper робить явно ні захистити від:
[security].