FlashDesk 安全
FlashDesk 旨在安全處理遠端控制所需的通訊、連線核准、裝置驗證與營運管理。螢幕影像與控制資料依工作階段加密,目標端存取可透過手動核准或密碼控制。
依工作階段加密
FlashDesk 的媒體通訊與控制資料使用工作階段開始時產生的金鑰加密。金鑰交換使用 ECDH P-256,金鑰衍生使用 HKDF-SHA256,加密使用 AES-256-GCM。
每個封包包含序號與驗證標籤,可偵測竄改與舊封包重送。
優先 P2P,必要時中繼
工作階段期間,影像與控制資料會盡可能在裝置之間直接傳輸。如果網路無法直接連線,FlashDesk 會切換到中繼路由,同時 payload 仍保持加密。
目標端明確授權
目標端可透過手動核准或密碼授權允許存取。手動核准可只允許一次連線,也可允許在選定時間內連線,限時工作階段會自動中斷。
裝置指紋驗證
FlashDesk 會為每次安裝建立裝置身分金鑰,並從公開金鑰產生指紋。如果已信任目標的指紋變化,FlashDesk 會提醒你確認目標裝置是否已變更。
信令與授權通訊
FlashDesk 使用 WebSocket over TLS (wss://) 啟動連線,並使用 HTTPS 進行授權驗證等 API 通訊。媒體通訊在建立後由加密工作階段處理。
外部 TLS 憑證
FlashDesk 的 signaling 通訊使用 HTTPS / TLS 上的 WebSocket。以下公開 TLS 憑證資訊由伺服器取得,並會在憑證變更時自動更新。
- 目標網域
- 正在載入憑證資訊...
- 簽發者
- 正在載入憑證資訊...
- SHA-256 指紋
- 正在載入憑證資訊...
- 有效期限
- 正在載入憑證資訊...
暫時無法取得憑證資訊。
外部安全測試
FlashDesk 已使用 OWASP ZAP 對公開網站及相關 endpoints 完成安全測試。我們也已確認 Mozilla Observatory、SSL Labs 和 Security Headers 均達到 A 或更高評級。
系統權限與本機保護
FlashDesk 遵循 macOS、Linux Wayland 等系統要求的權限流程。儲存的連線資訊與密碼會經過處理,以避免明文儲存。
FlashDesk 伺服器處理的資料
FlashDesk 伺服器可能會在服務運作、防止濫用、支援、計費和團隊管理所需範圍內處理以下資訊。
| 資料 | 用途 | 儲存或暫時 | 說明 |
|---|---|---|---|
| FlashDesk ID / 裝置識別碼 | 連線啟動、裝置查找、授權關聯 | 依需要儲存 | 用於識別裝置並路由請求。 |
| 裝置 fingerprint 公開資訊 | 裝置驗證和 ID 綁定 | 適用時以 hash 形式儲存 | 伺服器保存 fingerprint 相關 hash,不保存私人身分金鑰。 |
| 應用程式版本和 OS 類型 | 相容性、支援和營運分析 | 隨用戶端狀態儲存或更新 | 在適用的管理和支援情境中顯示。 |
| 連線狀態和路徑狀態 | 連線維護、seat 控制、管理可見性 | 工作階段期間暫時處理;Pro 可保存選定稽核記錄 | 回報時可能包含 direct、relay 或 probing 狀態。 |
| IP 位址和網路中繼資料 | 服務運作、防止濫用、診斷 | 依需要存入營運記錄 | 可能包含 last seen IP、下載統計和 WebSocket 診斷中繼資料。 |
| 授權 / 訂閱狀態 | 授權驗證、計費、seat 管理 | 依需要儲存 | 支付卡詳細資料由支付服務商處理,不由 FlashDesk 保存。 |
| 錯誤記錄或營運記錄 | 支援、故障調查、防止濫用 | 作為營運記錄保存;伺服器記錄 30 天後自動刪除 | WebSocket 記錄會遮蔽 ssh_tunnel_data payload;其他中繼資料可能用於診斷記錄。 |
| Pro 使用者的管理控制台活動 | 團隊管理、授權和工作階段審查 | 作為管理記錄保存 | 包含組織、使用者、授權、seat 和工作階段稽核記錄。 |
FlashDesk 伺服器不儲存的資料
在一般遠端連線中,FlashDesk 伺服器不會儲存以下資訊:
- 遠端螢幕影像內容
- 鍵盤輸入內容
- 滑鼠操作內容
- 檔案傳輸內容
- 作為 ssh_tunnel_data 處理的 SSH tunnel payload 內容
- 錄製的工作階段影像內容
網路端點與通訊協定
下表彙整管理員在部署前可能需要確認的通訊。
| 用途 | 通訊協定 | 連接埠 | 主要通訊目標 | 說明 |
|---|---|---|---|---|
| 網站 / 下載 | HTTPS | 443/TCP | FlashDesk 官方伺服器 | 下載頁面顯示官方發行檔案的版本和 SHA-256 checksum。 |
| 信令 | WebSocket over TLS (wss://) | 443/TCP | flashdesk.io/ws | 用於啟動工作階段並交換 candidate 資訊。 |
| API / 授權檢查 | HTTPS | 443/TCP | flashdesk.io/api/license/verify | 用於檢查已註冊授權金鑰和 seat 狀態。 |
| 更新檢查 | HTTPS | 443/TCP | flashdesk.io/data/latest.json 和套件路徑 | 應用程式定期透過 HTTPS 檢查更新 manifest,從官方伺服器下載更新套件,並在套用前驗證預期 SHA-256 hash。 |
| STUN / P2P candidate 檢查 | UDP | 3478/UDP | FlashDesk 官方伺服器 | 在嘗試直接 P2P 前發現可到達的網路 endpoint。 |
| 直接 P2P 連線 | UDP media/control path | 對端裝置上的動態 UDP 連接埠 | 對端裝置網路 endpoint | 當 NAT/firewall 條件允許時優先使用直接連線。 |
| Relay 連線 | 透過 relay 路徑傳輸的加密 media/control payload | 目前 desktop app 使用 40020/UDP | FlashDesk relay server | 當裝置間直接路徑不可用時使用。SDK relayws 回應使用 443/TCP。 |
Relay 伺服器行為
FlashDesk 會先嘗試裝置之間的直接路徑。由於 NAT、防火牆、VPN 和行動網路可能阻止直接 UDP 通訊,必要時工作階段會透過 relay 路徑繼續。
使用 relay routing 時,relay 伺服器會轉送工作階段 packet。media/control payload 仍以每個工作階段的金鑰加密,packet 包含用於偵測竄改或舊 packet 重放的驗證資料。
安裝與背景行為
FlashDesk 可在背景執行,並在設定啟用時隨 OS 自動啟動。目前預設設定會啟用 OS 啟動。
- Windows: startup is managed through a user logon scheduled task named FlashDesk_Autostart, with a legacy Run-key fallback check.
- macOS: startup is managed through a LaunchAgent plist.
- Linux: startup is managed through XDG Autostart.
僅在功能需要時要求 OS 權限。macOS 可能需要 Screen Recording 和 Accessibility。Linux Wayland 使用 desktop portal / PipeWire。FlashDesk 會定期檢查 HTTPS 更新 manifest,從官方伺服器下載更新套件,並在套用前驗證預期 SHA-256 hash。
本機設定儲存在使用者應用程式資料資料夾的 FlashDesk/flashdesk_settings.json。本機應用程式記錄寫入 FlashDesk/logs,目前程式碼保留 7 天。本機螢幕錄製在使用者啟用時儲存在 FlashDesk/recording。
檔案真實性與程式碼簽署
下載頁面會顯示官方發行檔案的版本和 SHA-256 checksum。安裝前,使用者可以將下載檔案的 SHA-256 與頁面公布值比較。
- Windows: FlashDesk .exe 檔案使用 Authenticode 簽署。可在檔案內容 > 數位簽章中檢查,或在 PowerShell 執行
Get-AuthenticodeSignature .\FlashDesk.exe。 - macOS: FlashDesk .pkg 和 .app 發行檔使用 Apple Developer ID 憑證簽署,並已由 Apple notarized。
- Linux: 請驗證 .deb、.rpm 和 AppImage 下載的公開 SHA-256 checksum。
營運建議
建議不要在共用電腦上儲存密碼,刪除不再需要的目標,不核准無法辨識的指紋變更,並為長時間工作階段使用時間限制。