Có apt-get
sử dụng https hoặc bất kỳ loại mã hóa nào không? Có cách nào để cấu hình nó để sử dụng nó?
Có apt-get
sử dụng https hoặc bất kỳ loại mã hóa nào không? Có cách nào để cấu hình nó để sử dụng nó?
Câu trả lời:
apt-get
(và các lệnh thao tác gói khác, là giao diện người dùng cho cùng thư viện APT) có thể sử dụng HTTP, HTTPS và FTP (và các hệ thống tệp được gắn). Nếu bạn chỉ định https://
URL trong /etc/apt/sources.list
và /etc/apt/sources.list.d/*
, thì APT sẽ sử dụng HTTPS.
APT xác minh chữ ký của các gói. Vì vậy, bạn không cần phải có một hình thức vận chuyển cung cấp xác thực dữ liệu. Nếu kẻ tấn công sửa đổi các tệp bạn đang tải xuống, điều này sẽ được chú ý. Sử dụng xác minh chữ ký tốt hơn sử dụng kết nối HTTPS, bởi vì nó sẽ phát hiện một cuộc tấn công vào máy chủ mà bạn đang tải xuống, không chỉ là một cuộc tấn công trong quá cảnh.
Chính xác hơn, luồng dữ liệu (đơn giản hóa) cho một gói như sau:
HTTPS đảm bảo rằng bước 4 xảy ra chính xác. Chữ ký gói đảm bảo rằng các bước 2 đến 4 xảy ra chính xác.
Trên thực tế, có một lợi ích nhỏ cho HTTPS cho bước 4: chữ ký gói chỉ đảm bảo rằng gói đó là xác thực. Kẻ tấn công ở bước 4 có thể mạo danh một máy chủ hợp pháp và phục vụ các phiên bản cũ của gói. Ví dụ, kẻ tấn công có thể ngăn bạn tải xuống bất kỳ bản cập nhật bảo mật nào, với hy vọng khai thác lỗ hổng trên máy của bạn mà bạn sẽ vá nếu không có trong cuộc tấn công. Đây không phải là một kịch bản rất thực tế, bởi vì nó yêu cầu một kẻ tấn công tích cực (vì vậy đó sẽ phải là người kiểm soát kết nối Internet của bạn), nhưng về nguyên tắc nó có thể xảy ra.
Lợi ích khác cho HTTPS sẽ là nếu bạn đang cố gắng che giấu sự thật rằng bạn đang tải xuống các gói Ubuntu từ ai đó rình mò kết nối mạng của bạn. Thậm chí sau đó, kẻ nghe trộm có thể thấy máy chủ nào bạn đang kết nối; nếu bạn kết nối với máy nhân bản Ubuntu và tải xuống hàng trăm megabyte, rõ ràng là bạn đang tải xuống các gói Ubuntu. Kẻ nghe trộm cũng chủ yếu có thể tìm ra gói nào bạn đang tải xuống từ kích thước của tệp. Vì vậy, HTTPS sẽ chỉ hữu ích nếu bạn tải xuống từ máy chủ cũng cung cấp các tệp khác có kích thước tương tự - Tôi không thấy bất kỳ điểm nào ngoại trừ các gói của bên thứ ba và chỉ trong những trường hợp rất bất thường.
Để nhắc lại: lợi ích thông thường của HTTPS, đó là bạn biết rằng bạn đã kết nối với máy chủ thực, là vô ích khi bạn tải xuống các gói Ubuntu. Việc xác minh chữ ký trên các gói mang lại sự đảm bảo mạnh mẽ hơn những gì HTTPS có thể cung cấp.
apt-get update
sẽ báo lỗi khi cố gắng truy cập các liên kết. Với ppas: giống nhau. Có ai đã thử nó chưa?
archive.ubuntu.com
không có . Bạn có thể kiểm tra trong trình duyệt của mình nếu máy chủ hỗ trợ nó bằng cách thêm tiền tố https: // vào URL và xem bạn có nhận được danh sách thư mục không, v.v.
Với APT, thông thường, điều quan trọng hơn không phải là kết nối của bạn được mã hóa, mà là các tệp bạn đang nhận không bị giả mạo.
APT đã tích hợp xác minh chữ ký để đảm bảo điều này.
Mã hóa sẽ ngăn những kẻ nghe trộm không thể nhìn thấy những gì bạn đang tải xuống, nhưng những gì bạn thực sự đang tải xuống (và yêu cầu) thì không có gì phải bàn cãi: nó sẽ giống như hàng ngàn người dùng Ubuntu khác đang tải xuống và các tệp không chứa gì cả ' t miễn phí có sẵn trên nhiều máy chủ. Tuy nhiên, nếu bạn cần quyền riêng tư về những gói cụ thể mà bạn đang tải xuống, HTTPS có thể được sử dụng (chỉ định gói đó trong nguồn của bạn).
Xác minh chữ ký được tích hợp trong APT sẽ đảm bảo rằng các tệp bạn nhận được không bị giả mạo. Việc các tập tin đến từ đâu không quan trọng và thậm chí có thể có proxy hoặc đảo ngược proxy giữa bạn và máy chủ để giảm tải máy chủ hoặc tăng tốc cho bạn. Xác minh chữ ký vẫn đảm bảo rằng bạn đang nhận được tệp chưa sửa đổi, khớp với chữ ký chỉ có thể được tạo bằng mật mã với tệp gốc và bản sao khóa riêng của Ubuntu.
Nếu bạn chuyển sang HTTPS, thì bạn sẽ không thể tận dụng các máy chủ proxy để tăng tốc truy cập hoặc giảm tải nữa. Và nó sẽ không thêm bất kỳ sự đảm bảo nào về việc không giả mạo mà xác minh chữ ký của APT chưa đưa ra. Tuy nhiên, điều đó có nghĩa là những kẻ nghe trộm (như ISP của bạn) sẽ không thể biết gói nào bạn đang tải xuống (không có khả năng được bảo mật và như Gilles chỉ ra rằng họ có thể đoán từ kích thước tệp).
apt update
và một người đàn ông ở giữa cho bạn ăn các chỉ số không có thật, apt vui vẻ lấy bất cứ thứ gì mà người đàn ông ở giữa đưa cho bạn và viết nó vào / var / lib / apt / list. Điều này không chỉ với một kẻ ác ở giữa, nhưng giống như nếu bạn đang truy cập WiFi của khách sạn và được chuyển hướng đến một trang đăng nhập, nếu bạn chạy apt update
trước khi đăng nhập, danh sách / var / lib / apt / của bạn sẽ bị hỏng với trang chủ HTML của khách sạn. TRỞ LẠI! Dù sao, kiểm tra chứng chỉ TLS cơ bản sẽ loại trừ điều này ngay lập tức.
Các bản phát hành APT gần đây có hỗ trợ TLS tích hợp, vì vậy bạn chỉ cần thay thế các URL nhân bản của kho lưu trữ gói của bạn bằng các URL được https
bổ sung. Đối với Debian, nó có thể trông như thế này:
deb https://deb.debian.org/debian/ stretch main
deb https://deb.debian.org/debian-security stretch/updates main
deb https://deb.debian.org/debian/ stretch-updates main
Điều này rất hữu ích, mặc dù APT bao gồm giao thức chữ ký riêng để đảm bảo các gói không bị giả mạo, bởi vì có thể có lỗi trong APT (như đã có: CVE-2016-1252 , CVE-2019-3462 ). Các giao thức HTTP / TLS và mật mã của chúng phải chịu sự giám sát chặt chẽ, do đó, lỗ hổng zero-day nghiêm trọng sẽ ít xảy ra hơn nếu bạn thêm lớp bảo mật này.
Tôi nghĩ rằng câu hỏi này có thể sử dụng một câu trả lời với các hướng dẫn cho giáo dân, vì vậy
APT vẫn không sử dụng HTTPS theo mặc định trong các bản dựng hàng ngày của Ubuntu 19.10 (Eoan) (vẫn đang được phát triển). Người ta có thể xác minh điều này bằng cách kiểm tra tệp /etc/apt/source.list và lưu ý rằng tất cả các URL nguồn sử dụng lược đồ URL "http:".
Để cấu hình nó để sử dụng HTTPS, người ta có thể làm theo các hướng dẫn sau:
Trước tiên , hãy tìm một máy nhân bản lưu trữ Ubuntu chính thức đáng tin cậy hỗ trợ HTTPS:
Ví dụ: tôi coi Wikimedia Foundation đáng tin cậy, vì vậy tôi đã truy cập http: //mirrors.wik mega.org/ubfox/ và sau đó đổi nó thành https ://mirrors.wik hè.org/ub Ubuntu /, giải quyết thành công.
Nếu bạn sử dụng Firefox (67.0.4) và cài đặt tiện ích mở rộng HTTPS Everywhere (2019.6.27) với tính năng "Mã hóa tất cả các trang web đủ điều kiện" (thông qua bảng nút thanh công cụ), có thể bỏ qua các bước (4) và (5) bởi vì tiện ích mở rộng sẽ tự động sửa đổi URL để sử dụng HTTPS, cho phép người dùng xác định ngay lập tức liệu phiên bản "https:" của URL có giải quyết hay không.
Hai , cập nhật danh sách nguồn APT của bạn:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
để sao lưu danh sách nguồn cập nhật của bạn.sudo sed --in-place --regexp-extended 's http://(us\.archive\.ubuntu\.com|security\.ubuntu\.com) https://mirrors.wikimedia.org g' /etc/apt/sources.list
bằng URL cơ sở nhân bản của máy nhân bản ưa thích của bạn và sau đó, thực hiện lệnh.Thứ ba , bạn nên kiểm tra nội dung của thư mục /etc/apt/source.list.d/ để biết các nguồn "http:" có thể được thay đổi thành "https:" sau khi cài đặt phần mềm từ bên ngoài kho lưu trữ Ubuntu.
Ví dụ: gói Visual Studio Code của Microsoft thêm tệp vscode.list vào thư mục này chỉ định URL "http:". Thay đổi đơn giản lược đồ URL từ "http:" thành "https:" cho phép cập nhật qua HTTPS.
Xem xét sao lưu mọi tệp nguồn như vậy trước khi sửa đổi chúng.
Cuối cùng , thực hiện cập nhật để đảm bảo rằng các cập nhật sẽ hoạt động chính xác:
sudo apt-get update
lệnh.sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list
lệnh.Cũng đáng lưu ý rằng có gói apt-Transport-https để thêm hỗ trợ HTTPS cho APT. Tuy nhiên, gói này rõ ràng là không cần thiết theo trang web https://launchpad.net/ubfox/eoan/+package/apt-transport-https và không cần thiết kể từ APT 1.5 theo thông tin hiển thị sau khi thực hiện lệnh apt-cache show apt-transport-https
.