Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi
Panduan sendiri yang diperbarui untuk enkripsi disk penuh di Runet V0.2.

Strategi koboi:

[A] Enkripsi blok sistem Windows 7 dari sistem yang diinstal;
[B] Enkripsi blok sistem GNU/Linux (Debian) sistem yang diinstal (termasuk /boot);
[C] Konfigurasi GRUB2, perlindungan bootloader dengan tanda tangan digital/otentikasi/hashing;
[D] pengupasan—penghancuran data yang tidak terenkripsi;
[E] cadangan universal OS terenkripsi;
[F] serangan <pada item [C6]> target - bootloader GRUB2;
[G]dokumentasi yang bermanfaat.

╭───Skema #ruangan 40# :
├──╼ Windows 7 terinstal - enkripsi sistem penuh, tidak tersembunyi;
├──╼ GNU/Linux terinstal (Distribusi Debian dan turunannya) — enkripsi sistem penuh, tidak tersembunyi(/, termasuk /boot; tukar);
├──╼ bootloader independen: bootloader VeraCrypt diinstal di MBR, bootloader GRUB2 diinstal di partisi extended;
├──╼tidak diperlukan instalasi/instalasi ulang OS;
└──╼perangkat lunak kriptografi yang digunakan: VeraCrypt; pengaturan ruang bawah tanah; GnuPG; kuda laut; Hashdeep; GRUB2 gratis/gratis.

Skema di atas sebagian menyelesaikan masalah “boot jarak jauh ke flash drive”, memungkinkan Anda menikmati OS terenkripsi Windows/Linux dan bertukar data melalui “saluran terenkripsi” dari satu OS ke OS lainnya.

Urutan boot PC (salah satu opsi):

  • menyalakan mesin;
  • memuat bootloader VeraCrypt (memasukkan kata sandi yang benar akan melanjutkan boot Windows 7);
  • menekan tombol "Esc" akan memuat boot loader GRUB2;
  • Pemuat boot GRUB2 (pilih distribusi/GNU/Linux/CLI), akan memerlukan otentikasi pengguna super GRUB2 <login/password>;
  • setelah otentikasi berhasil dan pemilihan distribusi, Anda harus memasukkan frasa sandi untuk membuka kunci “/boot/initrd.img”;
  • setelah memasukkan kata sandi bebas kesalahan, GRUB2 akan "memerlukan" entri kata sandi (ketiga, kata sandi BIOS atau kata sandi akun pengguna GNU/Linux – tidak dipertimbangkan) untuk membuka kunci dan mem-boot OS GNU/Linux, atau mengganti kunci rahasia secara otomatis (dua kata sandi + kunci, atau kata sandi + kunci);
  • intrusi eksternal ke dalam konfigurasi GRUB2 akan membekukan proses booting GNU/Linux.

Sulit? Oke, mari kita otomatisasi prosesnya.

Saat mempartisi hard drive (tabel MBR) Sebuah PC tidak boleh memiliki lebih dari 4 partisi utama, atau 3 partisi utama dan satu partisi tambahan, serta area yang tidak terisi. Bagian yang diperluas, tidak seperti bagian utama, dapat berisi subbagian (drive logis=partisi tambahan). Dengan kata lain, “partisi tambahan” pada HDD menggantikan LVM untuk tugas yang ada: enkripsi sistem penuh. Jika disk Anda dibagi menjadi 4 partisi utama, Anda perlu menggunakan lvm, atau transform (dengan pemformatan) bagian dari utama ke lanjutan, atau gunakan keempat bagian dengan bijak dan biarkan semuanya apa adanya, dapatkan hasil yang diinginkan. Bahkan jika Anda memiliki satu partisi pada disk Anda, Gparted akan membantu Anda mempartisi HDD Anda (untuk bagian tambahan) tanpa kehilangan data, namun tetap dengan penalti kecil untuk tindakan tersebut.

Skema tata letak hard drive, sehubungan dengan keseluruhan artikel yang akan diungkapkan, disajikan pada tabel di bawah ini.

Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi
Tabel (No. 1) partisi 1TB.

Anda juga harus memiliki sesuatu yang serupa.
sda1 - partisi utama No.1 NTFS (dienkripsi);
sda2 - penanda bagian yang diperluas;
sda6 - disk logis (bootloader GRUB2 telah diinstal);
sda8 - swap (file swap terenkripsi/tidak selalu);
sda9 - uji disk logis;
sda5 - disk logis untuk yang penasaran;
sda7 - GNU/Linux OS (mentransfer OS ke disk logis terenkripsi);
sda3 - partisi utama No. 2 dengan OS Windows 7 (dienkripsi);
sda4 - bagian utama No.3 (berisi GNU/Linux yang tidak terenkripsi, digunakan untuk cadangan/tidak selalu).

[A] Enkripsi Blok Sistem Windows 7

A1. VeraCryptEnkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

Memuat dari situs resmi, atau dari cermin sourceforge versi instalasi perangkat lunak kriptografi VeraCrypt (pada saat artikel v1.24-Update3 diterbitkan, versi portabel VeraCrypt tidak cocok untuk enkripsi sistem). Periksa checksum perangkat lunak yang diunduh

$ Certutil -hashfile "C:VeraCrypt Setup 1.24.exe" SHA256

dan bandingkan hasilnya dengan CS yang diposting di website pengembang VeraCrypt.

Jika software HashTab diinstal, lebih mudah lagi: RMB (Pengaturan VeraCrypt 1.24.exe)-properties - jumlah hash file.

Untuk memverifikasi tanda tangan program, perangkat lunak dan kunci pgp publik pengembang harus diinstal pada sistem gnuPG; gpg4win.

A2. Menginstal/menjalankan perangkat lunak VeraCrypt dengan hak administratorEnkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

A3. Memilih parameter enkripsi sistem untuk partisi aktifVeraCrypt – Sistem – Mengenkripsi partisi/disk sistem – Normal – Mengenkripsi partisi sistem Windows – Multiboot – (peringatan: “Pengguna yang tidak berpengalaman tidak disarankan menggunakan metode ini” dan ini benar, kami setuju “Ya”) – Disk boot (“ya”, meskipun tidak demikian, tetaplah “ya”) – Jumlah disk sistem “2 atau lebih” – Beberapa sistem dalam satu disk “Ya” – Boot loader non-Windows “Tidak” (sebenarnya, “Ya,” tetapi boot loader VeraCrypt/GRUB2 tidak akan berbagi MBR satu sama lain; lebih tepatnya, hanya bagian terkecil dari kode boot loader yang disimpan di jalur MBR/boot, bagian utamanya adalah terletak di dalam sistem file) – Multiboot – Pengaturan enkripsi…

Jika Anda menyimpang dari langkah di atas (skema enkripsi sistem blok), maka VeraCrypt akan mengeluarkan peringatan dan tidak mengizinkan Anda mengenkripsi partisi.

Pada langkah selanjutnya menuju perlindungan data yang ditargetkan, lakukan “Pengujian” dan pilih algoritma enkripsi. Jika Anda memiliki CPU yang ketinggalan jaman, kemungkinan besar algoritma enkripsi tercepat adalah Twofish. Jika CPU-nya kuat, Anda akan melihat perbedaannya: enkripsi AES, menurut hasil pengujian, akan beberapa kali lebih cepat dibandingkan pesaing kriptonya. AES adalah algoritma enkripsi yang populer; perangkat keras CPU modern secara khusus dioptimalkan untuk “rahasia” dan “peretasan.”

VeraCrypt mendukung kemampuan untuk mengenkripsi disk dalam kaskade AES(Dua ikan)/dan kombinasi lainnya. Pada CPU Intel inti lama dari sepuluh tahun yang lalu (tanpa dukungan perangkat keras untuk AES, enkripsi kaskade A/T) Penurunan kinerja pada dasarnya tidak terlihat. (untuk CPU AMD dengan era/~parameter yang sama, kinerjanya sedikit berkurang). OS bekerja secara dinamis dan konsumsi sumber daya untuk enkripsi transparan tidak terlihat. Sebaliknya, misalnya, penurunan kinerja yang nyata karena pengujian yang diinstal pada lingkungan desktop Mate v1.20.1 yang tidak stabil (atau v1.20.2 saya tidak ingat persisnya) di GNU/Linux, atau karena pengoperasian rutin telemetri di Windows7↑. Biasanya, pengguna berpengalaman melakukan tes kinerja perangkat keras sebelum enkripsi. Misalnya, di Aida64/Sysbench/systemd-analyze, kesalahan dibandingkan dengan hasil pengujian yang sama setelah mengenkripsi sistem, sehingga menyangkal mitos bahwa “enkripsi sistem berbahaya.” Perlambatan mesin dan ketidaknyamanan terlihat saat mencadangkan/memulihkan data terenkripsi, karena operasi "pencadangan data sistem" itu sendiri tidak diukur dalam ms, dan <dekripsi/enkripsi dengan cepat> yang sama ditambahkan. Pada akhirnya, setiap pengguna yang diperbolehkan mengutak-atik kriptografi menyeimbangkan algoritma enkripsi dengan kepuasan tugas yang ada, tingkat paranoia, dan kemudahan penggunaan.

Lebih baik membiarkan parameter PIM sebagai default sehingga saat memuat OS Anda tidak perlu memasukkan nilai iterasi yang tepat setiap saat. VeraCrypt menggunakan sejumlah besar iterasi untuk menciptakan “hash lambat”. Serangan terhadap “siput kripto” menggunakan metode Brute force/tabel pelangi hanya masuk akal dengan frasa sandi “sederhana” singkat dan daftar rangkaian karakter pribadi korban. Harga yang harus dibayar untuk kekuatan kata sandi adalah penundaan dalam memasukkan kata sandi yang benar saat memuat OS. (memasang volume VeraCrypt di GNU/Linux jauh lebih cepat).
Perangkat lunak gratis untuk mengimplementasikan serangan brute force (ekstrak frasa sandi dari header disk VeraCrypt/LUKS) Hashcat. John the Ripper tidak tahu cara “memecah Veracrypt”, dan ketika bekerja dengan LUKS tidak memahami kriptografi Twofish.

Karena kekuatan kriptografi dari algoritma enkripsi, cypherpunk yang tak terhentikan mengembangkan perangkat lunak dengan vektor serangan yang berbeda. Misalnya mengekstrak metadata/kunci dari RAM (boot dingin/serangan akses memori langsung), Ada perangkat lunak bebas dan tidak bebas khusus untuk tujuan ini.

Setelah selesai menyiapkan/menghasilkan “metadata unik” dari partisi aktif terenkripsi, VeraCrypt akan menawarkan untuk memulai ulang PC dan menguji fungsionalitas boot loadernya. Setelah me-reboot/memulai Windows, VeraCrypt akan memuat dalam mode standby, yang tersisa hanyalah mengonfirmasi proses enkripsi - Y.

Pada langkah terakhir enkripsi sistem, VeraCrypt akan menawarkan untuk membuat salinan cadangan dari header partisi terenkripsi aktif dalam bentuk "veracrypt penyelamatan disk.iso" - ini harus dilakukan - dalam perangkat lunak ini, operasi seperti itu merupakan suatu persyaratan (dalam LUKS, sebagai persyaratan - sayangnya hal ini dihilangkan, tetapi ditekankan dalam dokumentasi). Disk penyelamat akan berguna untuk semua orang, dan untuk beberapa orang lebih dari sekali. Kehilangan (header/penulisan ulang MBR) salinan cadangan header akan secara permanen menolak akses ke partisi yang didekripsi dengan OS Windows.

A4. Membuat USB/disk penyelamat VeraCryptSecara default, VeraCrypt menawarkan untuk membakar “~2-3MB metadata” ke CD, namun tidak semua orang memiliki disk atau drive DWD-ROM, dan membuat flash drive yang dapat di-boot “VeraCrypt Rescue disk” akan menjadi kejutan teknis bagi sebagian orang: Rufus /GUIdd-ROSA ImageWriter dan perangkat lunak serupa lainnya tidak akan mampu mengatasi tugas tersebut, karena selain menyalin metadata offset ke flash drive yang dapat di-boot, Anda perlu menyalin/menempelkan gambar di luar sistem file drive USB, singkatnya, salin MBR/jalan ke gantungan kunci dengan benar. Anda dapat membuat flash drive yang dapat di-boot dari OS GNU/Linux menggunakan utilitas “dd”, dengan melihat tanda ini.

Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

Membuat disk penyelamat di lingkungan Windows berbeda. Pengembang VeraCrypt tidak menyertakan solusi untuk masalah ini secara resmi dokumentasi oleh “rescue disk”, namun mengusulkan solusi dengan cara yang berbeda: dia memposting perangkat lunak tambahan untuk membuat “usb penyelamat disk” untuk akses gratis di forum VeraCrypt miliknya. Pengarsip perangkat lunak untuk Windows ini sedang “membuat disk penyelamat usb veracrypt”. Setelah menyimpan penyelamatan disk.iso, proses enkripsi sistem blok dari partisi aktif akan dimulai. Selama enkripsi, pengoperasian OS tidak berhenti, tidak diperlukan restart PC. Setelah operasi enkripsi selesai, partisi aktif menjadi terenkripsi sepenuhnya dan dapat digunakan. Jika boot loader VeraCrypt tidak muncul saat Anda memulai PC, dan operasi pemulihan header tidak membantu, maka centang tanda "boot", itu harus disetel ke partisi tempat Windows berada. (terlepas dari enkripsi dan OS lainnya, lihat tabel No. 1).
Ini melengkapi deskripsi enkripsi sistem blok dengan OS Windows.

[B]LUKS. Enkripsi GNU/Linux (~Debian) sistem operasi yang diinstal. Algoritma dan Langkah

Untuk mengenkripsi distribusi Debian/turunan yang terinstal, Anda perlu memetakan partisi yang telah disiapkan ke perangkat blok virtual, mentransfernya ke disk GNU/Linux yang dipetakan, dan menginstal/mengonfigurasi GRUB2. Jika Anda tidak memiliki server bare metal, dan Anda menghargai waktu Anda, maka Anda perlu menggunakan GUI, dan sebagian besar perintah terminal yang dijelaskan di bawah ini dimaksudkan untuk dijalankan dalam “mode Chuck-Norris”.

B1. Mem-boot PC dari live usb GNU/Linux

“Lakukan tes kripto untuk kinerja perangkat keras”

lscpu && сryptsetup benchmark

Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

Jika Anda adalah pemilik yang bahagia atas mobil bertenaga dengan dukungan perangkat keras AES, maka nomornya akan terlihat seperti sisi kanan terminal; jika Anda adalah pemilik yang bahagia, namun dengan perangkat keras antik, nomornya akan terlihat seperti sisi kiri.

B2. Partisi disk. memasang/memformat fs disk logis HDD ke Ext4 (Gparted)

B2.1. Membuat header partisi sda7 terenkripsiNama-nama partisi akan saya uraikan disini dan selanjutnya, sesuai dengan tabel partisi saya yang diposting diatas. Menurut tata letak disk Anda, Anda harus mengganti nama partisi Anda.

Pemetaan Enkripsi Drive Logis (/dev/sda7 > /dev/mapper/sda7_crypt).
#Pembuatan “partisi LUKS-AES-XTS” dengan mudah

cryptsetup -v -y luksFormat /dev/sda7

Pilihan:

* luksFormat - inisialisasi header LUKS;
* -y -frasa sandi (bukan kunci/file);
* -v -verbalisasi (menampilkan informasi di terminal);
* /dev/sda7 - disk logis Anda dari partisi extended (di mana direncanakan untuk mentransfer/mengenkripsi GNU/Linux).

Algoritma enkripsi default <LUKS1: aes-xts-plain64, Kunci: 256 bit, hashing header LUKS: sha256, RNG: /dev/urandom> (tergantung pada versi cryptsetup).

#Проверка default-алгоритма шифрования
cryptsetup  --help #самая последняя строка в выводе терминала.

Jika tidak ada dukungan perangkat keras untuk AES pada CPU, pilihan terbaik adalah membuat "partisi LUKS-Twofish-XTS" yang diperluas.

B2.2. Pembuatan lanjutan dari "partisi LUKS-Twofish-XTS"

cryptsetup luksFormat /dev/sda7 -v -y -c twofish-xts-plain64 -s 512 -h sha512 -i 1500 --use-urandom

Pilihan:
* luksFormat - inisialisasi header LUKS;
* /dev/sda7 adalah disk logis terenkripsi masa depan Anda;
* -v verbalisasi;
* -y frasa sandi;
* -c pilih algoritma enkripsi data;
* -s ukuran kunci enkripsi;
* -h algoritma hashing/fungsi kripto, RNG digunakan (--gunakan-urandom) untuk menghasilkan kunci enkripsi/dekripsi unik untuk header disk logis, kunci header sekunder (XTS); kunci master unik yang disimpan dalam header disk terenkripsi, kunci XTS sekunder, semua metadata ini dan rutinitas enkripsi yang, menggunakan kunci master dan kunci XTS sekunder, mengenkripsi/mendekripsi data apa pun di partisi (kecuali judul bagian) disimpan dalam ~3MB pada partisi hard disk yang dipilih.
* -i iterasi dalam milidetik, bukan "jumlah" (waktu tunda saat memproses frasa sandi memengaruhi pemuatan OS dan kekuatan kriptografi kunci). Untuk menjaga keseimbangan kekuatan kriptografi, dengan kata sandi sederhana seperti “Rusia” Anda perlu meningkatkan nilai -(i); dengan kata sandi yang rumit seperti “?8dƱob/øfh” nilainya dapat dikurangi.
* —menggunakan generator nomor acak-urandom, menghasilkan kunci dan garam.

Setelah memetakan bagian sda7 > sda7_crypt (pengoperasiannya cepat, karena header terenkripsi dibuat dengan ~3 MB metadata dan itu saja), Anda perlu memformat dan memasang sistem file sda7_crypt.

B2.3. Perbandingan

cryptsetup open /dev/sda7 sda7_crypt
#выполнение данной команды запрашивает ввод секретной парольной фразы.

pilihan:
* buka - cocokkan bagian "dengan nama";
* /dev/sda7 -disk logis;
* sda7_crypt - pemetaan nama yang digunakan untuk memasang partisi terenkripsi atau menginisialisasinya saat OS melakukan booting.

B2.4. Memformat sistem file sda7_crypt ke ext4. Memasang disk di OS(Catatan: Anda tidak akan dapat bekerja dengan partisi terenkripsi di Gparted)

#форматирование блочного шифрованного устройства
mkfs.ext4 -v -L DebSHIFR /dev/mapper/sda7_crypt 

pilihan:
* -v -verbalisasi;
* -L - label drive (yang ditampilkan di Explorer di antara drive lain).

Selanjutnya, Anda harus memasang perangkat blok terenkripsi virtual /dev/sda7_crypt ke sistem

mount /dev/mapper/sda7_crypt /mnt

Bekerja dengan file di folder /mnt akan secara otomatis mengenkripsi/mendekripsi data di sda7.

Lebih mudah untuk memetakan dan memasang partisi di Explorer (GUI nautilus/caja), partisi sudah ada dalam daftar pilihan disk, yang tersisa hanyalah memasukkan frasa sandi untuk membuka/mendekripsi disk. Nama yang cocok akan dipilih secara otomatis dan bukan “sda7_crypt”, tetapi sesuatu seperti /dev/mapper/Luks-xx-xx...

B2.5. Cadangan header disk (~metadata 3MB)Salah satunya penting operasi yang perlu dilakukan tanpa penundaan - salinan cadangan dari header "sda7_crypt". Jika Anda menimpa/merusak header (misalnya menginstal GRUB2 di partisi sda7, dll.), data terenkripsi akan hilang sepenuhnya tanpa ada kemungkinan untuk memulihkannya, karena tidak mungkin membuat ulang kunci yang sama; kunci dibuat secara unik.

#Бэкап заголовка раздела
cryptsetup luksHeaderBackup --header-backup-file ~/Бэкап_DebSHIFR /dev/sda7 

#Восстановление заголовка раздела
cryptsetup luksHeaderRestore --header-backup-file <file> <device>

pilihan:
* luksHeaderBackup —perintah header-backup-file -backup;
* luksHeaderRestore —perintah header-backup-file -restore;
* ~/Backup_DebSHIFR - file cadangan;
* /dev/sda7 - partisi yang salinan cadangan header disk terenkripsinya ingin disimpan.
Pada langkah ini <membuat dan mengedit partisi terenkripsi> selesai.

B3. Memindahkan OS GNU/Linux (sda4) ke partisi terenkripsi (sda7)

Buat folder /mnt2 (Catatan - kami masih bekerja dengan live usb, sda7_crypt dipasang di /mnt), dan pasang GNU/Linux kami di /mnt2, yang perlu dienkripsi.

mkdir /mnt2
mount /dev/sda4 /mnt2

Kami melakukan transfer OS yang benar menggunakan perangkat lunak Rsync

rsync -avlxhHX --progress /mnt2/ /mnt

Opsi rsync dijelaskan dalam paragraf E1.

Selanjutnya, perlu mendefrag partisi disk logis

e4defrag -c /mnt/ #после проверки, e4defrag выдаст, что степень дефрагментации раздела~"0", это заблуждение, которое может вам стоить существенной потери производительности!
e4defrag /mnt/ #проводим дефрагментацию шифрованной GNU/Linux

Buatlah aturan: lakukan e4defrag pada GNU/LInux terenkripsi dari waktu ke waktu jika Anda memiliki HDD.
Transfer dan sinkronisasi [GNU/Linux > GNU/Linux-encrypted] selesai pada langkah ini.

JAM 4. Menyiapkan GNU/Linux pada partisi sda7 terenkripsi

Setelah berhasil mentransfer OS /dev/sda4 > /dev/sda7, Anda perlu masuk ke GNU/Linux pada partisi terenkripsi dan melakukan konfigurasi lebih lanjut (tanpa me-reboot PC) relatif terhadap sistem terenkripsi. Artinya, berada di live usb, tetapi jalankan perintah "relatif terhadap root OS terenkripsi". "chroot" akan mensimulasikan situasi serupa. Untuk dengan cepat menerima informasi tentang OS mana yang sedang Anda gunakan (dienkripsi atau tidak, karena data di sda4 dan sda7 disinkronkan), desinkronisasi OS. Buat di direktori root (sda4/sda7_crypt) file penanda kosong, misalnya, /mnt/encryptedOS dan /mnt2/decryptedOS. Periksa dengan cepat OS apa yang Anda gunakan (termasuk untuk masa depan):

ls /<Tab-Tab>

B4.1. “Simulasi masuk ke OS terenkripsi”

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

B4.2. Memverifikasi bahwa pekerjaan dilakukan terhadap sistem terenkripsi

ls /mnt<Tab-Tab> 
#и видим файл "/шифрованнаяОС"

history
#в выводе терминала должна появиться история команд su рабочей ОС.

B4.3. Membuat/mengonfigurasi swap terenkripsi, mengedit crypttab/fstabKarena file swap diformat setiap kali OS dijalankan, tidak masuk akal untuk membuat dan memetakan swap ke disk logis sekarang, dan memasukkan perintah seperti pada paragraf B2.2. Untuk Swap, kunci enkripsi sementaranya akan dibuat secara otomatis pada setiap permulaan. Siklus hidup kunci swap: melepas/melepas partisi swap (+membersihkan RAM); atau restart OS. Menyiapkan swap, membuka file yang bertanggung jawab untuk konfigurasi perangkat terenkripsi blok (analog dengan file fstab, tetapi bertanggung jawab untuk kripto).

nano /etc/crypttab 

kami mengedit

#"nama target" "perangkat sumber" "file kunci" "pilihan"
tukar /dev/sda8 /dev/urandom swap,cipher=twofish-xts-plain64,ukuran=512,hash=sha512

Pilihan
* swap - nama yang dipetakan saat mengenkripsi /dev/mapper/swap.
* /dev/sda8 - gunakan partisi logis Anda untuk swap.
* /dev/urandom - generator kunci enkripsi acak untuk swap (dengan setiap boot OS baru, kunci baru dibuat). Generator /dev/urandom kurang acak dibandingkan /dev/random, lagipula /dev/random digunakan ketika bekerja dalam keadaan paranoid yang berbahaya. Saat memuat OS, /dev/random memperlambat pemuatan selama beberapa ± menit (lihat analisis sistem).
* swap,cipher=twofish-xts-plain64,size=512,hash=sha512: -partisi mengetahui bahwa itu adalah swap dan diformat “sesuai”; algoritma enkripsi.

#Открываем и правим fstab
nano /etc/fstab

kami mengedit

# swap ada di / dev / sda8 selama instalasi
/dev/mapper/swap tidak ada swap sw 0 0

/dev/mapper/swap adalah nama yang ditetapkan di crypttab.

Pertukaran terenkripsi alternatif
Jika karena alasan tertentu Anda tidak ingin menyerahkan seluruh partisi untuk file swap, Anda dapat menggunakan cara alternatif dan lebih baik: membuat file swap dalam file di partisi terenkripsi dengan OS.

fallocate -l 3G /swap #создание файла размером 3Гб (почти мгновенная операция)
chmod 600 /swap #настройка прав
mkswap /swap #из файла создаём файл подкачки
swapon /swap #включаем наш swap
free -m #проверяем, что файл подкачки активирован и работает
printf "/swap none swap sw 0 0" >> /etc/fstab #при необходимости после перезагрузки swap будет постоянный

Pengaturan partisi swap selesai.

B4.4. Menyiapkan GNU/Linux terenkripsi (mengedit file crypttab/fstab)File /etc/crypttab, seperti yang ditulis di atas, menjelaskan perangkat blok terenkripsi yang dikonfigurasi selama boot sistem.

#правим /etc/crypttab 
nano /etc/crypttab 

jika Anda cocok dengan bagian sda7>sda7_crypt seperti pada paragraf B2.1

# "nama target" "perangkat sumber" "file kunci" "opsi"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none luks

jika Anda cocok dengan bagian sda7>sda7_crypt seperti pada paragraf B2.2

# "nama target" "perangkat sumber" "file kunci" "opsi"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none cipher=twofish-xts-plain64,size=512,hash=sha512

jika Anda cocok dengan bagian sda7>sda7_crypt seperti pada paragraf B2.1 atau B2.2, tetapi tidak ingin memasukkan kembali kata sandi untuk membuka kunci dan mem-boot OS, maka alih-alih kata sandi Anda dapat mengganti kunci rahasia/file acak

# "nama target" "perangkat sumber" "file kunci" "opsi"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 /etc/skey luks

Описание
* tidak ada - melaporkan bahwa saat memuat OS, Anda perlu memasukkan frasa sandi rahasia untuk membuka kunci root.
* UUID - pengidentifikasi partisi. Untuk mengetahui ID Anda, ketik terminal (ingat bahwa mulai saat ini, Anda bekerja di terminal di lingkungan chroot, dan bukan di terminal usb langsung lainnya).

fdisk -l #проверка всех разделов
blkid #должно быть что-то подобное 

/dev/sda7: UUID=«81048598-5bb9-4a53-af92-f3f9e709e2f2» TYPE=«crypto_LUKS» PARTUUID=«0332d73c-07»
/dev/mapper/sda7_crypt: LABEL=«DebSHIFR» UUID=«382111a2-f993-403c-aa2e-292b5eac4780» TYPE=«ext4»

baris ini terlihat ketika meminta blkid dari terminal usb langsung dengan sda7_crypt terpasang).
Anda mengambil UUID dari sdaX Anda (bukan sdaX_crypt!, UUID sdaX_crypt - akan otomatis tertinggal saat membuat konfigurasi grub.cfg).
* cipher=twofish-xts-plain64,size=512,hash=sha512 -luks enkripsi dalam mode lanjutan.
* /etc/skey - file kunci rahasia yang dimasukkan secara otomatis untuk membuka kunci boot OS (daripada memasukkan kata sandi ke-3). Anda dapat menentukan file apa pun hingga 8MB, tetapi data akan dibaca <1MB.

#Создание "генерация" случайного файла <секретного ключа> размером 691б.
head -c 691 /dev/urandom > /etc/skey

#Добавление секретного ключа (691б) в 7-й слот заголовка luks
cryptsetup luksAddKey --key-slot 7 /dev/sda7 /etc/skey

#Проверка слотов "пароли/ключи luks-раздела"
cryptsetup luksDump /dev/sda7 

Ini akan terlihat seperti ini:

(lakukan sendiri dan lihat sendiri).

cryptsetup luksKillSlot /dev/sda7 7 #удаление ключа/пароля из 7 слота

/etc/fstab berisi informasi deskriptif tentang berbagai sistem file.

#Правим /etc/fstab
nano /etc/fstab

# "sistem file" "titik pemasangan" "ketik" "opsi" "dump" "lulus"
# / ada di / dev / sda7 selama instalasi
/dev/mapper/sda7_crypt / ext4 error=remount-ro 0 1

pilihan
* /dev/mapper/sda7_crypt - nama pemetaan sda7>sda7_crypt, yang ditentukan dalam file /etc/crypttab.
Pengaturan crypttab/fstab selesai.

B4.5. Mengedit file konfigurasi. Momen pentingB4.5.1. Mengedit konfigurasi /etc/initramfs-tools/conf.d/resume

#Если у вас ранее был активирован swap раздел, отключите его. 
nano /etc/initramfs-tools/conf.d/resume

dan berkomentar (jika ada) "#" baris "melanjutkan". File tersebut harus benar-benar kosong.

B4.5.2. Mengedit konfigurasi /etc/initramfs-tools/conf.d/cryptsetup

nano /etc/initramfs-tools/conf.d/cryptsetup

harus cocok

# /etc/initramfs-tools/conf.d/cryptsetup
CRYPTSETUP=ya
ekspor CRYPTSETUP

B4.5.3. Mengedit konfigurasi /etc/default/grub (konfigurasi ini bertanggung jawab atas kemampuan menghasilkan grub.cfg saat bekerja dengan /boot terenkripsi)

nano /etc/default/grub

tambahkan baris “GRUB_ENABLE_CRYPTODISK=y”
nilai 'y', grub-mkconfig dan grub-install akan memeriksa drive terenkripsi dan menghasilkan perintah tambahan yang diperlukan untuk mengaksesnya saat boot (insmod ).
pasti ada persamaannya

GRUB_DEFAULT = 0
GRUB_TIMEOUT = 1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || gema Debian`
GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=vendor"
GRUB_CMDLINE_LINUX="percikan senyap tanpa automount"
GRUB_ENABLE_CRYPTODISK=y

B4.5.4. Mengedit konfigurasi /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

periksa salurannya berkomentar <#>.
Di masa depan (dan bahkan sekarang, parameter ini tidak ada artinya, tetapi terkadang mengganggu pembaruan gambar initrd.img).

B4.5.5. Mengedit konfigurasi /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

Menambahkan

KEYFILE_PATTERN=”/etc/skey”
UMASK=0077

Ini akan mengemas kunci rahasia "skey" ke initrd.img, kunci tersebut diperlukan untuk membuka kunci root saat OS melakukan booting (jika tidak ingin memasukkan password lagi, kunci “skey” diganti dengan mobil).

B4.6. Perbarui /boot/initrd.img [versi]Untuk mengemas kunci rahasia ke initrd.img dan menerapkan perbaikan cryptsetup, perbarui gambar

update-initramfs -u -k all

saat memperbarui initrd.img (seperti kata pepatah, “Itu mungkin, tapi belum pasti”) peringatan terkait cryptsetup akan muncul, atau, misalnya, pemberitahuan tentang hilangnya modul Nvidia - ini normal. Setelah file diupdate, periksa apakah benar-benar sudah diupdate, lihat waktunya (relatif terhadap lingkungan chroot./boot/initrd.img). Peringatan! sebelum [update-initramfs -u -k all] pastikan untuk memeriksa apakah cryptsetup terbuka /dev/sda7 sda7_crypt - ini adalah nama yang muncul di /etc/crypttab, jika tidak setelah reboot akan terjadi error busybox)
Pada langkah ini, pengaturan file konfigurasi selesai.

[C] Menginstal dan mengkonfigurasi GRUB2/Protection

C1. Jika perlu, format partisi khusus untuk bootloader (sebuah partisi memerlukan setidaknya 20MB)

mkfs.ext4 -v -L GRUB2 /dev/sda6

C2. Pasang /dev/sda6 ke /mntJadi kita bekerja di chroot, maka tidak akan ada direktori /mnt2 di root, dan folder /mnt akan kosong.
pasang partisi GRUB2

mount /dev/sda6 /mnt

Jika Anda menginstal GRUB2 versi lama, di direktori /mnt/boot/grub/i-386-pc (platform lain dimungkinkan, misalnya, bukan “i386-pc”) tidak ada modul kripto (singkatnya, folder tersebut harus berisi modul, termasuk .mod ini: cryptodisk; luks; gcry_twofish; gcry_sha512; signature_test.mod), dalam hal ini, GRUB2 perlu diguncang.

apt-get update
apt-get install grub2 

Penting! Saat memperbarui paket GRUB2 dari repositori, ketika ditanya “tentang memilih” tempat menginstal bootloader, Anda harus menolak instalasi (alasan - mencoba menginstal GRUB2 - di "MBR" atau di live usb). Jika tidak, Anda akan merusak header/loader VeraCrypt. Setelah memperbarui paket GRUB2 dan membatalkan instalasi, boot loader harus diinstal secara manual pada disk logis, dan bukan di MBR. Jika repositori Anda memiliki versi GRUB2 yang sudah ketinggalan zaman, cobalah memperbarui itu dari situs resminya - belum memeriksanya (bekerja dengan bootloader GRUB 2.02 ~BetaX terbaru).

C3. Menginstal GRUB2 ke partisi extended [sda6]Anda harus memiliki partisi terpasang [item C.2]

grub-install --force --root-directory=/mnt /dev/sda6

opsi
* —force - instalasi bootloader, melewati semua peringatan yang hampir selalu ada dan memblokir instalasi (bendera wajib).
* --root-directory - instalasi direktori ke root sda6.
* /dev/sda6 - partisi sdaХ Anda (jangan lewatkan <spasi> di antara /mnt /dev/sda6).

C4. Membuat file konfigurasi [grub.cfg]Lupakan perintah "update-grub2", dan gunakan perintah pembuatan file konfigurasi lengkap

grub-mkconfig -o /mnt/boot/grub/grub.cfg

setelah menyelesaikan pembuatan/pembaruan file grub.cfg, terminal keluaran harus berisi baris-baris dengan OS yang ditemukan di disk (“grub-mkconfig” mungkin akan menemukan dan mengambil OS dari live usb, jika Anda memiliki flash drive multiboot dengan Windows 10 dan banyak distribusi live - ini normal). Jika terminal "kosong" dan file "grub.cfg" tidak dibuat, maka hal yang sama terjadi ketika ada bug GRUB di sistem (dan kemungkinan besar pemuat dari cabang pengujian repositori), instal ulang GRUB2 dari sumber tepercaya.
Instalasi "konfigurasi sederhana" dan pengaturan GRUB2 selesai.

C5. Uji bukti OS GNU/Linux terenkripsiKami menyelesaikan misi kripto dengan benar. Keluar dari GNU/Linux yang terenkripsi dengan hati-hati (keluar dari lingkungan chroot).

umount -a #размонтирование всех смонтированных разделов шифрованной GNU/Linux
Ctrl+d #выход из среды chroot
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount -a #размонтирование всех смонтированных разделов на live usb
reboot

Setelah PC di-boot ulang, bootloader VeraCrypt akan dimuat.
Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

*Memasukkan kata sandi untuk partisi aktif akan mulai memuat Windows.
*Menekan tombol "Esc" akan mentransfer kontrol ke GRUB2, jika Anda memilih GNU/Linux terenkripsi - kata sandi (sda7_crypt) akan diperlukan untuk membuka kunci /boot/initrd.img (jika grub2 menulis uuid "tidak ditemukan" - ini adalah masalah dengan bootloader grub2, itu harus diinstal ulang, misalnya, dari cabang uji/stabil dll.).
Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

*Tergantung pada cara Anda mengkonfigurasi sistem (lihat paragraf B4.4/4.5), setelah memasukkan kata sandi yang benar untuk membuka kunci image /boot/initrd.img, Anda memerlukan kata sandi untuk memuat kernel/root OS, atau rahasianya kunci akan secara otomatis diganti dengan " skey", menghilangkan kebutuhan untuk memasukkan kembali frasa sandi.
Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi
(layar “penggantian otomatis kunci rahasia”).

*Kemudian proses yang biasa dilakukan adalah memuat GNU/Linux dengan otentikasi akun pengguna.
Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

*Setelah otorisasi pengguna dan login ke OS, Anda perlu memperbarui /boot/initrd.img lagi (lihat B4.6).

update-initramfs -u -k all

Dan jika ada baris tambahan di menu GRUB2 (dari pickup OS-m dengan live usb) Singkirkan mereka

mount /dev/sda6 /mnt
grub-mkconfig -o /mnt/boot/grub/grub.cfg

Ringkasan singkat tentang enkripsi sistem GNU/Linux:

  • GNU/Linuxinux sepenuhnya terenkripsi, termasuk /boot/kernel dan initrd;
  • kunci rahasia dikemas dalam initrd.img;
  • skema otorisasi saat ini (memasukkan kata sandi untuk membuka kunci initrd; kata sandi/kunci untuk mem-boot OS; kata sandi untuk otorisasi akun Linux).

Enkripsi sistem "Konfigurasi GRUB2 Sederhana" pada partisi blok selesai.

C6. Konfigurasi GRUB2 tingkat lanjut. Perlindungan bootloader dengan tanda tangan digital + perlindungan otentikasiGNU/Linux sepenuhnya dienkripsi, tetapi bootloader tidak dapat dienkripsi - kondisi ini ditentukan oleh BIOS. Karena alasan ini, boot GRUB2 terenkripsi berantai tidak dimungkinkan, tetapi boot berantai sederhana dimungkinkan/tersedia, tetapi dari sudut pandang keamanan hal itu tidak diperlukan [lihat P.F].
Untuk GRUB2 yang “rentan”, pengembang menerapkan algoritma perlindungan bootloader “tanda tangan/otentikasi”.

  • Ketika bootloader dilindungi oleh “tanda tangan digitalnya sendiri”, modifikasi file secara eksternal, atau upaya untuk memuat modul tambahan di bootloader ini, akan menyebabkan proses boot diblokir.
  • Saat melindungi bootloader dengan otentikasi, untuk memilih memuat distribusi, atau memasukkan perintah tambahan di CLI, Anda harus memasukkan login dan kata sandi pengguna super-GRUB2.

C6.1. Perlindungan otentikasi bootloaderPeriksa apakah Anda bekerja di terminal pada OS terenkripsi

ls /<Tab-Tab> #обнаружить файл-маркер

buat kata sandi pengguna super untuk otorisasi di GRUB2

grub-mkpasswd-pbkdf2 #введите/повторите пароль суперпользователя. 

Dapatkan hash kata sandi. Sesuatu seperti ini

grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

pasang partisi GRUB

mount /dev/sda6 /mnt 

edit konfigurasinya

nano -$ /mnt/boot/grub/grub.cfg 

periksa pencarian file bahwa tidak ada tanda di mana pun di “grub.cfg” (“-tidak dibatasi” “-pengguna”,
tambahkan di bagian paling akhir (sebelum baris ### END /etc/grub.d/41_custom ###)
"setel pengguna super="root"
kata sandi_pbkdf2 akar hash."

Seharusnya seperti ini

# File ini menyediakan cara mudah untuk menambahkan entri menu khusus. Cukup ketik
# entri menu yang ingin Anda tambahkan setelah komentar ini. Hati-hati jangan sampai berubah
# baris 'exec tail' di atas.
### AKHIR /etc/grub.d/40_custom ###

### MULAI /etc/grub.d/41_custom ###
jika [ -f ${config_directory}/custom.cfg ]; Kemudian
sumber ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; Kemudian
sumber $prefix/custom.cfg;
fi
atur pengguna super = "root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### AKHIR /etc/grub.d/41_custom ###
#

Jika Anda sering menggunakan perintah “grub-mkconfig -o /mnt/boot/grub/grub.cfg” dan tidak ingin selalu melakukan perubahan pada grub.cfg, masukkan baris di atas (Kata sandi masuk) dalam skrip pengguna GRUB di bagian paling bawah

nano /etc/grub.d/41_custom 

kucing <<EOF
atur pengguna super = "root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF

Saat membuat konfigurasi “grub-mkconfig -o /mnt/boot/grub/grub.cfg”, baris yang bertanggung jawab untuk otentikasi akan ditambahkan secara otomatis ke grub.cfg.
Langkah ini menyelesaikan pengaturan otentikasi GRUB2.

C6.2. Perlindungan bootloader dengan tanda tangan digitalDiasumsikan bahwa Anda sudah memiliki kunci enkripsi pgp pribadi (atau buat kunci seperti itu). Sistem harus menginstal perangkat lunak kriptografi: gnuPG; kleopatra/IPK; kuda laut. Perangkat lunak Crypto akan membuat hidup Anda lebih mudah dalam semua hal tersebut. Kuda laut - versi stabil dari paket 3.14.0 (versi yang lebih tinggi, misalnya, V3.20, rusak dan memiliki bug yang signifikan).

Kunci PGP perlu dibuat/diluncurkan/ditambahkan hanya di lingkungan su!

Hasilkan kunci enkripsi pribadi

gpg - -gen-key

Ekspor kunci Anda

gpg --export -o ~/perskey

Pasang disk logis di OS jika belum terpasang

mount /dev/sda6 /mnt #sda6 – раздел GRUB2

bersihkan partisi GRUB2

rm -rf /mnt/

Instal GRUB2 di sda6, letakkan kunci pribadi Anda di gambar GRUB utama "core.img"

grub-install --force --modules="gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa" -k ~/perskey --root-directory=/mnt /dev/sda6

opsi
* --force - instal bootloader, lewati semua peringatan yang selalu ada (bendera wajib).
* —modules="gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa" - menginstruksikan GRUB2 untuk melakukan pramuat modul yang diperlukan saat PC dinyalakan.
* -k ~/perskey -jalur ke “kunci PGP” (setelah memasukkan kunci ke dalam gambar, dapat dihapus).
* --root-directory -mengatur direktori boot ke root sda6
/dev/sda6 - partisi sdaX Anda.

Menghasilkan/memperbarui grub.cfg

grub-mkconfig  -o /mnt/boot/grub/grub.cfg

Tambahkan baris “trust /boot/grub/perskey” di akhir file “grub.cfg” (paksa penggunaan kunci pgp.) Karena kami menginstal GRUB2 dengan satu set modul, termasuk modul tanda tangan “signature_test.mod”, ini menghilangkan kebutuhan untuk menambahkan perintah seperti “set check_signatures=enforce” ke konfigurasi.

Seharusnya terlihat seperti ini (baris akhir dalam file grub.cfg)

### MULAI /etc/grub.d/41_custom ###
jika [ -f ${config_directory}/custom.cfg ]; Kemudian
sumber ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; Kemudian
sumber $prefix/custom.cfg;
fi
percaya /boot/grub/perskey
atur pengguna super = "root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### AKHIR /etc/grub.d/41_custom ###
#

Path ke “/boot/grub/perskey” tidak perlu diarahkan ke partisi disk tertentu, misalnya hd0,6; untuk bootloader itu sendiri, “root” adalah path default dari partisi tempat GRUB2 diinstal (lihat set rot=..).

Menandatangani GRUB2 (semua file di semua direktori /GRUB) dengan kunci Anda "perskey".
Solusi sederhana tentang cara menandatangani (untuk penjelajah nautilus/caja): instal ekstensi “kuda laut” untuk Explorer dari repositori. Kunci Anda harus ditambahkan ke lingkungan su.
Buka Explorer dengan sudo “/mnt/boot” – RMB – tanda tangan. Di layar tampilannya seperti ini

Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

Kuncinya sendiri adalah “/mnt/boot/grub/perskey” (salin ke direktori grub) juga harus ditandatangani dengan tanda tangan Anda sendiri. Periksa apakah tanda tangan file [*.sig] muncul di direktori/subdirektori.
Dengan menggunakan metode yang dijelaskan di atas, tandatangani “/boot” (kernel kami, initrd). Jika waktu Anda sangat berharga, maka metode ini menghilangkan kebutuhan untuk menulis skrip bash untuk menandatangani “banyak file.”

Untuk menghapus semua tanda tangan bootloader (jika ada yang tidak beres)

rm -f $(find /mnt/boot/grub -type f -name '*.sig')

Agar tidak menandatangani bootloader setelah memperbarui sistem, kami membekukan semua paket pembaruan yang terkait dengan GRUB2.

apt-mark hold grub-common grub-pc grub-pc-bin grub2 grub2-common

Langkah ini <melindungi bootloader dengan tanda tangan digital> konfigurasi lanjutan GRUB2 selesai.

C6.3. Uji bukti bootloader GRUB2, dilindungi oleh tanda tangan digital dan otentikasiGRUB2. Saat memilih distribusi GNU/Linux atau memasuki CLI (garis komando) Otorisasi pengguna super akan diperlukan. Setelah memasukkan nama pengguna/kata sandi yang benar, Anda memerlukan kata sandi initrd

Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi
Tangkapan layar otentikasi pengguna super GRUB2 yang berhasil.

Jika Anda mengutak-atik salah satu file GRUB2/membuat perubahan pada grub.cfg, atau menghapus file/tanda tangan, atau memuat module.mod berbahaya, peringatan terkait akan muncul. GRUB2 akan menjeda pemuatan.

Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi
Tangkapan layar, upaya untuk mengganggu GRUB2 “dari luar”.

Selama booting "normal" "tanpa intrusi", status kode keluar sistem adalah "0". Oleh karena itu, tidak diketahui apakah proteksi tersebut berfungsi atau tidak (yaitu, "dengan atau tanpa perlindungan tanda tangan bootloader" selama pemuatan normal, statusnya sama "0" - ini buruk).

Bagaimana cara memeriksa perlindungan tanda tangan digital?

Cara yang tidak nyaman untuk memeriksa: memalsukan/menghapus modul yang digunakan oleh GRUB2, misalnya, menghapus tanda tangan luks.mod.sig dan mendapatkan kesalahan.

Cara yang benar: buka CLI bootloader dan ketik perintah

trust_list

Sebagai tanggapan, Anda akan menerima sidik jari “perskey”; jika statusnya “0”, maka perlindungan tanda tangan tidak berfungsi, periksa kembali paragraf C6.2.
Pada langkah ini, konfigurasi lanjutan “Melindungi GRUB2 dengan tanda tangan digital dan otentikasi” selesai.

C7 Metode alternatif untuk melindungi bootloader GRUB2 menggunakan hashingMetode "Perlindungan/Otentikasi Boot Loader CPU" yang dijelaskan di atas adalah metode klasik. Karena ketidaksempurnaan GRUB2, dalam kondisi paranoid rentan terhadap serangan nyata, yang akan saya berikan di bawah pada paragraf [F]. Selain itu, setelah memperbarui OS/kernel, bootloader harus ditandatangani ulang.

Melindungi bootloader GRUB2 menggunakan hashing

Keunggulan dibandingkan klasik:

  • Tingkat keandalan yang lebih tinggi (hashing/verifikasi hanya dilakukan dari sumber daya lokal terenkripsi. Seluruh partisi yang dialokasikan di bawah GRUB2 dikontrol untuk perubahan apa pun, dan yang lainnya dienkripsi; dalam skema klasik dengan perlindungan/Otentikasi pemuat CPU, hanya file yang dikontrol, tetapi tidak gratis ruang, di mana “sesuatu” sesuatu yang menyeramkan” dapat ditambahkan).
  • Pencatatan terenkripsi (log terenkripsi pribadi yang dapat dibaca manusia ditambahkan ke skema).
  • Mempercepat (perlindungan/verifikasi seluruh partisi yang dialokasikan untuk GRUB2 terjadi hampir seketika).
  • Otomatisasi semua proses kriptografi.

Kekurangan dibandingkan klasik.

  • Pemalsuan tanda tangan (secara teoritis, adalah mungkin untuk menemukan tabrakan fungsi hash tertentu).
  • Peningkatan tingkat kesulitan (dibandingkan dengan versi klasik, diperlukan lebih banyak keterampilan dalam OS GNU/Linux).

Cara kerja ide hashing GRUB2/partisi

Partisi GRUB2 “ditandatangani”; ketika OS melakukan booting, partisi boot loader diperiksa apakah tidak dapat diubah, diikuti dengan masuk ke lingkungan yang aman (terenkripsi). Jika bootloader atau partisinya disusupi, selain log intrusi, berikut ini akan diluncurkan:

Benda.Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

Pemeriksaan serupa terjadi empat kali sehari, yang tidak memuat sumber daya sistem.
Menggunakan perintah “-$ check_GRUB”, pemeriksaan instan terjadi kapan saja tanpa logging, tetapi dengan keluaran informasi ke CLI.
Menggunakan perintah “-$ sudo signature_GRUB”, boot loader/partisi GRUB2 langsung ditandatangani ulang dan loggingnya diperbarui (diperlukan setelah pembaruan OS/boot), dan hidup terus berjalan.

Penerapan metode hashing untuk bootloader dan bagiannya

0) Mari kita tandatangani bootloader/partisi GRUB dengan terlebih dahulu memasangnya di/media/nama pengguna

-$ hashdeep -c md5 -r /media/username/GRUB > /podpis.txt

1) Kami membuat skrip tanpa ekstensi di root OS terenkripsi ~/podpis, menerapkan hak keamanan 744 yang diperlukan dan perlindungan yang sangat mudah untuk skrip tersebut.

Mengisi isinya

#!/bin/bash

#Проверка всего раздела выделенного под загрузчик GRUB2 на неизменность.
#Ведется лог "о вторжении/успешной проверке каталога", короче говоря ведется полный лог с тройной вербализацией. Внимание! обратить взор на пути: хранить ЦП GRUB2 только на зашифрованном разделе OS GNU/Linux. 
echo -e "******************************************************************n" >> '/var/log/podpis.txt' && date >> '/var/log/podpis.txt' && hashdeep -vvv -a -k '/podpis.txt' -r '/media/username/GRUB' >> '/var/log/podpis.txt'

a=`tail '/var/log/podpis.txt' | grep failed` #не использовать "cat"!! 
b="hashdeep: Audit failed"

#Условие: в случае любых каких-либо изменений в разделе выделенном под GRUB2 к полному логу пишется второй отдельный краткий лог "только о вторжении" и выводится на монитор мигание gif-ки "warning".
if [[ "$a" = "$b" ]] 
then
echo -e "****n" >> '/var/log/vtorjenie.txt' && echo "vtorjenie" >> '/var/log/vtorjenie.txt' && date >> '/var/log/vtorjenie.txt' & sudo -u username DISPLAY=:0 eom '/warning.gif' 
fi

Kami menjalankan skrip dari su, hashing partisi GRUB dan bootloadernya akan diperiksa, simpan lognya.

Mari kita membuat atau menyalin, misalnya, “file berbahaya” [virus.mod] ke partisi GRUB2 dan menjalankan pemindaian/pengujian sementara:

-$ hashdeep -vvv -a -k '/podpis.txt' -r '/media/username/GRUB

CLI harus melihat invasi ke -benteng- kami#Dipangkas login di CLI

Ср янв  2 11::41 MSK 2020
/media/username/GRUB/boot/grub/virus.mod: Moved from /media/username/GRUB/1nononoshifr
/media/username/GRUB/boot/grub/i386-pc/mda_text.mod: Ok
/media/username/GRUB/boot/grub/grub.cfg: Ok
hashdeep: Audit failed
   Input files examined: 0
  Known files expecting: 0
          Files matched: 325
Files partially matched: 0
            Files moved: 1
        New files found: 0
  Known files not found: 0

#Seperti yang Anda lihat, muncul “File dipindahkan: 1 dan Audit gagal”, yang berarti pemeriksaan gagal.
Karena sifat partisi yang diuji, alih-alih “File baru ditemukan” > “File dipindahkan”

2) Letakkan gif di sini> ~/warning.gif, atur izin ke 744.

3) Mengonfigurasi fstab untuk mengotomatiskan partisi GRUB saat boot

-$ sudo nano /etc/fstab

LABEL=GRUB /media/nama pengguna/GRUB ext4 default 0 0

4) Memutar log

-$ sudo nano /etc/logrotate.d/podpis 

/var/log/podpis.txt {
harian
putar 50
ukuran 5M
teks tanggal
kompres
delaycompress
olddir /var/log/old
}

/var/log/vtorjenie.txt {
bulanan
putar 5
ukuran 5M
teks tanggal
olddir /var/log/old
}

5) Tambahkan pekerjaan ke cron

-$ sudo crontab -e

restart '/ berlangganan'
0 */6 * * * '/podpis

6) Membuat alias permanen

-$ sudo su
-$ echo "alias подпись_GRUB='hashdeep -c md5 -r /media/username/GRUB > /podpis.txt'" >> /root/.bashrc && bash
-$ echo "alias проверка_GRUB='hashdeep -vvv -a -k '/podpis.txt' -r /media/username/GRUB'" >> .bashrc && bash

Setelah pembaruan OS -$ apt-get upgrade tandatangani kembali partisi GRUB kami
-$ подпись_GRUB
Pada titik ini, perlindungan hashing pada partisi GRUB telah selesai.

[D] Wiping - penghancuran data yang tidak terenkripsi

Hapus file pribadi Anda sepenuhnya sehingga “bahkan Tuhan pun tidak dapat membacanya,” menurut juru bicara Carolina Selatan Trey Gowdy.

Seperti biasa, ada berbagai “mitos dan legenda", tentang memulihkan data setelah dihapus dari harddisk. Jika Anda percaya pada sihir siber, atau merupakan anggota komunitas web Dr dan belum pernah mencoba pemulihan data setelah dihapus/ditimpa (misalnya, pemulihan menggunakan R-studio), maka metode yang diusulkan sepertinya tidak cocok untuk Anda, gunakan metode yang paling dekat dengan Anda.

Setelah berhasil mentransfer GNU/Linux ke partisi terenkripsi, salinan lama harus dihapus tanpa kemungkinan pemulihan data. Metode pembersihan universal: perangkat lunak untuk perangkat lunak GUI gratis Windows/Linux BleachBit.
Быстро memformat bagian tersebut, data yang perlu dimusnahkan (melalui Gparted) luncurkan BleachBit, pilih "Bersihkan ruang kosong" - pilih partisi (sdaX Anda dengan salinan GNU/Linux sebelumnya), proses pengupasan akan dimulai. BleachBit - menghapus disk dalam sekali jalan - inilah yang "kita butuhkan", Tapi! Secara teori, ini hanya berfungsi jika Anda memformat disk dan membersihkannya di perangkat lunak BB v2.0.

Perhatian! BB menghapus disk, meninggalkan metadata; nama file dipertahankan ketika data dihilangkan (Ccleaner - tidak meninggalkan metadata).

Dan mitos tentang kemungkinan pemulihan data tidak sepenuhnya hanya mitos.Bleachbit V2.0-2 bekas paket OS Debian yang tidak stabil (dan perangkat lunak serupa lainnya: sfill; wipe-Nautilus - juga diperhatikan dalam bisnis kotor ini) sebenarnya memiliki bug kritis: fungsi "pembersihan ruang kosong". itu tidak berfungsi dengan benar pada HDD/Flash drive (ntfs/ext4). Perangkat lunak semacam ini, ketika mengosongkan ruang kosong, tidak menimpa seluruh disk, seperti yang dipikirkan banyak pengguna. Dan beberapa (banyak) data yang dihapus OS/perangkat lunak menganggap data ini sebagai data yang tidak terhapus/data pengguna dan ketika membersihkan “OSP” ia melewatkan file-file ini. Masalahnya adalah setelah sekian lama, membersihkan disk "file yang dihapus" dapat dipulihkan bahkan setelah 3+ kali menghapus disk.
Di GNU/Linux dan Bleachbit 2.0-2 Fungsi menghapus file dan direktori secara permanen berfungsi dengan baik, tetapi tidak membersihkan ruang kosong. Sebagai perbandingan: pada Windows di CCleaner, fungsi “OSP for ntfs” berfungsi dengan baik, dan Tuhan benar-benar tidak akan dapat membaca data yang dihapus.

Jadi, hapus secara menyeluruh "mengkompromikan" data lama yang tidak terenkripsi, Bleachbit memerlukan akses langsung ke data ini, lalu, gunakan fungsi “hapus file/direktori secara permanen”.
Untuk menghapus “file yang dihapus menggunakan alat OS standar” di Windows, gunakan CCleaner/BB dengan fungsi “OSP”. Di GNU/Linux mengatasi masalah ini (hapus file yang terhapus) Anda perlu berlatih sendiri (menghapus data + upaya independen untuk memulihkannya dan Anda tidak boleh bergantung pada versi perangkat lunak (jika bukan bookmark, maka bug)), hanya dalam kasus ini Anda akan dapat memahami mekanisme masalah ini dan menghapus data yang terhapus sepenuhnya.

Saya belum menguji Bleachbit v3.0, masalahnya mungkin sudah teratasi.
Bleachbit v2.0 bekerja dengan jujur.

Pada langkah ini, penghapusan disk selesai.

[E] Cadangan universal OS terenkripsi

Setiap pengguna memiliki metodenya sendiri dalam mencadangkan data, tetapi data Sistem OS yang dienkripsi memerlukan pendekatan tugas yang sedikit berbeda. Perangkat lunak terpadu, seperti Clonezilla dan perangkat lunak serupa, tidak dapat bekerja secara langsung dengan data terenkripsi.

Pernyataan masalah pencadangan perangkat blok terenkripsi:

  1. universalitas - algoritma/perangkat lunak pencadangan yang sama untuk Windows/Linux;
  2. kemampuan untuk bekerja di konsol dengan live usb GNU/Linux apa pun tanpa perlu mengunduh perangkat lunak tambahan (tapi tetap merekomendasikan GUI);
  3. keamanan salinan cadangan - “gambar” yang disimpan harus dienkripsi/dilindungi kata sandi;
  4. ukuran data terenkripsi harus sesuai dengan ukuran data sebenarnya yang disalin;
  5. ekstraksi mudah file yang diperlukan dari salinan cadangan (tidak ada persyaratan untuk mendekripsi seluruh bagian terlebih dahulu).

Misalnya, pencadangan/pemulihan melalui utilitas “dd”.

dd if=/dev/sda7 of=/путь/sda7.img bs=7M conv=sync,noerror
dd if=/путь/sda7.img of=/dev/sda7 bs=7M conv=sync,noerror

Ini memenuhi hampir semua poin tugas, tetapi menurut poin 4, itu tidak tahan terhadap kritik, karena menyalin seluruh partisi disk, termasuk ruang kosong, tidak menarik.

Misalnya, pencadangan GNU/Linux melalui pengarsip [tar" | gpg] memang nyaman, tetapi untuk pencadangan Windows Anda perlu mencari solusi lain - ini tidak menarik.

E1. Pencadangan universal Windows/Linux. Tautan rsync (Grsync)+volume VeraCryptAlgoritma untuk membuat salinan cadangan:

  1. membuat wadah terenkripsi (volume/berkas) VeraCrypt untuk OS;
  2. mentransfer/menyinkronkan OS menggunakan perangkat lunak Rsync ke dalam wadah kripto VeraCrypt;
  3. jika perlu, unggah volume VeraCrypt ke www.

Membuat container VeraCrypt terenkripsi memiliki karakteristiknya sendiri:
menciptakan volume dinamis (pembuatan DT hanya tersedia di Windows, juga dapat digunakan di GNU/Linux);
membuat volume biasa, tapi ada persyaratan “karakter paranoid” (menurut pengembang) – pemformatan wadah.

Volume dinamis dibuat hampir seketika di Windows, namun ketika menyalin data dari GNU/Linux > VeraCrypt DT, kinerja keseluruhan operasi pencadangan menurun secara signifikan.

Volume Twofish reguler 70 GB dibuat (anggap saja, rata-rata daya PC) ke HDD ~ dalam setengah jam (menimpa data kontainer sebelumnya dalam sekali jalan karena persyaratan keamanan). Fungsi memformat volume dengan cepat saat membuatnya telah dihapus dari VeraCrypt Windows/Linux, jadi pembuatan container hanya dapat dilakukan melalui “penulisan ulang sekali jalan” atau membuat volume dinamis berperforma rendah.

Buat volume VeraCrypt biasa (bukan dinamis/ntfs), seharusnya tidak ada masalah.

Konfigurasikan/buat/buka wadah di VeraCrypt GUI> GNU/Linux live usb (volume akan dipasang secara otomatis ke /media/veracrypt2, volume OS Windows akan dipasang ke /media/veracrypt1). Membuat cadangan terenkripsi OS Windows menggunakan GUI rsync (grsync)dengan mencentang kotaknya.

Enkripsi disk penuh dari sistem yang diinstal Windows Linux. Multi-boot terenkripsi

Tunggu hingga prosesnya selesai. Setelah pencadangan selesai, kami akan memiliki satu file terenkripsi.

Demikian pula, buat salinan cadangan OS GNU/Linux dengan menghapus centang pada kotak “kompatibilitas Windows” di rsync GUI.

Perhatian! buat wadah Veracrypt untuk “cadangan GNU/Linux” di sistem file ext4. Jika Anda membuat cadangan ke wadah ntfs, maka ketika Anda memulihkan salinan tersebut, Anda akan kehilangan semua hak/grup atas semua data Anda.

Anda dapat melakukan semua operasi di terminal. Opsi dasar untuk rsync:
* -g -simpan grup;
* -P —progress — status waktu yang dihabiskan untuk mengerjakan file;
* -H - salin hardlink apa adanya;
* -a -mode arsip (beberapa tanda rlptgoD);
* -v -verbalisasi.

Jika Anda ingin memasang “Volume Windows VeraCrypt” melalui konsol di perangkat lunak cryptsetup, Anda dapat membuat alias (su)

echo "alias veramount='cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sdaX Windows_crypt && mount /dev/mapper/ Windows_crypt /media/veracrypt1'" >> .bashrc && bash

Sekarang perintah "veramount images" akan meminta Anda memasukkan frasa sandi, dan volume sistem Windows terenkripsi akan dipasang di OS.

Petakan/pasang volume sistem VeraCrypt dalam perintah cryptsetup

cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sdaX Windows_crypt
mount /dev/mapper/Windows_crypt /mnt

Petakan/pasang partisi/kontainer VeraCrypt dalam perintah cryptsetup

cryptsetup open --veracrypt --type tcrypt /dev/sdaY test_crypt
mount /dev/mapper/test_crypt /mnt

Daripada menggunakan alias, kami akan menambahkan (skrip untuk startup) volume sistem dengan OS Windows dan disk ntfs terenkripsi logis ke startup GNU/Linux

Buat skrip dan simpan di ~/VeraOpen.sh

printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --tcrypt-system --type tcrypt /dev/sda3 Windows_crypt && mount /dev/mapper/Windows_crypt /media/Winda7 #декодируем пароль из base64 (bob) и отправляем его на запрос ввода пароля при монтировании системного диска ОС Windows.
printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --type tcrypt /dev/sda1 ntfscrypt && mount /dev/mapper/ntfscrypt /media/КонтейнерНтфс #аналогично, но монтируем логический диск ntfs.

Kami mendistribusikan hak yang “benar”:

sudo chmod 100 /VeraOpen.sh

Buat dua file identik (nama yang sama!) di /etc/rc.local dan ~/etc/init.d/rc.local
Mengisi file

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will «exit 0» on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

sh -c "sleep 1 && '/VeraOpen.sh'" #после загрузки ОС, ждём ~ 1с и только потом монтируем диски.
exit 0

Kami mendistribusikan hak yang “benar”:

sudo chmod 100 /etc/rc.local && sudo chmod 100 /etc/init.d/rc.local 

Itu saja, sekarang ketika memuat GNU/Linux kita tidak perlu memasukkan kata sandi untuk memasang disk ntfs terenkripsi, disk tersebut dipasang secara otomatis.

Catatan singkat tentang apa yang dijelaskan di atas pada paragraf E1 langkah demi langkah (tetapi sekarang untuk OS GNU/Linux)
1) Buat volume di fs ext4 > 4gb (untuk file) Linux di Veracrypt [Cryptbox].
2) Reboot ke usb langsung.
3) ~$ cryptsetup buka /dev/sda7 Lunux #mapping partisi terenkripsi.
4) ~$ mount /dev/mapper/Linux /mnt #mount partisi terenkripsi ke /mnt.
5) ~$ mkdir mnt2 #membuat direktori untuk cadangan di masa mendatang.
6) ~$ cryptsetup open —veracrypt —ketik tcrypt ~/CryptoBox CryptoBox && mount /dev/mapper/CryptoBox /mnt2 #Map volume Veracrypt bernama “CryptoBox” dan pasang CryptoBox ke /mnt2.
7) ~$ rsync -avlxhHX —kemajuan /mnt /mnt2/ #operasi pencadangan partisi terenkripsi ke volume Veracrypt terenkripsi.

(p/s/ Perhatian! Jika Anda mentransfer GNU/Linux terenkripsi dari satu arsitektur/mesin ke arsitektur/mesin lainnya, misalnya, Intel > AMD (yaitu, menyebarkan cadangan dari satu partisi terenkripsi ke partisi Intel > AMD terenkripsi lainnya), Jangan lupa Setelah mentransfer OS terenkripsi, mungkin edit kunci pengganti rahasia alih-alih kata sandi. kunci sebelumnya ~/etc/skey - tidak akan lagi cocok dengan partisi terenkripsi lainnya, dan tidak disarankan untuk membuat kunci baru "cryptsetup luksAddKey" dari bawah chroot - kesalahan mungkin terjadi, cukup di ~/etc/crypttab tentukan alih-alih “/etc/skey” sementara “none” ", setelah melakukan rebot dan masuk ke OS, buat ulang kunci wildcard rahasia Anda lagi).

Sebagai veteran TI, pastikan untuk membuat cadangan terpisah dari header partisi OS Windows/Linux yang terenkripsi, atau enkripsi akan merugikan Anda.
Pada langkah ini, pencadangan OS terenkripsi selesai.

[F] Serangan pada bootloader GRUB2

DetailJika Anda telah melindungi bootloader Anda dengan tanda tangan digital dan/atau otentikasi (lihat poin C6.), maka ini tidak akan melindungi terhadap akses fisik. Data terenkripsi tetap tidak dapat diakses, namun perlindungannya akan dilewati (setel ulang perlindungan tanda tangan digital) GRUB2 mengizinkan penjahat dunia maya untuk memasukkan kodenya ke dalam bootloader tanpa menimbulkan kecurigaan (kecuali jika pengguna memantau status bootloader secara manual, atau membuat kode skrip arbitrer yang kuat untuk grub.cfg).

Algoritma serangan. Pengacau

* Boot PC dari live usb. Perubahan apa pun (pelanggar) file akan memberi tahu pemilik sebenarnya dari PC tentang intrusi ke dalam bootloader. Tapi instalasi ulang sederhana GRUB2 menjaga grub.cfg (dan kemampuan selanjutnya untuk mengeditnya) akan memungkinkan penyerang untuk mengedit file apa pun (dalam situasi ini, saat memuat GRUB2, pengguna sebenarnya tidak akan diberitahu. Statusnya sama <0>)
* Memasang partisi yang tidak terenkripsi, menyimpan “/mnt/boot/grub/grub.cfg”.
* Instal ulang bootloader (menghapus "perskey" dari gambar core.img)

grub-install --force --root-directory=/mnt /dev/sda6

* Mengembalikan “grub.cfg” > “/mnt/boot/grub/grub.cfg”, mengeditnya jika perlu, misalnya menambahkan modul “keylogger.mod” ke folder dengan modul loader, di “grub.cfg” > baris "keylogger insmod". Atau misalnya jika musuh licik, maka setelah install ulang GRUB2 (semua tanda tangan tetap di tempatnya) itu membangun image GRUB2 utama menggunakan "grub-mkimage dengan opsi (-c)." Opsi “-c” akan memungkinkan Anda memuat konfigurasi Anda sebelum memuat “grub.cfg” utama. Konfigurasi dapat terdiri dari hanya satu baris: pengalihan ke “modern.cfg” apa pun, dicampur, misalnya, dengan ~400 file (modul+tanda tangan) di folder "/boot/grub/i386-pc". Dalam hal ini, penyerang dapat memasukkan kode arbitrer dan memuat modul tanpa mempengaruhi “/boot/grub/grub.cfg”, bahkan jika pengguna menerapkan “hashsum” ke file dan menampilkannya untuk sementara di layar.
Penyerang tidak perlu meretas login/kata sandi pengguna super GRUB2; ia hanya perlu menyalin baris-barisnya (bertanggung jawab untuk otentikasi) "/boot/grub/grub.cfg" ke "modern.cfg" Anda

atur pengguna super = "root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

Dan pemilik PC akan tetap diautentikasi sebagai superuser GRUB2.

Pemuatan rantai (bootloader memuat bootloader lain), seperti yang saya tulis di atas, tidak masuk akal (ini dimaksudkan untuk tujuan yang berbeda). Bootloader terenkripsi tidak dapat dimuat karena BIOS (boot rantai memulai ulang GRUB2> GRUB2 terenkripsi, kesalahan!). Namun, jika Anda masih menggunakan gagasan pemuatan berantai, Anda dapat yakin bahwa yang dimuat adalah yang terenkripsi. (tidak dimodernisasi) "grub.cfg" dari partisi terenkripsi. Dan ini juga merupakan rasa aman yang salah, karena segala sesuatu yang ditunjukkan dalam “grub.cfg” terenkripsi (pemuatan modul) menambahkan hingga modul yang dimuat dari GRUB2 yang tidak terenkripsi.

Jika Anda ingin memeriksanya, alokasikan/enkripsi partisi lain sehari-hari, salin GRUB2 ke sana (operasi grub-install pada partisi terenkripsi tidak dimungkinkan) dan di "grub.cfg" (konfigurasi tidak terenkripsi) mengubah garis seperti ini

menuentry 'GRUBx2' --class parrot --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-382111a2-f993-403c-aa2e-292b5eac4780' {
memuat_video
insmod gzio
jika [ x$grub_platform = xxen ]; lalu insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod cryptodisk
insmod lux
insmod gcry_twofish
insmod gcry_twofish
insmod gcry_sha512
insmod ext2
cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838
set root=’cryptouuid/15c47d1c4bd34e5289df77bcf60ee838′
normal /boot/grub/grub.cfg
}

string
* insmod - memuat modul yang diperlukan untuk bekerja dengan disk terenkripsi;
* GRUBx2 - nama baris yang ditampilkan di menu boot GRUB2;
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 -lihat. fdisk -l (sda9);
* atur root - instal root;
* normal /boot/grub/grub.cfg - file konfigurasi yang dapat dieksekusi pada partisi terenkripsi.

Keyakinan bahwa itu adalah "grub.cfg" terenkripsi yang dimuat adalah respons positif dengan memasukkan kata sandi/membuka kunci "sdaY" ketika memilih baris "GRUBx2" di menu GRUB.

Saat bekerja di CLI, agar tidak bingung (dan periksa apakah variabel lingkungan "set root" berfungsi), buat file token kosong, misalnya di bagian terenkripsi “/shifr_grub”, di bagian tidak terenkripsi “/noshifr_grub”. Memeriksa di CLI

cat /Tab-Tab

Seperti disebutkan di atas, ini tidak akan membantu mencegah pengunduhan modul berbahaya jika modul tersebut ada di PC Anda. Misalnya, keylogger yang dapat menyimpan penekanan tombol ke suatu file dan mencampurnya dengan file lain di “~/i386” hingga diunduh oleh penyerang dengan akses fisik ke PC.

Cara termudah untuk memverifikasi bahwa perlindungan tanda tangan digital berfungsi secara aktif (tidak diatur ulang), dan belum ada yang menginvasi bootloader, masukkan perintah di CLI

list_trusted

sebagai tanggapan, kami menerima salinan “perskey” kami, atau kami tidak menerima apa pun jika kami diserang (Anda juga perlu mencentang "set check_signatures=enforce").
Kerugian signifikan dari langkah ini adalah memasukkan perintah secara manual. Jika Anda menambahkan perintah ini ke "grub.cfg" dan melindungi konfigurasi dengan tanda tangan digital, maka keluaran awal dari cuplikan kunci di layar waktunya terlalu singkat, dan Anda mungkin tidak punya waktu untuk melihat keluaran setelah memuat GRUB2 .
Tidak ada orang khusus yang bisa diklaim: pengembangnya dokumentasi klausul 18.2 diumumkan secara resmi

“Perhatikan bahwa bahkan dengan perlindungan kata sandi GRUB, GRUB sendiri tidak dapat mencegah seseorang dengan akses fisik ke mesin mengubah konfigurasi firmware mesin tersebut (misalnya, Coreboot atau BIOS) yang menyebabkan mesin melakukan booting dari perangkat lain (yang dikendalikan penyerang). GRUB hanya merupakan satu tautan dalam rantai boot yang aman."

GRUB2 terlalu dipenuhi dengan fungsi-fungsi yang dapat memberikan rasa keamanan palsu, dan perkembangannya telah melampaui MS-DOS dalam hal fungsionalitas, tetapi ini hanyalah bootloader. Lucu sekali bahwa GRUB2 - "besok" bisa menjadi OS, dan mesin virtual GNU/Linux yang dapat di-boot untuknya.

Video singkat tentang cara saya mengatur ulang perlindungan tanda tangan digital GRUB2 dan menyatakan gangguan saya kepada pengguna sebenarnya (Saya membuat Anda takut, tetapi alih-alih seperti yang ditampilkan di video, Anda dapat menulis kode arbitrer/.mod yang tidak berbahaya).

Kesimpulan:

1) Enkripsi sistem blok untuk Windows lebih mudah diterapkan, dan perlindungan dengan satu kata sandi lebih nyaman daripada perlindungan dengan beberapa kata sandi dengan enkripsi sistem blok GNU/Linux, sejujurnya: yang terakhir bersifat otomatis.

2) Saya menulis artikel yang relevan dan terperinci sederhana panduan untuk enkripsi disk penuh VeraCrypt/LUKS pada satu mesin rumah, yang sejauh ini merupakan yang terbaik di RuNet (IMHO). Panduan ini panjangnya> 50 ribu karakter, sehingga tidak mencakup beberapa bab menarik: kriptografer yang menghilang/tersembunyi dalam bayang-bayang; tentang fakta bahwa di berbagai buku GNU/Linux mereka sedikit/tidak menulis tentang kriptografi; tentang Pasal 51 Konstitusi Federasi Rusia; HAI perizinan/melarang enkripsi di Federasi Rusia, tentang mengapa Anda perlu mengenkripsi "root/boot". Panduannya ternyata cukup luas, namun detail. (menjelaskan bahkan langkah-langkah sederhana), pada gilirannya, ini akan menghemat banyak waktu saat Anda membuka "enkripsi sebenarnya".

3) Enkripsi disk penuh dilakukan pada Windows 7 64; Burung Beo GNU/Linux 4x; GNU/Debian 9.0/9.5.

4) Menerapkan serangan yang berhasil -nya pemuat GRUB2.

5) Tutorial dibuat untuk membantu semua orang paranoid di CIS, di mana bekerja dengan enkripsi diperbolehkan di tingkat legislatif. Dan terutama bagi mereka yang ingin meluncurkan enkripsi disk penuh tanpa merusak sistem yang telah dikonfigurasi.

6) Mengolah ulang dan memperbarui manual saya, yang relevan pada tahun 2020.

[G] Dokumentasi yang berguna

  1. Panduan Pengguna TrueCrypt (RU Februari 2012)
  2. Dokumentasi VeraCrypt
  3. /usr/share/doc/cryptsetup(-jalankan) [sumber daya lokal] (dokumentasi rinci resmi tentang pengaturan enkripsi GNU/Linux menggunakan cryptsetup)
  4. Pengaturan kripto FAQ resmi (dokumentasi singkat tentang pengaturan enkripsi GNU/Linux menggunakan cryptsetup)
  5. Enkripsi perangkat LUKS (dokumentasi archlinux)
  6. Penjelasan rinci tentang sintaks cryptsetup (halaman manual lengkung)
  7. Penjelasan rinci tentang crypttab (halaman manual lengkung)
  8. Dokumentasi resmi GRUB2.

Tag: enkripsi disk penuh, enkripsi partisi, enkripsi disk penuh Linux, enkripsi sistem lengkap LUKS1.

Hanya pengguna terdaftar yang dapat berpartisipasi dalam survei. Masuk, silakan.

Apakah Anda mengenkripsi?

  • 17,1%Saya mengenkripsi semua yang saya bisa. Saya paranoid.14

  • 34,2%Saya hanya mengenkripsi data penting.28

  • 14,6%Terkadang saya mengenkripsi, terkadang saya lupa.12

  • 34,2%Tidak, saya tidak mengenkripsi, ini merepotkan dan mahal.28

82 pengguna memilih. 22 pengguna abstain.

Sumber: www.habr.com

Tambah komentar