Bol zverejnený Shufflecake, sada nástrojov na vytváranie skrytých šifrovaných diskových oddielov

Spoločnosť Kudelski Security, zaoberajúca sa bezpečnostným auditom, zverejnila Shufflecake, súpravu nástrojov, ktorá vám umožňuje vytvárať skryté súborové systémy, ktoré sú rozložené na dostupnom voľnom mieste na existujúcich oddieloch a sú na nerozoznanie od náhodných zvyškových údajov. Sekcie sú vytvorené tak, že bez znalosti prístupového kľúča je problematické dokázať ich existenciu aj pri vykonávaní forenznej analýzy. Kód pre nástroje (shufflecake-userland) a modul jadra Linuxu (dm-sflc) je napísaný v jazyku C a distribuovaný pod licenciou GPLv3, čo znemožňuje zahrnúť publikovaný modul jadra do hlavného jadra Linuxu z dôvodu nekompatibility s licencia GPLv2, pod ktorou sa jadro dodáva.

Projekt je umiestnený ako pokročilejšie riešenie ako Truecrypt a Veracrypt na skrývanie citlivých údajov, ktoré má natívnu podporu pre platformu Linux a umožňuje umiestniť do zariadenia až 15 skrytých partícií, ktoré sú vnorené do seba, aby sa znejasnila analýza ich existencie. Ak samotné používanie Shufflecake nie je tajomstvom, čo možno posúdiť napríklad podľa prítomnosti vhodných utilít v systéme, potom nemožno určiť celkový počet vytvorených skrytých oddielov. Vytvorené skryté oddiely môžu byť podľa uváženia používateľa naformátované tak, aby vyhovovali akémukoľvek súborovému systému, napríklad ext4, xfs alebo btrfs. Každý oddiel sa považuje za samostatné virtuálne blokové zariadenie s vlastným odomykacím kľúčom.

Na zahmlievanie stôp sa navrhuje použiť model správania „pravdepodobného popierania“, ktorého podstatou je, že hodnotné údaje sú skryté ako ďalšie vrstvy v zašifrovaných sekciách s menej hodnotnými údajmi, ktoré tvoria akúsi skrytú hierarchiu sekcií. V prípade nátlaku môže majiteľ zariadenia odhaliť kľúč k zašifrovanej sekcii, no v tejto sekcii môžu byť skryté ďalšie sekcie (až 15 vnorených úrovní), ktorých prítomnosť a preukázanie existencie je problematické určiť.

Skrytie sa dosiahne vytvorením každého oddielu ako súboru zašifrovaných rezov umiestnených na náhodných pozíciách na úložnom zariadení. Každý segment sa dynamicky vytvorí, keď oddiel potrebuje ďalší úložný priestor. Aby sa skomplikovala analýza, sú rezy rôznych sekcií prekladané; Sekcie Shufflecake nie sú spojené so susednými oblasťami a plátky zo všetkých sekcií sú zmiešané. Informácie o použitých a voľných rezoch sú uložené v mape polohy pripojenej ku každej sekcii, na ktorú odkazuje zašifrovaná hlavička. Karty a hlavička sú zašifrované a bez znalosti prístupového kľúča sú na nerozoznanie od náhodných údajov.

Hlavička je rozdelená na sloty, z ktorých každý definuje svoju vlastnú sekciu a jej pridružené rezy. Sloty v hlavičke sú naskladané a rekurzívne prepojené – aktuálny slot obsahuje kľúč na dešifrovanie nastavení predchádzajúcej sekcie v hierarchii (menej skryté), čo umožňuje použitie jediného hesla na dešifrovanie všetkých menej skrytých sekcií spojených s vybratou sekciou. oddiele. Každá menej skrytá sekcia považuje plátky vnorených sekcií za voľné.

V predvolenom nastavení majú všetky vnorené sekcie Shufflecake rovnakú viditeľnú veľkosť ako sekcia najvyššej úrovne. Ak sa napríklad na zariadení s veľkosťou 1 GB používajú tri oblasti, každá z nich bude systému viditeľná ako oblasť s veľkosťou 1 GB a celkový dostupný priestor na disku sa bude zdieľať medzi všetkými oblasťami – ak celkové množstvo uložených údajov presiahne skutočnú veľkosť zariadenia, začne generovať I/O chybu.

Neotvorené vnorené sekcie sa nepodieľajú na prideľovaní priestoru, t.j. pokus o naplnenie sekcie najvyššej úrovne prepíše údaje vo vnorených sekciách, ale neodhalí ich prítomnosť prostredníctvom analýzy veľkosti údajov, ktoré je možné umiestniť do sekcie pred vygenerovaním chyby (predpokladá sa, že horné sekcie obsahujú nemenné nepoužívajú sa údaje na rozptýlenie a nikdy nie oddelene a pravidelná práca sa vždy vykonáva s najnovšou vnorenou sekciou, zo samotnej schémy vyplýva, že je dôležitejšie zachovať tajomstvo o existencii údajov, ako o tieto údaje prísť).

V skutočnosti je vždy vytvorených 15 sekcií Shufflecake - heslo používateľa je viazané na používané sekcie a nepoužívané sekcie sú dodávané s náhodne vygenerovaným heslom (nie je možné pochopiť, koľko sekcií sa skutočne používa). Keď sa inicializujú oddiely Shufflecake, disk, oddiel alebo virtuálne blokové zariadenie pridelené na ich umiestnenie sa naplní náhodnými údajmi, čo znemožňuje identifikáciu metadát a údajov Shufflecake na všeobecnom pozadí.

Implementácia Shufflecake má pomerne vysoký výkon, ale kvôli prítomnosti režijných nákladov je približne dvojnásobne pozadu v priepustnosti v porovnaní so šifrovaním diskov založeným na subsystéme LUKS. Použitie Shufflecake tiež vedie k dodatočným nákladom na RAM a priestor na ukladanie servisných dát na disku. Náklady na pamäť sa odhadujú na 60 MB na oblasť a miesto na disku sa odhaduje na 1 % z celkovej veľkosti. Pre porovnanie, technika WORAM s podobným účelom vedie k 5 až 200-násobnému spomaleniu so 75 % stratou užitočného miesta na disku.

Sada nástrojov a modul jadra boli testované iba na Debiane a Ubuntu s jadrami 5.13 a 5.15 (podporuje sa Ubuntu 22.04). Je potrebné poznamenať, že projekt by sa mal stále považovať za funkčný prototyp, ktorý by sa nemal používať na ukladanie dôležitých údajov. V budúcnosti plánujeme vykonať ďalšie optimalizácie výkonu, spoľahlivosti a bezpečnosti, ako aj poskytnúť možnosť zavádzania z oddielov Shufflecake.

Zdroj: opennet.ru

Pridať komentár