Bạn có file hoặc tin nhắn muốn giữ kín không? Để giữ chúng an toàn, bạn nên sử dụng các khóa mã hóa GPG. Nếu bạn đang chạy Linux, việc mã hóa các file bằng GPG rất dễ dàng, miễn là bạn đã cài đặt GnuPG.
Bài viết hôm nay sẽ chỉ cho bạn cách tạo các GPG key trong Linux chỉ bằng một vài lệnh terminal đơn giản.
Hướng dẫn tạo GPG key trong Linux
Cài đặt GnuPG
Bạn cần phải bắt đầu bằng cách cài đặt GnuPG trước. Đối với các bản phân phối dựa trên Debian hoặc Ubuntu, hãy mở một terminal và chạy:
sudo apt install gnupg
Đối với các bản phân phối Linux sử dụng DNF hoặc YUM (như Fedora), hãy chạy lệnh sau:
yum install gnupg
Hoặc là:
dnf install gnupg
Nếu bạn đang chạy Arch, hãy cài đặt GnuPG bằng lệnh sau:
pacman -S screen
Bạn cũng có thể tải xuống mã nguồn tại đây và tự biên dịch nó nếu bạn thích.
Tạo cặp GPG key
Khi GnuPG được cài đặt, bạn sẽ cần tạo cặp GPG key của riêng mình, bao gồm một private và một public key. Private key cho phép bạn giải mã hoặc mã hóa các file và tạo chữ ký (signature) bằng chính private key đó.
Public key mà bạn chia sẻ có thể được sử dụng để xác minh rằng, file được mã hóa thực sự đến từ bạn và được tạo bằng key của chính bạn. Public key cũng có thể được những người khác sử dụng để mã hóa các file cho bạn giải mã.
Để tạo cặp private và public key này, hãy mở terminal và nhập lệnh sau:
gpg --gen-key
Lệnh này sẽ bắt đầu tạo cặp private và public key. Bạn sẽ được yêu cầu nhập tên đầy đủ và địa chỉ email. Hãy thực hiện điều đó và nhấn Enter
.
Bạn sẽ được yêu cầu xác nhận lựa chọn của mình, chỉnh sửa hoặc thoát. Chọn tùy chọn bạn muốn và nhấn Enter
.
Trước khi key được tạo, bạn sẽ cần cung cấp cụm mật khẩu an toàn. Nhập cụm mật khẩu vào và nhấn Enter
.
Có thể mất chút thời gian để key của bạn được tạo. Sau khi thực hiện xong, bạn sẽ thấy thông báo xác nhận.
Thu hồi key
Nếu vì lý do nào đó, bạn cần thu hồi key của mình, hãy chạy lệnh sau:
gpg --output revoke.asc --gen-revoke uid
uid là User ID. Ví dụ, bạn có thể sử dụng địa chỉ email của mình ở đây. Điều này sẽ tạo ra một chứng chỉ thu hồi (bạn sẽ cần cung cấp mật khẩu để thực hiện điều này). Bạn cần đưa ra một lý do, chọn một trong các tùy chọn được đánh số từ 0 đến 3.
Bạn có thể làm điều này ngay lập tức sau khi bạn tạo key của mình. Chứng chỉ của bạn sẽ được xuất thành một file - trong trường hợp này là file có tên “revoke.asc”.
Xuất public key vào một file
Để chia sẻ file hoặc tin nhắn của bạn với người khác, bạn sẽ cần chia sẻ public key của mình, nghĩa là xuất nó từ máy tính. Để xuất public key của bạn sang một file, hãy mở một terminal và nhập:
gpg --armor --export your@emailaccount.com > key.asc
Nếu bạn muốn key ở định dạng có thể đọc được (ví dụ: ASCII trong file văn bản), hãy chạy lệnh sau:
gpg --armor --output key.txt --export your@emailaccount.com
Sau đó, bạn có thể mở file này bằng bất kỳ trình soạn thảo văn bản tiêu chuẩn nào.
Xuất public key sang keyserver
Bạn có thể làm cho public key của mình dễ dàng chia sẻ và tìm kiếm, bằng cách đăng ký nó vào keyserver, một kho lưu trữ key công khai. Ví dụ, bạn có thể sử dụng kho lưu trữ MIT (link tham khảo: https://pgp.mit.edu/) để đồng bộ hóa key của mình với các kho lưu trữ khác.
Đầu tiên, tìm Key ID bằng cách mở terminal và nhập:
gpg --fingerprint
Xác định vị trí key và ghi chú 8 chữ số cuối của User ID (fingerprint của User ID). Ví dụ: B852 085C.
Sử dụng User ID 8 chữ số tìm được và nhập thông tin sau (thay thế B852 085C bằng ID của riêng bạn):
gpg --keyserver gpg.mit.edu --send-key B852085C
Public key sau đó sẽ được đăng ký với keyserver, nơi người khác có thể tìm và nhập nó. Hãy nhớ rằng, không có vấn đề gì khi chia sẻ public key. Nó không thể được sử dụng để giải mã các file hoặc tin nhắn nhưng có thể được sử dụng để mã hóa chúng trước khi gửi cho bạn và chỉ bạn mới có thể giải mã chúng.
Mã hóa và giải mã file
Để mã hóa một file, hãy mở một terminal và chạy lệnh sau:
gpg --encrypt --recipient 'your@emailaccount.com' --output encryptedfile.txt.enc originalfile.txt
Bạn có thể thay thế email người nhận bằng key fingerprint nếu thích. Thay thế tên file đầu ra và đầu vào bằng các file bạn sẽ mã hóa, cũng như file đầu ra của riêng bạn.
Để giải mã file, hãy chạy lệnh sau:
gpg --decrypt --output decrypted.txt encryptedfile.txt.enc
Bạn sẽ được yêu cầu cung cấp cụm mật khẩu để cho phép truy cập vào private key và giải mã file. Sau đó, nội dung được giải mã sẽ được xuất dưới dạng file, liệt kê dưới flag --output.
Hãy yên tâm với mã hóa GPG!
Trong một thế giới lý tưởng, bạn sẽ không cần phải lo lắng về việc mã hóa các file nhạy cảm của mình. Tuy nhiên, thế giới thực không hề lý tưởng chút nào. Nếu bạn lo lắng về những con mắt tò mò, mã hóa GPG sẽ giữ cho các file, tin nhắn và email của bạn an toàn.
Nếu bạn sử dụng Windows, bạn có thể mã hóa các file của mình bằng Powershell hoặc Gpg4win.
Nếu bạn có mẹo mã hóa hay muốn chia sẻ với mọi người, hãy để lại ý kiến trong phần bình luận bên dưới nhé!