Wie WindowsHelper Ihren PC und Ihr Telefon schützt, welche Kryptografie wir verwenden und wogegen wir uns ausdrücklich nicht schützen. Letzte Aktualisierung: 25.04.2026.
E-Mail support@windowshelper.app mit Betreff [security]. Bitte öffnen Sie keine öffentlichen GitHub-Probleme – geben Sie uns vor der Veröffentlichung Zeit, um einen Fix zu liefern.
Der Pairing-Code ist der gemeinsames Geheimnis jede andere Krypto-Operation leitet sich von ab. Der gesamte Lebenszyklus:
[ 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; Nach der Kopplung verbleibt der Code ausschließlich im Speicher.Jeder über das Kabel gesendete Befehl wird mit AES-256-GCM verschlüsselt, einem authentifizierten Verschlüsselungsmodus.
SHA-256("WH_SECURE_{code}_{sessionId}_CMD_KEY").Random.secure() am Telefon bzw RandomNumberGenerator auf Begleiter.AESGCM:<nonce_b64>:<ciphertext_b64>:<tag_b64>Jeder Befehl trägt außerdem eine HMAC-Signatur, sodass ein Telefon, das den Kopplungscode nicht kennt, keine Befehle einschleusen kann, selbst wenn es in Firestore schreiben kann.
SHA-256("WH_SECURE_{code}_{sessionId}_HMAC_KEY"). Getrennt vom Verschlüsselungsschlüssel.HMAC-SHA256(hmacKey, commandId | ciphertext | sentAtMillis). Die Pipes sind Literal-Pipe-Zeichen, keine Trennzeichen – drei verkettete Zeichenfolgen.| Bedrohung | Status | Notizen |
|---|---|---|
| Lauscher im lokalen Netzwerk | Abgemildert | AES-GCM-Chiffretext ist für MITM-Beobachter undurchsichtig. |
| Abhörer auf Firestore-Servern | Abgemildert | Google sees AESGCM:... blobs, not commands. |
| Angreifer, der in Firestore schreiben kann, aber den Code nicht kennt | Abgemildert | Die HMAC-Überprüfung schlägt fehl. Der Begleiter protokolliert die Ablehnung und verweigert die Ausführung. |
| Angreifer, der den Pairing-Code geknackt/gefälscht hat | Rest | Sie können Befehle erteilen, als wären sie der Benutzer. Abhilfe: Drehen Sie den Code aus dem Taskleistenmenü. |
| Wiedergabe eines aufgezeichneten Befehls | Rest | sentAtMillis is HMAC-bound; companion doesn't yet enforce a freshness window. Future fix adds a TTL. |
| Nicht authentifizierter Angreifer im LAN-Modus | Abgemildert | Der WebSocket-Paar-Handshake validiert den Code. HMAC + AES-Gate bei jedem nachfolgenden Befehl. |
| Kompromittiertes Telefon mit gestohlenem Kopplungsschlüssel | Rest | Nicht vom „Benutzer selbst“ zu unterscheiden. Schadensbegrenzung: Ratenbegrenzung (10 cmd/min) + Bestätigung des destruktiven Befehls erfordert einen Klick auf der PC-Seite. |
| Tippfehler in der Telefon-App | Abgemildert | Telefonseitige Zulassungsliste blockiert nicht erkannte Präfixe; Companion-seitige Pre-Flight-Blockierungsbefehle, die auf nicht vorhandene Dienste abzielen. |
| Zerstörerischer Befehl wurde versehentlich ausgeführt | Abgemildert | Companion-side modal requires user click to approve Remove-Item, Format-Volume, reg delete, shutdown /r, etc. |
| Der PowerShell-Prozess ist hängengeblieben/außer Kontrolle geraten | Abgemildert | Eine harte Zeitüberschreitung von 5 Minuten zerstört den gesamten Prozessbaum. |
| Companion .exe-Manipulation zwischen Download und Ausführung | Abgemildert | SHA-256 published in companion-version.json; users can verify. Authenticode signing landing soon. |
| Companion-Absturz, bei dem sensibler Zustand verloren geht | Abgemildert | Absturzberichte + Firestore-Fehlerrückschreibungen bereinigen %USERPROFILE% / %MACHINE% / %USER%. |
| Gestohlenes Gerät, Registrierungs-Kopplungsschlüssel bleibt erhalten | Rest | Ein Angreifer mit Festplatten- und Anmeldezugriff könnte den persistenten Code lesen. Zukünftiger Fix umschließt es mit Windows DPAPI. |
Dinge, die WindowsHelper explizit tut nicht verteidigen gegen:
[security].