Kompania Kudelski Security, e specializuar në auditimin e sigurisë, publikoi mjetin Shufflecake, që lejon krijimin e sistemeve të fshehta të skedarëve, të shpërndara në hapësirën e lirë ekzistuese në pjesët aktuale dhe të padallueshme nga të dhënat e rastësishme. Pjesët krijohen në një mënyrë që, pa e ditur çelësin e qasjes, është e vështirë të provohet ekzistenca e tyre, madje edhe gjatë analizës kriminalistike. Kodi i utiliteteve (shufflecake-userland) dhe modulit të kernelit Linux (dm-sflc) është shkruar në gjuhën C dhe shpërndahen nën licencën GPLv3, e cila e bën të pamundur përfshirjen e modulit të publikuar në bërthamën kryesore të kernelit Linux për shkak të qëllimeve të pafavorshme me licencën GPLv2, nën të cilën shpërndahet bërthama.
Projekti pozicionohet si njĂ« zgjidhje mĂ« e avancuar se Truecrypt dhe Veracrypt pĂ«r fshehjen e tĂ« dhĂ«nave qĂ« kĂ«rkojnĂ« mbrojtje, e cila ka mbĂ«shtetje natively pĂ«r platformĂ«n Linux dhe lejon vendosjen e deri nĂ« 15 pjesĂ«ve tĂ« fshehta nĂ« pajisje, tĂ« vendosura njĂ« brenda tjetrĂ«s pĂ«r tĂ« ngatĂ«rruar zbardhjen e ekzistencĂ«s sĂ« tyre. NĂ«se aplikimi i vetĂ« Shufflecake nuk paraqet sekrete, çka mund tĂ« gjykohet, pĂ«r shembull, nga prania e utiliteteve pĂ«rkatĂ«se nĂ« sistem, numri i pĂ«rgjithshĂ«m i pjesĂ«ve tĂ« krijuara tĂ« fshehta Ă«shtĂ« i pamundur tĂ« pĂ«rcaktohet. PjesĂ«t e fshehta tĂ« krijuara sipas dĂ«shires sĂ« pĂ«rdoruesit mund tĂ« formatahen pĂ«r tĂ« mbajtur çdo sistem skedarĂ«sh, pĂ«r shembull, ext4, xfs ose btrfs. Ădo pjesĂ« trajtohet si njĂ« pajisje virtuale tĂ« veçantĂ« me çelĂ«sin e saj tĂ« zhbllokimit.
Për të mbuluar gjurmët, rekomandohet përdorimi i modelit të sjelljes «mohoja e besueshme» (plausible deniability), i cili thekson se të dhënat me vlerë fshihen si shtresa shtesë në pjesët e kriptuara me të dhëna më pak të vlefshme, duke formuar një hierarki të fshehtë të veçorive. Në rast presioni, pronari i pajisjes mund të zbulojë çelësin për pjesën e kriptuar, por në këtë pjesë mund të fshihen pjesë të tjera (deri në 15 nivele të ndërlidhura), dhe të përcaktosh praninë e tyre dhe të provosh ekzistencën e tyre është e vështirë.
Fshehja sigurohet pĂ«rmes formimit tĂ« çdo pjese si njĂ« grup shiresh tĂ« kriptuara, tĂ« vendosura nĂ« pozita tĂ« rastĂ«sishme nĂ« pajisjen e ruajtjes. Ădo shire krijohet dinamikiisht nĂ« momentin kur nĂ« pjesĂ« kĂ«rkohet hapĂ«sirĂ« shtesĂ« pĂ«r ruajtje. PĂ«r tĂ« vĂ«shtirĂ«suar analizĂ«n, shires tĂ« pjesĂ«ve tĂ« ndryshme alternojnĂ«, pra, pjesĂ«t Shufflecake nuk lidhĂ«n me zona tĂ« vazhdueshme dhe shires tĂ« tĂ« gjitha pjesĂ«ve shpĂ«rndahen. Informacioni mbi shiret e pĂ«rdorura dhe ato tĂ« lira ruhet nĂ« njĂ« hartĂ« lokacioni tĂ« lidhur me çdo pjesĂ«, e cila referohet nga titulli i kriptuar. Harta dhe titulli janĂ« tĂ« kriptuara dhe pa njohuri tĂ« çelĂ«sit tĂ« qasjes nuk dallohen nga tĂ« dhĂ«nat e rastĂ«sishme.
Kreu ndahet nĂ« vende, secili prej tĂ« cilĂ«ve pĂ«rcakton seksionin e tij dhe pjesĂ«t e lidhura me tĂ«. Vendosjet nĂ« krye janĂ« tĂ« vendosura nĂ« njĂ« rend tĂ« stack dhe janĂ« tĂ« lidhura recursivisht - vendi aktual pĂ«rmban çelĂ«sin pĂ«r tĂ« dekoduar parametrat e seksionit paraardhĂ«s nĂ« hierarki (mĂ« pak i fshehtĂ«), gjĂ« qĂ« lejon pĂ«rdorimin e njĂ« fjale kalimi pĂ«r tĂ« dekoduar tĂ« gjitha seksionet e lidhura mĂ« pak tĂ« fshehta me seksionin e zgjedhur. Ădo seksion mĂ« pak i fshehtĂ« e konsideron pjesĂ«t e ndĂ«rlidhura si tĂ« lira.
Në mënyrë default, të gjitha seksionet e ndërlidhura të Shufflecake kanë të njëjtin përmasë të dukshme si seksioni i nivelit të lartë. Për shembull, nëse në një pajisje të madhësisë 1 GB janë aktivizuar tre seksione, secili prej tyre do të jetë i dukshëm për sistemin si një seksion me madhësi 1 GB dhe hapësira e gjithanshme optimale e diskut do të përdoret në të gjitha seksionet - nëse përmbledhja e madhësisë së të dhënave të ruajtura kalon madhësinë reale të pajisjes, do të shfaqet një gabim hyrje/dalje.
Pjesët e brendshme të pa hapura nuk marrin pjesë në shpërndarjen e hapësirës, pra, përpjekja për të mbushur pjesën e nivelit të lartë do të çonte në fshirjen e të dhënave në pjesët e brendshme, por nuk do të ofronte mundësi për të zbuluar ekzistencën e tyre përmes analizës së madhësisë së të dhënave, të cilat mund të vendosen në pjesë para fillimit të gabimit (supozimi është se pjesët e sipërme përmbajnë të dhëna të pandryshueshme për të shpërqendruar vëmendjen dhe kurrë nuk përdoren veçmas, ndërsa puna normale bëhet gjithmonë me pjesën më të fundit të brendshme, skema vetë nënkupton se është më e rëndësishme të ruhet sekreti i ekzistencës së të dhënave, sesa humbja e këtyre të dhënave).
Zakonisht krijohen 15 seksione të Shufflecake - përsekcionet e përdorura lidhen me fjalëkalimin e përdoruesit, ndërsa seksionet e papërdorura janë të pajisura me një fjalëkalim të gjeneruar rastësisht (nuk është e mundur të kuptohet sa seksione realisht përdoren). Në inicializimin e seksioneve të Shufflecake, disku, seksioni ose pajisja virtuale bllokuese e ndarë për vendosjen e tyre mbushen me të dhëna të rastësishme, gjë që nuk lejon përcaktimin në sfondin e përgjithshëm të metadathave dhe të dhënave të Shufflecake.
Implementimi i Shufflecake ka një performancë të mjaftueshme të lartë, por për shkak të kostove të sakrificës është rreth dy herë më i ngadalshëm në kapacitetin e krahasuar me kriptimin e disqeve mbi bazën e nën-sistemit LUKS. Përdorimi i Shufflecake gjithashtu sjell kosto shtesë të memorie dhe hapësirë për të dhëna shërbimi në disk. Kostoja e memorieve vlerësohet në 60 MB për secilin seksion, ndërsa hapësira në disk është 1% e madhësisë totale. Për krahasim, një teknikë e ngjashme me qëllim WORAM çon në ngadalësim nga 5 deri në 200 herë me një humbje prej 75% të hapësirës së dobishme në disk.
Veglat dhe moduli i bërthamës janë testuar vetëm duke punuar në Debian dhe Ubuntu me bërthamat 5.13 dhe 5.15 (përkrahja e punës në Ubuntu 22.04). Vlerësohet se projekti duhet të merret në konsideratë si një prototip funksional, i cili nuk duhet përdorur për ruajtjen e të dhënave të rëndësishme. Në të ardhmen planifikohet të kryhet optimizim shtesë për performancën, besueshmërinë dhe sigurinë, si dhe të mundësohet ngarkimi nga seksionet Shufflecake.
Burimi: opennet.ru
