Kudelski Security, kompanija za reviziju sigurnosti, objavila je Shufflecake alat, koji omogućava kreiranje skrivenih datotečnih sistema raspoređenih po raspoloživom slobodnom prostoru u postojećim particijama i nerazlučivih od slučajnih rezidualnih podataka. Particije su kreirane na takav način da je njihovo postojanje teško dokazati bez poznavanja pristupnog ključa, čak i tokom forenzičke analize. Kod za uslužne programe (shufflecake-userland) i kernel modul. Linux (dm-sflc) je napisan u C-u i distribuiran pod GPLv3 licencom, što onemogućava uključivanje objavljenog modula kernela u glavni kernel. Linux zbog nekompatibilnosti s GPLv2 licencom pod kojom se kernel distribuira.
Projekt je pozicioniran kao naprednije rješenje za skrivanje podataka koji zahtijevaju zaštitu od Truecrypta i Veracrypta, koji imaju izvornu podršku za platformu. Linux Omogućava postavljanje do 15 skrivenih particija na uređaj, ugniježđenih kako bi se prikrilo njihovo postojanje. Iako sama upotreba Shufflecake-a nije tajna, što se može zaključiti, na primjer, prisustvom odgovarajućih uslužnih programa u sistemu, ukupan broj kreiranih skrivenih particija je nemoguće utvrditi. Kreirane skrivene particije mogu se formatirati tako da odgovaraju bilo kojem datotečnom sistemu, kao što su ext4, xfs ili btrfs, po nahođenju korisnika. Svaka particija se tretira kao zaseban virtuelni blok uređaj sa svojim vlastitim ključem za otključavanje.
Da bi se zbunili tragovi, predlaže se korištenje modela ponašanja “vjerodostojnog poricanja”, čija je suština da se vrijedni podaci skrivaju kao dodatni slojevi u šifriranim dijelovima s manje vrijednim podacima, formirajući neku vrstu skrivene hijerarhije sekcija. U slučaju pritiska, vlasnik uređaja može otkriti ključ šifrirane particije, ali druge particije (do 15 ugniježđenih nivoa) mogu biti skrivene u ovoj particiji, a utvrđivanje njihovog prisustva i dokazivanje njihovog postojanja je problematično.
Skrivanje se postiže konstruiranjem svake particije kao skupa šifriranih rezova postavljenih na nasumične pozicije na uređaju za pohranu. Svaki odsječak se kreira dinamički kada je potreban dodatni prostor za pohranu u particiji. Da bi analiza bila teža, izmjenjuju se kriške različitih sekcija, tj. Odjeljci kolača za miješanje nisu povezani sa susjednim regijama i kriške iz svih sekcija su pomiješane. Informacije o korištenim i besplatnim rezovima pohranjuju se u mapi lokacija koja je povezana sa svakom particijom, na koju upućuje šifrirano zaglavlje. Kartice i zaglavlje su šifrirani i, bez poznavanja pristupnog ključa, ne mogu se razlikovati od nasumičnih podataka.
Zaglavlje je podijeljeno na utore, od kojih svaki definira svoj vlastiti odjeljak i pripadajuće isječke. Slotovi u zaglavlju su naslagani i rekurzivno povezani - trenutni slot sadrži ključ za dešifrovanje parametara prethodnog odeljka u hijerarhiji (onog manje skrivenog), omogućavajući da se jedna lozinka koristi za dešifrovanje svih manje skrivenih sekcija povezanih sa odabrani dio. Svaka manje skrivena particija tretira kriške ugniježđenih particija kao slobodne.
Podrazumevano, svi pododjeljci Shufflecake-a imaju istu vidljivu veličinu kao i odjeljak najvišeg nivoa. Na primjer, ako postoje tri particije na uređaju od 1 GB, svaka od njih će biti vidljiva sistemu kao particija od 1 GB i ukupni raspoloživi prostor na disku će se dijeliti između svih particija - ako ukupna veličina pohranjenih podataka premašuje stvarne veličine uređaja, pokrenut će se I/O greška.
Ugniježđene sekcije koje nisu otvorene ne učestvuju u dodjeli prostora, tj. pokušaj popunjavanja particije najviše razine rezultirat će usitnjavanjem podataka u ugniježđene particije, ali neće omogućiti otkrivanje njihovog prisustva analizom veličine podataka koji se mogu smjestiti u particiju prije nego što greška počne (ona Pretpostavlja se da gornje particije sadrže nepromjenjive podatke za odvlačenje pažnje i nikada se odvojeno ne koriste, a redovan rad se uvijek obavlja s najnovijim ugniježđenim dijelom, sama shema implicira da je važnije održavati tajnu postojanja podataka nego da izgubite ove podatke).
U stvari, uvijek se kreira 15 Shufflecake particija - korisnička lozinka je pridružena korištenim particijama, a neiskorištene particije se isporučuju sa nasumično generiranom lozinkom (nemoguće je razumjeti koliko se particija zapravo koristi). Kada se Shufflecake particije inicijaliziraju, disk, particija ili virtuelni blok uređaj koji su dodijeljeni za njihovo postavljanje se popunjava nasumičnim podacima, što onemogućuje identifikaciju Shufflecake metapodataka i podataka u općoj pozadini.
Implementacija Shufflecake ima prilično visoke performanse, ali zbog prisustva nadopterećenja, približno je dvostruko sporija u propusnosti u odnosu na šifriranje diska zasnovanog na LUKS podsistemu. Korištenje Shufflecake-a također rezultira dodatnim troškovima za RAM i prostor na disku za pohranjivanje servisnih podataka. Potrošnja memorije se procjenjuje na 60 MB po particiji, a prostor na disku na 1% ukupne veličine. Poređenja radi, WORAM tehnika, slične namjene, dovodi do usporavanja od 5 do 200 puta uz gubitak od 75% korisnog prostora na disku.
Komplet alata i kernel modul su testirani samo prilikom pokretanja u Debian и Ubuntu sa kernelima 5.13 i 5.15 (podržava rad u Ubuntu 22.04. april). Napominje se da projekat trenutno treba smatrati radnim prototipom i ne bi trebao biti korišten za pohranjivanje osjetljivih podataka. Planirane su daljnje optimizacije performansi, pouzdanosti i sigurnosti za budućnost, kao i mogućnost pokretanja sistema sa Shufflecake particija.
izvor: opennet.ru
