Trung tâm tin cậy

Clipboard của bạn ở lại trên máy bạn. Đây là cách làm — và giới hạn của nó.

Mọi nhận định trên trang này đều đã được đối chiếu với mã nguồn, và đoạn mã thực thi nhận định đó được ghi tên ngay bên cạnh. Chỗ nào ClipVault không bảo vệ được bạn, trang này nói rõ.

Đã đối chiếu với ClipVault 0.1.0 · trang tạo ngày 2026-09-15

Nguyên tắc

Bốn cam kết do mã nguồn thực thi

Không phải những quy định mà ai đó phải nhớ: mỗi cam kết được giữ chặt bằng một bước kiểm tra hoặc một bài kiểm thử sẽ làm bản dựng thất bại.

Mạng

Nội dung clip không thể rời khỏi máy

Trong toàn bộ chương trình chỉ có một tệp, net.py, được phép mở kết nối, và hàm duy nhất của nó, get_json(url, allowed), không có đối số nào có thể mang phần thân yêu cầu. Không có đường mã nào tải clip lên, vì không có gì để tải lên bằng.

Được scripts/check_network.py thực thi ở mỗi lần push: bản dựng thất bại nếu bất kỳ mô-đun nào khác import thư viện mạng, hoặc nếu cổng kết nối có thêm đối số data, body, payload, content hay text.

Telemetry

Không có telemetry, kể cả dưới dạng tùy chọn

Chương trình không có thống kê sử dụng, báo cáo sự cố hay công cụ phân tích. Tệp cài đặt vẫn còn trường telemetry, nhưng không có gì đọc nó để gửi đi bất cứ thứ gì, và Config.normalize() buộc nó về false mỗi khi cài đặt được nạp hoặc lưu, bất kể tệp ghi gì.

src/clipvault/config.py — mọi lần nạp và lưu đều đi qua normalize().

Cập nhật

Kiểm tra cập nhật và tin tức chỉ bật khi bạn đồng ý

Trong bản cài mới, cả hai đều tắt, và ClipVault hỏi ở lần chạy đầu tiên. Nếu bạn từ chối, nó không bao giờ mở kết nối. Nếu bạn đồng ý, mỗi ngày một lần nó gửi đúng một yêu cầu HTTPS GET để lấy một tệp phiên bản nhỏ — không phần thân, không cookie, không định danh; header duy nhất nó thêm vào chỉ ghi tên ClipVault và phiên bản. HTTP thường và chuyển hướng bị từ chối, và phản hồi lớn hơn 64 KB bị bỏ đi.

net.get_json, updates.fetch. Tổ chức có thể tắt cả hai bằng các chính sách DisableUpdateCheckDisablePromos.

Liên kết cập nhật

“Tải phiên bản mới” chỉ có thể dẫn tới trang chính thức

Tệp phiên bản là thứ chương trình tải về, không phải thứ nó tin tưởng. Liên kết trong đó chỉ được giữ lại nếu là một đường dẫn trên trang ClipVault hoặc một địa chỉ https trên cùng máy chủ, nên một tệp bị giả mạo không thể đưa bạn tới nơi tải xuống giả danh. Số phiên bản chỉ được chấp nhận khi gồm chữ số và dấu chấm, nên cũng không thể mang theo thông điệp.

updates.official_link, updates.clean_version — áp dụng cả cho bản sao trong bộ nhớ đệm.

Luồng dữ liệu

Clip đi đâu, từng bước một

Mọi thứ trong khung phía trên diễn ra trên máy bạn, dưới tài khoản Windows của bạn. Khung phía dưới là đường mạng duy nhất của chương trình, và nó không truy cập được clip của bạn.

Luồng dữ liệu của ClipVault Clip được sao chép đi qua cổng ghi nhận, nơi loại bỏ các clip được đánh dấu không ghi lại hoặc được sao chép từ ứng dụng loại trừ. Bước nhận diện tìm thông tin đăng nhập; thông tin đăng nhập được mã hóa bằng Windows DPAPI, và hoàn toàn không được lưu nếu mã hóa thất bại. Clip được lưu trong cơ sở dữ liệu SQLite cục bộ tại %LOCALAPPDATA%\ClipVault, thư mục có quyền truy cập bị khóa cho riêng tài khoản của bạn. Clip chỉ rời khỏi kho lưu trữ để được dán vào một cửa sổ đã xác nhận đang ở phía trước, và thông tin đăng nhập đã dán sau đó bị xóa khỏi clipboard. Riêng biệt với điều đó, và chỉ khi bạn đồng ý, chương trình gửi một yêu cầu HTTPS GET để lấy tệp phiên bản; không có dữ liệu clip nào trên đường này.
Máy này · tài khoản Windows của bạn
1ClipboardBạn sao chép văn bản, hình ảnh hoặc tệp trong ứng dụng bất kỳ.
2Cổng ghi nhậnDấu loại trừ · ứng dụng loại trừ · chính sách tổ chức
3Nhận diệnTìm thông tin đăng nhập trong 1.000.000 ký tự đầu
4Mã hóa DPAPIChỉ thông tin đăng nhập. Mã hóa thất bại thì không lưu.
clip khác
Không bao giờ lưuBị ứng dụng đánh dấu “không ghi lại”, hoặc sao chép từ ứng dụng loại trừ
5Cơ sở dữ liệu cục bộSQLite tại %LOCALAPPDATA%\ClipVault · quyền thư mục khóa cho riêng bạn
6Cửa sổ bật lên và dánPhím chỉ gửi tới cửa sổ đã xác nhận ở phía trước
7Xóa sau khi dánThông tin đăng nhập đã dán bị xóa sau 30 giây, trừ khi bạn đã chép thứ mới
Không có đường nào từ clip ra mạng
Đường mạng duy nhất · tắt trừ khi bạn đồng ý
Kiểm tra cập nhậtMỗi ngày một lần, chỉ khi bạn cho phép
HTTPS GET · không thân · không cookie
release.json trên trang ClipVaultPhiên bản mới nhất, liên kết ghi chú và tin tức tùy chọn — cùng một câu trả lời cho mọi người
Được gửi: địa chỉ của tệp đó và một User-Agent ghi tên ClipVault cùng phiên bản, từ địa chỉ IP của bạn. Không bao giờ gửi: clip, lịch sử, cài đặt hay bất kỳ định danh nào.
Luồng dữ liệu của ClipVault Clip được sao chép đi qua cổng ghi nhận, nơi loại bỏ các clip được đánh dấu không ghi lại hoặc được sao chép từ ứng dụng loại trừ. Bước nhận diện tìm thông tin đăng nhập; thông tin đăng nhập được mã hóa bằng Windows DPAPI, và hoàn toàn không được lưu nếu mã hóa thất bại. Clip được lưu trong cơ sở dữ liệu SQLite cục bộ tại %LOCALAPPDATA%\ClipVault, thư mục có quyền truy cập bị khóa cho riêng tài khoản của bạn. Clip chỉ rời khỏi kho lưu trữ để được dán vào một cửa sổ đã xác nhận đang ở phía trước, và thông tin đăng nhập đã dán sau đó bị xóa khỏi clipboard. Riêng biệt với điều đó, và chỉ khi bạn đồng ý, chương trình gửi một yêu cầu HTTPS GET để lấy tệp phiên bản; không có dữ liệu clip nào trên đường này.
Máy này · tài khoản Windows của bạn
1ClipboardBạn sao chép văn bản, hình ảnh hoặc tệp trong ứng dụng bất kỳ.
2Cổng ghi nhậnDấu loại trừ · ứng dụng loại trừ · chính sách tổ chức
3Nhận diệnTìm thông tin đăng nhập trong 1.000.000 ký tự đầu
4Mã hóa DPAPIChỉ thông tin đăng nhập. Mã hóa thất bại thì không lưu.
5Cơ sở dữ liệu cục bộSQLite tại %LOCALAPPDATA%\ClipVault · quyền thư mục khóa cho riêng bạn
6Cửa sổ bật lên và dánPhím chỉ gửi tới cửa sổ đã xác nhận ở phía trước
7Xóa sau khi dánThông tin đăng nhập đã dán bị xóa sau 30 giây, trừ khi bạn đã chép thứ mới
Không có đường nào từ clip ra mạng
Đường mạng duy nhất · tắt trừ khi bạn đồng ý
Kiểm tra cập nhậtMỗi ngày một lần, chỉ khi bạn cho phép
HTTPS GET · không thân · không cookie
release.json trên trang ClipVaultPhiên bản mới nhất, liên kết ghi chú và tin tức tùy chọn — cùng một câu trả lời cho mọi người
Được gửi: địa chỉ của tệp đó và một User-Agent ghi tên ClipVault cùng phiên bản, từ địa chỉ IP của bạn. Không bao giờ gửi: clip, lịch sử, cài đặt hay bất kỳ định danh nào.

Cổng. Clip mà ứng dụng của nó đánh dấu “không ghi lại” — các dấu chuẩn mà KeePass, 1Password và Bitwarden đặt — thậm chí không được đọc. Clip từ ứng dụng loại trừ bị loại bỏ trước khi được lưu; danh sách mặc định gồm các trình quản lý mật khẩu và mô-đun bảo mật ngân hàng Hàn Quốc. Chính sách tổ chức có thể thêm ứng dụng và tắt việc ghi nhận hình ảnh hoặc tệp. win/clipboard.read, Vault._gate

Mã hóa theo nguyên tắc fail-closed. Thông tin đăng nhập được mã hóa bằng Windows DPAPI và phần văn bản bị gỡ bỏ, nên không bao giờ vào chỉ mục tìm kiếm. Nếu DPAPI không khả dụng hoặc thất bại, clip bị loại bỏ thay vì được giữ ở dạng văn bản thường. Vault._protect

Lưu trữ. Ở lần chạy đầu tiên, thư mục ngừng kế thừa quyền và tài khoản của bạn được cấp quyền một cách tường minh, nên thay đổi ở thư mục cha không thể nới rộng quyền của nó. Thông tin đăng nhập được khử trùng lặp bằng hàm băm có khóa, nên cơ sở dữ liệu không chứa dấu vân tay nào có thể dùng để đoán ra giá trị. win/acl.harden_once, Vault._dedupe_key

Dán. ClipVault trả tiêu điểm về cửa sổ bạn vừa rời đi và kiểm tra lại rằng nó đang ở phía trước ngay trước khi gửi Ctrl+V. Nếu không xác nhận được, nó không gửi gì cả và clip nằm chờ bạn trên clipboard. Thông tin đăng nhập mà nó đưa lên clipboard tự mang các dấu “không ghi lại”, nên lịch sử clipboard của Windows và các trình quản lý khác sẽ bỏ qua. actions.deliver, win/exclusions.exclusion_payloads

Xóa. Sau khi bạn dán thông tin đăng nhập, clipboard được làm trống sau 30 giây theo mặc định — nhưng chỉ khi từ đó đến giờ chưa có gì mới được sao chép. actions.clear_if_unchanged

Mạng. Yêu cầu được tạo bởi một hàm chỉ nhận một địa chỉ và sự đồng ý của bạn, ngoài ra không nhận gì khác, nên không dữ liệu clip nào nằm trong tầm với của nó. Nó từ chối HTTP thường và chuyển hướng, và bỏ các phản hồi trên 64 KB. net.py, updates.fetch

Mô hình mối đe dọa

Nó bảo vệ trước điều gì, và không bảo vệ trước điều gì

Một chương trình cục bộ có thể khiến một số cuộc tấn công khó hơn. Nó không thể làm cho một tài khoản Windows đã bị xâm nhập trở nên an toàn, và nói ngược lại sẽ khiến bạn dựa vào sai chỗ.

Bảo vệ trước

  • Tệp cơ sở dữ liệu hoặc bản sao lưu bị sao chép đi. Thông tin đăng nhập trong đó là bản mã DPAPI gắn với tài khoản Windows của bạn, và dấu vân tay của chúng được tạo bằng khóa.
  • Tài khoản khác trên cùng máy. Quyền của thư mục được gắn cố định với tài khoản của bạn, và khóa DPAPI thuộc về riêng một tài khoản.
  • Bí mật sao chép từ trình quản lý mật khẩu. Clip mang dấu loại trừ chuẩn được bỏ qua mà không bị đọc.
  • Một cái liếc vào danh sách. Dòng chứa thông tin đăng nhập bị che; giá trị chỉ hiện khi bạn nhấn Ctrl+R.
  • Dán nhầm cửa sổ. Không phím nào được gửi trừ khi đã xác nhận cửa sổ đích đang ở phía trước.
  • Tệp phiên bản hoặc tệp nhập bị giả mạo. Liên kết cập nhật chỉ giới hạn ở máy chủ chính thức, và tệp nhập được kiểm tra lại từ nội dung — đường dẫn, hàm băm và nhãn đều được tính lại.
  • Văn bản được soạn để làm treo ứng dụng. Các mẫu nhận diện đều có giới hạn, và chỉ 1.000.000 ký tự đầu được quét.

Không bảo vệ trước

  • Phần mềm độc hại chạy dưới tài khoản của bạn. Bất kỳ chương trình nào dưới tài khoản Windows của bạn cũng có thể đọc clipboard và yêu cầu DPAPI giải mã, y như ClipVault.
  • Quản trị viên của máy. Tài khoản quản trị có thể đọc tệp của tài khoản khác và hành động dưới danh nghĩa các tài khoản đó.
  • Ứng dụng khác trong lúc có thứ gì đó trên clipboard. Clipboard của Windows được mọi chương trình đang chạy dùng chung. Xóa clipboard sau khi dán chỉ rút ngắn khoảng thời gian đó, và chỉ với thông tin đăng nhập.
  • Những gì hiện trên màn hình. Giá trị bạn cho hiện ra có thể bị nhìn thấy qua ghi màn hình, chia sẻ màn hình, trình đọc màn hình và bởi bất kỳ ai ở gần.
  • Thông tin đăng nhập mà nó không nhận ra. Việc nhận diện tìm các định dạng và nhãn đã biết. Một mật khẩu trơn không có nhãn trông giống văn bản thông thường và được lưu như văn bản thông thường.
  • Clip thông thường. Văn bản, hình ảnh và đường dẫn tệp không phải thông tin đăng nhập được lưu không mã hóa trong thư mục của bạn, chỉ được bảo vệ bằng quyền của Windows — kể cả địa chỉ email và số điện thoại.
  • Cài đặt do bạn thay đổi. Khi tắt mã hóa, thông tin đăng nhập được che nhưng không được mã hóa. Tệp bạn xuất ra thì bạn tự bảo quản.
  • Việc bị thấy là đang kiểm tra cập nhật. Khi kiểm tra cập nhật đang bật, máy chủ của trang web thấy địa chỉ IP và phiên bản ClipVault của bạn mỗi ngày một lần.

Đây cũng chính là ranh giới mà chương trình nêu trong Bảng quản trị → Bảo mật: mã hóa bảo đảm rằng riêng tệp cơ sở dữ liệu thì không thể đọc được, và không hơn.

Nhận diện thông tin đăng nhập

Nó tìm những gì

Việc nhận diện gắn nhãn cho clip; nó không bao giờ xóa clip. Clip được gắn nhãn là thông tin đăng nhập sẽ được mã hóa và che. Việc từ chối lưu chỉ xảy ra nếu bạn, hoặc chính sách của tổ chức bạn, bật tùy chọn đó.

Mật khẩu

Một nhãn kèm giá trị — “password:”, “비밀번호:”, “contraseña=” và từ chỉ mật khẩu trong cả mười hai ngôn ngữ mà ứng dụng hỗ trợ, kể cả dấu hai chấm toàn độ rộng. Cả các địa chỉ dạng scheme://user:password@host.

Khóa API và token

Các định dạng đã biết của OpenAI, Anthropic, Stripe, GitHub, GitLab, npm, SendGrid, AWS, Slack và Google; giá trị có nhãn như api_key= hay client_secret:; dòng .env như DB_PASSWORD=; khóa trong chuỗi kết nối Azure.

URL webhook

Địa chỉ webhook của Slack và Discord, bản thân chúng đã là thông tin đăng nhập.

Khóa riêng tư

Khối khóa riêng tư PEM.

JSON Web Token

Ba đoạn base64url bắt đầu bằng eyJ.

Số thẻ

Dãy 13 đến 19 chữ số vượt qua kiểm tra Luhn. Các dãy giữ chỗ như 0000 0000 0000 0000 bị bỏ qua.

Số đăng ký cư dân Hàn Quốc

Được đối chiếu với ngày tháng và chữ số kiểm tra.

Địa chỉ email và số điện thoại

Được gắn nhãn dữ liệu cá nhân nhưng không mã hóa: người ta cố ý sao chép chúng.

Được xây dựng để không bị treo

Việc nhận diện chạy ở mỗi lần sao chép, nên một mẫu chậm sẽ làm đơ phím tắt. Mọi phép lặp trong mọi mẫu đều có giới hạn trên, và bộ kiểm thử đưa vào 14 đầu vào đối kháng, thất bại nếu tăng đầu vào lên bốn lần mà thời gian tăng hơn tám lần — dấu hiệu của backtracking thảm họa. Chỉ 1.000.000 ký tự đầu của một clip được quét, và chương trình không bao giờ lưu nhiều văn bản hơn phần nó quét.

sensitive.DETECT_LIMIT, Config.normalize, tests/test_security.py

Cho tổ chức

Chính sách chỉ có thể làm nó chặt chẽ hơn

Bộ phận IT có thể áp đặt cài đặt bằng Chính sách Nhóm hoặc Intune dưới HKLM\SOFTWARE\Policies\ClipVault. Cả khóa chính sách máy và khóa chính sách người dùng đều được đọc và giá trị chặt chẽ hơn được áp dụng; người dùng thông thường không thể ghi vào khóa nào.

  • 19 quy tắc. Từ chối lưu thông tin đăng nhập, bắt buộc mã hóa, giới hạn thời hạn lưu và số clip, áp đặt thời gian xóa sau khi dán, thêm ứng dụng loại trừ, rút ngắn hạn lưu cho ứng dụng được chọn, thêm quy tắc phát hiện, tắt ghi nhận hình ảnh hoặc tệp, xuất dữ liệu, kiểm tra cập nhật hoặc tin tức, khóa quyền thư mục, bắt buộc chặn chụp màn hình tắt chế độ riêng tư hoặc bắt buộc xác nhận khi dán thông tin đăng nhập vào chương trình mới.
  • Không có công tắc nới lỏng. Không chính sách nào tắt mã hóa, gỡ một ứng dụng loại trừ hoặc bật bất cứ thứ gì dùng mạng — một bài kiểm thử làm bản dựng thất bại nếu tên chính sách không bắt đầu bằng Disable, Require, Max, Excluded hoặc LockDown.
  • Giá trị không đọc được sẽ bị bỏ qua, không bao giờ bị hiểu là cho phép.
  • Không giấu người dùng điều gì. Cài đặt bị khóa hiện màu xám, và bảng quản trị liệt kê các quy tắc đang áp dụng.

Mẫu Chính sách Nhóm

ADMX kèm ADML tiếng Anh và tiếng Hàn, cùng hướng dẫn cho từng giá trị. Dùng được với Chính sách Nhóm và với tính năng nhập ADMX của Intune.

Tải ClipVault-policy.zip
Chuỗi cung ứng

Những gì nằm trong tệp thực thi

Càng ít thành phần thì càng ít chỗ cho mã của người khác lọt vào.

  • Không có thư viện bên thứ ba. Chương trình chỉ dùng thư viện chuẩn của Python — Win32 qua ctypes, giao diện qua tkinter, lưu trữ qua sqlite3, và một bộ mã hóa/giải mã PNG do dự án tự viết. PyInstaller chỉ dùng để đóng gói. scripts/check_stdlib_only.py đọc mọi lệnh import và làm bản dựng thất bại nếu có bất cứ thứ gì khác.
  • Một cửa mạng duy nhất, do máy kiểm tra. scripts/check_network.py giữ mọi mã mạng bên trong net.py và không cho đối số phần thân nào xuất hiện ở đó.
  • Kiểm tra ở mỗi lần push. Toàn bộ bộ kiểm thử, kiểm tra phụ thuộc, kiểm tra mạng, kiểm thử bộ đếm lượt tải và kiểm tra bản dịch đều chạy trên Windows trong CI.

Bản dựng này đã được ký mã

ClipVault.exe được ký bởi PROJECTTEAMFORYOU thông qua Azure Artifact Signing. Để kiểm tra, nhấp chuột phải vào tệp → Thuộc tínhChữ ký số. Khi đã thiết lập ký mã, quá trình dựng sẽ không hoàn tất nếu chưa ký, và chữ ký được xác minh lại trước khi các tệp rời khỏi máy dựng.

Trang web này

Bộ đếm lượt tải giữ lại những gì

Trang web đếm lượt tải để chúng tôi biết tệp nào được dùng. Nó chỉ giữ con số tổng, không giữ nhật ký.

Được lưu

  • Ngày (UTC)
  • Tên tệp
  • Mã quốc gia hai chữ cái từ mạng của nhà cung cấp dịch vụ lưu trữ

Không bao giờ lưu

  • Địa chỉ IP của bạn
  • User-Agent của bạn — chỉ đọc để bỏ qua bot và bản xem trước liên kết
  • Trang bạn đến từ đó
  • Cookie, hay bất cứ điều gì khác về bạn

Lượt tải tiếp tục và trình thu thập dữ liệu (crawler) không được đếm, và việc kiểm tra cập nhật của chương trình hoàn toàn không được đếm — đồng ý kiểm tra phiên bản không có nghĩa là đồng ý bị đếm. deploy/cloudflare/lib/downloads.js

Lượt nhấp vào quảng cáo của chính chúng tôi — trên trang web này, hoặc trong mục tin tức của chương trình nếu bạn đã bật tin tức — được đếm theo cùng cách: ngày, quảng cáo và quốc gia. Chương trình không bao giờ hiển thị quảng cáo trong cửa sổ bật lên và không bao giờ hiển thị quảng cáo của người khác. deploy/cloudflare/lib/ads.js

Công bố có trách nhiệm

Phát hiện lỗ hổng? Hãy báo cho chúng tôi trước.

Vui lòng báo cáo riêng qua email, để lỗ hổng có thể được khắc phục trước khi bị công khai.

Báo cáo vấn đề bảo mật security@clipvault.dev
Viết báo cáo bảo mật

Mục tiêu của chúng tôi là xác nhận đã nhận báo cáo trong vòng 3 ngày làm việc và cùng bạn thống nhất cách khắc phục cũng như ngày công bố. Đây là mục tiêu, không phải bảo đảm: ClipVault do một nhóm nhỏ làm ra.

Vui lòng kèm theo

  1. Phiên bản ClipVault (clipvault-cli --version) và phiên bản Windows của bạn
  2. Các bước tái hiện, và kẻ tấn công sẽ đạt được gì
  3. Bằng chứng khái niệm (PoC), nếu bạn có
  4. Bạn có định công bố không, và khi nào

Vui lòng không gửi mật khẩu thật hay dữ liệu clipboard của người khác, và chỉ thử nghiệm trên máy tính và tài khoản của chính bạn.

Không có chương trình thưởng lỗi bằng tiền. Nếu bạn muốn, chúng tôi sẽ nêu tên cảm ơn bạn trong ghi chú phát hành.

Thông tin liên hệ dạng máy đọc được: security.txt →