„Shufflecake“ yra „Linux“ skirtas įrankis, leidžiantis saugojimo įrenginyje sukurti kelis paslėptus tomus taip, kad būtų labai sunku, net ir atliekant teismo ekspertizę, įrodyti tokių tomų egzistavimą.
Saugumo audito įmonė „Kudelski Security“ išleido „Shufflecake“ įrankių rinkinį , leidžiantį kurti paslėptas failų sistemas, paskirstytas laisvoje esamų skaidinių vietoje, kurių negalima atskirti nuo atsitiktinių likusių duomenų. Šios sekcijos sukurtos taip, kad nežinant prieigos rakto, įrodyti jų egzistavimą yra problemiška net atliekant teismo ekspertizę.
Projektas pozicionuoja save kaip pažangesnį sprendimą konfidencialių duomenų slėpimui nei „Truecrypt“ ir „Veracrypt“, siūlydamas vietinę „Linux“ platformos paramą ir leisdamas įrenginyje patalpinti iki 15 paslėptų skaidinių, įdėtų vienas į kitą, kad būtų galima užmaskuoti jų egzistavimo analizę.
Sukurtus paslėptus skaidinius naudotojo nuožiūra galima formatuoti pagal bet kokią failų sistemą, pavyzdžiui, ext4, xfs arba btrfs. Kiekvienas skaidinys traktuojamas kaip nepriklausomas virtualus blokinis įrenginys su savo atrakinimo raktu.
Siekiant užmaskuoti pėdsakus, siūlomas „tikėtino paneigimo“ elgesio modelis. Iš esmės vertingi duomenys yra paslėpti kaip papildomi sluoksniai užšifruotose sekcijose, kuriose yra mažiau vertingų duomenų, taip suformuojant savotišką paslėptą sekcijų hierarchiją. Esant spaudimui, įrenginio savininkas gali atskleisti užšifruotos sekcijos raktą, tačiau kitos sekcijos (iki 15 įdėtinių lygių) gali būti paslėptos joje, todėl sunku nustatyti jų buvimą ir įrodyti jų egzistavimą.
„Shufflecake“ ir branduolio modulis buvo išbandyti tik „Debian“ ir „Ubuntu“ sistemose su 5.13 ir 5.15 branduolio versijomis (palaikoma „Ubuntu 22.04“). Reikėtų pažymėti, kad projektą vis dar reikėtų laikyti veikiančiu prototipu ir nereikėtų naudoti jautriems duomenims saugoti.
Ateityje planuojame papildomai optimizuoti našumą, patikimumą ir saugumą, taip pat suteikti galimybę paleisti iš Shufflecake skaidinių.
Apie Shufflecake
Paslėpimas pasiekiamas kiekvieną skaidinį suformuojant kaip užšifruotų segmentų , atsitiktinėse atminties įrenginio vietose išdėstytų, rinkinį . Kiekvienas segmentas sukuriamas dinamiškai, kai skaidiniui reikia papildomos atminties vietos. Siekiant apsunkinti analizę, skirtingų sekcijų pjūviai yra įterpiami.
„Shufflecake“ sekcijos nėra susietos su gretimomis sritimis, o visų skyrių dalys sumaišomos. Informacija apie panaudotas ir nemokamas dalis yra saugoma vietos žemėlapyje, pridedamame prie kiekvienos sekcijos, kuri nurodoma šifruota antrašte. Kortelės ir antraštė yra užšifruoti ir, nežinant slaptažodžio, neatskiriami nuo atsitiktinių duomenų.
Antraštė yra padalinta į lizdus , kurių kiekvienas apibrėžia savo skyrių ir susijusius sektorius. Antraštės lizdai yra sukrauti ir rekursyviai susieti: dabartiniame lizde yra raktas, skirtas iššifruoti ankstesnės (mažiau paslėptos) hierarchijos skyriaus parametrus, leidžiant vienu slaptažodžiu iššifruoti visas mažiau paslėptas sekcijas, susijusias su pasirinktu elementu. Kiekviena mažiau paslėpta sekcija įdėtųjų sekcijų dalis traktuoja kaip laisvas.
Pagal numatytuosius nustatymus visų įdėtųjų „Shufflecake“ skaidinių matomas dydis yra toks pat kaip ir aukščiausio lygio skaidinio. Pavyzdžiui, jei 1 GB įrenginyje naudojami trys skaidiniai, kiekvienas iš jų sistemai bus matomas kaip 1 GB skaidinys, o bendra galima disko vieta bus paskirstyta visiems skaidiniams. Jei bendras saugomų duomenų kiekis viršija faktinį įrenginio dydį, pradės kilti įvesties / išvesties klaidos.
Neatidarytos įdėtosios sekcijos nedalyvauja vietos paskirstyme; tai yra, bandant užpildyti aukštesnio lygio sekciją, įdėtosiose sekcijose esantys duomenys bus perrašyti, tačiau jų buvimas nebus atskleistas analizuojant duomenų, kuriuos galima įdėti į sekciją, dydį prieš sugeneruojant klaidą (daroma prielaida, kad aukštesnio lygio sekcijose yra nekintamų duomenų). Duomenys nenaudojami atsitiktinai ir niekada atskirai, o reguliarus darbas visada atliekamas su naujausia įdėtąja sekcija; pati schema reiškia, kad svarbiausia yra išlaikyti duomenų egzistavimą paslaptyje, net ir prarandant duomenis.
„Shufflecake“ įgyvendinimas pasižymi gana dideliu našumu, tačiau dėl pridėtinių išlaidų jis atlieka maždaug perpus geresnį disko šifravimą, pagrįstą LUKS posistemiu. Naudojant „Shufflecake“, taip pat patiriamos papildomos RAM ir disko vietos sąnaudos paslaugų duomenims saugoti. Atminties sąnaudos yra maždaug 60 MB vienam skaidiniui , o disko vietos naudojimas sudaro 1 % viso skaidinio dydžio. Palyginimui, panašiai tikslingas WORAM metodas sulėtina procesą 5–200 kartų ir praranda 75 % naudojamos disko vietos.
Komunalinių paslaugų (shufflecake-userland) ir Linux branduolio modulio (dm-sflc) kodas parašytas C kalba ir išleistas pagal GPLv3 licenciją, todėl paskelbto branduolio modulio neįmanoma įtraukti į pagrindinį Linux branduolį dėl nesuderinamumo. pagal GPLv2 licenciją, pagal kurią siunčiamas branduolys.
Jei norite sužinoti daugiau, išsamią informaciją galite rasti toliau pateiktoje nuorodoje.