So verwenden Sie eine Datei als Luks -Geräteschlüssel

So verwenden Sie eine Datei als Luks -Geräteschlüssel

Luks ist das Akronym für Linux Unified Key Setup: Es ist die am häufigsten verwendete Verschlüsselungsimplementierung, die für Linux-Systeme verwendet wird und als Alternative zum DM-Krypt-Plain-Setup konfiguriert werden kann. Im Vergleich zu letzteren bietet es einige zusätzliche Funktionen wie Kennworthashing und Salze und die Möglichkeit, mehrere Passwörter im sogenannten Luks -Header zu speichern. In diesem Tutorial gehe ich davon aus, dass der Leser mit Luks eine gewisse Vertrautheit hat. Wenn Sie mehr über dieses Thema erfahren möchten, können Sie unseren grundlegenden Leitfaden zum Verschlingen von Linux -Partitionen mit Luks überprüfen. Die häufigste Möglichkeit, ein Luks -Gerät zu schützen, besteht darin, eine Passphrase zu verwenden. Es ist jedoch auch möglich, eine Datei als Schlüssel zu verwenden. In diesem Tutorial werden wir sehen, wie das geht. Lass uns gehen!

In diesem Tutorial lernen Sie:

  • So erstellen Sie eine Datei mit zufälligen Daten, die als Luks -Geräteschlüssel verwendet werden können
  • So fügen Sie einem Luks -Gerät einen Schlüssel hinzu
  • So entschlüsseln Sie automatisch ein Luks -Gerät am Start mit einer Datei als Schlüssel
So verwenden Sie eine Datei als Luks -Geräteschlüssel

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Jede Linux -Verteilung
Software Cryptsetup
Andere Root -Berechtigungen zum Zugriff auf verschlüsselte Blockgeräte
Konventionen # - Erfordert, dass gegebene Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden können sudo Befehl
US

Erstellen eines Luks -Containers



Für dieses Tutorial erstellen wir einen Luks -Container in einer mit Nullen gefüllten Datei, die wir mit DD generieren werden. So erstellen wir die Datei, die wir ausführen können:

$ sudo dd if =/dev/null von =/luks-container.IMG BS = 1M Anzahl = 300 

Im obigen Beispiel haben wir die verwendet /dev/null Datei als die dd Befehlseingangsquelle (/dev/null ist eine „spezielle“ Datei: Jedes Mal, wenn wir daraus lesen, gibt sie 0s zurück) und /Luks-Container.img als Ziel und Argument der DD von Operand. Wir haben DD angewiesen, 300 Blöcke 1 MIB -Größe unter Verwendung der Größe zu lesen und zu schreiben BS Und zählen Operanden. Um die Datei als Luks -Container zu verwenden, müssen wir sie verwenden Cryptsetup; Wir können rennen:

$ sudo cryptsetup luksformat --Type = luks1--hash = sha512-Keey-Größe = 512--Cipher = Aes-Xts-Plain64 /Luks-Container.img 

Der luksformat Der Unterkommando von Cryptsetup wird verwendet, um einen Luks-Behälter zu initialisieren und die anfängliche Passphrase festzulegen. Sobald wir den obigen Befehl ausführen, wird gewarnt, dass die Operation zerstörerisch ist, da sie alle vorhandenen Daten überschreibt. Wir werden aufgefordert zu bestätigen, dass wir die Operation ausführen möchten. wir schreiben JA (Großbuchstaben) und drücken Sie die Eingabetaste, um zu bestätigen:

WARNUNG! ========= Dies überschreibt Daten auf /luks-container.img unwiderruflich. Bist du dir sicher? (Geben Sie in Großbuchstaben 'Ja' ein): Ja 

Zu diesem Zeitpunkt werden wir gebeten, eine Passphrase bereitzustellen und zu bestätigen, die als erste der acht möglichen Geräteschlüssel verwendet wird:

Geben Sie Passphrase für /luks-container ein.IMG: Überprüfen Sie die Passphrase: 


Unser Luks -Behälter ist jetzt fertig. Wir können die verwenden Luksdump Unterbefehl von Cryptsetup zu fallen lassen Header Information:

$ sudo cryptsetup luksdump /luks-container.IMG Luks Header-Informationen für /luks-container.IMG-Version: 1 Cipher-Name: AES-Chiffre-Modus: XTS-Plain64 Hash Spec: SHA512 Nutzlastversatz: 4096 MK Bits: 512 MK Digest: 91 da 2e 2e 2e 7f ea ae a1 f7 81 55 cc b7 27 fd b1 ab f4 65 f1 mk mk Salz: F1 03 65 E2 F1 D7 4E 77 99 48 E8 57 75 65 DD 73 A3 EB A4 24 BE 36 9E 84 F7 84 C5 D3 94 2E D8 52 MK ITERATIONEN: 79054 UUID: EA23C244-2DC5-402-4022E02020202020202020202022E-B23E-D9DA319FF8A. Steckplatz 0: Aktivierte Iterationen: 1108430 Salz: 69 99 95 88 6e 2f E8 B9 D8 9c 91 36 B6 A2 55 C1 35 27 C7 DA 5d 9A 9E Schlüsselsteckplatz 1: Deaktivierter Schlüsselsteckplatz 2: Deaktivierter Schlüsselsteckplatz 3: Deaktivierter Schlüsselsteckplatz 4: Deaktivierter Schlüsselsteckplatz 5: Deaktiviertes Schlüsselsteckplatz 6: Deaktivierter Schlüsselsteckplatz 7: Deaktiviert 

In der obigen Ausgabe werden verschiedene Informationen angezeigt: die Verschlüsselungsname Und Verschlüsselungsmodus Zum Beispiel für das Gerät verwendet. Was uns in diesem Fall wirklich interessiert, ist die Schlüsselsteckplätze Abschnitt. Wie Sie sehen können, wird in diesem Fall nur der erste Schlüssel verwendet. In diesem Fall gibt es insgesamt 8 Slots; 7 sind verfügbar, um zusätzliche Schlüssel zu speichern. Wir werden einen von ihnen verwenden, um die Datei zu speichern, mit der wir das Luks -Gerät freischalten werden.

Erstellen einer Zufallsdata-Datei, die als Schlüssel verwendet werden soll

Jede vorhandene Datei kann als Luks -Geräteschlüssel verwendet werden. Es kann jedoch sicherer sein, eine Datei speziell für den Zweck aus zufälligen Daten zu erstellen. Um die Datei zu erstellen, greifen wir wieder auf die Ehrwürdigen dd Befehl, diesmal mithilfe /dev/urandom als Datenquelle:

$ sudo dd if =/dev/urandom von =/container-key bs = 512 count = 8 8+0 Aufzeichnungen in 8+0 Aufzeichnungen über 4096 Bytes (4.1 kb, 4.0 kib) kopiert, 0.000631541 s, 6.5 MB/s 


Der /dev/urandom Datei funktioniert ähnlich wie /dev/null Aber jedes Mal, wenn es gelesen wird, gibt es zufällige Daten zurück. Diesmal lesen wir 8 Blöcke von 512 Bytes erstellen eine Datei „gefüllt“ mit 4096 Bytes von Zufallsdaten.

Hinzufügen der Schlüsseldatei zum Luks-Gerät

Sobald die Datei erstellt wurde, können wir sie dem Luks -Header hinzufügen und als Schlüssel verwenden. Der Cryptsetup Unterkommando, der uns diese Aufgabe ausführen lässt, ist Luksaddkey.

Das erste Argument, das es einnimmt, ist das Luks -Gerät, für das der Schlüssel verwendet werden sollte. Der zweite, optional, ist der Weg von a Schlüsseldatei als Schlüssel verwendet werden. Wenn es weggelassen wird, wird der Benutzer aufgefordert, eine Passphrase bereitzustellen. Unter den vom Befehl akzeptierten Optionen gibt es --Taste: Damit können wir angeben, mit welchem ​​Schlüsselsteckplatz der Schlüssel gespeichert werden soll. In diesem Fall werden wir die Option weglassen, sodass der erste verfügbare Steckplatz verwendet wird (in diesem Fall Steckplatznummer 1).

Um die Datei als Luks -Schlüssel hinzuzufügen, führen wir aus:

$ sudo cryptsetup luksaddkey /luks-container.IMG /Containerschlüssel 

Wir werden gebeten, eine bereits vorhandene Passphrase für den Container bereitzustellen. Nachdem wir es getan haben, wird der neue Schlüssel hinzugefügt. Nachdem der obige Befehl erfolgreich ausgeführt wurde, wenn wir ausführen Luksdump Auch hier können wir beobachten, dass ein neuer Slot jetzt verwendet wird:

[…] Key Slot 0: Aktivierte Iterationen: 1108430 Salz: 69 99 95 88 6e 2f E8 B9 D8 9c 91 36 B6 A2 55 C1 35 27 C7 DA 5d 9A 9E AF -Streifen: 4000 Schlüsselsteckplatz 1: Aktivierte Iterationen: 921420 Salz: 62 54 F1 61 C4 D3 8d 87 A6 45 3e F4 E8 66 B3 95 E0 5d 5d 5d 78 18 6a E3 F0 AE 43 6d E2 24 14 BC 97 Schlüsselmaterial Offset: Offset: 512 AF -Streifen: 4000 Schlüsselsteckplatz 2: Deaktivierter Schlüsselschlitz 3: Deaktivierter Schlüsselsteckplatz 4: Deaktivierter Schlüsselschlitz 5: Deaktivierter Schlüsselsteckplatz 6: Deaktivierter Schlüsselplatz 7: Deaktiviert […] 

Öffnen Sie den Luks -Behälter

Um zu überprüfen, ob der Schlüssel funktioniert, können wir jetzt versuchen, den Luks -Container mit ihm zu öffnen. Zu diesem Zweck verwenden wir die Luksopen Unterkommando von Cryptsetup: Es erfordert zwei obligatorische Argumente:

  1. Das Luks -Gerät
  2. Der Name, mit dem das Gerät nach dem Öffnen abgebildet ist.

Wie können wir angeben, dass wir eine Datei zum Öffnen des Geräts verwenden möchten?? Einfach! Wir benutzen das
--Schlüsseldatei Option und übergeben Sie den Pfad zur Schlüsseldatei als Argument. In unserer
Der Fall, um das Gerät zu öffnen, ist der vollständige Befehl zum Ausführen:

$ sudo Cryptsetup Luksopen /Luks-Container.IMG Luks-Container-Krypt-Keey-file =/Container-Key 


Wenn alles wie erwartet läuft, sollten wir einen Eintrag für den geöffneten Container unter dem finden /Dev/Mapper Verzeichnis in diesem Fall: /Dev/Mapper/Luks-Container-Crypt.

Übrigens können wir den Container jetzt genauso behandeln, wie wir es mit jedem Blockgerät tun würden: Vielleicht können wir ein Dateisystem darauf erstellen und es montieren:

sudo mkfs.Ext4/Dev/Mapper/Luks-Container-Krypt && sudo montage/dev/mapper/luks-container-crypt/medien 

Öffnen Sie einen Luks -Container automatisch beim Start

Sobald wir gelernt haben, wie man eine Datei als Luks -Containerschlüssel verwendet. Es ist für sich selbst, dass dies ein Setup ist, das Sicherheitsrisiken darstellt, daher sollte es sehr sorgfältig verwendet werden! Zumindest an unsicheren Stellen sollte die zum Entsperren des Geräts verwendete Datei nur vom Stammbenutzer zugegriffen werden und selbst auf einem verschlüsselten Dateisystem gespeichert werden Tür, aber den Schlüssel, wo er von irgendjemandem erreicht werden kann).

Um so zu machen, dass ein Luks -Container beim BOOT automatisch entsperrt wird, müssen wir die erforderlichen Informationen innerhalb der /etc/crypttab Datei. Diese Datei wird verwendet, um verschlüsselte Blockgeräte zu beschreiben, die während des Systemstarts eingerichtet sind. Die in der Datei verwendete Syntax ist ziemlich leicht zu verstehen. In jeder Zeile, die wir hinzufügen, müssen wir in der Reihenfolge angeben:

  1. Der Name, der für die Zuordnung des Geräts verwendet wird (im vorherigen Beispiel haben wir verwendet Luks-Container-Krypt)
  2. Das Gerät, das den Luks -Container veranstaltet, der geöffnet werden sollte
  3. Das Gerätkennwort (optional)
  4. Die zu verwendenden Optionen (optional)

In diesem Fall würden wir diese Zeile eingeben:

Luks-Container-Krypt /Luks-Container.IMG /Containerschlüssel Luks 

Im nächsten Start wird das Gerät automatisch entsperrt!

Schlussfolgerungen

In diesem Tutorial haben wir gelernt, wie wir eine Datei als Schlüssel verwenden können, um einen Luks -Container freizuschalten. Obwohl jede Datei für diesen Zweck verwendet werden kann, haben wir gesehen Luksaddkey Befehl. Schließlich haben wir gesehen, wie es möglich ist, den Luks -Container automatisch beim Start zu entsperren, indem wir eine Schlüsselfile verwenden, um die erforderlichen Informationen innerhalb des /etc/crypttab Datei, und wir haben gesehen, warum dies ein mögliches Sicherheitsrisiko darstellen kann.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Wie man Passwörter unter Linux hasht
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Bester PDF -Leser für Linux
  • So verwenden Sie Luks mit einem abgelösten Header
  • Kann Linux Viren bekommen?? Erforschung der Verwundbarkeit von Linux…
  • Volldiskette Verschlüsselung mit Veracrypt auf Ubuntu Linux
  • Linux -Download
  • Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…