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(一種經過身份驗證的加密模式)進行加密。
SHA-256("WH_SECURE_{code}_{sessionId}_CMD_KEY").Random.secure() 透過電話或 RandomNumberGenerator 在 Companion 端。AESGCM:<nonce_b64>:<ciphertext_b64>:<tag_b64>每個命令還附帶 HMAC 簽名,因此不知道配對代碼的手機即使可以寫入 Firestore,也無法注入命令。
SHA-256("WH_SECURE_{code}_{sessionId}_HMAC_KEY"). 與加密金鑰分開。HMAC-SHA256(hmacKey, commandId | ciphertext | sentAtMillis). 管道是文字管道字符,而不是分隔符 - 三個連接的字串。| 威脅 | 狀態 | 註解 |
|---|---|---|
| 本地網路的竊聽者 | 緩解 | 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 明確不防禦的情況:
[security].