Cách bảo vệ file tài liệu quan trọng bằng mã hóa GPG/PGP
Để bảo vệ file tài liệu quan trọng bằng GPG, bạn có hai cách: mã hóa đối xứng bằng một mật khẩu (lệnh gpg -c) khi chỉ mình bạn cần mở file, hoặc mã hóa bằng khóa công khai của người nhận (lệnh gpg -e) khi cần gửi file cho người khác mà không phải chia sẻ mật khẩu. Ngoài mã hóa, GPG còn cho phép ký số để người nhận kiểm tra file không bị sửa đổi. Bài viết hướng dẫn cả trên dòng lệnh và giao diện đồ họa, kèm cách quản lý khóa để không tự khóa mình ra ngoài.
GPG, PGP và OpenPGP là gì
PGP (Pretty Good Privacy) là phần mềm mã hóa ra đời đầu thập niên 1990. Định dạng của nó được chuẩn hóa thành OpenPGP. GnuPG, thường gọi là GPG, là bản triển khai mã nguồn mở miễn phí của chuẩn này, có sẵn trên hầu hết bản Linux và được đóng gói cho Windows (Gpg4win, kèm giao diện Kleopatra) và macOS (GPG Suite). Vì cùng chuẩn, file mã hóa bằng công cụ này có thể giải mã bằng công cụ khác.
Bài này tập trung vào file và tài liệu. Nếu bạn cần mã hóa email, hãy xem hướng dẫn sử dụng PGP để mã hóa email cá nhân.
Chọn kiểu mã hóa phù hợp
| Tình huống | Kiểu mã hóa | Lệnh cơ bản |
|---|---|---|
| Lưu file nhạy cảm cho riêng mình | Đối xứng (mật khẩu) | gpg -c tenfile |
| Gửi file cho đồng nghiệp, đối tác | Bất đối xứng (khóa công khai người nhận) | gpg -e -r email_nguoi_nhan tenfile |
| Gửi file và chứng minh mình là người gửi | Mã hóa kèm ký | gpg -e -s -r email_nguoi_nhan tenfile |
| Công bố file, cho người khác kiểm tra tính toàn vẹn | Chỉ ký tách rời | gpg --detach-sign tenfile |
Mã hóa đối xứng: nhanh và đơn giản
- Mở terminal tại thư mục chứa file.
- Chạy gpg -c baocao.pdf. GPG hỏi mật khẩu hai lần.
- Kết quả là file baocao.pdf.gpg. Thêm tùy chọn --armor nếu muốn file dạng văn bản (.asc) để dán vào email hay ghi chú.
- Kiểm tra giải mã bằng gpg -d baocao.pdf.gpg > baocao-kiemtra.pdf hoặc gpg -o baocao-kiemtra.pdf -d baocao.pdf.gpg.
- Khi chắc chắn giải mã được, xóa file gốc nếu không cần bản rõ.
Phiên bản GPG hiện đại mặc định dùng AES và có cơ chế bảo vệ toàn vẹn, nên file bị sửa sẽ báo lỗi khi giải mã. Sức mạnh thực sự nằm ở mật khẩu: hãy dùng cụm từ dài, ngẫu nhiên, lưu trong trình quản lý mật khẩu.
Mã hóa bằng khóa công khai
Tạo cặp khóa của bạn
Chạy gpg --full-generate-key, chọn loại khóa mặc định (các bản mới dùng mật mã đường cong elliptic), đặt thời hạn (ví dụ hai năm, có thể gia hạn), nhập tên và email, sau đó đặt cụm mật khẩu bảo vệ khóa riêng. Trên Kleopatra, chọn File > New Key Pair và làm theo trình hướng dẫn.
Trao đổi khóa công khai
- Xuất khóa công khai: gpg --armor --export email_cua_ban > khoacongkhai.asc, rồi gửi cho người cần gửi file cho bạn.
- Nhập khóa của người khác: gpg --import khoa_nguoi_nhan.asc.
- Xác minh dấu vân tay khóa qua một kênh khác như gọi điện, gặp trực tiếp: gpg --fingerprint email_nguoi_nhan. Đây là bước chống giả mạo quan trọng nhất mà nhiều người bỏ qua.
Mã hóa và giải mã
Mã hóa: gpg -e -r email_nguoi_nhan hopdong.docx. Có thể thêm nhiều tùy chọn -r cho nhiều người nhận, và nên thêm chính bạn để bạn cũng mở được file đã mã hóa. Người nhận giải mã bằng gpg -d và cụm mật khẩu khóa riêng của họ.
Ký số: chứng minh file không bị sửa
Chữ ký số dùng khóa riêng của bạn để ký giá trị băm của file. Người nhận dùng khóa công khai của bạn để kiểm tra: gpg --verify baocao.pdf.sig baocao.pdf. Nếu chỉ một byte thay đổi, việc kiểm tra thất bại. Nguyên lý dựa trên hàm băm mật mã, được giải thích trong bài hàm băm và vai trò trong xác thực dữ liệu. Đây cũng là cách các dự án phần mềm mã nguồn mở cho phép người dùng kiểm tra bản tải về.
Mã hóa cả thư mục
GPG làm việc với từng file. Để bảo vệ thư mục, hãy nén trước rồi mã hóa: tar czf - hoso | gpg -c -o hoso.tar.gz.gpg. Trên Windows, có thể nén bằng công cụ nén rồi mã hóa file nén bằng Kleopatra. Nếu cần bảo vệ toàn bộ ổ đĩa hoặc USB, giải pháp mã hóa toàn ổ phù hợp hơn, xem bài mã hóa USB bằng BitLocker.
Quản lý khóa để không mất dữ liệu
- Sao lưu khóa riêng: gpg --armor --export-secret-keys email > khoarieng.asc, lưu vào USB mã hóa cất nơi an toàn, không lưu trên dịch vụ đám mây không mã hóa.
- Tạo chứng chỉ thu hồi: GPG thường tự tạo khi sinh khóa. Cất giữ để công bố nếu khóa bị lộ.
- Đừng quên cụm mật khẩu: không có nó, khóa riêng vô dụng và file mã hóa không thể mở lại.
- Gia hạn trước khi hết hạn: gpg --edit-key rồi dùng lệnh expire.
Dùng GPG qua giao diện đồ họa
Nếu không quen dòng lệnh, Kleopatra trên Windows và GPG Suite trên macOS cho phép làm mọi thao tác trên bằng chuột. Thường bạn chỉ cần nhấp chuột phải vào file, chọn mục ký và mã hóa, rồi chọn người nhận từ danh sách khóa đã nhập hoặc chọn mã hóa bằng mật khẩu. Giao diện cũng hiển thị rõ trạng thái xác minh của từng khóa, giúp bạn nhận ra khi đang dùng một khóa chưa được kiểm tra dấu vân tay. Với nhóm làm việc nhỏ, nên thống nhất một công cụ chung và soạn một trang hướng dẫn nội bộ ngắn để mọi người thao tác giống nhau.
Những sai lầm thường gặp
- Để lại file gốc chưa mã hóa trong thư mục Tải về hoặc thùng rác.
- Gửi mật khẩu file mã hóa đối xứng qua cùng kênh với file, chẳng hạn cùng một email.
- Nhập khóa công khai từ nguồn không xác minh.
- Đặt tên file mã hóa tiết lộ nội dung, ví dụ "luong-nhan-vien-2026.xlsx.gpg". Tên file không được mã hóa.
- Không thử giải mã trước khi xóa bản gốc.
GPG có đường cong học tập ban đầu, nhưng sau vài lần sử dụng, mã hóa một file chỉ mất vài giây. Đó là cái giá rất nhỏ để giữ an toàn cho hợp đồng, hồ sơ cá nhân hay dữ liệu khách hàng.
Câu hỏi thường gặp
GPG có miễn phí không?
Có. GnuPG là phần mềm mã nguồn mở miễn phí. Gpg4win cho Windows cũng miễn phí; GPG Suite cho macOS có phần miễn phí, một số tính năng tích hợp thư cần trả phí.
Quên mật khẩu file mã hóa GPG có mở được không?
Không có cách khôi phục chính thống. Với mật khẩu đủ mạnh, việc thử đoán là không khả thi. Vì vậy hãy lưu mật khẩu trong trình quản lý mật khẩu.
File mã hóa GPG có mở được trên điện thoại không?
Có. Trên Android có các ứng dụng hỗ trợ OpenPGP; trên iOS cũng có ứng dụng tương thích. Bạn cần nhập khóa riêng vào ứng dụng nếu file được mã hóa bằng khóa công khai.
Nên chọn GPG hay nén file có mật khẩu?
Định dạng nén hiện đại với mã hóa AES cũng an toàn nếu mật khẩu mạnh, nhưng GPG hỗ trợ thêm mã hóa bằng khóa công khai và ký số, phù hợp hơn khi trao đổi với người khác.
Bài liên quan

Bảo mật dữ liệu trên đám mây: Mã hóa ở trạng thái nghỉ và chuyển động
Giải thích mã hóa dữ liệu đám mây ở trạng thái nghỉ và khi chuyển động, mã hóa phong bì, các mô hình quản lý khóa KMS, HSM và danh sách việc cho doanh nghiệp.

Hàm băm Cryptographic Hash Functions: Vai trò trong xác thực dữ liệu
Hàm băm mật mã hoạt động thế nào, ba tính chất bảo mật cốt lõi, so sánh MD5, SHA-1, SHA-2, SHA-3 và ứng dụng trong chữ ký số, lưu mật khẩu, kiểm tra tệp.

Hiểu rõ về chứng chỉ SSL/TLS và cách thức hoạt động trên Website
Giải thích chứng chỉ SSL/TLS: nội dung chứng chỉ, chuỗi tin cậy, bắt tay TLS 1.3, các loại DV, OV, EV, ý nghĩa ổ khóa và cấu hình HTTPS đúng cho quản trị web.

Hướng dẫn sử dụng PGP để mã hóa email cá nhân
Hướng dẫn mã hóa email bằng PGP với Thunderbird, Mailvelope cho Gmail và dịch vụ tích hợp sẵn: tạo khóa, trao đổi, xác minh khóa và các giới hạn cần biết.