Kiểm tra ISO trên Ubuntu: xác minh chữ ký GPG trước, SHA256 sau
Kiểm tra ISO bằng quy trình chính thức của Ubuntu: lấy đúng tệp kiểm tra cùng bản phát hành, xác minh chữ ký GPG của danh sách rồi đối chiếu SHA256 của ISO. Các lệnh dành cho Ubuntu/Linux; khóa trong ví dụ cũ của tài liệu không đại diện cho mọi bản phát hành.
Cập nhật:
Chuẩn bị ảnh ISO và các tệp kiểm tra
Cần có ba tệp: ảnh ISO Ubuntu, danh sách kiểm tra SHA256SUMS và tệp chữ ký tách biệt SHA256SUMS.gpg. Hai tệp kiểm tra phải đến từ cùng phiên bản Ubuntu với ảnh ISO và nên được đặt trong cùng một thư mục. Không dùng tệp kiểm tra của phiên bản cũ hoặc bản khác để kiểm tra ảnh hiện tại.
Bài này dùng môi trường dòng lệnh Ubuntu/Linux. Chạy sha256sum --version và gpg --list-keys để kiểm tra công cụ. Tài liệu Ubuntu nêu các công cụ cần thiết thuộc coreutils và gnupg; nếu bản Linux khác chưa có, hãy dùng trình quản lý gói của bản phân phối. Bài này không đưa ra lệnh thay thế dành cho macOS hay Windows.
Nếu chưa tải SHA256SUMS và SHA256SUMS.gpg, hãy lấy chúng từ thư mục phát hành chính thức của đúng phiên bản Ubuntu cần cài đặt. Danh sách có thể chứa nhiều ảnh desktop, server và kiến trúc CPU khác nhau, vì vậy tên tệp gần giống nhau không có nghĩa chúng có thể hoán đổi.
- Chuyển đến thư mục chứa ISO, SHA256SUMS và SHA256SUMS.gpg.
- Chạy sha256sum --version và gpg --version để kiểm tra công cụ.
- Mở SHA256SUMS và xác nhận danh sách có đúng tên tệp ISO của bạn; chú ý phiên bản Ubuntu và kiến trúc CPU.
Xác minh danh sách kiểm tra trước khi tin vào giá trị băm
Chạy gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS. Đối tượng được xác minh ở đây là danh sách SHA256SUMS; tệp ISO sẽ được kiểm tra ở bước sau.
Nếu có thông báo No public key, ghi lại tất cả ID khóa dài trong kết quả rồi làm theo phần tiếp theo. Một tệp chữ ký có thể chứa nhiều chữ ký; chỉ nhập khóa xuất hiện đầu tiên không có nghĩa mọi chữ ký đều đã được xác minh.
Good signature cho biết chữ ký khớp với khóa công khai về mặt mật mã; danh tính khóa vẫn cần được đối chiếu. Nếu có BAD signature hoặc chữ ký chưa kiểm tra được, chưa nên coi danh sách là chuẩn đã xác minh. Cảnh báo unknown trust khác với chữ ký sai; đừng đặt mức tin cậy cuối cùng chỉ để xóa cảnh báo.
- Chạy gpg --keyid-format long --verify SHA256SUMS.gpg SHA256SUMS.
- Đọc toàn bộ kết quả chữ ký và ghi lại từng ID khóa dài còn thiếu.
- Nếu thiếu khóa, nhập và đối chiếu dấu vân tay theo phần tiếp theo rồi xác minh lại.
Nhập mọi khóa còn thiếu và đối chiếu dấu vân tay đầy đủ
Phần 4 của hướng dẫn chính thức minh họa việc lấy khóa từ máy chủ khóa Ubuntu. Mẫu lệnh là gpg --keyid-format long --keyserver hkp://keyserver.ubuntu.com --recv-keys 0xKEY_ID_1 0xKEY_ID_2. KEY_ID_1 và KEY_ID_2 là chỗ giữ chỗ: trước khi chạy, thay chúng bằng tất cả ID khóa dài còn thiếu trong kết quả thực tế, thêm hoặc bớt theo số khóa. Không chạy nguyên các chỗ giữ chỗ.
Tiếp theo chạy gpg --keyid-format long --list-keys --with-fingerprint 0xKEY_ID_1 0xKEY_ID_2, cũng thay mọi chỗ giữ chỗ, để xem dấu vân tay đầy đủ. Ví dụ cũ trong phần 4 của tài liệu được dẫn ở cuối bài có hai khóa: khóa 46181433FBB75451 có dấu vân tay C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451; khóa D94AA3F0EFE21092 có dấu vân tay 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092. Chỉ dùng những giá trị này để đối chiếu khi chữ ký thực tế dùng đúng cùng khóa.
Đó là ví dụ lịch sử trong tài liệu, không phải danh sách mọi khóa hiện hành đã được bài này xác nhận. Nếu chữ ký dùng khóa khác, hoặc không thể đối chiếu dấu vân tay đầy đủ với tài liệu chính thức được dẫn, hãy dừng để xác minh thêm. Đừng thay bằng khóa trong ví dụ và đừng chỉ dựa vào tên khóa hoặc Good signature để kết luận nguồn gốc. Sau khi đối chiếu, chạy lại lệnh xác minh và đọc tất cả kết quả chữ ký.
- Thu thập tất cả ID khóa dài còn thiếu từ kết quả xác minh thực tế.
- Thay các chỗ giữ chỗ bằng những ID đó rồi lấy khóa từ máy chủ khóa Ubuntu.
- Đối chiếu dấu vân tay đầy đủ với ví dụ trong hướng dẫn chính thức; nếu không phải cùng khóa, ví dụ trong bài chưa đủ xác nhận danh tính và cần dừng để xác minh.
- Chạy lại lệnh xác minh; chỉ chuyển sang kiểm tra ISO khi các chữ ký hợp lệ và danh tính các khóa đã được đối chiếu.
So sánh giá trị SHA256 của ảnh ISO
Sau khi SHA256SUMS đã được chứng minh bằng chữ ký đáng tin cậy, nó mới làm chuẩn đối chiếu cho ảnh ISO. Chạy sha256sum với tên tệp ISO thực tế. Kết quả có dạng giá trị băm, khoảng trắng và tên tệp; hãy so sánh giá trị băm với giá trị của đúng tên tệp trong SHA256SUMS.
Trong môi trường có GNU coreutils, có thể chạy sha256sum -c SHA256SUMS để kiểm tra các mục trong danh sách. Chỉ dòng ứng với ảnh ISO của bạn cần hiển thị OK để được xem là khớp. Vì danh sách có thể chứa nhiều ảnh chưa tải, lỗi do thiếu những tệp khác không nên bị nhầm với kết quả của ảnh đang kiểm tra.
Nếu giá trị băm khác nhau, tệp có thể tải thiếu, thuộc sai phiên bản, đã bị sửa đổi hoặc bị hỏng. Không nên tiếp tục tạo phương tiện cài đặt; hãy tải lại ảnh từ nguồn tin cậy và kiểm tra lại cả hai tệp kiểm tra.
- Chạy sha256sum rồi thêm đúng tên ISO trên máy. Trong ví dụ sha256sum ubuntu-phien-ban-kien-truc.iso, tên tệp chỉ là chỗ giữ chỗ và phải được thay trước khi chạy.
- Tìm đúng tên tệp trong SHA256SUMS và so sánh giá trị SHA256; hoặc chạy sha256sum -c SHA256SUMS rồi xem riêng kết quả của ISO cần kiểm tra.
- Nếu mục tương ứng không phải OK, hãy loại bỏ hoặc cách ly bản sao hiện tại và tải lại ISO cùng các tệp kiểm tra từ thư mục phát hành đúng phiên bản.
- Nếu mục tương ứng là OK, dùng ảnh ISO đó để tạo phương tiện cài đặt.
Xử lý sự cố và khác biệt giữa các phiên bản
Kết quả kiểm tra thất bại không nhất thiết đồng nghĩa với việc ảnh ISO đã bị sửa đổi. Các nguyên nhân phổ biến gồm ISO và SHA256SUMS thuộc khác phiên bản, tệp tải chưa hoàn tất, chọn sai tên tệp hoặc kiến trúc CPU, và ảnh được xây dựng lại sau khi phát hành.
Bản phát triển và bản thử nghiệm đôi khi không tạo danh sách kiểm tra mới cho từng lần build, nên không nên diễn giải việc thiếu một mục kiểm tra là kết luận bảo mật, cũng không nên mặc định dùng khóa trong ví dụ của bản ổn định cho các phiên bản khác.
Nếu ảnh ISO khớp SHA256 nhưng SHA256SUMS.gpg không xác minh được, không thể coi ảnh là đáng tin chỉ vì giá trị băm của nó trông bình thường. Hãy giải quyết vấn đề chữ ký hoặc dấu vân tay khóa trước khi tiếp tục sử dụng ảnh.