Como WindowsHelper protexe o teu PC e o teu teléfono, que criptografía usamos e contra o que non defendemos explícitamente. Última actualización: 25-04-2026.
Correo electrónico support@windowshelper.app con tema [security]. Non abras os problemas públicos de GitHub: dános unha xanela para enviar unha solución antes da divulgación.
O código de emparellamento é o segredo compartido calquera outra operación criptográfica derivada. O ciclo de vida completo:
[ 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; unha vez emparellado, o código permanece exclusivamente na memoria.Cada comando enviado por cable está cifrado con AES-256-GCM, un modo de cifrado autenticado.
SHA-256("WH_SECURE_{code}_{sessionId}_CMD_KEY").Random.secure() por teléfono ou RandomNumberGenerator en compañeira.AESGCM:<nonce_b64>:<ciphertext_b64>:<tag_b64>Cada comando tamén leva unha sinatura HMAC polo que un teléfono que non coñece o código de sincronización non pode inxectar comandos aínda que poida escribir en Firestore.
SHA-256("WH_SECURE_{code}_{sessionId}_HMAC_KEY"). Separado da clave de cifrado.HMAC-SHA256(hmacKey, commandId | ciphertext | sentAtMillis). As canalizacións son caracteres literais, non delimitadores: tres cadeas concatenadas.| Ameaza | Estado | Notas |
|---|---|---|
| Escoita na rede local | Atenuado | O texto cifrado AES-GCM é opaco para os observadores do MITM. |
| Eavesdropper nos servidores Firestore | Atenuado | Google sees AESGCM:... blobs, not commands. |
| Atacante que pode escribir en Firestore pero non coñece o código | Atenuado | A verificación HMAC falla; o compañeiro rexistra o rexeitamento + rexeita a execución. |
| Atacante que descifrau/suplantou o código de vinculación | Residual | Poden emitir comandos coma se fosen o usuario. Mitigación: xira o código desde o menú da bandexa. |
| Reprodución dun comando gravado | Residual | sentAtMillis is HMAC-bound; companion doesn't yet enforce a freshness window. Future fix adds a TTL. |
| Atacante non autenticado en modo LAN | Atenuado | O enlace de par de WebSocket valida o código; Porta HMAC + AES cada comando posterior. |
| Teléfono comprometido coa chave de sincronización roubada | Residual | Indistinguible de "o propio usuario". Mitigación: límite de velocidade (10 cmd/min) + a confirmación do comando destrutivo require un clic no lado do PC. |
| Comando mal escrito da aplicación do teléfono | Atenuado | A lista de permitidos do lado do teléfono bloquea os prefixos non recoñecidos; comandos de bloques previos ao voo do acompañante dirixidos a servizos inexistentes. |
| O comando destrutivo execútase accidentalmente | Atenuado | Companion-side modal requires user click to approve Remove-Item, Format-Volume, reg delete, shutdown /r, etc. |
| Proceso de PowerShell suspendido / desbocado | Atenuado | Un duro tempo de espera de 5 minutos mata toda a árbore do proceso. |
| Companion Manipulación .exe entre a descarga e a execución | Atenuado | SHA-256 published in companion-version.json; users can verify. Authenticode signing landing soon. |
| Estado sensible de fuga de Companion fallo | Atenuado | Informes de fallos + desinfeccións de erros de Firestore %USERPROFILE% / %MACHINE% / %USER%. |
| Dispositivo roubado, clave de sincronización do rexistro persistente | Residual | Un atacante con acceso ao disco + inicio de sesión podería ler o código persistente. A corrección futura engádese con Windows DPAPI. |
Cousas que fai WindowsHelper explícitamente non defender contra:
[security].