W jaki sposób WindowsHelper chroni Twój komputer i telefon, jakiej kryptografii używamy i przed czym wyraźnie się nie bronimy. Ostatnia aktualizacja: 25.04.2026.
E-mail support@windowshelper.app z tematem [security]. Nie otwieraj publicznych problemów w GitHubie — daj nam czas na przesłanie poprawki przed ujawnieniem.
Kod parowania to wspólny sekret każda inna operacja kryptograficzna wywodzi się z. Pełny cykl życia:
[ 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; po sparowaniu kod pozostaje wyłącznie w pamięci.Każde polecenie wysyłane przewodem jest szyfrowane przy użyciu AES-256-GCM, trybu szyfrowania uwierzytelnionego.
SHA-256("WH_SECURE_{code}_{sessionId}_CMD_KEY").Random.secure() na telefonie lub RandomNumberGenerator na towarzyszu.AESGCM:<nonce_b64>:<ciphertext_b64>:<tag_b64>Każde polecenie zawiera również podpis HMAC, więc telefon, który nie zna kodu parowania, nie może wstrzykiwać poleceń, nawet jeśli może pisać do Firestore.
SHA-256("WH_SECURE_{code}_{sessionId}_HMAC_KEY"). Oddzielne od klucza szyfrowania.HMAC-SHA256(hmacKey, commandId | ciphertext | sentAtMillis). Potoki to dosłowne znaki potoku, a nie ograniczniki — trzy połączone ciągi.| Zagrożenie | Stan | Notatki |
|---|---|---|
| Podsłuchiwacz w sieci lokalnej | Złagodzony | Tekst zaszyfrowany AES-GCM jest nieprzezroczysty dla obserwatorów MITM. |
| Podsłuchiwacz na serwerach Firestore | Złagodzony | Google sees AESGCM:... blobs, not commands. |
| Atakujący, który może pisać do Firestore, ale nie zna kodu | Złagodzony | Weryfikacja HMAC kończy się niepowodzeniem; towarzysz rejestruje odrzucenie + odmawia wykonania. |
| Osoba atakująca, która złamała/wyłudziła kod parowania | Pozostały | Mogą wydawać polecenia tak, jakby byli użytkownikiem. Łagodzenie: obróć kod z menu zasobnika. |
| Powtórka nagranego polecenia | Pozostały | sentAtMillis is HMAC-bound; companion doesn't yet enforce a freshness window. Future fix adds a TTL. |
| Nieuwierzytelniony atakujący w trybie LAN | Złagodzony | Uzgadnianie pary protokołu WebSocket sprawdza poprawność kodu; Bramka HMAC + AES przy każdym kolejnym poleceniu. |
| Zhakowany telefon ze skradzionym kluczem do parowania | Pozostały | Nie do odróżnienia od „samego użytkownika”. Ograniczanie: limit szybkości (10 cmd/min) + potwierdzenie polecenia niszczącego wymaga kliknięcia po stronie komputera. |
| Błędnie wpisane polecenie z aplikacji na telefon | Złagodzony | Lista dozwolonych po stronie telefonu blokuje nierozpoznane prefiksy; Polecenia przed lotem po stronie towarzyszącej są skierowane do nieistniejących usług. |
| Destrukcyjne polecenie zostało uruchomione przypadkowo | Złagodzony | Companion-side modal requires user click to approve Remove-Item, Format-Volume, reg delete, shutdown /r, etc. |
| Zawieszony/niekontrolowany proces PowerShell | Złagodzony | Twardy 5-minutowy limit czasu zabija całe drzewo procesów. |
| Companion Manipulowanie plikiem .exe pomiędzy pobieraniem i uruchamianiem | Złagodzony | SHA-256 published in companion-version.json; users can verify. Authenticode signing landing soon. |
| Companion awaria, wyciek, stan wrażliwy | Złagodzony | Raporty o awariach + zapisywanie zwrotne błędów Firestore oczyszczają %USERPROFILE% / %MACHINE% / %USER%. |
| Skradzione urządzenie, zachowany klucz parowania rejestru | Pozostały | Osoba atakująca mająca dostęp do dysku i loginu może odczytać utrwalony kod. Przyszła poprawka obejmuje to za pomocą Windows DPAPI. |
Rzeczy, które WindowsHelper wyraźnie robi nie bronić się przed:
[security].