báo cáo bảo mật · phiên bản 4 · 1 tháng 11, 2026

Những tuyên bố có thể kiểm chứng.

Đây không phải một trang tiếp thị kiểu 'chúng tôi an toàn' mà là một tập hợp các tuyên bố có thể kiểm chứng (SR-N), mỗi tuyên bố bạn đều có thể phản bác trong chương trình bug bounty của chúng tôi để nhận thưởng.

01 · Truy cập vào máy chủ của bạn

Truy cập vào máy chủ của bạn

SR-1Mật khẩu root chỉ được dùng một lần và không được lưu phía chúng tôi.đã xác minh+

Mật khẩu chỉ cần để mở kết nối SSH đầu tiên và cài đặt một người dùng dịch vụ. Nó được truyền dưới dạng xác thực SSH cho kết nối của chúng tôi — không phải làm tham số dòng lệnh hay biến môi trường. Cơ sở dữ liệu của chúng tôi không có trường nào cho nó; nó không đi vào môi trường chạy script và không được ghi vào log (lỗi kết nối chỉ chứa địa chỉ và cổng, không bao giờ có mật khẩu). Trong bộ nhớ, nó được xóa (theo cơ chế best-effort) sau khi dùng — đó là phòng thủ theo lớp, không phải một sự bảo đảm: Go có thể giữ các bản sao của giá trị trên heap cho tới khi thu gom rác.

Lưu ý trung thực: đây vẫn là mật khẩu root trên máy chủ của bạn. Sau khi cài đặt, chúng tôi vô hiệu hóa đăng nhập bằng mật khẩu và đăng nhập root qua SSH, nhưng chúng tôi không đổi chính mật khẩu đó — hãy tự đổi nếu bạn muốn. 'Chúng tôi không lưu nó' là đúng; 'nó không còn là bí mật nữa' thì không.

SR-2Sau khi cài đặt, đăng nhập SSH bằng mật khẩu và bằng root bị vô hiệu hóa.đã xác minh+

PasswordAuthentication no, PermitRootLogin no, SSH được chuyển sang cổng không tiêu chuẩn (mặc định 12011), fail2ban được bật (chặn một giờ sau 5 lần thất bại), chỉ đăng nhập bằng khóa. Khóa công khai được kiểm tra chặt chẽ trước khi dùng: các ký tự xuống dòng (nhằm phòng việc chèn thêm khóa lạ vào authorized_keys) và các khóa sai cú pháp đều bị từ chối.

Chống tự khóa mình ra ngoài: cổng 22 không bị đóng cho tới khi nhân hệ điều hành xác nhận (qua ss) rằng cổng SSH mới thực sự đang lắng nghe; cấu hình được kiểm tra bằng sshd -t và quy tắc sudo bằng visudo -cf, cả hai đều được hoàn tác nếu có lỗi.

SR-3Khóa quản lý chỉ được lưu dưới dạng mã hóa.đã xác minh+

Bảng điều khiển làm việc không phải với mật khẩu của bạn mà với một khóa riêng (ed25519) do chính nó tạo ra. Phần khóa riêng nằm trong cơ sở dữ liệu, được mã hóa bằng AES-256-GCM. Khóa mã hóa (KEK) được lưu tách khỏi cơ sở dữ liệu — trong một biến môi trường của máy chủ — và ở môi trường production thì bắt buộc phải có (không có giá trị mặc định kém an toàn nào: thiếu KEK thì phân hệ mật mã đơn giản là không khởi động). Chính cơ chế mã hóa này bảo vệ các bí mật nặng ký trong cơ sở dữ liệu — mật khẩu/token/JWT quản trị Marzban, khóa Reality, khóa của nhà cung cấp thanh toán, bộ nhớ đệm thông tin đăng nhập proxy, cấu hình sao lưu.

Mã hóa không chỉ che giấu mà còn xác thực dữ liệu (thẻ xác thực GCM): việc can thiệp vào một trường đã mã hóa sẽ bị phát hiện khi giải mã và bị từ chối. Mỗi trường được mã hóa với một nonce ngẫu nhiên mới; giá trị KEK không bao giờ vào log — chỉ có id ngắn của nó.

Về các token cấp quyền: token đăng ký /sub là một bí mật dạng bearer. Để tra cứu, chúng tôi chỉ lưu SHA-256 của nó, còn bản sao cần để hiển thị lại một liên kết đã cấp thì được giữ dưới dạng bản mã AES-GCM. Các bản ghi văn bản thuần cũ được chuyển sang định dạng mới, theo cơ chế fail-closed, trước khi máy chủ HTTP khởi động. Mã định danh URL của webhook thanh toán được lưu ở dạng rõ nhưng bản thân nó không xác thực một sự kiện: tính xác thực được kiểm chứng riêng bằng chữ ký HMAC.

Bí mật của khóa Partner API là không thể đảo ngược: khóa đầy đủ chỉ được hiển thị một lần khi cấp, còn trong cơ sở dữ liệu lưu lại SHA-256 của phần bí mật. Access token và refresh token của AI đã kết nối cũng không được lưu dưới dạng văn bản thuần; kết nối bị giới hạn ở mức truy cập đã chọn và có thể bị chủ tài khoản thu hồi.

SR-4Khóa riêng không có trong các phản hồi thông thường và chỉ được cấp khi xuất một cách tường minh.đã xác minh+

Khóa chỉ được giải mã trên máy chủ, trong bộ nhớ; các API thông thường không bao giờ trả về nó. Cách duy nhất để lấy nó là một chức năng xuất có chủ đích ('lấy khóa của bạn'), được bảo vệ bằng đăng nhập cộng với một mã email dùng một lần (mã chỉ được lưu dưới dạng băm HMAC, so sánh trong thời gian hằng, TTL 10 phút, 5 lần thử). Vậy nên khóa có thể được lấy một cách chủ đích, nhưng không thể bị 'rò rỉ' qua một yêu cầu thông thường.

SR-5Khi một máy chủ bị xóa, khóa được xóa đồng bộ khỏi bản ghi của nó.đã xác minh+

Trước khi trạng thái của máy chủ thay đổi và trước bất kỳ thao tác mạng nền nào, các trường chứa khóa quản lý được ghi về 0 một cách đồng bộ. Nếu cơ sở dữ liệu không xác nhận việc xóa, thao tác trả về lỗi và có thể thử lại. Việc xóa vẫn là 'mềm': hàng dữ liệu và các dữ liệu dịch vụ không bí mật vẫn được giữ lại. Điều này không đồng nghĩa với việc xóa vật lý các bản sao lưu đã tạo — vòng đời của chúng do chính sách lưu giữ bản sao lưu chi phối.

SR-16Các API đối tác đã được kiểm toán giới hạn quyền truy cập vào chủ sở hữu tài nguyên.đã xác minh+

Trong các route của bảng điều khiển, partner_id được suy ra từ phiên đã ký; trong Partner API — từ khóa API đã xác minh hoặc kết nối OAuth của AI. Mã định danh chủ sở hữu không được lấy từ đường dẫn, tham số query hay phần thân yêu cầu. Khóa API còn bị giới hạn thêm theo scope, thời hạn hiệu lực và gói cước; với AI đã kết nối, tập quyền được tính từ mức mà chủ sở hữu đã chọn ở mỗi yêu cầu.

Trước khi trả về hay thay đổi bất cứ điều gì, hệ thống kiểm tra lại rằng máy chủ, cụm, inbound, route, người dùng VPN hay khoản thanh toán thuộc về tài khoản này. Các truy vấn cơ sở dữ liệu được giới hạn theo partner_id, còn các khóa duy nhất và khóa ngoại kết hợp từ chối các liên kết chéo giữa các đối tác không hợp lệ. Ma trận ủy quyền trong các bài kiểm thử yêu cầu một kịch bản IDOR tường minh cho mỗi endpoint có mã định danh tài nguyên.

Lưu ý trung thực: điều này được kiểm chứng bằng một cuộc kiểm toán mã dọc theo đường đi của yêu cầu, chứ không phải bằng một cuộc kiểm thử xâm nhập công khai — nên SR-16, như những mục còn lại, luôn mở để bị bác bỏ trong bug bounty.

Nói thẳng về quyền truy cập của bảng điều khiển — đó là quyền quản trị đầy đủ, không phải 'hạn chế'.ghi chú trung thực+

Để cấu hình mọi thứ tự động (cài đặt Xray+Reality, áp dụng cấu hình, đọc chỉ số) bảng điều khiển nắm quyền quản trị đầy đủ trên máy chủ (tương đương root, thông qua một người dùng dịch vụ có sudo không cần mật khẩu). Điều này là cần thiết cho việc quản lý, và chúng tôi KHÔNG gọi nó là 'hạn chế'.

Điều làm giảm rủi ro: các bí mật chỉ được truyền tới máy chủ qua stdin của tiến trình (không phải làm tham số dòng lệnh — chúng không hiện trong danh sách tiến trình); sau lần cài đặt ban đầu, mọi kết nối quản lý đều xác minh khóa host đã ghim của máy chủ — một cú tráo máy chủ 'ở giữa' sẽ bị từ chối. Điều bạn kiểm soát: quyền truy cập dựa trên một khóa mà bạn có thể thu hồi bất cứ lúc nào — bằng cách xóa máy chủ (khóa được ghi về 0) hoặc đơn giản là xóa VPS tại nhà cung cấp của bạn (khi đó mọi thứ biến mất).

02 · Dữ liệu và quyền riêng tư của bạn

Dữ liệu và quyền riêng tư của bạn

SR-6Người dùng VPN nằm trên máy chủ của bạn; chúng tôi chỉ giữ tối thiểu siêu dữ liệu dịch vụ.đã xác minh+

Bản thân các tài khoản VPN (VLESS/Reality) được tạo và nằm trong Marzban trên máy chủ chính của bạn. Ở phía trung tâm, chúng tôi chỉ lưu những gì cần để cấp một liên kết đăng ký: một token đăng ký ngẫu nhiên và một ảnh chụp đã mã hóa của thông tin đăng nhập proxy (một bộ nhớ đệm; nguồn dữ liệu gốc là Marzban của bạn). Chúng tôi không có lịch sử lưu lượng, IP hay lượt truy cập của người dùng.

Địa chỉ email của người dùng cuối không được lưu tại chỗ chúng tôi: tên tài khoản của họ được suy ra một chiều và không chứa địa chỉ. Email chứa mã đăng nhập do chúng tôi gửi, nên địa chỉ đi qua hàng đợi gửi của chúng tôi và bị xóa khỏi đó ngay sau khi gửi — để nhận ra người dùng quay lại chỉ còn một dấu vân một chiều, và không thể khôi phục địa chỉ từ đó. Trường hợp duy nhất địa chỉ vẫn được lưu lại, chúng tôi nói thẳng: khi thanh toán, địa chỉ đến trong webhook thanh toán và vào nhật ký thanh toán với thời hạn lưu giữ có giới hạn.

Chúng tôi chỉ lưu những dữ liệu dịch vụ này trong đúng thời gian cần thiết và xóa tự động: email được loại khỏi hàng đợi gửi ngay sau khi gửi, nội dung của một sự kiện thanh toán sau khi xử lý, và các sự kiện đang chờ thử lại trong một khoảng 90 ngày. Bạn có thể tự xóa tài khoản cùng toàn bộ dữ liệu của nó trong mục “Cài đặt nâng cao”, bằng cách xác nhận với mã gửi tới email của bạn (xem rủi ro 7 để biết chi tiết). Chúng tôi công bố điều này một cách cởi mở thay vì che giấu sau những lời lẽ mơ hồ.

SR-7Chúng tôi không thu thập log về lưu lượng hay lượt truy cập của bạn, và các máy chủ cũng không lưu nhật ký truy cập nào.đã xác minh+

Nền tảng CreateYourVPN không nhận hay lưu thông tin về việc bạn hay người dùng của bạn truy cập những trang nào. Lược đồ tiếp nhận chỉ số là đóng: về mặt vật lý nó không có trường nào cho IP, tên miền hay lượt truy cập — chỉ có các giá trị tổng hợp (số người trực tuyến duy nhất, tổng số byte, CPU/RAM/mức tải). Mỗi node xác thực bằng một token HMAC gắn với id của chính nó và chỉ có thể ghi chỉ số cho chính mình. Bộ cân bằng tải trên node (HAProxy) hoạt động như một bộ định tuyến TCP theo SNI và không giải mã lưu lượng. Trên chính máy chủ, các nhật ký hệ thống được giữ không quá khoảng một giờ và không được chuyển tiếp tới syslog.

Ngoài cấp nền tảng, các máy chủ cũng không lưu nhật ký truy cập: việc ghi log truy cập của Xray bị buộc tắt trong mỗi lần đẩy cấu hình (nền tảng đặt log.access thành none), nên proxy biên không ghi lại người dùng kết nối tới những địa chỉ nào. Điều này được thực thi trong mã và đã triển khai ra toàn bộ đội máy chủ.

SR-8Phân tích web là Google Analytics; không có trình theo dõi nào khác.đã xác minh+

Để hiểu trang web và bảng điều khiển được sử dụng ra sao, chúng tôi dùng Google Analytics (dải thông báo cookie cảnh báo về việc thu thập cookie và thống kê; chi tiết ở Chính sách quyền riêng tư). Trên các trang đồng ý OAuth, phân tích bị buộc không tải: URL chứa mã định danh ngắn hạn của yêu cầu kết nối AI, vốn không được phép chuyển cho bên thứ ba. Không có trình theo dõi bên thứ ba nào khác: không Sentry, PostHog, Mixpanel hay pixel quảng cáo. Backend không có telemetry của bên thứ ba, và các cửa hàng dành cho người dùng cuối không có phân tích.

Lưu ý: GA nhận IP của bạn (ở phía Google) và địa chỉ của các trang bảng điều khiển được xem; URL của bảng điều khiển chỉ chứa mã định danh cụm, không phải email.

SR-9Thanh toán nằm ở bên ngoài — chúng tôi không nhận số thẻ đầy đủ.đã xác minh+

Thanh toán và toàn bộ dữ liệu thẻ được xử lý ở phía nhà cung cấp đã kết nối (lava.top). Chúng tôi chỉ nhận một sự kiện webhook đã được xác minh: tính xác thực của nó được xác lập bằng phương thức mà nhà cung cấp cụ thể đó hỗ trợ, trước khi số dư hoặc quyền truy cập bị thay đổi. Chúng tôi không nhận số thẻ đầy đủ (PAN) hay CVV. Việc gửi lại cùng một sự kiện không gây cấp quyền hai lần: các sự kiện được khử trùng lặp.

Lưu ý: nhà cung cấp có thể đưa vào phần thân webhook siêu dữ liệu thẻ (thương hiệu và 4 chữ số cuối) cùng tên và email của người trả tiền. Worker cần phần thân gốc cho tới khi xử lý xong; sau khi xử lý thành công nó bị xóa cùng với gợi ý email. Các sự kiện đang chờ thử lại hoặc chờ xem xét thủ công chỉ giữ phần thân gốc cho tới khi kết thúc cửa sổ lưu giữ (90 ngày không hoạt động), sau đó siêu dữ liệu thẻ và email của người trả tiền sẽ bị xóa tự động. 'Không có số thẻ đầy đủ' là đúng, nhưng đó là đặc tính của các nhà cung cấp (chúng tôi không tự lọc phần thân); 'chúng tôi hoàn toàn không thấy gì về thẻ' thì không.

Chúng tôi lưu gì về bạn (đối tác), một cách trung thực.ghi chú trung thực+

Với tài khoản, chúng tôi lưu email, thời điểm đăng nhập gần nhất, chế độ giao diện và các thiết lập; phục vụ thanh toán — số dư và Telegram, nếu được cung cấp để nạp tiền. Để bảo vệ tài khoản, một phiên đang hoạt động chứa thời điểm tạo và thời điểm hoạt động gần nhất, địa chỉ IP và user-agent. Lịch sử các lần đăng nhập thành công và thất bại, kèm cùng các dấu hiệu kỹ thuật đó, được lưu trong 90 ngày.

Không có lịch sử nhấp chuột chung trong bảng điều khiển. Ngoài ra có các nhật ký dành cho mục đích cụ thể: yêu cầu Partner API — không quá 500 bản ghi gần nhất và khoảng 25 giờ; sự kiện hạ tầng và kết quả chẩn đoán — không quá 7 ngày; thao tác của AI đã kết nối — được lưu cùng với tài khoản. Trước khi ghi thao tác của AI, mật khẩu, token, khóa và liên kết đăng ký được loại bỏ, còn email của người dùng được che một phần.

03 · Gia cố máy chủ

Gia cố máy chủ

SR-10Tường lửa chặn mọi thứ trừ những gì cần thiết.đã xác minh+

Tường lửa mặc định chặn kết nối đến. Mở ra ngoài: 443 (VPN, Xray+Reality), SSH trên một cổng không tiêu chuẩn (mặc định 12011), và — trên máy chủ chính — cổng bảng quản trị Marzban, chỉ cho các IP thuộc mặt phẳng điều khiển. Cổng 80 chỉ được mở riêng trong chế độ Let's Encrypt cho HTTP-01. Cổng 22 bị đóng sau khi SSH được chuyển đi.

Các cổng quản lý của node chỉ mở cho IP của máy chủ chính, không mở ra ngoài (nếu ràng buộc này thất bại thì việc cài đặt bị hủy). Nếu tường lửa không được kích hoạt, việc cài đặt thất bại. ICMP echo chỉ bị giới hạn cho IPv4; chúng tôi không hứa máy chủ là 'vô hình', và ICMP của IPv6 được giữ lại để IPv6 hoạt động đúng.

SR-11Cập nhật bảo mật tự động.đã xác minh+

Unattended upgrades tự động cài các bản cập nhật gói bảo mật. Lưu ý: việc khởi động lại tự động bị chủ ý vô hiệu hóa (để một nhân chưa được kiểm chứng không tự khởi động lại) — nghĩa là những bản sửa cần khởi động lại (nhân, đôi khi OpenSSH) chỉ được áp dụng sau một lần khởi động lại thủ công hoặc theo lịch. 'Tự động vá' là đúng với phần không gian người dùng, chứ không đúng với những gì cần khởi động lại.

Nói thẳng về 'tính vô hình' — chúng tôi không tuyên bố điều đó.ghi chú trung thực+

Chúng tôi KHÔNG tuyên bố máy chủ là 'vô hình' hay 'không thể bị quét'. Cổng 443 mở và đáp lại một kết nối TCP như bất kỳ máy chủ web nào. Đặc tính 'khi kết nối không đúng cách thì nó trông như một website bình thường chẳng liên quan' là do giao thức Reality bên trong Xray cung cấp — một thành phần riêng mà chúng tôi không biến thành một điều tuyệt đối.

04 · Nền tảng (bảng điều khiển)

Nền tảng (bảng điều khiển)

SR-12Đăng nhập vào tài khoản CreateYourVPN của bạn mà không cần mật khẩu.đã xác minh+

Đối tác đăng nhập bằng một mã 6 chữ số dùng một lần gửi tới email. Không có mật khẩu tài khoản. Điều này không áp dụng cho thông tin đăng nhập nội bộ của các thành phần được quản lý, chẳng hạn mật khẩu quản trị của máy chủ được sinh ra. Các mã được tạo bởi một bộ sinh mật mã; chỉ băm HMAC của chúng được lưu, và việc so sánh diễn ra trong thời gian hằng. Khi thành công, mã bị xóa ngay lập tức, còn sau 5 lần thử sai nó bị vô hiệu sớm. Giới hạn tần suất cấp mã được tính cả theo địa chỉ đầy đủ lẫn theo hộp thư thực: việc đổi IP, thêm dấu chấm trong Gmail hay dùng plus-tag không tạo ra giới hạn riêng.

SR-13Có thể kiểm tra các phiên và thu hồi chúng ngay lập tức.đã xác minh+

Token phiên nằm trong một cookie HttpOnly và Secure (JS không đọc được), được xác minh ở backend (không chỉ ở tầng edge). Hết hạn do không hoạt động và tự động đăng xuất khi bỏ trống được cài đặt ở phía client, không phải ở máy chủ. Token được ký bằng HS256; khi xác minh, chúng tôi từ chối nghiêm ngặt mọi thuật toán khác (kể cả 'none') — cuộc tấn công tráo thuật toán kinh điển không lọt qua. Token của cửa hàng và token của bảng điều khiển đối tác được tách theo đối tượng (audience): về mặt kỹ thuật, một token của người dùng cuối không thể chạm tới API đối tác (và ngược lại). Một đối tác đã bị xóa vẫn bị từ chối ngay cả khi token còn hiệu lực.

Mỗi phiên đối tác có một mã định danh phía máy chủ ổn định, được giữ nguyên khi token được gia hạn. Đăng xuất thông thường thu hồi toàn bộ phiên hiện tại, chứ không chỉ một token đã cấp. Mục “Phiên đăng nhập tài khoản” hiển thị thiết bị, địa chỉ IP, thời điểm đăng nhập và hoạt động gần nhất; có thể kết thúc riêng từng phiên. Thao tác “Đăng xuất mọi nơi” kết thúc tất cả các phiên và ngắt kết nối các AI đã kết nối.

Lịch sử đăng nhập được lưu trong 90 ngày và hiển thị các lần đăng nhập thành công, mã sai và mã hết hạn, cũng như các lần vượt quá số lần thử. Khi có dấu hiệu tái sử dụng một token đã được trao đổi trước đó, hệ thống coi phiên là đã bị sao chép, kết thúc tất cả các phiên và kết nối AI, rồi gửi thông báo cho chủ sở hữu.

SR-14Token phiên và bí mật nội bộ không thể bị JavaScript phía client truy cập.đã xác minh+

Không có token phiên nào trong local storage của trình duyệt, chỉ có các thiết lập giao diện. Token được đặt vào cookie HttpOnly bởi lớp máy chủ của Next.js; trình duyệt không nhận địa chỉ nội bộ của backend và truy cập backend thông qua Server Actions. CORS không cho phép các origin khác đọc phản hồi API chứa dữ liệu có quyền.

Có những ngoại lệ có chủ đích do chính chủ sở hữu kiểm soát: xuất khóa SSH riêng sau khi nhập mã từ email (SR-4) và khóa Partner API mới, mà bí mật đầy đủ được hiển thị trong trình duyệt một lần khi tạo. Sau đó không thể khôi phục nó từ cơ sở dữ liệu — ở đó chỉ còn bản băm. Tên miền API công khai có thể truy cập từ internet theo đúng thiết kế, nhưng khi không có phiên hợp lệ, khóa API hoặc token OAuth thì nó không trả về dữ liệu được bảo vệ.

SR-15Các tên miền công khai của nền tảng dùng HTTPS với các header bảo mật nghiêm ngặt.đã xác minh+

Các host công khai của CreateYourVPN được phục vụ qua HTTPS kèm HSTS (max-age hai năm, includeSubDomains). Mọi frontend web do chúng tôi vận hành — trang của nền tảng, bảng điều khiển đối tác và cửa hàng của đối tác, dù trên tên miền phụ của chúng tôi hay trên tên miền riêng của đối tác — cùng với tên miền API đều gửi cùng một bộ header bảo mật: Content-Security-Policy (default-src 'none' trên API; trên các frontend, nó cấm nhúng vào iframe và cố định base-uri cùng form-action), X-Content-Type-Options: nosniff, X-Frame-Options và Referrer-Policy siết chặt (no-referrer trên API; strict-origin-when-cross-origin trên các frontend, vốn cũng gửi Permissions-Policy hạn chế).

Điều này đang chạy ở môi trường production trên tất cả các host đó và có thể kiểm chứng độc lập — bằng bất kỳ công cụ kiểm tra header HTTP nào hoặc dịch vụ như SSL Labs.

Kết nối AI là một quyền truy cập riêng có thể thu hồi, không phải việc chuyển giao phiên tài khoản.ghi chú trung thực+

Ứng dụng AI kết nối qua OAuth và không nhận cookie của bảng điều khiển của bạn. Trên trang đồng ý, bạn chọn một trong ba mức: chỉ xem; xem và cấu hình; xóa và cấp quyền truy cập. Quyền được máy chủ kiểm tra ở mỗi lệnh gọi. Các thao tác xóa quan trọng yêu cầu thêm một mã dùng một lần từ email, và có thể thu hồi toàn bộ kết nối trong mục “AI đã kết nối”.

Mỗi lệnh gọi công cụ được ghi vào một nhật ký mà chủ sở hữu có thể xem, kèm kết quả và bản sao an toàn của các tham số. Mật khẩu, token, khóa API, khóa riêng và liên kết đăng ký bị loại bỏ trước khi ghi; email của người dùng được che một phần. Tuy vậy, ứng dụng AI được chọn vẫn là một dịch vụ bên thứ ba: dữ liệu mà bạn chủ ý giao cho nó đọc hoặc thay đổi cũng được xử lý theo quy định của nhà cung cấp ứng dụng đó.

Nói thẳng về các rủi ro (những gì chúng tôi KHÔNG hứa)

Nói thẳng về các rủi ro (những gì chúng tôi KHÔNG hứa)

Dưới đây là những hạn chế vẫn còn trong kiến trúc hiện tại và cần được cân nhắc khi đánh giá mức độ bảo mật.

01Lưu trữ khóa tập trung — dưới sự bảo vệ nhiều lớp.

Bảng điều khiển lưu trữ các khóa truy cập đã mã hóa tới toàn bộ đội máy chủ. Về bản chất, đây là thành phần nhạy cảm nhất của hệ thống — và chúng tôi bảo vệ nó tương xứng.

Điều gì bảo vệ nó: các bí mật quan trọng chỉ nằm trong cơ sở dữ liệu dưới dạng văn bản mã hóa; khóa mã hóa (KEK) được lưu tách biệt khỏi cơ sở dữ liệu; các khóa quản trị không có trong các phản hồi thông thường gửi tới trình duyệt và bị xóa về không khi một máy chủ bị xóa. Token đăng ký có thêm một lớp nữa — tra cứu bằng hash (hash lookup) cùng với AES-GCM — nên ngay cả một bản dump cơ sở dữ liệu không có KEK cũng không chứa liên kết /sub nào còn dùng được.

Giới hạn thành thật: mã hóa bảo vệ một cách đáng tin cậy trước việc đánh cắp chính cơ sở dữ liệu — một bản sao lưu, một bản sao (replica) hoặc một bản dump. Nó không loại bỏ được nguy cơ máy chủ (host) ứng dụng bị xâm nhập hoàn toàn, nơi tiến trình truy cập được cả KEK lẫn cơ sở dữ liệu. Hiện chưa dùng KMS/HSM chuyên dụng; vì vậy trọng tâm chính trong phòng thủ là cách ly máy chủ, cập nhật tự động và bề mặt công khai tối thiểu.

02Kết nối SSH đầu tiên dựa trên sự tin cậy ở lần tiếp xúc đầu tiên.

Khi một VPS được thêm lần đầu, nền tảng chưa biết SSH host key của nó và không nhận dấu vân tay qua một kênh tin cậy độc lập. Vì vậy kết nối đầu tiên bằng mật khẩu root đã nhập sử dụng mô hình trust on first use: một kẻ tấn công chủ động trên đường mạng vào thời điểm đó về lý thuyết có thể mạo danh máy chủ. Chúng tôi không gọi rủi ro này là bằng không.

Sau khi cài đặt thành công, dấu vân tay được ghim, và mọi kết nối quản trị tiếp theo đều bắt buộc phải khớp với nó. Mật khẩu không được lưu ở bất cứ đâu và không được dùng lại; đăng nhập bằng mật khẩu và đăng nhập root bị vô hiệu hóa, việc quản trị chuyển sang một khóa riêng.

Chỉ có thể khắc phục triệt để giới hạn này bằng cách xác minh độc lập dấu vân tay đầu tiên, ví dụ qua API của nhà cung cấp VPS hoặc xác nhận của chủ sở hữu. Hiện chưa có bước xác minh như vậy, nên mục này vẫn là một rủi ro mở.

03Quyền truy cập vật lý vào máy chủ thuộc về nhà cung cấp VPS của bạn.

Đây là đặc tính của bất kỳ máy chủ thuê nào, không riêng máy chủ của chúng tôi: snapshot, chế độ rescue và những thứ tương tự đều khả dụng đối với nhà cung cấp, và không phần mềm nào bảo vệ được khỏi điều đó. Ngược lại, việc chọn một nhà cung cấp đáng tin cậy nằm trong tay bạn, và máy chủ hoàn toàn là của bạn — bạn có thể đổi nhà cung cấp hoặc xóa máy bất cứ lúc nào.

04Các lỗ hổng chưa biết (0-day) luôn tồn tại.

Không ai có thể hứa hẹn sự bảo vệ tuyệt đối — các lỗ hổng mới xuất hiện trong mọi phần mềm. Điều chúng tôi làm: các bản cập nhật bảo mật được cài đặt tự động, và các bản vá cần khởi động lại (nhân hệ thống, đôi khi là OpenSSH) sẽ có hiệu lực sau khi khởi động lại — dù thủ công hay theo lịch (xem SR-11).

05Email: của bạn thì chúng tôi lưu, địa chỉ người dùng của bạn thì không.

Địa chỉ của bạn cần cho việc đăng nhập và được lưu trong thời gian tài khoản tồn tại. Địa chỉ của người dùng cuối không được lưu dưới dạng dữ liệu hồ sơ; ngoại lệ là địa chỉ của người trả tiền nằm trong một sự kiện thanh toán chưa được xử lý hoặc đang chờ xem xét, như mô tả trong SR-6 và SR-9. Trong nhật ký thao tác của AI, email của người dùng chỉ được lưu ở dạng đã che.

06Đăng nhập bằng mã qua email — chưa có 2FA riêng.

Vì việc đăng nhập dựa trên một mã dùng một lần gửi qua email, hộp thư của bạn thực chất chính là chìa khóa của tài khoản — rất đáng được bảo vệ tốt. Yếu tố thứ hai thì chưa có: hợp lý ở giai đoạn này, nhưng nên biết.

07Các nhật ký dịch vụ khác nhau có thời hạn lưu giữ khác nhau.

Email của người dùng cuối được loại khỏi hàng đợi sau khi tin nhắn được gửi đi, và phần nội dung thô của một sự kiện thanh toán thành công sau khi được xử lý xong. Nhật ký Partner API được giới hạn ở 500 dòng gần nhất và khoảng thời gian chừng 25 giờ; sự kiện hạ tầng và kết quả chẩn đoán được lưu không quá 7 ngày.

Lịch sử đăng nhập vào tài khoản đối tác được lưu trong 90 ngày. Cùng thời hạn tối đa không có hoạt động đó áp dụng cho nội dung của sự kiện thanh toán đang chờ thử lại hoặc xét duyệt thủ công, sau đó dữ liệu cá nhân sẽ bị xóa.

Một ngoại lệ riêng là nhật ký thao tác của AI đã kết nối: nó cần thiết để xem xét các thao tác được thực hiện thay mặt chủ sở hữu và được lưu cùng với tài khoản. Bí mật bị loại bỏ và email được che trước khi ghi, nhưng hiện nhật ký này chưa có TTL ngắn riêng.

Bạn có thể tự xóa tài khoản trong mục “Cài đặt nâng cao”: ngay lập tức và toàn bộ, cùng với tất cả các nhật ký nêu trên, kể cả nhật ký thao tác của AI. Dữ liệu đã xóa vẫn còn trong các bản sao lưu cơ sở dữ liệu cho đến khi bị ghi đè, không quá 30 ngày. Thư từ trao đổi với bộ phận hỗ trợ được lưu riêng, tách khỏi tài khoản, và sẽ được xóa khi có yêu cầu.

08Bản sao lưu người dùng xuất dữ liệu ra ngoài máy chủ của bạn.

Nếu bạn bật tính năng xuất bản sao lưu lên Google Drive hoặc S3, dữ liệu người dùng sẽ rời khỏi máy chủ của bạn, và việc bảo vệ nó khi đó phụ thuộc vào đám mây của bạn — báo cáo này không đề cập riêng đến điều đó. Đây là lựa chọn có chủ đích của bạn: tính năng này do chính bạn bật.

đừng chỉ tin lời chúng tôi

Cách kiểm chứng điều này.

Mỗi tuyên bố ở trên là một lời cá cược công khai. Chúng tôi mời bạn tìm ra nơi chúng tôi sai hay tô vẽ:

nhánh A

Nhánh A — các lỗ hổng kinh điển (RCE, vượt kiểm soát cấp quyền, IDOR, rò rỉ, và tương tự).

nhánh B

Nhánh B — phản bác báo cáo này: chứng minh rằng bất kỳ SR-N nào là sai, nhận thưởng, và chúng tôi công bố đính chính một cách công khai.

Tìm thấy điều gì đó?

Hãy viết cho chúng tôi kèm một bằng chứng khái niệm có thể tái lập. Chúng tôi phản hồi trong vòng 72 giờ và phân loại nội bộ.

security@createyourvpn.comgiữ im lặng 90 ngày · vùng an toànPhần thưởng được cộng vào số dư tài khoản CreateYourVPN của bạn — đây là cách chi trả duy nhất.