Kudelski Security, mis on spetsialiseerunud turvaaudititele, avaldas tööriista Shufflecake, mis võimaldab luua varjatud failisüsteeme, hajutatud olemasoleva vaba ruumi seas olemasolevates osades ja mida ei erista juhuslikud jääkandmed. Osad luuakse viisil, et juurdepääsuvõtit teadmata on nende olemasolu probleemne isegi kriminaalanalüüsi läbiviimisel. Utiliitide (shufflecake-userland) ja Linuxi tuumamooduli (dm-sflc) kood on kirjutatud C keeles ja seda levitatakse GPLv3 litsentsi alusel, mis välistab avaldatud tuumamooduli lisamise Linuxi tuuma põhikoosseisu, kuna see on vastuolus GPLv2 litsentsiga, millega tuum tarnitakse.
Projekt positsioneerib end kui täiustatud lahendus võrreldes Truecrypti ja Veracryptiga, mis pakub kaitset vajavate andmete varjamiseks ning omab natiivset tuge Linuxi platvormile, võimaldades luua kuni 15 peidetud ja üksteisesse sisestatud partitsiooni seadmele nende olemasolu segadusse ajamiseks. Kui Shufflecake'i kasutamine ei tekita saladusi, mida võib näiteks hinnata selle süsteemis olevate vastavate utiliidide kaudu, siis on loodud peidetud partitsioonide koguarvu määramine võimatu. Kasutaja äranägemisel võivad loodud peidetud partitsioonid olla vormindatud mis tahes failisüsteemi, näiteks ext4, xfs või btrfs jaoks. Iga partitsioon töödeldakse eraldi virtuaalse plokkseadmeseadmena koos oma lukustusvõtmega.
Jalgade segamiseks soovitatakse kasutada käitumismudelit "uskumatu eitamine" (plausible deniability), mille sisu seisneb väärtuslike andmete varjamises lisakihina vähem väärtuslike andmete krüpteeritud osades, luues omamoodi peidetud osade hierarhia. Surve korral võib seadme omanik paljastada võtme krüpteeritud osale, kuid sellel osal võivad olla varjatud muud osad (kuni 15 tasemeni), samas kui nende olemasolu ja tõestamine on keeruline.
Varjamine toimub, luues iga osa krüpteeritud viiludest, mis asuvad juhuslikes kohtades salvestusseadmes. Iga viil genereeritakse dünaamiliselt hetkel, kui osas on vajalik täiendav salvestusruum. Analüüsi raskendamiseks vahelduvad erinevate osade viilud, st Shufflecake'i osad ei ole seotud pidevate aladega ja kõigi osade viilud segatakse. Teave kasutatavate ja vabade viilude kohta säilitatakse igale osale seotud asukohakaardis, millele viitab krüpteeritud pealkiri. Kaardid ja pealkiri on krüpteeritud, ja ilma ligipääsukoode teadmata ei saa neid eristada juhuslikest andmetest.
Pealkiri on jagatud segmentideks, kus igaühel on oma osa ja sellega seotud plokid. Pealkirja segmentide asetus on virnastatud ja rekurssiivselt seotud — praegune segment sisaldab võtme, et tõlgendada eelneva osa (vähem peidetud) parameetreid, mis võimaldab kasutada ühte parooli kõigi valitud osa vähem peidetud osade tõlgendamiseks. Iga vähem peidetud osa käsitleb sisemiste osade plokke kui vabadeid.
Vaikimisi on kõik sisemised osad Shufflecake'il sama nähtava suurusega kui peamine osa. Näiteks, kui 1 GB seadmel on kolm osa, siis igaüht nähakse süsteemi poolt 1 GB suuruse osana ja kogu saadaval olev kettaruum jagatakse kõigis osades — kui salvestatud andmete kogus ületab seadme tegelikku suurust, algab sisend/väljund viga.
Avatud alamjaotised osale määratud ruumi jagamises ei osale, st katse täita peamine jaotus toob kaasa andmete ülekirjutamise alamjaotistes, kuid ei võimalda nende olemasolu avada andmete suuruse analüüsi kaudu, mille maht mahub jaotisse enne veateate väljastamist (eeldatakse, et peamised jaotised sisaldavad muutumatuid andmeid tähelepanu hajutamiseks ja neid ei kasutata kunagi eraldi, samas kui tavapärane töö toimub alati kõige viimasest alamjaotusest; skeem eeldab, et andmete olemasolu saladuse säilitamine on olulisem kui nende andmete kaotamine).
Tegelikult luuakse alati 15 jaotust Shufflecake – kasutatavad jaotused seotakse kasutaja parooliga, samas kui kasutamata jaotused varustatakse juhuslikult genereeritud parooliga (pole võimalik aru saada, kui palju jaotusi tegelikult kasutatakse). Shufflecake'i jaotuste initsialiseerimisel täidetakse nende paigutamiseks ette nähtud ketas, jaotus või virtuaalne plokkseade juhuslike andmetega, mis ei võimalda määrata Shufflecake'i metandmete ja andmete üldises taustas.
Shufflecake'i rakendamine pakub suhteliselt head jõudlust, kuid tänu kahele korrusele kulude tõttu on see ligikaudu kaks korda madalam salvestuseedastuse võimekusest võrreldes LUKS-põhise kettakrüptimisega. Shufflecake'i kasutamine toob kaasa ka täiendavad kulud RAM-i ja ketasektori teenindusandmete jaoks. Mälukulud on hinnanguliselt 60 MB iga partitsiooni kohta ning kettaruumi kulud 1% kogu mahust. Võrdluseks, sarnased rakendused nagu WORAM võivad põhjustada aeglustumist 5 kuni 200 korda koos 75% kasuliku kettaruumi kadumisega.
Tööriistakomplekt ja tuumamoodul on katsetatud ainult Debianis ja Ubuntu's, kasutades kerneli versioone 5.13 ja 5.15 (toetab tööd Ubuntu 22.04-s). Märgitakse, et projekti tuleks praegu käsitleda kui töötavat prototüüpi, mida ei tohiks kasutada oluliste andmete salvestamiseks. Tulevikus on plaanis täiendav jõudluse, usaldusväärsuse ja turvalisuse optimeerimine, samuti võimaluse tagamine käivitamiseks Shufflecake'i partitsioonidelt.
Allikas: opennet.ru
