Làm cách nào để Xác minh Chữ ký PGP?

How Do I Verify Pgp Signature



PGP (Pretty Good Privacy) là một chương trình mật mã dựa trên khóa công khai. PGP bổ sung cho khóa đối xứng với các thuật toán khóa bất đối xứng, làm cho phần mềm này trở thành một hệ thống mật mã kết hợp, thường được gọi là hệ thống mật mã lai .

PGP không chỉ được sử dụng để bảo mật thông tin khỏi các mối đe dọa mạng mà còn để kiểm tra tính toàn vẹn của tệp.







Hướng dẫn này giải thích dễ dàng cách PGP hoạt động và cách xác minh chữ ký PGP .



Cách hoạt động của PGP

Hình ảnh bên dưới mô tả khóa công khai PGP. Khóa công khai PGP này chỉ có thể được giải mã bằng một khóa PGP riêng tư cụ thể. Nhà phát hành khóa công khai bên dưới cũng đã phát hành khóa PGP riêng vì chúng được tạo trong cùng một quy trình. Anh ta chỉ chia sẻ khóa công khai.
Nếu bạn lấy khóa công khai của anh ấy để mã hóa tin nhắn cho anh ấy, anh ấy sẽ có thể giải mã tin nhắn bằng khóa riêng của mình. Chỉ có khóa riêng của anh ấy mới có thể giải mã tin nhắn bạn đã mã hóa bằng khóa công khai của anh ấy.







Thông tin được mã hóa bằng khóa công khai và được giải mã bằng khóa riêng. Đây được gọi là mã hóa bất đối xứng .

Vì vậy, ngay cả khi kẻ tấn công quản lý để chặn tin nhắn mà không có khóa cá nhân, anh ta không thể xem nội dung tin nhắn.



Ưu điểm của mã hóa không đối xứng là sự đơn giản để trao đổi khóa. Nhưng nhược điểm của nó là không thể mã hóa lượng lớn dữ liệu và đó là lý do tại sao PGP triển khai cả hai.

Mã hóa đối xứng được áp dụng khi khóa công khai được sử dụng để mã hóa dữ liệu được bảo vệ. Với khóa công khai, người gửi thực hiện hai việc: đầu tiên tạo mã hóa đối xứng để bảo vệ dữ liệu, sau đó áp dụng mã hóa không đối xứng, không mã hóa bản thân dữ liệu mà là khóa đối xứng, bảo vệ dữ liệu.

Nói một cách kỹ thuật hơn, trước khi áp dụng khóa đối xứng, dữ liệu cũng được nén trước khi được mã hóa bằng khóa đối xứng và khóa công khai. Luồng biểu đồ sau đây cho thấy toàn bộ quá trình:

Chữ ký PGP

PGP cũng được sử dụng để kiểm tra tính toàn vẹn của gói. Điều này đạt được thông qua chữ ký điện tử, có thể được thực hiện với PGP.

Đầu tiên, PGP tạo một mã băm được mã hóa bằng khóa cá nhân. Cả khóa cá nhân và mã băm đều có thể được giải mã bằng khóa công khai.

PGP tạo ra một chữ ký điện tử, ví dụ, cho một hình ảnh ISO bằng cách sử dụng các thuật toán DSA hoặc RSA. Trong trường hợp này, khóa riêng được gắn vào phần mềm hoặc ISO Image, trái với thao tác được mô tả trước đó. Khóa công khai cũng được chia sẻ.

Người dùng sử dụng khóa công khai để xác minh chữ ký được đính kèm với phần mềm đã phát hành.

Luồng biểu đồ sau đây cho thấy cách khóa cá nhân và mã băm được gắn vào phần mềm và cách người dùng sử dụng phần mềm có mã băm và khóa riêng tư kèm theo cùng với khóa công khai để xác minh chữ ký:

Làm cách nào để Xác minh Chữ ký PGP?

Ví dụ đầu tiên cho thấy cách xác minh chữ ký hạt nhân Linux. Để dùng thử, hãy truy cập https://kernel.org và tải xuống phiên bản hạt nhân và tệp PGP của nó. Đối với ví dụ này, tôi sẽ tải xuống các tệp linux-5.12.7.tar.xzlinux-5.12.7.tar.sign .

Ví dụ đầu tiên cho thấy cách xác minh chữ ký bằng một lệnh duy nhất. Theo trang người đàn ông, kết hợp tùy chọn này sẽ không được chấp nhận trong các phiên bản trong tương lai. Tuy nhiên, nó vẫn được sử dụng rộng rãi và trong khi sự kết hợp cụ thể sẽ không được dùng nữa, các tùy chọn sẽ vẫn còn.

Lựa chọn đầu tiên –Keyerver-options cho phép xác định các tùy chọn cho máy chủ khóa nơi các khóa công khai được lưu trữ. Về cơ bản, điều này cho phép triển khai các tùy chọn tìm nạp khóa công khai.

Các –Keyerver-options được kết hợp với –Auto-key-truy xuất tùy chọn để tự động truy xuất khóa công khai từ máy chủ khóa khi xác minh chữ ký.

Để tìm khóa công khai, lệnh này sẽ đọc chữ ký để tìm máy chủ khóa ưu tiên đã xác định hoặc ID của người ký thông qua quy trình tra cứu bằng cách sử dụng Thư mục khóa web.

gpg--keyerver-optionstự động lấy chìa khóa--xác nhậnlinux-5.12.7.tar.sign

Như bạn có thể thấy, chữ ký tốt, nhưng có một thông báo cảnh báo cho biết gpg không thể xác nhận chữ ký đó thuộc về chủ sở hữu. Bất kỳ ai cũng có thể đưa ra chữ ký công khai với tư cách là Greg Krohan-Hartman. Bạn biết chữ ký là hợp pháp vì bạn tin tưởng vào máy chủ mà bạn đã tải xuống. Trong trường hợp này, nó được chỉ định trong .sign được tải xuống từ kernel.org.
Cảnh báo này luôn xuất hiện và bạn có thể tránh nó bằng cách thêm chữ ký vào danh sách đáng tin cậy chữ ký bằng cách sử dụng tùy chọn –Edit-key tin cậy . Sự thật là không có người dùng nào làm điều đó và cộng đồng Gpg đã yêu cầu xóa cảnh báo.

Đang xác minh SHA256SUMS.gpg

Trong ví dụ sau, tôi sẽ xác minh tính toàn vẹn của hình ảnh Kali Linux cũ mà tôi tìm thấy trong hộp của mình. Vì mục đích này, tôi đã tải xuống các tệp SHA256SUMS.gpg và SHA256SUMS thuộc cùng một hình ảnh iso.

Khi bạn tải xuống hình ảnh iso, SHA256SUMS.gpg và SHA256SUMS, bạn cần lấy khóa công khai. Trong ví dụ sau, tôi tìm nạp các khóa bằng cách sử dụng wgetgpg –import (Liên kết hướng dẫn xác minh Kali tới máy chủ khóa này).

Sau đó, tôi xác minh tính toàn vẹn của tệp bằng cách gọi gpg với -xác nhận tranh luận:

wget -NS -HOẶC- https://archive.kali.org/archive-key.asc|gpg--nhập khẩu

gpg--xác nhậnSHA256SUMS.gpg SHA256SUMS

Như bạn có thể thấy, chữ ký tốt và quá trình xác minh đã thành công.

Ví dụ sau đây cho thấy cách xác minh tải xuống NodeJS. Lệnh đầu tiên trả về lỗi vì không có khóa công khai. Lỗi cho biết tôi cần tìm kiếm khóa 74F12602B6F1C4E913FAA37AD3A89613643B6201. Thông thường, bạn cũng có thể tìm thấy ID khóa trong hướng dẫn.

Bằng cách sử dụng tùy chọn –Keyerver , Tôi có thể chỉ định máy chủ để tìm kiếm khóa. Bằng cách sử dụng tùy chọn –Recv-key , Tôi lấy chìa khóa. Sau đó, xác minh hoạt động:

gpg--xác nhậnSHASUMS256.txt.asc

Tôi sao chép khóa tôi cần tìm nạp và sau đó tôi chạy:

gpg--keyerverpool.sks-keyservers.net- khóa ghi âm

74F12602B6F1C4E913FAA37AD3A89613643B6201


gpg--xác nhậnSHASUMS256.txt.asc

Tìm kiếm các phím gpg:

Nếu khóa tự động truy xuất không hoạt động và bạn không thể tìm thấy hướng dẫn xác minh cụ thể, bạn có thể tìm kiếm khóa trong máy chủ chìa khóa bằng cách sử dụng tùy chọn –Search-key .

gpg--search-key74F12602B6F1C4E913FAA37AD3A89613643B6201

Như bạn có thể thấy, chìa khóa đã được tìm thấy. Bạn cũng có thể lấy nó bằng cách bấm số của phím bạn muốn lấy.

Phần kết luận

Việc xác minh tính toàn vẹn của nội dung tải xuống có thể ngăn ngừa các vấn đề nghiêm trọng hoặc giải thích chúng, chẳng hạn như khi phần mềm đã tải xuống không hoạt động chính xác. Quá trình với gpg khá dễ dàng, như được hiển thị ở trên, miễn là người dùng nhận được tất cả các tệp cần thiết.

Hiểu mã hóa bất đối xứng hoặc mã hóa dựa trên khóa công khai và riêng tư là nhu cầu cơ bản để tương tác an toàn trên internet, ví dụ như sử dụng chữ ký số.

Tôi hy vọng hướng dẫn này về chữ ký PGP hữu ích. Tiếp tục theo dõi Gợi ý Linux để biết thêm các mẹo và hướng dẫn về Linux.