信任中心

您的剪貼簿留在您的電腦上。以下說明如何做到,以及界線在哪裡。

本頁每一項陳述都已對照原始碼查核,並在旁邊註明落實它的程式碼。ClipVault 無法保護您的地方,本頁也照實寫出。

已對照 ClipVault 0.1.0 查核 · 頁面產生於 2026-09-15

原則

由程式碼落實的四項承諾

這些不是要靠人記住的方針:每一項都由檢查或測試把關,違反就會讓組建失敗。

網路

剪貼內容無法離開電腦

整個程式中只有一個檔案 net.py 可以開啟連線,而它唯一的函式 get_json(url, allowed) 沒有任何能攜帶請求內文的引數。沒有任何程式路徑會上傳剪貼內容,因為根本沒有可以用來上傳的東西。

每次推送時由 scripts/check_network.py 強制檢查:只要有其他模組匯入網路函式庫,或閘道函式多出 databodypayloadcontenttext 引數,組建就會失敗。

遙測

沒有遙測,連選項都沒有

程式沒有使用統計、當機回報或分析功能。設定檔中仍留有 telemetry 欄位,但沒有任何程式碼會讀取它來傳送東西;而且每次載入或儲存設定時,無論檔案內容為何,Config.normalize() 都會把它強制設為 false。

src/clipvault/config.py — 每次載入與儲存都會經過 normalize()

更新

更新檢查與消息須由您選擇開啟

全新安裝時兩者皆為關閉,ClipVault 會在首次執行時詢問。拒絕,它就從不建立連線。同意,它每天會送出一次 HTTPS GET,取得一個小型版本檔 — 沒有內文、沒有 Cookie、沒有識別碼;它唯一加上的標頭只載明 ClipVault 及其版本。純 HTTP 與重新導向一律拒絕,超過 64 KB 的回應會被捨棄。

net.get_jsonupdates.fetch。組織可以用 DisableUpdateCheckDisablePromos 原則將兩者都關閉。

更新連結

「取得新版本」只會連到官方網站

版本檔是程式抓取來的資料,而不是它信任的資料。其中的連結只有在是 ClipVault 網站上的路徑,或同一主機上的 https 位址時才會保留,因此遭竄改的檔案無法把您引導到仿冒的下載處。版本號碼只接受數字與點,所以也無法夾帶訊息。

updates.official_linkupdates.clean_version — 快取中的副本也同樣套用。

資料流向

剪貼內容的去向,一步一步看

上方方框中的一切都在您的電腦上、您的 Windows 帳戶之下進行。下方方框是程式唯一的網路路徑,它無法存取您的剪貼內容。

ClipVault 資料流向 複製的剪貼內容會先通過擷取關卡,標記為不要記錄或從排除的應用程式複製的內容會在此被捨棄。偵測步驟會尋找憑證;憑證以 Windows DPAPI 加密,若加密失敗則完全不儲存。剪貼內容儲存在 %LOCALAPPDATA%\ClipVault 中的本機 SQLite 資料庫,該資料夾的權限鎖定為您的帳戶。剪貼內容只有在要貼到已確認位於前景的視窗時才會離開儲存區,貼上的憑證隨後會從剪貼簿清除。另外,只有在您選擇開啟時,程式才會為了版本檔送出一次 HTTPS GET;這條路徑上沒有任何剪貼資料。
這台電腦 · 您的 Windows 帳戶
1剪貼簿您在任何應用程式中複製文字、圖片或檔案。
2擷取關卡排除標記 · 排除的應用程式 · 組織原則
3偵測在前 1,000,000 個字元中尋找憑證
4DPAPI 加密僅限憑證。加密失敗就不儲存。
其他剪貼內容
永不儲存被應用程式標記為「不要記錄」,或從排除的應用程式複製
5本機資料庫%LOCALAPPDATA%\ClipVault 中的 SQLite · 資料夾權限鎖定為您
6彈出視窗與貼上按鍵只送往已確認位於前景的視窗
7貼上後清除貼上的憑證 30 秒後清除,除非您已複製新內容
剪貼內容沒有通往網路的路徑
唯一的網路路徑 · 您選擇開啟前皆為關閉
更新檢查每天一次,僅在您允許時
HTTPS GET · 無內文 · 無 Cookie
ClipVault 網站上的 release.json最新版本、版本資訊連結與選用的消息——對每個人都是同一個回應
會送出:該檔案的位址,以及載明 ClipVault 與其版本的 User-Agent,來源為您的 IP 位址。絕不送出:剪貼內容、歷史記錄、設定或任何識別碼。
ClipVault 資料流向 複製的剪貼內容會先通過擷取關卡,標記為不要記錄或從排除的應用程式複製的內容會在此被捨棄。偵測步驟會尋找憑證;憑證以 Windows DPAPI 加密,若加密失敗則完全不儲存。剪貼內容儲存在 %LOCALAPPDATA%\ClipVault 中的本機 SQLite 資料庫,該資料夾的權限鎖定為您的帳戶。剪貼內容只有在要貼到已確認位於前景的視窗時才會離開儲存區,貼上的憑證隨後會從剪貼簿清除。另外,只有在您選擇開啟時,程式才會為了版本檔送出一次 HTTPS GET;這條路徑上沒有任何剪貼資料。
這台電腦 · 您的 Windows 帳戶
1剪貼簿您在任何應用程式中複製文字、圖片或檔案。
2擷取關卡排除標記 · 排除的應用程式 · 組織原則
3偵測在前 1,000,000 個字元中尋找憑證
4DPAPI 加密僅限憑證。加密失敗就不儲存。
5本機資料庫%LOCALAPPDATA%\ClipVault 中的 SQLite · 資料夾權限鎖定為您
6彈出視窗與貼上按鍵只送往已確認位於前景的視窗
7貼上後清除貼上的憑證 30 秒後清除,除非您已複製新內容
剪貼內容沒有通往網路的路徑
唯一的網路路徑 · 您選擇開啟前皆為關閉
更新檢查每天一次,僅在您允許時
HTTPS GET · 無內文 · 無 Cookie
ClipVault 網站上的 release.json最新版本、版本資訊連結與選用的消息——對每個人都是同一個回應
會送出:該檔案的位址,以及載明 ClipVault 與其版本的 User-Agent,來源為您的 IP 位址。絕不送出:剪貼內容、歷史記錄、設定或任何識別碼。

關卡。應用程式標記為「不要記錄」的剪貼內容(即 KeePass、1Password 與 Bitwarden 設定的標準標記)連讀都不會讀。來自排除的應用程式的剪貼內容會在儲存前被捨棄;預設清單涵蓋密碼管理程式與韓國網路銀行安全模組。組織原則可以新增應用程式,並關閉圖片或檔案擷取。win/clipboard.readVault._gate

失敗即拒絕(fail-closed)的加密。憑證以 Windows DPAPI 加密並移除其文字,因此永遠不會進入搜尋索引。若 DPAPI 無法使用或失敗,該剪貼內容會被捨棄,而不是以明文保留。Vault._protect

儲存。首次執行時,資料夾會停止繼承權限,並明確授權給您的帳戶,因此上層資料夾的變更無法放寬它的權限。憑證以加上金鑰的雜湊去除重複,因此資料庫中不會留下可供猜測其值的指紋。win/acl.harden_onceVault._dedupe_key

貼上。ClipVault 會把焦點還給您原本所在的視窗,並在送出 Ctrl+V 的前一刻再次確認它位於前景。若無法確認,就什麼都不送,剪貼內容會留在剪貼簿上等您處理。它放上剪貼簿的憑證本身也帶有「不要記錄」標記,因此 Windows 剪貼簿歷程記錄與其他管理程式會略過它。actions.deliverwin/exclusions.exclusion_payloads

清除。您貼上憑證後,剪貼簿預設會在 30 秒後清空 — 但前提是這段期間沒有複製新的內容。actions.clear_if_unchanged

網路。請求由一個只接受位址與您的同意、其餘一概不收的函式發出,因此任何剪貼資料都不在它能觸及的範圍內。它拒絕純 HTTP 與重新導向,並捨棄超過 64 KB 的回應。net.pyupdates.fetch

威脅模型

它能防範什麼,又不能防範什麼

本機程式可以讓某些攻擊變得更困難,但無法讓已遭入侵的 Windows 帳戶變得安全;若聲稱可以,只會讓您依賴錯誤的東西。

能防範

  • 被複製走的資料庫檔案或備份。其中的憑證是綁定您 Windows 帳戶的 DPAPI 密文,其指紋也使用了金鑰。
  • 同一台電腦上的其他帳戶。資料夾權限固定為您的帳戶,而 DPAPI 金鑰只屬於單一帳戶。
  • 從密碼管理程式複製的機密。帶有標準排除標記的剪貼內容會在不讀取的情況下直接略過。
  • 瞥一眼清單。憑證列會被遮住;只有按下 Ctrl+R 才會顯示值。
  • 貼到錯誤的視窗。除非確認目標視窗位於前景,否則不會送出任何按鍵。
  • 遭竄改的版本檔或匯入檔。更新連結僅限官方主機,匯入檔則根據其內容重新檢查 — 路徑、雜湊與標籤都會重新計算。
  • 刻意讓應用程式凍結的文字。偵測模式都有上限,而且只掃描前 1,000,000 個字元。

無法防範

  • 以您的身分執行的惡意程式。在您 Windows 帳戶下執行的任何程式,都能讀取剪貼簿並要求 DPAPI 解密,方式與 ClipVault 完全相同。
  • 電腦的系統管理員。系統管理員帳戶可以讀取其他帳戶的檔案,並以其身分操作。
  • 內容在剪貼簿上時的其他應用程式。Windows 剪貼簿由所有執行中的程式共用。貼上後清除只會縮短這段時間,而且僅適用於憑證。
  • 螢幕上顯示的內容。您顯示出來的值,可能被螢幕錄製、螢幕分享、螢幕閱讀程式以及身旁的任何人看到。
  • 它無法辨識的憑證。偵測是尋找已知的格式與標籤。沒有標籤的單獨密碼看起來就像一般文字,也會以一般文字儲存。
  • 一般剪貼內容。不屬於憑證的文字、圖片與檔案路徑會以未加密的形式儲存在您的資料夾中,只受 Windows 權限保護 — 電子郵件地址與電話號碼也包括在內。
  • 您自行變更的設定。關閉加密後,憑證只會被遮住而不會加密。您匯出的檔案須由您自行保管。
  • 被看到您在檢查更新。更新檢查開啟期間,網站的主機每天會看到一次您的 IP 位址與 ClipVault 版本。

這與程式在 管理主控台 → 安全 中說明的界線相同:加密保證的是單憑資料庫檔案本身無法被讀取,僅此而已。

憑證偵測

它會尋找什麼

偵測只會為剪貼內容加上標籤,絕不會刪除。被標記為憑證的剪貼內容會加密並遮住。只有在您或您組織的原則開啟該選項時,才會拒絕儲存。

密碼

標籤加上值 — 「password:」、「비밀번호:」、「contraseña=」,以及應用程式支援的全部 12 種語言中代表密碼的詞,也包括全形冒號。還有 scheme://user:password@host 形式的位址。

API 金鑰與權杖

OpenAI、Anthropic、Stripe、GitHub、GitLab、npm、SendGrid、AWS、Slack 與 Google 的已知格式;帶標籤的值,例如 api_key=client_secret:.env 中的行,例如 DB_PASSWORD=;Azure 連接字串中的金鑰。

Webhook URL

Slack 與 Discord 的 webhook 位址,這些位址本身就是憑證。

私密金鑰

PEM 私密金鑰區塊。

JSON Web Token(JWT)

eyJ 開頭的三段 base64url。

卡號

通過 Luhn 檢查的 13 到 19 位數字。0000 0000 0000 0000 這類預留數字會被忽略。

韓國住民登錄號碼

會核對日期與檢查碼。

電子郵件地址與電話號碼

標記為個人資料,但不加密:人們是刻意複製它們的。

設計上不會卡住

每次複製都會執行偵測,因此一個緩慢的模式就可能讓快速鍵凍結。每個模式中的每一處重複都設有上限;測試會輸入 14 種對抗性輸入,若輸入變為 4 倍而耗時增加超過 8 倍便判定失敗 — 那正是災難性回溯的特徵。每筆剪貼內容只掃描前 1,000,000 個字元,程式儲存的文字也絕不會超過它掃描的範圍。

sensitive.DETECT_LIMITConfig.normalizetests/test_security.py

團隊適用

原則只能讓它更嚴格

IT 部門可以透過群組原則或 Intune,在 HKLM\SOFTWARE\Policies\ClipVault 下強制套用設定。電腦與使用者兩種原則機碼都會讀取,並採用較嚴格的值;標準使用者無法寫入其中任何一個。

  • 19 項規則。拒絕儲存憑證、強制加密、限制保留期間與筆數、強制貼上後清除的時間、新增排除的應用程式、依應用程式縮短保留期間、新增偵測規則,關閉圖片或檔案擷取、匯出、更新檢查或消息,以及鎖定資料夾權限、強制螢幕擷取保護、停用隱私模式,以及強制確認將認證資訊貼到新程式。
  • 沒有放寬的開關。沒有任何原則能關閉加密、移除排除的應用程式,或啟用任何使用網路的功能 — 只要有原則名稱不是以 Disable、Require、Max、Excluded 或 LockDown 開頭,測試就會讓組建失敗。
  • 無法讀取的值會被忽略,絕不會被當成允許。
  • 不對使用者隱藏。被鎖定的設定會顯示為灰色,管理主控台會列出正在生效的規則。

群組原則範本

內含 ADMX 以及英文、韓文 ADML,並附上每個值的說明指南。可搭配群組原則以及 Intune 的 ADMX 匯入功能使用。

下載 ClipVault-policy.zip
供應鏈

執行檔裡有什麼

零件越少,他人程式碼能混進來的地方就越少。

  • 沒有第三方函式庫。程式只使用 Python 標準函式庫 — 以 ctypes 呼叫 Win32、以 tkinter 建構介面、以 sqlite3 儲存資料,PNG 編解碼器則由專案自行撰寫。PyInstaller 只用於封裝。scripts/check_stdlib_only.py 會讀取每一個 import,只要出現其他東西就讓組建失敗。
  • 只有一扇網路之門,由機器檢查。scripts/check_network.py 讓網路程式碼只存在於 net.py 中,並確保其中不會出現任何內文引數。
  • 每次推送都會檢查。完整的測試套件、相依性檢查、網路檢查、下載計數器測試與翻譯檢查,都會在 CI 的 Windows 環境中執行。

此組建已經過程式碼簽署

ClipVault.exePROJECTTEAMFORYOU 透過 Azure Artifact Signing 簽署。若要確認,請在檔案上按右鍵 → 內容數位簽章。設定好簽署後,組建若未簽署就不會完成,而且在檔案離開組建電腦之前,會再次驗證簽章。

本網站

下載計數器保留了什麼

網站會計算下載次數,讓我們知道哪些檔案有人使用。它保留的是計數,而不是日誌。

會儲存

  • 日期(UTC)
  • 檔案名稱
  • 由主機服務商網路提供的兩字母國家代碼

永不儲存

  • 您的 IP 位址
  • 您的 User-Agent — 只為了排除機器人與連結預覽而讀取
  • 您是從哪個頁面過來的
  • Cookie,或任何其他關於您的資訊

續傳的下載與爬蟲不計入,程式的更新檢查也完全不計入 — 同意檢查版本並不等於同意被計數。deploy/cloudflare/lib/downloads.js

我們自己廣告的點擊——無論在本網站,或在您開啟消息後程式中的消息——都以相同方式計數:日期、廣告與國家。程式絕不在彈出視窗中顯示廣告,也絕不顯示其他任何人的廣告。deploy/cloudflare/lib/ads.js

負責任揭露

發現漏洞了嗎?請先告訴我們。

請透過電子郵件私下通報,讓問題能在公開之前修正。

通報安全問題 security@clipvault.dev
撰寫安全通報

我們的目標是在 3 個工作天內確認收到通報,並與您議定修正方式與揭露日期。這是目標,而非保證:ClipVault 是由小型團隊製作的。

請附上

  1. ClipVault 版本(clipvault-cli --version)與您的 Windows 版本
  2. 重現步驟,以及攻擊者能因此獲得什麼
  3. 概念驗證(若有的話)
  4. 您是否打算公開,以及預計何時公開

請不要寄送真實的密碼或他人的剪貼簿資料,並且只在屬於您自己的電腦與帳戶上測試。

我們沒有付費的漏洞獎勵計畫。如果您願意,我們會在版本資訊中具名致謝。

機器可讀的聯絡資訊:security.txt →