Câu trả lời:
Nội dung của các gương được ký bằng khóa PGP, trực tiếp hoặc gián tiếp. Bắt đầu từ "gốc" của bản phân phối Debian:
Release
, được ký với một chữ ký tách rời Release.gpg
, chứa các giá trị băm (MD5, SHA1, SHA256) của tất cả các chỉ mục gói và băm cài đặt ( InRelease
bây giờ kết hợp cả hai);binary-amd64
) chứa băm (MD5 và SHA256) của các gói.Băm và chữ ký được kiểm tra bằng các công cụ như apt-get
sử dụng khóa PGP được lưu trữ trên hệ thống (được quản lý bởi apt-key
). Vì vậy, miễn là hệ thống nhận là âm thanh, theo mặc định, không có gói nào có thể được cài đặt từ kho lưu trữ Debian nếu nó không được ký (gián tiếp) bởi khóa PGP lưu trữ. Bất kỳ kẻ xâm nhập nào trên gương sẽ không thể thay thế nhị phân nếu chúng cũng không có quyền kiểm soát khóa PGP có liên quan.
Điều này có nghĩa là việc thỏa hiệp kho lưu trữ không đủ để thực sự thỏa hiệp các hệ thống người dùng cuối; bạn cũng cần thỏa hiệp khóa PGP mà các hệ thống đó đã tin tưởng. (Một hệ quả của điều này là việc thêm một khóa vào hệ thống Debian không phải là điều gì đó nhẹ nhàng.) Điều đó giải quyết câu hỏi đầu tiên của bạn ở một mức độ nào đó, vì tính bảo mật của kho lưu trữ không quan trọng lắm. Tuy nhiên, các hệ thống quan trọng (nơi ký kết xảy ra) được giám sát và giám sát chặt chẽ, và rất ít người có quyền truy cập vào chúng.
Đảm bảo rằng các gói "trên thực tế là các gói mà người bảo trì nghĩ rằng chúng" có liên quan nhiều hơn một chút. Đây là đường dẫn được thực hiện bởi một gói:
Nếu nhà bảo trì tải lên các tệp nhị phân cùng với nguồn gói, thì đây là các tệp cuối cùng được phục vụ (trong thời điểm hiện tại). Vì việc tải lên các tệp nhị phân bây giờ là tùy chọn, nên việc bỏ qua chúng ngày càng phổ biến và cuối cùng các tệp nhị phân được tải lên sẽ bị loại bỏ. (Điều này luôn luôn là trường hợp trong Ubuntu.) Việc các nhị phân khác có khớp với mong đợi của người bảo trì hay không phụ thuộc vào mạng buildd; vì vậy buildds cũng là những hệ thống quan trọng, dưới sự giám sát chặt chẽ và ít có sự tiếp cận của con người. Vì tất cả các tạo phẩm đã được ký, nên luôn có thể xác minh tính toàn vẹn của các tệp: đầu tiên là dựa vào khóa của người bảo trì, sau đó là khóa của buildds và cuối cùng là khóa của kho lưu trữ.
Như được chỉ ra bởi plugwash , chữ ký gốc không có sẵn trên gương và bất kỳ DD nào cũng có thể tải lên một tệp nhị phân bị thiếu. Chữ ký gốc có thể được lấy từ kho lưu trữ thay đổi debian-devel-thay đổi .
Tóm lại , trong khi hệ thống hiện tại không hoàn hảo, nó cung cấp khả năng truy nguyên nguồn gốc cho tất cả các tệp bạn có thể tải xuống từ các máy nhân bản. Có một số nỗ lực để cải thiện tình hình: các bản dựng có thể tái tạo (sẽ cho phép xác minh độc lập các thư từ của nhị phân với nguồn được xuất bản), bỏ các nhị phân do người bảo trì cung cấp ...
apt-get
xác minh các gói bằng các khóa được nhúng trước cục bộ này, vì nó có tin tưởng chúng không?
debian-archive-keyring
gói. apt-get
xác minh Release
các tệp bằng các khóa đó và các gói bằng cách sử dụng các giá trị băm có trong tệp Release
và Packages
.