Shufflecake, narzędzie do tworzenia ukrytych woluminów

tasak

Shufflecake to narzędzie dla Linuksa, które umożliwia tworzenie wielu ukrytych woluminów na urządzeniu pamięci masowej w taki sposób, że bardzo trudno jest udowodnić istnienie takich woluminów, nawet podczas kontroli kryminalistycznej.

Firma audytorska Kudelski Security zaprezentował zestaw narzędzi Shufflecake, który umożliwia tworzenie ukrytych systemów plików, które są rozmieszczone na dostępnym wolnym miejscu na istniejących partycjach i nie można ich odróżnić od losowych danych szczątkowych. Sekcje tworzone są w taki sposób, że bez znajomości klucza dostępu trudno jest udowodnić ich istnienie nawet podczas przeprowadzania analizy kryminalistycznej.

Projekt pozycjonuje się jako bardziej zaawansowane rozwiązanie niż Truecrypt i Veracrypt do ukrywania wrażliwych danych, który ma natywną obsługę platformy Linux i pozwala na umieszczenie na urządzeniu do 15 ukrytych partycji, zagnieżdżonych w sobie, aby zaciemnić analizę ich istnienia.

Utworzone partycje ukryte, według uznania użytkownika, można sformatować w celu dopasowania do dowolnego systemu plików, na przykład ext4, xfs lub btrfs. Każda partycja jest traktowana jako oddzielne urządzenie wirtualnej blokady z własnym kluczem odblokowującym.

Aby zaciemnić ślady, proponuje się model zachowania „prawdopodobnej zaprzeczalności”, którego istotą jest to, że cenne dane są ukryte jako dodatkowe warstwy w zaszyfrowanych sekcjach z mniej wartościowymi danymi, tworząc rodzaj ukrytej hierarchii sekcji. W przypadku nacisku właściciel urządzenia może ujawnić klucz do zaszyfrowanej sekcji, ale w tej sekcji mogą być ukryte inne sekcje (do 15 zagnieżdżonych poziomów), a ustalenie ich obecności i udowodnienie ich istnienia jest problematyczne.

Shufflecake i moduł jądra zostały przetestowane tylko na Debianie i Ubuntu z jądrami 5.13 i 5.15 (obsługiwane jest Ubuntu 22.04). Należy zauważyć że projekt należy nadal traktować jako działający prototyp, które nie powinny być używane do przechowywania ważnych danych.

W przyszłości planujemy wprowadzić dodatkowe optymalizacje pod kątem wydajności, niezawodności i bezpieczeństwa, a także zapewnić możliwość rozruchu z partycji Shufflecake.

O Shufflecake

ukrycie uzyskuje się poprzez utworzenie każdej partycji jako zestawu zaszyfrowanych segmentów umieszczone w losowych miejscach na urządzeniu pamięci masowej. Każdy wycinek jest tworzony dynamicznie, gdy partycja potrzebuje dodatkowej przestrzeni dyskowej. Aby skomplikować analizę, nacięcia z różnych sekcji są przeplatane.

Sekcje Shufflecake nie są połączone z sąsiednimi regionami, a porcje ze wszystkich sekcji są ze sobą mieszane. Informacje o wykorzystanych i wolnych częściach są przechowywane na mapie lokalizacji dołączonej do każdej sekcji, do której odwołuje się zaszyfrowany nagłówek. Karty i nagłówek są zaszyfrowane i bez znajomości klucza dostępu są nie do odróżnienia od przypadkowych danych.

Nagłówek jest podzielony na spacje, każdy z nich definiuje własną sekcję i powiązane z nią sektory. Miejsca w nagłówku są ułożone w stos i połączone rekurencyjnie: bieżące miejsce zawiera klucz do odszyfrowania parametrów poprzedniej (najmniej ukrytej) sekcji w hierarchii, co pozwala na użycie jednego hasła do odszyfrowania wszystkich mniej ukrytych sekcji powiązanych z nagłówkiem wybrane. Każda mniej ukryta sekcja traktuje części zagnieżdżonych sekcji jako wolne.

Domyślnie, wszystkie zagnieżdżone sekcje Shufflecake mają ten sam widoczny rozmiar niż sekcja najwyższego poziomu. Na przykład, jeśli na urządzeniu o pojemności 1 GB są używane trzy partycje, każda partycja będzie widoczna w systemie jako partycja o wielkości 1 GB, a całkowita dostępna przestrzeń dyskowa będzie współdzielona między wszystkie partycje, jeśli łączna ilość zapisanych danych przekroczy rzeczywistego rozmiaru urządzenia, zacznie generować błąd wejścia/wyjścia.

Nieotwarte sekcje zagnieżdżone nie biorą udziału w alokacji miejsca, np. próba wypełnienia sekcji najwyższego poziomu spowoduje nadpisanie danych w sekcjach zagnieżdżonych, ale nie ujawni swojej obecności poprzez analizę wielkości danych które można umieścić w sekcji przed zgłoszeniem błędu (zakłada się, że wyższe sekcje zawierają niezmienne dane) dane przez rozproszenie uwagi i nigdy osobno nie są używane, a regularna praca jest zawsze wykonywana z nowszą sekcją zagnieżdżoną, sam schemat sugeruje, że najważniejsze jest utrzymanie w tajemnicy istnienia danych, nawet za cenę utraty danych).

Implementacja Shufflecake ma dość wysoką wydajność, ale ze względu na występowanie kosztów ogólnych ma dwukrotnie niższą wydajność w porównaniu do szyfrowania dysków opartego na podsystemie LUKS. Korzystanie z Shufflecake wiąże się również z dodatkowymi kosztami pamięci RAM i przestrzeni do przechowywania danych usługi na dysku. Koszty pamięci szacuje się na 60 MB na partycję a miejsce na dysku szacuje się na 1% całkowitego rozmiaru. Dla porównania, technika WORAM o podobnym przeznaczeniu prowadzi do 5 do 200-krotnego spowolnienia przy 75% utracie użytecznej przestrzeni dyskowej.

Kod narzędzi (shufflecake-userland) oraz modułu jądra Linuksa (dm-sflc) jest napisany w C i udostępniony na licencji GPLv3, co uniemożliwia włączenie opublikowanego modułu jądra do głównego jądra Linuksa. na licencji GPLv2, na której dostarczane jest jądro.

Jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.