Shufflecake wurde veröffentlicht, ein Werkzeugset zur Erstellung versteckter verschlüsselter Partitionen auf der Festplatte

Das Unternehmen Kudelski Security, das sich auf Sicherheitstests spezialisiert hat, hat das Tool Shufflecake veröffentlicht, das es ermöglicht, versteckte Dateisysteme zu erstellen, die sich über den vorhandenen freien Speicherplatz in bestehenden Partitionen verteilen und von zufälligen Restdaten nicht zu unterscheiden sind. Die Partitionen werden so erstellt, dass es problematisch ist, ihr Vorhandensein ohne Kenntnis des Zugriffsschlüssels auch bei einer forensischen Analyse zu beweisen. Der Code der Dienstprogramme (shufflecake-userland) und des Linux-Kernel-Moduls (dm-sflc) ist in C geschrieben und steht unter der GPLv3-Lizenz, was die Aufnahme des veröffentlichten Kernel-Moduls in den Hauptkernel von Linux aufgrund der Inkompatibilität mit der GPLv2-Lizenz, unter der der Kernel bereitgestellt wird, unmöglich macht.

Das Projekt positioniert sich als fortschrittlicher als Truecrypt und Veracrypt und bietet eine Lösung zum Verbergen schützenswerter Daten, die native Unterstützung für die Linux-Plattform bietet und es erlaubt, bis zu 15 versteckte Partitionen auf einem Gerät zu erstellen, die ineinander geschachtelt sind, um die Feststellung ihres Vorhandenseins zu erschweren. Während die Verwendung von Shufflecake selbst keine Geheimnisse birgt, was zum Beispiel an der Verfügbarkeit entsprechender Dienstprogramme im System zu erkennen ist, ist die Gesamtzahl der erstellten versteckten Partitionen nicht zu bestimmen. Die erstellten versteckten Partitionen können nach Ermessen des Benutzers formatiert werden, um verschiedene Dateisysteme wie ext4, xfs oder btrfs unterzubringen. Jede Partition wird als separates virtuelles Blockgerät mit ihrem eigenen Entsperr-Schlüssel behandelt.

Um Spuren zu verwischen, wird das Verhalten des «plausiblen Leugnens» (plausible deniability) empfohlen, dessen Grundgedanke darin besteht, dass wertvolle Daten als zusätzliche Schichten in verschlüsselten Partitionen mit weniger wertvollen Daten verborgen werden, wodurch eine versteckte Hierarchie von Partitionen entsteht. Im Druck kann der Besitzer des Geräts den Schlüssel zur verschlüsselten Partition offenlegen, aber innerhalb dieser Partition können sich andere Partitionen befinden (bis zu 15 geschachtelte Ebenen), und es ist problematisch, deren Vorhandensein zu bestimmen und deren Existenz zu beweisen.

Die Verschlüsselung wird durch die Bildung jedes Abschnitts als Satz von verschlüsselten Slices sichergestellt, die an zufälligen Positionen auf dem Speichermedium platziert werden. Jeder Slice wird dynamisch zum Zeitpunkt erstellt, wenn im Abschnitt zusätzlicher Speicherplatz benötigt wird. Um die Analyse zu erschweren, werden die Slices verschiedener Abschnitte gemischt, d.h. die Shufflecake-Abschnitte sind nicht mit zusammenhängenden Bereichen verbunden, und die Slices aller Abschnitte werden vermischt. Informationen über die verwendeten und freien Slices werden in einer jedem Abschnitt zugeordneten Standortkarte gespeichert, auf die der verschlüsselte Header verweist. Karten und Header sind verschlüsselt und ohne Kenntnis des Zugangsschlüssels von zufälligen Daten nicht zu unterscheiden.

Der Header ist in Slots unterteilt, von denen jeder seinen eigenen Abschnitt und die damit verbundenen Slices definiert. Die Slots im Header sind gestapelt angeordnet und rekursiv miteinander verbunden – der aktuelle Slot enthält den Schlüssel zur Entschlüsselung der Parameter des vorherigen (weniger versteckten) Abschnitts in der Hierarchie, was es ermöglicht, ein Passwort zur Entschlüsselung aller weniger versteckten Abschnitte zu verwenden, die mit dem gewählten Abschnitt verbunden sind. Jeder weniger versteckte Abschnitt betrachtet die Slices der eingebetteten Abschnitte als frei.

Standardmäßig haben alle eingebetteten Shufflecake-Abschnitte dieselbe sichtbare Größe wie der oberste Abschnitt. Wenn beispielsweise auf einem 1-GB-Gerät drei Abschnitte aktiviert sind, wird jeder von ihnen für das System als Abschnitt mit einer Größe von 1 GB sichtbar sein, und der insgesamt verfügbare Speicherplatz wird gemeinsam in allen Abschnitten genutzt – wenn die Größe der gespeicherten Daten die tatsächliche Gerätegröße überschreitet, wird ein Eingabe-/Ausgabefehler angezeigt.

Nicht geöffnete Unterabschnitte nehmen nicht am Platzangebot teil, d.h. der Versuch, einen übergeordneten Abschnitt zu füllen, führt zu einer Überschreibung von Daten in den untergeordneten Abschnitten, gibt jedoch nicht die Möglichkeit, deren Vorhandensein durch die Analyse der Datenmenge, die im Abschnitt platziert werden kann, vor Beginn der Fehlermeldung sichtbar zu machen (es wird davon ausgegangen, dass die übergeordneten Abschnitte unveränderliche Daten zur Ablenkung enthalten und niemals einzeln verwendet werden, während die reguläre Arbeit immer mit dem letzten untergeordneten Abschnitt erfolgt; das Schema impliziert, dass es wichtiger ist, das Geheimnis der Existenz der Daten zu wahren, als diese Daten zu verlieren).

In der Regel werden 15 Abschnitte von Shufflecake erstellt – die verwendeten Abschnitte werden mit dem Benutzerpasswort verknüpft, während ungenutzte Abschnitte mit einem zufällig generierten Passwort versehen werden (es ist nicht möglich zu verstehen, wie viele Abschnitte tatsächlich verwendet werden). Bei der Initialisierung der Shufflecake-Abschnitte wird die für deren Speicherung vorgesehene Festplatte, Partition oder virtuelles Blockgerät mit zufälligen Daten gefüllt, was es unmöglich macht, die Metadaten und Daten von Shufflecake im Gesamten zu bestimmen.

Die Umsetzung von Shufflecakeweist eine relativ hohe Leistung auf, hat jedoch aufgrund der damit verbundenen Overheads eine etwa doppelt so geringe Bandbreite im Vergleich zur Verschlüsselung von Festplatten auf Basis des LUKS-Subsystems. Die Verwendung von Shufflecake führt auch zu einem zusätzlichen Verbrauch von Arbeitsspeicher und Speicherplatz für Verwaltungsdaten auf der Festplatte. Der Speicherverbrauch wird mit 60 MB pro Abschnitt und der Platzverbrauch auf der Festplatte mit 1 % der Gesamtgröße bewertet. Zum Vergleich: Eine ähnliche Technik namens WORAM führt zu einer Verlangsamung um das 5- bis 200-fache bei einem Verlust von 75 % des nützlichen Festplattenspeichers.

Das Werkzeug und das Kernel-Modul wurden nur unter Debian und Ubuntu mit den Kerneln 5.13 und 5.15 getestet (die Verwendung in Ubuntu 22.04 wird unterstützt). Es wird angemerkt, dass das Projekt vorerst als Arbeitsprototyp betrachtet werden sollte, der nicht zur Speicherung wichtiger Daten verwendet werden sollte. In Zukunft ist eine zusätzliche Optimierung von Leistung, Zuverlässigkeit und Sicherheit sowie die Möglichkeit der Bootfähigkeit von den Shufflecake-Abschnitten geplant.

Quelle: opennet.ru

60GB SSD 8Gb DDR4