Apakah mungkin mengenkripsi hard disk dengan file kunci, bukan kata sandi?
14
Melihat ke enkripsi hard disk. solusi menuju ke tampaknya dm-crypt dengan LUKS menggunakan kata sandi. Saya bekerja dengan banyak hard disk independen yang dipasang ke kolam disk untuk membaca. Dalam hal ini, saya harus mengetikkan kata sandi beberapa kali.
Apakah ada cara bagi saya untuk mengenkripsi hard disk dengan file kunci, mungkin meletakkannya di USB drive dan cukup tancapkan ketika diperlukan ??
Salah satu cara terbaik untuk melakukan ini adalah dengan menggunakan kartu pintar dengan kunci kripto untuk membuka kunci tombol untuk perangkat blok terenkripsi Anda. Anda hanya perlu memasukkan frasa sandi (disebut "PIN" oleh alat tapi itu benar-benar frasa sandi) sekali, setelah itu akan di-cache. Ini memiliki keuntungan tambahan untuk melindungi data yang dienkripsi dengan sesuatu yang Anda miliki (kartu pintar itu sendiri, di mana kunci pribadi tidak dapat diekstraksi) dan sesuatu yang Anda ketahui (frasa sandi).
Dalam Debian dan turunannya, alat-alat initramfs akan memperhatikan naskah kunci dan menyalin semua alat dan daemon yang diperlukan untuk mengakses kartu pintar ke initramfs secara otomatis.
Informasi tentang pengaturan kartu pintar dan membuat (dan mengenkripsi) kunci ditemukan di /usr/share/doc/cryptsetup/README.opensc.gz.
Catatan implementasi : Fitur ini memiliki tepi yang kasar dan tampaknya tidak berfungsi di luar kotak, jadi YMMV. Terakhir kali saya berhasil mencapainya, saya harus menambahkan retasan berikut:
Nonaktifkan systemdkarena bencana mencoba mengambil alih seluruh proses pengaturan perangkat terenkripsi dari /etc/crypttabtetapi tidak tahu apa-apa tentang keyscriptyang mengarah ke GAGAL besar. Untungnya, di Debian, Anda masih dapat memilih keluar systemd.
Instal skrip fixer-upper ini /etc/initramfs-tools/hooks/yubipinkarena fitur bawaan tidak menginstal cukup dukungan untuk membuat Yubikey dapat digunakan dari initramfs. Anda mungkin perlu menyesuaikan ini.
#!/bin/sh
PREREQ=cryptroot
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
# /scripts/local-top/cryptopensc calls pcscd with the wrong path
ln -s ../usr/sbin/pcscd ${DESTDIR}/sbin/pcscd
mkdir -p "${DESTDIR}/usr/lib/x86_64-linux-gnu"
# opensc-tool wants this dynamically, copy_exec doesn't know that
cp -pL /usr/lib/x86_64-linux-gnu/libpcsclite.so.1 "${DESTDIR}/usr/lib/x86_64-linux-gnu/libpcsclite.so.1"
mkdir -p "${DESTDIR}/lib/x86_64-linux-gnu"
# without this, pcscd aborts with a pthread_cancel error
cp -pL /lib/x86_64-linux-gnu/libgcc_s.so.1 "${DESTDIR}/lib/x86_64-linux-gnu/libgcc_s.so.1"
# this gets copied as a dangling symlink, fix it
rm "${DESTDIR}/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist"
cp -pL /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist "${DESTDIR}/usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist"
# pcscd needs this to open the reader once it has found it
cp -pL /lib/x86_64-linux-gnu/libusb-1.0.so.0 "${DESTDIR}/lib/x86_64-linux-gnu/libusb-1.0.so.0"
Instal skrip lain /etc/initramfs-tools/scripts/local-bottom/killpcscduntuk membersihkan:
#!/bin/sh
set -e
PREREQ=cryptopensc
prereqs()
{
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
# because cryptopensc does not do it properly
killall pcscd
Insentif yang sangat bagus untuk menggunakan kartu pintar dan pujian untuk mencapai itu, tetapi saya akan mengatakan metode distribusi khusus yang melibatkan perubahan sistem init dan skrip hack pihak ketiga yang dimasukkan ke direktori sistem dengan jalur yang tidak dapat dibaca tidak dapat dianggap sebagai jawaban untuk bagaimana untuk menggunakan pertanyaan file passkey. Menyoroti kekacauan luar biasa dari perangkat lunak ini.
dbanet
@banban, saya sepenuhnya setuju dan saya berharap bahwa orang lain akan datang dan menambahkan jawaban yang menjelaskan bagaimana melakukan ini dengan cara lain yang lebih sederhana. Maka OP dapat memilih favorit mereka.
Celada
dbanet dan @Celada, persis menurut saya. Ini terlalu rumit dan bahkan jika saya berhasil melakukan ini, miliknya, berarti vendor lain akan memiliki metode lain. :(
Nithin
3
Dimungkinkan untuk hanya menyimpan kata sandi luks dalam file.
Saya menggunakan ini di komputer rumah saya; Sistem file root hidup dengan volume luks biasa yang saya buka dengan frasa sandi saya saat boot. Drive tambahan berisi volume luks dengan kata sandi yang dihasilkan.
Volume tambahan ini dibuka oleh file kata sandi yang hidup pada sistem file root terenkripsi. Secara otomatis tidak terkunci selama boot jika sistem file root tidak terkunci.
Bidang ketiga adalah keyfile, noneuntuk sistem file root, tetapi /etc/crypt-data.keyuntuk sistem file data. /etc/crypt-data.keyberisi kata sandi luks:
Tm90IHJlYWxseSBteSBwYXNzd29yZC4K
Catatan, baris baru atau spasi putih lainnya akan diambil sebagai bagian dari kata sandi! Berhati-hatilah untuk menghasilkan file ini tanpa tertinggal baris baru. Juga, pastikan ia memiliki izin ketat:
Dimungkinkan untuk hanya menyimpan kata sandi luks dalam file.
Saya menggunakan ini di komputer rumah saya; Sistem file root hidup dengan volume luks biasa yang saya buka dengan frasa sandi saya saat boot. Drive tambahan berisi volume luks dengan kata sandi yang dihasilkan.
Volume tambahan ini dibuka oleh file kata sandi yang hidup pada sistem file root terenkripsi. Secara otomatis tidak terkunci selama boot jika sistem file root tidak terkunci.
/etc/crypttab
Penampilan saya seperti ini:Bidang ketiga adalah keyfile,
none
untuk sistem file root, tetapi/etc/crypt-data.key
untuk sistem file data./etc/crypt-data.key
berisi kata sandi luks:Catatan, baris baru atau spasi putih lainnya akan diambil sebagai bagian dari kata sandi! Berhati-hatilah untuk menghasilkan file ini tanpa tertinggal baris baru. Juga, pastikan ia memiliki izin ketat:
Anda harus dapat menggandakan pendekatan ini untuk beberapa volume (baik dengan kata sandi berbeda atau satu kata sandi bersama, pilihan Anda).
sumber
/etc/crypttab
. Saya menambahkan sedikit teks tambahan untuk membuatnya lebih jelas.