Diterbitake Shufflecake, toolkit kanggo nggawe partisi disk ndhelik sing didhelikake

Perusahaan audit keamanan Kudelski Security wis nerbitake alat sing diarani Shufflecake sing ngidini sampeyan nggawe sistem file sing didhelikake sing kasebar ing ruang bebas sing kasedhiya ing partisi sing ana lan ora bisa dibedakake saka data residual acak. Partisi digawe kanthi cara sing tanpa ngerti kunci akses, angel mbuktekake eksistensi sanajan nindakake analisis forensik. Kode utilitas (shufflecake-userland) lan modul kernel Linux (dm-sflc) ditulis ing C lan disebarake ing sangisore lisensi GPLv3, sing ndadekake ora bisa nyakup modul kernel sing diterbitake ing kernel Linux utama amarga ora kompatibel karo lisensi GPLv2 ing ngendi kernel diwenehake.

Proyèk iki dipanggonke minangka solusi sing luwih maju tinimbang Truecrypt lan Veracrypt kanggo ndhelikake data sing mbutuhake proteksi, sing nduweni dhukungan asli kanggo platform Linux lan ngidini sampeyan nyelehake nganti 15 partisi sing didhelikake ing piranti kasebut, dipasang ing njero saben liyane kanggo mbingungake parsing. saka orane. Yen panggunaan Shufflecake dhewe ora rahasia, kaya sing bisa ditemtokake, contone, kanthi anané utilitas sing cocog ing sistem kasebut, mula jumlah partisi sing didhelikake sing digawe ora bisa ditemtokake. Partisi sing didhelikake sing digawe bisa diformat miturut kawicaksanan pangguna kanggo nampung sistem file apa wae, contone, ext4, xfs utawa btrfs. Saben partisi dianggep minangka piranti pamblokiran virtual sing kapisah kanthi kunci bukak kunci dhewe.

Kanggo mbingungake jejak kasebut, disaranake nggunakake model prilaku "bisa ditolak", sing intine yaiku data sing penting didhelikake minangka lapisan tambahan ing bagean sing dienkripsi kanthi data sing kurang penting, mbentuk hierarki bagean sing didhelikake. Ing kasus tekanan, pemilik piranti bisa mbukak kunci partisi sing dienkripsi, nanging partisi liyane (nganti 15 tingkat nested) bisa didhelikake ing partisi iki, lan nemtokake anane lan mbuktekake anane masalah.

Singidaken digayuh kanthi mbangun saben partisi minangka set irisan ndhelik sing diselehake ing posisi acak ing piranti panyimpenan. Saben irisan digawe kanthi dinamis nalika papan panyimpenan tambahan dibutuhake ing partisi. Kanggo nggawe analisis luwih angel, irisan-irisan saka macem-macem bagean diganti, i.e. Bagean shufflecake ora disambung menyang wilayah sing cedhak lan irisan saka kabeh bagean dicampur. Informasi babagan irisan sing digunakake lan gratis disimpen ing peta lokasi sing ana gandhengane karo saben partisi, sing dirujuk dening header sing dienkripsi. Kertu lan header dienkripsi lan, tanpa ngerti kunci akses, ora bisa dibedakake saka data acak.

Header dipérang dadi slot, saben kang nemtokake bagean dhewe lan irisan-irisan gadhah. Slot ing header ditumpuk lan disambungake kanthi rekursif - slot saiki ngemot kunci kanggo dekripsi paramèter saka bagean sadurunge ing hirarki (sing kurang didhelikake), ngidini siji sandhi digunakake kanggo dekripsi kabeh bagean sing kurang didhelikake. bagean sing dipilih. Saben partisi sing kurang didhelikake nganggep irisan partisi nested minangka gratis.

Kanthi gawan, kabeh subbagian Shufflecake nduweni ukuran sing katon padha karo bagean tingkat paling dhuwur. Contone, yen ana telung partisi ing piranti 1 GB, saben-saben bakal katon ing sistem minangka partisi 1 GB lan total ruang disk sing kasedhiya bakal dituduhake ing antarane kabeh partisi - yen ukuran total data sing disimpen ngluwihi. ukuran nyata piranti, iku bakal miwiti aku / kesalahan O di buwang.

bagean Nested sing ora mbukak ora melu ing alokasi spasi, i.e. upaya kanggo ngisi partisi tingkat paling dhuwur bakal nyebabake data dicopot ing partisi bersarang, nanging ora bakal bisa mbukak anane liwat analisis ukuran data sing bisa diselehake ing partisi sadurunge kesalahan diwiwiti (iku Dianggep manawa partisi ndhuwur ngemot data sing ora bisa diganti kanggo ngganggu perhatian lan ora digunakake kanthi kapisah, lan karya reguler tansah ditindakake kanthi bagean nested paling anyar, skema kasebut nuduhake manawa luwih penting kanggo njaga rahasia eksistensi data tinimbang ilang data iki).

Nyatane, 15 partisi Shufflecake tansah digawe - tembung sandhi pangguna dipasang ing partisi sing digunakake, lan partisi sing ora digunakake diwenehake kanthi tembung sandhi sing digawe kanthi acak (ora mungkin ngerti jumlah partisi sing digunakake). Nalika partisi Shufflecake diinisialisasi, disk, partisi, utawa piranti pamblokiran virtual sing diparengake kanggo panggonane diisi data acak, sing ndadekake ora bisa ngenali metadata lan data Shufflecake ing latar mburi umum.

Implementasi Shufflecake nduweni kinerja sing cukup dhuwur, nanging amarga ana overhead, kira-kira kaping pindho luwih alon ing throughput dibandhingake karo enkripsi disk adhedhasar subsistem LUKS. Nggunakake Shufflecake uga nyebabake biaya tambahan kanggo RAM lan papan disk kanggo nyimpen data layanan. Konsumsi memori kira-kira 60 MB saben partisi, lan ruang disk 1% saka ukuran total. Kanggo mbandhingake, teknik WORAM, kanthi tujuan sing padha, nyebabake kalem 5 nganti 200 kaping kanthi mundhut 75% ruang disk sing bisa digunakake.

Modul toolkit lan kernel mung wis diuji ing Debian lan Ubuntu kanthi kernel 5.13 lan 5.15 (didhukung ing Ubuntu 22.04). Kacathet yen proyek kasebut isih kudu dianggep minangka prototipe sing bisa digunakake, sing ora bisa digunakake kanggo nyimpen data penting. Ing mangsa ngarep, kita rencana nggawe optimasi tambahan kanggo kinerja, linuwih lan keamanan, uga nyedhiyakake kemampuan kanggo boot saka partisi Shufflecake.

Source: opennet.ru

Add a comment