Tại sao trang man-key apt khuyên không sử dụng lệnh add của nó?


10

Các trang người đàn ông Ubuntu cho apt-key bao gồm các lưu ý sau đây liên quan đến apt-key add:

Lưu ý: Thay vì sử dụng lệnh này, một phím bấm phải được đặt trực tiếp trong thư mục /etc/apt/trusty.gpg.d/ với tên mô tả và "gpg" hoặc "asc" làm phần mở rộng tệp.

Tôi không nghĩ rằng tôi đã từng thấy lời khuyên này ở bất cứ nơi nào khác. Hầu hết các dự án lưu trữ kho riêng của họ nói để tải xuống tệp chính của họ và thêm nó vào apt-key.

  1. Động lực đằng sau lời khuyên này là gì?
  2. Đây có phải là một Ubuntu-ism, hay nó áp dụng cho bất kỳ bản phân phối dựa trên APT nào?


1
Không phải là một bản sao thực tế mỗi se; nhưng câu hỏi cơ bản (tại sao sử dụng .dthư mục?) là như nhau.
DopeGhoti

3
Nó hoàn toàn không phải là một bản sao, bởi vì câu trả lời thực tế không liên quan đến tính mong muốn hay nói cách khác là các .dthư mục.
JdeBP

Câu trả lời:


12

Những dự án đã hướng dẫn lỗi thời. Tôi biết điều này bởi vì tôi xuất bản một kho lưu trữ Debian và tôi đã cập nhật các hướng dẫn của mình khi tôi phát hiện ra những thay đổi trong Debian 9 APT. Thật vậy, phần này của hướng dẫn đã hết hạn, vì nó là thư mục sai.

Điều này thực sự không liên quan đến các .dthư mục và hơn thế nữa là ngăn chặn lỗ hổng chéo trang trong APT. Hệ thống cũ hơn sử dụng các tệp khóa riêng biệt để thuận tiện, nhưng giờ đây điều này là cần thiết để bảo mật; an ninh của bạn .

Đây là lỗ hổng. Hãy xem xét hai nhà xuất bản kho lưu trữ, A và B. Trong thế giới của Debian 8 và trước đó, cả hai khóa của nhà xuất bản đều đi theo khóa toàn cầu duy nhất trên máy của người dùng. Nếu nhà xuất bản A bằng cách nào đó có thể sắp xếp để thay thế trang web WWW của nhà xuất bản B, thì A có thể xuất bản các gói lật đổ, được ký bằng khóa riêng của A , APT sẽ vui vẻ chấp nhận và cài đặt. Cuối cùng, chìa khóa của A được tin cậy trên toàn cầu cho tất cả các kho lưu trữ.

Việc giảm thiểu là để người dùng sử dụng các chuỗi khóa riêng biệt cho từng nhà xuất bản và để tham chiếu các chuỗi khóa đó với các Signed-Bycài đặt riêng trong định nghĩa kho lưu trữ của họ. Cụ thể, khóa của nhà xuất bản A chỉ được sử dụng trong Signed-Bykho A và khóa của nhà xuất bản B chỉ được sử dụng trong Signed-Bykho B. Theo cách này, nếu nhà xuất bản A thay thế kho lưu trữ của nhà xuất bản B, APT sẽ không chấp nhận các gói lật đổ từ đó vì họ và kho lưu trữ được ký bởi khóa của nhà xuất bản A không phải bởi nhà xuất bản B's.

/etc/apt/trusted.gpg.dchế trong tay là một ngôi nhà nửa chừng hoàn hảo của Người nghèo đối với điều này, từ hồi năm 2005 trở đi, điều đó không đủ tốt. Nó thiết lập khóa trong một tệp riêng biệt, để nó có thể được đóng gói và chỉ được cài đặt trong một bước bởi trình quản lý gói (hoặc được tải xuống với fetch/ curl/ wget) như bất kỳ tệp nào khác. (Trình quản lý gói xử lý ngăn gói gói khóa đặc biệt này của nhà xuất bản A cài đặt trên nhà xuất bản B, theo cách thông thường là xử lý xung đột tệp giữa các gói nói chung.) đó là tin cậy toàn cầu cho tất cả các kho lưu trữ. Toàn bộ cơ chế tồn tại hiện sử dụng các tệp khóa riêng biệt, không đáng tin cậy trên toàn cầu /usr/share/keyrings/.

Hướng dẫn của tôi đã ở đó Có những động thái đang diễn ra để chuyển kho lưu trữ của Debian sang cơ chế này, do đó chúng không còn sử dụng các khóa đáng tin cậy trên toàn cầu nữa. Bạn có thể muốn có một từ với "hầu hết các dự án" mà bạn tìm thấy. Rốt cuộc, họ hiện đang hướng dẫn bạn bàn giao quyền truy cập toàn cầu vào APT trên máy của bạn cho họ.

đọc thêm


IMO câu trả lời này nên có thêm NHIỀU upvote! Rõ ràng việc thêm một repo của bên thứ ba luôn có một số ý nghĩa bảo mật, nhưng chúng ta hãy giữ cơ hội cho những điều xấu xảy ra ở mức tối thiểu nhỉ?!
Jeremy Davis

1

apt-key delmất keyid, đó là một hàm băm vô nghĩa của khóa.

Sẽ đơn giản hơn nếu bạn có thể gỡ cài đặt khóa bằng tên có ý nghĩa ... như tên tệp.

Như JdeBP nói, điều này hoạt động độc đáo với các tệp khóa đáng tin cậy được cài đặt như một phần của gói debian. Tôi nghĩ nó cũng có thể đẹp hơn khi bạn cài đặt thủ công một tệp chính.

Trong cơ chế mới hiện đang trong "thử nghiệm ban đầu", điều này được đơn giản hóa hơn nữa. Bạn chỉ phải xóa / tắt một thứ: kho lưu trữ (trong nguồn.list / nguồn.list.d). Điều đó sẽ tự động dừng cho phép khóa được cấu hình cho repo đó (trừ khi nó được sử dụng bởi một repo khác).

Tôi không biết cách tận dụng cơ chế mới để bảo mật. Tôi chỉ cho rằng tôi cần tin tưởng ai đó nếu tôi sử dụng gói của họ. Quá trình cài đặt gói vẫn đang chạy như sau root:-).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.