Mã nguồn đã công bố, giấy phép trong sạch, và kết nối vẫn chưa thể xác minh từ đầu đến cuối. Khoảng trống đó là bình thường, và nó không phải bê bối. Công bố mã giúp một thành phần được kiểm tra bởi những người không được mời, và đó là một thuộc tính có thật và khác thường. Điều đó không có nghĩa là tệp nhị phân bạn đã cài đến từ mã đó, cũng không có nghĩa là bất cứ thứ gì nhà cung cấp vận hành ở phía bên kia đã được rà soát.

Tách thành phần khỏi sản phẩm

Bốn thứ có thể mang nhãn mã nguồn mở, và hiếm khi tất cả đều mở. Ứng dụng khách là thứ mọi người muốn nói tới. Phần triển khai giao thức bên dưới là một tạo tác khác, đôi khi là thư viện và đôi khi là mã trong cây. Phần mềm máy chủ là thứ ba, còn hạ tầng của chính nhà cung cấp, cổng tài khoản và công cụ hỗ trợ là thứ tư. Mỗi thứ có thể mở hoặc đóng một cách độc lập.

Vì vậy những câu như "ứng dụng của chúng tôi là mã nguồn mở" mô tả mục đầu tiên và để phần còn lại không được trả lời, đó không phải là sự không trung thực mà đúng hơn là sự trượt phạm trù. Câu hỏi hữu ích là kho nào, ở thẻ nào, tương ứng với thành phần bạn dựa vào.

Sự phân biệt đó cũng giải thích vì sao hai sản phẩm có cùng ứng dụng khách mở lại có thể đưa ra những bảo đảm rất khác nhau. Ứng dụng khách là phần bạn có thể kiểm tra; hành vi của nhà vận hành là phần bạn phải đánh giá bằng cách khác.

Khớp bản dựng đã cài với thẻ đã công bố

Kho là một bản ghi ý định; tệp nhị phân trên đĩa của bạn mới là thứ chạy. Lấp khoảng trống đó là một bài tập cơ học, và nó bắt đầu bằng việc xác định chính xác cái gì đang được cài, chứ không phải cái mà trang tải xuống quảng cáo.

ComponentWhat inspection can showWhat it leaves untouched
Client sourceHow profiles, packets and optional telemetry are handledWhether the shipped binary matches that source
Build outputWhether a declared build reproduces a matching artefactWhether the source is correct or the toolchain is clean
Server softwareWhat the implementation is capable of loggingWhat the operator actually configures and retains
Account and support systemsAlmost nothing, unless they are separately publishedEverything about how those systems treat your data

Siêu dữ liệu gói cho bạn biết phiên bản và nguồn gốc, điều này loại trừ trường hợp đơn giản là gói cũ hoặc bị thay thế. Nó không cho bạn biết gói đó được biên dịch thế nào, và chính câu hỏi đó là lý do tồn tại các bản dựng tái lập được. Bản dựng tái lập được cho phép một bên độc lập dựng lại từ cùng nguồn và so sánh đầu ra từng byte, để sự khác biệt trở thành bằng chứng thay vì nghi ngờ.

Ngay cả sự khớp hoàn hảo cũng chứng minh ít hơn người ta hy vọng. Nó cho thấy tạo tác tương ứng với nguồn và công thức dựng, không phải rằng nguồn không có khiếm khuyết và cũng không phải rằng chuỗi công cụ đã dùng là đáng tin. Cả hai đều đáng biết, nhưng đó là những khẳng định khác nhau.

dpkg -S /usr/bin/wg
apt-cache policy wireguard-tools
sha256sum /usr/bin/wg

Triệu chứng thường bắt đầu từ đâu

Khiếu nại dẫn đến việc đọc này hiếm khi là "mã bị đóng". Thường đó là một quan sát cụ thể: một ứng dụng khách gọi đến nơi bất ngờ, một phiên bản khác với ghi chú phát hành, hoặc một quy trình hỗ trợ đòi hỏi nhiều hơn mức đường hầm cần. Mỗi điểm đó chỉ ra một thành phần khác nhau.

Lưu lượng mạng bất ngờ từ ứng dụng khách là câu hỏi về mã nguồn của ứng dụng khách, và có thể trả lời bằng cách đọc đường mã mở kết nối. Sự khác biệt phiên bản là câu hỏi về đóng gói. Quy trình hỗ trợ đòi giấy tờ tùy thân là câu hỏi về hệ thống tài khoản, và không cuộc kiểm toán ứng dụng khách nào giải quyết được.

Gọi tên thành phần biến sự ngờ vực mơ hồ thành một kiểm tra cụ thể. Một kiểm tra cụ thể có thể được trả lời, tranh luận hoặc khép lại. Còn cách khác là sự nghi ngờ vĩnh viễn mà không có bước tiếp theo.

Điều gì việc rà soát không chạm tới, và nên làm gì thay vào đó

Việc lưu giữ trên máy chủ của nhà cung cấp nằm ngoài tầm với của ứng dụng khách. Hành vi của cổng thanh toán, của nhà cung cấp dịch vụ kiểm tra gian lận hay của bộ phận hỗ trợ lưu tệp đính kèm cũng vậy. Một cuộc rà soát ứng dụng khách bị kéo dài thành "chúng tôi đã kiểm toán dịch vụ" đưa ra một khẳng định mà bằng chứng không ủng hộ.

Hãy đọc những gì nhà vận hành công bố về lưu giữ và yêu cầu, ghi lại ngày, và coi đó là tuyên bố của một bên có quyền lợi chứ không phải phép đo. Đó là dạng bằng chứng yếu hơn, và nói rõ sự khác biệt hữu ích hơn là nâng tầm nó khi kể lại.

Sau đó dùng những gì bạn có như một trong nhiều đầu vào: danh tính của bản phát hành đã cài, phần mềm có được bảo trì hay không, cách ứng dụng khách được cấu hình, và điều nhà vận hành nói về hệ thống của chính họ. Mã mở củng cố đánh giá đó ở một điểm. Nó không thay thế phần còn lại.

Một khẳng định kiểm toán nên luôn nêu tên các thành phần và phiên bản của nó. Nếu một báo cáo không thể nói kho nào và bản dựng nào nó đã xem xét, thì nó đang mô tả ý định chứ không phải sản phẩm.

Bài viết liên quan