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.
Perhatikan bahwa gpgcache symkey secara default (perilaku yang didokumentasikan). Untuk menghindarinya, gunakan --no-symkey-cacheopsi seperti yang dijelaskan dalam jawaban terkait .
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.
1openssl 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.
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:
Untuk mendapatkan integrasi nautilus, instal paket seahorse-nautilusdari Pusat Perangkat Lunak: seahorse-nautilus
'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.
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.
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.)
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 * "
Jawaban:
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:
Dekripsi:
Perhatikan bahwa
gpg
cache symkey secara default (perilaku yang didokumentasikan). Untuk menghindarinya, gunakan--no-symkey-cache
opsi 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,
openssl
sangat 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:
Anda akan diminta kata sandi, yang harus Anda masukkan dua kali.
Dekripsi:
Halaman manual untuk program enc .
1
openssl enc
menggunakan fungsi digest yang ditentukan oleh-md
opsi (md5 default) dan memanggil fungsiEVP_BytesToKey()
dengan jumlah iterasi 1. Ini dapat ditemukan di sumber openssl diapps/enc.c
.sumber
-a
base64-mengkodekan input (alias-base64
), untuk mendekripsi Anda juga perlu menambahkan-a
opsi.aes-256
adalah alias untukaes-256-cbc
, tidak ada perbedaan. CBC adalah mode operasi untuk cipher blok. Lihat halaman manualenc(1)
untuk daftar sandi yang didukung.Saya menggunakan Kuda laut untuk ini. Ini adalah front-end Gnome untuk GnuPG dan terintegrasi dengan baik dengan nautilus:
Untuk mendapatkan integrasi nautilus, instal paket
seahorse-nautilus
dari Pusat Perangkat Lunak: seahorse-nautilussumber
TrueCrypt : dihentikan, aman sumber-tersedia freeware Disk Encryption Software.
sumber
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 bernamafoo.txt.gpg
. GnuPG tidak menghapus file tidak terenkripsi asli, terserah Anda apakah Anda ingin berkeliaran. Untuk mendekripsi foo.txt.gpg, jalankangpg foo.txt.gpg
. Dekripsi akan meminta Anda sebelum menimpa file yang ada.Jika Anda perlu mengenkripsi direktori, tar terlebih dahulu:
Anda dapat mengganti nama file terenkripsi apa pun yang Anda inginkan. Saat didekripsi, nama file asli dipertahankan.
sumber
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/Private
secara 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.sumber
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.)
sumber
Saya telah mengambil beberapa saran lain dan membuat pembungkus skrip shell sederhana (untuk yang malas)
https://github.com/orionM/ssl-crypt-tools
Nikmati
sumber
openssl aes-256-cbc ...
Kau tahu alih-alih menggunakan,if [ $? -ne 0 ] ; then... fi
Anda 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 * "