Wie widerstandsfähig sind VeraCrypt- und LUKS-verschlüsselte Volumes gegen Datenkorruption?

18

Die Frage wurde teilweise beantwortet, aber genau danach suche ich immer noch nicht. Siehe Update 1 unten bere

Ich habe vor, einige Dateisysteme mit VeraCrypt und LUKS zu verschlüsseln, befürchte jedoch, dass ich die Partitionen bei einem einzelnen Problem nicht erneut mounten und somit alle darin gespeicherten Daten verlieren könnte. (aufgrund beschädigter Sektoren / Blöcke, Stromausfall während eines Schreibvorgangs, Dateisystemfehler usw.)

VeraCrypt hat zwar die Reparaturwerkzeuge von TrueCrypt gefälscht, aber ich zähle nicht darauf und suche mehr nach echten Fällen.

Ich kenne mich auch mit RAID und Backups / Tresoren aus, aber das ist nicht das, wonach ich suche.

Die Frage ist also: Wie robust sind verschlüsselte Partitionen selbst mit VeraCrypt und LUKS?

Update 1 :

Meine Frage betrifft eher die Ausfallsicherheit der verschlüsselten Partition und ihrer Daten als das Speichern des Hauptschlüssels, der Metadaten oder der Header. Das Problem ähnelt einem soliden 7zip-Archiv: Wenn ein einzelnes Bit in der Mitte beschädigt ist, verlieren Sie das gesamte Archiv.

Werden verschlüsselte Partitionen genauso anfällig sein? (ohne Hauptschlüssel, Metadaten und Header)

PS: Tut mir leid, wenn ich nicht sofort antworte, arbeite ich und reise um die Welt - so wird dieser Beitrag zum Thema - und habe oft mit zeitraubenden Geschäften zu kämpfen. Aber ich werde definitiv antworten.

X.LINK
quelle

Antworten:

13

In der Praxis ist die Verschlüsselung fast so ausfallsicher wie ohne Verschlüsselung, solange Sie den Hauptschlüssel und die Metadaten ordnungsgemäß sichern .

Abgesehen von Metadaten würde die Beschädigung nur den Block des beschädigten Bits betreffen, in den meisten Fällen nur 16 Bytes.

In den meisten Fällen, in denen Daten beschädigt werden, haben Sie mit dem Schlüssel und den Tools (z. B. Ihrem Kennwort und Veracrypt / LUKS) den gleichen Zugriff wie mit einer unverschlüsselten Festplatte, genau wie bei der normalen Verwendung einer verschlüsselten Festplatte. Durch die Verschlüsselung würde nur ein zusätzlicher Schritt (Öffnen einer verschlüsselten Partition) als gewöhnlich hinzugefügt. In diesem Fall verhält es sich also wie nicht verschlüsselte Daten.

Bei Veracrypt oder Luks müssen Sie den Hauptschlüssel auf der Festplatte speichern, die mit Ihrem Kennwort verschlüsselt ist. Wenn Sie diesen Sektor (diese Sektoren) beschädigen, gehen permanente Daten verloren. Dies lässt sich leicht mit einem Master-Key-Backup (wenige Kilobyte groß) lösen, das mit beiden Programmen problemlos möglich ist, und es wird jedem dringend empfohlen.

Details zu Nicht-Metadaten

Sowohl Veracrypt als auch Luks verwenden heute XTS. In diesem Modus wird für jeden Block ein Schlüssel berechnet. Um einen Block zu verschlüsseln, verwenden iSie zur Vereinfachung einen Schlüssel, der mit den Hauptschlüsseln und der Blocknummer generiert wurde. Somit ist die Verschlüsselung eines Blocks unabhängig von einem anderen. Wenn Sie Informationen verfälschen, werden sie auf diesen Block beschränkt.

In XTS wird der Block in Unterblöcke (normalerweise 16 Byte) aufgeteilt, ein Schlüssel erstellt und dieser Unterblock damit verschlüsselt. Das heißt, wenn wir etwas daran ändern, wären nur diese 16 Bytes betroffen.

Als Test, wenn ein einzelnes Bit in einem Luks-Volume geändert wird, werden 16 Byte der Originaldatei in Kauderwelsch geändert, die anderen 496 bleiben jedoch unverändert. In einer 7zip-Datei wird eine Stream-Methode verwendet, bei der alle Bytes verkettet sind. Eine Änderung von einem Byte wirkt sich also auf alle verbleibenden Bytes aus. Dies ist hier nicht der Fall.

Einige halten dies für ein Problem, da Sie mit einer Genauigkeit von 16 Byte wissen können, wann und wo Sie einen Klartext ändern, indem Sie nur die verschlüsselten Daten vergleichen.

Weitere interessante Informationen dazu finden Sie unter diesen Links:

/crypto/6185/what-is-a-tweakable-block-cipher

/security/39306/how-secure-is-ubuntus-default-full-disk-encryption

https://en.wikipedia.org/wiki/Disk_encryption_theory

Details zum Hauptschlüssel

LUKS

LUKS haben einige Sektoren am Anfang der Partition (oder Festplatte) mit Metadaten, in denen Verschlüsselungsmethoden, andere Parameter und 8 Schlüsselsteckplätze gespeichert sind. Zum Ver- und Entschlüsseln der Festplatte wird ein Hauptschlüssel verwendet , eine große Zufallszahl, die beim Erstellen eines LUKS-Containers generiert wird. Zum Speichern wird der Hauptschlüssel mit Ihrem Kennwort verschlüsselt, indem eine kryptografische Hash-Funktion mehrmals über das Kennwort iteriert und ein bestimmter Schlüssel für diesen Steckplatz generiert wird. Sie können 8 verschiedene Kennwörter für dieselbe Festplatte festlegen, wobei jedes den Hauptschlüssel mit einem anderen Kennwort in einem Steckplatz verschlüsselt. Wenn Sie das Kennwort ändern, müssen Sie lediglich den Hauptschlüssel verschlüsseln und nicht die gesamte Partition ändern.

Wenn also diese Slots und Metadaten beschädigt sind, können Sie den Hauptschlüssel, der wirklich zum Entschlüsseln verwendet wird, nicht wiederherstellen, da alle Daten auf der Festplatte verloren gehen. Dies ist eine einfache Möglichkeit, alle Ihre Daten schnell zu zerstören. Wenn Sie jedoch eine Sicherungskopie des Volume-Headers haben, können Sie diese ganz einfach wiederherstellen.

Unten finden Sie eine Kopie der LUKS-FAQ zu Backups, die aus https://gitlab.com/cryptsetup/cryptsetup/wikis/FrequentlyAskedQuestions#6-backup-and-data-recovery extrahiert wurden

6.2 Wie sichere ich einen LUKS-Header?

Während Sie einfach die entsprechende Anzahl von Bytes vom Start der LUKS-Partition kopieren können, ist die Verwendung der Befehlsoption "luksHeaderBackup" von cryptsetup der beste Weg. Dies schützt auch vor Fehlern, wenn bei der Erstellung von LUKS-Partitionen nicht standardmäßige Parameter verwendet wurden. Beispiel:

cryptsetup luksHeaderBackup --header-backup-file <file> <device>

Verwenden Sie zum Wiederherstellen den umgekehrten Befehl, d. H

cryptsetup luksHeaderRestore --header-backup-file <file> <device>

Wenn Sie sich nicht sicher sind, ob ein Header wiederhergestellt werden soll, erstellen Sie zuerst ein Backup des aktuellen Headers! Sie können die Header-Datei auch testen, ohne sie wiederherzustellen, indem Sie die Option --header für einen getrennten Header wie diesen verwenden:

cryptsetup --header <file> luksOpen <device> </dev/mapper/ -name>

Wenn das Ihre Schlüssel-Menge entsperrt, sind Sie gut. Vergessen Sie nicht, das Gerät wieder zu schließen.

Unter Umständen (beschädigter Header) schlägt dies fehl. Führen Sie dann die folgenden Schritte aus:

Bestimmen Sie zuerst die Hauptschlüsselgröße:

cryptsetup luksDump <device>

gibt eine Linie der Form

MK bits:        <bits>

mit Bits gleich 256 für die alten Standardeinstellungen und 512 für die neuen Standardeinstellungen. 256 Bit entsprechen einer Gesamtgröße des Headers von 1'052'672 Byte und 512 Bit einer Größe von 2 MB. (Siehe auch Punkt 6.12) Wenn luksDump fehlschlägt, gehen Sie von 2 MB aus. Beachten Sie jedoch, dass Sie bei einer Wiederherstellung möglicherweise auch die ersten 1 MB des Dateisystems wiederherstellen. Ändern Sie das Dateisystem nicht, wenn Sie die Headergröße nicht ermitteln konnten! Damit ist das Wiederherstellen einer zu großen Header-Sicherung immer noch sicher.

Zweitens, speichern Sie den Header in die Datei. Es gibt viele Möglichkeiten, ich bevorzuge die folgenden:

head -c 1052672 <device>  >  header_backup.dmp

oder

head -c 2M <device>  >  header_backup.dmp

für einen 2MiB Header. Überprüfen Sie die Größe der Dump-Datei, um sicherzugehen. Um eine solche Sicherung wiederherzustellen, können Sie luksHeaderRestore versuchen oder einen einfacheren Vorgang ausführen

cat header_backup.dmp  >  <device>

Veracrypt

Veracrypt ähnelt LUKS. Ich bin nicht daran gewöhnt, wie ich es bei Truecrypt getan habe, aber die allgemeine Idee ist gültig.

Veracrypt verfügt nur über einen Schlüsselsteckplatz, sodass Sie nicht mehr als ein Kennwort gleichzeitig haben können. Sie können jedoch ein verborgenes Volume haben: Es speichert die Metadaten am Ende der Partition (oder des Datenträgers oder der Datei). Das verborgene Volume hat einen anderen Hauptschlüssel und verwendet das Ende der Partition als überlappenden Speicherplatz. Die Idee, die Sie sichern sollten, ist die gleiche. Dies kann mit Tools -> Backup Volume Headerund erfolgen Tools -> Restore Volume Header. Bei der Systemverschlüsselung wurde eine bootfähige Festplatte mit Schlüsselsicherung erstellt, die den Truecrypt-Loader und die Schlüssel wiederherstellt, falls Schäden auftreten. Dies geschieht, bevor etwas verschlüsselt wird, und soweit ich weiß, geht Veracrypt genauso vor.

Weitere Informationen finden Sie unter folgendem Link: https://veracrypt.codeplex.com/wikipage?title=Program%20Menu

Sicherheitsüberlegungen zu Sicherungsschlüsseln

Wenn Sie zum Beispiel ein durchgesickertes Kennwort haben und das Volume-Kennwort in ein neues, sicheres Kennwort ändern, kann immer noch jemand, der Zugriff auf das Backup hat, die Dateien mit dem alten Kennwort entschlüsseln. Bei der Sicherung handelt es sich im Wesentlichen um den mit dem (alten) Passwort verschlüsselten Hauptschlüssel. Wenn Sie also Passwörter ändern, müssen Sie auch ein neues Backup erstellen und die älteren zerstören. Und Daten dauerhaft zu zerstören, kann sehr schwierig sein.

Bei jedem Backup, das Sie mit diesem Passwort haben, besteht die Möglichkeit, Daten mit diesem Passwort zu entschlüsseln. Dies kann beispielsweise in Veracrypt verwendet werden, indem ein "universelles Passwort" (wie in einem Unternehmen) verwendet, gesichert und durch ein anderes Passwort ersetzt wird. Also die IT-Abteilung. Der Zugriff auf dieses Volume kann wiederhergestellt werden, selbst wenn jemand das Kennwort verloren hat (denken Sie an ein Hauptkennwort, verwechseln Sie es jedoch nicht mit dem früheren Hauptschlüssel).

Letzte Gedanken (TL; DR)

Die Wahrscheinlichkeit, den bestimmten Sektor mit dem Hauptschlüssel zu beschädigen, ist geringer als bei einem vollständigen Festplattenausfall. Wenn diese Daten wichtig sind, sollten Sie stattdessen nur die Volume-Header (Hauptschlüssel) sichern.

Und die Beschädigung von Daten verbreitet sich nur wenig (16 Bytes), was für die meisten Verwendungen akzeptabel ist.

Ein fehlerhafter Block in der Mitte der Partition oder der Festplatte wirkt sich also nur auf diesen Block aus. Und ein paar Bitfehler in einem Sektor sind auf diesen Sektor beschränkt und wirken sich nicht einmal vollständig auf einen 512-Byte-Sektor aus.

Update (23/01/2017): Weitere Informationen basierend auf den OP-Kommentaren.

Allan Deamon
quelle
1
Wow, das war eine sehr ausführliche und informative Antwort, vielen Dank! Meine Frage bezieht sich jedoch eher auf die Ausfallsicherheit der verschlüsselten Partition und der Daten selbst als auf den Hauptschlüssel und die Metadaten. Das Problem ähnelt einem soliden 7zip-Archiv: Wenn ein einzelnes Bit in der Mitte beschädigt ist, verlieren Sie das gesamte Archiv. Funktionieren verschlüsselte Partitionen genauso? (Hauptschlüssel und Metadaten ausgeschlossen)
X.LINK
4

Im Folgenden habe ich einige Informationen zur Ausfallsicherheit von VeraCrypt / TrueCrypt-Containern zusammengestellt.

Bei Veracrypt-Datenbeschädigung :

TC / VC speichert den Volume-Header an zwei Stellen: am Anfang und am Ende des Volumes. Der am Anfang ist der Haupt- und der am Ende ist für die Sicherung. Dieser Mechanismus ist normalerweise ausreichend, um den Zugriff zu ermöglichen, wenn ein Teil des Laufwerks beschädigt oder beschädigt ist, da der Schaden häufig lokal ist. Wenn der Schaden sowohl am Anfang als auch am Ende des Laufwerks auftritt, ist das Laufwerk mit ziemlicher Sicherheit tot.

Beachten Sie, dass bei einem beschädigten oder beschädigten Laufwerk derselbe Datenverlust auftritt, als wenn Sie keine Verschlüsselung verwenden. Dies bedeutet, dass die gelesenen Daten möglicherweise beschädigt sind, auch wenn Sie das Volume bereitstellen können. Denken Sie also immer an die Datensicherung, da die Verschlüsselung nicht vor Datenkorruption schützt.

Aus den VeraCrypt FAQ :

Was passiert, wenn ein Teil eines VeraCrypt-Volumes beschädigt wird?

In verschlüsselten Daten beschädigt ein beschädigtes Bit normalerweise den gesamten Chiffretextblock, in dem es aufgetreten ist. Die von VeraCrypt verwendete Chiffretext-Blockgröße beträgt 16 Byte (dh 128 Bit). Die von VeraCrypt verwendete Funktionsweise stellt sicher, dass die verbleibenden Blöcke nicht betroffen sind, wenn Daten innerhalb eines Blocks beschädigt werden.

Was kann ich tun, wenn das verschlüsselte Dateisystem auf meinem VeraCrypt-Volume beschädigt ist?

Das Dateisystem in einem VeraCrypt-Volume kann auf dieselbe Weise beschädigt werden wie jedes normale unverschlüsselte Dateisystem. In diesem Fall können Sie die mit Ihrem Betriebssystem gelieferten Reparaturwerkzeuge für Dateisysteme verwenden, um das Problem zu beheben. In Windows ist es das Tool 'chkdsk'. VeraCrypt bietet eine einfache Möglichkeit, dieses Tool auf einem VeraCrypt-Volume zu verwenden: Klicken Sie mit der rechten Maustaste auf das bereitgestellte Volume im VeraCrypt-Hauptfenster (in der Laufwerksliste) und wählen Sie im Kontextmenü die Option "Dateisystem reparieren".

Kleine Datenverfälschungen sollten dann nur lokale Auswirkungen haben und den gesamten Container nicht zerstören. Ich rate jedoch davon ab, ein ganzes Volume / eine ganze Partition und insbesondere das Systemlaufwerk zu verschlüsseln, da die Wiederherstellung dann komplizierter sein kann. Erstellen Sie gute Backups, insbesondere für den Volume-Header. Und denken Sie daran, dass genau wie bei einem echten Datenträger oder Ordner eine Beschädigung der Datenträger- / Datei-Header die Datenwiederherstellung erschweren und möglicherweise erweiterte Dienstprogramme erfordern kann.

Ich glaube, dass LUKS keinen zweiten Header auf der Festplatte hat, deshalb muss man noch vorsichtiger sein, wenn es darum geht, ein Backup zu erstellen.

Harrymc
quelle
Ich habe die gelesen, aber das ist immer noch ein bisschen verwirrend. Bedeutet das, abgesehen von Wiederherstellungen, die über die Header und Dateisysteme von Containern in Containern vorgenommen wurden, dass ein fehlerhafter Sektor mitten in einem Container selbst nicht dazu führen kann, dass er vollständig tot ist und nicht mehr eingehängt werden kann? Wie ich es richtig verstehen kann, funktioniert ein Chiffretext-Block genauso wie in einem nicht-soliden 7-Zip-Archiv / unverschlüsseltes ext3, das noch einbindbar ist und physisch fehlerhafte Sektoren hat?
X.LINK
Ich kann nicht für verschlüsselte Datenträger sprechen, aber das Ändern eines einzelnen Bits in einem verschlüsselten Chiffretext spuckt nur den Müll für den gesamten Block aus. Die Blockgröße kann 128 Byte oder 256 Byte oder 4 KB betragen. Es wird nicht verhindern, dass der Rest des Chiffretexts entschlüsselt wird. Es gibt keine Möglichkeit für den Verschlüsselungsalgorithmus zu wissen, dass der Müll schlecht ist. Es gibt keine Prüfsumme oder irgendetwas (für AES-CBC). Wenn sich dieser Block in einer Textdatei befand, sieht er im Editor wie Müll aus. Wenn es Teil der Verzeichnisstruktur war, sieht das Dateisystem verstümmelt aus und erfordert chkdsk.
Chloe
@ X.LINK: Ein fehlerhaftes Bit beschädigt den gesamten "Sektor" von 16 Bytes. Abhängig davon, wo sich dieser Sektor befindet, kann das Ergebnis nichts sein, wenn er in einen nicht genutzten Bereich fällt oder an dieser Stelle in der Datei oder im schlimmsten Fall in einer fehlerhaften Verzeichnisstruktur, die die Verwendung von Wiederherstellungsdienstprogrammen erfordert. Dies ist einer physischen Festplatte sehr ähnlich, auf der Sie nicht verwendete Sektoren, Dateidaten und Festplattentabellen haben und bei der Ihre Sicherung ähnlichen Richtlinien folgen sollte.
Harrymc
0

Dank aller Antworten ist die endgültige Antwort zu 100% vollständig.

Heutzutage habe ich nicht viel Zeit, daher bearbeite ich meine "eigene" Antwort später. Da alle Antworten, die die Leute hier gaben, völlig nützlich sind, wird dies nur eine Zusammenfassung dessen sein, was sie gesagt haben, und auch meine Ergebnisse.

Wie auch immer, hier ist eine meiner Erkenntnisse, die eine Menge Verwirrung entlarven wird, die ich getroffen habe, und die hauptsächlich betraf ... was Block bedeutet, da es ein Begriff ist, der zu häufig und fälschlicherweise verwendet wird:

https://sockpuppet.org/blog/2014/04/30/you-dont-want-xts/

Außerdem finden Sie hier eine "Standardmethode", um über Dinge zu sprechen und die "Block" -Verwirrung zu vermeiden:

/superuser/1176839/was-ist-jeder-mögliche- Name-von-Festplattenstrukturteilen

Kurz gesagt, Sie können einen verschlüsselten Block mit dem Wort "400" in "800" ändern. Dies bedeutet, dass die verschlüsselte Ebene auf Blockebene nicht fest ist, anstatt zu glauben, dass "dies wie ein normales Dateisystem funktioniert" (dh Veracrypt FAQ).

Außerdem hätte ich vor zwei Monaten auf diesen Link stoßen sollen:

/unix/321488/vollbild-der-internen-hdd-laufwerk-dd-dd-rettung-mit-truecrypt-bad-sektoren/

Da VeraCrypt eine TrueCrypt-Gabel ist, funktioniert es mit Sicherheit genauso.

PS:

Jede weitere Antwort ist immer noch willkommen und wird zu meiner "eigenen" Antwort hinzugefügt.

X.LINK
quelle