Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot
Zaktualizowano własny przewodnik po szyfrowaniu całego dysku w RuNet V0.2.

Strategia kowbojska:

[A] Szyfrowanie bloku systemu Windows 7 zainstalowanego systemu;
[B] Szyfrowanie bloków systemowych GNU/Linux (Debiana) zainstalowanego systemu (w tym /boot);
[C] Konfiguracja GRUB2, ochrona bootloadera za pomocą podpisu cyfrowego/uwierzytelniania/hashowania;
[D] stripping – niszczenie niezaszyfrowanych danych;
[E] uniwersalna kopia zapasowa zaszyfrowanego systemu operacyjnego;
[F] atak <na przedmiot [C6]> cel - program ładujący GRUB2;
[G]pomocna dokumentacja.

╭───Schemat #pokoju 40# :
├──╼ Zainstalowany system Windows 7 - pełne szyfrowanie systemu, nie ukryte;
├──╼ Zainstalowano system GNU/Linux (Debian i dystrybucje pochodne) — pełne szyfrowanie systemu, nie ukryte(/, w tym /boot; zamiana);
├──╼ niezależne bootloadery: bootloader VeraCrypt jest zainstalowany w MBR, bootloader GRUB2 jest zainstalowany na partycji rozszerzonej;
├──╼nie jest wymagana instalacja/ponowna instalacja systemu operacyjnego;
└──╼wykorzystane oprogramowanie kryptograficzne: VeraCrypt; Konfiguracja krypty; GnuPG; Konik morski; Hashdeep; GRUB2 jest darmowy/darmowy.

Powyższy schemat częściowo rozwiązuje problem „zdalnego rozruchu z dysku flash”, pozwala cieszyć się zaszyfrowanym systemem operacyjnym Windows/Linux i wymieniać dane poprzez „szyfrowany kanał” z jednego systemu operacyjnego do drugiego.

Kolejność uruchamiania komputera (jedna z opcji):

  • włączenie maszyny;
  • ładowanie programu ładującego VeraCrypt (wpisanie prawidłowego hasła spowoduje kontynuację uruchamiania systemu Windows 7);
  • naciśnięcie klawisza „Esc” spowoduje załadowanie programu ładującego GRUB2;
  • Program ładujący GRUB2 (wybierz dystrybucję/GNU/Linux/CLI), będzie wymagało uwierzytelnienia superużytkownika GRUB2 <login/hasło>;
  • po pomyślnym uwierzytelnieniu i wybraniu dystrybucji będziesz musiał wprowadzić hasło, aby odblokować „/boot/initrd.img”;
  • po wprowadzeniu bezbłędnych haseł GRUB2 „wymaga” wprowadzenia hasła (po trzecie, hasło do BIOS-u lub hasło do konta użytkownika GNU/Linux – nie bierz pod uwagę) do odblokowania i uruchomienia systemu operacyjnego GNU/Linux lub automatycznego podstawienia tajnego klucza (dwa hasła + klucz lub hasło + klucz);
  • zewnętrzna ingerencja w konfigurację GRUB2 zamrozi proces uruchamiania GNU/Linux.

Kłopotliwy? OK, przejdźmy do automatyzacji procesów.

Podczas partycjonowania dysku twardego (tabela MBR) Komputer PC nie może mieć więcej niż 4 partycje główne lub 3 główne i jedną rozszerzoną, a także nieprzydzielony obszar. Sekcja rozszerzona, w odróżnieniu od głównej, może zawierać podsekcje (dyski logiczne = partycja rozszerzona). Innymi słowy, „rozszerzona partycja” na dysku twardym zastępuje LVM w konkretnym zadaniu: pełne szyfrowanie systemu. Jeśli twój dysk jest podzielony na 4 główne partycje, musisz użyć lvm, czyli transformacji (z formatowaniem) sekcję od głównej do zaawansowanej lub mądrze wykorzystaj wszystkie cztery sekcje i zostaw wszystko bez zmian, uzyskując pożądany rezultat. Nawet jeśli masz jedną partycję na dysku, Gparted pomoże Ci podzielić dysk twardy (dla dodatkowych sekcji) bez utraty danych, ale wciąż z niewielką karą za takie działania.

Schemat układu dysku twardego, w odniesieniu do którego zwerbalizowany będzie cały artykuł, przedstawiono w poniższej tabeli.

Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot
Tabela (nr 1) partycji 1 TB.

Ty też powinieneś mieć coś podobnego.
sda1 - partycja główna nr 1 NTFS (szyfrowane);
sda2 - rozszerzony znacznik sekcji;
sda6 - dysk logiczny (ma zainstalowany bootloader GRUB2);
sda8 - swap (zaszyfrowany plik wymiany/nie zawsze);
sda9 - test dysku logicznego;
sda5 - dysk logiczny dla ciekawskich;
sda7 - system operacyjny GNU/Linux (przeniesiony system operacyjny na zaszyfrowany dysk logiczny);
sda3 - partycja główna nr 2 z systemem operacyjnym Windows 7 (szyfrowane);
sda4 - sekcja główna nr 3 (zawierał niezaszyfrowany system GNU/Linux, używany do tworzenia kopii zapasowych/nie zawsze).

[A] Szyfrowanie bloków systemowych Windows 7

A1. VeraCryptPełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

Pobierz z Oficjalna stronalub z lustra sourceforge wersja instalacyjna oprogramowania kryptograficznego VeraCrypt (w momencie publikacji artykułu v1.24-Update3 przenośna wersja VeraCrypt nie nadaje się do szyfrowania systemu). Sprawdź sumę kontrolną pobranego oprogramowania

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

i porównaj wynik z CS opublikowanym na stronie programisty VeraCrypt.

Jeśli zainstalowane jest oprogramowanie HashTab, jest to jeszcze łatwiejsze: RMB (Instalator VeraCrypt 1.24.exe)-properties - suma skrótów plików.

Aby zweryfikować sygnaturę programu, w systemie należy zainstalować oprogramowanie i publiczny klucz pgp programisty gnuPG; gpg4win.

A2. Instalacja/uruchomienie oprogramowania VeraCrypt z uprawnieniami administratoraPełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

A3. Wybór parametrów szyfrowania systemu dla aktywnej partycjiVeraCrypt – System – Szyfruj partycję/dysk systemowy – Normalny – Szyfruj partycję systemową Windows – Multiboot – (ostrzeżenie: „Niedoświadczonym użytkownikom nie zaleca się korzystania z tej metody” i to prawda, zgadzamy się „Tak”) – Dysk rozruchowy („tak”, nawet jeśli nie, to nadal „tak”) – Liczba dysków systemowych „2 lub więcej” – Kilka systemów na jednym dysku „Tak” – Program ładujący inny niż Windows „Nie” (w rzeczywistości „Tak”, ale programy ładujące VeraCrypt/GRUB2 nie będą dzielić między sobą MBR; dokładniej, tylko najmniejsza część kodu programu ładującego jest przechowywana w ścieżce MBR/boot, główna jego część to znajduje się w systemie plików) – Multiboot – Ustawienia szyfrowania…

Jeśli odstąpisz od powyższych kroków (blokować schematy szyfrowania systemu), wówczas VeraCrypt wyświetli ostrzeżenie i nie pozwoli na zaszyfrowanie partycji.

W kolejnym kroku w kierunku ukierunkowanej ochrony danych przeprowadź „Test” i wybierz algorytm szyfrowania. Jeśli masz przestarzały procesor, najprawdopodobniej najszybszym algorytmem szyfrowania będzie Twofish. Jeśli procesor jest mocny, zauważysz różnicę: szyfrowanie AES, zgodnie z wynikami testu, będzie kilka razy szybsze niż jego kryptokonkurenci. AES to popularny algorytm szyfrowania; sprzęt nowoczesnych procesorów jest specjalnie zoptymalizowany zarówno pod kątem „tajnego”, jak i „hakerskiego”.

VeraCrypt obsługuje możliwość szyfrowania dysków w kaskadzie AES(Dwie ryby)/i inne kombinacje. Na starym rdzeniowym procesorze Intel sprzed dziesięciu lat (bez sprzętowej obsługi AES, szyfrowania kaskadowego A/T) Spadek wydajności jest w zasadzie niezauważalny. (w przypadku procesorów AMD z tej samej epoki/~parametrów wydajność jest nieznacznie zmniejszona). System operacyjny działa dynamicznie, a zużycie zasobów w celu przezroczystego szyfrowania jest niewidoczne. Natomiast zauważalny jest np. zauważalny spadek wydajności spowodowany zainstalowanym niestabilnym środowiskiem testowym Mate v1.20.1 (lub v1.20.2 nie pamiętam dokładnie) w GNU/Linux lub ze względu na działanie procedury telemetrycznej w Windows7↑. Zazwyczaj doświadczeni użytkownicy przeprowadzają testy wydajności sprzętu przed szyfrowaniem. Przykładowo w Aida64/Sysbench/systemd-analyze winę porównuje się z wynikami tych samych testów po zaszyfrowaniu systemu, tym samym obalając mit, że „szyfrowanie systemu jest szkodliwe”. Spowolnienie maszyny i niedogodności są zauważalne podczas tworzenia kopii zapasowej/przywracania zaszyfrowanych danych, ponieważ sama operacja „kopia zapasowa danych systemowych” nie jest mierzona w ms, a te same są dodawane <deszyfruj/szyfruj w locie>. Ostatecznie każdy użytkownik, któremu wolno majstrować przy kryptografii, równoważy algorytm szyfrowania względem satysfakcji z wykonywanych zadań, poziomu paranoi i łatwości użycia.

Lepiej pozostawić parametr PIM jako domyślny, aby podczas ładowania systemu operacyjnego nie trzeba było za każdym razem wpisywać dokładnych wartości iteracji. VeraCrypt wykorzystuje ogromną liczbę iteracji, aby stworzyć naprawdę „powolny skrót”. Atak na takiego „kryptoślimaka” przy użyciu metody Brute force/Rainbow Tables ma sens tylko przy krótkim „prostym” haśle i osobistej liście zestawów znaków ofiary. Ceną za siłę hasła jest opóźnienie we wpisaniu prawidłowego hasła podczas ładowania systemu operacyjnego. (montowanie wolumenów VeraCrypt w systemie GNU/Linux jest znacznie szybsze).
Darmowe oprogramowanie do realizacji ataków brute-force (wyodrębnij hasło z nagłówka dysku VeraCrypt/LUKS) Hashcat. Jan Rozpruwacz nie wie, jak „złamać Veracrypt”, a pracując z LUKS-em nie rozumie kryptografii Twofish.

Ze względu na siłę kryptograficzną algorytmów szyfrowania niepowstrzymani cypherpunkowie opracowują oprogramowanie o innym wektorze ataku. Na przykład wyodrębnianie metadanych/kluczy z pamięci RAM (atak zimnego rozruchu/bezpośredniego dostępu do pamięci), Do tych celów istnieje wyspecjalizowane, wolne i niewolne oprogramowanie.

Po zakończeniu konfiguracji/generowaniu „unikalnych metadanych” zaszyfrowanej aktywnej partycji, VeraCrypt zaproponuje ponowne uruchomienie komputera i przetestowanie funkcjonalności modułu ładującego. Po ponownym uruchomieniu/uruchomieniu systemu Windows VeraCrypt załaduje się w trybie gotowości, pozostaje jedynie potwierdzić proces szyfrowania - Y.

Na ostatnim etapie szyfrowania systemu VeraCrypt zaproponuje utworzenie kopii zapasowej nagłówka aktywnej zaszyfrowanej partycji w postaci „dysku ratunkowego veracrypt.iso” - należy to zrobić - w tym oprogramowaniu taka operacja jest wymagana (w LUKS-ie jako wymaganie - niestety jest to pomijane, ale podkreślane w dokumentacji). Dysk ratunkowy przyda się każdemu, a niektórym więcej niż raz. Strata (przepisanie nagłówka/MBR) kopia zapasowa nagłówka trwale odmówi dostępu do odszyfrowanej partycji w systemie operacyjnym Windows.

A4. Tworzenie ratunkowego USB/dysku VeraCryptDomyślnie VeraCrypt oferuje wypalenie „~2-3 MB metadanych” na płycie CD, ale nie wszyscy mają dyski lub napędy DWD-ROM, a utworzenie rozruchowego dysku flash „VeraCrypt Rescue Disk” będzie dla niektórych techniczną niespodzianką: Rufus /GUIdd-ROSA ImageWriter i inne podobne programy nie poradzą sobie z zadaniem, ponieważ oprócz skopiowania offsetowych metadanych na bootowalny pendrive trzeba skopiować/wkleić obraz poza system plików pendrive'a, w skrócie, poprawnie skopiuj MBR/drogę do pęku kluczy. Możesz utworzyć rozruchowy dysk flash z systemem operacyjnym GNU/Linux za pomocą narzędzia „dd”, patrząc na ten znak.

Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

Tworzenie dysku ratunkowego w środowisku Windows jest inne. Twórca VeraCrypt nie zamieścił rozwiązania tego problemu w oficjalnej wersji dokumentacja przez „dysk ratunkowy”, ale zaproponował rozwiązanie w inny sposób: zamieścił na swoim forum VeraCrypt dodatkowe oprogramowanie do tworzenia „dysku ratunkowego USB” do bezpłatnego dostępu. Archiwista tego oprogramowania dla systemu Windows „tworzy dysk ratunkowy USB Veracrypt”. Po zapisaniu pliku ratunkowego.iso rozpocznie się proces blokowania systemowego szyfrowania aktywnej partycji. Podczas szyfrowania działanie systemu operacyjnego nie zostaje zatrzymane, ponowne uruchomienie komputera nie jest wymagane. Po zakończeniu operacji szyfrowania aktywna partycja zostaje w pełni zaszyfrowana i można z niej korzystać. Jeśli program ładujący VeraCrypt nie pojawia się po uruchomieniu komputera, a operacja odzyskiwania nagłówka nie pomaga, sprawdź flagę „boot”, musi być ustawiona na partycję, na której obecny jest system Windows (niezależnie od szyfrowania i innego systemu operacyjnego, patrz tabela nr 1).
Na tym kończy się opis szyfrowania systemu blokowego w systemie operacyjnym Windows.

[B]LUKS. Szyfrowanie GNU/Linux (~Debiana) zainstalowany system operacyjny. Algorytm i kroki

Aby zaszyfrować zainstalowaną dystrybucję Debian/pochodną, ​​należy zmapować przygotowaną partycję na wirtualne urządzenie blokowe, przenieść ją na zmapowany dysk GNU/Linux i zainstalować/skonfigurować GRUB2. Jeśli nie masz serwera typu bare metal i cenisz swój czas, musisz skorzystać z GUI, a większość poleceń terminala opisanych poniżej jest przeznaczona do uruchamiania w „trybie Chuck-Norris”.

B1. Uruchamianie komputera z Live USB GNU/Linux

„Przeprowadź test kryptograficzny pod kątem wydajności sprzętu”

lscpu && сryptsetup benchmark

Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

Jeśli jesteś szczęśliwym posiadaczem potężnego samochodu ze wsparciem sprzętowym AES, liczby będą wyglądać jak prawa strona terminala; jeśli jesteś szczęśliwym posiadaczem, ale z zabytkowym sprzętem, liczby będą wyglądać jak lewa strona.

B2. Partycjonowanie dysku. montowanie/formatowanie dysku logicznego fs HDD na Ext4 (Gparted)

B2.1. Tworzenie zaszyfrowanego nagłówka partycji sda7Nazwy partycji opiszę tutaj i dalej, zgodnie z moją tabelą partycji zamieszczoną powyżej. Zgodnie z układem dysku musisz zastąpić nazwy partycji.

Mapowanie szyfrowania dysku logicznego (/dev/sda7 > /dev/mapper/sda7_crypt).
#Łatwe utworzenie „partycji LUKS-AES-XTS”

cryptsetup -v -y luksFormat /dev/sda7

Opcje:

* luksFormat - inicjalizacja nagłówka LUKS;
* -y -passphrase (nie klucz/plik);
* -v -verbalizacja (wyświetlanie informacji w terminalu);
* /dev/sda7 - Twój dysk logiczny z partycji rozszerzonej (gdzie planowane jest przesłanie/zaszyfrowanie GNU/Linux).

Domyślny algorytm szyfrowania <LUKS1: aes-xts-plain64, klucz: 256 bitów, haszowanie nagłówka LUKS: sha256, RNG: /dev/urandom> (zależy od wersji cryptsetup).

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

Jeśli procesor nie obsługuje sprzętowo AES, najlepszym wyborem byłoby utworzenie rozszerzonej „partycji LUKS-Twofish-XTS”.

B2.2. Zaawansowane tworzenie „partycji LUKS-Twofish-XTS”

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

Opcje:
* luksFormat - inicjalizacja nagłówka LUKS;
* /dev/sda7 to Twój przyszły zaszyfrowany dysk logiczny;
* -v werbalizacja;
* -y hasło;
* -c wybierz algorytm szyfrowania danych;
* -s rozmiar klucza szyfrującego;
* -h algorytm mieszający/funkcja kryptograficzna, używane jest RNG (--use-urandom) w celu wygenerowania unikalnego klucza szyfrowania/deszyfrowania dla nagłówka dysku logicznego, dodatkowego klucza nagłówka (XTS); unikalny klucz główny przechowywany w zaszyfrowanym nagłówku dysku, dodatkowy klucz XTS, wszystkie te metadane i procedura szyfrowania, która przy użyciu klucza głównego i dodatkowego klucza XTS szyfruje/odszyfrowuje dowolne dane na partycji (z wyjątkiem tytułu sekcji) przechowywane w ~3MB na wybranej partycji dysku twardego.
* -i iteracje w milisekundach zamiast „ilości” (opóźnienie przetwarzania hasła wpływa na ładowanie systemu operacyjnego i siłę kryptograficzną kluczy). Aby zachować równowagę siły kryptograficznej, w przypadku prostego hasła, takiego jak „Russian”, należy zwiększyć wartość -(i), natomiast przy złożonym haśle, takim jak „?8dƱob/øfh”, wartość można zmniejszyć.
* — generator liczb losowych use-urandom, generuje klucze i sól.

Po zmapowaniu sekcji sda7 > sda7_crypt (operacja jest szybka, ponieważ tworzony jest zaszyfrowany nagłówek z ~3 MB metadanych i to wszystko), musisz sformatować i zamontować system plików sda7_crypt.

B2.3. Porównanie

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

opcje:
* otwórz - dopasuj sekcję „z nazwą”;
* /dev/sda7 – dysk logiczny;
* sda7_crypt - mapowanie nazw używane do montowania zaszyfrowanej partycji lub inicjowania jej podczas uruchamiania systemu operacyjnego.

B2.4. Formatowanie systemu plików sda7_crypt do ext4. Montowanie dysku w systemie operacyjnym(Uwaga: nie będziesz mógł pracować z zaszyfrowaną partycją w Gparted)

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

opcje:
* -v -werbalizacja;
* -L - etykieta dysku (wyświetlana w Eksploratorze wśród innych dysków).

Następnie należy zamontować w systemie wirtualne, szyfrowane urządzenie blokowe /dev/sda7_crypt

mount /dev/mapper/sda7_crypt /mnt

Praca z plikami w folderze /mnt spowoduje automatyczne szyfrowanie/odszyfrowywanie danych w sda7.

Wygodniej jest mapować i montować partycję w Eksploratorze (GUI nautilusa/caja), partycja będzie już na liście wyboru dysku, pozostaje jedynie wprowadzić hasło, aby otworzyć/odszyfrować dysk. Dopasowana nazwa zostanie wybrana automatycznie, a nie „sda7_crypt”, ale coś w stylu /dev/mapper/Luks-xx-xx...

B2.5. Kopia zapasowa nagłówka dysku (~3MB metadanych)Jeden z najbardziej ważny operacje, które należy wykonać bez zwłoki - kopia zapasowa nagłówka „sda7_crypt”. Jeśli nadpiszesz/uszkodzisz plik header (na przykład instalacja GRUB2 na partycji sda7 itp.)zaszyfrowane dane zostaną całkowicie utracone bez możliwości ich odzyskania, ponieważ ponowne wygenerowanie tych samych kluczy nie będzie możliwe; klucze są tworzone unikalnie.

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

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

opcje:
* luksHeaderBackup —nagłówek-plik-kopii zapasowej -polecenie kopii zapasowej;
* luksHeaderRestore —polecenie pliku-nagłówka-kopii zapasowej -restore;
* ~/Backup_DebSHIFR - plik kopii zapasowej;
* /dev/sda7 - partycja, na której ma zostać zapisana kopia zapasowa zaszyfrowanego nagłówka dysku.
Na tym etapie <tworzenie i edytowanie zaszyfrowanej partycji> jest zakończone.

B3. Przenoszenie systemu operacyjnego GNU/Linux (sda4) na zaszyfrowaną partycję (sda7)

Utwórz folder /mnt2 (Uwaga - nadal pracujemy z Live USB, sda7_crypt jest zamontowany w /mnt)i zamontuj nasz GNU/Linux w /mnt2, który musi zostać zaszyfrowany.

mkdir /mnt2
mount /dev/sda4 /mnt2

Prawidłowy transfer systemu operacyjnego przeprowadzamy za pomocą oprogramowania Rsync

rsync -avlxhHX --progress /mnt2/ /mnt

Opcje Rsync opisano w paragrafie E1.

Ponadto musi zdefragmentuj partycję dysku logicznego

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

Przyjmij zasadę: od czasu do czasu wykonuj e4defrag na zaszyfrowanym systemie GNU/LINux, jeśli masz dysk twardy.
Na tym etapie transfer i synchronizacja [GNU/Linux > GNU/Linux-szyfrowane] są zakończone.

O 4. Konfigurowanie GNU/Linux na zaszyfrowanej partycji sda7

Po pomyślnym przeniesieniu systemu operacyjnego /dev/sda4 > /dev/sda7 musisz zalogować się do GNU/Linux na zaszyfrowanej partycji i przeprowadzić dalszą konfigurację (bez ponownego uruchamiania komputera) w stosunku do systemu zaszyfrowanego. Oznacza to, że bądź w trybie Live USB, ale wykonuj polecenia „w odniesieniu do katalogu głównego zaszyfrowanego systemu operacyjnego”. „Chroot” będzie symulował podobną sytuację. Aby szybko otrzymać informację na jakim systemie operacyjnym aktualnie pracujesz (szyfrowane lub nie, ponieważ dane w sda4 i sda7 są zsynchronizowane), zdesynchronizuj system operacyjny. Utwórz w katalogach głównych (sda4/sda7_krypt) puste pliki znaczników, na przykład /mnt/encryptedOS i /mnt2/decryptedOS. Szybko sprawdź, z jakiego systemu operacyjnego korzystasz (w tym na przyszłość):

ls /<Tab-Tab>

B4.1. „Symulacja logowania do zaszyfrowanego systemu operacyjnego”

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

B4.2. Weryfikacja, czy praca jest wykonywana w zaszyfrowanym systemie

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

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

B4.3. Tworzenie/konfigurowanie szyfrowanej wymiany, edycja crypttab/fstabPonieważ plik wymiany jest formatowany przy każdym uruchomieniu systemu operacyjnego, nie ma sensu teraz tworzyć i mapować wymiany na dysk logiczny i wprowadzać poleceń jak w paragrafie B2.2. W przypadku Zamień własne tymczasowe klucze szyfrujące będą automatycznie generowane przy każdym uruchomieniu. Cykl życia kluczy wymiany: odmontowywanie/odmontowywanie partycji wymiany (+czyszczenie RAMu); lub uruchom ponownie system operacyjny. Konfigurowanie wymiany, otwarcie pliku odpowiedzialnego za konfigurację urządzeń szyfrowanych blokowo (analogicznie do pliku fstab, ale odpowiedzialny za krypto).

nano /etc/crypttab 

edytujemy

#"nazwa docelowa" "urządzenie źródłowe" "plik klucza" "opcje"
swap /dev/sda8 /dev/urandom swap,cipher=twofish-xts-plain64,size=512,hash=sha512

Opcje
* swap - mapowana nazwa podczas szyfrowania /dev/mapper/swap.
* /dev/sda8 - użyj swojej partycji logicznej do wymiany.
* /dev/urandom - generator losowego klucza szyfrującego dla wymiany (przy każdym uruchomieniu nowego systemu operacyjnego tworzone są nowe klucze). Generator /dev/urandom jest mniej losowy niż /dev/random, w końcu /dev/random jest używany podczas pracy w niebezpiecznych warunkach paranoicznych. Podczas ładowania systemu operacyjnego /dev/random spowalnia ładowanie na kilka ± minut (zobacz analizę systemową).
* swap,cipher=twofish-xts-plain64,size=512,hash=sha512: -partycja wie, że jest swap i jest sformatowana „odpowiednio”; algorytm szyfrowania.

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

edytujemy

# swap był na / dev / sda8 podczas instalacji
/dev/mapper/swap brak wymiany SW 0 0

/dev/mapper/swap to nazwa ustawiona w crypttab.

Alternatywna szyfrowana wymiana
Jeśli z jakiegoś powodu nie chcesz rezygnować z całej partycji dla pliku wymiany, możesz wybrać alternatywną i lepszą drogę: utworzenie pliku wymiany w pliku na zaszyfrowanej partycji z systemem operacyjnym.

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 будет постоянный

Konfiguracja partycji wymiany została zakończona.

B4.4. Konfigurowanie zaszyfrowanego systemu GNU/Linux (edycja plików crypttab/fstab)Plik /etc/crypttab, jak napisano powyżej, opisuje zaszyfrowane urządzenia blokowe, które są konfigurowane podczas uruchamiania systemu.

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

jeśli dopasowałeś sekcję sda7>sda7_crypt jak w paragrafie B2.1

# "nazwa docelowa" "urządzenie źródłowe" "plik klucza" "opcje"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none luks

jeśli dopasowałeś sekcję sda7>sda7_crypt jak w paragrafie B2.2

# "nazwa docelowa" "urządzenie źródłowe" "plik klucza" "opcje"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none cipher=twofish-xts-plain64,size=512,hash=sha512

jeśli dopasowałeś sekcję sda7>sda7_crypt jak w paragrafie B2.1 lub B2.2, ale nie chcesz ponownie wprowadzać hasła w celu odblokowania i uruchomienia systemu operacyjnego, zamiast hasła możesz zastąpić tajny klucz/losowy plik

# "nazwa docelowa" "urządzenie źródłowe" "plik klucza" "opcje"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 /etc/skey luks

Opis
* brak - zgłasza, że ​​podczas ładowania systemu operacyjnego wymagane jest wprowadzenie tajnego hasła w celu odblokowania roota.
* UUID - identyfikator partycji. Aby znaleźć swój identyfikator, wpisz w terminalu (przypominamy, że od tego momentu pracujesz na terminalu w środowisku chroot, a nie na innym aktywnym terminalu USB).

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»

ta linia jest widoczna podczas żądania blkid z terminala USB na żywo z zamontowanym sda7_crypt).
Bierzesz UUID ze swojego sdaX (nie sdaX_crypt!, UUID sdaX_crypt - zostanie automatycznie pozostawiony podczas generowania konfiguracji grub.cfg).
* cipher=twofish-xts-plain64,size=512,hash=sha512 -luks szyfrowanie w trybie zaawansowanym.
* /etc/skey - plik tajnego klucza, który jest wstawiany automatycznie w celu odblokowania rozruchu systemu operacyjnego (zamiast wprowadzania trzeciego hasła). Można określić dowolny plik o wielkości do 8MB, ale dane będą odczytywane w rozmiarze <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 

Będzie to wyglądać mniej więcej tak:

(zrób to sam i przekonaj się sam).

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

/etc/fstab zawiera opisowe informacje o różnych systemach plików.

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

# „system plików” „punkt podłączenia” „typ” „opcje” „zrzut” „przejście”
# / było na / dev / sda7 podczas instalacji
/dev/mapper/sda7_crypt / ext4 error=remount-ro 0 1

opcja
* /dev/mapper/sda7_crypt - nazwa mapowania sda7>sda7_crypt, która jest podana w pliku /etc/crypttab.
Konfiguracja crypttab/fstab została zakończona.

B4.5. Edycja plików konfiguracyjnych. Kluczowy momentB4.5.1. Edycja pliku konfiguracyjnego /etc/initramfs-tools/conf.d/resume

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

i skomentuj (jeśli istnieje) Linia „#” „wznów”. Plik musi być całkowicie pusty.

B4.5.2. Edycja pliku konfiguracyjnego /etc/initramfs-tools/conf.d/cryptsetup

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

powinno pasować

# /etc/initramfs-tools/conf.d/cryptsetup
CRYPTSETUP=tak
eksportuj CRYPTSETUP

B4.5.3. Edycja pliku konfiguracyjnego /etc/default/grub (ta konfiguracja odpowiada za możliwość generowania grub.cfg podczas pracy z zaszyfrowanym /boot)

nano /etc/default/grub

dodaj linię „GRUB_ENABLE_CRYPTODISK=y”
wartość „y”, grub-mkconfig i grub-install sprawdzą, czy zaszyfrowane dyski i wygenerują dodatkowe polecenia potrzebne do uzyskania dostępu do nich podczas uruchamiania (insmod ).
musi być podobieństwo

GRUB_DEFAULT = 0
GRUB_TIMEOUT = 1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || powtórz Debiana`
GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=sprzedawca"
GRUB_CMDLINE_LINUX="cichy plusk bez automatycznego montażu"
GRUB_ENABLE_CRYPTODISK=y

B4.5.4. Edycja pliku konfiguracyjnego /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

sprawdź tę linię skomentował <#>.
W przyszłości (i nawet teraz ten parametr nie będzie miał żadnego znaczenia, ale czasami przeszkadza w aktualizacji obrazu initrd.img).

B4.5.5. Edycja pliku konfiguracyjnego /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

dodać

KEYFILE_PATTERN=”/etc/skey”
UMASKA=0077

Spowoduje to spakowanie tajnego klucza „skey” do initrd.img, klucz jest potrzebny do odblokowania katalogu głównego podczas uruchamiania systemu operacyjnego (jeśli nie chcesz ponownie wprowadzać hasła, klucz „skey” zastępuje samochód).

B4.6. Zaktualizuj /boot/initrd.img [wersja]Aby spakować tajny klucz do initrd.img i zastosować poprawki cryptsetup, zaktualizuj obraz

update-initramfs -u -k all

podczas aktualizacji pliku initrd.img (jak to mówią „Możliwe, ale nie pewne”) pojawią się ostrzeżenia związane z cryptsetupem, czy np. powiadomienie o utracie modułów Nvidia - jest to normalne. Po zaktualizowaniu pliku sprawdź, czy faktycznie został on zaktualizowany, spójrz na godzinę (w odniesieniu do środowiska chroot./boot/initrd.img). Ostrzeżenie! przed [update-initramfs -u -k all] upewnij się, że cryptsetup jest otwarty /dev/sda7 sda7_krypt - to jest nazwa, która pojawia się w /etc/crypttab, w przeciwnym razie po ponownym uruchomieniu pojawi się błąd busybox)
Na tym etapie konfiguracja plików konfiguracyjnych jest zakończona.

[C] Instalacja i konfiguracja GRUB2/Ochrona

C1. W razie potrzeby sformatuj dedykowaną partycję dla bootloadera (partycja potrzebuje co najmniej 20 MB)

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

C2. Zamontuj /dev/sda6 do /mntPracujemy więc w chroot, wtedy w katalogu głównym nie będzie katalogu /mnt2, a folder /mnt będzie pusty.
zamontuj partycję GRUB2

mount /dev/sda6 /mnt

Jeśli masz zainstalowaną starszą wersję GRUB2, w katalogu /mnt/boot/grub/i-386-pc (możliwa jest inna platforma, na przykład nie „i386-pc”) żadnych modułów kryptograficznych (w skrócie folder powinien zawierać moduły, w tym m.in. .mod: cryptodisk; luks; gcry_twofish; gcry_sha512; podpis_test.mod), w tym przypadku GRUB2 należy wstrząśnąć.

apt-get update
apt-get install grub2 

Ważny! Podczas aktualizacji pakietu GRUB2 z repozytorium na pytanie „o wybór” miejsca instalacji bootloadera należy odmówić instalacji (powód - próba instalacji GRUB2 - w „MBR” lub na Live USB). W przeciwnym razie uszkodzisz nagłówek/program ładujący VeraCrypt. Po aktualizacji pakietów GRUB2 i anulowaniu instalacji program rozruchowy należy zainstalować ręcznie na dysku logicznym, a nie w MBR. Jeśli w Twoim repozytorium znajduje się przestarzała wersja GRUB2, spróbuj aktualizacja pochodzi z oficjalnej strony internetowej - nie sprawdzałem tego (pracował z najnowszymi programami ładującymi GRUB 2.02 ~ BetaX).

C3. Instalowanie GRUB2 na partycji rozszerzonej [sda6]Musisz mieć zamontowaną partycję [poz. C.2]

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

opcje
* —force - instalacja bootloadera z pominięciem wszystkich prawie zawsze występujących ostrzeżeń i blokowaniem instalacji (wymagana flaga).
* --root-directory - instalacja katalogu do katalogu głównego sda6.
* /dev/sda6 - twoja partycja sdaХ (nie przegap <spacji> pomiędzy /mnt /dev/sda6).

C4. Tworzenie pliku konfiguracyjnego [grub.cfg]Zapomnij o poleceniu „update-grub2” i użyj polecenia wygenerowania pełnego pliku konfiguracyjnego

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

po zakończeniu generowania/aktualizacji pliku grub.cfg terminal wyjściowy powinien zawierać linię(i) z systemem operacyjnym znalezionym na dysku („grub-mkconfig” prawdopodobnie znajdzie i pobierze system operacyjny z działającego USB, jeśli masz wielosystemowy dysk flash z systemem Windows 10 i kilkoma dystrybucjami na żywo - jest to normalne). Jeśli terminal jest „pusty” i nie zostanie wygenerowany plik „grub.cfg”, to tak samo jest w przypadku błędów GRUB-a w systemie (i najprawdopodobniej moduł ładujący z gałęzi testowej repozytorium), zainstaluj ponownie GRUB2 z zaufanych źródeł.
Instalacja „prostej konfiguracji” i konfiguracja GRUB2 zostały zakończone.

C5. Test sprawdzający zaszyfrowanego systemu operacyjnego GNU/LinuxUkończyliśmy misję kryptograficzną poprawnie. Ostrożnie opuszczaj zaszyfrowany system GNU/Linux (wyjdź ze środowiska chroot).

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

Po ponownym uruchomieniu komputera powinien załadować się bootloader VeraCrypt.
Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

*Wpisanie hasła do aktywnej partycji rozpocznie ładowanie systemu Windows.
*Naciśnięcie klawisza „Esc” przeniesie kontrolę do GRUB2, jeśli wybierzesz szyfrowany GNU/Linux – hasło (sda7_crypt) będzie wymagane do odblokowania /boot/initrd.img (jeśli grub2 zapisze uuid „nie znaleziono” – jest to problem z bootloaderem grub2, należy go ponownie zainstalować, np. z gałęzi testowej/stabilnej itp.).
Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

*W zależności od tego, jak skonfigurowałeś system (patrz paragraf B4.4/4.5), po wpisaniu prawidłowego hasła w celu odblokowania obrazu /boot/initrd.img, będziesz potrzebował hasła, aby załadować jądro/root systemu operacyjnego lub sekret klucz zostanie automatycznie zastąpiony „skey”, eliminując konieczność ponownego wprowadzania hasła.
Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot
(ekran „automatyczne podstawienie tajnego klucza”).

*Następnie nastąpi znany proces ładowania GNU/Linux z uwierzytelnieniem konta użytkownika.
Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

*Po autoryzacji użytkownika i zalogowaniu się do systemu operacyjnego należy ponownie zaktualizować plik /boot/initrd.img (patrz B4.6).

update-initramfs -u -k all

Oraz w przypadku dodatkowych linii w menu GRUB2 (z odbioru OS-m z Live USB) pozbądź się ich

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

Krótkie podsumowanie szyfrowania systemu GNU/Linux:

  • GNU/Linuxinux jest w pełni zaszyfrowany, włączając /boot/kernel i initrd;
  • tajny klucz jest spakowany w pliku initrd.img;
  • aktualny system zezwoleń (wpisanie hasła do odblokowania initrd; hasło/klucz do uruchomienia systemu operacyjnego; hasło do autoryzacji konta Linux).

Szyfrowanie systemowe partycji blokowej „Prosta konfiguracja GRUB2” zostało zakończone.

C6. Zaawansowana konfiguracja GRUB2. Ochrona bootloadera z podpisem cyfrowym + ochrona uwierzytelnianiaGNU/Linux jest całkowicie zaszyfrowany, ale bootloadera nie można zaszyfrować – ten warunek jest podyktowany BIOSem. Z tego powodu łańcuchowy, zaszyfrowany rozruch GRUB2 nie jest możliwy, ale prosty łańcuchowy rozruch jest możliwy/dostępny, ale z punktu widzenia bezpieczeństwa nie jest to konieczne [zobacz P. F.].
W przypadku „luki” GRUB2 programiści zaimplementowali algorytm ochrony programu ładującego „podpis/uwierzytelnienie”.

  • Gdy bootloader jest chroniony „własnym podpisem cyfrowym”, zewnętrzna modyfikacja plików lub próba załadowania dodatkowych modułów w tym bootloaderze doprowadzi do zablokowania procesu bootowania.
  • Podczas ochrony bootloadera za pomocą uwierzytelniania, aby wybrać ładowanie dystrybucji lub wprowadzić dodatkowe polecenia w CLI, będziesz musiał podać login i hasło superużytkownika-GRUB2.

C6.1. Ochrona uwierzytelniania bootloaderaSprawdź, czy pracujesz w terminalu na zaszyfrowanym systemie operacyjnym

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

utwórz hasło superużytkownika do autoryzacji w GRUB2

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

Zdobądź skrót hasła. Coś takiego

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

zamontuj partycję GRUB

mount /dev/sda6 /mnt 

edytuj konfigurację

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

sprawdź wyszukiwanie plików, czy nie ma nigdzie flag w „grub.cfg” („-unrestricted” „-user”,
dodać na samym końcu (przed linią ### END /etc/grub.d/41_custom ###)
"ustaw superużytkowników="root"
hash root_pbkdf2.”

Powinno być coś takiego

# Ten plik zapewnia łatwy sposób dodawania niestandardowych wpisów menu. Po prostu wpisz
# wpisy menu, które chcesz dodać po tym komentarzu. Uważaj, żeby się nie zmienić
# wiersz 'exec tail' powyżej.
### KONIEC /etc/grub.d/40_custom ###

### ROZPOCZNIJ /etc/grub.d/41_custom ###
if [ -f ${katalog_konfiguracyjny}/custom.cfg ]; Następnie
źródło ${katalog_konfiguracyjny}/custom.cfg
elif [ -z "${katalog_konfiguracyjny}" -a -f $prefix/custom.cfg ]; Następnie
źródło $prefix/custom.cfg;
fi
ustaw superużytkowników="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### KONIEC /etc/grub.d/41_custom ###
#

Jeśli często używasz polecenia „grub-mkconfig -o /mnt/boot/grub/grub.cfg” i nie chcesz za każdym razem wprowadzać zmian w grub.cfg, wpisz powyższe linie (Login Hasło) w skrypcie użytkownika GRUB na samym dole

nano /etc/grub.d/41_custom 

kot <<EOF
ustaw superużytkowników="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF

Podczas generowania konfiguracji „grub-mkconfig -o /mnt/boot/grub/grub.cfg” linie odpowiedzialne za uwierzytelnienie zostaną automatycznie dodane do grub.cfg.
Ten krok kończy konfigurację uwierzytelniania GRUB2.

C6.2. Ochrona bootloadera za pomocą podpisu cyfrowegoZakłada się, że masz już swój osobisty klucz szyfrujący pgp (lub utwórz taki klucz). W systemie musi być zainstalowane oprogramowanie kryptograficzne: gnuPG; kleopatra/GPA; Konik morski. Oprogramowanie Crypto znacznie ułatwi Ci życie we wszystkich takich sprawach. Seahorse - stabilna wersja pakietu 3.14.0 (wersje wyższe, np. V3.20, są wadliwe i zawierają istotne błędy).

Klucz PGP należy wygenerować/uruchomić/dodać tylko w środowisku su!

Wygeneruj osobisty klucz szyfrujący

gpg - -gen-key

Wyeksportuj swój klucz

gpg --export -o ~/perskey

Zamontuj dysk logiczny w systemie operacyjnym, jeśli nie jest jeszcze zamontowany

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

wyczyść partycję GRUB2

rm -rf /mnt/

Zainstaluj GRUB2 w sda6, umieszczając swój klucz prywatny w głównym obrazie GRUB „core.img”

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

opcje
* --force - zainstaluj program ładujący, pomijając wszystkie zawsze istniejące ostrzeżenia (wymagana flaga).
* —modules="gcry_sha256 gcry_sha512 podpis_test gcry_dsa gcry_rsa" - instruuje GRUB2, aby wstępnie załadował niezbędne moduły podczas uruchamiania komputera.
* -k ~/perskey -ścieżka do „klucza PGP” (po spakowaniu klucza do obrazu można go usunąć).
* --root-directory -ustaw katalog rozruchowy na katalog główny sda6
/dev/sda6 - twoja partycja sdaX.

Generowanie/aktualizowanie pliku grub.cfg

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

Dodaj linię „trust /boot/grub/perskey” na końcu pliku „grub.cfg” (wymuś użycie klucza pgp.) Ponieważ zainstalowaliśmy GRUB2 z zestawem modułów, w tym modułem podpisów „signature_test.mod”, eliminuje to potrzebę dodawania poleceń takich jak „set check_signatures=enforce” do konfiguracji.

Powinno to wyglądać mniej więcej tak (końcowe linie w pliku grub.cfg)

### ROZPOCZNIJ /etc/grub.d/41_custom ###
if [ -f ${katalog_konfiguracyjny}/custom.cfg ]; Następnie
źródło ${katalog_konfiguracyjny}/custom.cfg
elif [ -z "${katalog_konfiguracyjny}" -a -f $prefix/custom.cfg ]; Następnie
źródło $prefix/custom.cfg;
fi
zaufaj /boot/grub/perskey
ustaw superużytkowników="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### KONIEC /etc/grub.d/41_custom ###
#

Ścieżka do „/boot/grub/perskey” nie musi wskazywać konkretnej partycji dysku, np. hd0,6; dla samego bootloadera „root” jest domyślną ścieżką partycji, na której zainstalowany jest GRUB2 (patrz zestaw rot=..).

Podpisanie GRUB2 (wszystkie pliki we wszystkich katalogach /GRUB) za pomocą klucza „perskey”.
Proste rozwiązanie dotyczące podpisywania (dla nautilusa/caja explorera): zainstaluj rozszerzenie „seahorse” dla Explorera z repozytorium. Twój klucz musi zostać dodany do środowiska su.
Otwórz Eksploratora za pomocą sudo „/mnt/boot” – RMB – znak. Na ekranie wygląda to tak

Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

Sam klucz to „/mnt/boot/grub/perskey” (skopiuj do katalogu grub) należy również podpisać własnoręcznym podpisem. Sprawdź, czy w katalogu/podkatalogach pojawiają się podpisy plików [*.sig].
Korzystając z metody opisanej powyżej, podpisz „/boot” (nasze jądro, initrd). Jeśli Twój czas jest cokolwiek wart, ta metoda eliminuje potrzebę pisania skryptu bash do podpisywania „dużo plików”.

Aby usunąć wszystkie podpisy programu ładującego (jeśli coś poszło nie tak)

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

Aby nie podpisywać bootloadera po aktualizacji systemu, zamrażamy wszystkie pakiety aktualizacji związane z GRUB2.

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

Na tym etapie <zabezpiecz bootloader podpisem cyfrowym> zaawansowana konfiguracja GRUB2 jest zakończona.

C6.3. Test sprawdzający bootloadera GRUB2, chroniony podpisem cyfrowym i uwierzytelnieniemGRUB2. Podczas wybierania dowolnej dystrybucji GNU/Linux lub wchodzenia do CLI (wiersz poleceń) Wymagana będzie autoryzacja superużytkownika. Po wprowadzeniu poprawnej nazwy użytkownika/hasła będziesz potrzebować hasła initrd

Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot
Zrzut ekranu przedstawiający pomyślne uwierzytelnienie superużytkownika GRUB2.

Jeśli zmodyfikujesz którykolwiek z plików GRUB2/wprowadzisz zmiany w grub.cfg, usuniesz plik/podpis lub załadujesz złośliwy moduł.mod, pojawi się odpowiednie ostrzeżenie. GRUB2 wstrzyma ładowanie.

Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot
Zrzut ekranu, próba ingerencji w GRUB2 „z zewnątrz”.

Podczas „normalnego” uruchamiania „bez ingerencji” kod zakończenia systemu ma wartość „0”. Dlatego nie wiadomo, czy ochrona działa, czy nie (to znaczy „z ochroną sygnatury bootloadera lub bez” podczas normalnego ładowania status jest taki sam „0” - to jest złe).

Jak sprawdzić ochronę podpisu cyfrowego?

Niewygodny sposób sprawdzenia: sfałszuj/usuń moduł używany przez GRUB2, na przykład usuń podpis luks.mod.sig i wyskakuje błąd.

Prawidłowy sposób: przejdź do CLI bootloadera i wpisz polecenie

trust_list

W odpowiedzi powinieneś otrzymać odcisk palca „perskey”, jeśli status wynosi „0”, oznacza to, że ochrona podpisu nie działa, sprawdź dwukrotnie paragraf C6.2.
Na tym etapie zaawansowana konfiguracja „Ochrona GRUB2 za pomocą podpisu cyfrowego i uwierzytelniania” jest zakończona.

C7 Alternatywna metoda ochrony bootloadera GRUB2 za pomocą hashowaniaOpisana powyżej metoda „Ochrona/uwierzytelnianie modułu ładującego procesor” jest klasyczna. Z uwagi na niedoskonałości GRUB2, w warunkach paranoicznych jest on podatny na prawdziwy atak, który podam poniżej w akapicie [F]. Ponadto po aktualizacji systemu operacyjnego/jądra należy ponownie podpisać program ładujący.

Ochrona bootloadera GRUB2 za pomocą hashowania

Zalety w stosunku do klasyki:

  • Wyższy poziom niezawodności (hashowanie/weryfikacja odbywa się tylko z zaszyfrowanego zasobu lokalnego. Cała przydzielona partycja w ramach GRUB2 jest kontrolowana pod kątem wszelkich zmian, a cała reszta jest szyfrowana; w klasycznym schemacie z ochroną/uwierzytelnieniem modułu ładującego procesor, kontrolowane są tylko pliki, ale nie wolne przestrzeń, w którą można dodać „coś” – coś złowrogiego).
  • Szyfrowane rejestrowanie (do schematu dodano czytelny dla człowieka, zaszyfrowany dziennik).
  • prędkość (ochrona/weryfikacja całej partycji przydzielonej dla GRUB2 następuje niemal natychmiast).
  • Automatyzacja wszystkich procesów kryptograficznych.

Wady w stosunku do klasyki.

  • Fałszowanie podpisu (teoretycznie możliwe jest znalezienie danej kolizji funkcji skrótu).
  • Zwiększony poziom trudności (w porównaniu do wersji klasycznej wymagane są nieco większe umiejętności obsługi systemu operacyjnego GNU/Linux).

Jak działa pomysł mieszania GRUB2/partycji

Partycja GRUB2 jest „podpisana”; podczas uruchamiania systemu operacyjnego partycja modułu ładującego jest sprawdzana pod kątem niezmienności, a następnie następuje logowanie w bezpiecznym (szyfrowanym) środowisku. Jeśli bootloader lub jego partycja zostaną naruszone, oprócz dziennika włamań uruchamiane są następujące czynności:

Rzecz.Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

Podobna kontrola odbywa się cztery razy dziennie i nie obciąża zasobów systemowych.
Za pomocą polecenia „-$ check_GRUB” można w każdej chwili przeprowadzić natychmiastową kontrolę bez logowania, ale z informacją przekazywaną do CLI.
Używając polecenia „-$ sudo podpis_GRUB”, moduł ładujący/partycja rozruchowa GRUB2 jest natychmiast ponownie podpisywany i jego zaktualizowane rejestrowanie (konieczne po aktualizacji systemu operacyjnego/rozruchu) i życie toczy się dalej.

Implementacja metody mieszającej dla bootloadera i jego sekcji

0) Podpiszmy bootloader/partycję GRUB, montując ją najpierw w /media/username

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

1) Tworzymy skrypt bez rozszerzenia w katalogu głównym zaszyfrowanego systemu operacyjnego ~/podpis, stosujemy do niego niezbędne prawa bezpieczeństwa 744 i niezawodną ochronę.

Wypełnianie jego zawartością

#!/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

Uruchom skrypt z su, hashowanie partycji GRUB i jej bootloadera zostanie sprawdzone, zapisz dziennik.

Utwórzmy lub skopiujmy np. „złośliwy plik” [virus.mod] na partycję GRUB2 i uruchommy tymczasowe skanowanie/test:

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

CLI musi być świadkiem inwazji na naszą -cytadelę-#Przycięty dziennik w 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

#Jak widać pojawia się komunikat „Pliki przeniesione: 1 i audyt nie powiódł się”, co oznacza, że ​​sprawdzenie się nie powiodło.
Ze względu na charakter testowanej partycji zamiast „Znaleziono nowe pliki” > „Przeniesiono pliki”

2) Umieść gif tutaj > ~/warning.gif, ustaw uprawnienia na 744.

3) Konfigurowanie fstab do automatycznego montowania partycji GRUB podczas rozruchu

-$ sudo nano /etc/fstab

LABEL=GRUB /media/nazwa użytkownika/GRUB ext4 domyślnie 0 0

4) Obracanie kłody

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

/var/log/podpis.txt {
codziennie
obróć 50
rozmiar 5M
dataext
kompresować
delaycompress
starykatalog /var/log/stary
}

/var/log/vtorjenie.txt {
miesięcznie
obróć 5
rozmiar 5M
dataext
starykatalog /var/log/stary
}

5) Dodaj zadanie do cron

-$ sudo crontab -e

restart '/Subskrypcja'
0 */6 * * * '/podpis

6) Tworzenie trwałych aliasów

-$ 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

Po aktualizacji systemu operacyjnego -$ apt-get upgrade ponownie podpisz naszą partycję GRUB
-$ подпись_GRUB
W tym momencie ochrona haszująca partycji GRUB jest zakończona.

[D] Wiping - zniszczenie niezaszyfrowanych danych

Usuń swoje pliki osobiste tak całkowicie, że „nawet Bóg nie będzie mógł ich odczytać” – twierdzi rzecznik Karoliny Południowej Trey Gowdy.

Jak zwykle krążą różne „mity i legendy", o przywracaniu danych po ich usunięciu z dysku twardego. Jeśli wierzysz w cyberczary lub jesteś członkiem społeczności internetowej Dr i nigdy nie próbowałeś odzyskać danych po ich usunięciu/nadpisaniu (na przykład odzyskiwanie za pomocą R-studio), to proponowana metoda raczej Ci nie odpowiada, użyj tego, co jest Ci najbliższe.

Po pomyślnym przeniesieniu GNU/Linux na zaszyfrowaną partycję, stara kopia musi zostać usunięta bez możliwości odzyskania danych. Uniwersalna metoda czyszczenia: oprogramowanie dla systemu Windows/Linux, bezpłatne oprogramowanie GUI BleachBit.
SZYBKOŚĆ sformatuj sekcję, których dane należy zniszczyć (przez Gparted) uruchom BleachBit, wybierz „Oczyść wolne miejsce” - wybierz partycję (twój sdaX z poprzednią kopią GNU/Linux)rozpocznie się proces usuwania izolacji. BleachBit - wyciera dysk w jednym przejściu - tego właśnie „potrzebujemy”, Ale! Działa to tylko w teorii, jeśli sformatowałeś dysk i wyczyściłeś go w oprogramowaniu BB v2.0.

Uwaga! BB czyści dysk, pozostawiając metadane; nazwy plików zostają zachowane po usunięciu danych (Ccleaner - nie pozostawia metadanych).

A mit o możliwości odzyskania danych nie jest do końca mitem.Bleachbit V2.0-2 dawny niestabilny pakiet systemu operacyjnego Debian (i inne podobne programy: sfill;wipe-Nautilus - również zostały zauważone w tej brudnej sprawie) faktycznie miał krytyczny błąd: funkcję „czyszczenia wolnego miejsca”. to działa niepoprawnie na dyskach twardych/flash (ntfs/ext4). Oprogramowanie tego typu podczas zwalniania wolnego miejsca nie nadpisuje całego dysku, jak sądzi wielu użytkowników. A niektóre (dużo) usunięte dane System operacyjny/oprogramowanie traktuje te dane jako nieusunięte/dane użytkownika i podczas czyszczenia „OSP” pomija te pliki. Problem w tym, że po tak długim czasie następuje czyszczenie dysku „usunięte pliki” można odzyskać nawet po ponad 3 przejściach wycierania dysku.
Na GNU/Linux w Bleachbit 2.0-2 Funkcje trwałego usuwania plików i katalogów działają niezawodnie, ale nie zwalniają wolnego miejsca. Dla porównania: na Windowsie w CCleanerze funkcja „OSP dla ntfs” działa poprawnie i Bóg naprawdę nie będzie w stanie odczytać usuniętych danych.

I tak, aby dokładnie usunąć „kompromis” stare niezaszyfrowane dane, Bleachbit potrzebuje bezpośredniego dostępu do tych danych, następnie użyj funkcji „trwale usuń pliki/katalogi”.
Aby usunąć „usunięte pliki przy użyciu standardowych narzędzi systemu operacyjnego” w systemie Windows, użyj CCleaner/BB z funkcją „OSP”. W GNU/Linux w związku z tym problemem (usuń usunięte pliki) musisz poćwiczyć sama (usunięcie danych + samodzielna próba ich przywrócenia i nie należy polegać na wersji oprogramowania (jeśli nie zakładka, to błąd)), tylko w tym przypadku będziesz w stanie zrozumieć mechanizm tego problemu i całkowicie pozbyć się usuniętych danych.

Nie testowałem Bleachbit v3.0, problem mógł zostać już rozwiązany.
Bleachbit v2.0 działa uczciwie.

Na tym etapie wymazywanie dysku jest zakończone.

[E] Uniwersalna kopia zapasowa zaszyfrowanego systemu operacyjnego

Każdy użytkownik ma własną metodę tworzenia kopii zapasowych danych, jednak zaszyfrowane dane systemu operacyjnego wymagają nieco innego podejścia do zadania. Zunifikowane oprogramowanie, takie jak Clonezilla i podobne, nie może bezpośrednio współpracować z zaszyfrowanymi danymi.

Opis problemu tworzenia kopii zapasowych zaszyfrowanych urządzeń blokowych:

  1. uniwersalność - ten sam algorytm/oprogramowanie do tworzenia kopii zapasowych dla Windows/Linux;
  2. możliwość pracy w konsoli z dowolnym live usb GNU/Linux bez konieczności pobierania dodatkowego oprogramowania (ale nadal polecam GUI);
  3. bezpieczeństwo kopii zapasowych - przechowywane „obrazy” muszą być szyfrowane/chronione hasłem;
  4. rozmiar zaszyfrowanych danych musi odpowiadać rozmiarowi faktycznie kopiowanych danych;
  5. wygodne wyodrębnienie niezbędnych plików z kopii zapasowej (nie ma wymogu wcześniejszego odszyfrowania całej sekcji).

Na przykład wykonaj kopię zapasową/przywróć za pomocą narzędzia „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

Odpowiada prawie wszystkim punktom zadania, ale zgodnie z punktem 4 nie wytrzymuje krytyki, ponieważ kopiuje całą partycję dysku, łącznie z wolną przestrzenią - nie jest interesująca.

Na przykład kopia zapasowa GNU/Linux za pomocą archiwizatora [tar" | gpg] jest wygodne, ale w przypadku kopii zapasowej systemu Windows trzeba szukać innego rozwiązania - nie jest to interesujące.

E1. Uniwersalna kopia zapasowa systemu Windows/Linux. Link rsync (Grsync)+wolumin VeraCryptAlgorytm tworzenia kopii zapasowej:

  1. utworzenie zaszyfrowanego kontenera (wolumin/plik) VeraCrypt dla systemu operacyjnego;
  2. przesyłać/synchronizować system operacyjny za pomocą oprogramowania Rsync do kontenera kryptograficznego VeraCrypt;
  3. w razie potrzeby przesłanie wolumenu VeraCrypt na stronę www.

Tworzenie zaszyfrowanego kontenera VeraCrypt ma swoje własne cechy:
tworzenie woluminu dynamicznego (tworzenie DT jest dostępne tylko w systemie Windows, można go również używać w systemie GNU/Linux);
tworzenie regularnego wolumenu, ale istnieje wymóg „charakteru paranoicznego” (według dewelopera) – formatowanie kontenera.

Wolumin dynamiczny jest tworzony w systemie Windows niemal natychmiast, ale podczas kopiowania danych z systemu GNU/Linux > VeraCrypt DT ogólna wydajność operacji tworzenia kopii zapasowej znacznie spada.

Tworzony jest zwykły wolumen Twofish o pojemności 70 GB (powiedzmy, średnia moc komputera) na HDD ~ za pół godziny (nadpisanie danych poprzedniego kontenera w jednym przebiegu wynika z wymogów bezpieczeństwa). Funkcja szybkiego formatowania wolumenu podczas jego tworzenia została usunięta z VeraCrypt Windows/Linux, więc utworzenie kontenera jest możliwe jedynie poprzez „przepisanie w jednym przebiegu” lub utworzenie wolumenu dynamicznego o niskiej wydajności.

Utwórz zwykły wolumen VeraCrypt (nie dynamiczny/ntfs), nie powinno być żadnych problemów.

Skonfiguruj/utwórz/otwórz kontener w interfejsie graficznym VeraCrypt> GNU/Linux Live USB (wolumin zostanie automatycznie zamontowany w /media/veracrypt2, wolumen systemu operacyjnego Windows zostanie zamontowany w /media/veracrypt1). Tworzenie zaszyfrowanej kopii zapasowej systemu operacyjnego Windows przy użyciu GUI rsync (grsync)zaznaczając pola.

Pełne szyfrowanie dysku zainstalowanych systemów Windows Linux. Szyfrowane multi-boot

Poczekaj na zakończenie procesu. Po zakończeniu tworzenia kopii zapasowej będziemy mieli jeden zaszyfrowany plik.

Podobnie utwórz kopię zapasową systemu operacyjnego GNU/Linux, odznaczając pole wyboru „Zgodność z systemem Windows” w interfejsie graficznym rsync.

Uwaga! utwórz kontener Veracrypt dla „kopii zapasowej GNU/Linux” w systemie plików ext4. Jeśli utworzysz kopię zapasową w kontenerze ntfs, przywrócenie takiej kopii spowoduje utratę wszystkich praw/grup do wszystkich swoich danych.

Wszystkie operacje można wykonać w terminalu. Podstawowe opcje rsync:
* -g –zapisz grupy;
* -P —postęp — stan czasu spędzonego na pracy nad plikiem;
* -H - kopiuj twarde linki bez zmian;
* -a -tryb archiwalny (wiele flag rlptgoD);
* -v -werbalizacja.

Jeśli chcesz zamontować „wolumin Windows VeraCrypt” za pośrednictwem konsoli w oprogramowaniu cryptsetup, możesz utworzyć 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

Teraz polecenie „veramount Pictures” wyświetli monit o wprowadzenie hasła, a zaszyfrowany wolumin systemowy Windows zostanie zamontowany w systemie operacyjnym.

Mapuj/zamontuj wolumin systemowy VeraCrypt w poleceniu cryptsetup

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

Mapuj/zamontuj partycję/kontener VeraCrypt w poleceniu cryptsetup

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

Zamiast aliasu dodamy (skrypt do uruchamiania) wolumin systemowy z systemem operacyjnym Windows i logicznym zaszyfrowanym dyskiem ntfs do uruchamiania GNU/Linux

Utwórz skrypt i zapisz go w ~/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.

Rozdajemy „właściwe” prawa:

sudo chmod 100 /VeraOpen.sh

Utwórz dwa identyczne pliki (o tej samej nazwie!) w /etc/rc.local i ~/etc/init.d/rc.local
Wypełnianie plików

#!/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

Rozdajemy „właściwe” prawa:

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

To wszystko, teraz podczas ładowania GNU/Linux nie musimy wprowadzać haseł, aby zamontować zaszyfrowane dyski ntfs, dyski są montowane automatycznie.

Krótka notatka o tym, co opisano krok po kroku powyżej w paragrafie E1 (ale teraz dla systemu operacyjnego GNU/Linux)
1) Utwórz wolumin w fs ext4 > 4gb (dla pliku) Linux w Veracrypt [Cryptbox].
2) Uruchom ponownie, aby uruchomić Live USB.
3) ~$ cryptsetup otwórz /dev/sda7 Lunux #mapowanie zaszyfrowanej partycji.
4) ~$ mount /dev/mapper/Linux /mnt #zamontuj zaszyfrowaną partycję do /mnt.
5) ~$ mkdir mnt2 #tworzenie katalogu dla przyszłej kopii zapasowej.
6) ~$ cryptsetup otwórz —veracrypt —wpisz tcrypt ~/CryptoBox CryptoBox && zamontuj /dev/mapper/CryptoBox /mnt2 #Zamapuj wolumin Veracrypt o nazwie „CryptoBox” i zamontuj CryptoBox do /mnt2.
7) ~$ rsync -avlxhHX —progress /mnt /mnt2/ #operacja tworzenia kopii zapasowej zaszyfrowanej partycji na zaszyfrowanym woluminie Veracrypt.

(p/s/ Uwaga! Jeśli przenosisz zaszyfrowany system GNU/Linux z jednej architektury/maszyny na inną, na przykład Intel > AMD (to znaczy wdrażasz kopię zapasową z jednej zaszyfrowanej partycji na inną zaszyfrowaną partycję Intel > AMD), nie zapomnij Po przesłaniu zaszyfrowanego systemu operacyjnego, być może edytuj tajny klucz zastępczy zamiast hasła. poprzedni klucz ~/etc/skey - nie będzie już pasował do innej zaszyfrowanej partycji i nie jest wskazane tworzenie nowego klucza "cryptsetup luksAddKey" spod chroot - możliwa jest usterka, po prostu w ~/etc/crypttab określ zamiast „/etc/skey” tymczasowo „none” ”, po ponownym uruchomieniu i zalogowaniu się do systemu operacyjnego ponownie utwórz swój tajny klucz wieloznaczny).

Jako weterani IT pamiętajcie o utworzeniu oddzielnych kopii zapasowych nagłówków zaszyfrowanych partycji systemu operacyjnego Windows/Linux, w przeciwnym razie szyfrowanie obróci się przeciwko wam.
Na tym etapie tworzenie kopii zapasowej zaszyfrowanego systemu operacyjnego jest zakończone.

[F] Atak na bootloader GRUB2

szczegółyJeśli zabezpieczyłeś swój program ładujący za pomocą podpisu cyfrowego i/lub uwierzytelnienia (patrz punkt C6.), to nie będzie to chronić przed fizycznym dostępem. Zaszyfrowane dane będą w dalszym ciągu niedostępne, ale zabezpieczenia zostaną ominięte (zresetuj ochronę podpisu cyfrowego) GRUB2 umożliwia cyberprzestępcy wstrzyknięcie swojego kodu do programu ładującego bez wzbudzania podejrzeń (chyba że użytkownik ręcznie monitoruje stan programu ładującego lub wymyśli własny, solidny kod dowolnego skryptu dla grub.cfg).

Algorytm ataku. Intruz

* Uruchamia komputer z Live USB. Jakakolwiek zmiana (gwałciciel) pliki powiadomią prawdziwego właściciela komputera o włamaniu do programu ładującego. Ale prosta ponowna instalacja GRUB2 z zachowaniem grub.cfg (i późniejsza możliwość jego edycji) pozwoli atakującemu na edycję dowolnych plików (w tej sytuacji podczas ładowania GRUB2 prawdziwy użytkownik nie zostanie powiadomiony. Status jest taki sam <0>)
* Montuje niezaszyfrowaną partycję, przechowuje „/mnt/boot/grub/grub.cfg”.
* Ponownie instaluje bootloader (usuwanie „perskey” z obrazu core.img)

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

* Zwraca „grub.cfg” > „/mnt/boot/grub/grub.cfg”, edytuje go w razie potrzeby, na przykład dodając moduł „keylogger.mod” do folderu z modułami ładującymi, w „grub.cfg” > linia „insmod keylogger”. Lub, na przykład, jeśli wróg jest przebiegły, to po ponownej instalacji GRUB2 (wszystkie podpisy pozostają na swoim miejscu) buduje główny obraz GRUB2 przy użyciu „grub-mkimage z opcją (-c).”. Opcja „-c” pozwoli Ci załadować konfigurację przed załadowaniem głównego pliku „grub.cfg”. Konfiguracja może składać się tylko z jednej linii: przekierowanie do dowolnego „modern.cfg”, zmieszanego np. z ~400 plikami (moduły+podpisy) w folderze „/boot/grub/i386-pc”. W takim przypadku osoba atakująca może wstawić dowolny kod i załadować moduły bez wpływu na plik „/boot/grub/grub.cfg”, nawet jeśli użytkownik zastosował do pliku „hashsum” i tymczasowo wyświetlił go na ekranie.
Osoba atakująca nie będzie musiała hakować loginu/hasła superużytkownika GRUB2; wystarczy, że skopiuje te linie (odpowiedzialny za uwierzytelnienie) „/boot/grub/grub.cfg” do pliku „modern.cfg”

ustaw superużytkowników="root"
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

Właściciel komputera nadal będzie uwierzytelniany jako superużytkownik GRUB2.

Ładowanie łańcucha (bootloader ładuje inny bootloader)jak pisałem wyżej nie ma to sensu (jest przeznaczony do innego celu). Zaszyfrowanego programu ładującego nie można załadować ze względu na BIOS (rozruch łańcuchowy uruchamia ponownie GRUB2 > zaszyfrowany GRUB2, błąd!). Jeśli jednak nadal korzystasz z pomysłu ładowania łańcuchowego, możesz być pewien, że ładowany jest ładowany łańcuch zaszyfrowany. (nie zmodernizowany) „grub.cfg” z zaszyfrowanej partycji. I to też jest fałszywe poczucie bezpieczeństwa, bo wszystko co jest wskazane w zaszyfrowanym pliku „grub.cfg” (ładowanie modułów) sumuje się do modułów ładowanych z niezaszyfrowanego GRUB2.

Jeśli chcesz to sprawdzić, przydziel/zaszyfruj kolejną partycję sdaY i skopiuj do niej GRUB2 (operacja grub-install na zaszyfrowanej partycji nie jest możliwa) oraz w „grub.cfg” (nieszyfrowana konfiguracja) zmień takie linie

menuentry 'GRUBx2' --class parrot --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-382111a2-f993-403c-aa2e-292b5eac4780' {
ładowanie_wideo
insmod gzio
if [ x$grub_platforma = xxen ]; następnie insmod xzio; insmod lzopio; fi
insmod część_msdos
Kryptodysk insmod
insmod lux
insmod gcry_twofish
insmod gcry_twofish
insmod gcry_sha512
insmod ext2
cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838
set root=’cryptouuid/15c47d1c4bd34e5289df77bcf60ee838′
normalny /boot/grub/grub.cfg
}

struny
* insmod - ładowanie modułów niezbędnych do pracy z zaszyfrowanym dyskiem;
* GRUBx2 - nazwa linii wyświetlana w menu startowym GRUB2;
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 -patrz. fdisk -l (sda9);
* ustaw root - zainstaluj root;
* normal /boot/grub/grub.cfg - wykonywalny plik konfiguracyjny na zaszyfrowanej partycji.

Pewność, że ładowany jest zaszyfrowany plik „grub.cfg” jest pozytywną reakcją na wprowadzenie hasła/odblokowanie „sdaY” przy wyborze wiersza „GRUBx2” w menu GRUB.

Podczas pracy w CLI, aby się nie pomylić (i sprawdź, czy zadziałała zmienna środowiskowa „set root”), utwórz puste pliki tokenów, na przykład w zaszyfrowanej sekcji „/shifr_grub”, w niezaszyfrowanej sekcji „/noshifr_grub”. Sprawdzam w CLI

cat /Tab-Tab

Jak wspomniano powyżej, nie pomoże to w zapobieganiu pobieraniu złośliwych modułów, jeśli takie moduły znajdą się na Twoim komputerze. Na przykład keylogger, który będzie mógł zapisywać naciśnięcia klawiszy w pliku i mieszać je z innymi plikami w „~/i386”, dopóki nie zostaną pobrane przez osobę atakującą mającą fizyczny dostęp do komputera.

Najłatwiejszy sposób sprawdzenia, czy ochrona podpisu cyfrowego aktywnie działa (nie resetowany)i nikt nie wtargnął do bootloadera, wpisz polecenie w CLI

list_trusted

w odpowiedzi otrzymujemy kopię naszego „perkeya” lub nie otrzymujemy nic, jeśli zostaniemy zaatakowani (musisz także zaznaczyć „set check_signatures=enforce”).
Istotną wadą tego kroku jest ręczne wprowadzanie poleceń. Jeśli dodasz to polecenie do „grub.cfg” i zabezpieczysz konfigurację podpisem cyfrowym, wstępne wyświetlanie migawki klucza na ekranie będzie zbyt krótkie i możesz nie mieć czasu na zobaczenie wyników po załadowaniu GRUB2 .
Nie ma nikogo konkretnego, kto mógłby mieć roszczenia do: dewelopera w swoim dokumentacja klauzula 18.2 oficjalnie deklaruje

„Zauważ, że nawet przy ochronie hasłem GRUB, sam GRUB nie może uniemożliwić osobie mającej fizyczny dostęp do maszyny zmiany konfiguracji oprogramowania sprzętowego tej maszyny (np. Coreboot lub BIOS), tak aby maszyna uruchomiła się z innego (kontrolowanego przez osobę atakującą) urządzenia. GRUB jest w najlepszym wypadku tylko jednym ogniwem w łańcuchu bezpiecznego rozruchu.”

GRUB2 jest zbyt przeładowany funkcjami, które mogą dawać poczucie fałszywego bezpieczeństwa, a jego rozwój prześcignął już MS-DOS pod względem funkcjonalności, ale jest to tylko program ładujący. Zabawne, że GRUB2 – „jutro” może stać się systemem operacyjnym i bootowalnymi dla niego maszynami wirtualnymi GNU/Linux.

Krótki film o tym, jak zresetowałem ochronę podpisu cyfrowego GRUB2 i zadeklarowałem włamanie do prawdziwego użytkownika (Przestraszyłem cię, ale zamiast tego, co pokazano na filmie, możesz napisać nieszkodliwy, dowolny kod/.mod).

Wnioski:

1) Szyfrowanie systemu blokowego w systemie Windows jest łatwiejsze do wdrożenia, a ochrona jednym hasłem jest wygodniejsza niż ochrona kilkoma hasłami za pomocą szyfrowania systemu blokowego GNU/Linux, żeby być uczciwym: to drugie jest zautomatyzowane.

2) Napisałem artykuł jako istotny i szczegółowy proste przewodnik po szyfrowaniu całego dysku VeraCrypt/LUKS na jednym komputerze, który jest zdecydowanie najlepszy w RuNet (IMHO). Poradnik ma > 50 tys. znaków, więc nie zawiera kilku interesujących rozdziałów: kryptografowie, którzy znikają/strzymują się w cieniu; o tym, że w różnych książkach o GNU/Linuksie niewiele/nie piszą o kryptografii; o art. 51 Konstytucji Federacji Rosyjskiej; O koncesjonowanie/zakaz szyfrowanie w Federacji Rosyjskiej, o tym, dlaczego musisz szyfrować „root/boot”. Poradnik okazał się dość obszerny, ale szczegółowy. (opisując nawet proste kroki), to z kolei pozwoli Ci zaoszczędzić dużo czasu, gdy dojdziesz do „prawdziwego szyfrowania”.

3) Pełne szyfrowanie dysku zostało wykonane w systemie Windows 7 64; GNU/Linux Parrot 4x; GNU/Debiana 9.0/9.5.

4) Przeprowadzono udany atak na jego Program ładujący GRUB2.

5) Poradnik został stworzony, aby pomóc wszystkim paranoikom w krajach WNP, gdzie praca z szyfrowaniem jest dozwolona na poziomie legislacyjnym. A przede wszystkim dla tych, którzy chcą wdrożyć szyfrowanie całego dysku bez niszczenia skonfigurowanych systemów.

6) Przerobiłem i zaktualizowałem mój podręcznik, który jest istotny w 2020 roku.

[G] Przydatna dokumentacja

  1. Podręcznik użytkownika TrueCrypt (luty 2012 RU)
  2. Dokumentacja VeraCrypt
  3. /usr/share/doc/cryptsetup(-run) [zasób lokalny] (oficjalna szczegółowa dokumentacja dotycząca konfiguracji szyfrowania GNU/Linux za pomocą cryptsetup)
  4. Oficjalna konfiguracja kryptowaluty FAQ (krótka dokumentacja dotycząca konfiguracji szyfrowania GNU/Linux za pomocą cryptsetup)
  5. Szyfrowanie urządzenia LUKS (dokumentacja Archlinux)
  6. Szczegółowy opis składni cryptsetup (strona podręcznika Arch)
  7. Szczegółowy opis crypttab (strona podręcznika Arch)
  8. Oficjalna dokumentacja GRUB2.

Tagi: szyfrowanie całego dysku, szyfrowanie partycji, szyfrowanie pełnego dysku Linux, pełne szyfrowanie systemu LUKS1.

W ankiecie mogą brać udział tylko zarejestrowani użytkownicy. Zaloguj się, Proszę.

Czy szyfrujesz?

  • 17,1%Szyfruję wszystko, co się da. Mam paranoję. 14

  • 34,2%Szyfruję tylko ważne dane.28

  • 14,6%Czasem szyfruję, czasem zapominam.12

  • 34,2%Nie, nie szyfruję, jest to niewygodne i drogie.28

Głosowało 82 użytkowników. 22 użytkowników wstrzymało się od głosu.

Źródło: www.habr.com

Dodaj komentarz