Shufflecake yang diterbitkan, kit alat untuk mencipta partition cakera yang disulitkan tersembunyi

Syarikat pengauditan keselamatan Kudelski Security telah menerbitkan alat yang dipanggil Shufflecake yang membolehkan anda mencipta sistem fail tersembunyi yang berselerak merentasi ruang kosong yang tersedia pada partition sedia ada dan tidak dapat dibezakan daripada data sisa rawak. Pemisahan dibuat sedemikian rupa sehingga tanpa mengetahui kunci akses, sukar untuk membuktikan kewujudannya walaupun semasa menjalankan analisis forensik. Kod utiliti (shufflecake-userland) dan modul kernel Linux (dm-sflc) ditulis dalam C dan diedarkan di bawah lesen GPLv3, yang menjadikannya mustahil untuk memasukkan modul kernel yang diterbitkan dalam kernel Linux utama kerana ketidakserasian dengan lesen GPLv2 di mana kernel dibekalkan .

Projek ini diletakkan sebagai penyelesaian yang lebih maju daripada Truecrypt dan Veracrypt untuk menyembunyikan data yang memerlukan perlindungan, yang mempunyai sokongan asli untuk platform Linux dan membolehkan anda meletakkan sehingga 15 partition tersembunyi pada peranti, bersarang di dalam satu sama lain untuk mengelirukan penghuraian. kewujudan mereka. Jika penggunaan Shufflecake sendiri bukanlah rahsia, seperti yang boleh dinilai, sebagai contoh, dengan kehadiran utiliti yang sepadan dalam sistem, maka jumlah partition tersembunyi yang dibuat tidak dapat ditentukan. Pembahagian tersembunyi yang dibuat boleh diformatkan mengikut budi bicara pengguna untuk menampung mana-mana sistem fail, contohnya, ext4, xfs atau btrfs. Setiap partition dianggap sebagai peranti blok maya yang berasingan dengan kunci buka kuncinya sendiri.

Untuk mengelirukan jejak, adalah dicadangkan untuk menggunakan model tingkah laku "penafian munasabah", yang intipatinya ialah data berharga disembunyikan sebagai lapisan tambahan dalam bahagian yang disulitkan dengan data yang kurang berharga, membentuk sejenis hierarki bahagian tersembunyi. Sekiranya berlaku tekanan, pemilik peranti boleh mendedahkan kunci kepada partition yang disulitkan, tetapi partition lain (sehingga 15 tahap bersarang) mungkin tersembunyi dalam partition ini, dan menentukan kehadirannya dan membuktikan kewujudannya adalah bermasalah.

Menyembunyikan dicapai dengan membina setiap partition sebagai satu set kepingan yang disulitkan yang diletakkan pada kedudukan rawak pada peranti storan. Setiap kepingan dibuat secara dinamik apabila ruang storan tambahan diperlukan dalam partition. Untuk membuat analisis lebih sukar, kepingan bahagian yang berbeza diselang-seli, i.e. Bahagian kek shuffle tidak dipautkan ke kawasan bersebelahan dan kepingan dari semua bahagian dicampur. Maklumat tentang kepingan terpakai dan percuma disimpan dalam peta lokasi yang dikaitkan dengan setiap partition, yang dirujuk oleh pengepala yang disulitkan. Kad dan pengepala disulitkan dan, tanpa mengetahui kunci akses, tidak dapat dibezakan daripada data rawak.

Pengepala dibahagikan kepada slot, setiap satunya mentakrifkan bahagiannya sendiri dan kepingan yang berkaitan. Slot dalam pengepala disusun dan dipautkan secara rekursif - slot semasa mengandungi kunci untuk menyahsulit parameter bahagian sebelumnya dalam hierarki (yang kurang tersembunyi), membenarkan satu kata laluan digunakan untuk menyahsulit semua bahagian yang kurang tersembunyi yang dikaitkan dengan bahagian yang dipilih. Setiap partition yang kurang tersembunyi menganggap hirisan partition bersarang sebagai percuma.

Secara lalai, semua subseksyen Shufflecake mempunyai saiz yang kelihatan sama seperti bahagian peringkat atas. Sebagai contoh, jika terdapat tiga partition pada peranti 1 GB, setiap daripadanya akan kelihatan kepada sistem sebagai partition 1 GB dan jumlah ruang cakera yang tersedia akan dikongsi antara semua partition - jika jumlah saiz data yang disimpan melebihi saiz sebenar peranti, ia akan mula ralat I/O dilemparkan.

Bahagian bersarang yang tidak terbuka tidak mengambil bahagian dalam peruntukan ruang, i.e. percubaan untuk mengisi partition peringkat atas akan mengakibatkan data dicincang dalam partition bersarang, tetapi tidak akan memungkinkan untuk mendedahkan kehadiran mereka melalui analisis saiz data yang boleh diletakkan dalam partition sebelum ralat bermula (ia diandaikan bahawa partition atas mengandungi data tidak berubah untuk mengalih perhatian perhatian dan tidak pernah secara berasingan tidak digunakan, dan kerja tetap sentiasa dijalankan dengan bahagian bersarang yang paling terkini, skema itu sendiri membayangkan bahawa adalah lebih penting untuk mengekalkan rahsia kewujudan data daripada kehilangan data ini).

Malah, 15 partition Shufflecake sentiasa dibuat - kata laluan pengguna dilampirkan pada partition yang digunakan, dan partition yang tidak digunakan dibekalkan dengan kata laluan yang dijana secara rawak (tidak mungkin untuk memahami berapa banyak partition yang sebenarnya digunakan). Apabila partition Shufflecake dimulakan, cakera, partition, atau peranti blok maya yang diperuntukkan untuk peletakannya diisi dengan data rawak, yang menjadikannya mustahil untuk mengenal pasti metadata dan data Shufflecake terhadap latar belakang umum.

Pelaksanaan Shufflecake mempunyai prestasi yang agak tinggi, tetapi disebabkan kehadiran overhed, ia adalah kira-kira dua kali lebih perlahan dalam pemprosesan berbanding penyulitan cakera berdasarkan subsistem LUKS. Menggunakan Shufflecake juga mengakibatkan kos tambahan untuk RAM dan ruang cakera untuk menyimpan data perkhidmatan. Penggunaan memori dianggarkan pada 60 MB setiap partition, dan ruang cakera pada 1% daripada jumlah saiz. Sebagai perbandingan, teknik WORAM, sama dalam tujuan, membawa kepada kelembapan 5 hingga 200 kali dengan kehilangan 75% ruang cakera yang boleh digunakan.

Kit alat dan modul kernel hanya diuji pada Debian dan Ubuntu dengan kernel 5.13 dan 5.15 (disokong pada Ubuntu 22.04). Adalah diperhatikan bahawa projek itu masih harus dipertimbangkan sebagai prototaip yang berfungsi, yang tidak boleh digunakan untuk menyimpan data penting. Pada masa hadapan, kami merancang untuk membuat pengoptimuman tambahan untuk prestasi, kebolehpercayaan dan keselamatan, serta menyediakan keupayaan untuk but daripada partition Shufflecake.

Sumber: opennet.ru

Tambah komen