隱私權政策
最近更新:2026 年 7 月
概述
DuckTerm(以下稱「本 App」)是由獨立開發者開發與營運、支援 iPhone 與 Android 的行動 SSH 用戶端暨 AI Agent 控制台。我們重視你的隱私。本政策說明 App 會存取哪些資料、如何使用,以及你擁有的權利。
SSH 憑證與私密金鑰
你輸入的密碼、私密金鑰 (.pem)、密碼片語及其他驗證資料儲存在你的裝置上——iPhone 上位於 iOS 鑰匙圈,Android 上位於由 Android Keystore 保護的加密 Vault——並且絕不傳送到 DuckTerm 的伺服器。
iOS 上共有三條同步通道。① DuckTerm 選用的 iCloud 同步(App 內開關)只攜帶連線中繼資料——絕不攜帶憑證;② 憑證存放在鑰匙圈的 iCloud 可同步分區中,系統啟用 iCloud 鑰匙圈 時由 Apple 端對端加密複製到同一 Apple ID 的裝置;③ 推播配對權杖(向 DuckTerm 推播中繼驗證用的 bearer)存於可同步鑰匙圈,並另經 Apple 的 iCloud 鍵值儲存鏡像,用於裝置間自動配對——這條通道不受 App 內同步開關控制。①②中的 SSH 憑證與中繼資料我們無法讀取;③的配對權杖則依設計不同——它會隨每次推播請求傳送給 DuckTerm 中繼,由中繼驗證用於鑑權,除此之外不作他用。
Android 上如果你啟用 Google Drive 同步,完整的連線設定檔——包括密碼、金鑰與跳板/Proxy 憑證——會存入你 Google 帳戶的私有 Drive appDataFolder。Google 會保護該檔案的傳輸與靜態儲存。選用的 DuckTerm 管理憑證欄位加密預設關閉。啟用後,它會使用資料加密金鑰加密憑證中的機密欄位;原始金鑰保留在受 Android Keystore 保護的本機儲存中,Drive 則存放一份以密碼片語封裝的復原金鑰。無論是否啟用,設定檔中繼資料、指令片段、部分設定、快速鍵與主題在 Vault 檔案內都保持明文。關閉憑證加密時,持有有效 DuckTerm Drive 授權的一方也可讀取機密欄位;appDataFolder 在一般 Drive 介面中不可見。
伺服器清單、工作區與指令片段
已儲存的伺服器項目、工作區、指令片段與快速鍵都存放在本機。若你在設定中啟用同步:iOS 上 iCloud(CloudKit) 會同步伺服器中繼資料(包括主機、連接埠、使用者名稱、跳板/Proxy 拓撲與啟動指令)以及工作區;不會同步指令片段、快速鍵、密碼或私密金鑰。憑證依上文所述使用 iCloud Keychain。Android 上,你私有的 Google Drive appDataFolder Vault 會同步完整連線設定檔、獨立 SSH 金鑰、指令片段、部分設定、自訂快速鍵與主題。iCloud 與 Drive 不會彼此同步。我們不會另行營運儲存這些資料的設定檔同步伺服器。
SSH、Mosh 與 SFTP 流量
SSH、Mosh 與 SFTP 工作階段會從你的手機或平板直接連到指定主機。我們不會代理、解密或儲存這些流量。若你設定 HTTP/SOCKS5 Proxy 或 ProxyJump 跳板,該節點也由你控制;DuckTerm 只依照你的設定傳送封包。
推播中繼與 Agent 互動流量
選用的 Pro 功能(Agent 收件匣、完成通知)在 iOS 上透過 Apple Push Notification service(APN)、在 Android 上透過 Firebase Cloud Messaging(FCM)投遞推播。通知內容——事件類型、工作階段名稱、標題,以及由 Agent 活動產生的簡短內容預覽——會經過我們的推播中繼,並以你的配對身分為索引供投遞與去重;該內容預計在中繼收到後約 60–65 分鐘刪除,清理作業每 5 分鐘及服務啟動時執行。鎖定畫面的「即時動態」(僅 iOS)會在你追蹤工作階段期間保存目前任務狀態(Prompt 摘要與最後一行輸出);停止追蹤後約一分鐘內清空內容,任何任務狀態會在最後一次事件約 24 小時後整筆刪除。這些內容只用於投遞通知,絕不用於廣告、側寫或轉售。
中繼也承載 App 與已配對 Daemon 之間的互動流量:核准與 AskUser 答案、文字回覆、Live Preview 備援、圖片備援,以及——僅在你選用時——實驗性 ChatGPT 語音音訊。Live Preview 與圖片資料在可用時優先使用 LAN/P2P;P2P 可能使用 TURN。中繼會在傳輸途中轉送回覆、圖片與音訊內容,不會將其明文儲存至通知事件資料庫。Payload hash 以及路由與投遞中繼資料會另行儲存,用於防止重複投遞並維運已配對裝置;它們不適用通知內容約一小時的保留規則。
收件匣與快照(裝置端)
投遞完成後,收件匣的主記錄與 tmux 快照會儲存在你的裝置上;傳輸過程可能使用上述中繼路徑。免費版收件匣保留 30 天,Pro 版不限期限。你可以隨時從設定刪除單一項目或清空整個收件匣。
語音輸入
預設的語音輸入(Mic / Wispr)使用平台的系統語音辨識——iOS 上是 Apple Speech 框架,Android 上是裝置內建的語音辨識器。音訊在裝置端處理或經網路交由平台廠商的語音服務處理,取決於平台、裝置與已安裝的語言套件;若平台支援,可在裝置設定中要求僅使用裝置端辨識。使用系統辨識時,DuckTerm 本身不會錄製、儲存或接收你的音訊。
另外提供一個選用的實驗性 ChatGPT 語音辨識方式。選擇它時,DuckTerm 會在你的裝置上錄製一段暫存音訊,經 DuckTerm 中繼傳送到你已配對的開發機,再由開發機提交給 ChatGPT(OpenAI)進行轉寫。音訊只用於該次轉寫:暫存檔上傳後即刪除,中繼僅瞬時傳輸、不留存音訊;OpenAI 依其自身條款處理。若不希望音訊被送往 DuckTerm 中繼或 OpenAI,請使用預設的系統辨識——系統辨識本身是否透過網路處理,取決於平台、裝置與語言套件。OpenAI 的處理方式請見 openai.com/policies/privacy-policy。
當機報告(Sentry)
我們使用 Sentry 蒐集匿名當機報告與效能資料,以協助找出並修正問題。報告可能包含:
- 裝置型號與作業系統版本
- App 版本與 Build 編號
- 當機堆疊追蹤
- 基本效能指標
當機報告絕不包含 SSH 憑證、密碼、私密金鑰或終端機緩衝內容。為重現錯誤,診斷情境可能包含不屬於憑證的中繼資料,例如伺服器主機名稱與連接埠或通知標題。授權 Token、密碼等敏感欄位會在傳送前自動清除。你可以在設定中關閉當機報告。
沒有廣告與追蹤
DuckTerm 不包含廣告 SDK 或跨 App 追蹤器。第三方服務包括:可關閉的 Sentry 當機報告、RevenueCat(購買處理及其標準購買分析),以及——僅在你選用選配的 ChatGPT 語音辨識時——接收音訊片段用於轉寫的 OpenAI。我們不會出售你的資料、不將其用於廣告,也不會為跨 App 追蹤而分享。
App 內購買
Pro 訂閱與永久買斷由你購買的商店處理——iOS 上是 Apple App Store,Android 上是 Google Play。我們不會接收或儲存你的付款資訊。權益驗證由 RevenueCat 代為處理購買收據與訂閱狀態。
刪除資料
在 App 內刪除某台伺服器或已儲存的金鑰,即會將對應憑證從鑰匙圈 / Keystore Vault 中移除。解除安裝 App 會刪除本機資料庫與檔案;iOS 上鑰匙圈項目可能依系統行為保留(若啟用 iCloud 鑰匙圈,也會留在雲端),想徹底清除憑證請先在 App 內刪除伺服器。雲端資料必須在源頭刪除:iOS 在 iCloud Drive 設定中刪除 DuckTerm 容器;Android 開啟 Google Drive 網頁版 → 設定 → 「管理應用程式」,刪除 DuckTerm 的隱藏應用程式資料。關閉同步或中斷 Drive 連線並不會刪除遠端 Vault。
兒童隱私
DuckTerm 並非為 13 歲以下兒童設計,我們不會在知情狀況下蒐集兒童的個人資訊。
政策變更
我們可能不時更新本隱私權政策。任何變更都會發布在此頁面,並更新修訂日期。
聯絡我們
若對本隱私權政策有任何疑問,請寄信至 [email protected]。