Kudelski Security, ein Unternehmen für Sicherheitsaudits, hat das Shufflecake-Toolkit veröffentlicht. Dieses ermöglicht die Erstellung versteckter Dateisysteme, die sich über den verfügbaren freien Speicherplatz in bestehenden Partitionen erstrecken und von zufälligen Restdaten nicht zu unterscheiden sind. Die Partitionen werden so erstellt, dass ihre Existenz selbst bei forensischen Analysen ohne Kenntnis des Zugriffsschlüssels schwer nachzuweisen ist. Der Code für die Hilfsprogramme (shufflecake-userland) und das Kernelmodul ist verfügbar. Linux (dm-sflc) ist in C geschrieben und wird unter der GPLv3-Lizenz vertrieben, was es unmöglich macht, ein veröffentlichtes Kernelmodul in den Hauptkernel einzubinden. Linux aufgrund von Inkompatibilität mit der GPLv2-Lizenz, unter der der Kernel vertrieben wird.
Das Projekt positioniert sich als eine fortschrittlichere Lösung zum Verbergen schutzbedürftiger Daten als Truecrypt und Veracrypt, die über native Plattformunterstützung verfügen. Linux Es ermöglicht die Platzierung von bis zu 15 versteckten Partitionen auf dem Gerät, die so verschachtelt sind, dass ihre Existenz verschleiert wird. Die Verwendung von Shufflecake selbst ist kein Geheimnis, wie beispielsweise die Anwesenheit der entsprechenden Dienstprogramme im System erkennen lässt. Die Gesamtzahl der erstellten versteckten Partitionen lässt sich jedoch nicht ermitteln. Die erstellten versteckten Partitionen können nach Belieben des Benutzers mit jedem beliebigen Dateisystem wie ext4, xfs oder btrfs formatiert werden. 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, die jeweils einen eigenen Abschnitt und die zugehörigen Slices definieren. 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 (weniger verborgen), wodurch ein Passwort zum Entschlüsseln aller weniger verborgenen Abschnitte verwendet werden kann, die dem ausgewählten Abschnitt zugeordnet sind. Jeder weniger verborgene Abschnitt behandelt die Slices verschachtelter Abschnitte 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 Benutzerkennwort wird den verwendeten Partitionen zugewiesen, und die nicht verwendeten Partitionen erhalten ein zufällig generiertes Kennwort (es ist unmöglich zu bestimmen, wie viele Partitionen tatsächlich verwendet werden). Wenn Shufflecake-Partitionen initialisiert werden, wird die ihnen zugewiesene Festplatte, Partition oder das virtuelle Blockgerät mit zufälligen Daten gefüllt, wodurch es unmöglich wird, die Shufflecake-Metadaten und -Daten vom allgemeinen Hintergrund zu unterscheiden.
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 im Betrieb unter folgendem Pfad getestet: Debian и Ubuntu mit Kerneln 5.13 und 5.15 (unterstützt die Arbeit in Ubuntu 22.04. April). Es wird darauf hingewiesen, dass das Projekt derzeit als funktionsfähiger Prototyp zu betrachten ist und nicht zur Speicherung sensibler Daten verwendet werden sollte. Weitere Optimierungen hinsichtlich Leistung, Zuverlässigkeit und Sicherheit sind geplant, ebenso wie die Möglichkeit, von Shufflecake-Partitionen zu booten.
Source: opennet.ru
