Vorverschlüsselungs-Wipe, warum?

25

Ich wollte wissen, warum, bevor Kali sich verschlüsselt und auf dem Laufwerk installiert:

  1. wischte das ganze Laufwerk
  2. füllte das Laufwerk mit 0s
  3. füllte das Laufwerk mit 1s
  4. füllte das Laufwerk mit zufälligen Daten
  5. wischte das Laufwerk erneut

Ich weiß, dass Kali nicht für die Installation gedacht ist, aber darum geht es hier nicht.

Wie nützlich ist dies vor der Installation, beispielsweise auf einer brandneuen Festplatte? Ich bin es gewohnt, das beim Entfernen der Festplatte zu sehen, nicht beim Installieren.

Taz8du29
quelle
Die Schritte 1-3 klingen ähnlich badblockswie bei der Überprüfung auf fehlerhafte Sektoren: Schreiben und Überprüfen von 0en, 1en, 01en, 10en. Für die Ganzplattenverschlüsselung ist es üblich, aus den Gründen von frostschultz (+1) eine verschlüsselte Nullfüllung (um verschlüsselte Daten überall zu schreiben) zu empfehlen, aber all dies vor der Verschlüsselung zu tun, ist ungewöhnlich, nachdem die Verschlüsselung dann ausgeführt wurde badblocksoder mkfs's ausgeführt -ccwürde das gleiche, und identifizieren Sie fehlerhafte Blöcke. Vielleicht ist jemand bei Kali ein bisschen paranoid, wenn es darum geht, dass Flash-Speicher (USB, SSD) nicht immer denselben Sektor am selben Ort schreiben und Sektoren zu / von Sicherungen
austauschen

Antworten:

36

Es hat keinen Sinn, mehrere Durchgänge durchzuführen. Einmal reicht.

Das Befüllen eines zu verschlüsselnden Laufwerks mit zufälligen Daten hat hauptsächlich zwei Verwendungszwecke:

  • alte, unverschlüsselte Daten loswerden
  • machen Sie freien Speicherplatz von verschlüsselten Daten nicht unterscheidbar

Wenn Sie verschlüsseln, soll normalerweise niemand Ihre Daten sehen. Wenn Sie also alte, unverschlüsselte Daten auf diesem Laufwerk haben, möchten Sie diese wahrscheinlich auch entfernen. Eine SSD erledigt dies möglicherweise einfacher und schneller blkdiscard. In der Tat Linuxmkfs schneidet alle Daten ab, ohne Sie um Bestätigung zu bitten, was jede Art von Datenwiederherstellung unmöglich macht. Es gibt zu viel TRIM in Linux.

Freier Speicherplatz ist eine Art Grauzone. Wenn Sie auf einer brandneuen Festplatte keine zufälligen Daten vorab eingeben, sind Sektoren, in die noch nie geschrieben wurde, Nullen. Wenn Sie auf einer SSD Discard / TRIM zulassen, ist der freie Speicherplatz ebenfalls Null.

Dies hat zwar keinerlei Auswirkungen auf Ihre Daten (sie sind immer noch verschlüsselt), zeigt jedoch an, über wie viel freien Speicherplatz / tatsächliche Daten Sie verfügen und wo sich dieser freie Speicherplatz / diese freien Daten befinden. Beispielsweise hexdump -Csieht eine verschlüsselte, zugeschnittene SSD folgendermaßen aus:

# hexdump -C /dev/ssd | grep -C 2 '^\*'
...
--
b3eabff0  dc c9 c7 89 16 ca d3 4f  a3 27 d6 df a0 10 c3 4f  |.......O.'.....O|
b3eac000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
b3f70000  5a 99 44 b5 9c 6b 1e 9c  81 cf 9a 43 b6 23 e9 0f  |Z.D..k.....C.#..|
b3f70010  2c e6 9a 5d 59 9b 46 5f  21 3f 4d 5f 44 5b 0a 6b  |,..]Y.F_!?M_D[.k|
--
b3f70ff0  5f 63 8d e8 c4 10 fd b1  a6 17 b5 7d 4a 57 09 68  |_c.........}JW.h|
b3f71000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
b3f72000  5d 1c 09 dd c9 6b 57 18  db 67 e1 35 81 57 45 8e  |]....kW..g.5.WE.|
b3f72010  0f a8 be 39 ae e5 5f cf  cf e3 8b a7 c1 25 1a a3  |...9.._......%..|
--
...

Daran kann man erkennen, dass ich freie Speicherplatzsegmente an der Adresse habe 0xb3eac000 .. 0xb3f70000, b3f71000 .. b3f72000... und das Gegenteil davon sind natürlich Datensegmente wie 0xb3f70000 .. b3f71000.

Was kannst du damit machen? Naja nichts(*).

(*) möchte ich sagen. Aber die Leute werden kreativ . Freie Speicherplatzmuster können verwendet werden, um den Typ des von Ihnen verwendeten Dateisystems abzuleiten (aufgrund dessen, wie / wo Metadaten gespeichert werden - wenn freier Speicherplatz vorhanden ist, in dem ext4eine seiner Metadatensicherungen gespeichert werden soll, ist dies höchstwahrscheinlich nicht der Fall ext4usw.). Manchmal wird sogar angezeigt, welche Distribution Sie verwenden (wenn Ihr Linux-Installationsprogramm das Dateisystem deterministisch ausfüllt, werden Dateien möglicherweise immer an denselben physischen Adressen gespeichert). Zu diesem Zeitpunkt weiß möglicherweise jemand, wo sich eine bestimmte Systemdatei befindet, und kann sie auf irgendeine Weise ändern / beschädigen. (Installer sollten die Art und Weise, in der sie Dateisysteme füllen, zufällig auswählen, um dies zu verhindern.)

Solche Überlegungen sind jedoch sehr theoretisch und mit einem sehr geringen Risiko verbunden, verglichen damit, wie anfällig die meisten verschlüsselten Installationen aus anderen Gründen sind. Bei den meisten Standardinstallationen ist es wahrscheinlicher / einfacher, nur die initramfs zu manipulieren, einen Keylogger zu installieren oder das ausgeführte System auszunutzen, als unkomplizierten Zugriff auf verschlüsselte Daten zu erhalten und diese zu analysieren und auf diese Weise etwas zu erreichen.

Sie sollten sich zuerst Gedanken über diese machen, bevor Sie sich Gedanken über die Freigabe von freiem Speicherplatz machen.

Bei SSD ist es völlig normal, TRIM zu aktivieren und so jederzeit freien Speicherplatz freizugeben. Dies gilt auch für Verschlüsselungslösungen, die auf einer Dateischicht und nicht auf einer Blockschicht arbeiten.

Mit HDD führen Sie die zufällige Löschung hauptsächlich auch auf einer neuen Festplatte durch, weil dies möglich ist, und es gibt keinen Grund, dies nicht zu tun, da dies keine Kosten (abgesehen von einer erstmaligen Einrichtung) und keine Nachteile mit sich bringt.

Frostschutz
quelle
1
Das Trimmen löscht nicht unbedingt den gesamten getrimmten NAND-Flash, da sich einige davon möglicherweise im gleichen Löschblock wie einige nicht getrimmte Sektoren befinden. (Löschblöcke sind größer als Schreibblöcke). Auch wenn mkfs vor dem Schreiben der neuen Metadaten eine gesamte Partition zuschneidet, sind Daten von anderen Partitionen (wie der EFI-Systempartition) weiterhin aktiv, und die SSD-Firmware kennt Partitionen nicht.
Peter Cordes
Ein Link zu en.wikipedia.org/wiki/Trim_(computing) könnte für Ihre Antwort hilfreich sein!
Gaurav