Cách phổ biến nhất để mã hóa các tệp hoặc thư mục riêng lẻ là gì?
Cách phổ biến nhất để mã hóa các tệp hoặc thư mục riêng lẻ là gì?
Câu trả lời:
GnuPG (GPG) có thể sử dụng mã hóa bất đối xứng và đối xứng. Tiền điện tử bất đối xứng bao gồm hai khóa, khóa chung để mã hóa và khóa riêng để giải mã. Xem câu trả lời djeikyb trên trang này để sử dụng khóa bất đối xứng.
Đối với mã hóa đối xứng, các khóa mã hóa và giải mã bằng nhau. Điều quan trọng là phải nhận ra rằng hầu hết mọi người rất tệ trong việc chọn mật khẩu mạnh. Do đó, một sơ đồ mã hóa sử dụng mật khẩu nên sử dụng chức năng tạo khóa lấy nhiều tài nguyên (thời gian, bộ nhớ) để làm chậm các cuộc tấn công vũ phu.
Để biết mô tả về KDF của GnuPG, hãy xem bài đăng Trao đổi tiền điện tử này . Ví dụ sử dụng mã hóa đối xứng:
gpg --symmetric < unencrypted_file > encrypted_file
Giải mã:
gpg --decrypt < encrypted_file > decrypted_file
Lưu ý rằng gpg
lưu trữ symkey theo mặc định (hành vi được ghi lại). Để tránh điều đó, hãy sử dụng --no-symkey-cache
tùy chọn như được mô tả trong câu trả lời liên quan .
câu trả lời cũ cho người dùng có thể chọn khóa tốt, xem ghi chú bên dưới
Đối với các tệp đơn lẻ, openssl
rất hữu ích, đặc biệt là khi gửi tệp qua kênh không bảo mật (ví dụ: e-mail). Nó miễn phí (bằng tiền và tự do), không giống như Truecrypt, chỉ miễn phí bằng tiền.
LƯU Ý : mật khẩu bạn nhập vào đây sẽ được xử lý bằng một lần lặp MD5 1 . Nếu bạn chọn mật khẩu "123456", thì bạn sẽ có rất ít bảo mật.
Mã hóa:
openssl aes-256-cbc -salt -in unencrypted_file -out encrypted_file
Bạn sẽ được yêu cầu nhập mật khẩu mà bạn phải nhập hai lần.
Giải mã:
openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file
Trang hướng dẫn cho chương trình enc .
1 openssl enc
sử dụng hàm digest được xác định bởi -md
tùy chọn (mặc định md5) và gọi hàm EVP_BytesToKey()
với số lần lặp là 1. Điều này có thể được tìm thấy trong nguồn openssl tại apps/enc.c
.
-a
base64-mã hóa đầu vào (bí danh -base64
), để giải mã nó, bạn cũng cần thêm -a
tùy chọn.
aes-256
là một bí danh cho aes-256-cbc
, không có sự khác biệt. CBC là một chế độ hoạt động cho mật mã khối. Xem trang hướng dẫn enc(1)
để biết danh sách các mật mã được hỗ trợ.
Tôi sử dụng Seahorse cho việc này. Đó là một giao diện Gnome cho GnuPG và tích hợp tốt với nautilus:
Để có được tích hợp nautilus, hãy cài đặt gói seahorse-nautilus
từ Trung tâm phần mềm: seahorse-nautilus
TrueCrypt : ngưng, phần mềm mã hóa đĩa miễn phí có sẵn không an toàn .
Một phương thức cli sẽ là GnuPG và có thể tar. Đây là một hướng dẫn ngắn để tham khảo, bạn thực sự nên đọc tài liệu.
Lần chạy đầu tiên gpg --gen-key
. Làm theo lời nhắc để tạo cặp khóa công khai / riêng tư của bạn. Bây giờ bạn có thể mã hóa tập tin : gpg -e foo.txt
. Điều này sẽ tạo ra một tập tin gọi là foo.txt.gpg
. GnuPG không xóa tệp không được mã hóa ban đầu, tùy thuộc vào việc bạn có muốn nó treo xung quanh hay không. Để giải mã foo.txt.gpg, hãy chạy gpg foo.txt.gpg
. Giải mã sẽ nhắc bạn trước khi ghi đè các tập tin hiện có.
Nếu bạn cần mã hóa một thư mục, trước tiên hãy đọc nó:
tar -cf foo.tar foo/
gpg -e foo.tar
Bạn có thể đổi tên tập tin được mã hóa bất cứ điều gì bạn muốn. Khi được giải mã, tên tệp gốc được giữ nguyên.
Ngoài ra còn có eCryptfs , mà Ubuntu sử dụng để mã hóa Home Directories.
Bạn có thể chọn mã hóa thư mục chính khi cài đặt hoặc $HOME/Private
theo mặc định, bạn có thể thiết lập một thư mục bằng cách sử dụng tiện ích ecryptfs-setup-private . Thư mục này có thể được cấu hình để tự động gắn kết khi đăng nhập và ngắt kết nối khi đăng xuất. Mỗi tệp và thư mục trong $HOME/Private
, đệ quy, sẽ được mã hóa.
Bạn cũng có thể sử dụng "Chữ ký học thuật" để sử dụng mật mã đường cong elip với GUI wxWidgets. Nó là nguồn mở nhưng không có trong kho. Nó chủ yếu thực hiện mã hóa bất đối xứng ECC, chữ ký và dấu thời gian. Nhưng công cụ này cũng có một mục Menu để gọi Gnupg (RSA) và truy cập trực tiếp vào việc giải mã đối xứng các tệp cung cấp AES và các thuật toán khác. Trang chủ của nó ở đây: https://www.academia-signature.org
Tôi sử dụng nó rất nhiều để bảo vệ các tập tin quá cảnh và để ký điện tử các tài liệu học thuật (bảng điểm, thư giới thiệu, danh sách điểm, v.v.)
Tôi đã thực hiện một số đề xuất khác và tạo một trình bao bọc kịch bản lệnh shell đơn giản (dành cho người lười biếng)
https://github.com/orionM/ssl-crypt-tools
thưởng thức
openssl aes-256-cbc ...
You know thay vì sử dụng if [ $? -ne 0 ] ; then... fi
bạn chỉ có thể sử dụng ||
? Và có một số người cho rằng OpenSSL "* đã có một số lỗi bảo mật lớn trong năm ngoái [ Heartbleed ] trong khi các tài liệu của Snowden cho thấy GPG là một trong số ít các chương trình có thể đánh cắp NSA khi được sử dụng đúng cách. Mã OpenSSL cũng được sử dụng. một cesspool hoàn chỉnh và có phạm vi kiểm tra khủng khiếp. (Tiết lộ: [anh ấy] làm việc trên một dự án "OpenSSL hút; hãy sửa nó".) - jbarlow * "