Byl představen Shufflecake, nástroj pro vytváření skrytých šifrovaných oddílů na disku

Firma Kudelski Security, specializující se na bezpečnostní audity, zveřejnila nástroj Shufflecake, který umožňuje vytváření skrytých souborových systémů rozptýlených po dostupném volném prostoru v existujících oddílech a neodlišitelných od náhodných zbytkových dat. Oddíly jsou vytvářeny tak, že bez znalosti přístupového klíče je jejich existence obtížně prokazatelná, i při provádění forenzní analýzy. Kód utilit (shufflecake-userland) a modulu jádra Linux (dm-sflc) je napsán v jazyce C a je distribuován pod licencí GPLv3, což znemožňuje zahrnutí zveřejněného modulu jádra do oficiálního jádra Linux kvůli nekompatibilitě s licencí GPLv2, pod kterou je jádro dodáváno.

Projekt je prezentován jako sofistikovanější řešení pro skrývání dat, která vyžadují ochranu, než Truecrypt a Veracrypt, přičemž má nativní podporu pro platformu Linux a umožňuje umístění až 15 skrytých oddílů na zařízení, které jsou vzájemně zasunuty, aby se ztížilo zjištění jejich existence. Pokud samotné použití Shufflecake není tajné, což lze posoudit například podle přítomnosti odpovídajících utilit v systému, je celkový počet vytvořených skrytých oddílů nemožné určit. Vytvářené skryté oddíly mohou být podle uvážení uživatele formátovány pro umístění jakýchkoli souborových systémů, například ext4, xfs nebo btrfs. Každý oddíl je zpracováván jako samostatné virtuální blokové zařízení s vlastním odemykacím klíčem.

Pro zamotání stop se doporučuje použít model chování „plausibilní popření“ (plausible deniability), jehož podstatou je, že hodnotná data jsou skrývána jako dodatečné vrstvy v šifrovaných oddílech s méně hodnotnými daty, čímž vzniká jakási skrytá hierarchie oddílů. V případě nátlaku může vlastník zařízení odhalit klíč k šifrovanému oddílu, ale v tomto oddílu mohou být skryty další oddíly (až 15 vnořených úrovní), a jejich existence a prokázání je obtížné.

Skrytí je zajištěno formováním každé sekce jako souboru šifrovaných segmentů, umisťovaných na náhodné pozice v úložném zařízení. Každý segment se vytváří dynamicky ve chvíli, kdy je v sekci potřeba další prostor pro uložení. Pro ztížení analýzy se segmenty různých sekcí střídají, tj. sekce Shufflecake nejsou spojeny s kontinuálními oblastmi a segmenty všech sekcí se mísí. Informace o použitých a volných segmentech se uchovávají v mapě umístění přidělené každé sekci, na kterou odkazuje šifrovaný záhlaví. Mapa a záhlaví jsou šifrovány a bez znalosti přístupového klíče jsou nerozeznatelné od náhodných dat.

Záhlaví je rozděleno na sloty, z nichž každý definuje svou sekci a s nimi spojené segmenty. Sloty v záhlaví jsou umístěny v zásobníkovém uspořádání a rekurzivně propojeny – aktuální slot obsahuje klíč pro dešifrování parametrů předchozí sekce hierarchie (méně skryté), což umožňuje použít jedno heslo pro dešifrování všech méně skrytých sekcí spojených s vybranou sekcí. Každá méně skrytá sekce považuje segmenty vnořených sekcí za volné.

Ve výchozím nastavení mají všechny vnořené sekce Shufflecake stejnou viditelnou velikost jako sekce nejvyšší úrovně. Například pokud je na zařízení s velikostí 1 GB aktivováno tři sekce, každá z nich bude pro systém viditelná jako sekce o velikosti 1 GB a celkový dostupný diskový prostor bude společně využíván ve všech sekcích – pokud celková velikost uložených dat překročí skutečnou velikost zařízení, začnou se objevovat chyby vstupu/výstupu.

Zavřené vnořené oddíly se nezapojí do rozdělování místa, tj. pokus o zaplnění oddílu nejvyšší úrovně povede k přepsání dat ve vnořených oddílech, ale neumožní odhalit jejich existenci analýzou velikosti dat, která mohou být uložena v oddíle před začátkem výstupu chyby (předpokládá se, že horní oddíly obsahují neměnná data pro odvádění pozornosti a nikdy se nepoužívají samostatně, zatímco standardní provoz se vždy provádí s nejnovějším vnořeným oddílem; schéma předpokládá, že důležitější je uchování tajemství existencí dat než ztráta těchto dat).

Ve skutečnosti je vždy vytvořeno 15 oddílů Shufflecake — k používaným oddílům je připojeno uživatelské heslo, zatímco nepoužívané oddíly jsou opatřeny náhodně vygenerovaným heslem (není možné pochopit, kolik oddílů je skutečně používáno). Při inicializaci oddílů Shufflecake se disk, oddíl nebo virtuální blokové zařízení určené pro jejich umístění zaplní náhodnými daty, což neumožňuje určit na celkovém pozadí metadata a data Shufflecake.

Realizace Shufflecake má dostatečně vysoký výkon, ale kvůli přítomnosti režijních nákladů je přibližně dvakrát pomalejší co do propustnosti ve srovnání s šifrováním disků založeným na systému LUKS. Použití Shufflecake také vyžaduje dodatečné náklady na operační paměť a místo pro ukládání servisních dat na disku. Náklady na paměť se odhadují na 60 MB na každý oddíl, a místo na disku — na 1 % z celkové velikosti. Pro srovnání, podobná technika WORAM vede k zpomalení od 5 do 200 násobku s 75% ztrátou užitečného místa na disku.

Nástroje a modul jádra byly testovány pouze při práci na Debianu a Ubuntu s jádry 5.13 a 5.15 (podporována je práce na Ubuntu 22.04). Je třeba poznamenat, že projekt by měl být dosud považován za pracovní prototyp, který se nemá používat pro ukládání důležitých dat. V budoucnu se plánuje provést další optimalizaci výkonu, spolehlivosti a bezpečnosti, a také zajistit možnost zavádění z oddílů Shufflecake.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster