←返回WindowsHelper

安全模型

WindowsHelper 如何保护您的 PC + 手机、我们使用哪些加密技术以及我们明确不防御哪些内容。最后更新时间:2026 年 4 月 25 日。

报告漏洞

电子邮件 support@windowshelper.app 有主题 [security]。请不要公开公开 GitHub 问题——在披露之前给我们一个发布修复程序的窗口。

配对代码生命周期

配对代码就是所有其他加密操作都由其派生的共享秘密。完整生命周期:

[ 手机生成 8 位随机配对码 ]
   ↓
[ 手机将配对码和 sessionId 写入 Firestore 的 pc_connections 文档 ]
   ↓
[ 手机在屏幕上向用户显示配对码 ]
   ↓
[ 用户读取配对码,输入到 Companion 的输入框 ]
   ↓
[ Companion 在 Firestore 中查询与该码匹配的等待中会话 ]
   ↓
[ 双方从 SHA-256(配对码, sessionId) 派生加密密钥 ]
   ↓
[ 配对码只留在双方内存中,任何一方都不会写入 Firestore ]
   ↓
[ 断开连接 / 重新配对会从双方清除配对码 ]

密码学

AES-256-GCM(命令机密性+完整性)

通过线路发送的每个命令都使用 AES-256-GCM(一种经过身份验证的加密模式)进行加密。

HMAC-SHA256(命令真实性)

每个命令还带有 HMAC 签名,因此不知道配对代码的手机即使可以写入 Firestore,也无法注入命令。

威胁模型

威胁状态注释
本地网络的窃听者缓解AES-GCM 密文对于 MITM 观察者来说是不透明的。
Firestore 服务器上的窃听者缓解Google 看到的是 AESGCM:... 数据块,而不是命令。
攻击者可以写入 Firestore 但不知道代码缓解HMAC 校验失败;Companion 会记录这次拒绝并拒绝执行。
破解/网络钓鱼配对代码的攻击者残差他们可以像用户一样发出命令。缓解措施:从托盘菜单中旋转代码。
重播录制的命令残差sentAtMillis 与 HMAC 绑定;Companion 尚未强制有效期窗口,后续修复将加入有效期限。
LAN 模式未经身份验证的攻击者缓解WebSocket配对握手验证代码; HMAC + AES 门控每个后续命令。
配对密钥被盗的手机被盗残差与“用户本身”没有区别。缓解措施:速率限制(10 cmd/min)+破坏性命令确认需要 PC 端点击。
从手机应用程序输入错误的命令缓解手机端的允许列表会拦截无法识别的前缀;Companion 端的预检会拦截指向不存在服务的命令。
意外运行破坏性命令缓解Companion 端会弹出对话框,必须由用户点击才能批准 Remove-Item、Format-Volume、reg delete、shutdown /r 等命令。
挂起/失控的 PowerShell 进程缓解每条命令都有时间上限——默认 5 分钟,长时间运行的修复 45 分钟,硬上限 60 分钟——并且会终止整个进程树。
Companion .exe 在下载和运行之间被篡改缓解SHA-256 公布在 companion-version.json 中,用户可以自行核对。Authenticode 签名计划在正式发布前完成。
Companion 崩溃泄漏敏感状态缓解崩溃报告 + Firestore 错误写回清理 %USERPROFILE% / %MACHINE% / %USER%.
被盗设备,保留注册表配对密钥缓解保留的配对代码使用 Windows DPAPI(每个帐户)加密,因此无法从复制的磁盘或不同的 Windows 帐户中读取。

超出范围

WindowsHelper 明确不防御的情况:

披露