← Volver a WindowsHelper

Modelo de seguridad

Cómo protege WindowsHelper su PC y su teléfono, qué criptografía utilizamos y contra qué no nos defendemos explícitamente. Última actualización: 2026-04-25.

reportar una vulnerabilidad

Correo electrónico support@windowshelper.app con tema [security]. No abra problemas públicos de GitHub; denos un tiempo para enviar una solución antes de revelarlos.

Ciclo de vida del código de emparejamiento

El código de emparejamiento es el secreto compartido de donde se derivan todas las demás operaciones criptográficas. El ciclo de vida completo:

[ El teléfono GENERA un código aleatorio de 8 caracteres ]
   ↓
[ El teléfono ESCRIBE el código + sessionId en Firestore, en el documento pc_connections ]
   ↓
[ El teléfono MUESTRA el código al usuario en la pantalla ]
   ↓
[ El usuario LEE el código y lo escribe en el campo del Companion ]
   ↓
[ El Companion CONSULTA Firestore en busca de la sesión en espera que coincide con el código ]
   ↓
[ Ambos lados DERIVAN las claves criptográficas de SHA-256(código, sessionId) ]
   ↓
[ El código PERMANECE en la memoria de ambos lados; ninguno lo escribe en Firestore ]
   ↓
[ Desconectar / volver a vincular BORRA el código en ambos lados ]

Criptografía

AES-256-GCM (confidencialidad de comando + integridad)

Cada comando enviado por cable está cifrado con AES-256-GCM, un modo de cifrado autenticado.

HMAC-SHA256 (autenticidad del comando)

Cada comando también lleva una firma HMAC, por lo que un teléfono que no conoce el código de emparejamiento no puede inyectar comandos incluso si puede escribir en Firestore.

Modelo de amenaza

amenazaEstadoNotas
Espionaje en la red localmitigadoEl texto cifrado AES-GCM es opaco para los observadores MITM.
Escuchador en servidores FirestoremitigadoGoogle ve bloques AESGCM:..., no comandos.
Atacante que puede escribir en Firestore pero no conoce el códigomitigadoLa verificación HMAC falla; el Companion registra el rechazo y se niega a ejecutarlo.
Atacante que descifró o suplantó el código de emparejamientoResidualPueden emitir comandos como si fueran el usuario. Mitigación: rote el código desde el menú de la bandeja.
Reproducción de un comando grabadoResidualsentAtMillis está ligado al HMAC; el Companion aún no aplica una ventana de validez. Una corrección futura añadirá una caducidad.
Atacante no autenticado en modo LANmitigadoEl protocolo de enlace del par WebSocket valida el código; HMAC + AES controla cada comando posterior.
Teléfono comprometido con clave de emparejamiento robadaResidualIndistinguible de "el propio usuario". Mitigación: límite de velocidad (10 cmd/min) + confirmación de comando destructivo requiere un clic en el lado de la PC.
Comando mal escrito desde la aplicación del teléfonomitigadoLa lista de permitidos del móvil bloquea prefijos desconocidos; la comprobación previa del lado del Companion bloquea órdenes dirigidas a servicios inexistentes.
Comando destructivo ejecutado accidentalmentemitigadoUna ventana en el lado del Companion exige un clic del usuario para aprobar Remove-Item, Format-Volume, reg delete, shutdown /r, etc.
Proceso de PowerShell bloqueado/descontroladomitigadoToda orden tiene límite de tiempo: 5 minutos por defecto, 45 para una solución larga, 60 en el tope duro — y se mata el árbol de procesos entero.
Companion .exe alterado entre la descarga y la ejecuciónmitigadoSHA-256 publicado en companion-version.json; los usuarios pueden comprobarlo. La firma Authenticode está prevista antes del lanzamiento.
Companion estado sensible a la fuga de fallosmitigadoInformes de fallos + reescrituras de errores de Firestore desinfectan %USERPROFILE% / %MACHINE% / %USER%.
Dispositivo robado, clave de emparejamiento del Registro persistentemitigadoEl código de emparejamiento persistente está cifrado con Windows DPAPI (por cuenta), por lo que no se puede leer desde un disco copiado ni desde una cuenta Windows diferente.

Fuera de alcance

Cosas contra las que WindowsHelper explícitamente no protege:

Divulgación