Mã nguồn mở là khởi đầu của niềm tin lâu dài.

SingLinkVPN đã chính thức khởi động chương trình mã nguồn mở và nghiên cứu kỹ thuật, đồng thời tạo kho mã nguồn chính thức SingLinkVPN Open Source and Technical Research trên GitHub.

Đây không phải một lần công bố duy nhất hay một trang tài liệu chỉ để xem. Đây là một nỗ lực kỹ thuật lâu dài, sẽ được cập nhật liên tục và mở rộng theo thời gian.

Những nội dung hiện có là giai đoạn một của chương trình rộng lớn hơn.

Giai đoạn một bao gồm tài liệu kỹ thuật công khai, mô hình bảo mật và quyền riêng tư, phương pháp kiểm thử hiệu năng có thể tái lập, định dạng dữ liệu máy đọc được, khung bộ dữ liệu công khai, thư mục báo cáo, công cụ nghiên cứu, quy trình công bố lỗ hổng bảo mật và tiêu chuẩn công bố bằng chứng.

Ở các giai đoạn sau, SingLinkVPN dự kiến phát hành thêm tài liệu kỹ thuật, báo cáo nghiên cứu và mã nguồn sản phẩm theo từng giai đoạn, sau khi xem xét về bảo mật, quyền riêng tư, giấy phép và độ ổn định của sản phẩm. Các lĩnh vực dự kiến gồm giao thức VPN, ứng dụng VPN và các công nghệ VPN cốt lõi khác phù hợp để công bố sau khi xem xét.

Vì vậy, bản phát hành hiện tại không phải điểm kết thúc của chương trình. Đây là bước đầu tiên trong một quá trình mã nguồn mở liên tục.

Kho mã nguồn chính thức hiện có các thư mục docs, data, reports, tools, tests và tự động hóa GitHub để duy trì tài liệu công khai, dữ liệu nghiên cứu, tài liệu bảo mật, kiểm thử hiệu năng và công cụ kiểm chứng mở. Kho mã nguồn được mô tả rõ là một dự án đang được duy trì tích cực.

Kho mã nguồn chính thức: SingLinkLabs / singlink-vpn-open-source Trạng thái hiện tại: Giai đoạn một đã công khai. Các tài liệu kỹ thuật, báo cáo nghiên cứu và mã nguồn sản phẩm khác sẽ được phát hành theo từng giai đoạn.

Vì sao SingLinkVPN khởi động chương trình mã nguồn mở?

VPN gắn chặt với truyền tải mạng, bảo mật, quyền riêng tư và xử lý dữ liệu.

Phần lớn dịch vụ VPN vận hành bên trong những hệ thống mà người dùng không thể quan sát trực tiếp. Người dùng có thể thấy giao diện ứng dụng, danh sách máy chủ, tốc độ kết nối và mô tả sản phẩm, nhưng khó tự xác nhận:

  • kết quả tốc độ được công bố đã được đo như thế nào;

  • phiên bản phần mềm và môi trường mạng nào đã được sử dụng;

  • các lần kiểm thử thất bại có được ghi lại đầy đủ hay không;

  • một tuyên bố bảo mật là cam kết chính sách, kiểm thử nội bộ hay đánh giá độc lập;

  • một báo cáo có ghi ngày, phiên bản, phương pháp và lịch sử đính chính hay không;

  • một nhà nghiên cứu khác có thể tái lập kết quả hay không;

  • các thay đổi về kỹ thuật và bảo mật có thể được theo dõi qua các phiên bản hay không.

Chỉ riêng tuyên bố của thương hiệu không thể trả lời đầy đủ những câu hỏi này.

Chương trình nhằm biến thông tin kỹ thuật, bảo mật, quyền riêng tư và hiệu năng của SingLinkVPN từ những tuyên bố sản phẩm thành tài liệu công khai mà người khác có thể xem xét, trích dẫn, kiểm chứng, tái lập và tiếp tục giám sát.

Điều này đòi hỏi một hệ thống công bố liên tục chứ không chỉ đơn giản là đưa tệp lên mạng:

  1. tài liệu kỹ thuật quan trọng phải có phiên bản xác định;

  2. tuyên bố có thể đo lường phải nêu ngày và môi trường kiểm thử;

  3. kết quả hiệu năng phải có dữ liệu tương ứng làm căn cứ;

  4. kiểm thử nội bộ và đánh giá của bên thứ ba phải được phân biệt rõ ràng;

  5. các đính chính quan trọng phải để lại hồ sơ công khai;

  6. mã nguồn sản phẩm phải được phát hành theo từng giai đoạn sau khi xem xét bảo mật;

  7. cộng đồng phải có thể kiểm tra cấu trúc và tính đầy đủ của dữ liệu bằng công cụ công khai.

Kho mã nguồn yêu cầu mỗi tuyên bố có thể đo lường phải kèm ngày kiểm thử, phiên bản phần mềm, môi trường, phương pháp, cỡ mẫu, dữ liệu thô hoặc dữ liệu tổng hợp, và các giới hạn đã biết. Những từ ngữ tuyệt đối không thể kiểm chứng như “nhanh nhất”, “an toàn nhất” hay các tuyên bố quyền riêng tư tuyệt đối không được coi là bằng chứng.

Giai đoạn một có những gì?

Giai đoạn một thiết lập tám hạng mục công việc công khai:

  1. kiến trúc phát triển VPN và tài liệu kỹ thuật công khai;

  2. hồ sơ sản phẩm và phiên bản của SingLinkVPN;

  3. mô hình bảo mật và quyền riêng tư;

  4. phương pháp kiểm thử hiệu năng có thể tái lập;

  5. định dạng dữ liệu kiểm thử và khung bộ dữ liệu công khai;

  6. thư mục báo cáo bảo mật, hiệu năng và minh bạch;

  7. công cụ kiểm chứng dữ liệu và nghiên cứu mở;

  8. báo cáo lỗ hổng và công bố có trách nhiệm.

Cùng nhau, các hạng mục này tạo nền tảng cần thiết cho việc công bố mã nguồn, dữ liệu công khai và nghiên cứu độc lập về sau.

1. Kiến trúc phát triển VPN và tài liệu kỹ thuật công khai

Giai đoạn một bao gồm một kiến trúc ứng dụng VPN đa nền tảng.

Kiến trúc này không gắn với một ngôn ngữ lập trình hay hệ điều hành cụ thể. Thay vào đó, nó mô tả các mô-đun chính mà một ứng dụng VPN đa nền tảng cần có, gồm giao diện, vòng đời kết nối, quản lý đường hầm, định tuyến, DNS, cấu hình, kiểm thử bảo mật và chẩn đoán cục bộ.

1. Lớp giao diện

Lớp giao diện hiển thị trạng thái tài khoản, lựa chọn máy chủ, trạng thái kết nối, lỗi, kết quả chẩn đoán và các tính năng hỗ trợ tiếp cận.

Trạng thái kết nối hiển thị trên giao diện phải được lấy từ máy trạng thái kết nối thực tế, chứ không chỉ dựa vào việc người dùng đã nhấn nút kết nối hay chưa.

2. Lớp điều phối phiên

Lớp này xử lý:

  • kết nối;

  • ngắt kết nối;

  • tự động thử lại;

  • thay đổi mạng;

  • thiết bị ngủ và thức;

  • khởi động lại ứng dụng;

  • khôi phục sau gián đoạn bất thường.

Lớp này phải ngăn kết quả kết nối cũ ghi đè lên tác vụ mới hơn và bảo đảm các thao tác lặp lại không gây xung đột.

3. Lớp tiếp hợp đường hầm

Lớp này tích hợp với API VPN gốc trên các hệ điều hành khác nhau, gồm:

  • đầu vào và đầu ra gói tin;

  • vòng đời đường hầm;

  • cấu hình MTU;

  • quyền của hệ điều hành;

  • hạn chế chạy nền;

  • callback khi đường hầm bị gián đoạn.

4. Lớp định tuyến và DNS

Lớp này quản lý:

  • tuyến mặc định;

  • chia luồng (split tunnelling);

  • tuyến loại trừ;

  • lựa chọn DNS;

  • chính sách IPv4 và IPv6;

  • truy cập mạng cục bộ;

  • chống rò rỉ DNS và rò rỉ tuyến.

Kiểm thử rò rỉ không thể chỉ giới hạn ở lần kết nối đầu tiên. Kiểm thử còn cần bao gồm kết nối lại, thay đổi mạng, ngủ và thức, và trường hợp ứng dụng kết thúc bất thường.

5. Lớp truyền tải

Lớp truyền tải chịu trách nhiệm về phiên đã xác thực, hành vi truyền tải, xử lý tắc nghẽn, chính sách duy trì kết nối (keepalive) và di chuyển giữa các mạng.

6. Lớp cấu hình

Lớp cấu hình xử lý cấu hình từ xa có phiên bản, có chữ ký và được tối giản, đồng thời từ chối cấu hình không hợp lệ, hết hạn hoặc bị hạ cấp.

7. Lớp quan sát

Trong khuôn khổ bảo vệ quyền riêng tư, lớp này cung cấp:

  • trạng thái sức khỏe cục bộ;

  • chẩn đoán kết nối;

  • phân loại lỗi;

  • đầu ra kiểm thử có thể tái lập;

  • dữ liệu trạng thái kỹ thuật không chứa hoạt động mạng của người dùng.

Bản phát hành hiện tại bao gồm kiến trúc cấp cao và các nguyên tắc phát triển an toàn. Các mô-đun cụ thể hơn và mã nguồn sẽ chỉ được bổ sung sau khi hoàn tất các bước xem xét tương ứng.

2. Hồ sơ sản phẩm công khai có phiên bản

SingLinkVPN cũng đã thiết lập một hồ sơ sản phẩm công khai, tách riêng các loại thông tin khác nhau.

Thông tin sản phẩm

Bao gồm:

  • các nền tảng được hỗ trợ;

  • các phiên bản công khai;

  • ngày phát hành;

  • nguồn tải xuống chính thức;

  • mã kiểm tra (checksum) hiện có;

  • các thay đổi quan trọng về tính năng và khả năng tương thích.

Mô tả kiến trúc

Phần này cung cấp thiết kế cấp cao mà không làm lộ hệ thống nhạy cảm, thông tin xác thực hay môi trường vận hành thực tế.

Kết quả đo lường

Kết quả hiệu năng và phát hiện kỹ thuật phải kèm ngày, phương pháp, môi trường, mẫu và dữ liệu làm căn cứ.

Tuyên bố chính sách

Phần này bao gồm các cam kết về vận hành sản phẩm, bảo mật và quyền riêng tư. Tuyên bố chính sách không được trình bày như một kiểm chứng độc lập.

Cách tách biệt này giúp tránh việc chính sách, kiểm thử nội bộ, chi tiết triển khai và nghiên cứu độc lập bị lẫn lộn với nhau. Hồ sơ phát hành chính thức sẽ dần bổ sung nền tảng, phiên bản, ngày, nguồn, mã kiểm tra hiện có, các thay đổi quan trọng về bảo mật và tương thích, giới hạn đã biết, cùng thẻ Git bất biến hoặc liên kết Release.

3. Mô hình bảo mật và quyền riêng tư công khai

Bảo mật không thể chỉ được mô tả bằng những từ như “an toàn” hay “được mã hóa”.

Vì vậy, giai đoạn một công bố mô hình bảo mật và quyền riêng tư, xác định những rủi ro mà các kiểm thử, báo cáo và đánh giá độc lập về sau cần xem xét.

Phạm vi mối đe dọa hiện tại gồm:

  • quan sát lưu lượng trong mạng cục bộ;

  • rò rỉ DNS;

  • rò rỉ IPv6;

  • rò rỉ WebRTC;

  • gián đoạn định tuyến khi kết nối lại;

  • bảo vệ lưu lượng khi chuyển giữa Wi-Fi và mạng di động;

  • thay đổi độc hại đối với cấu hình từ xa;

  • hạ cấp cấu hình;

  • lộ thông tin xác thực lưu trên thiết bị;

  • rủi ro từ thành phần phụ thuộc của bên thứ ba;

  • rủi ro chuỗi cung ứng trong khâu build và phát hành;

  • lạm dụng tài khoản;

  • phiên trái phép;

  • thu thập quá mức dữ liệu chẩn đoán hoặc dữ liệu hỗ trợ.

Mỗi kiểm thử bảo mật công khai phải nêu rõ:

  • phiên bản ứng dụng bị ảnh hưởng;

  • hệ điều hành;

  • ngày kiểm thử;

  • điều kiện mạng;

  • phương pháp;

  • hành vi dự kiến;

  • hành vi quan sát được;

  • giới hạn đã biết.

Mô hình này cũng tách biệt chính sách, tài liệu kiến trúc, kiểm thử nội bộ và đánh giá của bên thứ ba.

Chỉ báo cáo của một đơn vị đánh giá hoặc nhà nghiên cứu độc lập có danh tính rõ ràng, kèm một báo cáo có thể kiểm chứng, mới được gắn nhãn đánh giá của bên thứ ba. Điều này tạo ra một tiêu chuẩn nhất quán và có thể kiểm toán cho các báo cáo bảo mật trong tương lai.

4. Phương pháp kiểm thử hiệu năng VPN có thể tái lập

Hiệu năng VPN chịu ảnh hưởng của nhiều yếu tố bên ngoài:

  • quốc gia hoặc khu vực của người kiểm thử;

  • nhà cung cấp băng rộng hoặc mạng di động;

  • chất lượng mạng cục bộ;

  • đường truyền quốc tế;

  • thời điểm trong ngày;

  • hiệu năng thiết bị;

  • phiên bản ứng dụng;

  • giao thức;

  • tải máy chủ;

  • máy chủ kiểm thử;

  • khu vực đích.

Vì vậy, một con số tốc độ đỉnh duy nhất không đại diện cho trải nghiệm của mọi người dùng.

Phương pháp đã công bố yêu cầu mỗi bản ghi phải bao gồm:

  • thời gian kiểm thử theo UTC;

  • mã định danh kiểm thử duy nhất;

  • phiên bản ứng dụng;

  • hệ điều hành;

  • loại thiết bị;

  • nhãn giao thức;

  • phiên bản phương pháp;

  • quốc gia hoặc khu vực kiểm thử;

  • loại mạng;

  • số lượng mẫu;

  • cấp độ bằng chứng.

Các chỉ số chính gồm:

Độ trễ kết nối trung vị

Độ trễ trung vị tính bằng mili giây trên nhiều mẫu, thay vì một kết quả tốt nhất.

Jitter phân vị thứ 95

Mức dao động độ trễ cao hơn quan sát được trên phần lớn các mẫu.

Tỷ lệ mất gói

Tỷ lệ gói tin bị mất trong quá trình kiểm thử.

Tốc độ tải xuống trung vị

Thông lượng tải xuống trung vị tính bằng Mbps trên nhiều mẫu.

Tốc độ tải lên trung vị

Thông lượng tải lên trung vị tính bằng Mbps trên nhiều mẫu.

Tỷ lệ kết nối thành công

Tỷ lệ phần trăm số lần thử thành công trong các kiểm thử kết nối lặp lại.

Thời gian kết nối lại trung vị

Thời gian trung vị cần để khôi phục sau khi mạng thay đổi hoặc bị gián đoạn.

Quy trình chính thức là:

  1. ghi lại mạng cơ sở khi không dùng VPN;

  2. giữ cố định thiết bị, mạng, đích đến và khoảng thời gian lấy mẫu;

  3. chạy một lượt khởi động không tính vào kết quả;

  4. lặp lại các kiểm thử kết nối và truyền dữ liệu;

  5. giữ lại các mẫu thất bại thay vì âm thầm xóa bỏ;

  6. công bố kết quả tổng hợp và dữ liệu máy đọc được;

  7. công khai các giới hạn đã biết, sự cố gián đoạn và các mẫu bị loại.

Các kiểm thử so sánh tương đương phải dùng điều kiện tương đương. Mọi thay đổi về nhà cung cấp, tuyến, thiết bị, máy chủ kiểm thử hoặc khoảng thời gian lấy mẫu đều phải được công khai. Các bộ dữ liệu có ngày, có phiên bản và có thể tải xuống sẽ được bổ sung theo phương pháp này khi việc kiểm thử tiếp tục.

5. Định dạng dữ liệu kiểm thử công khai máy đọc được

Bên cạnh báo cáo dành cho người đọc, SingLinkVPN công bố một định dạng dữ liệu hiệu năng máy đọc được.

JSON Schema yêu cầu mỗi bản ghi hiệu năng phải bao gồm:

  • test_id: mã định danh kiểm thử;

  • tested_at_utc: thời gian kiểm thử theo UTC;

  • client_version: phiên bản ứng dụng;

  • platform: nền tảng kiểm thử;

  • protocol_label: nhãn giao thức;

  • country: quốc gia hoặc khu vực kiểm thử;

  • network_type: loại mạng;

  • sample_count: số lượng mẫu;

  • latency_ms_median: độ trễ trung vị;

  • jitter_ms_p95: jitter phân vị thứ 95;

  • packet_loss_pct: tỷ lệ mất gói;

  • download_mbps_median: tốc độ tải xuống trung vị;

  • upload_mbps_median: tốc độ tải lên trung vị;

  • connection_success_pct: tỷ lệ kết nối thành công;

  • reconnect_ms_median: thời gian kết nối lại trung vị;

  • methodology_version: phiên bản phương pháp;

  • evidence_level: cấp độ bằng chứng.

Hiện tại, bằng chứng có thể được đánh dấu là:

  • kiểm thử nội bộ;

  • tái lập độc lập;

  • đánh giá của bên thứ ba.

Định dạng này cho phép nhà phát triển và nhà nghiên cứu trực tiếp kiểm tra các trường bắt buộc và khoảng giá trị, đồng thời dùng cùng một cấu trúc để tái lập và so sánh, thay vì chỉ dựa vào biểu đồ hay kết luận bằng lời.

6. Báo cáo bảo mật, hiệu năng và minh bạch

Kho mã nguồn có một thư mục báo cáo riêng để liên tục công bố:

  • báo cáo bảo mật;

  • báo cáo hiệu năng;

  • nghiên cứu về quyền riêng tư;

  • báo cáo minh bạch;

  • đánh giá của bên thứ ba;

  • kết quả được tái lập độc lập;

  • thông báo về các bản sửa lỗi bảo mật quan trọng.

Trước khi công bố, mỗi báo cáo chính thức phải nêu:

  • ngày công bố;

  • tác giả hoặc người duy trì;

  • phiên bản sản phẩm bị ảnh hưởng;

  • phương pháp;

  • nguồn dữ liệu;

  • cấp độ bằng chứng;

  • giới hạn đã biết;

  • lịch sử đính chính.

Kiểm thử nội bộ và đánh giá độc lập dùng các nhãn khác nhau. Giai đoạn một thiết lập cấu trúc báo cáo, quy tắc bằng chứng và khung quản lý phiên bản; các báo cáo sẽ được bổ sung khi dữ liệu và việc xem xét đã sẵn sàng, thay vì công bố một lần rồi bỏ mặc.

7. Công cụ kiểm chứng và nghiên cứu mở

Giai đoạn một cũng công bố một số công cụ nghiên cứu và kiểm chứng viết bằng Python.

publication_guard.py

Công cụ này kiểm tra tài liệu, dữ liệu và công cụ trước khi công bố để phát hiện:

  • thông tin xác thực;

  • định dạng khóa;

  • đường dẫn riêng tư;

  • tệp nén;

  • tệp nhị phân;

  • các loại mã nguồn chưa được phê duyệt để công bố;

  • tệp quá lớn;

  • các định dạng bí mật đang dùng phổ biến;

  • nội dung có thể mô tả hệ thống nhạy cảm.

validate_benchmark.py

Công cụ này kiểm chứng các tệp CSV kiểm thử hiệu năng, gồm:

  • tên cột;

  • các trường bắt buộc;

  • khoảng giá trị số;

  • nhãn bằng chứng;

  • cấu trúc dữ liệu kiểm thử.

check_relative_links.py

Công cụ này kiểm tra liên kết tương đối trong Markdown và xác nhận các tệp công khai được tham chiếu có tồn tại.

check_multilingual_seo.py

Công cụ này kiểm tra tài liệu đa ngôn ngữ và cấu trúc liên quan đến tìm kiếm, giúp tài liệu tiếng Anh, tiếng Trung giản thể và tiếng Trung phồn thể luôn đồng bộ.

Các công cụ này không phải lõi kết nối VPN. Chúng là hạ tầng công bố nhằm giảm lỗi định dạng, liên kết hỏng, việc vô tình làm lộ thông tin nhạy cảm và sự không nhất quán giữa các phiên bản. Người đóng góp bên ngoài có thể dùng cùng các công cụ này cho bài gửi của mình.

8. Tiêu chuẩn bằng chứng công khai năm cấp độ

Cấp độ một: tuyên bố chính sách

Cam kết về sản phẩm, bảo mật, vận hành hoặc quyền riêng tư do bên duy trì công bố. Đây là cam kết công khai, không phải bằng chứng về việc triển khai hay một cuộc kiểm toán độc lập.

Cấp độ hai: tài liệu triển khai

Mô tả kỹ thuật cấp cao có phiên bản, không chứa địa chỉ máy chủ, thông tin xác thực, API riêng tư hay thông tin nhạy cảm khác.

Cấp độ ba: kiểm thử nội bộ

Kiểm thử do SingLinkLabs thực hiện theo phương pháp công khai, có ngày, phiên bản, môi trường và dữ liệu.

Cấp độ bốn: kết quả được tái lập

Kết quả độc lập do một nhà phát triển hoặc nhà nghiên cứu khác thu được khi dùng cùng phương pháp và dữ liệu công khai.

Cấp độ năm: đánh giá của bên thứ ba

Đánh giá của một nhà nghiên cứu hoặc tổ chức độc lập có danh tính rõ ràng, kèm báo cáo chính thức có thể kiểm chứng.

Các cấp độ này không thể thay thế cho nhau. Kiểm thử nội bộ không được gắn nhãn đánh giá của bên thứ ba; chính sách không được coi là kiểm chứng độc lập; và việc công bố phương pháp không có nghĩa là kết quả đã được tái lập.

Mỗi báo cáo cần trả lời: ai đưa ra kết luận, vào lúc nào, với phiên bản nào và bằng phương pháp nào?

Các đính chính quan trọng cần một Git commit mới và một mục trong nhật ký thay đổi. Dữ liệu đã công bố không được âm thầm thay thế, và dữ liệu đã bị thay thế phải luôn nhận diện được.

9. Báo cáo lỗ hổng và công bố có trách nhiệm

Công bố mở và công bố an toàn phải đi cùng nhau.

Không được đăng lỗ hổng chưa được vá, thông tin xác thực đang dùng, endpoint riêng tư, địa chỉ máy chủ hay dữ liệu người dùng trong Issue công khai.

Báo cáo lỗ hổng phải được gửi riêng tư qua địa chỉ email bảo mật hoặc GitHub Security Advisories, và được ghi rõ là công bố về bảo mật. Nếu chưa có địa chỉ email bảo mật được công bố, hãy xem `SECURITY.md` của kho mã nguồn và đừng tự đoán địa chỉ.

Một báo cáo nên bao gồm:

  • phiên bản bị ảnh hưởng;

  • nền tảng bị ảnh hưởng;

  • điều kiện tái hiện;

  • tác động về bảo mật;

  • cách liên hệ an toàn với người báo cáo;

  • tài liệu tái hiện không chứa dữ liệu người dùng thật.

Báo cáo bảo mật sẽ trải qua:

  1. phân loại và xác nhận;

  2. đánh giá tác động;

  3. khắc phục;

  4. phát hành phiên bản đã sửa lỗi;

  5. một khoảng thời gian hợp lý để người dùng cập nhật;

  6. công bố thông báo bảo mật.

Thông báo công khai phân biệt tác động đã được xác nhận với rủi ro giả định, đồng thời nêu rõ các phiên bản bị ảnh hưởng và phiên bản đã sửa lỗi.

10. Dữ liệu công khai không có nghĩa là công khai dữ liệu người dùng

Minh bạch kỹ thuật không được đánh đổi bằng quyền riêng tư của người dùng.

Kho mã nguồn cấm Issue, pull request, bộ dữ liệu hoặc tài liệu nghiên cứu chứa:

  • dữ liệu cá nhân;

  • mã định danh tài khoản;

  • dữ liệu thanh toán;

  • nội dung trao đổi với bộ phận hỗ trợ;

  • địa chỉ IP riêng tư;

  • token truy cập;

  • thông tin xác thực của môi trường vận hành;

  • nhật ký của môi trường vận hành;

  • lưu lượng thô của môi trường vận hành;

  • dữ liệu kiểm thử có thể nhận diện một người dùng cụ thể.

Dữ liệu hiệu năng phải được tổng hợp hoặc khử định danh. Người xem xét phải xác nhận trước khi công bố rằng bộ dữ liệu không chứa dữ liệu ở cấp người dùng, thông tin xác thực hay tài liệu có thể nhận diện một người dùng thật.

Chương trình làm minh bạch công nghệ, phương pháp, báo cáo và mã nguồn đã được xem xét. Chương trình không công bố thông tin người dùng, dữ liệu máy chủ nhạy cảm về bảo mật hay thông tin xác thực của môi trường vận hành.

11. Cộng đồng có thể tham gia như thế nào?

Nhà phát triển, nhà nghiên cứu bảo mật và thành viên cộng đồng có thể:

  • cải thiện tài liệu kỹ thuật;

  • sửa lỗi trong tài liệu;

  • cải thiện bản dịch tiếng Trung phồn thể, tiếng Trung giản thể và tiếng Anh;

  • nâng cao khả năng tái lập của phương pháp kiểm thử;

  • nâng cao chất lượng dữ liệu công khai;

  • cải thiện khả năng tiếp cận;

  • bổ sung công cụ nghiên cứu;

  • cải thiện việc kiểm chứng định dạng;

  • tìm liên kết hỏng;

  • đề xuất phương pháp nghiên cứu công khai mới;

  • góp ý cải thiện thiết kế kiểm thử;

  • tái lập các kiểm thử công khai trong phạm vi quy tắc bảo mật.

Đóng góp không được chứa:

  • mã nguồn sản phẩm chưa được phê duyệt;

  • thông tin hạ tầng riêng tư;

  • thông tin xác thực hoặc khóa;

  • dữ liệu người dùng;

  • endpoint riêng tư;

  • nhật ký của môi trường vận hành;

  • hướng dẫn khai thác đầy đủ cho một lỗ hổng chưa được vá.

Mỗi đóng góp có thể đo lường cũng phải nêu rõ nguồn, phương pháp, ngày và giới hạn.

Điều này có nghĩa là SingLinkVPN đã mở toàn bộ mã nguồn chưa?

Chưa. Đây là giai đoạn đầu tiên, không phải giai đoạn cuối cùng.

Giai đoạn một ưu tiên:

  • tài liệu kỹ thuật;

  • kiến trúc phát triển;

  • mô hình bảo mật và quyền riêng tư;

  • phương pháp kiểm thử hiệu năng;

  • định dạng dữ liệu máy đọc được;

  • công cụ kiểm chứng;

  • chính sách về bằng chứng và công bố;

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

  • khung cho các báo cáo và bản phát hành mã nguồn về sau.

Những nội dung sau không nằm trong giai đoạn một:

  • toàn bộ mã nguồn ứng dụng VPN;

  • mã nguồn phía máy chủ;

  • mã nguồn hệ thống thanh toán;

  • cấu hình máy chủ vận hành;

  • API riêng tư;

  • thông tin xác thực;

  • chi tiết triển khai nhạy cảm về chống chặn hoặc đối kháng mạng;

  • toàn bộ mã nguồn giao thức lõi.

Những nội dung này không nhất thiết bị loại khỏi chương trình tổng thể. Mỗi mô-đun sản phẩm cần được xem xét riêng về bảo mật, quyền riêng tư, thành phần phụ thuộc và giấy phép.

Khi việc xem xét hoàn tất, các bản phát hành về sau sẽ bao gồm:

  • một thư mục mã nguồn mở được xác định rõ ràng;

  • giấy phép tương ứng;

  • lịch sử phiên bản;

  • ranh giới bảo mật;

  • nhật ký thay đổi;

  • ngày công bố;

  • một thẻ Git hoặc Release có thể kiểm chứng.

Xây dựng trước tiêu chuẩn công bố, cấu trúc dữ liệu, quy tắc bảo mật và công cụ nghiên cứu tạo ra một nền tảng an toàn hơn, đồng thời giảm rủi ro làm lộ thông tin xác thực, hạ tầng, dữ liệu người dùng hoặc mã của bên thứ ba không được phép phân phối lại về mặt pháp lý.

Giấy phép sẽ được xác định khi các tài liệu tiếp theo được phát hành

Kho mã nguồn hiện tại có thể được xem công khai, nhưng giấy phép tái sử dụng đầy đủ cho mã và nội dung vẫn đang được sắp xếp theo từng loại tài liệu và mã nguồn.

Cho đến khi một giấy phép rõ ràng được công bố, người dùng không được mặc định rằng mình đã nhận được:

  • quyền sao chép;

  • quyền sửa đổi;

  • quyền phân phối lại;

  • quyền sử dụng cho mục đích thương mại;

  • quyền cấp phép lại.

Giấy phép rõ ràng là một phần thiết yếu của mã nguồn mở chính thức. Mỗi bản phát hành mã nguồn, tài liệu, dữ liệu hoặc công cụ về sau sẽ kèm các điều khoản phù hợp với thành phần phụ thuộc, giấy phép thượng nguồn và mục đích sử dụng dự kiến của nó.

Điều này tránh việc áp dụng nhầm giấy phép của mô-đun này cho mô-đun khác, đồng thời bảo vệ người đóng góp, các dự án thượng nguồn và người dùng hạ nguồn.

Định hướng lâu dài của chương trình

Định hướng rất rõ ràng: liên tục tăng lượng tài liệu kỹ thuật công khai, có thể kiểm chứng và có thể tái lập.

1. Tiếp tục mở rộng tài liệu kỹ thuật công khai

Bao gồm vòng đời kết nối, định tuyến, DNS, thay đổi mạng, cấu hình an toàn và kiểm thử trên các nền tảng khác nhau.

2. Tiếp tục công bố hồ sơ sản phẩm có phiên bản

Hồ sơ sẽ bổ sung nền tảng, phiên bản, ngày, mã kiểm tra, các thay đổi quan trọng, giới hạn đã biết và liên kết trích dẫn ổn định.

3. Tiếp tục bổ sung bộ dữ liệu hiệu năng thực tế

Dữ liệu máy đọc được, có ngày, có phiên bản và gắn với môi trường cụ thể sẽ được công bố theo phương pháp công khai.

4. Tiếp tục công bố báo cáo bảo mật, hiệu năng và minh bạch

Các báo cáo sẽ phân biệt chính sách, kiểm thử nội bộ, tái lập độc lập và đánh giá của bên thứ ba.

5. Khuyến khích tái lập độc lập

Nhà nghiên cứu có thể dùng cùng phương pháp và định dạng để so sánh các mạng, thiết bị và khu vực khác nhau.

6. Tiếp tục cải thiện công cụ công bố và công cụ dữ liệu

Tự động hóa sẽ được mở rộng cho định dạng, bảo mật, tài liệu và quy trình kiểm thử.

7. Phát hành mã nguồn sản phẩm VPN theo từng giai đoạn

Sau khi xem xét về bảo mật, quyền riêng tư, thành phần phụ thuộc và giấy phép, giao thức, ứng dụng và các công nghệ cốt lõi khác đã được lên kế hoạch sẽ được phát hành dần.

8. Xây dựng hồ sơ công bố và đính chính đầy đủ hơn

Các sự cố bảo mật quan trọng, phiên bản bị ảnh hưởng, phiên bản đã sửa lỗi và các cập nhật tiếp theo sẽ có lịch sử rõ ràng.

Kho mã nguồn có siêu dữ liệu trích dẫn. Nhà nghiên cứu nên trích dẫn các Release có gắn thẻ, commit bất biến và báo cáo hoặc bộ dữ liệu có ngày tháng thực sự được sử dụng, thay vì tài liệu quảng bá không ghi ngày.

Từ tuyên bố công khai đến kiểm chứng bền vững

Mã nguồn mở không nên chỉ là một sự kiện ra mắt.

Mã nguồn mở lâu dài đòi hỏi việc duy trì, sự tham gia từ bên ngoài, giấy phép rõ ràng, quản lý phiên bản, sửa lỗi bảo mật và tài liệu kỹ thuật mà người khác có thể kiểm chứng và tái lập.

Bắt đầu từ tài liệu, phương pháp nghiên cứu, định dạng dữ liệu, tiêu chuẩn bằng chứng, cấu trúc báo cáo và công cụ kiểm chứng sẽ tạo nền tảng cho việc công bố mã nguồn rộng hơn.

Thứ nhất, thiết lập một điểm truy cập công khai

Tài liệu kỹ thuật, bảo mật, quyền riêng tư và hiệu năng trước đây nằm rải rác nay được tập hợp trong một kho mã nguồn GitHub được duy trì.

Thứ hai, thiết lập tiêu chuẩn công bố

Chương trình xác định những gì có thể công bố, các trường mà kiểm thử phải có, cách phân loại bằng chứng và cách ghi lại đính chính.

Thứ ba, thiết lập nền tảng cho mã nguồn mở về sau

Các quy trình về bảo mật, quyền riêng tư, giấy phép và quản lý phiên bản được chuẩn bị cho báo cáo, bộ dữ liệu, giao thức, ứng dụng và các mô-đun khác.

Vì vậy, giai đoạn một không trình bày một bản phát hành ban đầu có giới hạn như thể đó là toàn bộ kết quả. Giai đoạn này mở ra một quá trình được thiết kế để mở rộng.

Câu hỏi thường gặp

SingLinkVPN đã chính thức khởi động chương trình mã nguồn mở chưa?

Rồi. Kho mã nguồn mở và nghiên cứu kỹ thuật chính thức đã hoạt động, và tài liệu, phương pháp nghiên cứu, định dạng dữ liệu cùng công cụ kiểm chứng của giai đoạn một đã được công khai.

Toàn bộ mã nguồn VPN đã được công khai chưa?

Chưa. Mã nguồn giao thức, ứng dụng và các phần khác của sản phẩm sẽ được phát hành theo từng mô-đun sau khi xem xét về bảo mật, quyền riêng tư, thành phần phụ thuộc và giấy phép.

Vì sao không công bố mọi thứ cùng lúc?

Một sản phẩm VPN có thể chứa thông tin máy chủ vận hành, thông tin xác thực, API riêng tư, cơ chế phòng vệ nhạy cảm, thành phần phụ thuộc của bên thứ ba và mã nguồn theo các giấy phép khác nhau.

Việc xem xét theo từng giai đoạn giúp giảm rủi ro làm lộ dữ liệu người dùng, chi tiết hạ tầng, thông tin xác thực đang dùng hoặc mã của bên thứ ba không được phép phân phối lại.

Dữ liệu hiệu năng thực tế có được công bố không?

Có. Phương pháp và định dạng máy đọc được là bước đầu tiên. Dữ liệu và báo cáo có ngày, có phiên bản sẽ được công bố tiếp, kèm môi trường, cỡ mẫu và giới hạn.

Báo cáo bảo mật và minh bạch có được công khai không?

Có. Kho mã nguồn có thư mục báo cáo riêng và quy tắc công bố. Các báo cáo sẽ được bổ sung khi bằng chứng, phương pháp, phiên bản và giới hạn của chúng đã sẵn sàng.

Việc công bố mô hình bảo mật có nghĩa là kiểm toán của bên thứ ba đã hoàn tất không?

Không. Mô hình bảo mật là cơ sở công khai cho việc kiểm thử và đánh giá về sau.

Đánh giá của bên thứ ba sẽ nêu rõ đơn vị đánh giá và dẫn tới một báo cáo có thể kiểm chứng. Đánh giá đó sẽ không được trình bày như kiểm thử nội bộ.

Nhà phát triển có thể đóng góp những gì?

Nhà phát triển có thể đóng góp vào tài liệu, bản dịch, phương pháp nghiên cứu, chất lượng dữ liệu, khả năng tiếp cận, công cụ kiểm chứng và việc tái lập kiểm thử.

Lỗ hổng bảo mật phải được báo cáo riêng tư, không đăng trong Issue công khai.

Dữ liệu công khai có chứa dữ liệu người dùng không?

Không. Dữ liệu công khai phải được tổng hợp hoặc khử định danh và không được chứa dữ liệu tài khoản, dữ liệu thanh toán, địa chỉ IP riêng tư, token truy cập, nhật ký của môi trường vận hành hay lưu lượng thô của môi trường vận hành.

Kết luận: mã nguồn mở là khởi đầu của niềm tin lâu dài

Chương trình mã nguồn mở của SingLinkVPN nay đã bắt đầu.

Giai đoạn một thiết lập tài liệu kỹ thuật, phương pháp nghiên cứu, tiêu chuẩn bằng chứng, định dạng dữ liệu, quy tắc công bố lỗ hổng, cấu trúc báo cáo và công cụ kiểm chứng.

Sẽ có thêm các báo cáo bảo mật, hiệu năng và minh bạch. Thêm dữ liệu công khai sẽ được bổ sung theo một định dạng nhất quán. Thêm tài liệu kỹ thuật và mã nguồn sản phẩm sẽ được phát hành theo từng giai đoạn sau khi xem xét về bảo mật, quyền riêng tư và giấy phép.

Đây không phải một thông báo thương hiệu một lần hay bước cuối cùng. Đây là một nỗ lực kỹ thuật liên tục.

Mục tiêu của chúng tôi là biến thông tin kỹ thuật, bảo mật, quyền riêng tư và hiệu năng của SingLinkVPN từ những nội dung chỉ do thương hiệu mô tả thành bằng chứng công khai mà cộng đồng có thể xem xét, trích dẫn, kiểm chứng, tái lập và tiếp tục giám sát.

Chúng tôi chào đón các nhà phát triển, nhà nghiên cứu bảo mật, truyền thông công nghệ và người dùng trong cộng đồng muốn cải thiện tài liệu, tái lập nghiên cứu, kiểm chứng dữ liệu và tham gia thảo luận kỹ thuật.

Mã nguồn mở là khởi đầu của niềm tin lâu dài.

Và đây mới chỉ là bước đầu tiên.

Xem kho mã nguồn mở chính thức của SingLinkVPN