
Bảo vệ quyền riêng tư của bạn với Linux gpg
chỉ huy. Sử dụng mã hóa đẳng cấp thế giới để giữ bí mật của bạn an toàn. Chúng tôi sẽ hướng dẫn bạn cách sử dụng gpg để làm việc với các khóa, mã hóa tệp và giải mã chúng.
GnuPrivacy Guard (GPG) cho phép bạn mã hóa các tệp một cách an toàn để chỉ người nhận dự kiến mới có thể giải mã chúng. Cụ thể, GPG tuân thủ tiêu chuẩn OpenPGP. Nó được mô phỏng theo một chương trình có tên là Pretty Good Privacy (PGP). PGP được viết vào năm 1991 bởi Phil Zimmerman.
GPG dựa trên ý tưởng về hai khóa mã hóa cho mỗi người. Mỗi người có một riêng tư chìa khóa và một công cộng Chìa khóa. Khóa công khai có thể giải mã thứ gì đó đã được mã hóa bằng khóa riêng tư.
Để gửi tệp một cách an toàn, bạn mã hóa tệp đó bằng khóa riêng tư của mình và khóa công khai của người nhận. Để giải mã tệp, họ cần khóa riêng của mình và khóa công khai của bạn.
Từ đó bạn sẽ thấy rằng các khóa công khai phải được chia sẻ. Bạn cần có khóa công khai của người nhận để mã hóa tệp và người nhận cần khóa công khai của bạn để giải mã. Không có gì nguy hiểm khi công khai các khóa công khai của bạn — công khai. Trên thực tế, có những Máy chủ Khóa Công khai cho chính mục đích đó, như chúng ta sẽ thấy. Các khóa cá nhân phải được giữ kín. Nếu khóa công khai của bạn nằm trong miền công khai, thì khóa cá nhân của bạn phải được giữ bí mật và an toàn.
Có nhiều bước liên quan đến việc thiết lập GPG hơn là sử dụng nó. Rất may, bạn thường chỉ cần thiết lập nó một lần.
Tạo chìa khóa của bạn
Các gpg
lệnh đã được cài đặt trên tất cả các bản phân phối Linux đã được kiểm tra, bao gồm Ubuntu, Fedora và Manjaro.
Bạn không cần phải sử dụng GPG với email. Bạn có thể mã hóa các tệp và cung cấp chúng để tải xuống hoặc chuyển chúng trực tiếp cho người nhận. Tuy nhiên, bạn cần liên kết địa chỉ email với các khóa bạn tạo, vì vậy hãy chọn địa chỉ email bạn sẽ sử dụng.
Đây là lệnh để tạo khóa của bạn. Các --full-generate-key
tùy chọn tạo khóa của bạn trong một phiên tương tác trong cửa sổ đầu cuối của bạn. Bạn cũng sẽ được nhắc nhập cụm mật khẩu. Đảm bảo bạn nhớ cụm mật khẩu là gì. Ba hoặc bốn từ đơn giản được kết hợp với nhau bằng dấu chấm câu là một mô hình tốt và mạnh mẽ cho mật khẩu và cụm mật khẩu.
gpg --full-generate-key
Bạn sẽ được yêu cầu chọn một loại mã hóa từ menu. Trừ khi bạn có lý do chính đáng để không, hãy nhập 1
và nhấn Enter.
Bạn phải chọn độ dài bit cho các khóa mã hóa. Nhấn Enter để chấp nhận giá trị mặc định.
Bạn cần chỉ định thời gian sử dụng của khóa. Nếu bạn đang thử nghiệm hệ thống, hãy nhập một khoảng thời gian ngắn như 5
trong năm ngày. Nếu bạn định giữ khóa này, hãy nhập thời hạn dài hơn, chẳng hạn như 1 năm trong một năm. Khóa sẽ có thời hạn sử dụng 12 tháng và vì vậy sẽ cần gia hạn sau một năm. Xác nhận lựa chọn của bạn với Y
.
Bạn phải nhập tên và địa chỉ email của bạn. Bạn có thể thêm một bình luận nếu bạn muốn.
Bạn sẽ được nhắc nhập cụm mật khẩu của mình. Bạn sẽ cần cụm mật khẩu bất cứ khi nào bạn làm việc với các khóa của mình, vì vậy hãy đảm bảo rằng bạn biết nó là gì.
Nhấn vào OK
khi bạn đã nhập cụm mật khẩu của mình. Bạn sẽ thấy cửa sổ này khi làm việc với gpg
, vì vậy hãy đảm bảo rằng bạn nhớ cụm mật khẩu của mình.
Quá trình tạo khóa sẽ diễn ra và bạn sẽ được quay lại dấu nhắc lệnh.
Tạo chứng chỉ thu hồi
Nếu khóa riêng tư của bạn bị người khác biết, bạn sẽ cần tách các khóa cũ khỏi danh tính của mình để có thể tạo khóa mới. Để làm điều này, bạn sẽ yêu cầu chứng chỉ thu hồi. Chúng tôi sẽ làm điều này ngay bây giờ và cất giữ nó ở một nơi an toàn.
Các --output
phải theo sau tùy chọn là tên tệp của chứng chỉ bạn muốn tạo. Các --gen-revoke
nguyên nhân tùy chọn gpg
để tạo chứng chỉ thu hồi. Bạn phải cung cấp địa chỉ email mà bạn đã sử dụng khi tạo khóa.
gpg --output ~/revocation.crt --gen-revoke dave-geek@protonmail.com
Bạn sẽ được yêu cầu xác nhận bạn muốn tạo chứng chỉ. nhấn Y
và nhấn Enter. Bạn sẽ được hỏi lý do bạn tạo chứng chỉ. Vì chúng tôi đang làm điều này trước thời hạn, chúng tôi không biết chắc chắn. nhấn 1
như một dự đoán hợp lý và nhấn Enter.
Bạn có thể nhập một mô tả nếu bạn muốn. Nhấn Enter hai lần để kết thúc mô tả của bạn.
Bạn sẽ được yêu cầu xác nhận cài đặt của mình, nhấn Y
và nhấn Enter.
Chứng chỉ sẽ được tạo. Bạn sẽ thấy một thông báo củng cố sự cần thiết phải giữ chứng chỉ này an toàn.
Nó đề cập đến một người tên là Mallory. Các cuộc thảo luận về mật mã từ lâu đã sử dụng Bob và Alice là hai người giao tiếp. Có các nhân vật phụ khác. Eve là kẻ nghe trộm, Mallory là kẻ tấn công ác ý. Tất cả những gì chúng ta cần biết là chúng ta phải giữ chứng chỉ an toàn và bảo mật.
Tối thiểu, hãy xóa tất cả các quyền ngoài của chúng tôi khỏi chứng chỉ.
chmod 600 ~/revocation.crt
Hãy kiểm tra với ls
để xem quyền bây giờ là gì:
ls -l
Thật hoàn hảo. Không ai ngoài chủ sở hữu tệp — chúng tôi — có thể làm bất cứ điều gì với chứng chỉ.
Nhập khóa công khai của người khác
Để mã hóa một tin nhắn mà người khác có thể giải mã, chúng ta phải có khóa công khai của họ.
Nếu bạn đã được cung cấp khóa của họ trong một tệp, bạn có thể nhập khóa đó bằng lệnh sau. Trong ví dụ này, tệp khóa được gọi là “mary-geek.key”.
gpg --import mary-geek.key
Khóa được nhập và bạn sẽ được hiển thị tên và địa chỉ email được liên kết với khóa đó. Rõ ràng, điều đó phải phù hợp với người mà bạn nhận được.
Cũng có khả năng người mà bạn cần khóa đã tải khóa của họ lên máy chủ khóa công khai. Các máy chủ này lưu trữ khóa công khai của mọi người từ khắp nơi trên thế giới. Các máy chủ chính đồng bộ hóa với nhau theo định kỳ để các khóa có sẵn trên toàn cầu.
Máy chủ khóa công khai MIT là máy chủ khóa phổ biến và thường xuyên được đồng bộ hóa, vì vậy việc tìm kiếm ở đó sẽ thành công. Nếu ai đó chỉ mới tải lên một khóa gần đây, thì có thể mất vài ngày để khóa xuất hiện.
Các --keyserver
phải theo sau tùy chọn là tên của máy chủ quan trọng mà bạn muốn tìm kiếm. Các --search-keys
phải theo sau tùy chọn là tên của người bạn đang tìm kiếm hoặc địa chỉ email của họ. Chúng tôi sẽ sử dụng địa chỉ email:
gpg --keyserver pgp.mit.edu --search-keys mary-geek@protonmail.com
Các trận đấu được liệt kê cho bạn và được đánh số. Để nhập một số, hãy nhập số và nhấn Enter. Trong trường hợp này, có một kết quả khớp duy nhất, vì vậy chúng tôi nhập 1
và nhấn Enter.
Khóa được nhập và chúng tôi được hiển thị tên và địa chỉ email được liên kết với khóa đó.
Xác minh và ký khóa
Nếu bạn đã được ai đó quen biết với bạn giao một tệp khóa công khai, bạn có thể nói rằng nó thuộc về người đó một cách an toàn. Nếu bạn đã tải xuống từ máy chủ khóa công khai, bạn có thể cảm thấy cần phải xác minh rằng khóa đó thuộc về người mà nó muốn.
Các --fingerprint
nguyên nhân tùy chọn gpg
để tạo một chuỗi ngắn gồm mười bộ bốn ký tự thập lục phân. Bạn có thể yêu cầu người đó gửi cho bạn dấu vân tay của chìa khóa của họ.
Sau đó, bạn có thể sử dụng --fingerprint
tùy chọn để tạo cùng một chuỗi dấu vân tay của các ký tự thập lục phân và so sánh chúng. Nếu chúng khớp, bạn biết rằng chìa khóa thuộc về người đó.
gpg --fingerprint mary-geek@protonmail.com
Dấu vân tay được tạo ra.
Khi bạn hài lòng rằng chìa khóa là chính hãng và thuộc sở hữu của người mà nó được cho là có liên quan, bạn có thể ký vào chìa khóa của họ.
Nếu bạn không làm điều này, bạn vẫn có thể sử dụng nó để mã hóa và giải mã các tin nhắn từ và đến người đó. Nhưng gpg
sẽ hỏi bạn mọi lúc bạn có muốn tiếp tục hay không vì khóa chưa được ký. Chúng tôi sẽ sử dụng tên phù hợp --sign-key
và cung cấp địa chỉ email của người đó, để gpg
biết phím nào để ký.
gpg --sign-key mary-geek@protonmail.com
Bạn sẽ thấy thông tin về chìa khóa và người, đồng thời sẽ được yêu cầu xác minh rằng bạn thực sự muốn ký vào chìa khóa. nhấn Y
và nhấn Enter để ký khóa.
Cách chia sẻ khóa công khai của bạn
Để chia sẻ khóa của bạn dưới dạng tệp, chúng tôi cần xuất khóa đó từ gpg
cửa hàng chìa khóa địa phương. Để làm điều này, chúng tôi sẽ sử dụng --export
, phải theo sau là địa chỉ email mà bạn đã sử dụng để tạo khóa. Các --output
phải theo sau tùy chọn là tên của tệp bạn muốn xuất khóa vào. Các --armor
tùy chọn nói với gpg
để tạo đầu ra áo giáp ASCII thay vì tệp nhị phân.
gpg --output ~/dave-geek.key --armor --export dave-geek@protonmail.com
Chúng ta có thể xem bên trong tệp khóa với less
.
less dave-geek.key
Chìa khóa được thể hiện trong tất cả vinh quang của nó:
Bạn cũng có thể chia sẻ khóa công khai của mình trên máy chủ khóa công khai. Các --send-keys
tùy chọn gửi chìa khóa đến máy chủ. Các --keyserver
phải theo sau tùy chọn là địa chỉ web của máy chủ khóa công khai. Để xác định khóa nào cần gửi, dấu vân tay cho khóa phải được cung cấp trên dòng lệnh. Lưu ý rằng không có khoảng cách giữa các bộ bốn ký tự.
(Bạn có thể xem dấu vân tay cho chìa khóa của mình bằng cách sử dụng --fingerprint
Lựa chọn.)
gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4
Bạn sẽ nhận được xác nhận rằng khóa đã được gửi.
Mã hóa FIles
Cuối cùng, chúng tôi đã sẵn sàng mã hóa một tệp và gửi nó cho Mary. Tệp có tên là Raven.txt.
Các --encrypt
tùy chọn nói với gpg
để mã hóa tệp và --sign
tùy chọn yêu cầu nó ký vào tệp với thông tin chi tiết của bạn. Các --armor
tùy chọn yêu cầu gpg tạo tệp ASCII. Các -r
Tùy chọn (người nhận) phải được theo sau bởi địa chỉ email của người mà bạn đang gửi tệp.
gpg --encrypt --sign --armor -r mary-geek@protonmail.com
Tệp được tạo với cùng tên với tên gốc, nhưng có thêm “.asc” vào tên tệp. Hãy xem bên trong nó.
less Raven.txt.asc
Tệp hoàn toàn không đọc được và chỉ có thể được giải mã bởi người có khóa công khai của bạn và khóa cá nhân của Mary. Người duy nhất có cả hai điều đó phải là Mary.
Giờ đây, chúng tôi có thể gửi tệp cho Mary mà tin chắc rằng không ai khác có thể giải mã nó.
Giải mã tệp
Mary đã gửi thư trả lời. Nó nằm trong một tệp được mã hóa có tên là coded.asc. Chúng tôi có thể giải mã nó rất dễ dàng bằng cách sử dụng --decrypt
Lựa chọn. Chúng tôi sẽ chuyển hướng đầu ra thành một tệp khác có tên là trơn.txt.
Lưu ý rằng chúng ta không cần phải nói gpg
tập tin đến từ ai. Nó có thể giải quyết vấn đề đó từ nội dung được mã hóa của tệp.
gpg --decrypt coded.asc > plain.txt
Chúng ta hãy xem xét tập tin trơn.txt:
less plain.txt
Tệp đã được giải mã thành công cho chúng tôi.
Làm mới chìa khóa của bạn
Định kỳ, bạn có thể hỏi gpg
để kiểm tra các khóa mà nó có với máy chủ khóa công khai và để làm mới bất kỳ khóa nào đã thay đổi. Bạn có thể làm điều này vài tháng một lần hoặc khi bạn nhận được chìa khóa từ một liên hệ mới.
Các --refresh-keys
nguyên nhân tùy chọn gpg
để thực hiện kiểm tra. Các --keyserver
phải theo sau tùy chọn của máy chủ chính mà bạn chọn. Khi các khóa đã được đồng bộ hóa giữa các máy chủ khóa công khai, bạn chọn cái nào không quan trọng.
gpg --keyserver pgp.mit.edu --refresh-keys
gpg
phản hồi bằng cách liệt kê các khóa mà nó kiểm tra và cho bạn biết nếu khóa nào đã thay đổi và được cập nhật.
Quyền riêng tư là một chủ đề nóng
Sự riêng tư không bao giờ là xa so với tin tức những ngày này. Cho dù lý do của bạn là muốn giữ thông tin của bạn an toàn và riêng tư, gpg
cung cấp một phương tiện đơn giản để áp dụng mã hóa cực kỳ mạnh mẽ cho các tệp và thông tin liên lạc của bạn.
Có nhiều cách khác để sử dụng gpg
. Bạn có thể tải về một plugin cho Thunderbird có tên là Enigmail. Nó móc ngay vào gpg
để cho phép bạn mã hóa thư email từ bên trong Thunderbird.