← Вернуться к WindowsHelper

Модель безопасности

Как 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 ]

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

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

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

HMAC-SHA256 (подлинность команды)

Каждая команда также имеет подпись HMAC, поэтому телефон, который не знает код сопряжения, не может вводить команды, даже если он может писать в Firestore.

Модель угроз

УгрозаСтатусПримечания
Подслушиватель в локальной сетиСмягченныйЗашифрованный текст 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 явно делает нет защищаться от:

Раскрытие информации