Как WindowsHelper защищает ваш компьютер и телефон, какую криптографию мы используем и от чего явно не защищаемся. Последнее обновление: 25 апреля 2026 г.
электронная почта 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 пропускает каждую последующую команду. |
| Взломанный телефон с украденным ключом сопряжения | Остаточный | Неотличим от «самого пользователя». Смягчение: ограничение скорости (10 см/мин) + подтверждение команды разрушения требует щелчка мыши на стороне ПК. |
| Неверно введена команда из приложения на телефоне | Смягченный | Белый список на стороне телефона блокирует нераспознанные префиксы; предполетная блокировка на стороне компаньона команд, нацеленных на несуществующие службы. |
| Деструктивная команда запускается случайно | Смягченный | 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].