Shufflecake, ein Toolkit zum Erstellen versteckter verschlüsselter Festplattenpartitionen, wurde veröffentlicht

Das Sicherheitsprüfungsunternehmen Kudelski Security hat ein Tool namens Shufflecake veröffentlicht, mit dem Sie versteckte Dateisysteme erstellen können, die über den verfügbaren freien Speicherplatz auf vorhandenen Partitionen verteilt sind und nicht von zufälligen Restdaten zu unterscheiden sind. Partitionen werden so erstellt, dass es ohne Kenntnis des Zugriffsschlüssels selbst bei forensischen Analysen schwierig ist, ihre Existenz nachzuweisen. Der Code der Dienstprogramme (shufflecake-userland) und des Linux-Kernelmoduls (dm-sflc) ist in C geschrieben und wird unter der GPLv3-Lizenz vertrieben, was es aufgrund der Inkompatibilität mit unmöglich macht, das veröffentlichte Kernelmodul in den Haupt-Linux-Kernel aufzunehmen die GPLv2-Lizenz, unter der der Kernel bereitgestellt wird.

Das Projekt ist als fortschrittlichere Lösung als Truecrypt und Veracrypt zum Verstecken von zu schützenden Daten positioniert, die native Unterstützung für die Linux-Plattform bietet und es Ihnen ermöglicht, bis zu 15 versteckte Partitionen auf dem Gerät zu platzieren, die ineinander verschachtelt sind, um das Parsen zu verwirren ihrer Existenz. Wenn die Verwendung von Shufflecake selbst kein Geheimnis ist, was sich beispielsweise am Vorhandensein der entsprechenden Dienstprogramme im System ablesen lässt, kann die Gesamtzahl der erstellten versteckten Partitionen nicht ermittelt werden. Die erstellten versteckten Partitionen können nach Belieben des Benutzers formatiert werden, um jedes Dateisystem aufzunehmen, beispielsweise ext4, xfs oder btrfs. Jede Partition wird als separates virtuelles Blockgerät mit eigenem Entsperrschlüssel behandelt.

Um die Spuren zu verwirren, wird vorgeschlagen, das Verhaltensmodell der „plausiblen Leugnung“ zu verwenden, dessen Kern darin besteht, dass wertvolle Daten als zusätzliche Schichten in verschlüsselten Abschnitten mit weniger wertvollen Daten verborgen werden und so eine Art verborgene Abschnittshierarchie bilden. Bei Druck kann der Besitzer des Geräts den Schlüssel zur verschlüsselten Partition preisgeben, aber andere Partitionen (bis zu 15 verschachtelte Ebenen) können in dieser Partition verborgen sein, und es ist problematisch, deren Vorhandensein zu bestimmen und zu beweisen.

Das Verstecken wird erreicht, indem jede Partition als Satz verschlüsselter Slices erstellt wird, die an zufälligen Positionen auf dem Speichergerät platziert werden. Jedes Slice wird dynamisch erstellt, wenn zusätzlicher Speicherplatz in der Partition benötigt wird. Um die Analyse zu erschweren, werden Schichten verschiedener Abschnitte abgewechselt, d. h. Shufflecake-Abschnitte sind nicht mit zusammenhängenden Regionen verknüpft und Slices aus allen Abschnitten werden gemischt. Informationen über verwendete und freie Slices werden in einer Standortkarte gespeichert, die jeder Partition zugeordnet ist und auf die durch einen verschlüsselten Header verwiesen wird. Die Karten und der Header sind verschlüsselt und ohne Kenntnis des Zugriffsschlüssels nicht von zufälligen Daten zu unterscheiden.

Der Header ist in Slots unterteilt, von denen jeder seinen eigenen Abschnitt und zugehörige Slices definiert. Die Slots im Header sind gestapelt und rekursiv verknüpft – der aktuelle Slot enthält den Schlüssel zum Entschlüsseln der Parameter des vorherigen Abschnitts in der Hierarchie (des weniger versteckten), sodass ein einziges Passwort zum Entschlüsseln aller weniger versteckten Abschnitte verwendet werden kann, die damit verbunden sind den ausgewählten Abschnitt. Jede weniger versteckte Partition behandelt die Slices verschachtelter Partitionen als frei.

Standardmäßig haben alle Shufflecake-Unterabschnitte dieselbe sichtbare Größe wie der Abschnitt der obersten Ebene. Wenn es beispielsweise drei Partitionen auf einem 1-GB-Gerät gibt, ist jede davon für das System als 1-GB-Partition sichtbar und der gesamte verfügbare Speicherplatz wird auf alle Partitionen aufgeteilt – wenn die Gesamtgröße der gespeicherten Daten größer ist Wenn die tatsächliche Größe des Geräts überschritten wird, wird ein E/A-Fehler ausgegeben.

Verschachtelte Abschnitte, die nicht geöffnet sind, nehmen nicht an der Platzzuweisung teil, d. h. Ein Versuch, eine Partition der obersten Ebene zu füllen, führt dazu, dass Daten in verschachtelten Partitionen geschreddert werden, es ist jedoch nicht möglich, deren Vorhandensein durch Analyse der Größe der Daten aufzudecken, die in der Partition abgelegt werden können, bevor der Fehler auftritt (it Wird davon ausgegangen, dass die oberen Partitionen unveränderliche Daten enthalten, um die Aufmerksamkeit abzulenken, und niemals separat verwendet werden, und die reguläre Arbeit immer mit dem aktuellsten verschachtelten Abschnitt ausgeführt wird, impliziert das Schema selbst, dass es wichtiger ist, das Geheimnis der Existenz zu wahren Daten als diese Daten zu verlieren).

Tatsächlich werden immer 15 Shufflecake-Partitionen erstellt – das Benutzerpasswort wird an die verwendeten Partitionen angehängt und die nicht verwendeten Partitionen werden mit einem zufällig generierten Passwort versehen (es ist unmöglich nachzuvollziehen, wie viele Partitionen tatsächlich verwendet werden). Wenn Shufflecake-Partitionen initialisiert werden, wird die für ihre Platzierung zugewiesene Festplatte, Partition oder das virtuelle Blockgerät mit zufälligen Daten gefüllt, was es unmöglich macht, Shufflecake-Metadaten und -Daten vor dem allgemeinen Hintergrund zu identifizieren.

Die Shufflecake-Implementierung weist eine relativ hohe Leistung auf, ist jedoch aufgrund des Overheads im Durchsatz etwa doppelt so langsam wie die Festplattenverschlüsselung auf Basis des LUKS-Subsystems. Durch die Verwendung von Shufflecake fallen außerdem zusätzliche Kosten für RAM und Speicherplatz für die Speicherung von Dienstdaten an. Der Speicherverbrauch wird auf 60 MB pro Partition und der Speicherplatz auf 1 % der Gesamtgröße geschätzt. Zum Vergleich: Die WORAM-Technik mit ähnlichem Zweck führt zu einer 5- bis 200-fachen Verlangsamung bei einem Verlust von 75 % des nutzbaren Speicherplatzes.

Das Toolkit und das Kernelmodul wurden nur auf Debian und Ubuntu mit den Kerneln 5.13 und 5.15 getestet (unterstützt auf Ubuntu 22.04). Es wird darauf hingewiesen, dass das Projekt weiterhin als funktionierender Prototyp betrachtet werden sollte, der nicht zur Speicherung wichtiger Daten verwendet werden sollte. Für die Zukunft planen wir weitere Optimierungen hinsichtlich Leistung, Zuverlässigkeit und Sicherheit sowie die Möglichkeit, von Shufflecake-Partitionen zu booten.

Source: opennet.ru

Kommentar hinzufügen