Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.
Aktualisierte eigene Anleitung zur vollständigen Festplattenverschlüsselung im deutschen Internet V0.2.

Cowboy-Strategie:

[A] Blockbasierte Systemsicherung der Windows 7 Installation;
[B] Blockbasierte Systemsicherung von GNU/Linux (Debian) installierte Systeme (einschließlich /boot);
[C] GRUB2-Konfiguration, Schutz des Bootloaders durch digitale Signatur/Authenifizierung/Hashing;
[D] Reinigung – Zerstörung unverschlüsselter Daten;
[E] universelles Backup verschlüsselter Betriebssysteme;
[F] Angriff Ziel – GRUB2-Bootloader;
[G] nützliche Dokumentation.

╭───Schema #Raum 40# :
├──╼ Windows 7 installiert – vollständige Systemsicherung, nicht versteckt;
├──╼ GNU/Linux installiert (Debian und abgeleitete Distributionen) – vollständige Systemsicherung nicht versteckt(/, einschließlich /boot; swap);
├──╼ unabhängige Bootloader: VeraCrypt-Bootloader ist im MBR installiert, GRUB2-Bootloader ist im erweiterten Partition installiert;
├──╼ eine Neuinstallation des Betriebssystems ist nicht erforderlich;
└──╼ verwendete kryptografische Software: VeraCrypt; Cryptsetup; GnuPG; Seahorse; Hashdeep; GRUB2 – frei/kostenlos.

Das oben beschriebene Schema löst teilweise das Problem des "Entfernen des Boot von USB-Stick" und ermöglicht es, verschlüsselte Betriebssysteme wie Windows/Linux zu nutzen und Daten über einen "verschlüsselten Kanal" von einem OS zum anderen auszutauschen.

Reihenfolge des PC-Starts (eine von mehreren Optionen):

  • Einschalten des Geräts;
  • Laden des VeraCrypt-Bootloaders (korrekte Eingabe des Passworts setzt den Start von Windows 7 fort);
  • Drücken der "Esc"-Taste lädt den GRUB2-Bootloader;
  • GRUB2-Bootloader (Auswahl der Distribution/GNU/Linux/CLI), erfordert die Authentifizierung des GRUB2-Administrators <Benutzername/Passwort>;
  • Nach erfolgreicher Authentifizierung und Auswahl der Distribution ist die Eingabe des Passwortsatzes erforderlich, um "/boot/initrd.img" freizugeben;
  • Nach der fehlerfreien Eingabe der Passwörter in GRUB2 wird die Eingabe des Passworts "benötigt" (das dritte Passwort, BIOS-Passwort oder Passwort für den Benutzeraccount von GNU/Linux – nicht berücksichtigt) um das Betriebssystem GNU/Linux freizuschalten und zu laden, oder die automatische Eingabe des geheimen Schlüssels (zwei Passwörter + Schlüssel oder Passwort + Schlüssel);
  • Ein externes Eingreifen in die GRUB2-Konfiguration stoppt den Ladeprozess von GNU/Linux.

Mühsam? In Ordnung, lassen Sie uns die Prozesse automatisieren.

Bei der Partitionierung der Festplatte (MBR-Tabelle) Ein PC kann höchstens 4 primäre Partitionen oder 3 primäre und eine erweiterte Partition sowie einen nicht partitionierten Bereich haben. Eine erweiterte Partition kann, im Gegensatz zur primären, Unterpartitionen enthalten. (logische Laufwerke = erweiterte Partition). Mit anderen Worten, die „erweiterte Partition“ auf der HDD ersetzt LVM für die aktuelle Aufgabe: vollständige Systemverschlüsselung. Wenn Ihre Festplatte in 4 primäre Partitionen partitioniert ist, müssen Sie entweder LVM verwenden oder (mit Formatierung) eine Partition von einer primären in eine erweiterte umwandeln oder alle vier Partitionen sinnvoll nutzen und alles so belassen, wie es ist, um das gewünschte Ergebnis zu erzielen. Selbst wenn Sie nur eine Partition auf der Festplatte haben, hilft Ihnen Gparted dabei, die HDD (in zusätzliche Partitionen) ohne Datenverlust zu partitionieren, allerdings mit einer kleinen Preisgabe für solche Aktionen.

Das Partitionierungsschema der Festplatte, auf das sich die gesamte Artikelverbalisation beziehen wird, ist in der folgenden Tabelle dargestellt.

Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.
Tabelle (Nr. 1) der Partitionen 1TB.

Etwas Ähnliches sollte auch bei Ihnen vorhanden sein.
sda1 — primäre Partition Nr. 1 NTFS (verschlüsselt);
sda2 — erweiterte Partition Marker;
sda6 — logisches Laufwerk (auf dem der Bootloader GRUB2 installiert ist);
sda8 — Swap (verschlüsselter Auslagerungsdatei/ nicht immer);
sda9 — Testlogisches Laufwerk;
sda5 — Logisches Laufwerk für Neugierige;
sda7 — Betriebssystem GNU/Linux (verschobenes OS auf ein verschlüsseltes logisches Laufwerk);
sda3 — Hauptpartition Nr. 2 mit Windows 7 (verschlüsselt);
sda4 — Hauptpartition Nr. 3 (darauf befand sich unverschlüsseltes GNU/Linux, wird für Backup verwendet/nicht immer).

[А] Blockbasierte Systemsverschlüsselung Windows 7

A1. VeraCryptVollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

Booten von der offiziellen Webseite, oder von einem Mirror sourceforge Installationsversion der Krypto-Software VeraCrypt (zum Zeitpunkt der Veröffentlichung des Artikels v1.24-Update3, die portable Version von VeraCrypt ist nicht für die Systemverschlüsselung geeignet). Überprüfen Sie die Prüfziffer der heruntergeladenen Software

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

und vergleichen Sie das erhaltene Ergebnis mit der veröffentlichten Prüfziffer auf der Website des Entwicklers von VeraCrypt.

Wenn das HashTab-Programm installiert ist, geht es noch einfacher: Rechtsklick (VeraCrypt Setup 1.24.exe)-Eigenschaften-Dateihashwerte.

Zur Überprüfung der Programm-Authentifizierung müssen die Software und der öffentliche PGP-Schlüssel des Entwicklers installiert sein gnuPG; gpg4win.

A2. Installation/Ausführung von VeraCrypt mit AdministratorrechtenVollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

A3. Auswahl der Optionen zur Systemverschlüsselung der aktiven PartitionVeraCrypt – System – Systempartition/Festplatte verschlüsseln – Normal – Windows-Systempartition verschlüsseln – Multiboot – (Warnung: „Unerfahrenen Benutzern wird von dieser Methode abgeraten“ und das ist wahr, wir stimmen „Ja“ zu) – Bootlaufwerk („Ja“, selbst wenn nicht, trotzdem „Ja“) – Anzahl der Systemlaufwerke „2 oder mehr“ – Mehrere Systeme auf einem Laufwerk „Ja“ – Kein Windows-Loader „Nein“ (Tatsächlich „Ja“, aber die Loader von VeraCrypt/GRUB2 teilen sich den MBR nicht, genauer gesagt, im MBR/Bootsektor befindet sich nur der kleinste Teil des Loader-Codes, der Hauptteil liegt innerhalb des Dateisystems) – Multiboot – Einstellungen für die Verschlüsselungsparameter…

Wenn Sie von den oben beschriebenen Schritten abweichen (Schemata der blockbasierten Systemverschlüsselung), wird VeraCrypt eine Warnung ausgeben und das Verschlüsseln des Abschnitts verweigern.

Im nächsten Schritt, bei der gezielten Datensicherung, führen Sie den „Test“ durch und wählen Sie den Verschlüsselungsalgorithmus aus. Wenn Ihr CPU nicht sehr modern ist, wird der Twofish-Verschlüsselungsalgorithmus wahrscheinlich der schnellste sein. Wenn Ihr CPU leistungsstark ist, werden Sie den Unterschied bemerken: AES wird im Test mehrere Male schneller arbeiten als andere Kryptokonkurrenten. AES ist ein beliebter Verschlüsselungsalgorithmus, und die Hardware moderner CPUs ist speziell für „Geheimnisse“ und „Entschlüsselung“ optimiert.

VeraCrypt unterstützt die Möglichkeit, Laufwerke in einem AES-Kaskadenmodus zu verschlüsseln.(Twofish)/и другими комбинациями. На старо-ядерном CPU Intel десятилетней давности (ohne Hardwareunterstützung für AES, Verschlüsselung im A/T-Kaskadenmodus) Die Leistungseinbußen sind im Wesentlichen unmerklich. (bei AMD-CPUs derselben Epoche/~Parameter - die Leistung ist etwas vermindert). Das Betriebssystem arbeitet dynamisch, und der Ressourcenverbrauch für die transparente Verschlüsselung ist unauffällig. Im Gegensatz zu auffälligen Leistungseinbußen, wie sie beispielsweise durch die installation einer instabilen Desktop-Umgebung wie Mate v1.20.1 auftreten können. (oder v1.20.2, da bin ich mir nicht sicher) In GNU/Linux oder aufgrund der Telemetrie-Subroutine in Windows 7. Erfahrene Nutzer führen in der Regel vor der Verschlüsselung Leistungstests der Hardware durch. Beispielsweise vergleichen sie die Ergebnisse von Aida64/Sysbench/systemd-analyze blame vor und nach der Verschlüsselung, um den Mythos zu widerlegen, dass "systemweite Verschlüsselung schädlich ist." Eine Verlangsamung des Systems sowie Unannehmlichkeiten sind besonders bei der Sicherung und Wiederherstellung verschlüsselter Daten spürbar, da die Operation "systemweite Datensicherung" nicht in Millisekunden gemessen wird und die Entschlüsselung/Verschlüsselung in Echtzeit hinzukommt. Letztendlich findet jeder Nutzer, der sich mit Krypto beschäftigt, ein Gleichgewicht zwischen dem Verschlüsselungsalgorithmus, der Erfüllung seiner Anforderungen, dem Grad seiner Paranoia und der Benutzerfreundlichkeit.

Es ist am besten, die PIM-Parameter auf den Standardwert zu belassen, um bei jedem Start des Betriebssystems nicht die genauen Iterationswerte eingeben zu müssen. VeraCrypt verwendet eine enorme Anzahl von Iterationen, um einen wirklich "langsamen Hash" zu erzeugen. Ein Brute-Force-Angriff auf solch ein "Krypto-Tool" oder auf Regenbogen-Tabellen macht nur bei kurzen, einfachen Passphrasen und einem persönlichen Charset der Zielperson Sinn. Der Preis für die Stärke des Passworts ist eine Verzögerung beim korrekten Eingeben des Passworts beim Start des Betriebssystems. (Das Mounten von VeraCrypt-Volumes in GNU/Linux ist erheblich schneller).
Kostenlose Software zur Durchführung von Brute-Force-Angriffen. (Extraktion der Passphrase aus dem Header einer VeraCrypt/LUKS-Disk). Hashcat. John the Ripper kann VeraCrypt nicht "knacken" und versteht die Twofish-Kryptografie bei der Arbeit mit LUKS nicht.

Aufgrund der kryptografischen Stärke der Verschlüsselungsalgorithmen entwickeln unaufhaltsame Kryptopunks Software mit einem anderen Angriffsvektor. Zum Beispiel das Extrahieren von Metadaten/Schlüsseln aus dem RAM. (Kaltes Bootangriff/ direkter Zugriff auf den Speicher), es gibt spezialisierte kostenlose und kostenpflichtige Software für diese Zwecke.

Nach der Einrichtung/Generierung der "einzigartigen Metadaten" des verschlüsselten aktiven Abschnitts wird VeraCrypt vorschlagen, den PC neu zu starten und die Funktionalität des Bootloaders zu testen. Nach dem Neustart von Windows wird VeraCrypt im Wartemodus geladen, und Sie müssen lediglich den Verschlüsselungsprozess mit Y bestätigen.

Im letzten Schritt der Systemverschlüsselung wird VeraCrypt anbieten, eine Sicherungskopie des Headers des aktiven verschlüsselten Abschnitts als "veracrypt rescue disk.iso" zu erstellen – dies sollte unbedingt gemacht werden – in dieser Software ist dieser Vorgang eine Anforderung (im LUKS ist dies leider nicht obligatorisch erwähnt, wird jedoch in der Dokumentation hervorgehoben). Die Rettungsdisk wird allen nützlich sein, manche benötigen sie sogar mehrmals. Der Verlust (Überschreibung des Headers/MBR) einer Sicherungskopie des Headers wird für immer den Zugriff auf den entschlüsselten Abschnitt mit Windows OS entziehen.

A4. Erstellung eines Rettungs-USB-Sticks/Disk von VeraCryptStandardmäßig bietet VeraCrypt an, "Metadaten von ~2-3 MB" auf eine CD zu brennen. Doch nicht jeder hat CDs oder DVDs, und die Erstellung eines bootfähigen USB-Sticks mit dem "VeraCrypt Rescue Disk" kann für manche eine technische Herausforderung darstellen: Programme wie Rufus oder GUIdd-ROSA ImageWriter können diese Aufgabe nicht bewältigen, da es neben dem Kopieren der verschobenen Metadaten auf den bootfähigen USB-Stick notwendig ist, die Daten außerhalb des Dateisystems des USB-Speichers zu kopieren. Kurz gesagt, es ist wichtig, den MBR und die Partition korrekt auf das Laufwerk zu übertragen. Unter einem GNU/Linux-Betriebssystem kann man einen bootfähigen USB-Stick mit dem Tool "dd" erstellen, indem man diese Tabelle zu Rate zieht.

Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

Die Erstellung eines Rettungsdisks in der Windows-Umgebung funktioniert anders. Der Entwickler von VeraCrypt hat keine Lösung für dieses Problem in die offizielle Anleitung aufgenommen. Dokumentation zum Thema „Rescue Disk“ habe ich einen alternativen Lösungsvorschlag gemacht: ich habe zusätzliche Software zur Erstellung eines „USB Rescue Disk“ öffentlich verfügbar gemacht, auf meinem VeraCrypt-Forum. Der Archiv für diese Software für Windows heißt „Erstellung USB VeraCrypt Rescue Disk“. Nach dem Speichern von rescue disk.iso beginnt der Prozess der blockweisen Systemverschlüsselung der aktiven Partition. Während der Verschlüsselung bleibt das Betriebssystem aktiv, ein Neustart des PCs ist nicht erforderlich. Nach Abschluss der Verschlüsselungsoperation ist die aktive Partition vollständig verschlüsselt und kann genutzt werden. Wenn beim Starten des PCs der VeraCrypt-Bootloader nicht erscheint und die Wiederherstellung des Headers nicht hilft, überprüfen Sie das Flag „boot“, es sollte auf die Partition gesetzt sein, auf der Windows installiert ist. (unabhängig von der Verschlüsselung und anderen Betriebssystemen, siehe Tabelle Nr. 1).
Damit endet die Beschreibung der blockweisen Systemverschlüsselung unter Windows.

[B] LUKS. Verschlüsselung GNU/Linux (~Debian) installiertes Betriebssystem. Algorithmus und Schritte

Um ein installiertes Debian/abgeleitetes Distribution zu verschlüsseln, müssen Sie die vorbereitete Partition mit dem virtuellen Blockgerät abgleichen, auf die zugeordnete GNU/Linux-Festplatte verschieben und GRUB2 installieren/konfigurieren. Wenn Sie keinen nackten Server haben und Ihre Zeit schätzen, sollten Sie eine GUI verwenden. Die meisten der folgenden Terminalbefehle sind im „Chuck-Norris-Modus“ einzugeben.

B1. PC von live USB GNU/Linux starten

„Kryptotest zur Leistung des Hardwaresystems durchführen“

lscpu && cryptsetup benchmark

Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

Wenn Sie der glückliche Besitzer eines leistungsstarken Systems mit hardwarebasierter AES-Unterstützung sind, werden die Zahlen auf der rechten Seite des Terminals erscheinen. Wenn Sie glücklich, aber mit antiquarer Hardware sind, erscheinen sie links.

B2. Festplattenpartitionierung. Einhängen/Formatieren des logischen HDD-Dateisystems in Ext4 (Gparted)

B2.1. Erstellen des verschlüsselten Header der Partition sda7Die Namen der Partitionen werde ich hier und im Folgenden gemäß meiner obigen Partitionstabelle beschreiben. Je nach Ihrer Festplattenpartitionierung sollten Sie Ihre eigenen Partitionsnamen einsetzen.

Zuweisung der Verschlüsselung des logischen Laufwerks (/dev/sda7 > /dev/mapper/sda7_crypt).
#Простое создание «LUKS-AES-XTS раздела»

cryptsetup -v -y luksFormat /dev/sda7

Optionen:

* luksFormat - Initialisierung des LUKS-Headers;
* -y - Passwortphrase (nicht Schlüssel/Datei);
* -v - Verbalisierung (Ausgabe von Informationen im Terminal);
* /dev/sda7 - Ihr logisches Laufwerk aus der erweiterten Partition (dort, wo die Übertragung/Verschlüsselung von GNU/Linux geplant ist).

Standardmäßig verwendet der Verschlüsselungsalgorithmus <LUKS1: aes-xts-plain64, Schlüssel: 256 Bit, LUKS-Header-Hashing: sha256, RNG: /dev/urandom> (abhängig von der Version von cryptsetup).

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

Falls keine hardwareseitige AES-Unterstützung auf der CPU vorhanden ist, ist die beste Wahl die Erstellung einer erweiterten „LUKS-Twofish-XTS-Partition“.

B2.2. Erweiterte Erstellung einer „LUKS-Twofish-XTS-Partition“

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

Optionen:
* luksFormat - Initialisierung des LUKS-Headers;
* /dev/sda7 Ihr zukünftiges verschlüsseltes logisches Laufwerk;
* -v Verbalisierung;
* -y Passwortphrase;
* -c Auswahl des Verschlüsselungsalgorithmus;
* -s Größe des Verschlüsselungsschlüssels;
* -h Hash-Algorithmus/Kryptofunktion, verwendet den Zufallszahlengenerator (—use-urandom) zur Generierung eines einzigartigen Verschlüsselungs-/Entschlüsselungsschlüssels für den Festplattenspeicherkopf, dem sekundären Schlüssel des Kopfes (XTS); einer einzigartigen Master-Schlüssel, der im verschlüsselten Header der Festplatte gespeichert ist, dem sekundären XTS-Schlüssel, all diese Metadaten und das Verschlüsselungsunterprogramm, das mit dem Master-Schlüssel und dem sekundären XTS-Schlüssel alle Daten auf der Partition verschlüsselt/entschlüsselt. (außer dem Header der Partition) werden in ~3 MB auf der ausgewählten Festplattenteilung gespeichert.
* -i Iterationen in Millisekunden, anstelle der „Anzahl“ (Zeitverzögerung beim Verarbeiten des Passworts, beeinflusst das OS-Startverhalten und die Kryptostabilität der Schlüssel). Um die Kryptostabilität bei einfachen Passwörtern wie „russian“ aufrechtzuerhalten, muss der Wert -(i) erhöht werden, während bei komplexen Passwörtern wie „?8dƱob/øfh“ der Wert verringert werden kann.
* —use-urandom Zufallszahlengenerator, der Schlüssel und Salze generiert.

Nach der Zuordnung der Partition sda7 > sda7_crypt (der Vorgang ist schnell, da ein verschlüsselter Header mit Metadaten ~3 MB erstellt wird und das war's), muss das Dateisystem sda7_crypt formatiert und eingehängt werden.

B2.3. Zuordnung

cryptsetup open /dev/sda7 sda7_crypt
#Die Ausführung dieses Befehls erfordert die Eingabe eines geheimen Passworts.

Optionen:
* open - verweist auf die Partition „mit dem Namen“;
* /dev/sda7 - logisches Laufwerk;
* sda7_crypt - der Name, der zum Mounten der verschlüsselten Partition oder zur Initialisierung beim Booten des Betriebssystems verwendet wird.

B2.4. Formatierung des Dateisystems sda7_crypt in ext4. Mounten des Laufwerks im Betriebssystem(Hinweis: In Gparted kann nicht mehr mit der verschlüsselten Partition gearbeitet werden)

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

Optionen:
* -v - Verbose;
* -L - Laufwerksbezeichnung (die im Datei-Explorer unter anderen Laufwerken angezeigt wird).

Als nächstes sollte das virtuelle, verschlüsselte Blockgerät /dev/sda7_crypt im System gemountet werden

mount /dev/mapper/sda7_crypt /mnt

Die Arbeit mit Dateien im Ordner /mnt führt zu einer automatischen Verschlüsselung/Dekodierung der Daten in sda7.

Es ist bequemer, die Partition im Datei-Explorer zuzuordnen und zu mounten (nautilus/caja GUI), die Partition wird bereits in der Liste der verfügbaren Laufwerke angezeigt, es bleibt nur das Passwort zum Öffnen/Dekodieren des Laufwerks einzugeben. Der zugewiesene Name wird dabei automatisch ausgewählt und ist nicht „sda7_crypt“, sondern etwas wie /dev/mapper/Luks-xx-xx…

B2.5. Backup des Laufwerk-Headers (Metadaten ~3MB)Einer der wichtigsten Punkte Operationen, die ohne Verzögerung durchgeführt werden müssen – Sicherung des Headers von „sda7_crypt“. Wenn der Header überschrieben oder beschädigt wird, (z.B. durch die Installation von GRUB2 im Bereich sda7 usw.), gehen die verschlüsselten Daten unwiderruflich verloren, da sich keine identischen Schlüssel mehr generieren lassen; die Schlüssel sind einzigartig.

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

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

Optionen:
* luksHeaderBackup —header-backup-file -Backup-Befehl;
* luksHeaderRestore —header-backup-file -Wiederherstellungsbefehl;
* ~/Backup_DebSHIFR — Backup-Datei;
* /dev/sda7 -Partition, deren Sicherung des verschlüsselten Festplattheaders aufbewahrt werden muss.
An diesem Punkt abgeschlossen.

B3. Übertragung des Betriebssystems GNU/Linux (sda4) auf die verschlüsselte Partition (sda7)

Erstellen Sie das Verzeichnis /mnt2 (Anmerkung – wir arbeiten weiterhin mit dem Live-USB, im Punkt /mnt ist sda7_crypt eingehängt), und hängen Sie unser GNU/Linux in /mnt2 ein, das verschlüsselt werden muss.

mkdir /mnt2
mount /dev/sda4 /mnt2

Führen Sie die korrekte Übertragung des Betriebssystems mit Rsync durch.

rsync -avlxhHX --progress /mnt2/ /mnt

Die Optionen von Rsync sind in Punkt E1 beschrieben.

Als nächstes benötigt wird führen Sie die Defragmentierung der logischen Festplattenpartition durch.

e4defrag -c /mnt/ #Nach der Überprüfung zeigt e4defrag an, dass der Defragmentierungsgrad der Partition ~"0" beträgt. Das ist ein Missverständnis, das Ihnen erhebliche Leistungseinbußen kosten kann!
e4defrag /mnt/ #Führen Sie die Defragmentierung des verschlüsselten GNU/Linux durch

Machen Sie es sich zur Gewohnheit, e4defrag von Zeit zu Zeit auf verschlüsseltem GNU/Linux durchzuführen, wenn Sie eine HDD haben.
Der Transfer und die Synchronisierung [GNU/Linux > GNU/Linux verschlüsselt] sind in diesem Schritt abgeschlossen.

V4. Konfiguration von GNU/Linux auf der verschlüsselten Partition sda7

Nach dem erfolgreichen Transfer des OS /dev/sda4 > /dev/sda7 müssen Sie sich in das verschlüsselte GNU/Linux einloggen und die weitere Konfiguration vornehmen. (ohne den PC neu zu starten) bezüglich des verschlüsselten Systems. Das bedeutet, dass Sie sich im Live-USB befinden, aber die Befehle "relativ zum Root des verschlüsselten OS" ausführen. Um eine solche Situation zu simulieren, verwenden Sie "chroot". Damit erhalten Sie schnell Informationen darüber, mit welchem OS Sie derzeit arbeiten. (ob verschlüsselt oder nicht, da die Daten in sda4 und sda7 synchronisiert sind), desynchronisieren Sie die Betriebssysteme. Erstellen Sie in den Root-Verzeichnissen (sda4/sda7_crypt) leere Markerdateien, zum Beispiel /mnt/verschlüsseltesOS und /mnt2/entschlüsseltesOS. Eine schnelle Überprüfung, in welchem OS Sie sich befinden. (einschließlich in Zukunft):

ls /

B4.1. „Simulation des Zugriffs auf ein verschlüsseltes Betriebssystem“

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

B4.2. Überprüfung, dass die Arbeit im Kontext des verschlüsselten Systems erfolgt

ls /mnt
# und wir sehen die Datei "/verschlüsseltesOS"

history
# im Terminalausgang sollte die Historie der Befehle der Arbeits-OS angezeigt werden.

B4.3. Erstellen/Einstellen von verschlüsseltem Swap, Bearbeitung von crypttab/fstabDa die Swap-Datei bei jedem Start des Betriebssystems formatiert wird, macht es keinen Sinn, jetzt Swap mit dem logischen Laufwerk zu erstellen und zuzuordnen und die Befehle wie in p.B2.2 einzugeben. Für den Swap werden bei jedem Start automatisch eigene temporäre Verschlüsselungsschlüssel generiert. Lebenszyklus der Swap-Schlüssel: Aushängen/Deaktivieren der Swap-Partition (+Bereinigung des Arbeitsspeichers); oder Neustart des Betriebssystems. Konfiguration des Swap, wir öffnen die Datei, die für die Konfiguration der blockbasierten Verschlüsselungsgeräte verantwortlich ist (entspricht der fstab-Datei, aber zuständig für die Verschlüsselung).

nano /etc/crypttab 

wir bearbeiten

#«target name» «source device» «key file» «options»
swap /dev/sda8 /dev/urandom swap,cipher=twofish-xts-plain64,size=512,hash=sha512

Optionen
* swap -zugeordneter Name bei der Verschlüsselung /dev/mapper/swap.
* /dev/sda8 -verwenden Sie Ihre logische Partition für Swap.
* /dev/urandom -Zufallszahlengenerator für Verschlüsselungsschlüssel für Swap (Bei jedem neuen OS-Start werden neue Schlüssel erstellt. Der Generator /dev/urandom ist weniger zufällig als /dev/random, schließlich wird /dev/random unter extrem paranoidischen Bedingungen verwendet. Beim Booten des OS kann /dev/random den Bootprozess um einige Minuten verzögern. (siehe systemd-analyze).
* swap,cipher=twofish-xts-plain64,size=512,hash=sha512: - die Partition weiß, dass sie swap ist, und wird 'entsprechend' formatiert; Verschlüsselungsalgorithmus.

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

wir bearbeiten

# swap was on /dev/sda8 during installation
/dev/mapper/swap none swap sw 0 0

/dev/mapper/swap -имя , которое задали в crypttab.

Alternativer verschlüsselter Swap
Wenn Sie aus irgendwelchen Gründen nicht die gesamte Partition für eine Swap-Datei verwenden möchten, gibt es einen alternativen und besseren Weg: Erstellen Sie eine Swap-Datei in einer Datei auf der verschlüsselten Partition mit dem OS.

fallocate -l 3G /swap #Erstellen einer Datei mit 3 GB (nahezu sofortige Operation)
chmod 600 /swap #Berechtigungen einstellen
mkswap /swap #swap-Datei aus der Datei erstellen
swapon /swap #unseren Swap aktivieren
free -m #überprüfen, ob die Swap-Datei aktiviert und funktionsfähig ist
printf "/swap none swap sw 0 0" >> /etc/fstab #swap bleibt nach dem Neustart dauerhaft, falls erforderlich

Die Konfiguration der Swap-Partition ist abgeschlossen.

B4.4. Konfiguration von verschlüsseltem GNU/Linux (Bearbeiten der Dateien crypttab/fstab)Die Datei /etc/crypttab, wie oben erwähnt, beschreibt die verschlüsselten Blockgeräte, die beim Booten des Systems konfiguriert werden.

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

wenn Sie die Partition sda7>sda7_crypt wie in Punkt B2.1 zugeordnet haben

# «target name» «source device» «key file» «options»
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none luks

wenn Sie die Partition sda7>sda7_crypt wie in Punkt B2.2 zugeordnet haben

# «target name» «source device» «key file» «options»
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 none cipher=twofish-xts-plain64,size=512,hash=sha512

wenn Sie die Partition sda7>sda7_crypt wie in B2.1 oder B2.2 zugeordnet haben, aber das Passwort zur Entsperrung und zum Booten des Betriebssystems nicht wiederholt eingeben möchten, können Sie anstelle eines Passworts einen geheimen Schlüssel/eine zufällige Datei angeben

# «target name» «source device» «key file» «options»
sda7_crypt UUID=81048598-5bb9-4a53-af92-f3f9e709e2f2 /etc/skey luks

Beschreibung
* none - dies zeigt an, dass beim Booten des Betriebssystems zum Entsperren des Root-Verzeichnisses die Eingabe einer geheimen Passphrase erforderlich ist.
* UUID - der Identifikator der Partition. Um Ihre Identifikation zu erfahren, geben Sie im Terminal ein (eine Erinnerung, dass Sie die ganze Zeit und auch weiterhin im Terminal in der chroot-Umgebung arbeiten und nicht in einem anderen Terminal mit Live-USB).

fdisk -l #Überprüfung aller Partitionen
blkid #es sollte etwa so aussehen 

/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»

diese Zeile erscheint, wenn Sie blkid im Terminal von Live-USB mit montiertem sda7_crypt abfragen).
Die UUID nehmen Sie genau von Ihrem sdaX (nicht sdaX_crypt!, die UUID sdaX_crypt wird automatisch bei der Erstellung der Konfigurationsdatei grub.cfg entfernt).
* cipher=twofish-xts-plain64,size=512,hash=sha512 -luks Verschlüsselung im erweiterten Modus.
* /etc/skey - eine geheime Schlüsseldatei, die automatisch für das Entsperren des Betriebssystems verwendet wird (anstatt das 3. Passwort einzugeben). Die Datei kann beliebig groß sein bis zu 8 MB, jedoch werden die Daten mit <1 MB gelesen.

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

So wird es ungefähr aussehen:

(machen Sie es selbst und sehen Sie selbst).

cryptsetup luksKillSlot /dev/sda7 7 #Entfernen des Schlüssels/Passworts aus Slot 7

/etc/fstab содержит описательную информацию о различных файловых системах.

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

# «file system» «mount poin» «type» «options» «dump» «pass»
# / was on /dev/sda7 during installation
/dev/mapper/sda7_crypt / ext4 errors=remount-ro 0 1

Option
* /dev/mapper/sda7_crypt - der Name der Zuordnung sda7>sda7_crypt, der in der Datei /etc/crypttab angegeben ist.
Die Einrichtung von crypttab/fstab ist abgeschlossen.

B4.5. Bearbeitung von Konfigurationsdateien. Wichtiger PunktB4.5.1. Bearbeitung der Konfiguration /etc/initramfs-tools/conf.d/resume

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

und kommentieren Sie (falls vorhanden) die Zeile «#» «resume». Die Datei sollte vollständig leer sein.

B4.5.2. Bearbeitung der Konfiguration /etc/initramfs-tools/conf.d/cryptsetup

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

sollte entsprechen

# /etc/initramfs-tools/conf.d/cryptsetup
CRYPTSETUP=yes
export CRYPTSETUP

B4.5.3. Bearbeitung der Konfiguration /etc/default/grub (genau diese Konfiguration ist verantwortlich für die Erstellung von grub.cfg bei der Arbeit mit einer verschlüsselten /boot)

nano /etc/default/grub

fügen Sie die Zeile «GRUB_ENABLE_CRYPTODISK=y» hinzu
Der Wert 'y', grub-mkconfig und grub-install überprüfen die Existenz von verschlüsselten Festplatten und generieren zusätzliche Befehle, die für den Zugriff während des Bootvorgangs erforderlich sind. (insmod-Module ).
sollte eine Ähnlichkeit vorhanden sein

GRUB_DEFAULT=0
GRUB_TIMEOUT=1
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=vendor"
GRUB_CMDLINE_LINUX="quiet splash noautomount"
GRUB_ENABLE_CRYPTODISK=y

B4.5.4. Bearbeitung der Konfiguration /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

Überprüfen Sie, dass die Zeile auskommentiert ist .
In Zukunft (und sogar jetzt wird dieser Parameter keine Bedeutung haben, aber manchmal stört er bei der Aktualisierung des Abbilds initrd.img).

B4.5.5. Bearbeitung der Konfiguration /etc/cryptsetup-initramfs/conf-hook

nano /etc/cryptsetup-initramfs/conf-hook

fügen Sie ihn

KEYFILE_PATTERN="/etc/skey"
UMASK=0077

Dies packt den geheimen Schlüssel „skey“ in initrd.img, der erforderlich ist, um das Root-Dateisystem während des OS-Boots zu entsperren. (wenn man nicht möchte, dass das Passwort erneut eingegeben wird, wird der Schlüssel „skey“ automatisch verwendet).

B4.6. Aktualisierung von /boot/initrd.img [version]Um den geheimen Schlüssel in initrd.img zu packen und die Änderungen bei cryptsetup anzuwenden, aktualisieren wir das Abbild.

update-initramfs -u -k all

bei der Aktualisierung von initrd.img (wie gesagt, „Vielleicht, aber das ist nicht sicher“) Es können Warnungen im Zusammenhang mit cryptsetup auftreten oder beispielsweise eine Benachrichtigung über das Fehlen von Nvidia-Modulen – das ist normal. Überprüfen Sie nach dem Aktualisieren der Datei, ob sie tatsächlich aktualisiert wurde, z. B. nach der Zeit. (relativ zur chroot-Umgebung /boot/initrd.img). Achtung! Vor [update-initramfs -u -k all] überprüfen Sie unbedingt, dass cryptsetup open /dev/sda7 sda7_crypt – genau dieser Name sollte in /etc/crypttab erscheinen, andernfalls tritt nach dem Neustart ein busybox-Fehler auf.
An dieser Stelle ist die Konfiguration der Dateien abgeschlossen.

[C] Installation und Konfiguration von GRUB2/Sicherheit

C1. Formatieren Sie bei Bedarf die zugewiesene Partition für den Bootloader (die Partition sollte mindestens 20 MB groß sein).

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

C2. Montage von /dev/sda6 nach /mntDa wir in chroot arbeiten, wird im Wurzelverzeichnis kein Verzeichnis /mnt2 vorhanden sein, und der Ordner /mnt wird leer sein.
Wir mounten die GRUB2-Partition.

mount /dev/sda6 /mnt

Wenn Sie eine alte Version von GRUB2 installiert haben, fehlen möglicherweise die kryptographischen Module im Verzeichnis /mnt/boot/grub/i386-pc. (eine andere Plattform ist möglich, z. B. nicht 'i386-pc') es fehlen kryptografische Module (kurz gesagt, im Ordner sollten Module wie diese .mod vorhanden sein: cryptodisk; luks; gcry_twofish; gcry_sha512; signature_test.mod), in diesem Fall muss GRUB2 aktualisiert werden.

apt-get update
apt-get install grub2 

Achtung! Während des Updates des GRUB2-Pakets aus dem Repository sollten Sie bei der Frage nach dem Ort für die Installation des Bootloaders die Installation ablehnen. (Grund – der Versuch, GRUB2 im „MBR“ oder auf einem Live-USB zu installieren.)Andernfalls beschädigen Sie den Header/Bootloader von VeraCrypt. Nach dem Update der GRUB2-Pakete und der Ablehnung der Installation muss der Bootloader manuell auf das logische Laufwerk und nicht ins „MBR“ installiert werden. Wenn in Ihrem Repository eine veraltete Version von GRUB2 vorhanden ist, versuchen Sie es. es vom offiziellen Standort zu aktualisieren – ich habe es nicht überprüft. (Ich habe mit den neuesten GRUB-Loadern GRUB 2.02 ~BetaX gearbeitet.) (arbeitete mit den aktuellen GRUB-Loadern 2.02 ~BetaX).

C3. Installation von GRUB2 auf der erweiterten Partition [sda6]Sie müssen die Partition [p.C.2] gemountet haben.

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

Optionen
* —force - Installation des Bootloaders unter Umgehung aller Warnungen, die praktisch immer vorhanden sind und die Installation blockieren. (obligatorisches Flag).
* —root-directory - Setzen des Verzeichnisses in das Root von sda6.
* /dev/sda6 - Ihre sdaX-Partition. (vergessen Sie nicht zwischen /mnt /dev/sda6 zu setzen).

C4. Erstellung der Konfigurationsdatei [grub.cfg]Vergessen Sie den Befehl „update-grub2“ und verwenden Sie den vollständigen Befehl zur Erzeugung der Konfigurationsdatei.

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

Nach dem Abschluss der Generierung/Aktualisierung der Datei grub.cfg sollten im Terminalzeilen (eine) mit den gefundenen Betriebssystemen auf der Festplatte angezeigt werden. („grub-mkconfig“ kann auch Betriebsysteme von einem Live-USB erkennen und einbinden, wenn Sie einen Multiboot-Stick mit Windows 10 und vielen Live-Distributionen haben – das ist normal). Wenn im Terminal „leer“ ist und die Datei „grub.cfg“ nicht generiert wurde, ist dies der Fall, in dem es Fehler im GRUB-System gibt. (und wahrscheinlich der Bootloader aus dem Testzweig des Repositories), installieren Sie GRUB2 aus vertrauenswürdigen Quellen neu.
Die Installation der „einfachen Konfiguration“ und die Einrichtung von GRUB2 sind abgeschlossen.

C5. Proof-Test des verschlüsselten GNU/Linux-Betriebssystems.Korrekte Beendigung der Kryptomission. Verlassen Sie vorsichtig das verschlüsselte GNU/Linux. (Verlassen der chroot-Umgebung).

umount -a # Demontage aller gemounteten Partitionen des verschlüsselten GNU/Linux
Ctrl+d # Verlassen der chroot-Umgebung
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount -a # Demontage aller gemounteten Partitionen auf Live-USB
reboot

Nach dem Neustart sollte der VeraCrypt-Bootloader geladen werden.
Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

*Passworteingabe für die aktive Partition – der Start des Windows-Betriebssystems beginnt.
*Durch Drücken der «Esc»-Taste wird die Kontrolle an GRUB2 übergeben. Bei der Auswahl von verschlüsseltem GNU/Linux wird ein Passwort (sda7_crypt) benötigt, um /boot/initrd.img zu entsperren. Sollte grub2 die UUID als «nicht gefunden» ausgeben, liegt ein Problem mit dem Bootloader grub2 vor. Dieser sollte neu installiert werden, beispielsweise aus dem Test-Branch oder stabil.
Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

*Je nachdem, wie Sie Ihr System konfiguriert haben (siehe B4.4/4.5), wird nach der korrekten Eingabe des Passworts zur Entsperrung des Abbilds /boot/initrd.img ein Passwort für das Laden des Kernels/Root-Systems benötigt, oder der geheime Schlüssel «skey» wird automatisch eingesetzt, was eine erneute Eingabe der Passphrase vermeidet.
Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.
(Screenshot «automatische Eingabe des geheimen Schlüssels»).

*Daraufhin folgt der bekannte Ladeprozess von GNU/Linux mit der Authentifizierung des Benutzerkontos.
Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

*Nach der Benutzeranmeldung und dem Eintritt in das Betriebssystem muss /boot/initrd.img erneut aktualisiert werden. (siehe B4.6).

update-initramfs -u -k all

Im Falle von überflüssigen Einträgen im GRUB2-Menü (von der OS-Vorlage mit Live-USB) entfernen Sie diese

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

Zusammenfassung zur Systemverschlüsselung von GNU/Linux:

  • GNU/Linux ist vollständig verschlüsselt, einschließlich /boot/kernel und initrd;
  • der geheime Schlüssel ist in initrd.img verpackt;
  • der aktuelle Authentifizierungsmechanismus (Passwort zur Entsperrung von initrd eingeben; Passwort/SCHLÜSSEL für das Booten des Betriebssystems; Authentifizierungspasswort des Linux-Kontos).

Die „Einfache GRUB2-Konfiguration“ für die systematische Verschlüsselung der Partition wurde abgeschlossen.

C6. Erweiterte GRUB2-Konfiguration. Schutz des Bootloaders durch digitale Signatur + Schutz durch Authentifizierung.GNU/Linux ist vollständig verschlüsselt, jedoch kann der Bootloader nicht verschlüsselt werden – dies ist eine Bedingung, die vom BIOS vorgegeben wird. Aus diesem Grund ist eine verkettete verschlüsselte GRUB2-Bootphase nicht möglich, jedoch ist eine einfache verkettete Bootphase verfügbar, was aus Sicherheitssicht bedeutet, dass [siehe P. F.] keine zusätzliche Schutzmaßnahme erforderlich ist.
Für den „anfälligen“ GRUB2 wurde ein Schutzalgorithmus für den Bootloader durch „Signatur/Authentifizierung“ implementiert.

  • Wenn der Bootloader durch „seine digitale Signatur“ geschützt ist, führt eine externe Modifikation von Dateien oder der Versuch, zusätzliche Module in diesem Bootloader zu laden, zur Blockierung des Bootvorgangs.
  • Bei einem Bootloader, der durch Authentifizierung geschützt ist, ist es erforderlich, den Benutzernamen und das Passwort des Superusers-GRUB2 einzugeben, um einen bestimmten Distribution zu booten oder zusätzliche Befehle in der CLI einzugeben.

C6.1. Schutz des Bootloaders durch Authentifizierung.Bitte überprüfen Sie, dass Sie im Terminal in einem verschlüsselten Betriebssystem arbeiten.

ls / #Dateimarkierer finden

Erstellen Sie ein Superuser-Passwort für die Authentifizierung in GRUB2

grub-mkpasswd-pbkdf2 #geben Sie das Superuser-Passwort ein/wiederholen Sie es. 

Erhalten Sie den Passwort-Hash. Es sieht ungefähr so aus

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

GRUB-Partition einhängen

mount /dev/sda6 /mnt 

Konfiguration bearbeiten

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

Überprüfen Sie die Datei, dass in „grub.cfg“ keine Flags (» —unrestricted» «—user») vorhanden sind
Fügen Sie am Ende hinzu (vor der Zeile ### END /etc/grub.d/41_custom ###)
„set superusers=„root“
password_pbkdf2 root Hash“.

Es sollte ungefähr so aussehen

# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the ‘exec tail’ line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z „${config_directory}“ -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
set superusers=„root“
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### END /etc/grub.d/41_custom ###
#

Wenn Sie häufig den Befehl „grub-mkconfig -o /mnt/boot/grub/grub.cfg“ verwenden und nicht jedes Mal Änderungen an grub.cfg vornehmen möchten, fügen Sie die oben beschriebenen Zeilen (Benutzername/Passwort) in das benutzerdefinierte GRUB-Skript ganz unten ein.

nano /etc/grub.d/41_custom 

cat << EOF
set superusers=„root“
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
EOF

Beim Generieren der Konfiguration „grub-mkconfig -o /mnt/boot/grub/grub.cfg“ werden die Zeilen, die für die Authentifizierung verantwortlich sind, automatisch in grub.cfg hinzugefügt.
An dieser Stelle ist die Konfiguration der GRUB2-Authentifizierung abgeschlossen.

C6.2. Schutz des Bootloaders durch digitale SignaturEs wird davon ausgegangen, dass Sie bereits Ihren persönlichen PGP-Verschlüsselungsschlüssel haben (oder erstellen Sie einen solchen Schlüssel). Es muss kryptografische Software installiert sein: gnuPG; kleopatra/GPA; Seahorse. Die Krypto-Software wird Ihnen in all diesen Angelegenheiten erheblich das Leben erleichtern. Seahorse – stabile Version des Pakets 3.14.0 (höhere Versionen, z. B. V3.20 – unvollständig und hat wesentliche Fehler).

Der PGP-Schlüssel muss nur in der Umgebung von su generiert/starten/hinzugefügt werden!

Persönlichen Verschlüsselungsschlüssel generieren

gpg --gen-key

Ihren Schlüssel exportieren

gpg --export -o ~/perskey

Mounten Sie das logische Laufwerk im Betriebssystem, falls es noch nicht gemountet ist

mount /dev/sda6 /mnt #sda6 – Partition GRUB2

Löschen Sie die GRUB2-Partition

rm -rf /mnt/

Installieren Sie GRUB2 in sda6, indem Sie Ihren persönlichen Schlüssel in das Hauptbild von GRUB „core.img“ einfügen

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

Optionen
* —force -Installer des Bootloaders, ohne alle Warnungen zu umgehen, die immer existieren. (obligatorisches Flag).
* —modules=„gcry_sha256 gcry_sha512 signature_test gcry_dsa gcry_rsa“ -weist GRUB2 an, die notwendigen Module beim Start des PCs vorzuladen.
* -k ~/perskey -Pfad zum „PGP-Schlüssel“ (nachdem der Schlüssel in das Image gepackt wurde, kann er gelöscht werden).
* —root-directory -setzt das Boot-Verzeichnis auf den Wurzelverzeichnis von sda6
/dev/sda6 -ваш sdaХ раздел.

Generierung/Aktualisierung von grub.cfg

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

Fügen Sie am Ende der Datei „grub.cfg“ die Zeile „trust /boot/grub/perskey“ hinzu. (zum zwangsweisen Verwenden des PGP-Schlüssels.) Da wir GRUB2 mit einem Modulset installiert haben, einschließlich des Signaturmoduls „signature_test.mod“, entfällt die Notwendigkeit, Befehle wie „set check_signatures=enforce“ in die Konfiguration aufzunehmen.

Es sollte ungefähr so aussehen (Endzeilen in der Datei grub.cfg)

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z „${config_directory}“ -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
trust /boot/grub/perskey
set superusers=„root“
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8
### END /etc/grub.d/41_custom ###
#

Der Pfad zu „/boot/grub/perskey“ muss nicht auf eine bestimmte Partition des Laufwerks angegeben werden, z. B. hd0,6; für den Bootloader ist „root“ der Standardpfad zur Partition, auf der GRUB2 installiert ist. (siehe set rot=..).

GRUB2 signieren (alle Dateien in allen Verzeichnissen /GRUB) mit Ihrem Schlüssel „perskey“.
Eine einfache Lösung, um zu signieren (für den Explorer nautilus/caja): Wir installieren das Erweiterungspaket „seahorse“ aus dem Repository für den Dateimanager. Ihr Schlüssel sollte in der su-Umgebung hinzugefügt werden.
Öffnen Sie den Dateimanager über sudo „/mnt/boot“ – Rechtsklick – signieren. Auf dem Screenshot sieht das so aus.

Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

Der Schlüssel selbst ist „/mnt/boot/grub/perskey“ (kopiert in das grub-Verzeichnis) soll ebenfalls mit seiner eigenen Signatur signiert werden. Überprüfen Sie, ob im Verzeichnis/Unterverzeichnissen die Signaturen der Dateien [*.sig] erschienen sind.
Signieren Sie „/boot“ auf die oben beschriebene Weise (unsere kernel, initrd). Wenn Ihre Zeit etwas wert ist, so erleichtert diese Methode das Schreiben eines Bash-Skripts zur Signierung „viele Dateien“.

Um alle Signaturen des Bootloaders zu entfernen (falls etwas schiefgeht)

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

Um nach einem Systemupdate nicht den Bootloader signieren zu müssen, frieren wir alle Aktualisierungspakete in Bezug auf GRUB2 ein.

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

Damit ist die <Schutz des Bootloaders durch digitale Signatur> erweiterte GRUB2-Konfiguration abgeschlossen.

C6.3. Proof-Test des durch digitale Signatur und Authentifizierung geschützten GRUB2-BootloadersGRUB2. Bei der Auswahl eines beliebigen GNU/Linux-Distributions oder beim Einstieg in das CLI (Kommandozeile) Es ist eine Superuser-Authentifizierung erforderlich. Nach Eingabe des korrekten Benutzernamens/Passworts wird ein Passwort für initrd benötigt.

Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.
Screenshot, erfolgreiche GRUB2-Superuser-Authentifizierung.

Wenn eine der GRUB2-Dateien manipuliert, Änderungen an grub.cfg vorgenommen oder eine Datei/Signatur gelöscht wird, oder ein bösartiges Modul (mod) geladen wird, erscheint die entsprechende Warnung. Der GRUB2-Ladevorgang wird unterbrochen.

Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.
Screenshot, Versuch, von außen in GRUB2 einzugreifen.

Bei einem „normalen“ Bootvorgang „ohne Eingriffe“ hat der Systemausgabecode den Status „0“. Daher ist unklar, ob der Schutz funktioniert oder nicht. (Das heißt, bei einem „Boot mit oder ohne Bootloader-Signatur“ bleibt der Status bei normalem Boot gleich „0“ – das ist schlecht.)

Wie kann man den Schutz durch digitale Signatur überprüfen?

Uneingeschränkter Prüfabschnitt: Manipulieren/Löschen eines verwendeten GRUB2-Moduls, z.B. die Signatur luks.mod.sig entfernen, was zu einem Fehler führt.

Der richtige Weg: Melden Sie sich an der CLI der Bootloader an und geben Sie den Befehl ein.

trust_list

Als Antwort sollte der Fingerabdruck „perskey“ angezeigt werden. Wenn der Status „0“ ist, funktioniert der Schutz durch die Signatur nicht. Überprüfen Sie p.C6.2.
An diesem Punkt ist die erweiterte Konfiguration „Schutz durch digitale Signatur und Authentifizierung in GRUB2“ abgeschlossen.

C7 Alternativmethode zum Schutz des Bootloaders GRUB2 durch HashingDie oben beschriebene Methode „Schutz des Bootloaders durch CPU-Authentifizierung“ ist ein Klassiker. Aufgrund der Unzulänglichkeiten von GRUB2 ist er in paranoiden Bedingungen realen Angriffen ausgesetzt, die ich im Abschnitt [F] beschreiben werde. Darüber hinaus muss der Bootloader nach jedem OS-/Kernel-Update neu signiert werden.

Schutz des Bootloaders GRUB2 durch Hashing

Vorteile gegenüber dem Klassiker:

  • Höhere Zuverlässigkeit (Das Hashing/die Überprüfung erfolgt nur von einem verschlüsselten lokalen Medium. Der gesamte, für GRUB2 reservierte Bereich wird auf Änderungen überwacht, während der Rest verschlüsselt ist. Bei der klassischen Methode mit Schutz des Bootloaders durch CPU-Authentifizierung werden lediglich die Dateien, jedoch nicht der freie Speicherplatz, der für böswillige Änderungen genutzt werden könnte, überwacht.)
  • Verschlüsselte Protokollierung (In das System wird ein leicht lesbares persönliches verschlüsseltes Protokoll integriert.)
  • Geschwindigkeit (Der Schutz/die Überprüfung des gesamten für GRUB2 reservierten Bereichs erfolgt nahezu sofort.)
  • Automatisierung aller kryptografischen Prozesse.

Nachteile gegenüber dem Klassiker.

  • Signaturfälschung (theoretisch ist es möglich, eine Collision der Hash-Funktion zu finden).
  • Erhöhter Schwierigkeitsgrad (verglichen mit der klassischen Methode sind etwas mehr Fähigkeiten im Umgang mit OS GNU/Linux erforderlich).

Wie funktioniert die Idee des Hashings von GRUB2/Partition

Die GRUB2-Partition wird „signiert“, bei der OS-Boot erfolgt eine Unveränderlichkeitprüfung der Boot-Partition mit anschließender Protokollierung in einer sicheren (verschlüsselten) Umgebung. Im Falle einer Kompromittierung des Bootloaders oder seiner Partition wird zusätzlich zum Intrusion-Log Folgendes gestartet

Eine Maßnahme.Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

Viermal täglich findet eine gleichartige Prüfung statt, die die Systemressourcen nicht belastet.
Mit dem Befehl „-$ prüfung_GRUB“ erfolgt jederzeit eine sofortige Überprüfung ohne Protokollierung, jedoch mit Ausgabe von Informationen im CLI.
Mit dem Befehl „-$ sudo signatur_GRUB“ erfolgt die sofortige Neusignierung des GRUB2-Bootloaders/Partition und deren aktualisierte Protokollierung (notwendig nach der Aktualisierung des OS/Boot), und das Leben geht weiter.

Implementierung der Methode zur Hashing des Bootloaders und seiner Partition

0) Wir signieren den Bootloader/Partition GRUB, nachdem wir ihn in /media/benutzername gemountet haben.

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

1) Wir erstellen ein Skript ohne Erweiterung im Wurzelverzeichnis des verschlüsselten OS ~/podpis, wenden die erforderlichen Berechtigungen 744 an und setzen eine 'Schutzmaßnahme gegen Dumme'.

Wir fügen seinen Inhalt hinzu

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

Wir starten das Skript von su, eine Überprüfung der Hash-Werte des GRUB-Teils und seines Bootloaders erfolgt, speichern Sie das Log.

Wir erstellen oder kopieren beispielsweise eine 'Schadhafte Datei' [virus.mod] in den GRUB2-Bereich und führen eine temporäre Überprüfung/Test durch:

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

Im CLI sollten wir einen Eindringling in unsere -Zitadelle- sehen#Урезанный лог в CLI

Mi Jan  2 11::41 MSK 2020
/media/username/GRUB/boot/grub/virus.mod: Verschoben von /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 fehlgeschlagen
   Untersuchte Eingabedateien: 0
  Bekannte Dateien erwartet: 0
          Übereinstimmende Dateien: 325
Teilweise übereinstimmende Dateien: 0
            Verschobene Dateien: 1
        Neue Dateien gefunden: 0
  Bekannte Dateien nicht gefunden: 0

#как видим появилось «Files moved: 1 и Audit failed» означает, что проверка не прошла.
Aufgrund der Besonderheiten des getesteten Teils anstelle von 'Neue Dateien gefunden' > 'Verschobene Dateien'

2) Wir legen das GIF hierhin > ~/warning.gif, setzen die Berechtigungen 744.

3) Wir konfigurieren fstab für die automatische Montage des GRUB-Teils beim Booten

-$ sudo nano /etc/fstab

LABEL=GRUB /media/username/GRUB ext4 defaults 0 0

4) Wir führen die Log-Rotation durch

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

/var/log/podpis.txt {
täglich
rotate 50
size 5M
dateext
compress
delaycompress
olddir /var/log/old
}

/var/log/vtorjenie.txt {
monatlich
rotate 5
size 5M
dateext
olddir /var/log/old
}

5) Wir fügen einen Cron-Job hinzu

-$ sudo crontab -e

reboot '/podpis'
0 */6 * * * '/podpis

6) Wir erstellen permanente Aliase

-$ sudo su
-$ echo "alias sign_GRUB='hashdeep -c md5 -r /media/username/GRUB > /podpis.txt'" >> /root/.bashrc && bash
-$ echo "alias check_GRUB='hashdeep -vvv -a -k '/podpis.txt' -r /media/username/GRUB'" >> .bashrc && bash

Nach dem Update des Betriebssystems -$ apt-get upgrade signieren wir unsere GRUB-Partition neu
-$ sign_GRUB
In diesem Schritt ist der Schutz der GRUB-Partition durch Hashing abgeschlossen.

[D] Bereinigung – unwiderrufliches Löschen unverschlüsselter Daten

Löschen Sie Ihre persönlichen Dateien so vollständig, dass „sogar Gott sie nicht lesen kann“, laut einem Vertreter aus South Carolina, Trey Gowdy.

Wie üblich gibt es verschiedene „Mythen und Legenden„ über die Wiederherstellung von Daten, nachdem sie von der Festplatte gelöscht wurden. Wenn Sie an Cyberzauberei glauben oder ein Mitglied der Dr. Web-Community sind und noch nie versucht haben, Daten nach deren Löschung/Wiederbeschreibung wiederherzustellen, (zum Beispiel mit R-studio), dann wird Ihnen die empfohlene Methode wahrscheinlich nicht helfen; nutzen Sie, was Ihnen näher liegt.

Nach der erfolgreichen Übertragung von GNU/Linux auf die verschlüsselte Partition muss die alte Kopie unwiderruflich gelöscht werden. Eine universelle Reinigungslösung: Software für Windows/Linux, kostenlose GUI-Software BleachBit.
Schnell wir formatieren die Partition, deren Daten gelöscht werden müssen (mit Gparted), starten wir BleachBit, wählen „Freien Speicherplatz bereinigen“ – wählen die Partition (Ihr sdaX mit der vorherigen GNU/Linux-Kopie), es wird der Bereinigungsprozess gestartet. BleachBit – reinigt die Festplatte in einem Durchgang – das ist das, was „wir brauchen“, aber! Das funktioniert nur theoretisch, wenn Sie die Festplatte formatiert und in BB v2.0 gereinigt haben.

Achtung! BB reinigt die Festplatte und hinterlässt Metadaten, die Dateinamen bleiben bei der Datenlöschung erhalten (Ccleaner hinterlässt keine Metadaten).

Und der Mythos über die Möglichkeit der Datenwiederherstellung ist kein vollständiger Mythos.Bleachbit V2.0-2 war ein instabiler Debian OS-Paket (und jede andere ähnliche Software: sfill; wipe-Nautilus - wurden ebenfalls in diesem schmutzigen Geschäft bemerkt) hatte tatsächlich einen kritischen Fehler: die Funktion „freien Speicherplatz bereinigen“ funktioniert nicht richtig auf HDDs/USB-Sticks (ntfs/ext4). Solche Arten von Software überschreiben bei der Bereinigung des freien Speichers nicht die gesamte Festplatte, wie viele Benutzer denken. Und einige (viele) gelöschte Daten werden von OS/Software als nicht gelöscht/bewohnbar betrachtet und bei der Bereinigung des „freuen Speicherplatzes“ übersehen. Das Problem ist, dass nach einer solch langen Bereinigung der Festplatte „gelöschte Dateien“ wiederhergestellt werden können. selbst nach 3+ Durchläufen der Datenträgerbereinigung.
Unter GNU/Linux in BleachBit 2.0-2 funktionieren die Funktionen zur endgültigen Löschung von Dateien und Verzeichnissen zuverlässig, jedoch nicht die Bereinigung des freien Speicherplatzes. Im Vergleich dazu funktioniert die Funktion "Oberflächenbereinigung für ntfs" in CCleaner für Windows einwandfrei, und Gott kann die gelöschten Daten tatsächlich nicht lesen.

Um also gründlich zu entfernen „kompromittierende“ alte unverschlüsselte Daten, ist ein direkter Zugriff von BleachBit auf diese Daten erforderlich, und verwenden Sie dann die Funktion "endgültiges Löschen von Dateien/Verzeichnissen".
Um „gelöschte Dateien mit den integrierten Mitteln des Betriebssystems“ in Windows zu entfernen, verwenden Sie CCleaner/BB mit der Funktion "Oberflächenbereinigung". In GNU/Linux sollten Sie sich mit diesem Problem (Löschung gelöschter Dateien) selbst Erfahrung aneignen (Datenlöschung + selbstversuchter Wiederherstellung, und verlassen Sie sich nicht auf die Softwareversion (sofern nicht eine Hintertür, dann ein Bug)), nur so können Sie das Mechanismus dieses Problems verstehen und die gelöschten Daten endgültig loswerden.

BleachBit v3.0 wurde nicht überprüft, möglicherweise wurde das Problem bereits behoben.
BleachBit v2.0 arbeitet zuverlässig.

An diesem Punkt ist die „Datenträgerbereinigung“ abgeschlossen.

[E] Universelle Sicherung verschlüsselter Betriebssysteme

Jeder Benutzer hat seine eigene Methode zur Datensicherung, aber verschlüsselte Daten von "Systembetriebssystemen" erfordern einen etwas anderen Ansatz. Standardsoftware wie "Clonezilla" und ähnliche Programme können nicht direkt mit verschlüsselten Daten arbeiten.

Aufgabenstellung zur Sicherung verschlüsselter Blockgeräte:

  1. Universalität – ein einheitlicher Algorithmus/Software zur Datensicherung für Windows/Linux;
  2. Fähigkeit, über die Konsole mit jedem Live-USB-GNU/Linux zu arbeiten, ohne zusätzliche Software herunterladen zu müssen, (aber ich empfehle trotzdem eine GUI);
  3. Sicherheit der Backups – die gespeicherten "Images" müssen verschlüsselt/mit Passwort geschützt sein;
  4. Die Größe der verschlüsselten Daten sollte der Größe der tatsächlich zu sichernden Daten entsprechen;
  5. Bequeme Extraktion der benötigten Dateien aus dem Backup (ohne dass eine vollständige Entschlüsselung der Partition erforderlich ist).

Beispielsweise Backup/Wiederherstellung mit dem Tool "dd"

dd if=/dev/sda7 of=/pfad/sda7.img bs=7M conv=sync,noerror
dd if=/pfad/sda7.img of=/dev/sda7 bs=7M conv=sync,noerror

Erfüllt fast alle Anforderungen der gestellten Aufgabe, jedoch hinsichtlich Punkt 4 nicht überzeugend, da der gesamte Festplattenteil einschließlich des freien Speicherplatzes kopiert wird – nicht interessant.

Beispielsweise ist ein Backup von GNU/Linux über das Archivierungstool [tar» | gpg] praktisch, aber für Windows-Backups muss eine andere Lösung gesucht werden – nicht interessant.

E1. Universelles Backup für Windows/Linux. Kombination rsync (Grsync) + VeraCrypt-VolumeAlgorithmus zur Erstellung eines Backups:

  1. Erstellung eines verschlüsselten Containers (Volume/Datei) VeraCrypt für das Betriebssystem;
  2. Übertragung/Synchronisierung des Betriebssystems mithilfe von Rsync-Software in den VeraCrypt-Kryptcontainer;
  3. bei Bedarf das VeraCrypt-Volume im www. laden.

Die Erstellung eines verschlüsselten VeraCrypt-Containers hat ihre Besonderheiten:
Erstellung eines dynamischen Volumes (dynamisches Volume kann nur in Windows erstellt werden, ist aber auch unter GNU/Linux nutzbar);
Erstellung eines regulären Volumes, jedoch gibt es die Anforderung »paranoider Art« (laut Entwickler) – Formatierung des Containers.

Ein dynamisches Volume wird in Windows nahezu sofort erstellt, jedoch verringert sich bei der Datenübertragung aus GNU/Linux > VeraCrypt DD die insgesamt durchzuführende Backup-Operation deutlich.

Ein gewöhnliches Twofish-Volume von 70 GB wird erstellt (sagen wir mal, mit der mittleren Leistung eines PCs) auf einer HDD in etwa einer halben Stunde (das Überschreiben früherer Daten des Containers in einem Durchgang, erforderlich aus Sicherheitsgründen). In VeraCrypt für Windows/Linux wurde die Funktion für schnelles Formatieren des Volumes bei dessen Erstellung entfernt, daher ist die Erstellung des Containers nur durch "Überschreiben in einem Durchgang" oder die Erstellung eines leistungsschwachen dynamischen Volumes möglich.

Wir erstellen ein normales VeraCrypt-Volume (nicht dynamisch/ntfs), es sollten keine Probleme auftreten.

Wir konfigurieren/erstellt/öffnen den Container in der VeraCrypt-GUI > GNU/Linux Live-USB (das Volume wird automatisch unter /media/veracrypt2 eingehängt, das Windows-Volume wird unter /media/veracrypt1 eingehängt). Wir erstellen ein verschlüsseltes Backup des Windows-Betriebssystems mit der GUI rsync (grsync), mit den entsprechenden Häkchen.

Vollständige Festplattenverschlüsselung für Windows und Linux installierte Systeme. Verschlüsselte Multiboot-Umgebung.

Auf das Ende des Prozesses warten. Nach Abschluss des Backups haben wir eine verschlüsselte Datei.

Ähnlich ein Backup des GNU/Linux-Betriebssystems erstellen, indem wir das Häkchen in der GUI rsync für "Windows-Kompatibilität" entfernen.

Achtung! Den VeraCrypt-Container für das "Backup von GNU/Linux" in einem Dateisystem erstellen ext4. Wenn Sie ein Backup im NTFS-Container durchführen, verlieren Sie beim Wiederherstellen dieser Kopie alle Berechtigungen/Gruppen auf all Ihre Daten.

Alle Operationen können auch im Terminal durchgeführt werden. Die Hauptoptionen für rsync:
* -g - Gruppen beibehalten;
* -P —progress — Status der Dateibearbeitungszeit;
* -H - Hardlinks so kopieren, wie sie sind;
* -a - Archivmodus (mehrere Flags rlptgoD);
* -v - Verbose-Ausgabe.

Wenn Sie den "Windows VeraCrypt Volume" über die Konsole im Programm cryptsetup einbinden möchten, können Sie ein Alias erstellen (su)

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

Jetzt wird bei dem Befehl „veramount pictures“ nach der Eingabe der Passphrase gefragt, und das verschlüsselte Windows-Systemvolume wird im Betriebssystem eingebunden.

Systemvolume VeraCrypt in cryptsetup einbinden Befehl

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

Partition/Container VeraCrypt in cryptsetup einbinden Befehl

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

Anstelle eines Alias fügen wir (Skript beim Booten) das Systemvolume mit Windows OS und die logisch verschlüsselte NTFS-Partition in den Autostart von GNU/Linux ein.

Wir erstellen ein Skript und speichern es 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 # dekodiert das Passwort aus base64 (bob) und sendet es zur Passwortabfrage beim Einbinden des Systemlaufwerks von Windows.
printf 'Ym9i' | base64 -d | cryptsetup open --veracrypt --type tcrypt /dev/sda1 ntfscrypt && mount /dev/mapper/ntfscrypt /media/ContainerNtfs # analog, aber wir binden das logische NTFS-Laufwerk ein.

Wir setzen die „richtigen“ Berechtigungen:

sudo chmod 100 /VeraOpen.sh

Wir erstellen zwei identische Dateien (mit demselben Namen!) in /etc/rc.local und ~/etc/init.d/rc.local
Wir füllen die Dateien aus

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

Wir setzen die „richtigen“ Berechtigungen:

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

Jetzt müssen wir beim Booten von GNU/Linux keine Passwörter mehr zum Einbinden der verschlüsselten Laufwerke eingeben, die Laufwerke werden automatisch eingebunden.

Eine kurze Notiz zu dem, was oben in p.E1 beschrieben wurde, Schritt für Schritt (aber jetzt für OS GNU/Linux)
1) Erstellen Sie ein Volume im fs ext4 > 4GB (für die Datei) Linux in Veracrypt [Krypto-Container].
2) Reboot von Live-USB.
3) ~$ cryptsetup open /dev/sda7 Lunux # Zuweisung der verschlüsselten Partition.
4) ~$ mount /dev/mapper/Linux /mnt # Einbinden der verschlüsselten Partition in /mnt.
5) ~$ mkdir mnt2 # Erstellen eines Verzeichnisses für zukünftige Backups.
6) ~$ cryptsetup open —veracrypt —type tcrypt ~/Krypto-Container Krypto-Container && mount /dev/mapper/Krypto-Container /mnt2 #Veracrypt-Volume mit dem Namen „Krypto-Container“ einhängen und Krypto-Container in /mnt2 mounten.
7) ~$ rsync -avlxhHX —progress /mnt /mnt2/ #Backup-Vorgang des verschlüsselten Laufwerks auf das verschlüsselte Veracrypt-Volume.

(p/s/ Achtung! Wenn Sie ein verschlüsseltes GNU/Linux von einer Architektur/Maschine auf eine andere übertragen, z. B. Intel > AMD (d. h. Sie stellen ein Backup von einem verschlüsselten Laufwerk auf ein anderes verschlüsseltes Laufwerk Intel > AMD wieder her), vergessen Sie nicht nach der Übertragung des verschlüsselten Betriebssystems den geheimen Einsteckschlüssel anstelle des Passworts zu ändern, da der vorherige Schlüssel ~/etc/skey — nicht mehr für ein anderes verschlüsseltes Laufwerk passt, und es unerwünscht ist, einen neuen Schlüssel mit „cryptsetup luksAddKey“ unter chroot zu erstellen — es könnte zu einem Fehler kommen. Geben Sie einfach in ~/etc/crypttab vorübergehend „none“ anstelle von „/etc/skey“ an, nach dem Reboot und dem Login ins OS erstellen Sie Ihren geheimen Einsteckschlüssel neu.

Wie IT-Veteranen nicht vergessen sollten, separate Backups der Header verschlüsselter Laufwerke in Windows/Linux zu erstellen, sonst wird die Verschlüsselung gegen Sie arbeiten.
An diesem Punkt ist das Backup des verschlüsselten Betriebssystems abgeschlossen.

[F] Angriff auf den GRUB2-Bootloader

DetailsWenn Sie Ihren Bootloader mit einer digitalen Signatur und/oder Authentifizierung geschützt haben (siehe Abschnitt C6.), schützt dies jedoch nicht vor physischem Zugriff. Verschlüsselte Daten bleiben unerreichbar, aber der Schutz kann umgangen werden (Entfernen des digitalen Signaturschutzes) GRUB2 ermöglicht es Cyberkriminellen, ihren Code unbemerkt in den Bootloader einzufügen (es sei denn, der Benutzer überwacht den Zustand des Bootloaders manuell oder hat einen eigenen robusten Skriptcode für grub.cfg entwickelt).

Angriffsalgorithmus. Der Angreifer

* startet den PC mit einem Live-USB. Jede Änderung (durch den Angreifer) der Dateien führt zu einer Benachrichtigung des tatsächlichen Besitzers des PCs über den Eingriff in den Bootloader. Eine einfache Neuinstallation von GRUB2 unter Beibehaltung von grub.cfg (und der späteren Möglichkeit der Bearbeitung) ermöglicht es dem Angreifer, beliebige Dateien zu bearbeiten (in diesem Szenario erfolgt beim Start von GRUB2 keine Benachrichtigung des tatsächlichen Benutzers. Der Status bleibt der gleiche ) * mountet die unverschlüsselte Partition und speichert "/mnt/boot/grub/grub.cfg".
* installiert den Bootloader neu
(indem "perskey" aus dem core.img entfernt wird) (während «perskey» aus dem core.img-Image entfernt wurde)

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

* Gibt «grub.cfg» > «/mnt/boot/grub/grub.cfg» zurück und bearbeitet ihn bei Bedarf, z. B. indem er sein Modul «keylogger.mod» in das Verzeichnis der Bootloader-Module hinzufügt, in «grub.cfg» > Zeile «insmod keylogger». Oder, falls der Angreifer hinterhältig ist, nach der erneuten Installation von GRUB2. (alle Signaturen bleiben an Ort und Stelle) Er erstellt das Hauptabbild von GRUB2 mit «grub-mkimage mit der Option (-s).» Die Option «-s» ermöglicht das Laden seines Konfigurationsdatei vor dem Haupt-«grub.cfg». Die Konfiguration kann aus nur einer Zeile bestehen: eine Weiterleitung zu einer beliebigen «modern.cfg», gemischt mit z. B. ~400 Dateien. (Module+Signaturen) im Verzeichnis «/boot/grub/i386-pc». Dabei kann der Angreifer beliebigen Code einfügen und Module laden, ohne «/boot/grub/grub.cfg» zu berühren, selbst wenn der Benutzer eine «hashsum» auf die Datei angewendet hat und diese vorübergehend angezeigt wurde.
Der Angreifer muss nicht das Login/Paswort des Superusers GRUB2 knacken; es reicht, die Zeilen zu kopieren. (die für die Authentifizierung verantwortlich sind) «/boot/grub/grub.cfg» in sein «modern.cfg»

set superusers=„root“
password_pbkdf2 root grub.pbkdf2.sha512.10000.DE10E42B01BB6FEEE46250FC5F9C3756894A8476A7F7661A9FFE9D6CC4D0A168898B98C34EBA210F46FC10985CE28277D0563F74E108FCE3ACBD52B26F8BA04D.27625A4D30E4F1044962D3DD1C2E493EF511C01366909767C3AF9A005E81F4BFC33372B9C041BE9BA904D7C6BB141DE48722ED17D2DF9C560170821F033BCFD8

Und die Authentifizierung des Superusers GRUB2 bleibt für den PC-Besitzer weiterhin wirksam.

Chain-Loading (der Bootloader lädt einen anderen Bootloader), wie bereits erwähnt, macht keinen Sinn  (sie ist für einen anderen Zweck gedacht). Aufgrund des BIOS kann der verschlüsselte Bootloader nicht geladen werden  (beim Kettenboot wird GRUB2 neu gestartet > verschlüsseltes GRUB2, Fehler!). Wenn man jedoch die Idee des Kettenboots trotzdem nutzen möchte, kann man sicher sein, dass genau der verschlüsselte  (nicht aktualisierte) «grub.cfg» aus dem verschlüsselten Abschnitt geladen wird. Und das vermittelt auch ein falsches Sicherheitsgefühl, denn alles, was in der verschlüsselten «grub.cfg» angegeben ist  (Modul-Ladung) wird mit den Modulen kombiniert, die aus dem unverschlüsselten GRUB2 geladen werden.

Wenn Sie dies überprüfen möchten, verschlüsseln Sie einen weiteren Abschnitt sdaY, kopieren Sie GRUB2 darauf  (die Operation grub-install auf den verschlüsselten Abschnitt ist nicht möglich)  und in «grub.cfg»  (des unverschlüsselten Konfigs) ändern Sie Zeilen wie diese

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

Zeilen
* insmod - lädt die notwendigen Module für den Betrieb mit der verschlüsselten Festplatte;
* GRUBx2 - der Name der angezeigten Zeile im GRUB2-Bootmenü;
* cryptomount -u 15c47d1c4bd34e5289df77bcf60ee838 -siehe fdisk -l (sda9);
* set root - setzt den Root;
* normal /boot/grub/grub.cfg - die ausführbare Konfigurationsdatei auf der verschlüsselten Partition.

Die Bestätigung, dass genau das verschlüsselte „grub.cfg“ geladen wird, ist eine positive Rückmeldung auf die Eingabe des Passworts / die Entsperrung von „sdaY“ beim Auswählen der Zeile „GRUBx2“ im GRUB-Menü.

Bei der Arbeit im CLI, um nicht durcheinanderzukommen (und um zu überprüfen, ob die Umgebungsvariable „set root“ funktioniert hat), erstellen Sie leere Markerdateien, z. B. in der verschlüsselten Partition „/shifr_grub“, in der unverschlüsselten Partition „/noshifr_grub“. Überprüfung im CLI

cat /Tab-Tab

Wie bereits erwähnt, hilft dies nicht gegen das Laden bösartiger Module, wenn solche Module auf Ihrem PC vorhanden sind. Zum Beispiel ein Keylogger, der Tastenanschläge in einer Datei speichert und sich mit anderen Dateien in „~/i386“ vermischt, bis er von einem Angreifer mit physischem Zugriff auf den PC heruntergeladen wird.

Der einfachste Weg, um zu überprüfen, ob der Schutz der digitalen Signatur aktiv ist (nicht zurückgesetzt), und niemand in den Bootloader eingedrungen ist, ist im CLI den Befehl einzugeben

list_trusted

Im Gegenzug erhalten wir einen Snapshot unseres „perskey“ oder nichts, wenn wir angegriffen wurden. (es ist auch notwendig, „set check_signatures=enforce“ zu überprüfen).
Ein wesentlicher Nachteil dieses Schrittes ist, dass man die Befehle manuell eingeben muss. Wenn man diesen Befehl in die „grub.cfg“ einfügt und die Konfiguration digital signiert, ist die vorläufige Ausgabe des Schlüssel-Snapshots aufgrund der kurzen Zeitspanne zu knapp, und man hat möglicherweise keine Chance, das Ergebnis zu sehen, wenn GRUB2 startet.
Es gibt niemanden, an den man wirklich Ansprüche stellen kann: Der Entwickler erklärt in seiner Dokumentation. Punkt 18.2 offiziell,

„Beachten Sie, dass GRUB trotz Passwortschutz nicht verhindern kann, dass jemand mit physischem Zugang zur Maschine die Firmware (z. B. Coreboot oder BIOS) konfiguriert, um die Maschine von einem anderen (Angreifer-gesteuerten) Gerät zu booten. GRUB ist bestenfalls nur ein Glied in einer sicheren Bootkette.“

GRUB2 ist zu überladen mit Funktionen, die ein Gefühl von falscher Sicherheit vermitteln können, und seine Entwicklung hat bereits die Funktionalität von MS-DOS überholt, und das ist lediglich ein Bootloader. Lustig ist, dass GRUB2 - „morgen“ könnte ein Betriebssystem sein, während GNU/Linux-VMs für ihn geladen werden.

Ein kurzes Video darüber, wie ich den Schutz durch die digitale Signatur von GRUB2 zurückgesetzt habe und einem echten Benutzer von meiner Eindringung berichtet habe. (hat erschreckt, und anstelle von dem, was im Video gezeigt wird – kann man keinen harmlosen willkürlichen Code/.mod schreiben).

Video abspielen

Fazit:

1) Blockbasierte Systemverschlüsselung für Windows – einfacher umzusetzen, und der Schutz mit einem Passwort ist bequemer als der Schutz mit mehreren Passwörtern bei blockbasierter Systemverschlüsselung in GNU/Linux; gerechterweise: Letzteres ist automatisiert.

2) Der Artikel wurde verfasst als relevant und detailliert ein einfaches Handbuch zur Vollverschlüsselung mit VeraCrypt/LUKS auf einem Heimcomputer, das derzeit das beste im Runet ist (IMHO). Im Handbuch > 50k Zeichen, daher wurden einige interessante Kapitel nicht behandelt: über Kryptographen, die verschwinden/im Schatten bleiben; darüber, dass in verschiedenen GNU/Linux-Büchern wenig/nichts über Kryptographie geschrieben steht; über Artikel 51 der Verfassung der RF; über Lizenzierung/запрете von Verschlüsselung in der RF, und warum es wichtig ist, „Root/Boot“ zu verschlüsseln. Das Handbuch ist bereits umfangreich und detailliert (beschreibt sogar einfache Schritte), was Ihnen viel Zeit spart, wenn Sie sich mit der "echten Verschlüsselung" beschäftigen.

3) Vollverschlüsselung wurde auf Windows 7 64; GNU/Linux Parrot 4x; GNU/Debian 9.0/9.5 durchgeführt.

4) Ich habe einen erfolgreichen Angriff auf meinen GRUB2-Bootloader durchgeführt.

5) Dieses Tutorial wurde erstellt, um allen Paranoikern im deutschsprachigen Raum zu helfen, in dem das Arbeiten mit Verschlüsselung gesetzlich erlaubt ist. Vor allem für diejenigen, die eine vollständige Festplattenverschlüsselung einrichten möchten, ohne ihre konfigurierten Systeme zu löschen.

6) Ich habe mein Handbuch überarbeitet und aktualisiert, das im Jahr 2020 relevant ist.

[G] Nützliche Dokumentation

  1. Benutzerhandbuch von TrueCrypt (Februar 2012 DE)
  2. Dokumentation zu VeraCrypt
  3. /usr/share/doc/cryptsetup(-run) [локальный ресурс] (offizielle ausführliche Dokumentation zur Einrichtung von Verschlüsselung in GNU/Linux mit cryptsetup)
  4. Offizielle FAQ zu cryptsetup (kurze Dokumentation zur Einrichtung von Verschlüsselung in GNU/Linux mit cryptsetup)
  5. LUKS-Geräteverschlüsselung (Archlinux-Dokumentation)
  6. Ausführliche Beschreibung der Syntax von cryptsetup (Seite des Arch-Handbuchs)
  7. Ausführliche Beschreibung von crypttab (Seite des Arch-Handbuchs)
  8. Offizielle Dokumentation zu GRUB2.

Schlagworte: vollständige Festplattenverschlüsselung, Partitionsverschlüsselung, vollständige Festplattenverschlüsselung in Linux, vollständige Systemspeicherverschlüsselung LUKS1.

Nur registrierte Benutzer können an der Umfrage teilnehmen. Bitte melden Sie sich an.Sind Sie an Contour interessiert?

Verschlüsseln Sie?

  • 17,1%Ich verschlüssele alles, was möglich ist. Ich habe Paranoia.14

  • 34,2%Ich verschlüssele nur wichtige Daten.28

  • 14,6%Manchmal verschlüssle ich, manchmal vergesse ich.12

  • 34,2%Nein, ich verschlüssele nicht, das ist unpraktisch und teuer.28

82 Nutzer haben abgestimmt. 22 Nutzer haben sich enthalten.

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster