Como WindowsHelper protege seu PC e seu telefone, qual criptografia usamos e contra o que explicitamente não nos defendemos. Última atualização: 25/04/2026.
E-mail support@windowshelper.app com assunto [security]. Por favor, não abra problemas públicos do GitHub – dê-nos uma janela para enviar uma correção antes da divulgação.
O código de emparelhamento é o segredo compartilhado todas as outras operações criptográficas derivam. 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; uma vez emparelhado, o código permanece exclusivamente na memória.Cada comando enviado pela rede é criptografado com AES-256-GCM, um modo de criptografia autenticada.
SHA-256("WH_SECURE_{code}_{sessionId}_CMD_KEY").Random.secure() por telefone ou RandomNumberGenerator no companheiro.AESGCM:<nonce_b64>:<ciphertext_b64>:<tag_b64>Cada comando também carrega uma assinatura HMAC para que um telefone que não conheça o código de emparelhamento não possa injetar comandos, mesmo que possa gravar no Firestore.
SHA-256("WH_SECURE_{code}_{sessionId}_HMAC_KEY"). Separado da chave de criptografia.HMAC-SHA256(hmacKey, commandId | ciphertext | sentAtMillis). As barras verticais são caracteres verticais literais, não delimitadores – três strings concatenadas.| Ameaça | Estado | Notas |
|---|---|---|
| Bisbilhoteiro na rede local | Mitigado | O texto cifrado AES-GCM é opaco para observadores MITM. |
| Bisbilhoteiro em servidores Firestore | Mitigado | Google sees AESGCM:... blobs, not commands. |
| Invasor que pode gravar no Firestore, mas não conhece o código | Mitigado | A verificação HMAC falha; companheiro registra a rejeição + recusa a execução. |
| Atacante que decifrou/phishing o código de emparelhamento | Residual | Eles podem emitir comandos como se fossem o usuário. Mitigação: gire o código no menu da bandeja. |
| Repetição de um comando gravado | Residual | sentAtMillis is HMAC-bound; companion doesn't yet enforce a freshness window. Future fix adds a TTL. |
| Atacante não autenticado no modo LAN | Mitigado | O handshake do par WebSocket valida o código; HMAC + AES bloqueia todos os comandos subsequentes. |
| Telefone comprometido com chave de emparelhamento roubada | Residual | Indistinguível do "próprio usuário". Mitigação: limite de taxa (10 cmd/min) + confirmação do comando destrutivo requer clique no PC. |
| Comando digitado incorretamente no aplicativo do telefone | Mitigado | A lista de permissões do lado do telefone bloqueia prefixos não reconhecidos; O pré-voo do lado complementar bloqueia comandos direcionados a serviços inexistentes. |
| Comando destrutivo executado acidentalmente | Mitigado | Companion-side modal requires user click to approve Remove-Item, Format-Volume, reg delete, shutdown /r, etc. |
| Processo do PowerShell travado/descontrolado | Mitigado | O tempo limite de 5 minutos mata toda a árvore do processo. |
| Companion adulteração de .exe entre download e execução | Mitigado | SHA-256 published in companion-version.json; users can verify. Authenticode signing landing soon. |
| Companion falha vazando estado confidencial | Mitigado | Relatórios de falhas + writebacks de erros do Firestore são limpos %USERPROFILE% / %MACHINE% / %USER%. |
| Dispositivo roubado, chave de emparelhamento de registro persistente | Residual | Um invasor com acesso ao disco + login poderia ler o código persistido. A correção futura envolve Windows DPAPI. |
Coisas que WindowsHelper faz explicitamente não defender contra:
[security].