← Voltar para WindowsHelper

Modelo de segurança

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.

relatando uma vulnerabilidade

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.

Ciclo de vida do código de emparelhamento

O código de emparelhamento é o segredo compartilhado do qual derivam todas as outras operações criptográficas. O ciclo de vida completo:

[ O telefone GERA um código aleatório de 8 caracteres ]
   ↓
[ O telefone ESCREVE o código + sessionId no Firestore, no documento pc_connections ]
   ↓
[ O telefone MOSTRA o código ao usuário na tela ]
   ↓
[ O usuário LÊ o código e o digita no campo do Companion ]
   ↓
[ O Companion CONSULTA o Firestore em busca da sessão em espera que corresponde ao código ]
   ↓
[ Os dois lados DERIVAM as chaves de criptografia de SHA-256(código, sessionId) ]
   ↓
[ O código PERMANECE na memória dos dois lados; nenhum deles o escreve no Firestore ]
   ↓
[ Desconectar / emparelhar novamente APAGA o código dos dois lados ]

Criptografia

AES-256-GCM (confidencialidade de comando + integridade)

Cada comando enviado pela rede é criptografado com AES-256-GCM, um modo de criptografia autenticada.

HMAC-SHA256 (autenticidade de comando)

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.

Modelo de ameaça

AmeaçaEstadoNotas
Bisbilhoteiro na rede localMitigadoO texto cifrado AES-GCM é opaco para observadores MITM.
Bisbilhoteiro em servidores FirestoreMitigadoO Google vê blocos AESGCM:..., não comandos.
Invasor que pode gravar no Firestore, mas não conhece o códigoMitigadoA verificação HMAC falha; o Companion registra a rejeição e se recusa a executar.
Atacante que decifrou/phishing o código de emparelhamentoResidualEles podem emitir comandos como se fossem o usuário. Mitigação: gire o código no menu da bandeja.
Repetição de um comando gravadoResidualsentAtMillis está vinculado ao HMAC; o Companion ainda não impõe uma janela de validade. Uma correção futura adicionará um prazo de validade.
Atacante não autenticado no modo LANMitigadoO handshake do par WebSocket valida o código; HMAC + AES bloqueia todos os comandos subsequentes.
Telefone comprometido com chave de emparelhamento roubadaResidualIndistinguí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 telefoneMitigadoA lista de permissões do lado do telefone bloqueia prefixos desconhecidos; a verificação prévia do lado do Companion bloqueia comandos direcionados a serviços inexistentes.
Comando destrutivo executado acidentalmenteMitigadoUma janela no lado do Companion exige um clique do usuário para aprovar Remove-Item, Format-Volume, reg delete, shutdown /r etc.
Processo do PowerShell travado/descontroladoMitigadoTodo comando tem limite de tempo — 5 minutos por padrão, 45 para uma correção longa, 60 no teto rígido — e toda a árvore de processos é encerrada.
Companion adulteração de .exe entre download e execuçãoMitigadoSHA-256 publicado em companion-version.json; os usuários podem conferir. A assinatura Authenticode está planejada antes do lançamento.
Companion falha vazando estado confidencialMitigadoRelatórios de falhas + writebacks de erros do Firestore são limpos %USERPROFILE% / %MACHINE% / %USER%.
Dispositivo roubado, chave de emparelhamento de registro persistenteMitigadoO código de emparelhamento persistente é criptografado com Windows DPAPI (por conta), portanto, não pode ser lido de um disco copiado ou de uma conta Windows diferente.

Fora do escopo

Coisas contra as quais o WindowsHelper explicitamente não protege:

Divulgação