Publikuar Shufflecake, një vegël për krijimin e ndarjeve të fshehura të enkriptuara të diskut

Kompania e auditimit të sigurisë Kudelski Security ka publikuar një mjet të quajtur Shufflecake që ju lejon të krijoni sisteme skedarësh të fshehur të shpërndarë në hapësirën e lirë të disponueshme në ndarjet ekzistuese dhe të padallueshme nga të dhënat e mbetura të rastësishme. Ndarjet krijohen në atë mënyrë që pa e ditur çelësin e aksesit, është e vështirë të vërtetohet ekzistenca e tyre edhe gjatë kryerjes së analizave kriminalistike. Kodi i shërbimeve (shufflecake-userland) dhe moduli i kernelit Linux (dm-sflc) është shkruar në C dhe shpërndahet nën licencën GPLv3, gjë që e bën të pamundur përfshirjen e modulit të botuar të kernelit në kernelin kryesor Linux për shkak të papajtueshmërisë me licencën GPLv2 sipas së cilës furnizohet kerneli.

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 vendase për platformën Linux dhe ju lejon të vendosni deri në 15 ndarje të fshehura në pajisje, të vendosura brenda njëra-tjetrës për të ngatërruar analizën. të ekzistencës së tyre. Nëse vetë përdorimi i Shufflecake nuk është sekret, siç mund të gjykohet, për shembull, nga prania e shërbimeve përkatëse në sistem, atëherë nuk mund të përcaktohet numri i përgjithshëm i ndarjeve të fshehura të krijuara. Ndarjet e fshehura të krijuara mund të formatohen sipas gjykimit të përdoruesit për të akomoduar çdo sistem skedari, për shembull, ext4, xfs ose btrfs. Çdo ndarje trajtohet si një pajisje e veçantë e bllokut virtual me çelësin e vet të zhbllokimit.

Për të ngatërruar gjurmët, propozohet të përdoret modeli i sjelljes së "mohimit të besueshëm", thelbi i të cilit është se të dhënat e vlefshme fshihen si shtresa shtesë në seksione të koduara me të dhëna më pak të vlefshme, duke formuar një lloj hierarkie të fshehur seksionesh. Në rast presioni, pronari i pajisjes mund të zbulojë çelësin e ndarjes së koduar, por ndarje të tjera (deri në 15 nivele të mbivendosur) mund të fshihen në këtë ndarje, dhe përcaktimi i pranisë së tyre dhe vërtetimi i ekzistencës së tyre është problematik.

Fshehja arrihet duke ndërtuar secilën ndarje si një grup fetash të koduara të vendosura në pozicione të rastësishme në pajisjen e ruajtjes. Çdo pjesë krijohet në mënyrë dinamike kur nevojitet hapësirë ​​shtesë ruajtëse në ndarje. Për ta bërë më të vështirë analizën, alternohen feta të seksioneve të ndryshme, d.m.th. Seksionet e shufflecake nuk janë të lidhura me rajone të afërta dhe feta nga të gjitha seksionet janë të përziera. Informacioni rreth pjesëve të përdorura dhe të lira ruhet në një hartë vendndodhjeje të lidhur me secilën ndarje, e cila referohet nga një kokë e koduar. Kartat dhe titulli janë të koduara dhe, pa e ditur çelësin e hyrjes, nuk dallohen nga të dhënat e rastësishme.

Titulli është i ndarë në lojëra elektronike, secila prej të cilave përcakton seksionin e vet dhe pjesët përkatëse. Vendet në kokë grumbullohen dhe lidhen në mënyrë rekursive - sloti aktual përmban çelësin për dekriptimin e parametrave të seksionit të mëparshëm në hierarki (ai më pak i fshehur), duke lejuar që një fjalëkalim të përdoret për të deshifruar të gjitha seksionet më pak të fshehura të lidhura me seksionin e zgjedhur. Çdo ndarje më pak e fshehur i trajton pjesët e ndarjeve të mbivendosura si të lira.

Si parazgjedhje, të gjitha nënseksionet Shufflecake kanë të njëjtën madhësi të dukshme si seksioni i nivelit të lartë. Për shembull, nëse ka tre ndarje në një pajisje 1 GB, secila prej tyre do të jetë e dukshme për sistemin si një ndarje 1 GB dhe hapësira totale e disponueshme e diskut do të ndahet midis të gjitha ndarjeve - nëse madhësia totale e të dhënave të ruajtura tejkalon madhësia aktuale e pajisjes, ajo do të fillojë një gabim I/O është hedhur.

Seksionet e mbivendosura që nuk janë të hapura nuk marrin pjesë në ndarjen e hapësirës, ​​d.m.th. një përpjekje për të mbushur një ndarje të nivelit të lartë do të rezultojë në copëzimin e të dhënave në ndarjet e mbivendosura, por nuk do të bëjë të mundur zbulimin e pranisë së tyre përmes analizës së madhësisë së të dhënave që mund të vendosen në ndarje përpara se të fillojë gabimi (ai supozohet se ndarjet e sipërme përmbajnë të dhëna të pandryshueshme për të shpërqendruar vëmendjen dhe kurrë nuk përdoren veçmas, dhe puna e rregullt kryhet gjithmonë me seksionin e folezuar më të fundit, vetë skema nënkupton që është më e rëndësishme të ruhet sekreti i ekzistencës së të dhëna se sa për të humbur këto të dhëna).

Në fakt, 15 ndarje Shufflecake krijohen gjithmonë - fjalëkalimi i përdoruesit është i bashkangjitur në ndarjet e përdorura dhe ndarjet e papërdorura furnizohen me një fjalëkalim të krijuar rastësisht (është e pamundur të kuptohet se sa ndarje përdoren në të vërtetë). Kur inicializohen ndarjet e Shufflecake, disku, ndarja ose pajisja e bllokut virtual të alokuar për vendosjen e tyre mbushet me të dhëna të rastësishme, gjë që e bën të pamundur identifikimin e meta të dhënave dhe të dhënave të Shufflecake në sfondin e përgjithshëm.

Zbatimi i Shufflecake ka performancë mjaft të lartë, por për shkak të pranisë së sipërme, është afërsisht dy herë më i ngadalshëm në xhiro në krahasim me kriptimin e diskut bazuar në nënsistemin LUKS. Përdorimi i Shufflecake rezulton gjithashtu në kosto shtesë për RAM-in dhe hapësirën në disk për ruajtjen e të dhënave të shërbimit. Konsumi i memories llogaritet në 60 MB për ndarje dhe hapësira në disk në 1% të madhësisë totale. Për krahasim, teknika WORAM, e ngjashme në qëllim, çon në një ngadalësim prej 5 deri në 200 herë me një humbje prej 75% të hapësirës së përdorshme të diskut.

Paketa e veglave dhe moduli i kernelit janë testuar vetëm në Debian dhe Ubuntu me kernel 5.13 dhe 5.15 (mbështetur në Ubuntu 22.04). Vihet re se projekti duhet të konsiderohet ende si një prototip pune, i cili nuk duhet të përdoret për të ruajtur të dhëna të rëndësishme. Në të ardhmen, ne planifikojmë të bëjmë optimizime shtesë për performancën, besueshmërinë dhe sigurinë, si dhe të ofrojmë mundësinë e nisjes nga ndarjet Shufflecake.

Burimi: opennet.ru

Shto një koment