Apakah ada alat untuk mengenkripsi file atau direktori?

66

Apa cara paling populer untuk mengenkripsi file atau folder individual?

Landroni
sumber
Pertanyaannya agak tidak jelas. Apakah Anda ingin mengenkripsi dan mendekripsi file secara manual, atau saat itu juga?
psusi
4
Alih-alih 'paling populer', pas solusi untuk kebutuhan Anda mungkin dapat membantu (sesuai pertanyaan psusi). Apakah Anda mencari kombinasi sumber terbuka yang mudah, andal, asli, aman, cepat, dan terbuka? Semua atau sebagian dari ini?
belacqua
7
Saya ingin menambahkan komentar yang bertentangan dengan apa yang diklaim oleh beberapa jawaban, TrueCrypt tidak dianggap Perangkat Lunak Bebas atau Sumber Terbuka oleh Debian / Ubuntu / Fedora / Red Hat / Arch Linux / OpenSuse / Gentoo / dll.
JanC

Jawaban:

46

GnuPG (GPG) dapat menggunakan enkripsi asimetris dan simetris. Crypto asimetris melibatkan dua kunci, kunci publik untuk enkripsi dan kunci pribadi untuk dekripsi. Lihat jawaban djeikyb di halaman ini untuk penggunaan kunci asimetris.

Untuk enkripsi simetris, kunci enkripsi dan dekripsi sama. Penting untuk disadari bahwa kebanyakan orang sangat buruk dalam memilih kata sandi yang kuat. Dengan demikian, skema enkripsi menggunakan kata sandi harus menggunakan fungsi derivasi kunci yang membutuhkan lebih banyak sumber daya (waktu, memori) untuk memperlambat serangan brute-force.

Untuk deskripsi KDF GnuPG, lihat posting Crypto Stack Exchange ini . Contoh penggunaan enkripsi simetris:

gpg --symmetric < unencrypted_file > encrypted_file

Dekripsi:

gpg --decrypt < encrypted_file > decrypted_file

Perhatikan bahwa gpgcache symkey secara default (perilaku yang didokumentasikan). Untuk menghindarinya, gunakan --no-symkey-cacheopsi seperti yang dijelaskan dalam jawaban terkait .

Halaman manual gpg .


jawaban lama untuk pengguna yang dapat memilih kunci yang baik, lihat catatan di bawah

Untuk file tunggal, opensslsangat berguna, terutama saat mengirim file melalui saluran yang tidak aman (mis. E-mail). Ini gratis (dalam uang dan kebebasan), tidak seperti Truecrypt, yang hanya gratis dalam uang.

CATATAN : kata sandi yang Anda masukkan di sini akan diproses oleh satu iterasi MD5 1 . Jika Anda memilih kata sandi "123456", maka Anda akan memiliki keamanan yang sangat sedikit.

Enkripsi:

openssl aes-256-cbc -salt -in unencrypted_file -out encrypted_file

Anda akan diminta kata sandi, yang harus Anda masukkan dua kali.

Dekripsi:

openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file

Halaman manual untuk program enc .

1 openssl enc menggunakan fungsi digest yang ditentukan oleh -mdopsi (md5 default) dan memanggil fungsi EVP_BytesToKey()dengan jumlah iterasi 1. Ini dapat ditemukan di sumber openssl di apps/enc.c.

Lekensteyn
sumber
Apakah ada cara untuk melakukan ini tanpa passpharse?
Assaf Lavie
@Assaf Lavie: OpenSSL tidak mendukung keyfile jika Anda bermaksud demikian, meskipun ia dapat membaca kata sandi dari baris pertama file. Baca halaman manual pada openssl, bagian Pass argumen frasa .
Lekensteyn
selain itu Anda dapat menggunakan bendera "-a" yang memungkinkan Anda untuk menyalin teks yang di-crypted, seperti: "openssl aes-256-cbc -a -salt -in
unencrypted_file
@ v2r Untuk menambah pembaca lebih lanjut: -abase64-mengkodekan input (alias -base64), untuk mendekripsi Anda juga perlu menambahkan -aopsi.
Lekensteyn
1
@Lucio aes-256adalah alias untuk aes-256-cbc, tidak ada perbedaan. CBC adalah mode operasi untuk cipher blok. Lihat halaman manual enc(1)untuk daftar sandi yang didukung.
Lekensteyn
30

Saya menggunakan Kuda laut untuk ini. Ini adalah front-end Gnome untuk GnuPG dan terintegrasi dengan baik dengan nautilus:Integrasi Nautilus

Untuk mendapatkan integrasi nautilus, instal paket seahorse-nautilusdari Pusat Perangkat Lunak: seahorse-nautilus Instal kuda laut-nautilus

Passy
sumber
3
ini hanya berfungsi jika Anda memiliki kunci GPG yang dibuat di sistem Anda ...
hhlp
3
@ hhlp: jawaban djeikyb menjelaskan cara melakukan itu.
idbrii
1
Saya ingin mengenkripsi kunci GPG saya.
KI4JGT
19

TrueCrypt : dihentikan, aman sumber-tersedia freeware Disk Encryption Software.

hhlp
sumber
2
+1, encfs - dengan atau tanpa GUI - sangat berguna dan cukup untuk sebagian besar tujuan.
loevborg
3
Cryptkeeper mengagumkan - sederhana, kuat, dan mudah diatur dengan Dropbox ( askubuntu.com/questions/19613/… ).
Scaine
TrueCrypt tidak dikemas dalam Ubuntu (atau distribusi utama lainnya) untuk masalah lisensi.
MagicFab
2
TrueCrypt bukan open-source itu. en.wikipedia.org/wiki/…
yuric
4
'PERINGATAN: Menggunakan TrueCrypt tidak aman' - TrueCrypt
user457015
16

Metode cli adalah GnuPG , dan mungkin tar. Ini adalah panduan singkat untuk referensi, Anda benar-benar harus membaca dokumentasi.

Jalankan pertama gpg --gen-key. Ikuti petunjuknya untuk membuat pasangan kunci publik / pribadi Anda. Sekarang Anda dapat mengenkripsi file: gpg -e foo.txt. Ini akan membuat file bernama foo.txt.gpg. GnuPG tidak menghapus file tidak terenkripsi asli, terserah Anda apakah Anda ingin berkeliaran. Untuk mendekripsi foo.txt.gpg, jalankan gpg foo.txt.gpg. Dekripsi akan meminta Anda sebelum menimpa file yang ada.

Jika Anda perlu mengenkripsi direktori, tar terlebih dahulu:

tar -cf foo.tar foo/
gpg -e foo.tar

Anda dapat mengganti nama file terenkripsi apa pun yang Anda inginkan. Saat didekripsi, nama file asli dipertahankan.

djeikyb
sumber
2
Kelebihan dari metode ini adalah: Pertama tidak memerlukan instalasi paket tambahan; Kedua itu tidak memerlukan akses root. Saya akan menambahkan kompresi ke perintah tar (xz atau gz).
Panther
12

Ada juga eCryptfs , yang digunakan Ubuntu untuk mengenkripsi Direktori Rumah.

Anda dapat memilih enkripsi direktori home saat instalasi, atau Anda dapat mengatur direktori tunggal, $HOME/Privatesecara default, menggunakan utilitas ecryptfs-setup-private . Folder ini dapat dikonfigurasi untuk secara otomatis me-mount saat login dan unmount saat logout. Setiap file dan folder dalam $HOME/Private, secara rekursif, akan dienkripsi.

Dustin Kirkland
sumber
Sayangnya eCryptfs SANGAT lambat. Juga ada beberapa bug dalam versi terbaru
ruX
Sebaliknya, jika eCryptfs lebih cepat dari gpg; secara default gpg mencoba mengompresi sebelum mengenkripsi. Dan eCryptfs sekarang juga digunakan oleh sebagian besar Android
Xen2050
2

Anda juga dapat menggunakan "Tanda Tangan Akademik" untuk menggunakan kriptografi kurva eliptik dengan GUI wxWidgets. Ini adalah open source tetapi tidak dalam repositori. Ini terutama melakukan enkripsi, tanda tangan, dan stempel waktu ECC asimetris. Tetapi alat ini juga memiliki entri Menu untuk memanggil Gnupg (RSA) dan akses langsung ke enkripsi simetris file yang menawarkan AES dan algoritma lainnya. Homepage-nya ada di sini: https://www.academic-signature.org

Saya sering menggunakannya untuk melindungi file dalam perjalanan dan untuk menandatangani dokumen akademik secara digital (transkrip, surat rekomendasi, daftar nilai, dll.)

Michael Anders
sumber
1

Saya telah mengambil beberapa saran lain dan membuat pembungkus skrip shell sederhana (untuk yang malas)

https://github.com/orionM/ssl-crypt-tools

Nikmati

private_nodez
sumber
1
hmm, skrip bash menggunakan openssl aes-256-cbc ...Kau tahu alih-alih menggunakan, if [ $? -ne 0 ] ; then... fiAnda hanya dapat menggunakan ||? Dan ada beberapa orang yang berpikir OpenSSL "* telah memiliki beberapa kelemahan keamanan utama pada tahun lalu [ Heartbleed ] sementara dokumen Snowden menunjukkan bahwa GPG adalah salah satu dari sedikit program yang mungkin akan membuntuti NSA ketika digunakan dengan benar. Kode OpenSSL juga tangki septik yang lengkap dan memiliki cakupan tes yang mengerikan. (Pengungkapan: [dia] bekerja pada proyek "OpenSSL; mari kita perbaiki".) - jbarlow * "
Xen2050