Công cụ mã hóa PGP (OpenPGP)
Mã hóa thông điệp cho một hoặc nhiều khóa công khai OpenPGP, giải mã bằng khóa bí mật, hoặc tạo cặp khóa Curve25519/RSA. Dạng ASCII armor, chạy trong trình duyệt.
Dán một hoặc nhiều khối khóa công khai dạng ASCII armor. Mọi người nhận trong danh sách đều giải mã được thông điệp.
Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.
Mã hóa PGP là gì?
Mã hóa văn bản cho khóa công khai OpenPGP của một hoặc nhiều người nhận và trả về một khối ASCII armor BEGIN PGP MESSAGE mà GnuPG, Kleopatra, Thunderbird hoặc ProtonMail giải mã được. Trang cũng giải mã thông điệp bằng khóa bí mật của bạn và tạo cặp khóa mới để thử nghiệm, dùng thư viện openpgp.js.
Cách sử dụng Mã hóa PGP
- Ở tab Mã hóa, dán một hoặc nhiều khóa công khai của người nhận (
BEGIN PGP PUBLIC KEY BLOCK); User ID và dấu vân tay được hiển thị để bạn kiểm tra. - Viết Thông điệp và bấm Mã hóa, rồi sao chép hoặc tải xuống thông điệp đã armor.
- Để đọc thông điệp, mở Giải mã, dán khóa bí mật, mật khẩu của khóa (nếu có) và thông điệp, rồi bấm Giải mã.
- Chưa có khóa? Dùng Tạo cặp khóa, nhập tên hoặc email và mật khẩu tùy chọn, rồi bấm Dùng khóa công khai để mã hóa.
Ví dụ
Thông điệp "Hello PGP" được mã hóa cho khóa công khai Curve25519 của "Test Recipient <test@example.com>"
-----BEGIN PGP MESSAGE----- … -----END PGP MESSAGE-----
Thông điệp armor khác nhau mỗi lần chạy vì dùng khóa phiên ngẫu nhiên mới; giải mã nó sẽ trả về "Hello PGP".
Khi nào nên dùng Mã hóa PGP
Dùng để gửi thông điệp bí mật cho người công bố khóa PGP, kiểm thử tích hợp PGP hoặc dùng thử OpenPGP mà không cần cài phần mềm. Để dùng hằng ngày, hãy giữ khóa bí mật trong một client cục bộ như GnuPG; một trang web không phải nơi phù hợp cho khóa bí mật dài hạn. Công cụ không ký thông điệp hay xác minh chữ ký.
Mã hóa PGP hoạt động như thế nào
OpenPGP (RFC 4880/9580) dùng mã hóa lai: một khóa phiên ngẫu nhiên mã hóa thông điệp bằng AES, và khóa phiên đó được mã hóa cho subkey mã hóa của từng người nhận (ECDH trên Curve25519 hoặc RSA). Các gói được armor bằng Base64 kèm checksum CRC. Khi giải mã, khóa bí mật được mở bằng mật khẩu của nó, khóa phiên được khôi phục và gói dữ liệu có bảo vệ toàn vẹn được xác minh. Việc tạo khóa tạo ra một khóa ký chính và một subkey mã hóa (Curve25519 hoặc RSA-4096) gắn với User ID của bạn.
Các Trường Hợp Sử Dụng Phổ Biến
- Mã hóa thông điệp cho khóa PGP công bố của đầu mối bảo mật (security.txt)
- Kiểm thử thiết lập GnuPG trên máy chủ có giải mã được kết quả OpenPGP.js không
- Mã hóa cùng một thông điệp cho nhiều người nhận cùng lúc
- Tạo cặp khóa dùng một lần cho demo và bài hướng dẫn
Lưu Ý Bảo Mật
Mọi thao tác mã hóa, giải mã và tạo khóa đều diễn ra trong trình duyệt; không có gì được tải lên. Khóa bí mật được tạo không được lưu lại – hãy tự lưu chúng – và tránh dán khóa bí mật dài hạn vào bất kỳ trang web nào.
Câu Hỏi Thường Gặp
GnuPG có giải mã được kết quả không?
Có. Lưu thành message.asc và chạy gpg --decrypt message.asc với khóa của người nhận có trong keyring.
Nên tạo loại khóa nào?
ECC Curve25519 nhanh, gọn và được GnuPG 2.1+ cùng mọi client hiện đại hỗ trợ. RSA 4096 tương thích tối đa với phần mềm rất cũ nhưng chậm hơn.
Thông điệp có được ký không?
Không, nó chỉ được mã hóa. Người nhận không biết ai đã gửi; hãy ký bằng client của riêng bạn nếu tính xác thực quan trọng.
Nếu tôi quên mật khẩu của khóa bí mật thì sao?
Khóa không thể dùng được nữa và các thông điệp mã hóa cho nó không thể đọc. Không có cách khôi phục.