Objavljen je Shufflecake, alat za stvaranje skrivenih kriptiranih diskovnih particija

Tvrtka za sigurnosnu reviziju Kudelski Security objavila je alat pod nazivom Shufflecake koji vam omogućuje stvaranje skrivenih datotečnih sustava razbacanih po slobodnom prostoru na postojećim particijama i koji se ne mogu razlikovati od nasumičnih preostalih podataka. Particije su napravljene na takav način da je bez poznavanja pristupnog ključa teško dokazati njihovo postojanje čak i pri provođenju forenzičke analize. Kod uslužnih programa (shufflecake-userland) i Linux kernel modula (dm-sflc) napisan je u C-u i distribuira se pod GPLv3 licencom, što onemogućuje uključivanje objavljenog kernel modula u glavnu Linux kernel zbog nekompatibilnosti s GPLv2 licenca pod kojom se kernel isporučuje.

Projekt je pozicioniran kao naprednije rješenje od Truecrypta i Veracrypta za skrivanje podataka koji zahtijevaju zaštitu, koji ima izvornu podršku za Linux platformu i omogućuje postavljanje do 15 skrivenih particija na uređaj, ugniježđenih jedna u drugu kako bi se zbunilo parsiranje njihovog postojanja. Ako sama upotreba Shufflecakea nije tajna, kao što se može suditi, na primjer, po prisutnosti odgovarajućih uslužnih programa u sustavu, tada se ne može odrediti ukupan broj stvorenih skrivenih particija. Stvorene skrivene particije mogu se formatirati prema nahođenju korisnika kako bi se prilagodile bilo kojem datotečnom sustavu, na primjer, ext4, xfs ili btrfs. Svaka se particija tretira kao zaseban virtualni blok uređaj s vlastitim ključem za otključavanje.

Kako bi se zbunili tragovi, predlaže se korištenje modela ponašanja "plausible deniability", čija je bit da su vrijedni podaci skriveni kao dodatni slojevi u šifriranim odjeljcima s manje vrijednim podacima, tvoreći neku vrstu skrivene hijerarhije odjeljaka. U slučaju pritiska, vlasnik uređaja može otkriti ključ kriptirane particije, ali druge particije (do 15 ugniježđenih razina) mogu biti skrivene u ovoj particiji, a utvrđivanje njihove prisutnosti i dokazivanje njihovog postojanja je problematično.

Skrivanje se postiže konstruiranjem svake particije kao skupa šifriranih odsječaka postavljenih na nasumične položaje na uređaju za pohranu. Svaka se kriška stvara dinamički kada je potreban dodatni prostor za pohranu na particiji. Kako bi se analiza otežala, izmjenjuju se rezovi različitih dijelova, tj. Dijelovi Shufflecakea nisu povezani sa susjednim regijama i kriške iz svih odjeljaka su pomiješane. Informacije o iskorištenim i slobodnim rezovima pohranjuju se u lokacijsku kartu povezanu 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 odjeljak i pridružene odsječke. Utori u zaglavlju složeni su i rekurzivno povezani - trenutni utor sadrži ključ za dešifriranje parametara prethodnog odjeljka u hijerarhiji (manje skrivenog), dopuštajući da se jedna lozinka koristi za dešifriranje svih manje skrivenih odjeljaka povezanih s odabrani odjeljak. Svaka manje skrivena particija tretira dijelove ugniježđenih particija kao slobodne.

Prema zadanim postavkama, svi pododjeljci Shufflecakea imaju istu vidljivu veličinu kao odjeljak najviše razine. Na primjer, ako postoje tri particije na uređaju od 1 GB, svaka će od njih biti vidljiva sustavu kao particija od 1 GB, a ukupni raspoloživi prostor na disku dijelit će se među svim particijama - ako ukupna veličina pohranjenih podataka premašuje stvarne veličine uređaja, pokrenut će se I/O pogreška.

Ugniježđene sekcije koje nisu otvorene ne sudjeluju u dodjeli prostora, tj. pokušaj popunjavanja particije najviše razine rezultirat će uništavanjem podataka u ugniježđenim particijama, ali neće omogućiti otkrivanje njihove prisutnosti kroz analizu veličine podataka koji se mogu smjestiti u particiju prije početka pogreške (to Pretpostavlja se da gornje particije sadrže nepromjenjive podatke za odvraćanje pozornosti i nikada se ne koriste zasebno, a redoviti rad uvijek se provodi s najnovijim ugniježđenim odjeljkom, sama shema implicira da je važnije održavati tajnu postojanja podataka nego izgubiti te podatke).

Zapravo, uvijek se stvara 15 Shufflecake particija - korisnička lozinka je pridružena korištenim particijama, a neiskorištene particije dobivaju nasumično generiranu lozinku (nemoguće je razumjeti koliko se particija zapravo koristi). Kada se Shufflecake particije inicijaliziraju, disk, particija ili virtualni blok uređaj dodijeljen za njihovo postavljanje ispunjen je nasumičnim podacima, što onemogućuje prepoznavanje Shufflecake metapodataka i podataka u odnosu na opću pozadinu.

Implementacija Shufflecakea ima prilično visoke performanse, ali zbog prisustva opterećenja, otprilike je dvostruko sporija u propusnosti u usporedbi s diskovnom enkripcijom temeljenom na LUKS podsustavu. Korištenje Shufflecakea također rezultira dodatnim troškovima za RAM i prostor na disku za pohranjivanje servisnih podataka. Potrošnja memorije procjenjuje se na 60 MB po particiji, a prostora na disku na 1% ukupne veličine. Usporedbe radi, WORAM tehnika, slične namjene, dovodi do usporavanja od 5 do 200 puta uz 75% gubitka iskoristivog prostora na disku.

Alati i modul jezgre testirani su samo na Debianu i Ubuntuu s jezgrama 5.13 i 5.15 (podržano na Ubuntu 22.04). Napominje se da se projekt još uvijek treba smatrati radnim prototipom koji se ne bi trebao koristiti za pohranu važnih podataka. U budućnosti planiramo napraviti dodatne optimizacije za performanse, pouzdanost i sigurnost, kao i omogućiti mogućnost pokretanja sa Shufflecake particija.

Izvor: opennet.ru

Dodajte komentar