Shufflecake, egy eszköz rejtett kötetek létrehozására

shufflecake

A Shufflecake egy olyan Linux-eszköz, amely lehetővé teszi több rejtett kötet létrehozását egy tárolóeszközön oly módon, hogy még törvényszéki vizsgálat mellett is nagyon nehéz bizonyítani az ilyen kötetek létezését.

A Kudelski Security biztonsági auditáló cég kiadta a Shufflecake eszközkészletet , amely lehetővé teszi rejtett fájlrendszerek létrehozását a meglévő partíciók szabad területén elosztva, megkülönböztethetetlenül a véletlenszerű maradékadatoktól. Ezeket a szakaszokat úgy hozzák létre, hogy a hozzáférési kulcs ismerete nélkül létezésük bizonyítása problémás, még a forenzikus elemzés során is.

A projekt a Truecryptnél és a Veracryptnél fejlettebb megoldásként pozicionálja magát a bizalmas adatok elrejtésére, natív támogatást nyújtva a Linux platformhoz, és lehetővé téve akár 15 rejtett partíció elhelyezését az eszközön, egymásba ágyazva, hogy elfedjék létezésük elemzését.

A felhasználó belátása szerint létrehozott rejtett partíciók bármilyen fájlrendszerhez formázhatók, például ext4, xfs vagy btrfs. Minden partíciót független virtuális blokkeszközként kezel a rendszer, saját feloldókulccsal.

A nyomok elfedésére a „hihető tagadhatóság” viselkedési modelljét javasolják. Lényegében az értékes adatokat további rétegekként rejtik el a kevésbé értékes adatokat tartalmazó titkosított szakaszokon belül, egyfajta rejtett szakaszhierarchiát alkotva. Nyomás alatt az eszköz tulajdonosa felfedheti a titkosított szakasz kulcsát, de más szakaszok (akár 15 beágyazott szintig) elrejthetők benne, ami megnehezíti jelenlétük meghatározását és létezésük bizonyítását.

A Shufflecake-et és a kernel modult csak Debian és Ubuntu rendszereken, 5.13-as és 5.15-ös kernel verziókkal tesztelték (az Ubuntu 22.04 támogatott). Meg kell jegyezni, hogy a projektet továbbra is működő prototípusnak kell tekinteni , és nem szabad érzékeny adatok tárolására használni.

A jövőben további optimalizálásokat tervezünk a teljesítmény, a megbízhatóság és a biztonság érdekében, valamint lehetőséget biztosítunk a Shufflecake partíciókról történő rendszerindításra.

A Shufflecake-ről

Az elrejtést úgy érik el, hogy minden partíciót titkosított szegmensek halmazaként alakítanak ki, amelyeket véletlenszerű pozíciókban helyeznek el a tárolóeszközön. Minden szegmens dinamikusan jön létre, amikor a partíciónak további tárhelyre van szüksége. Az elemzés bonyolítása érdekében a különböző szakaszokból származó szeleteket összeillesztik.

A Shufflecake szakaszok nincsenek összefüggő régiókhoz kapcsolva, és az összes szakaszból származó részek össze vannak keverve. A felhasznált és ingyenes részekkel kapcsolatos információkat az egyes szakaszokhoz csatolt helytérkép tárolja, amelyre a titkosított fejléc hivatkozik. A kártyák és a fejléc titkosított, és a jelszó ismerete nélkül megkülönböztethetetlen a véletlenszerű adatoktól.

A fejléc résekre van osztva , amelyek mindegyike a saját szakaszát és a hozzá tartozó szektorokat határozza meg. A fejléc rései egymásra vannak halmozva és rekurzívan összekapcsolva: az aktuális rések tartalmazzák a kulcsot a hierarchia előző (kevésbé rejtett) szakaszának paramétereinek visszafejtéséhez, lehetővé téve egyetlen jelszóval a kiválasztott elemhez tartozó összes kevésbé rejtett szakasz visszafejtését. Minden kevésbé rejtett szakasz a beágyazott szakaszok részeit szabadként kezeli.

Alapértelmezés szerint az összes beágyazott Shufflecake partíció látható mérete megegyezik a legfelső szintű partícióéval. Például, ha egy 1 GB-os eszközön három partíciót használnak, akkor mindegyik 1 GB-os partícióként lesz látható a rendszer számára, és a teljes rendelkezésre álló lemezterület megoszlik az összes partíció között. Ha a tárolt adatok teljes mennyisége meghaladja a tényleges eszközméretet, I/O hibák kezdenek jelentkezni.

A meg nem nyitott beágyazott szakaszok nem vesznek részt a helykiosztásban; vagyis egy magasabb szintű szakasz kitöltésére tett kísérlet felülírja a beágyazott szakaszokban lévő adatokat, de a hiba keletkezése előtt nem fogja feltárni azok jelenlétét a szakaszba helyezhető adatok méretének elemzésével (feltételezve, hogy a magasabb szintű szakaszok megváltoztathatatlan adatokat tartalmaznak). Az adatokat nem véletlenül és soha nem külön használják fel, és a rendszeres munka mindig a legújabb beágyazott szekcióval történik; maga a séma azt sugallja, hogy a lényeg az adatok létezésének titokban tartása, akár az adatok elvesztése árán is.

A Shufflecake implementáció viszonylag nagy teljesítményt kínál, de a rezsiköltségek miatt körülbelül feleannyira hatékony, mint a LUKS alrendszeren alapuló lemeztitkosítás. A Shufflecake használata további RAM- és lemezterület-költségekkel is jár a szolgáltatásadatok tárolása miatt. A memóriaköltségeket partíciónként 60 MB-ra becsülik , a lemezterület-használatot pedig a teljes partícióméret 1%-ára. Összehasonlításképpen, a hasonlóan célszerű WORAM technika 5-200-szoros lassulást eredményez, a használható lemezterület 75%-os elvesztésével.

A segédprogramok (shufflecake-userland) és a Linux kernelmodul (dm-sflc) kódja C nyelven íródott, és a GPLv3 licenc alatt került kiadásra, ami lehetetlenné teszi a közzétett kernelmodul beépítését a fő Linux kernelbe. a GPLv2 licenc alatt, amely alatt a kernelt szállítják.

Ha többet szeretnél megtudni, a részleteket az alábbi linken találod.


Hozzáadás előnyben részesített forrásként a Google-ben