Cara terbaik mengenkripsi dan mendekripsi direktori melalui baris perintah atau skrip?

8

Saya memiliki direktori file teks di bawah kontrol versi bazaar dan menyimpan salinan (cabang, sebenarnya) di setiap mesin saya. Saya ingin mengenkripsi dan tidak mengenkripsi direktori melalui baris perintah.

Idealnya, saya juga dapat menjalankan skrip saat logout untuk memeriksa apakah direktori dienkripsi dan dienkripsi jika tidak, semua tanpa campur tangan pengguna. Namun, saya tidak ingin direktori didekripsi saat login. (Saya ingin script sebagai penjaga agar tidak mengenkripsi secara manual. Ini sangat penting untuk netbook.)

Saya sedang menjalankan ubuntu 10.04.1dan dua versi linux crunchbang, satu turunan dari ubuntu 9.04, salah satu dari snapshot Juni akhir repo Debian.

Apa cara terbaik untuk melakukan ini?

(Saya mencoba memberi tag dengan encryptiondan directories, tetapi tidak memiliki perwakilan untuk membuat tag.)

vanden
sumber

Jawaban:

5

Apakah Anda memiliki akses administratif ke mesin? Seseorang dapat menggunakan perangkat loopback terenkripsi. Contoh:

buat file kontainer untuk fs terenkripsi:

dd if=/dev/urandom of=container bs=1024k count=100 

ikat file kontainer ke perangkat loopback 0:

losetup container /dev/loop0

buat perangkat terenkripsi (-y meminta frasa sandi dua kali; garis dibagi dengan \):

cryptsetup -c serpent-xts-essiv:sha256 -b 512 \
   -y create container /dev/loop0 

buat filesystem ext2 pada perangkat terenkripsi (benar-benar dapat menggunakan apa pun):

mkfs.ext2 /dev/mapper/container

mounts filesystem terenkripsi ke direktori crypt:

mount /dev/mapper/container crypt

Sebagai referensi:

man cryptsetup && man losetup

Baca juga praktik terbaik kriptografi, untuk informasi tentang cara memilih sandi dan panjang kunci yang akan digunakan, dll.

dsp
sumber
4

Sepertinya apa yang Anda cari bukan cara untuk mengenkripsi dan mendekripsi direktori, tetapi cara untuk bekerja dengan penyimpanan terenkripsi secara transparan. Perhatikan bahwa skema yang Anda usulkan, dengan dekripsi dan enkripsi massal aktual, tidak terlalu aman: ia membuat hal-hal tidak terenkripsi jika Anda tidak keluar secara normal (kegagalan daya, kerusakan sistem, laptop curian ...); dan meninggalkan jejak data rahasia Anda yang dapat ditemukan oleh penyerang yang teguh (data dari file yang terhapus masih ada di disk, sulit ditemukan).

Sistem Linux saat ini menawarkan beberapa cara untuk mencapai enkripsi transparan. Anda dapat mengenkripsi seluruh volume dengan dm-crypt atau salah satu alternatifnya. Ada beberapa alat yang tersedia untuk mengenkripsi susunan direktori tertentu, termasuk ecryptfs (yang bekerja pada level kernel) dan encfs (yang bekerja murni di userland melalui sekering). (Tiga yang saya sebutkan tersedia di Debian lenny dan harus ditawarkan oleh semua distribusi Anda.)

Anda dapat mengatur direktori terenkripsi untuk dipasang ketika Anda masuk melalui PAM ( libpam-mountpaket; opsi yang disarankan untuk ecryptfs) atau melalui skrip profil Anda (opsi yang disarankan untuk encfs). Perhatikan bahwa tidak ada masalah dengan "lupa untuk mengenkripsi secara manual" karena tidak ada yang pernah ditulis tidak terenkripsi ke disk.

Untuk perlindungan terbaik, Anda harus mengenkripsi tidak hanya file rahasia Anda, tetapi juga tempat lain di mana data rahasia dapat disimpan oleh program. Paling tidak, Anda harus mengenkripsi partisi swap Anda. Tempat-tempat lain untuk ditonton termasuk /tmp(sebaiknya diselesaikan dengan membuatnya tmpfs), /var/spool/cupsjika Anda mencetak dokumen rahasia, dan file per-aplikasi dalam direktori rumah Anda seperti cache / sejarah web (misalnya ~/.mozilla).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
3

Bagaimana dengan menggunakan gpgdir ? Ini harus dapat skrip untuk masuk dan keluar. Anda juga dapat memilih subdirektori yang seharusnya dienkripsi (misalnya, Anda ingin file seperti .bash_rcdidekripsi).

Alternatif lain mungkin Truecrypt . Anda dapat membuat wadah untuk data Anda dan mengenkripsi / mendekripsi melalui skrip shell.

Bran the Blessed
sumber
2

Anda juga dapat menggunakan ecryptfs, yang merupakan standar pada Ubuntu dan distribusi turunannya. Itulah yang digunakan ketika proses instalasi menanyakan apakah Anda ingin crypt direktori home Anda (http://www.linuxjournal.com/article/9400). Keuntungan dari ecryptfs adalah Anda tidak perlu partisi yang terpisah, atau file yang dipasang loopback untuk menggunakannya.

Luc Stepniewski
sumber