Ví dụ: dự án này cung cấp một *.asctệp có chữ ký PGP để xác minh nội dung tải xuống (trái ngược với tổng kiểm tra, bạn có thể thấy cột trống): https://ossec.github.io/downloads.html

Tôi sẽ sử dụng tệp này như thế nào? Tôi đã thử gpg --verifyvà các biến thể khác, nhưng có vẻ như nó khớp với tên của tệp, tuy nhiên tên tệp khi nó được tải xuống không hoàn toàn giống nhau ... không chắc nó hoạt động như thế nào.

answer
  • Tải xuống tệp khóa:
wget https://ossec.github.io/files/OSSEC-ARCHIVE-KEY.asc
  • Kiểm tra tệp khóa để xác nhận tệp có EE1B0E6B2D8387B7khóa.
gpg --keyid-format long --list-options show-keyring OSSEC-ARCHIVE-KEY.asc
  • Nếu đúng, hãy nhập khóa:
gpg --import OSSEC-ARCHIVE-KEY.asc
  • Tải xuống gói phần mềm
wget https://github.com/ossec/ossec-hids/archive/2.9.3.tar.gz
  • Tải xuống tệp chữ ký
https://github.com/ossec/ossec-hids/releases/download/2.9.3/ossec-hids-2.9.3.tar.gz.asc
  • Xác minh điều đó
gpg --verify ossec-hids-2.9.3.tar.gz.asc 2.9.3.tar.gz

Đầu ra

gpg: Signature made Sat Dec 23 16:13:01 2017 UTC
gpg:                using RSA key EE1B0E6B2D8387B7
gpg: Good signature from "Scott R. Shinn <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: B50F B194 7A0A E311 45D0  5FAD EE1B 0E6B 2D83 87B7

Điều này sẽ hoàn thiện thêm câu trả lời của Евгений Новиков. Nó không sử dụng các lệnh GnuPG không dùng nữa và tránh các ID khóa có thể giả mạo để xác thực:

Tải xuống các tệp

Nhận chứng chỉ OpenPGP mà tác giả sử dụng để cấp chữ ký:

wget https://ossec.github.io/files/OSSEC-ARCHIVE-KEY.asc

Sau đó, có được chữ ký tách rời được cấp bởi tác giả:

wget https://github.com/ossec/ossec-hids/releases/download/2.9.3/ossec-hids-2.9.3.tar.gz.asc

Cuối cùng có được tệp mà bạn định xác thực:

wget https://github.com/ossec/ossec-hids/archive/2.9.3.tar.gz

Hiển thị và so sánh kỹ lưỡng dấu vân tay

Trước khi nhập chứng chỉ, hãy hiển thị tệp tham chiếu chứng chỉ OpenPGP dài 40 ký tự đầy đủ và đảm bảo tệp hoàn toàn khớp với tệp tham chiếu của chứng chỉ tác giả.

Chú ý: Bạn nên lấy dấu vân tay thông qua một kênh bảo mật từ tác giả. Ngoài việc gặp trực tiếp tác giả để trao đổi dấu vân tay, điều tốt nhất tiếp theo sẽ là dấu vân tay được hiển thị trên trang web của tác giả và được truy cập thông qua một https:URI được lập kế hoạch. Tác giả đã xuất bản một ở đây .

Chú ý: Nếu tác giả chỉ hiển thị ID ngắn (ví dụ: dài 8 ký tự 2D8387B7) hoặc ID dài (dài 16 ký tự, chẳng hạn EE1B0E6B2D8387B7) thì tốt hơn nên nghi ngờ và yêu cầu tác giả xuất bản đầy đủ dấu vân tay, vì cả ID ngắn và ID dài đều có đã được chứng minh là có thể giả mạo (đọc thêm tại đây )

gpg --import --import-options show-only OSSEC-ARCHIVE-KEY.asc

Theo mặc định, các phiên bản cũ hơn của GnuPG không hiển thị toàn bộ dấu vân tay. Cố gắng thêm --fingerprintcờ nếu nó không được hiển thị.

Đầu ra phải trông như thế này:

pub   rsa4096 2011-03-10 [SC]
      B50FB1947A0AE31145D05FADEE1B0E6B2D8387B7
uid                      Scott R. Shinn <[email protected]>
sub   rsa4096 2011-03-10 [E]

Tệp tham chiếu chứng chỉ OpenPGP trong trường hợp này là:

B50FB1947A0AE31145D05FADEE1B0E6B2D8387B7

Đôi khi dấu vân tay được hiển thị thành các đoạn gồm 4 ký tự, mỗi đoạn có khoảng trắng để con người dễ đọc hơn. Trong trường hợp này, có thể yên tâm bỏ qua khoảng trắng để so sánh:

B50F B194 7A0A E311 45D0  5FAD EE1B 0E6B 2D83 87B7

Chú ý: Hãy chắc chắn không chỉ so sánh các phần của dấu vân tay, vì điều này một lần nữa mở ra chỗ cho các cuộc tấn công giả mạo.

Để so sánh dễ dàng và kỹ lưỡng, chỉ cần sao chép cả hai dấu vân tay có định dạng như nhau trong các dòng tiếp theo trong trình soạn thảo văn bản mà bạn chọn và khớp chúng một cách trực quan.

Nhập chứng chỉ

Nếu tệp tham chiếu đầy đủ là khớp chính xác, hãy nhập chứng chỉ vào khóa GnuPG cục bộ của bạn:

gpg --import OSSEC-ARCHIVE-KEY.asc

Xác thực tệp

Giờ đây, bạn có thể xác minh bằng mật mã để tệp khớp chính xác với tệp được xuất bản và có chữ ký của tác giả.

gpg --verify ossec-hids-2.9.3.tar.gz.asc 2.9.3.tar.gz

Chú ý: Đảm bảo luôn liệt kê cả chữ ký tách rời và tệp để xác thực ở đây. Ngoài các chữ ký tách rời còn có các loại chữ ký khác và việc không nhận ra điều này có thể dẫn đến các giả định sai về tính xác thực nếu chỉ liệt kê tệp chữ ký.

Đầu ra phải trông như thế này:

gpg: Signature made Sa 23 Dez 2017 17:13:01 CET
gpg:                using RSA key EE1B0E6B2D8387B7
gpg: Good signature from "Scott R. Shinn <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: B50F B194 7A0A E311 45D0  5FAD EE1B 0E6B 2D83 87B7

Chú ý: Trong trường hợp tệp đã được xử lý, bạn sẽ thấy một cái gì đó như sau:

gpg: Signature made Sa 23 Dez 2017 17:13:01 CET
gpg:                using RSA key EE1B0E6B2D8387B7
gpg: BAD signature from "Scott R. Shinn <[email protected]>" [unknown]

Nếu điều này xảy ra, bạn không nên sử dụng hoặc thực thi nội dung của tệp để đề phòng và hãy liên hệ với tác giả. Nếu không liên lạc được với tác giả, thì việc nâng cao nhận thức một cách công khai là điều tốt nhất tiếp theo.

Xác thực các tệp được tác giả xuất bản hết lần này đến lần khác

Cảnh báo được hiển thị trong bước cuối cùng là một gợi ý rằng bạn nên chứng nhận chứng chỉ ký tên của tác giả đã nhập bằng chứng chỉ OpenPGP cá nhân của riêng bạn sau khi bạn đã chắc chắn rằng nó là hợp pháp.

Nếu bạn giữ và duy trì kho khóa GnuPG của mình trong một thời gian dài, bạn không cần xác minh lại chứng chỉ của tác giả cho từng tệp mới và làm cho toàn bộ quá trình dễ dàng hơn và ít bị tấn công hơn trong tương lai.

Chú ý: Chứng chỉ OpenPGP cá nhân là bắt buộc cho việc này. Hướng dẫn tạo không phải là chủ đề của câu trả lời này.

Việc cấp giấy chứng nhận hoạt động như thế này:

gpg --lsign B50FB1947A0AE31145D05FADEE1B0E6B2D8387B7

Nó cho cả GnuPG và chính bạn trong tương lai biết rằng bạn đã xác minh kỹ lưỡng chứng chỉ của tác giả này.

Sau đó, đầu ra của gpg --verify ossec-hids-2.9.3.tar.gz.asc 2.9.3.tar.gztrông sạch sẽ hơn nhiều và đảm bảo như thế này:

gpg: Signature made Sa 23 Dez 2017 17:13:01 CET
gpg:                using RSA key EE1B0E6B2D8387B7
gpg: Good signature from "Scott R. Shinn <[email protected]>" [full]