Quyền riêng tư là một chủ đề ngày càng nóng. Trên Linux, gpg
lệnh cho phép người dùng mã hóa tệp bằng mật mã khóa công khai, trong trường hợp đó, việc mất khóa mã hóa của bạn sẽ là một thảm họa. Đây là cách sao lưu chúng.
Bảo vệ quyền riêng tư của OpenPGP và GNU
Một trong những ưu điểm của tệp điện tử so với bản cứng là bạn có thể mã hóa các tệp điện tử để chỉ những người được ủy quyền mới có thể truy cập chúng. Nếu họ rơi vào tay kẻ xấu, điều đó không thành vấn đề. Chỉ bạn và người nhận dự định mới có thể truy cập vào nội dung của các tập tin.
Tiêu chuẩn OpenPGP mô tả một hệ thống mã hóa được gọi là mã hóa khóa công khai. Việc triển khai GNU Privacy Guard của tiêu chuẩn đó dẫn đến gpg
một công cụ dòng lệnh để mã hóa và giải mã theo tiêu chuẩn.
Tiêu chuẩn phác thảo sơ đồ mã hóa khóa công khai. Mặc dù nó được gọi là “khóa công khai”, nhưng có hai khóa liên quan. Mỗi người có một khóa công khai và một khóa riêng. Khóa riêng tư, như tên cho thấy, không bao giờ được tiết lộ cũng như không được truyền cho bất kỳ ai khác. Khóa công khai có thể được chia sẻ một cách an toàn. trên thực tế, các khóa công khai phải được chia sẻ để chương trình hoạt động.
Khi một tệp được mã hóa, khóa riêng của người gửi và khóa chung của người nhận được sử dụng trong quá trình mã hóa. Các tập tin sau đó có thể được gửi đến người nhận. Họ sử dụng khóa riêng của mình và khóa chung của người gửi để giải mã tệp.
Khóa công khai và khóa riêng được tạo dưới dạng một cặp phù hợp và được gắn với một danh tính cụ thể. Ngay cả khi bạn không truyền tài liệu nhạy cảm cho người khác, bạn có thể sử dụng chúng trên máy tính của mình để thêm một lớp bảo vệ bổ sung cho các tài liệu riêng tư.
Việc mã hóa sử dụng các thuật toán và chức năng mã hóa đẳng cấp thế giới. Nếu không có khóa công khai và khóa riêng thích hợp, bạn không thể truy cập vào các tệp được mã hóa. Và, nếu bạn bị mất chìa khóa, điều đó cũng xảy ra với bạn. Tạo khóa mới sẽ không giúp được gì. Để giải mã các tệp của bạn, bạn cần các khóa đã được sử dụng trong quá trình mã hóa.
Không cần phải nói, việc sao lưu các khóa của bạn là vô cùng quan trọng, cũng như biết cách khôi phục chúng. Đây là cách để hoàn thành các nhiệm vụ này.
Thư mục .gnupg
Các khóa của bạn được lưu trữ trong một thư mục có tên “.gnupg” trong thư mục chính của bạn. Thư mục này cũng sẽ lưu trữ khóa công khai của bất kỳ ai đã gửi các tệp được mã hóa cho bạn. Khi bạn nhập khóa công khai của chúng, chúng sẽ được thêm vào tệp cơ sở dữ liệu được lập chỉ mục trong thư mục đó.
Tất nhiên, không có gì trong thư mục này được lưu trữ ở dạng văn bản thuần túy. Khi tạo khóa GPG, bạn sẽ được nhắc nhập cụm mật khẩu. Hy vọng rằng bạn đã nhớ cụm mật khẩu đó là gì. Bạn sẽ cần nó. Không thể giải mã các mục trong thư mục “.gnugp” nếu không có nó.
Nếu chúng ta sử dụng tree
tiện ích để xem thư mục, chúng ta sẽ thấy cấu trúc của các thư mục con và tệp. Bạn sẽ tìm ra tree
trong kho lưu trữ bản phân phối của bạn nếu bạn chưa có nó trên máy tính của mình.
tree .gnupg
Nội dung của cây thư mục là:
- openpgp-revocs.d: Thư mục con này chứa chứng chỉ thu hồi của bạn. Bạn sẽ cần điều này nếu khóa riêng tư của bạn trở thành kiến thức phổ biến hoặc bị xâm phạm. Chứng chỉ thu hồi của bạn được sử dụng trong quá trình loại bỏ các khóa cũ của bạn và sử dụng các khóa mới.
- khóa riêng-v1.d: Thư mục con này lưu trữ khóa cá nhân của bạn.
- quán rượu.kbx: Một tập tin được mã hóa. Nó chứa các khóa công khai, bao gồm cả khóa của bạn và một số siêu dữ liệu về chúng.
- pubring.kbx~: Đây là bản sao dự phòng của “pubring.kbx.” Nó được cập nhật ngay trước khi các thay đổi được thực hiện đối với “pubring.kbx.”
- trustdb.gpg: Điều này giữ mối quan hệ tin cậy mà bạn đã thiết lập cho các khóa của riêng mình và cho mọi khóa công khai được chấp nhận thuộc về người khác.
Dù sao thì bạn cũng nên tạo các bản sao lưu thường xuyên, thường xuyên cho thư mục chính của mình, bao gồm cả các tệp và thư mục ẩn. Tất nhiên, điều đó sẽ sao lưu thư mục “.gnupg”.
Nhưng bạn có thể nghĩ rằng các khóa GPG của mình đủ quan trọng để đảm bảo sao lưu định kỳ cho riêng chúng hoặc có lẽ bạn muốn sao chép các khóa của mình từ máy tính để bàn sang máy tính xách tay để bạn có chúng trên cả hai máy. Rốt cuộc, bạn là bạn trên cả hai máy.
Xác định khóa nào cần sao lưu
Chúng tôi có thể yêu cầu gpg
để cho chúng tôi biết khóa nào có trong hệ thống GPG của bạn. Chúng tôi sẽ sử dụng --list-secret-keys
tùy chọn và --keyid-format LONG
tùy chọn.
gpg --list-secret-keys --keyid-format LONG
Chúng tôi được thông báo rằng GPG đang tìm kiếm bên trong tệp “/home/dave/.gnupg/pubring.kbx”.
Không có gì xuất hiện trên màn hình là khóa bí mật thực sự của bạn.
- Dòng “sec” (bí mật) hiển thị số bit trong mã hóa (4096 trong ví dụ này), ID khóa, ngày khóa được tạo và “[SC].” “S” có nghĩa là khóa có thể được sử dụng cho chữ ký số và “C” có nghĩa là nó có thể được sử dụng để chứng nhận.
- Dòng tiếp theo là dấu vân tay chính.
- Dòng “uid” chứa ID của chủ sở hữu khóa.
- Dòng “ssb” hiển thị khóa con bí mật khi nó được tạo và “E.” Chữ “E” cho biết nó có thể được sử dụng để mã hóa.
Nếu bạn đã tạo nhiều cặp khóa để sử dụng với các danh tính khác nhau, chúng cũng sẽ được liệt kê. Chỉ có một cặp khóa để sao lưu cho người dùng này. Bản sao lưu sẽ bao gồm mọi khóa công khai thuộc về người khác mà chủ sở hữu của khóa này đã thu thập và quyết định tin tưởng.
Sao lưu
Chúng ta có thể hỏi gpg
để sao lưu tất cả các khóa cho tất cả các danh tính hoặc để sao lưu các khóa được liên kết với một danh tính duy nhất. Chúng tôi sẽ sao lưu khóa cá nhân, khóa bí mật và tệp cơ sở dữ liệu tin cậy.
Để sao lưu các khóa công khai, hãy sử dụng --export
lựa chọn. Chúng tôi cũng sẽ sử dụng --export-options backup
tùy chọn. Điều này đảm bảo bao gồm tất cả siêu dữ liệu dành riêng cho GPG để cho phép các tệp được nhập chính xác trên một máy tính khác.
Chúng tôi sẽ chỉ định một tệp đầu ra với --output
lựa chọn. Nếu chúng tôi không làm điều đó, đầu ra sẽ được gửi đến cửa sổ đầu cuối.
gpg --export --export-options backup --output public.gpg
Nếu bạn chỉ muốn sao lưu các khóa cho một danh tính duy nhất, hãy thêm địa chỉ email được liên kết với các khóa vào dòng lệnh. Nếu bạn không thể nhớ đó là địa chỉ email nào, hãy sử dụng --list-secret-keys
tùy chọn, như đã mô tả ở trên.
gpg --export --export-options backup --output public.gpg dave@madeupdomain.com
Để sao lưu khóa riêng của chúng tôi, chúng tôi cần sử dụng --export-secret-keys
tùy chọn thay vì --export
lựa chọn. Đảm bảo rằng bạn lưu tệp này vào một tệp khác.
gpg --export-secret-keys --export-options backup --output private.gpg
Vì đây là khóa riêng tư của bạn nên bạn cần xác thực bằng GPG trước khi có thể tiếp tục.
Lưu ý rằng bạn đang không được hỏi mật khẩu của bạn. Những gì bạn cần nhập là cụm mật khẩu bạn đã cung cấp khi tạo khóa GPG lần đầu tiên. Trình quản lý mật khẩu tốt cho phép bạn giữ thông tin như vậy dưới dạng ghi chú an toàn. Đó là một nơi tốt để lưu trữ chúng.
Nếu cụm mật khẩu được chấp nhận, quá trình xuất diễn ra.
Để sao lưu các mối quan hệ tin cậy của bạn, chúng tôi cần xuất cài đặt từ tệp “trustdb.gpg” của bạn. Chúng tôi đang gửi đầu ra tới một tệp có tên “trust.gpg”. Đây là một tập tin văn bản. Nó có thể được xem bằng cách sử dụng cat
.
gpg --export-ownertrust > trust.gpg
cat trust.gpg
Đây là ba tệp chúng tôi đã tạo.
ls -hl *.gpg
Chúng tôi sẽ chuyển những thứ này sang một máy tính khác và khôi phục chúng. Điều này sẽ thiết lập danh tính của chúng tôi trên máy đó và cho phép chúng tôi sử dụng các khóa GPG hiện có của mình.
Nếu bạn không di chuyển các phím sang một máy tính khác và bạn chỉ sao lưu chúng vì bạn muốn chắc chắn rằng chúng an toàn, hãy sao chép chúng vào một số phương tiện khác và lưu trữ chúng một cách an toàn. Ngay cả khi chúng rơi vào tay kẻ xấu, khóa công khai của bạn vẫn là công khai, vì vậy không có hại gì ở đó. Và nếu không có cụm mật khẩu của bạn, khóa riêng tư của bạn sẽ không thể khôi phục được. Tuy nhiên, hãy giữ các bản sao lưu của bạn an toàn và riêng tư.
Chúng tôi đã sao chép các tệp vào máy tính Manjaro 21.
ls *.gpg
Theo mặc định, Manjaro 21 sử dụng vỏ Z, zsh
, đó là lý do tại sao nó trông khác. Nhưng điều này không quan trọng, nó sẽ không ảnh hưởng gì cả. Những gì chúng tôi đang làm được điều chỉnh bởi gpg
chương trình, không phải trình bao.
Để nhập khóa của chúng tôi, chúng tôi cần sử dụng --import
lựa chọn.
gpg --import public.gpg
Các chi tiết của khóa được hiển thị khi nó được nhập. Tệp “trustdb.gpg” cũng được tạo cho chúng tôi. Để nhập khóa riêng cũng dễ dàng như vậy. chúng tôi sử dụng --import
tùy chọn một lần nữa.
gpg --import private.gpg
Chúng tôi được nhắc nhập cụm mật khẩu.
Nhập nó vào trường “Cụm mật khẩu”, nhấn phím “Tab” và nhấn “Enter”.
Chi tiết của các phím đã nhập được hiển thị. Trong trường hợp của chúng tôi, chúng tôi chỉ có một chìa khóa.
Để nhập cơ sở dữ liệu tin cậy của chúng tôi, hãy nhập:
gpg --import-ownertrust trust.gpg
Chúng tôi có thể kiểm tra mọi thứ đã được nhập đúng cách bằng cách sử dụng --list-secret-keys
tùy chọn một lần nữa.
gpg --list-secret-keys --keyid-format LONG
Điều này mang lại cho chúng tôi chính xác đầu ra giống như chúng tôi đã thấy trên máy tính Ubuntu của mình trước đó.
Bảo vệ sự riêng tư của bạn
Đảm bảo các khóa GPG của bạn được an toàn bằng cách sao lưu chúng. Nếu bạn gặp sự cố máy tính hoặc vừa nâng cấp lên một kiểu máy mới hơn, hãy đảm bảo rằng bạn biết cách chuyển chìa khóa của mình sang máy mới.