Shufflecake ir Linux rīks, kas ļauj izveidot vairākus slēptus sējumus glabāšanas ierīcē tā, ka ir ļoti grūti pat kriminālistikas pārbaudē pierādīt šādu sējumu esamību.
Drošības audita firma Kudelski Security ir izlaidusi rīku komplektu Shufflecake , kas ļauj izveidot slēptas failu sistēmas, kas sadalītas pieejamā brīvajā vietā esošajās nodalījumos, neatšķiramas no nejaušiem atlikušajiem datiem. Šīs sadaļas ir izveidotas tā, ka, nezinot piekļuves atslēgu, to esamības pierādīšana ir problemātiska pat kriminālistikas analīzes laikā.
Projekts sevi pozicionē kā modernāku risinājumu konfidenciālu datu slēpšanai nekā Truecrypt un Veracrypt, piedāvājot vietējo atbalstu Linux platformai un ļaujot ierīcē ievietot līdz pat 15 slēptām nodalījumiem, kas ir ligzdoti viens otrā, lai slēptu to esamības analīzi.
Izveidotās slēptās nodalījumus pēc lietotāja ieskatiem var formatēt jebkurai failu sistēmai, piemēram, ext4, xfs vai btrfs. Katrs nodalījums tiek uzskatīts par neatkarīgu virtuālo bloku ierīci ar savu atbloķēšanas atslēgu.
Lai slēptu pēdas, tiek piedāvāts "ticamas noliedzamības" uzvedības modelis. Būtībā vērtīgi dati tiek paslēpti kā papildu slāņi šifrētās sadaļās, kas satur mazāk vērtīgus datus, veidojot sava veida slēptu sadaļu hierarhiju. Spiediena ietekmē ierīces īpašnieks var atklāt šifrētās sadaļas atslēgu, bet citas sadaļas (līdz 15 ligzdotiem līmeņiem) var tikt paslēptas tajā, apgrūtinot to klātbūtnes noteikšanu un pierādīšanu.
Shufflecake un kodola modulis ir testēts tikai Debian un Ubuntu operētājsistēmās ar kodola versijām 5.13 un 5.15 (atbalstīts ir Ubuntu 22.04). Jāatzīmē, ka projekts joprojām jāuzskata par funkcionējošu prototipu un to nedrīkst izmantot sensitīvu datu glabāšanai.
Nākotnē mēs plānojam veikt papildu optimizāciju veiktspējai, uzticamībai un drošībai, kā arī nodrošināt iespēju palaist no Shufflecake nodalījumiem.
Par Shufflecake
Slēpšana tiek panākta, veidojot katru nodalījumu kā šifrētu segmentu kopu, kas ievietoti nejaušās pozīcijās atmiņas ierīcē. Katrs segments tiek izveidots dinamiski, kad nodalījumam ir nepieciešama papildu atmiņas vieta. Lai sarežģītu analīzi, šķēles no dažādām sadaļām tiek savstarpēji mijas.
Shufflecake sadaļas nav saistītas ar blakus esošajiem reģioniem, un daļas no visām sadaļām tiek sajauktas kopā. Informācija par izlietotajām un brīvajām porcijām tiek glabāta katrai sadaļai pievienotajā atrašanās vietu kartē, uz kuru atsaucas šifrētā galvene. Kartes un galvene ir šifrētas, un, nezinot piekļuves atslēgu, tās nevar atšķirt no nejaušiem datiem.
Galvene ir sadalīta slotos , no kuriem katrs definē savu sadaļu un saistītos sektorus. Sloti galvenē ir sakrauti un rekursīvi saistīti: pašreizējā slotā ir atslēga, lai atšifrētu iepriekšējās (mazāk slēptās) sadaļas parametrus hierarhijā, ļaujot ar vienu paroli atšifrēt visas mazāk slēptās sadaļas, kas saistītas ar atlasīto elementu. Katra mazāk slēptā sadaļa ligzdoto sadaļu daļas uzskata par brīvām.
Pēc noklusējuma visām ligzdotajām Shufflecake starpsienām ir tāds pats redzamais izmērs kā augstākā līmeņa starpsienai. Piemēram, ja 1 GB ierīcē tiek izmantotas trīs starpsienas, katra no tām sistēmai būs redzama kā 1 GB starpsiena, un kopējā pieejamā diska vieta tiks koplietota starp visām starpsienām. Ja kopējais saglabāto datu apjoms pārsniedz faktisko ierīces lielumu, sāks rasties I/O kļūdas.
Neatvērtas ligzdotās sadaļas nepiedalās vietas piešķiršanā; tas ir, mēģinot aizpildīt augstāka līmeņa sadaļu, dati ligzdotajās sadaļās tiks pārrakstīti, bet to klātbūtne netiks atklāta, analizējot datu lielumu , ko var ievietot sadaļā, pirms tiek ģenerēta kļūda (tiek pieņemts, ka augstāka līmeņa sadaļas satur nemaināmus datus). Dati netiek izmantoti nejauši un nekad atsevišķi, un regulārs darbs vienmēr tiek veikts ar jaunāko ligzdoto sadaļu; pati shēma nozīmē, ka galvenais ir saglabāt datu esamību noslēpumā, pat ja dati tiek zaudēti.
Shufflecake ieviešana piedāvā relatīvi augstu veiktspēju, taču pieskaitāmo izmaksu dēļ tā veic aptuveni uz pusi labāku diska šifrēšanu nekā LUKS apakšsistēma. Shufflecake izmantošana rada arī papildu RAM un diska vietas izmaksas pakalpojumu datu glabāšanai. Atmiņas izmaksas tiek lēstas 60 MB apmērā uz nodalījumu , un diska vietas izmantojums tiek lēsts 1% no kopējā nodalījuma lieluma. Salīdzinājumam, līdzīgi mērķtiecīgā WORAM tehnika rada 5 līdz 200 reižu palēninājumu ar 75% izmantojamās diska vietas zudumu.
Utilītu (shufflecake-userland) un Linux kodola moduļa (dm-sflc) kods ir rakstīts C valodā un izdots saskaņā ar GPLv3 licenci, kas neļauj iekļaut publicēto kodola moduli galvenajā Linux kodolā. saskaņā ar GPLv2 licenci, saskaņā ar kuru kodols tiek piegādāts.
Ja vēlaties uzzināt vairāk, sīkāku informāciju varat atrast tālāk norādītajā saitē.