PGP là gì và dùng để kiểm tra phần mềm ví
Nội dung bài8 phần
Độ khó: Trung cấp
PGP (Pretty Good Privacy) là cách dùng cặp khóa để làm hai việc: giữ bí mật nội dung và chứng minh ai là người gửi. Với người dùng crypto, ứng dụng thiết thực nhất không phải email, mà là kiểm tra xem phần mềm ví bạn tải về có đúng của nhà phát triển hay đã bị thay thế.
Nội dung chỉ nhằm giải thích kiến thức, không phải khuyến nghị đầu tư.
Điểm chính
- PGP dùng khóa công khai để mã hóa và khóa riêng để giải mã hoặc ký. Phil Zimmermann phát hành bản đầu năm 1991.
- Chuẩn chung là OpenPGP: RFC 4880 (2007), được RFC 9580 (2024) thay thế.
- Một thông điệp PGP thực ra dùng hai tầng: khóa phiên dùng một lần để mã hóa dữ liệu, rồi khóa công khai để mã hóa khóa phiên.
- Cách dùng quan trọng nhất với crypto là xác minh chữ ký của bản cài đặt trước khi chạy.
PGP, OpenPGP và GnuPG
Tên | Là gì |
|---|---|
PGP | Phần mềm gốc do Phil Zimmermann phát hành năm 1991 |
OpenPGP | Tiêu chuẩn mở mô tả định dạng thông điệp, khóa và chữ ký |
GnuPG (gpg) | Chương trình mã nguồn mở tuân theo OpenPGP, dùng phổ biến nhất trên dòng lệnh |
Tên PGP thường được dùng chung cho cả ba. Zimmermann viết bài "Why I Wrote PGP" tháng 06/1991, so sánh email không mã hóa với bưu thiếp: ai cũng đọc được. Mã hóa giống phong bì, và nếu mọi người đều dùng phong bì, người dùng nó không còn nổi bật là đáng ngờ.
Cặp khóa hoạt động thế nào
Mỗi người có hai khóa liên kết với nhau về mặt toán học:
- Khóa công khai: đưa cho mọi người. Dùng để mã hóa gửi cho bạn và để kiểm tra chữ ký của bạn.
- Khóa riêng: giữ bí mật. Dùng để giải mã thư gửi cho bạn và để ký.
Ví dụ từng bước, Lan gửi thư mật cho Bình:
- Lan lấy khóa công khai của Bình.
- Phần mềm của Lan tạo ra một khóa phiên ngẫu nhiên dùng một lần, rồi mã hóa thư bằng khóa phiên đó.
- Khóa phiên được mã hóa tiếp bằng khóa công khai của Bình.
- Lan gửi cả hai phần (thư đã mã hóa và khóa phiên đã mã hóa).
- Bình dùng khóa riêng giải mã khóa phiên, rồi dùng khóa phiên giải mã thư.

RFC 4880 mô tả đúng thiết kế này: với mỗi đối tượng, người gửi tạo khóa phiên ngẫu nhiên, và theo RFC "mỗi khóa đối xứng chỉ dùng một lần cho một đối tượng". Cách làm hai tầng vì mã hóa đối xứng nhanh hơn nhiều khi xử lý dữ liệu lớn.
Chữ ký số: chứng minh ai gửi
Với chữ ký, chiều ngược lại:
- Lan tính một mã băm từ nội dung rồi ký mã băm đó bằng khóa riêng của mình.
- Bình nhận nội dung kèm chữ ký, tính lại mã băm và kiểm tra bằng khóa công khai của Lan.
- Nếu khớp, nội dung đúng là của người giữ khóa riêng và không bị sửa. Chỉ cần đổi một ký tự, chữ ký sẽ không khớp.
RFC 4880 liệt kê các dịch vụ của OpenPGP gồm bảo mật nội dung, quản lý khóa, xác thực và chữ ký số.
Tin khóa công khai của ai
Vấn đề còn lại là biết khóa công khai bạn có thật sự thuộc về người đó. Có hai cách:
- Dấu vân tay (fingerprint): chuỗi ngắn đại diện cho khóa. Bạn so với dấu vân tay mà người đó đăng ở nhiều nơi độc lập.
- Web of trust: mọi người ký xác nhận khóa của nhau. Bài của Douceur về Sybil attack cảnh báo cách này khó an toàn nếu không có nguồn xác thực gốc.
Cách làm: xác minh bản cài đặt
Bitcoin Core hướng dẫn quy trình sau, và nhiều dự án khác làm tương tự:
- Tải tệp cài đặt, tệp
SHA256SUMSvà tệp chữ kýSHA256SUMS.asc. - Tính mã SHA-256 của tệp cài đặt và so với giá trị trong
SHA256SUMS. Kết quả cuối phải là "OK". - Nhập khóa công khai của các nhà phát triển ký bản phát hành.
- Chạy
gpg --verify SHA256SUMS.asc SHA256SUMS. - Tìm dòng "Good signature", rồi so dấu vân tay hiển thị với dấu vân tay bạn đã có từ nguồn tin cậy.

Cảnh báo "not certified with a trusted signature" nghĩa là bạn chưa xác nhận dấu vân tay của người ký. Trang tải xuống nói bước này không bắt buộc nhưng rất nên làm, vì nó giúp phát hiện bản bị thay đổi, thứ có thể dẫn tới mất tiền. Một bản phần mềm ví giả là hình thức tấn công kiểu phishing.
Hạn chế cần biết
- Mất hoặc lộ khóa riêng: mất khóa thì không giải mã được thư cũ. Lộ khóa thì người khác giả được chữ ký của bạn.
- Siêu dữ liệu không được mã hóa: thường người gửi, người nhận và tiêu đề thư vẫn lộ.
- Lỗi trong phần mềm đọc thư: năm 05/2018, nhóm nghiên cứu công bố EFAIL, cách lợi dụng thư HTML để rò rỉ nội dung thư đã mã hóa. Khuyến nghị ngắn hạn của họ gồm giải mã trong ứng dụng riêng và tắt hiển thị HTML.
- Chuẩn đang đổi: RFC 9580 (2024) thay thế RFC 4880, thêm khóa phiên bản 6, Argon2, AEAD, X25519 và Ed25519.
Khi cần nhắn tin riêng tư hằng ngày, nhiều người chọn mã hóa đầu cuối (E2EE) trong ứng dụng nhắn tin vì dùng đơn giản hơn. Tổng quan an toàn tài sản có ở trang bảo mật tiền mã hóa.
Học tiếp trong khoá Crypto
Các bài học liên quan trong Khoá học Crypto của HODL.VN:
Câu hỏi thường gặp
PGP có phải là một ứng dụng không?
Không hẳn. PGP là phần mềm gốc, nhưng thường được dùng để chỉ cả hệ thống chuẩn OpenPGP. Chương trình phổ biến là GnuPG.
Khóa PGP có phải seed phrase của ví không?
Không. Đây là hai thứ khác nhau. Khóa PGP dùng để mã hóa và ký thông điệp, còn seed phrase dùng để khôi phục ví.
Nếu chỉ tải ví từ trang chính thức thì có cần xác minh không?
Nên làm nếu số tiền đáng kể. Trang giả, tài khoản bị chiếm hoặc mạng bị can thiệp đều có thể đưa bạn tới tệp bị thay.
Chữ ký PGP có chứng minh phần mềm không có lỗi không?
Không. Nó chỉ chứng minh tệp do người giữ khóa ký và không bị sửa sau đó. Chất lượng mã nguồn là chuyện khác.
Duyệt bởi Ban biên tập HODL.VN · Cập nhật 09/11/2026
Ứng dụng HODL
Tải app HODL
Bảng giá, cảnh báo giá và bài phân tích ngay trên điện thoại.