Chapisha Shufflecake, zana ya kuunda sehemu za diski zilizosimbwa kwa njia fiche

Kampuni ya ukaguzi wa usalama ya Kudelski Security imechapisha zana inayoitwa Shufflecake ambayo hukuruhusu kuunda mifumo iliyofichwa ya faili iliyotawanyika katika nafasi inayopatikana ya bure kwenye sehemu zilizopo na isiyoweza kutofautishwa na data ya mabaki ya nasibu. Sehemu zimeundwa kwa njia ambayo bila kujua ufunguo wa ufikiaji, ni ngumu kudhibitisha uwepo wao hata wakati wa kufanya uchambuzi wa kisayansi. Msimbo wa huduma (shufflecake-userland) na moduli ya Linux kernel (dm-sflc) imeandikwa katika C na kusambazwa chini ya leseni ya GPLv3, ambayo inafanya kuwa haiwezekani kujumuisha moduli ya kernel iliyochapishwa kwenye kernel kuu ya Linux kwa sababu ya kutopatana na leseni ya GPLv2 ambayo punje hutolewa .

Mradi umewekwa kama suluhisho la hali ya juu zaidi kuliko Truecrypt na Veracrypt kwa kuficha data ambayo inahitaji ulinzi, ambayo ina usaidizi asilia kwa jukwaa la Linux na hukuruhusu kuweka hadi sehemu 15 zilizofichwa kwenye kifaa, zilizowekwa ndani ya kila mmoja ili kuchanganya uchanganuzi. ya kuwepo kwao. Ikiwa utumiaji wa Shufflecake yenyewe sio siri, kama inavyoweza kuhukumiwa, kwa mfano, kwa uwepo wa huduma zinazolingana kwenye mfumo, basi jumla ya sehemu zilizofichwa zilizoundwa haziwezi kuamua. Sehemu zilizofichwa zilizoundwa zinaweza kuumbizwa kwa hiari ya mtumiaji ili kushughulikia mfumo wowote wa faili, kwa mfano, ext4, xfs au btrfs. Kila kizigeu kinachukuliwa kama kifaa tofauti cha kuzuia mtandao na ufunguo wake wa kufungua.

Ili kuchanganya athari, inapendekezwa kutumia modeli ya tabia ya "kunyimwa inavyowezekana", kiini chake ni kwamba data muhimu imefichwa kama safu za ziada katika sehemu zilizosimbwa zenye data isiyo na thamani, na kuunda aina ya safu iliyofichwa ya sehemu. Katika kesi ya shinikizo, mmiliki wa kifaa anaweza kufichua ufunguo wa kizigeu kilichosimbwa, lakini sehemu zingine (hadi viwango 15 vilivyowekwa) zinaweza kufichwa kwenye kizigeu hiki, na kuamua uwepo wao na kudhibitisha uwepo wao ni shida.

Kuficha kunapatikana kwa kuunda kila kizigeu kama seti ya vipande vilivyosimbwa vilivyowekwa mahali pasipopangwa kwenye kifaa cha kuhifadhi. Kila kipande kinaundwa kwa nguvu wakati nafasi ya ziada ya kuhifadhi inahitajika katika kizigeu. Ili kufanya uchambuzi kuwa mgumu zaidi, vipande vya sehemu tofauti vinabadilishwa, i.e. Sehemu za Shufflecake haziunganishwa na maeneo ya karibu na vipande kutoka kwa sehemu zote vimechanganywa. Taarifa kuhusu vipande vilivyotumika na visivyolipishwa huhifadhiwa katika ramani ya eneo inayohusishwa na kila kizigeu, ambacho kinarejelewa na kichwa kilichosimbwa kwa njia fiche. Kadi na vichwa vimesimbwa kwa njia fiche na, bila kujua ufunguo wa ufikiaji, haviwezi kutofautishwa na data ya nasibu.

Kichwa kinagawanywa katika inafaa, ambayo kila mmoja hufafanua sehemu yake mwenyewe na vipande vinavyohusiana. Nafasi kwenye kichwa zimepangwa kwa rundo na kuunganishwa kwa kujirudia - nafasi ya sasa ina ufunguo wa kusimbua vigezo vya sehemu iliyotangulia kwenye daraja (iliyofichwa kidogo), ikiruhusu nenosiri moja kutumika kusimbua sehemu zote ambazo hazijafichwa sana zinazohusiana na. sehemu iliyochaguliwa. Kila kizigeu kisichofichwa hushughulikia vipande vya sehemu zilizowekwa kiota kama bure.

Kwa chaguo-msingi, vifungu vyote vya Shufflecake vina ukubwa unaoonekana sawa na sehemu ya kiwango cha juu. Kwa mfano, ikiwa kuna sehemu tatu kwenye kifaa cha GB 1, kila moja itaonekana kwenye mfumo kama kizigeu cha GB 1 na jumla ya nafasi ya diski inayopatikana itashirikiwa kati ya sehemu zote - ikiwa saizi ya jumla ya data iliyohifadhiwa itazidi. ukubwa halisi wa kifaa, itaanza kosa la I/O hutupwa.

Sehemu zilizowekwa kiota ambazo hazijafunguliwa hazishiriki katika ugawaji wa nafasi, i.e. jaribio la kujaza kizigeu cha kiwango cha juu litasababisha data kugawanywa katika sehemu zilizowekwa kiota, lakini haitafanya iwezekane kufichua uwepo wao kupitia uchanganuzi wa saizi ya data inayoweza kuwekwa kwenye kizigeu kabla ya kosa kuanza ( inadhaniwa kuwa sehemu za juu zina data isiyoweza kubadilika ili kuvuruga umakini na kamwe haitumiwi kando, na kazi ya kawaida hufanywa kila wakati na sehemu ya hivi karibuni ya kiota, mpango yenyewe unamaanisha kuwa ni muhimu zaidi kudumisha siri ya uwepo wa data kuliko kupoteza data hii).

Kwa kweli, sehemu 15 za Shufflecake huundwa kila wakati - nenosiri la mtumiaji limeunganishwa kwenye sehemu zilizotumiwa, na sehemu ambazo hazijatumiwa hutolewa na nenosiri lililotolewa kwa nasibu (haiwezekani kuelewa ni sehemu ngapi zinazotumiwa). Wakati kizigeu cha Shufflecake kinapoanzishwa, diski, kizigeu au kifaa cha kuzuia mtandaoni kilichotengwa kwa ajili ya uwekaji wao hujazwa na data nasibu, ambayo inafanya kuwa vigumu kutambua metadata ya Shufflecake na data dhidi ya usuli wa jumla.

Utekelezaji wa Shufflecake una utendakazi wa hali ya juu, lakini kwa sababu ya uwepo wa juu, ni takriban mara mbili ya polepole katika upitishaji ikilinganishwa na usimbaji fiche wa diski kulingana na mfumo mdogo wa LUKS. Kutumia Shufflecake pia husababisha gharama za ziada kwa RAM na nafasi ya diski kwa kuhifadhi data ya huduma. Matumizi ya kumbukumbu inakadiriwa kuwa 60 MB kwa kila kizigeu, na nafasi ya diski kwa 1% ya saizi ya jumla. Kwa kulinganisha, mbinu ya WORAM, sawa na kusudi, inasababisha kupungua kwa mara 5 hadi 200 na kupoteza kwa 75% ya nafasi ya disk inayoweza kutumika.

Zana ya zana na moduli ya kernel imejaribiwa tu kwenye Debian na Ubuntu na kokwa 5.13 na 5.15 (inayotumika kwenye Ubuntu 22.04). Imebainika kuwa mradi bado unapaswa kuzingatiwa kama mfano wa kufanya kazi, ambao haupaswi kutumiwa kuhifadhi data muhimu. Katika siku zijazo, tunapanga kufanya uboreshaji zaidi kwa utendakazi, kutegemewa na usalama, na pia kutoa uwezo wa kuwasha kutoka sehemu za Shufflecake.

Chanzo: opennet.ru

Kuongeza maoni