Megjelent Shufflecake, egy eszközkészlet rejtett titkosított lemezpartíciók létrehozásához

A Kudelski Security biztonsági audit cég kiadott egy Shufflecake nevű eszközt, amely lehetővé teszi rejtett fájlrendszerek létrehozását a meglévő partíciók szabad helyén szétszórva, és megkülönböztethetetlen a véletlenszerű maradék adatoktól. A partíciók úgy jönnek létre, hogy a hozzáférési kulcs ismerete nélkül még a kriminalisztikai elemzés során is nehéz bizonyítani a létezésüket. A segédprogramok (shufflecake-userland) és a Linux kernelmodul (dm-sflc) kódja C nyelven íródott és GPLv3 licenc alatt van terjesztve, ami lehetetlenné teszi a közzétett kernelmodul beépítését a fő Linux kernelbe, mert nem kompatibilis a GPLv2 licenc, amely alatt a kernelt szállítják.

A projekt a Truecrypt-nél és a Veracrypt-nél fejlettebb megoldás a védelmet igénylő adatok elrejtésére, amely natívan támogatja a Linux platformot, és lehetővé teszi akár 15 rejtett partíció elhelyezését az eszközön, egymásba ágyazva, hogy megzavarja az elemzést. létezésükről. Ha maga a Shufflecake használata nem titok, mint például a megfelelő segédprogramok rendszerben való jelenléte alapján ítélhető meg, akkor a létrehozott rejtett partíciók száma nem határozható meg. A létrehozott rejtett partíciókat a felhasználó saját belátása szerint formázhatja úgy, hogy bármilyen fájlrendszerhez illeszkedjen, például ext4, xfs vagy btrfs. Minden partíciót külön virtuális blokkeszközként kezel, saját feloldókulccsal.

A nyomok összetévesztésére javasolt a „valószínű tagadhatóság” viselkedési modell alkalmazása, melynek lényege, hogy az értékes adatok további rétegekként rejtőznek el a kevésbé értékes adatokat tartalmazó titkosított szakaszokban, egyfajta rejtett szakaszhierarchiát képezve. Nyomás esetén az eszköz tulajdonosa felfedheti a titkosított partíció kulcsát, de más partíciók (legfeljebb 15 egymásba ágyazott szint) elrejthetők ebben a partícióban, amelyek meglétének meghatározása és létezésük bizonyítása problémás.

Az elrejtés úgy érhető el, hogy minden partíciót titkosított szeletek halmazaként hoznak létre, amelyeket a tárolóeszközön véletlenszerű helyekre helyeznek el. Minden szelet dinamikusan jön létre, amikor további tárterületre van szükség a partícióban. Az elemzés megnehezítése érdekében a különböző szakaszok szeleteit váltogatják, pl. A Shufflecake szakaszok nincsenek összefüggő régiókhoz kapcsolva, és az összes szakasz szeletei keverednek. A használt és szabad szeletekre vonatkozó információkat az egyes partíciókhoz társított helytérkép tárolja, amelyre egy titkosított fejléc hivatkozik. A kártyák és a fejléc titkosított, és a hozzáférési kulcs ismerete nélkül megkülönböztethetetlen a véletlenszerű adatoktól.

A fejléc slotokra van felosztva, amelyek mindegyike meghatározza a saját szakaszát és a kapcsolódó szeleteket. A fejlécben lévő helyek egymásra vannak rakva és rekurzívan kapcsolódnak egymáshoz – az aktuális rés tartalmazza a kulcsot a hierarchia előző szakaszának paramétereinek visszafejtéséhez (a kevésbé rejtett), lehetővé téve egy jelszó használatával az összes kevésbé rejtett szakaszt a kiválasztott szakaszt. Minden kevésbé rejtett partíció szabadként kezeli a beágyazott partíciók szeleteit.

Alapértelmezés szerint az összes Shufflecake alszakasz látható mérete megegyezik a legfelső szintű részével. Például, ha három partíció van egy 1 GB-os eszközön, mindegyik 1 GB-os partícióként lesz látható a rendszer számára, és a teljes szabad lemezterület megoszlik az összes partíció között - ha a tárolt adatok teljes mérete meghaladja az eszköz tényleges mérete, akkor elindul egy I/O hibaüzenet.

A nem nyitott beágyazott szakaszok nem vesznek részt a helykiosztásban, pl. egy legfelső szintű partíció kitöltésének kísérlete az adatok beágyazott partíciókba való felaprítását eredményezi, de nem teszi lehetővé jelenlétük felfedését a partícióba helyezhető adatok méretének elemzésével a hiba megjelenése előtt (ez Feltételezzük, hogy a felső partíciók megváltoztathatatlan adatokat tartalmaznak, hogy elvonják a figyelmet, és soha nem használják őket külön, és a rendszeres munka mindig a legfrissebb beágyazott szekcióval történik, maga a séma azt sugallja, hogy fontosabb megőrizni a létezés titkát. adatokat, mint elveszteni ezeket az adatokat).

Valójában mindig 15 Shufflecake partíció jön létre - a felhasználói jelszó a használt partíciókhoz van csatolva, a nem használt partíciókat pedig véletlenszerűen generált jelszóval látják el (lehetetlen megérteni, hogy hány partíciót használnak valójában). Amikor a Shufflecake partíciókat inicializálja, az elhelyezésükhöz hozzárendelt lemez, partíció vagy virtuális blokk eszköz véletlenszerű adatokkal telik meg, ami lehetetlenné teszi a Shufflecake metaadatok és adatok azonosítását az általános háttér előtt.

A Shufflecake megvalósítás meglehetősen nagy teljesítményű, de a többletterhelés miatt hozzávetőleg kétszer lassabb az átviteli sebessége a LUKS alrendszeren alapuló lemeztitkosításhoz képest. A Shufflecake használata további költségekkel jár a RAM és a szolgáltatási adatok tárolására szolgáló lemezterület tekintetében. A becsült memóriafelhasználás partíciónként 60 MB, a lemezterület pedig a teljes méret 1%-a. Összehasonlításképpen, a hasonló célú WORAM-technika 5-200-szoros lassuláshoz vezet, 75%-os használható lemezterület-veszteséggel.

Az eszközkészletet és a kernelmodult csak Debian és Ubuntu rendszeren tesztelték 5.13-as és 5.15-ös kernelekkel (az Ubuntu 22.04-en támogatott). Megjegyzendő, hogy a projektet továbbra is működő prototípusnak kell tekinteni, amelyet nem szabad fontos 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.

Forrás: opennet.ru

Hozzászólás