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

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

Как WindowsHelper защищает ваш компьютер и телефон, какую криптографию мы используем и от чего явно не защищаемся. Последнее обновление: 25 апреля 2026 г.

сообщить об уязвимости

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

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