Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot
Bijgewerkte eigen handleiding voor versleuteling van volledige schijf in RuNet V0.2.

Cowboystrategie:

[A] Windows 7-systeem blokkeert de encryptie van het geïnstalleerde systeem;
[B] GNU/Linux-systeemblokversleuteling (Debian) geïnstalleerd systeem (inclusief /boot);
[C] GRUB2-configuratie, bootloaderbescherming met digitale handtekening/authenticatie/hashing;
[D] strippen – vernietiging van niet-gecodeerde gegevens;
[E] universele back-up van gecodeerd besturingssysteem;
[F] aanval <op item [C6]> doel - GRUB2 bootloader;
[G]nuttige documentatie.

╭───Diagram van #kamer 40# :
├──╼ Windows 7 geïnstalleerd - volledige systeemversleuteling, niet verborgen;
├──╼ GNU/Linux geïnstalleerd (Debian en afgeleide distributies) — volledige systeemversleuteling, niet verborgen(/, inclusief /boot; swap);
├──╼ onafhankelijke bootloaders: VeraCrypt-bootloader is geïnstalleerd in de MBR, GRUB2-bootloader is geïnstalleerd in de uitgebreide partitie;
├──╼geen OS-installatie/herinstallatie vereist;
└──╼gebruikte cryptografische software: VeraCrypt; Cryptopstelling; GnuPG; Zeepaardje; Hashdiep; GRUB2 is gratis/gratis.

Het bovenstaande schema lost gedeeltelijk het probleem van "op afstand opstarten vanaf een flashdrive" op, stelt u in staat te genieten van het gecodeerde besturingssysteem Windows/Linux en gegevens uit te wisselen via een "gecodeerd kanaal" van het ene besturingssysteem naar het andere.

PC-opstartvolgorde (een van de opties):

  • het inschakelen van de machine;
  • het laden van de VeraCrypt-bootloader (als u het juiste wachtwoord invoert, blijft Windows 7 opstarten);
  • door op de "Esc"-toets te drukken, wordt de GRUB2-bootloader geladen;
  • GRUB2 bootloader (selecteer distributie/GNU/Linux/CLI), vereist authenticatie van de GRUB2-superuser <login/wachtwoord>;
  • na succesvolle authenticatie en selectie van de distributie, moet u een wachtwoordzin invoeren om “/boot/initrd.img” te ontgrendelen;
  • na het invoeren van foutloze wachtwoorden, zal GRUB2 een wachtwoordinvoer "vereisen". (derde, BIOS-wachtwoord of GNU/Linux-gebruikersaccountwachtwoord – niet overwegen) om GNU/Linux OS te ontgrendelen en op te starten, of automatische vervanging van een geheime sleutel (twee wachtwoorden + sleutel, of wachtwoord + sleutel);
  • externe inbraak in de GRUB2-configuratie zal het GNU/Linux-opstartproces bevriezen.

Lastig? Oké, laten we de processen gaan automatiseren.

Bij het partitioneren van een harde schijf (MBR-tabel) Een pc kan niet meer dan 4 hoofdpartities hebben, of 3 hoofdpartities en één uitgebreide, evenals een niet-toegewezen gebied. Een uitgebreide sectie kan, in tegenstelling tot de hoofdsectie, subsecties bevatten (logische schijven=uitgebreide partitie). Met andere woorden: de “uitgebreide partitie” op de harde schijf vervangt LVM voor de taak die voorhanden is: volledige systeemversleuteling. Als uw schijf in 4 hoofdpartities is verdeeld, moet u lvm of transform gebruiken (met opmaak) sectie van hoofd tot geavanceerd, of gebruik verstandig alle vier secties en laat alles zoals het is, om het gewenste resultaat te krijgen. Zelfs als u één partitie op uw schijf heeft, helpt Gparted u bij het partitioneren van uw harde schijf (voor extra secties) zonder gegevensverlies, maar nog steeds met een kleine boete voor dergelijke acties.

Het lay-outschema van de harde schijf, in relatie waarmee het hele artikel zal worden verwoord, wordt weergegeven in de onderstaande tabel.

Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot
Tabel (nr. 1) met 1TB-partities.

Je zou ook iets soortgelijks moeten hebben.
sda1 - hoofdpartitie nr. 1 NTFS (gecodeerd);
sda2 - uitgebreide sectiemarkering;
sda6 - logische schijf (er is de GRUB2-bootloader geïnstalleerd);
sda8 - swap (gecodeerd wisselbestand/niet altijd);
sda9 - test logische schijf;
sda5 - logische schijf voor nieuwsgierigen;
sda7 - GNU/Linux OS (besturingssysteem overgebracht naar een gecodeerde logische schijf);
sda3 - hoofdpartitie nr. 2 met Windows 7 OS (gecodeerd);
sda4 - hoofdsectie nr. 3 (het bevatte niet-versleutelde GNU/Linux, gebruikt voor back-up/niet altijd).

[A] Windows 7 Systeemblokversleuteling

A1. VeraCryptVolledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

Downloaden van officiële website, of vanuit de spiegel SourceForge installatieversie van de cryptografische software VeraCrypt (op het moment van publicatie van het artikel v1.24-Update3 is de draagbare versie van VeraCrypt niet geschikt voor systeemversleuteling). Controleer de controlesom van de gedownloade software

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

en vergelijk het resultaat met de CS die op de VeraCrypt-ontwikkelaarswebsite is geplaatst.

Als HashTab-software is geïnstalleerd, is het nog eenvoudiger: RMB (VeraCrypt-installatie 1.24.exe)-eigenschappen - hashsom van bestanden.

Om de programmahandtekening te verifiëren, moeten de software en de openbare pgp-sleutel van de ontwikkelaar op het systeem worden geïnstalleerd gnuPG; gpg4win.

A2. VeraCrypt-software installeren/uitvoeren met beheerdersrechtenVolledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

A3. Systeemcoderingsparameters selecteren voor de actieve partitieVeraCrypt – Systeem – Systeempartitie/schijf coderen – Normaal – Windows-systeempartitie coderen – Multiboot – (waarschuwing: “Onervaren gebruikers worden niet aangeraden deze methode te gebruiken” en dit is waar, wij zijn het daarmee eens “Ja”) - Opstartschijf (“ja”, ook al is het niet zo, toch “ja”) – Aantal systeemschijven “2 of meer” – Meerdere systemen op één schijf “Ja” – Niet-Windows-bootloader “Nee” (in feite "Ja", maar de VeraCrypt/GRUB2-bootloaders zullen de MBR niet onderling delen; preciezer gezegd, alleen het kleinste deel van de bootloadercode wordt opgeslagen in de MBR/boot-track, het grootste deel ervan is bevindt zich in het bestandssysteem) – Multiboot – Coderingsinstellingen…

Als u afwijkt van bovenstaande stappen (systeemversleutelingsschema's blokkeren), dan zal VeraCrypt een waarschuwing geven en u niet toestaan ​​de partitie te coderen.

Voer in de volgende stap naar gerichte gegevensbescherming een “Test” uit en selecteer een coderingsalgoritme. Als je een verouderde CPU hebt, zal Twofish hoogstwaarschijnlijk het snelste coderingsalgoritme zijn. Als de CPU krachtig is, zul je het verschil merken: AES-codering zal volgens de testresultaten meerdere malen sneller zijn dan zijn crypto-concurrenten. AES is een populair versleutelingsalgoritme; de ​​hardware van moderne CPU's is speciaal geoptimaliseerd voor zowel “geheim” als “hacken”.

VeraCrypt ondersteunt de mogelijkheid om schijven in een AES-cascade te coderen(Twee vissen)/en andere combinaties. Op een oude core Intel CPU van tien jaar geleden (zonder hardwareondersteuning voor AES, A/T-cascade-encryptie) De prestatievermindering is in wezen onmerkbaar. (voor AMD CPU's uit hetzelfde tijdperk/~parameters zijn de prestaties enigszins verminderd). Het besturingssysteem werkt dynamisch en het bronnenverbruik voor transparante encryptie is onzichtbaar. Daarentegen is er bijvoorbeeld een merkbare prestatievermindering als gevolg van de geïnstalleerde testonstabiele desktopomgeving Mate v1.20.1 (of v1.20.2 weet ik niet precies meer) in GNU/Linux, of vanwege de werking van de telemetrieroutine in Windows7↑. Doorgaans voeren ervaren gebruikers hardwareprestatietests uit voordat ze worden gecodeerd. In Aida64/Sysbench/systemd-analyze wordt bijvoorbeeld de schuld vergeleken met de resultaten van dezelfde tests na het versleutelen van het systeem, waardoor voor zichzelf de mythe wordt weerlegd dat “systeemversleuteling schadelijk is.” De vertraging van de machine en het ongemak zijn merkbaar bij het maken van een back-up/herstel van versleutelde gegevens, omdat de “systeemgegevensback-up”-bewerking zelf niet wordt gemeten in ms, en diezelfde <decrypt/encrypt on the fly> worden toegevoegd. Uiteindelijk zal elke gebruiker die aan cryptografie mag sleutelen, het encryptie-algoritme afwegen tegen de tevredenheid van de uit te voeren taken, het niveau van paranoia en het gebruiksgemak.

Het is beter om de PIM-parameter op standaard te laten staan, zodat je bij het laden van het besturingssysteem niet elke keer de exacte iteratiewaarden hoeft in te voeren. VeraCrypt gebruikt een groot aantal iteraties om een ​​echt “langzame hash” te creëren. Een aanval op zo’n ‘cryptoslak’ met behulp van de Brute force/regenboogtabellenmethode heeft alleen zin met een korte ‘eenvoudige’ wachtwoordzin en de persoonlijke lijst met tekensets van het slachtoffer. De prijs die moet worden betaald voor de sterkte van het wachtwoord is een vertraging bij het invoeren van het juiste wachtwoord bij het laden van het besturingssysteem. (het koppelen van VeraCrypt-volumes in GNU/Linux gaat aanzienlijk sneller).
Gratis software voor het implementeren van brute force-aanvallen (haal de wachtwoordzin uit de VeraCrypt/LUKS-schijfkop) Hashkat. John the Ripper weet niet hoe hij “Veracrypt moet breken”, en wanneer hij met LUKS werkt, begrijpt hij de Twofish-cryptografie niet.

Vanwege de cryptografische kracht van encryptie-algoritmen ontwikkelen onstuitbare cypherpunks software met een andere aanvalsvector. Bijvoorbeeld het extraheren van metagegevens/sleutels uit RAM (koude start/aanval met directe geheugentoegang), Er bestaat gespecialiseerde gratis en niet-vrije software voor deze doeleinden.

Na voltooiing van het instellen/genereren van “unieke metadata” van de gecodeerde actieve partitie, zal VeraCrypt aanbieden om de pc opnieuw op te starten en de functionaliteit van de bootloader te testen. Na het opnieuw opstarten/starten van Windows wordt VeraCrypt in de standby-modus geladen. Het enige dat overblijft is het bevestigen van het coderingsproces - Y.

Bij de laatste stap van systeemversleuteling zal VeraCrypt aanbieden om een ​​back-upkopie te maken van de header van de actieve gecodeerde partitie in de vorm van “veracrypt Rescue Disk.iso” - dit moet worden gedaan - in deze software is een dergelijke handeling een vereiste (in LUKS, als vereiste - dit is helaas weggelaten, maar wordt benadrukt in de documentatie). De reddingsschijf zal voor iedereen van pas komen, en voor sommigen meer dan eens. Verlies (koptekst/MBR herschrijven) een reservekopie van de header zal permanent de toegang tot de gedecodeerde partitie met OS Windows weigeren.

A4. Een VeraCrypt-reddings-USB/-schijf makenStandaard biedt VeraCrypt aan om “~2-3MB aan metadata” op een CD te branden, maar niet alle mensen hebben schijven of DWD-ROM-drives, en het maken van een opstartbare flashdrive “VeraCrypt Rescue disk” zal voor sommigen een technische verrassing zijn: Rufus /GUIdd-ROSA ImageWriter en andere soortgelijke software zullen deze taak niet aankunnen, omdat u naast het kopiëren van offset-metagegevens naar een opstartbare flashdrive, de afbeelding buiten het bestandssysteem van de USB-drive moet kopiëren en plakken, Kortom, kopieer de MBR/road correct naar de sleutelhanger. U kunt een opstartbare flashdrive maken vanuit GNU/Linux OS met behulp van het hulpprogramma "dd", kijkend naar dit bord.

Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

Het maken van een herstelschijf in een Windows-omgeving is anders. De ontwikkelaar van VeraCrypt heeft de oplossing voor dit probleem niet in de ambtenaar opgenomen de documentatie door “rescue disk”, maar stelde op een andere manier een oplossing voor: hij plaatste aanvullende software voor het maken van een “usb reddingsschijf” voor gratis toegang op zijn VeraCrypt-forum. De archivaris van deze software voor Windows is “het maken van een usb veracrypt reddingsschijf”. Na het opslaan van Rescue Disk.iso begint het proces van het blokkeren van systeemversleuteling van de actieve partitie. Tijdens de codering stopt de werking van het besturingssysteem niet; een herstart van de pc is niet vereist. Na voltooiing van de versleutelingsbewerking wordt de actieve partitie volledig versleuteld en kan deze worden gebruikt. Als de VeraCrypt-bootloader niet verschijnt wanneer u de pc start en de headerherstelbewerking niet helpt, controleer dan de "boot" -vlag. Deze moet worden ingesteld op de partitie waarop Windows aanwezig is (ongeacht codering en ander besturingssysteem, zie tabel nr. 1).
Hiermee is de beschrijving van bloksysteemversleuteling met Windows OS voltooid.

[B]LUKS. GNU/Linux-codering (~Debian) geïnstalleerd besturingssysteem. Algoritme en stappen

Om een ​​geïnstalleerde Debian/afgeleide distributie te coderen, moet u de voorbereide partitie toewijzen aan een virtueel blokapparaat, deze overbrengen naar de toegewezen GNU/Linux-schijf en GRUB2 installeren/configureren. Als je geen bare metal-server hebt en je tijd op prijs stelt, dan moet je de GUI gebruiken, en de meeste terminalopdrachten die hieronder worden beschreven zijn bedoeld om te worden uitgevoerd in de “Chuck-Norris-modus”.

B1. PC opstarten vanaf live usb GNU/Linux

“Voer een cryptotest uit voor hardwareprestaties”

lscpu && сryptsetup benchmark

Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

Als u de gelukkige eigenaar bent van een krachtige auto met AES-hardwareondersteuning, zien de cijfers eruit als de rechterkant van de terminal; als u een gelukkige eigenaar bent, maar met antieke hardware, zien de cijfers eruit als de linkerkant.

B2. Schijfpartitionering. mounten/formatteren fs logische schijf HDD naar Ext4 (Gparted)

B2.1. Een gecodeerde sda7-partitieheader makenIk zal de namen van de partities hier en verder beschrijven in overeenstemming met mijn partitietabel die hierboven is geplaatst. Afhankelijk van uw schijfindeling moet u de partitienamen vervangen.

Toewijzing van logische schijfversleuteling (/dev/sda7 > /dev/mapper/sda7_crypt).
#Eenvoudig aanmaken van een “LUKS-AES-XTS-partitie”

cryptsetup -v -y luksFormat /dev/sda7

Opties:

* luksFormat - initialisatie van LUKS-header;
* -y -wachtwoordzin (geen sleutel/bestand);
* -v -verbalisatie (informatie weergeven in de terminal);
* /dev/sda7 - uw logische schijf van de uitgebreide partitie (waar het de bedoeling is om GNU/Linux over te dragen/versleutelen).

Standaard versleutelingsalgoritme <LUKS1: aes-xts-plain64, sleutel: 256 bits, LUKS header hashing: sha256, RNG: /dev/urandom> (afhankelijk van de cryptsetup-versie).

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

Als er geen hardwareondersteuning voor AES op de CPU is, is de beste keuze het maken van een uitgebreide “LUKS-Twofish-XTS-partitie”.

B2.2. Geavanceerde creatie van “LUKS-Twofish-XTS-partitie”

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

Opties:
* luksFormat - initialisatie van LUKS-header;
* /dev/sda7 is uw toekomstige gecodeerde logische schijf;
* -v verbalisatie;
* -y wachtwoordzin;
* -c selecteer algoritme voor gegevenscodering;
* -s grootte van de coderingssleutel;
* -h hash-algoritme/cryptofunctie, RNG gebruikt (--gebruik-urandom) om een ​​unieke encryptie/decryptiesleutel te genereren voor de logische schijfheader, een secundaire headersleutel (XTS); een unieke hoofdsleutel opgeslagen in de gecodeerde schijfheader, een secundaire XTS-sleutel, al deze metadata en een coderingsroutine die, met behulp van de hoofdsleutel en de secundaire XTS-sleutel, alle gegevens op de partitie codeert/decodeert (behalve sectietitel) opgeslagen in ~3MB op de geselecteerde harde schijfpartitie.
* -i iteraties in milliseconden, in plaats van "hoeveelheid" (de tijdsvertraging bij het verwerken van de wachtwoordzin heeft invloed op het laden van het besturingssysteem en de cryptografische sterkte van de sleutels). Om de cryptografische sterkte in evenwicht te houden, moet u met een eenvoudig wachtwoord zoals “Russisch” de waarde -(i) verhogen; met een complex wachtwoord zoals “?8dƱob/øfh” kan de waarde worden verlaagd.
* —gebruik een willekeurige nummergenerator, genereert sleutels en zout.

Na het in kaart brengen van de sectie sda7 > sda7_crypt (de bediening is snel, omdat er een gecodeerde header wordt gemaakt met ~3 MB aan metadata en dat is alles), moet u het sda7_crypt-bestandssysteem formatteren en mounten.

B2.3. Vergelijking

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

opties:
* open - match de sectie "met naam";
* /dev/sda7 -logische schijf;
* sda7_crypt - naamtoewijzing die wordt gebruikt om de gecodeerde partitie te koppelen of te initialiseren wanneer het besturingssysteem opstart.

B2.4. Het bestandssysteem sda7_crypt formatteren naar ext4. Een schijf in het besturingssysteem monteren(Let op: je kunt niet werken met een gecodeerde partitie in Gparted)

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

opties:
* -v -verbalisatie;
* -L - schijflabel (dat onder andere in Explorer wordt weergegeven).

Vervolgens moet u het virtueel gecodeerde blokapparaat /dev/sda7_crypt aan het systeem koppelen

mount /dev/mapper/sda7_crypt /mnt

Als u met bestanden in de map /mnt werkt, worden de gegevens in sda7 automatisch gecodeerd/gedecodeerd.

Het is handiger om de partitie in Verkenner toe te wijzen en te koppelen (nautilus/caja GUI), staat de partitie al in de schijfselectielijst. Het enige dat overblijft is het invoeren van de wachtwoordzin om de schijf te openen/decoderen. De overeenkomende naam wordt automatisch geselecteerd en niet “sda7_crypt”, maar zoiets als /dev/mapper/Luks-xx-xx...

B2.5. Back-up van schijfkoptekst (~3 MB metadata)Een van de meesten belangrijk bewerkingen die zonder vertraging moeten worden uitgevoerd - een back-up van de header "sda7_crypt". Als u de header overschrijft/beschadigt (bijvoorbeeld GRUB2 installeren op de sda7-partitie, enz.), zullen de gecodeerde gegevens volledig verloren gaan zonder enige mogelijkheid om deze te herstellen, omdat het onmogelijk zal zijn om dezelfde sleutels opnieuw te genereren; de sleutels zijn uniek gemaakt.

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

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

opties:
* luksHeaderBackup —header-backup-bestand -backup-opdracht;
* luksHeaderRestore —header-backup-file -restore opdracht;
* ~/Backup_DebSHIFR - back-upbestand;
* /dev/sda7 - partitie waarvan de gecodeerde back-upkopie van de schijfkop moet worden opgeslagen.
Bij deze stap is <het aanmaken en bewerken van de gecodeerde partitie> voltooid.

B3. Overzetten van GNU/Linux besturingssysteem (sda4) naar een gecodeerde partitie (sda7)

Maak een map /mnt2 (Opmerking: we werken nog steeds met live usb, sda7_crypt is aangekoppeld op /mnt), en mount onze GNU/Linux in /mnt2, die gecodeerd moet worden.

mkdir /mnt2
mount /dev/sda4 /mnt2

We voeren de juiste besturingssysteemoverdracht uit met behulp van Rsync-software

rsync -avlxhHX --progress /mnt2/ /mnt

Rsync-opties worden beschreven in paragraaf E1.

verder, noodzakelijk defragmenteer een logische schijfpartitie

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

Maak er een regel van: voer van tijd tot tijd e4defrag uit op gecodeerde GNU/Linux als je een HDD hebt.
De overdracht en synchronisatie [GNU/Linux > GNU/Linux-gecodeerd] is bij deze stap voltooid.

OM 4. GNU/Linux instellen op een gecodeerde sda7-partitie

Na de succesvolle overdracht van het besturingssysteem /dev/sda4 > /dev/sda7, moet u inloggen op GNU/Linux op de gecodeerde partitie en verdere configuratie uitvoeren (zonder pc opnieuw op te starten) ten opzichte van een gecodeerd systeem. Dat wil zeggen, wees in live usb, maar voer opdrachten uit “ten opzichte van de root van het gecodeerde besturingssysteem.” “chroot” zal een soortgelijke situatie simuleren. Om snel informatie te ontvangen over met welk besturingssysteem u momenteel werkt (al dan niet gecodeerd, aangezien de gegevens in sda4 en sda7 gesynchroniseerd zijn), desynchroniseer het besturingssysteem. Maak in hoofdmappen (sda4/sda7_crypt) lege markeringsbestanden, bijvoorbeeld /mnt/encryptedOS en /mnt2/decryptedOS. Controleer snel welk besturingssysteem u gebruikt (ook voor de toekomst):

ls /<Tab-Tab>

B4.1. “Simulatie van inloggen op een gecodeerd besturingssysteem”

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

B4.2. Controleren of er wordt gewerkt met een gecodeerd systeem

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

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

B4.3. Versleutelde swap aanmaken/configureren, crypttab/fstab bewerkenOmdat het wisselbestand elke keer dat het besturingssysteem wordt gestart, wordt geformatteerd, heeft het geen zin om nu een wisselbestand aan te maken en aan een logische schijf toe te wijzen, en opdrachten in te voeren zoals in paragraaf B2.2. Voor Swap worden bij elke start automatisch zijn eigen tijdelijke coderingssleutels gegenereerd. Levenscyclus van swapsleutels: swappartitie ontkoppelen/ontkoppelen (+ RAM opschonen); of start het besturingssysteem opnieuw. Swap instellen, het bestand openen dat verantwoordelijk is voor de configuratie van blokgecodeerde apparaten (analoog aan een fstab-bestand, maar verantwoordelijk voor crypto).

nano /etc/crypttab 

wij bewerken

#"doelnaam" "bronapparaat" "sleutelbestand" "opties"
swap /dev/sda8 /dev/urandom swap,cipher=twofish-xts-plain64,size=512,hash=sha512

Opties
* swap - toegewezen naam bij het coderen van /dev/mapper/swap.
* /dev/sda8 - gebruik uw logische partitie voor swap.
* /dev/urandom - generator van willekeurige coderingssleutels voor swap (bij elke nieuwe OS-opstart worden er nieuwe sleutels gemaakt). De /dev/urandom generator is minder willekeurig dan /dev/random, /dev/random wordt immers gebruikt bij het werken in gevaarlijke paranoïde omstandigheden. Bij het laden van het besturingssysteem vertraagt ​​/dev/random het laden gedurende enkele ± minuten (zie systemd-analyse).
* swap,cipher=twofish-xts-plain64,size=512,hash=sha512: -de partitie weet dat het een swap is en is “dienovereenkomstig” geformatteerd; Encryptie algoritme.

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

wij bewerken

# swap stond tijdens de installatie op / dev / sda8
/dev/mapper/swap none swap sw 0 0

/dev/mapper/swap is de naam die is ingesteld in crypttab.

Alternatieve gecodeerde swap
Als u om de een of andere reden niet een hele partitie wilt opgeven voor een wisselbestand, dan kunt u een alternatieve en betere route nemen: een wisselbestand maken in een bestand op een gecodeerde partitie met het besturingssysteem.

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

De installatie van de wisselpartitie is voltooid.

B4.4. Versleutelde GNU/Linux instellen (crypttab/fstab-bestanden bewerken)Het bestand /etc/crypttab, zoals hierboven beschreven, beschrijft gecodeerde blokapparaten die worden geconfigureerd tijdens het opstarten van het systeem.

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

als u de sectie sda7>sda7_crypt hebt gevonden zoals in paragraaf B2.1

# "doelnaam" "bronapparaat" "sleutelbestand" "opties"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none luks

als u de sectie sda7>sda7_crypt hebt gevonden zoals in paragraaf B2.2

# "doelnaam" "bronapparaat" "sleutelbestand" "opties"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none cipher=twofish-xts-plain64,size=512,hash=sha512

als je de sectie sda7>sda7_crypt hebt gevonden zoals in paragraaf B2.1 of B2.2, maar je wilt het wachtwoord niet opnieuw invoeren om het besturingssysteem te ontgrendelen en op te starten, dan kun je in plaats van het wachtwoord een geheime sleutel/willekeurig bestand vervangen

# "doelnaam" "bronapparaat" "sleutelbestand" "opties"
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 /etc/skey luks

beschrijving
* geen - meldt dat bij het laden van het besturingssysteem een ​​geheime wachtwoordzin moet worden ingevoerd om de root te ontgrendelen.
* UUID - partitie-ID. Om uw ID te achterhalen, typt u in de terminal (Houd er rekening mee dat u vanaf dit moment in een terminal in een chroot-omgeving werkt, en niet in een andere live USB-terminal).

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»

deze regel is zichtbaar bij het aanvragen van blkid vanaf de live usb-terminal met sda7_crypt aangekoppeld).
U haalt de UUID van uw sdaX (niet sdaX_crypt!, UUID sdaX_crypt - wordt automatisch verlaten bij het genereren van de grub.cfg-configuratie).
* cipher=twofish-xts-plain64,size=512,hash=sha512 -luks codering in geavanceerde modus.
* /etc/skey - geheim sleutelbestand, dat automatisch wordt ingevoegd om het opstarten van het besturingssysteem te ontgrendelen (in plaats van het derde wachtwoord in te voeren). U kunt elk bestand tot 8 MB opgeven, maar de gegevens worden <1 MB gelezen.

#Создание "генерация" случайного файла <секретного ключа> размером 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 

Het zal er ongeveer zo uitzien:

(doe het zelf en oordeel zelf).

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

/etc/fstab bevat beschrijvende informatie over verschillende bestandssystemen.

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

# "bestandssysteem" "koppelpunt" "type" "opties" "dump" "pass"
# / stond op / dev / sda7 tijdens de installatie
/dev/mapper/sda7_crypt / ext4 fouten=remount-ro 0 1

optie
* /dev/mapper/sda7_crypt - de naam van de sda7>sda7_crypt-toewijzing, die is opgegeven in het bestand /etc/crypttab.
De installatie van crypttab/fstab is voltooid.

B4.5. Configuratiebestanden bewerken. SleutelmomentB4.5.1. De configuratie /etc/initramfs-tools/conf.d/resume

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

en commentaar geven (indien bestaat) "#" regel "hervatten". Het bestand moet volledig leeg zijn.

B4.5.2. Het bewerken van de configuratie /etc/initramfs-tools/conf.d/cryptsetup

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

Zou moeten overeen komen

# /etc/initramfs-tools/conf.d/cryptsetup
CRYPTSETUP=ja
CRYPTSETUP exporteren

B4.5.3. Het bewerken van de configuratie /etc/default/grub (deze configuratie is verantwoordelijk voor de mogelijkheid om grub.cfg te genereren bij het werken met gecodeerde /boot)

nano /etc/default/grub

voeg de regel "GRUB_ENABLE_CRYPTODISK=y" toe
waarde 'y', grub-mkconfig en grub-install controleren op gecodeerde schijven en genereren extra opdrachten die nodig zijn om deze te openen tijdens het opstarten (insmods ).
er moet sprake zijn van gelijkenis

GRUB_DEFAULT = 0
GRUB_TIMEOUT = 1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=leverancier"
GRUB_CMDLINE_LINUX="rustige plons zonder automount"
GRUB_ENABLE_CRYPTODISK=y

B4.5.4. Het bewerken van de configuratie /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

controleer of de lijn heeft gereageerd <#>.
In de toekomst (en zelfs nu heeft deze parameter geen enkele betekenis, maar soms interfereert hij met het bijwerken van de afbeelding initrd.img).

B4.5.5. Het bewerken van de configuratie /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

toevoegen

KEYFILE_PATTERN=”/etc/skey”
UMASK=0077

Hiermee wordt de geheime sleutel "skey" in initrd.img verpakt, de sleutel is nodig om de root te ontgrendelen wanneer het besturingssysteem opstart (als u het wachtwoord niet opnieuw wilt invoeren, wordt de sleutel "skey" vervangen door de auto).

B4.6. Update /boot/initrd.img [versie]Update de afbeelding om de geheime sleutel in initrd.img te verpakken en cryptsetup-fixes toe te passen

update-initramfs -u -k all

bij het updaten van initrd.img (zoals ze zeggen: “Het is mogelijk, maar het is niet zeker”) Er verschijnen waarschuwingen met betrekking tot cryptsetup, of bijvoorbeeld een melding over het verlies van Nvidia-modules - dit is normaal. Controleer na het bijwerken van het bestand of het daadwerkelijk is bijgewerkt, zie de tijd (ten opzichte van de chroot-omgeving./boot/initrd.img). Waarschuwing! zorg ervoor dat u vóór [update-initramfs -u -k all] controleert of cryptsetup open is /dev/sda7 sda7_crypt - dit is de naam die verschijnt in /etc/crypttab, anders zal er na het opnieuw opstarten een busybox-fout optreden)
Bij deze stap is het instellen van de configuratiebestanden voltooid.

[C] GRUB2/Protection installeren en configureren

C1. Formatteer indien nodig de speciale partitie voor de bootloader (een partitie heeft minimaal 20 MB nodig)

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

C2. Mount /dev/sda6 naar /mntDus we werken in chroot, dan zal er geen map /mnt2 in de root zijn, en zal de map /mnt leeg zijn.
mount de GRUB2-partitie

mount /dev/sda6 /mnt

Als je een oudere versie van GRUB2 hebt geïnstalleerd, in de map /mnt/boot/grub/i-386-pc (ander platform is mogelijk, bijvoorbeeld niet “i386-pc”) geen cryptomodules (kortom, de map zou modules moeten bevatten, waaronder deze .mod: cryptodisk; luks; gcry_twofish; gcry_sha512; signature_test.mod), in dit geval moet GRUB2 worden geschud.

apt-get update
apt-get install grub2 

Belangrijk! Wanneer u het GRUB2-pakket vanuit de repository bijwerkt en u wordt gevraagd “over het kiezen” waar u de bootloader wilt installeren, moet u de installatie weigeren (reden - poging GRUB2 te installeren - in "MBR" of op live usb). Anders beschadigt u de VeraCrypt header/loader. Na het updaten van de GRUB2-pakketten en het annuleren van de installatie, moet de bootloader handmatig op de logische schijf worden geïnstalleerd, en niet in de MBR. Als je repository een verouderde versie van GRUB2 heeft, probeer het dan update het komt van de officiële website - heb het niet gecontroleerd (werkte met de nieuwste GRUB 2.02 ~BetaX-bootloaders).

C3. GRUB2 installeren op een uitgebreide partitie [sda6]U moet een aangekoppelde partitie hebben [item C.2]

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

opties
* —force - installatie van de bootloader, waarbij alle waarschuwingen die bijna altijd bestaan ​​worden omzeild en de installatie wordt geblokkeerd (verplichte vlag).
* --root-directory - mapinstallatie naar de root van sda6.
* /dev/sda6 - jouw sdaХ-partitie (mis de <spatie> tussen /mnt /dev/sda6 niet).

C4. Een configuratiebestand maken [grub.cfg]Vergeet de opdracht "update-grub2" en gebruik de opdracht voor het genereren van volledige configuratiebestanden

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

na het voltooien van het genereren/bijwerken van het grub.cfg-bestand, zou de uitvoerterminal regel(s) moeten bevatten met het besturingssysteem dat op de schijf is gevonden ("grub-mkconfig" zal waarschijnlijk het besturingssysteem vinden en ophalen van een live USB, als je een multiboot-flashdrive hebt met Windows 10 en een aantal live-distributies - dit is normaal). Als de terminal “leeg” is en het bestand “grub.cfg” niet wordt gegenereerd, dan is dit hetzelfde geval als er GRUB-bugs in het systeem zitten (en hoogstwaarschijnlijk de lader uit de testtak van de repository), installeer GRUB2 opnieuw vanaf vertrouwde bronnen.
De "eenvoudige configuratie"-installatie en GRUB2-installatie zijn voltooid.

C5. Proeftest van gecodeerd GNU/Linux-besturingssysteemWe voltooien de crypto-missie correct. Laat voorzichtig de gecodeerde GNU/Linux achter (verlaat de chroot-omgeving).

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

Na het opnieuw opstarten van de pc zou de VeraCrypt-bootloader moeten laden.
Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

*Als u het wachtwoord voor de actieve partitie invoert, wordt Windows geladen.
*Het indrukken van de "Esc"-toets zal de besturing overdragen aan GRUB2, als je gecodeerde GNU/Linux selecteert - een wachtwoord (sda7_crypt) zal nodig zijn om /boot/initrd.img te ontgrendelen (als grub2 uuid "not found" schrijft - dit is een probleem met de grub2-bootloader, deze moet opnieuw worden geïnstalleerd, bijvoorbeeld vanuit test branch/stable etc.).
Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

*Afhankelijk van hoe u het systeem hebt geconfigureerd (zie paragraaf B4.4/4.5), heeft u, na het invoeren van het juiste wachtwoord om de /boot/initrd.img image te ontgrendelen, een wachtwoord nodig om de OS-kernel/root te laden, of het geheim sleutel wordt automatisch vervangen door "skey", waardoor het niet meer nodig is om de wachtwoordzin opnieuw in te voeren.
Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot
(scherm “automatische vervanging van een geheime sleutel”).

*Dan volgt het vertrouwde proces van het laden van GNU/Linux met gebruikersaccountauthenticatie.
Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

*Na gebruikersautorisatie en inloggen op het besturingssysteem moet u /boot/initrd.img opnieuw bijwerken (zie B4.6).

update-initramfs -u -k all

En in het geval van extra regels in het GRUB2-menu (van OS-m pickup met live usb) doe ze weg

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

Een korte samenvatting van GNU/Linux-systeemversleuteling:

  • GNU/Linuxinux is volledig gecodeerd, inclusief /boot/kernel en initrd;
  • de geheime sleutel is verpakt in initrd.img;
  • huidige vergunningstelsel (het wachtwoord invoeren om de initrd te ontgrendelen; wachtwoord/sleutel om het besturingssysteem op te starten; wachtwoord voor het autoriseren van het Linux-account).

"Eenvoudige GRUB2-configuratie" systeemversleuteling van de blokpartitie is voltooid.

C6. Geavanceerde GRUB2-configuratie. Bootloaderbescherming met digitale handtekening + authenticatiebeschermingGNU/Linux is volledig gecodeerd, maar de bootloader kan niet worden gecodeerd - deze voorwaarde wordt bepaald door het BIOS. Om deze reden is een geketende gecodeerde opstart van GRUB2 niet mogelijk, maar een eenvoudige geketende opstart is mogelijk/beschikbaar, maar vanuit veiligheidsoogpunt is dit niet nodig [zie P. F].
Voor de ‘kwetsbare’ GRUB2 hebben de ontwikkelaars een ‘handtekening/authenticatie’-bootloaderbeschermingsalgoritme geïmplementeerd.

  • Wanneer de bootloader wordt beschermd door “zijn eigen digitale handtekening”, zal externe wijziging van bestanden, of een poging om extra modules in deze bootloader te laden, ertoe leiden dat het opstartproces wordt geblokkeerd.
  • Wanneer u de bootloader met authenticatie beschermt, moet u, om het laden van een distributie te selecteren of extra opdrachten in de CLI in te voeren, de login en het wachtwoord van de superuser-GRUB2 invoeren.

C6.1. Bootloader-authenticatiebeschermingControleer of u in een terminal op een gecodeerd besturingssysteem werkt

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

maak een superuser-wachtwoord voor autorisatie in GRUB2

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

Haal de wachtwoord-hash op. Iets zoals dit

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

mount de GRUB-partitie

mount /dev/sda6 /mnt 

bewerk de configuratie

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

controleer bij het zoeken naar bestanden of er nergens vlaggen zijn in "grub.cfg" ("-unrestricted" "-user",
helemaal op het einde toevoegen (vóór de regel ### END /etc/grub.d/41_custom ###)
"set superusers = "root"
wachtwoord_pbkdf2 root-hash."

Het zou zoiets moeten zijn

# Dit bestand biedt een eenvoudige manier om aangepaste menu-items toe te voegen. Typ eenvoudigweg de
# menu-items die u na deze opmerking wilt toevoegen. Zorg ervoor dat u niet verandert
# de regel 'exec tail' hierboven.
### EINDE /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; Dan
bron ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; Dan
bron $prefix/custom.cfg;
fi
stel superusers = "root" in
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### EINDE /etc/grub.d/41_custom ###
#

Als je vaak het commando “grub-mkconfig -o /mnt/boot/grub/grub.cfg” gebruikt en niet elke keer wijzigingen wilt aanbrengen in grub.cfg, voer dan de bovenstaande regels in (Login wachtwoord) in het GRUB-gebruikersscript helemaal onderaan

nano /etc/grub.d/41_custom 

kat <<EOF
stel superusers = "root" in
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF

Bij het genereren van de configuratie “grub-mkconfig -o /mnt/boot/grub/grub.cfg”, worden de regels die verantwoordelijk zijn voor authenticatie automatisch toegevoegd aan grub.cfg.
Deze stap voltooit de GRUB2-authenticatie-instellingen.

C6.2. Bootloaderbescherming met digitale handtekeningEr wordt aangenomen dat u al over uw persoonlijke pgp-coderingssleutel beschikt (of maak zo'n sleutel aan). Op het systeem moet cryptografische software zijn geïnstalleerd: gnuPG; kleopatra/GPA; Zeepaardje. Crypto-software zal uw leven in al dergelijke zaken veel gemakkelijker maken. Seahorse - stabiele versie van het pakket 3.14.0 (hogere versies, bijvoorbeeld V3.20, zijn defect en bevatten aanzienlijke bugs).

De PGP-sleutel hoeft alleen in de su-omgeving te worden gegenereerd/gestart/toegevoegd!

Genereer een persoonlijke coderingssleutel

gpg - -gen-key

Exporteer uw sleutel

gpg --export -o ~/perskey

Koppel de logische schijf in het besturingssysteem als deze nog niet is aangekoppeld

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

maak de GRUB2-partitie schoon

rm -rf /mnt/

Installeer GRUB2 in sda6 en plaats uw privésleutel in de hoofd-GRUB-afbeelding "core.img"

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

opties
* --force - installeer de bootloader en omzeil alle waarschuwingen die altijd bestaan (verplichte vlag).
* —modules="gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa" - instrueert GRUB2 om de benodigde modules vooraf te laden wanneer de pc opstart.
* -k ~/perskey -pad naar de “PGP-sleutel” (nadat u de sleutel in de afbeelding hebt geplaatst, kan deze worden verwijderd).
* --root-directory -stel de opstartmap in op de root van sda6
/dev/sda6 - uw sdaX-partitie.

Genereren/bijwerken van grub.cfg

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

Voeg de regel “trust /boot/grub/perskey” toe aan het einde van het bestand “grub.cfg” (forceer het gebruik van de pgp-sleutel.) Omdat we GRUB2 hebben geïnstalleerd met een set modules, waaronder de handtekeningmodule “signature_test.mod”, elimineert dit de noodzaak om opdrachten als “set check_signatures=enforce” aan de configuratie toe te voegen.

Het zou er ongeveer zo uit moeten zien (eindregels in grub.cfg bestand)

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; Dan
bron ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; Dan
bron $prefix/custom.cfg;
fi
vertrouw op /boot/grub/perskey
stel superusers = "root" in
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### EINDE /etc/grub.d/41_custom ###
#

Het pad naar “/boot/grub/perskey” hoeft niet naar een specifieke schijfpartitie te verwijzen, bijvoorbeeld hd0,6; voor de bootloader zelf is “root” het standaardpad van de partitie waarop GRUB2 is geïnstalleerd (zie set rot=..).

GRUB2 ondertekenen (alle bestanden in alle /GRUB-mappen) met uw sleutel “perskey”.
Een eenvoudige oplossing voor het ondertekenen (voor nautilus/caja-ontdekkingsreiziger): installeer de “seahorse” -extensie voor Explorer vanuit de repository. Uw sleutel moet worden toegevoegd aan de su-omgeving.
Open Explorer met sudo “/mnt/boot” – RMB – teken. Op het scherm ziet het er zo uit

Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

De sleutel zelf is “/mnt/boot/grub/perskey” (kopiëren naar de grub-map) moet ook ondertekend zijn met uw eigen handtekening. Controleer of de [*.sig]-bestandshandtekeningen in de map/submappen verschijnen.
Gebruik de hierboven beschreven methode om “/boot” te ondertekenen (onze kernel, initrd). Als uw tijd iets waard is, elimineert deze methode de noodzaak om een ​​bash-script te schrijven om “veel bestanden” te ondertekenen.

Om alle bootloader-handtekeningen te verwijderen (als er iets mis is gegaan)

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

Om de bootloader niet te ondertekenen na het updaten van het systeem, bevriezen we alle updatepakketten gerelateerd aan GRUB2.

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

Deze stap <bescherm bootloader met digitale handtekening> geavanceerde configuratie van GRUB2 is voltooid.

C6.3. Proeftest van de GRUB2-bootloader, beschermd door digitale handtekening en authenticatieGRUB2. Bij het selecteren van een GNU/Linux-distributie of het invoeren van de CLI (opdrachtregel) Er is autorisatie van een superuser vereist. Nadat u de juiste gebruikersnaam/wachtwoord heeft ingevoerd, heeft u het initrd-wachtwoord nodig

Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot
Schermafbeelding van succesvolle authenticatie van de GRUB2-superuser.

Als je met een van de GRUB2-bestanden knoeit/wijzigingen aanbrengt in grub.cfg, of het bestand/de handtekening verwijdert, of een kwaadaardige module.mod laadt, zal een overeenkomstige waarschuwing verschijnen. GRUB2 pauzeert het laden.

Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot
Screenshot, een poging om GRUB2 “van buitenaf” te verstoren.

Tijdens "normaal" opstarten "zonder inbraak" is de status van de systeemexitcode "0". Daarom is het onbekend of de bescherming werkt of niet (dat wil zeggen: "met of zonder handtekeningbescherming van de bootloader" tijdens normaal laden is de status hetzelfde "0" - dit is slecht).

Hoe controleer ik de bescherming van digitale handtekeningen?

Een lastige manier om dit te controleren: nep/verwijder een module die door GRUB2 wordt gebruikt, verwijder bijvoorbeeld de handtekening luks.mod.sig en krijg een foutmelding.

De juiste manier: ga naar de bootloader CLI en typ de opdracht

trust_list

Als reactie hierop zou u een ‘perskey’-vingerafdruk moeten ontvangen; als de status ‘0’ is, werkt de handtekeningbescherming niet. Controleer paragraaf C6.2 nogmaals.
Bij deze stap is de geavanceerde configuratie “GRUB2 beschermen met digitale handtekening en authenticatie” voltooid.

C7 Alternatieve methode om de GRUB2-bootloader te beschermen met behulp van hashingDe hierboven beschreven methode "CPU Boot Loader Protection/Authentication" is een klassieker. Vanwege de onvolkomenheden van GRUB2 is het in paranoïde omstandigheden vatbaar voor een echte aanval, die ik hieronder in paragraaf [F] zal geven. Bovendien moet de bootloader na het updaten van het besturingssysteem/kernel opnieuw worden ondertekend.

De GRUB2-bootloader beschermen met behulp van hashing

Voordelen ten opzichte van klassiekers:

  • Hogere betrouwbaarheid (hashing/verificatie vindt alleen plaats vanaf een gecodeerde lokale bron. De gehele toegewezen partitie onder GRUB2 wordt gecontroleerd op eventuele wijzigingen, en al het andere is gecodeerd; in het klassieke schema met CPU-laderbescherming/authenticatie worden alleen bestanden gecontroleerd, maar niet gratis ruimte, waarin ‘iets’, ‘iets sinisters’ kan worden toegevoegd).
  • Gecodeerde logboekregistratie (een voor mensen leesbaar persoonlijk gecodeerd logboek is aan het schema toegevoegd).
  • snelheid (bescherming/verificatie van een volledige partitie toegewezen aan GRUB2 vindt vrijwel onmiddellijk plaats).
  • Automatisering van alle cryptografische processen.

Nadelen ten opzichte van de klassiekers.

  • Vervalsing van handtekening (theoretisch is het mogelijk om een ​​bepaalde hashfunctie-botsing te vinden).
  • Verhoogde moeilijkheidsgraad (vergeleken met klassiek zijn wat meer vaardigheden in GNU/Linux OS vereist).

Hoe het GRUB2/partitie-hashing-idee werkt

De GRUB2-partitie is “ondertekend”; wanneer het besturingssysteem opstart, wordt de bootloaderpartitie gecontroleerd op onveranderbaarheid, gevolgd door inloggen in een veilige (gecodeerde) omgeving. Als de bootloader of zijn partitie is aangetast, wordt naast het inbraaklogboek het volgende gestart:

Ding.Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

Een soortgelijke controle vindt vier keer per dag plaats, waardoor de systeembronnen niet worden geladen.
Met behulp van de opdracht “-$ check_GRUB” vindt er op elk moment een onmiddellijke controle plaats zonder logboekregistratie, maar met uitvoer van informatie naar de CLI.
Met behulp van het commando “-$ sudo signature_GRUB” wordt de GRUB2-bootloader/partitie onmiddellijk opnieuw ondertekend en wordt de logboekregistratie bijgewerkt (noodzakelijk na update van besturingssysteem/opstarten) en het leven gaat door.

Implementatie van een hashing-methode voor de bootloader en zijn sectie

0) Laten we de GRUB-bootloader/partitie ondertekenen door deze eerst in /media/username te mounten

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

1) We creëren een script zonder extensie in de root van het gecodeerde besturingssysteem ~/podpis, passen er de nodige 744-beveiligingsrechten en waterdichte bescherming op toe.

Het vullen van de inhoud

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

We voeren het script uit su, zal de hashing van de GRUB-partitie en zijn bootloader worden gecontroleerd, sla het logbestand op.

Laten we bijvoorbeeld een “kwaadaardig bestand” [virus.mod] maken of kopiëren naar de GRUB2-partitie en een tijdelijke scan/test uitvoeren:

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

De CLI moet een invasie van onze -citadel- zien#Ingekorte CLI voor inloggen

Ср янв  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

#Zoals u kunt zien, verschijnt "Bestanden verplaatst: 1 en audit mislukt", wat betekent dat de controle is mislukt.
Vanwege de aard van de partitie die wordt getest, in plaats van “Nieuwe bestanden gevonden” > “Bestanden verplaatst”

2) Plaats het gif hier > ~/warning.gif, stel de rechten in op 744.

3) Configureren van fstab om de GRUB-partitie automatisch te koppelen tijdens het opstarten

-$ sudo nano /etc/fstab

LABEL=GRUB /media/gebruikersnaam/GRUB ext4 standaard 0 0

4) Het logboek roteren

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

/var/log/podpis.txt {
dagelijks
draaien 50
maat 5M
datumext
samendrukken
delaycompress
oude map /var/log/oud
}

/var/log/vtorjenie.txt {
maandelijks
draaien 5
maat 5M
datumext
oude map /var/log/oud
}

5) Voeg een taak toe aan cron

-$ sudo crontab -e

opnieuw op te starten '/abonnement'
0 */6 * * * '/podpis

6) Permanente aliassen maken

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

Na OS-update -$ apt-get upgrade onderteken onze GRUB-partitie opnieuw
-$ подпись_GRUB
Op dit punt is de hash-bescherming van de GRUB-partitie voltooid.

[D] Wiping - vernietiging van niet-gecodeerde gegevens

Verwijder uw persoonlijke bestanden zo volledig dat “zelfs God ze niet kan lezen”, aldus Trey Gowdy, woordvoerder van South Carolina.

Zoals gewoonlijk zijn er verschillende ‘mythen en legendes", over het herstellen van gegevens nadat deze van een harde schijf zijn verwijderd. Als u in cyberhekserij gelooft, of lid bent van de Dr-webgemeenschap en nog nooit gegevensherstel hebt geprobeerd nadat deze was verwijderd/overschreven (bijvoorbeeld herstel met R-studio), dan is het onwaarschijnlijk dat de voorgestelde methode bij u past, gebruik dan wat het dichtst bij u in de buurt is.

Na het succesvol overbrengen van GNU/Linux naar een gecodeerde partitie, moet de oude kopie worden verwijderd zonder de mogelijkheid van gegevensherstel. Universele reinigingsmethode: software voor Windows/Linux, gratis GUI-software BleachBit.
snel formatteer de sectie, waarvan de gegevens vernietigd moeten worden (via Gparted) start BleachBit, selecteer "Vrije ruimte opruimen" - selecteer de partitie (uw sdaX met een eerder exemplaar van GNU/Linux), begint het stripproces. BleachBit - veegt de schijf in één keer schoon - dit is wat "we nodig hebben", maar! Dit werkt in theorie alleen als u de schijf hebt geformatteerd en opgeschoond in BB v2.0-software.

Attentie! BB veegt de schijf schoon en laat metagegevens achter; bestandsnamen blijven behouden wanneer gegevens worden verwijderd (Ccleaner - laat geen metadata achter).

En de mythe over de mogelijkheid van gegevensherstel is niet helemaal een mythe.Bleachbit V2.0-2 voormalig onstabiel besturingssysteem Debian-pakket (en alle andere soortgelijke software: sfill; wipe-Nautilus - werden ook opgemerkt in deze vuile zaak) had eigenlijk een kritieke bug: de functie "vrije ruimte vrijmaken". het werkt verkeerd op HDD/Flashdrives (ntfs/ext4). Dit soort software overschrijft bij het vrijmaken van vrije ruimte niet de hele schijf, zoals veel gebruikers denken. En een beetje (veel) verwijderde gegevens OS/software beschouwt deze gegevens als niet-verwijderde/gebruikersgegevens en slaat bij het opschonen van “OSP” deze bestanden over. Het probleem is dat na zo'n lange tijd de schijf wordt schoongemaakt "verwijderde bestanden" kunnen worden hersteld zelfs na 3+ passages van het afvegen van de schijf.
Op GNU/Linux bij Bleachbit 2.0-2 De functies voor het permanent verwijderen van bestanden en mappen werken betrouwbaar, maar maken geen vrije ruimte vrij. Ter vergelijking: op Windows in CCleaner werkt de functie “OSP voor ntfs” naar behoren, en God zal verwijderde gegevens echt niet kunnen lezen.

En dus grondig verwijderen "compromitterend" oude niet-versleutelde gegevens, Bleachbit heeft directe toegang tot deze gegevens nodigGebruik vervolgens de functie "bestanden/mappen permanent verwijderen".
Om “verwijderde bestanden met standaard OS-tools” in Windows te verwijderen, gebruikt u CCleaner/BB met de “OSP” -functie. In GNU/Linux over dit probleem (verwijder verwijderde bestanden) je moet zelf oefenen (gegevens verwijderen + een onafhankelijke poging om deze te herstellen en u moet niet vertrouwen op de softwareversie (zo niet een bladwijzer, dan een bug)), alleen in dit geval kunt u het mechanisme van dit probleem begrijpen en de verwijderde gegevens volledig verwijderen.

Ik heb Bleachbit v3.0 niet getest, het probleem is mogelijk al opgelost.
Bleachbit v2.0 werkt eerlijk.

Bij deze stap is het wissen van de schijf voltooid.

[E] Universele back-up van gecodeerd besturingssysteem

Elke gebruiker heeft zijn eigen methode voor het maken van back-ups van gegevens, maar gecodeerde systeembesturingssysteemgegevens vereisen een iets andere benadering van de taak. Uniforme software, zoals Clonezilla en soortgelijke software, kan niet rechtstreeks met gecodeerde gegevens werken.

Verklaring van het probleem van het maken van back-ups van gecodeerde blokapparaten:

  1. universaliteit - hetzelfde back-upalgoritme/software voor Windows/Linux;
  2. de mogelijkheid om in de console te werken met elke live usb GNU/Linux zonder dat er extra softwaredownloads nodig zijn (maar raad nog steeds GUI aan);
  3. beveiliging van back-upkopieën - opgeslagen “afbeeldingen” moeten gecodeerd/beveiligd zijn met een wachtwoord;
  4. de grootte van de gecodeerde gegevens moet overeenkomen met de grootte van de daadwerkelijke gegevens die worden gekopieerd;
  5. gemakkelijke extractie van de benodigde bestanden uit een back-up (geen vereiste om eerst de hele sectie te decoderen).

Maak bijvoorbeeld een back-up/herstel via het hulpprogramma “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

Het komt overeen met bijna alle punten van de taak, maar is volgens punt 4 niet bestand tegen kritiek, omdat het de volledige schijfpartitie kopieert, inclusief vrije ruimte - niet interessant.

Bijvoorbeeld een GNU/Linux-back-up via de archiver [tar" | gpg] is handig, maar voor Windows-back-up moet je op zoek naar een andere oplossing - het is niet interessant.

E1. Universele Windows/Linux-back-up. Koppel rsync (Grsync)+VeraCrypt-volumeAlgoritme voor het maken van een back-upkopie:

  1. het maken van een gecodeerde container (volume/bestand) VeraCrypt voor besturingssysteem;
  2. het besturingssysteem overbrengen/synchroniseren met behulp van Rsync-software naar de VeraCrypt-cryptocontainer;
  3. indien nodig, het VeraCrypt-volume uploaden naar www.

Het maken van een gecodeerde VeraCrypt-container heeft zijn eigen kenmerken:
het creëren van een dynamisch volume (het maken van DT is alleen beschikbaar in Windows, kan ook worden gebruikt in GNU/Linux);
het creëren van een regelmatig volume, maar er is een vereiste van een “paranoïde karakter” (volgens de ontwikkelaar) – containeropmaak.

Er wordt vrijwel onmiddellijk een dynamisch volume aangemaakt in Windows, maar bij het kopiëren van gegevens van GNU/Linux > VeraCrypt DT nemen de algehele prestaties van de back-upbewerking aanzienlijk af.

Er wordt een normaal Twofish-volume van 70 GB gemaakt (laten we zeggen, gemiddeld pc-vermogen) naar HDD ~ in een half uur (het in één keer overschrijven van de voormalige containergegevens is vanwege veiligheidseisen). De functie van het snel formatteren van een volume bij het maken ervan is verwijderd uit VeraCrypt Windows/Linux, dus het maken van een container is alleen mogelijk via “one-pass herschrijven” of het creëren van een dynamisch volume met lage prestaties.

Maak een normaal VeraCrypt-volume (niet dynamisch/ntfs), er zouden geen problemen moeten zijn.

Configureer/maak/open een container in VeraCrypt GUI> GNU/Linux live usb (het volume wordt automatisch gekoppeld aan /media/veracrypt2, het Windows OS-volume wordt gekoppeld aan /media/veracrypt1). Een gecodeerde back-up maken van Windows OS met behulp van GUI rsync (grsync)door de vakjes aan te vinken.

Volledige schijfversleuteling van op Windows Linux geïnstalleerde systemen. Gecodeerde multi-boot

Wacht tot het proces is voltooid. Zodra de back-up is voltooid, hebben we één gecodeerd bestand.

Maak op dezelfde manier een reservekopie van het GNU/Linux-besturingssysteem door het selectievakje "Windows-compatibiliteit" in de rsync GUI uit te schakelen.

Attentie! maak een Veracrypt-container voor “GNU/Linux-back-up” in het bestandssysteem ext4. Als u een back-up maakt naar een ntfs-container, verliest u bij het terugzetten van een dergelijke kopie alle rechten/groepen op al uw gegevens.

In de terminal kunt u alle handelingen uitvoeren. Basisopties voor rsync:
* -g -groepen opslaan;
* -P —voortgang — status van de tijd die aan het bestand is besteed;
* -H - kopieer hardlinks zoals ze zijn;
* -a -archiefmodus (meerdere rlptgoD-vlaggen);
* -v -verbalisatie.

Als u via de console in de cryptsetup-software een “Windows VeraCrypt-volume” wilt mounten, kunt u een alias (su) aanmaken

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

Nu zal de opdracht “veramount images” u vragen een wachtwoordzin in te voeren, en het gecodeerde Windows-systeemvolume zal in het besturingssysteem worden geactiveerd.

Wijs/koppel het VeraCrypt-systeemvolume toe in de opdracht cryptsetup

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

Map/mount VeraCrypt-partitie/container in cryptsetup-opdracht

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

In plaats van een alias zullen we (een script om op te starten) een systeemvolume met Windows OS en een logisch gecodeerde NTFS-schijf toevoegen aan het opstarten van GNU/Linux

Maak een script en sla het op in ~/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.

Wij verdelen de “juiste” rechten:

sudo chmod 100 /VeraOpen.sh

Maak twee identieke bestanden (dezelfde naam!) in /etc/rc.local en ~/etc/init.d/rc.local
Het vullen van de bestanden

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

Wij verdelen de “juiste” rechten:

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

Dat is alles, nu hoeven we bij het laden van GNU/Linux geen wachtwoorden in te voeren om gecodeerde NTFS-schijven te mounten, de schijven worden automatisch aangekoppeld.

Een korte opmerking over wat hierboven in paragraaf E1 stap voor stap wordt beschreven (maar nu voor OS GNU/Linux)
1) Creëer een volume in fs ext4 > 4gb (voor bestand) Linux in Veracrypt [Cryptbox].
2) Start opnieuw op naar live-usb.
3) ~$ cryptsetup open /dev/sda7 Lunux #mapping gecodeerde partitie.
4) ~$ mount /dev/mapper/Linux /mnt #mount de gecodeerde partitie naar /mnt.
5) ~$ mkdir mnt2 #een map maken voor een toekomstige back-up.
6) ~$ cryptsetup open —veracrypt —type tcrypt ~/CryptoBox CryptoBox && mount /dev/mapper/CryptoBox /mnt2 #Map een Veracrypt-volume met de naam “CryptoBox” en koppel de CryptoBox aan /mnt2.
7) ~$ rsync -avlxhHX —progress /mnt /mnt2/ #back-upbewerking van een gecodeerde partitie naar een gecodeerd Veracrypt-volume.

(p/s/ Attentie! Als u gecodeerde GNU/Linux overzet van de ene architectuur/machine naar de andere, bijvoorbeeld Intel > AMD (dat wil zeggen, een back-up implementeert van de ene gecodeerde partitie naar een andere gecodeerde Intel > AMD-partitie), vergeet het niet Nadat u het gecodeerde besturingssysteem hebt overgedragen, kunt u misschien de geheime vervangende sleutel bewerken in plaats van het wachtwoord. de vorige sleutel ~/etc/skey - past niet langer op een andere gecodeerde partitie, en het is niet aan te raden om een ​​nieuwe sleutel “cryptsetup luksAddKey” aan te maken onder chroot - een fout is mogelijk, alleen in ~/etc/crypttab specificeer in plaats van “/etc/skey” tijdelijk “none” ", na het opnieuw opstarten en inloggen op het besturingssysteem, maakt u uw geheime jokertekensleutel opnieuw aan).

Denk er als IT-veteranen aan om afzonderlijk back-ups te maken van de headers van gecodeerde Windows/Linux OS-partities, anders zal de codering zich tegen u keren.
Bij deze stap is de back-up van het gecodeerde besturingssysteem voltooid.

[F] Aanval op de GRUB2-bootloader

gegevensAls u uw bootloader hebt beveiligd met een digitale handtekening en/of authenticatie (zie punt C6.), dan biedt dit geen bescherming tegen fysieke toegang. Gecodeerde gegevens zullen nog steeds ontoegankelijk zijn, maar de bescherming zal worden omzeild (beveiliging van digitale handtekening opnieuw instellen) Met GRUB2 kan een cyberschurk zijn code in de bootloader injecteren zonder argwaan te wekken (tenzij de gebruiker handmatig de status van de bootloader in de gaten houdt, of met zijn eigen robuuste willekeurige scriptcode voor grub.cfg komt).

Aanvalsalgoritme. Indringer

* Start pc op vanaf live USB. Elke verandering (overtreder) bestanden zullen de echte eigenaar van de pc op de hoogte stellen van de inbraak in de bootloader. Maar een eenvoudige herinstallatie van GRUB2 met behoud van grub.cfg (en de daaropvolgende mogelijkheid om het te bewerken) Hiermee kan een aanvaller alle bestanden bewerken (in deze situatie zal de echte gebruiker bij het laden van GRUB2 geen melding krijgen. De status is hetzelfde <0>)
* Mount een niet-versleutelde partitie, slaat “/mnt/boot/grub/grub.cfg” op.
* Installeert de bootloader opnieuw (verwijderen van "perskey" uit de core.img-afbeelding)

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

* Retourneert “grub.cfg” > “/mnt/boot/grub/grub.cfg”, bewerkt het indien nodig, door bijvoorbeeld uw module “keylogger.mod” toe te voegen aan de map met ladermodules, in “grub.cfg” > regel "insmod keylogger". Of, bijvoorbeeld, als de vijand sluw is, dan na het opnieuw installeren van GRUB2 (alle handtekeningen blijven staan) het bouwt de hoofdafbeelding van GRUB2 met behulp van "grub-mkimage met optie (-c)." Met de optie “-c” kunt u uw configuratie laden voordat u het hoofdbestand “grub.cfg” laadt. De configuratie kan uit slechts één regel bestaan: omleiding naar een willekeurige “modern.cfg”, gemengd met bijvoorbeeld ~400 bestanden (modules+handtekeningen) in de map "/boot/grub/i386-pc". In dit geval kan een aanvaller willekeurige code invoegen en modules laden zonder dat dit invloed heeft op “/boot/grub/grub.cfg”, zelfs als de gebruiker “hashsum” op het bestand heeft toegepast en dit tijdelijk op het scherm heeft weergegeven.
Een aanvaller hoeft de GRUB2 superuser login/wachtwoord niet te hacken; hij hoeft alleen maar de regels te kopiëren (verantwoordelijk voor authenticatie) "/boot/grub/grub.cfg" naar uw "modern.cfg"

stel superusers = "root" in
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

En de pc-eigenaar zal nog steeds worden geverifieerd als de GRUB2-supergebruiker.

Ketting laden (bootloader laadt een andere bootloader)Zoals ik hierboven schreef, slaat dit nergens op (het is voor een ander doel bedoeld). Gecodeerde bootloader kan niet worden geladen vanwege BIOS (ketenboot herstart GRUB2 > gecodeerde GRUB2, fout!). Als u echter nog steeds het idee van ketenladen gebruikt, kunt u er zeker van zijn dat het de gecodeerde versie is die wordt geladen. (niet gemoderniseerd) "grub.cfg" van de gecodeerde partitie. En dit is ook een vals gevoel van veiligheid, omdat alles wat wordt aangegeven in de gecodeerde “grub.cfg” (module laden) komt neer op modules die worden geladen vanuit niet-gecodeerde GRUB2.

Als je dit wilt controleren, wijs/versleutel dan een andere partitie sdaY toe en kopieer GRUB2 ernaartoe (grub-installatiebewerking op een gecodeerde partitie is niet mogelijk) en in "grub.cfg" (niet-versleutelde configuratie) verander lijnen zoals deze

menu-item 'GRUBx2' --class papegaai --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-382111a2-f993-403c-aa2e-292b5eac4780' {
laad_video
insmod gzio
if [ x$grub_platform = xxen ]; dan insmod xzio; insmod lzopio; fi
insmod deel_msdos
insmod cryptoschijf
insmod lux
insmod gcry_twofish
insmod gcry_twofish
insmod gcry_sha512
insmod ext2
cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838
set root=’cryptouuid/15c47d1c4bd34e5289df77bcf60ee838′
normaal /boot/grub/grub.cfg
}

lijnen
* insmod - laden van de benodigde modules voor het werken met een gecodeerde schijf;
* GRUBx2 - naam van de regel die wordt weergegeven in het GRUB2-opstartmenu;
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 -zie. fdisk -l (sda9);
* root instellen - root installeren;
* normaal /boot/grub/grub.cfg - uitvoerbaar configuratiebestand op een gecodeerde partitie.

Het vertrouwen dat het de gecodeerde “grub.cfg” is die wordt geladen, is een positieve reactie op het invoeren van het wachtwoord/het ontgrendelen van “sdaY” bij het selecteren van de regel “GRUBx2” in het GRUB-menu.

Bij het werken in de CLI, om niet in de war te raken (en controleer of de omgevingsvariabele “set root” werkte), maak lege tokenbestanden, bijvoorbeeld in de gecodeerde sectie “/shifr_grub”, in de niet-gecodeerde sectie “/noshifr_grub”. Controleren in de CLI

cat /Tab-Tab

Zoals hierboven vermeld, helpt dit niet tegen het downloaden van kwaadaardige modules als dergelijke modules op uw pc terechtkomen. Bijvoorbeeld een keylogger die toetsaanslagen in een bestand kan opslaan en deze kan mixen met andere bestanden in “~/i386” totdat het wordt gedownload door een aanvaller met fysieke toegang tot de pc.

De eenvoudigste manier om te verifiëren dat de bescherming van digitale handtekeningen actief werkt (niet gereset), en niemand is de bootloader binnengevallen, voer de opdracht in de CLI in

list_trusted

als antwoord ontvangen we een kopie van onze “perskey”, of we ontvangen niets als we worden aangevallen (je moet ook “set check_signatures=enforce” aanvinken).
Een belangrijk nadeel van deze stap is het handmatig invoeren van opdrachten. Als je dit commando toevoegt aan “grub.cfg” en de configuratie beschermt met een digitale handtekening, dan is de voorlopige uitvoer van de sleutelmomentopname op het scherm te kort in timing, en heb je mogelijk geen tijd om de uitvoer te zien na het laden van GRUB2 .
Er is niemand in het bijzonder om aanspraak op te maken: de ontwikkelaar in zijn documentatie clausule 18.2 officieel verklaart

“Merk op dat zelfs met GRUB-wachtwoordbeveiliging GRUB zelf niet kan voorkomen dat iemand met fysieke toegang tot de machine de firmware van die machine (bijvoorbeeld Coreboot of BIOS) wijzigt om ervoor te zorgen dat de machine opstart vanaf een ander (door de aanvaller bestuurd) apparaat. GRUB is op zijn best slechts één schakel in een veilige opstartketen."

GRUB2 is te overladen met functies die een gevoel van valse veiligheid kunnen geven, en de ontwikkeling ervan heeft MS-DOS al overtroffen in termen van functionaliteit, maar het is slechts een bootloader. Het is grappig dat GRUB2 - "morgen" het besturingssysteem kan worden, en opstartbare GNU/Linux virtuele machines ervoor.

Een korte video over hoe ik de GRUB2-beveiliging voor digitale handtekeningen reset en mijn inbreuk aan een echte gebruiker bekend maak (Ik heb je bang gemaakt, maar in plaats van wat in de video wordt getoond, kun je een onschadelijke willekeurige code/.mod schrijven).

Conclusies:

1) Blokkeersysteemversleuteling voor Windows is eenvoudiger te implementeren, en bescherming met één wachtwoord is handiger dan bescherming met meerdere wachtwoorden met GNU/Linux-blokkeersysteemversleuteling, om eerlijk te zijn: dat laatste is geautomatiseerd.

2) Ik heb het artikel geschreven als relevant en gedetailleerd eenvoudig een gids voor versleuteling op volledige schijf VeraCrypt/LUKS op één thuiscomputer, die veruit de beste is in RuNet (IMHO). De gids is meer dan 50 tekens lang en bevat dus niet een aantal interessante hoofdstukken: cryptografen die verdwijnen/in de schaduw blijven; over het feit dat ze in verschillende GNU/Linux-boeken weinig/niet schrijven over cryptografie; over artikel 51 van de grondwet van de Russische Federatie; O licentieverlening/verbod encryptie in de Russische Federatie, over waarom je “root/boot” moet versleutelen. De gids bleek behoorlijk uitgebreid, maar gedetailleerd. (beschrijft zelfs eenvoudige stappen)Dit bespaart u op zijn beurt veel tijd als u bij de “echte codering” komt.

3) Volledige schijfversleuteling werd uitgevoerd op Windows 7 64; GNU/Linux Papegaai 4x; GNU/Debian 9.0/9.5.

4) Een succesvolle aanval uitgevoerd op zijn GRUB2-opstartlader.

5) De tutorial is gemaakt om alle paranoïde mensen in het GOS te helpen, waar het werken met encryptie op wetgevend niveau is toegestaan. En in de eerste plaats voor degenen die versleuteling op volledige schijf willen uitrollen zonder hun geconfigureerde systemen te slopen.

6) Mijn handleiding, die relevant is in 2020, herwerkt en bijgewerkt.

[G] Nuttige documentatie

  1. TrueCrypt-gebruikershandleiding (februari 2012 RU)
  2. VeraCrypt-documentatie
  3. /usr/share/doc/cryptsetup(-run) [lokale bron] (officiële gedetailleerde documentatie over het instellen van GNU/Linux-codering met behulp van cryptsetup)
  4. Officiële FAQ cryptsetup (korte documentatie over het instellen van GNU/Linux-codering met behulp van cryptsetup)
  5. LUKS-apparaatversleuteling (archlinux-documentatie)
  6. Gedetailleerde beschrijving van de syntaxis van cryptsetup (arch man-pagina)
  7. Gedetailleerde beschrijving van crypttab (arch man-pagina)
  8. Officiële GRUB2-documentatie.

Tags: volledige schijfversleuteling, partitieversleuteling, Linux volledige schijfversleuteling, LUKS1 volledige systeemversleuteling.

Alleen geregistreerde gebruikers kunnen deelnemen aan het onderzoek. Inloggen, Alsjeblieft.

Ben je aan het coderen?

  • 17,1%Ik codeer alles wat ik kan. Ik ben paranoïde.14

  • 34,2%Ik codeer alleen belangrijke gegevens.28

  • 14,6%Soms codeer ik, soms vergeet ik.12

  • 34,2%Nee, ik codeer niet, het is lastig en duur.28

82 gebruikers hebben gestemd. 22 gebruikers onthielden zich van stemming.

Bron: www.habr.com

Voeg een reactie