Nai-publish na Shufflecake, isang toolkit para sa paglikha ng mga nakatagong naka-encrypt na disk partition

Ang kumpanya ng pag-audit ng seguridad na Kudelski Security ay nag-publish ng isang tool na tinatawag na Shufflecake na nagbibigay-daan sa iyong lumikha ng mga nakatagong file system na nakakalat sa magagamit na libreng espasyo sa mga umiiral na partisyon at hindi nakikilala sa random na natitirang data. Ang mga partisyon ay nilikha sa paraang nang hindi nalalaman ang access key, mahirap patunayan ang kanilang pag-iral kahit na nagsasagawa ng forensic analysis. Ang code ng mga utility (shufflecake-userland) at ang Linux kernel module (dm-sflc) ay nakasulat sa C at ipinamahagi sa ilalim ng lisensya ng GPLv3, na ginagawang imposibleng isama ang nai-publish na kernel module sa pangunahing Linux kernel dahil sa hindi pagkakatugma sa ang lisensya ng GPLv2 kung saan ibinibigay ang kernel .

Ang proyekto ay nakaposisyon bilang isang mas advanced na solusyon kaysa Truecrypt at Veracrypt para sa pagtatago ng data na nangangailangan ng proteksyon, na may katutubong suporta para sa Linux platform at nagbibigay-daan sa iyong maglagay ng hanggang 15 nakatagong partition sa device, na naka-nest sa loob ng isa't isa upang malito ang pag-parse. ng kanilang pag-iral. Kung ang paggamit ng Shufflecake mismo ay hindi isang lihim, tulad ng maaaring hatulan, halimbawa, sa pamamagitan ng pagkakaroon ng kaukulang mga kagamitan sa system, kung gayon ang kabuuang bilang ng mga nakatagong partisyon na nilikha ay hindi matukoy. Ang mga nilikhang nakatagong partisyon ay maaaring i-format sa pagpapasya ng user upang ma-accommodate ang anumang file system, halimbawa, ext4, xfs o btrfs. Ang bawat partition ay itinuturing bilang isang hiwalay na virtual block device na may sarili nitong unlock key.

Upang malito ang mga bakas, iminungkahi na gamitin ang modelo ng pag-uugali na "posibleng pagtanggi", ang kakanyahan nito ay ang mahalagang data ay nakatago bilang karagdagang mga layer sa mga naka-encrypt na seksyon na may hindi gaanong mahalagang data, na bumubuo ng isang uri ng nakatagong hierarchy ng mga seksyon. Sa kaso ng presyon, maaaring ibunyag ng may-ari ng device ang susi sa naka-encrypt na partisyon, ngunit ang iba pang mga partisyon (hanggang sa 15 nested na antas) ay maaaring nakatago sa partisyon na ito, at ang pagtukoy sa kanilang presensya at pagpapatunay ng kanilang pag-iral ay may problema.

Nakakamit ang pagtatago sa pamamagitan ng pagbuo ng bawat partition bilang isang set ng mga naka-encrypt na hiwa na inilagay sa mga random na posisyon sa storage device. Ang bawat slice ay dynamic na nilikha kapag kailangan ng karagdagang storage space sa partition. Upang gawing mas mahirap ang pagsusuri, ang mga hiwa ng iba't ibang mga seksyon ay kahalili, i.e. Ang mga seksyon ng shufflecake ay hindi naka-link sa magkadikit na mga rehiyon at ang mga hiwa mula sa lahat ng mga seksyon ay pinaghalo. Ang impormasyon tungkol sa mga ginamit at libreng hiwa ay iniimbak sa isang mapa ng lokasyon na nauugnay sa bawat partition, na nire-reference ng isang naka-encrypt na header. Ang mga card at header ay naka-encrypt at, nang hindi nalalaman ang access key, ay hindi nakikilala sa random na data.

Ang header ay nahahati sa mga puwang, na ang bawat isa ay tumutukoy sa sarili nitong seksyon at nauugnay na mga hiwa. Ang mga puwang sa header ay nakasalansan at paulit-ulit na naka-link - ang kasalukuyang slot ay naglalaman ng susi upang i-decrypt ang mga parameter ng nakaraang seksyon sa hierarchy (ang hindi gaanong nakatago), na nagpapahintulot sa isang password na magamit upang i-decrypt ang lahat ng hindi gaanong nakatagong mga seksyon na nauugnay sa ang napiling seksyon. Itinuturing ng bawat hindi gaanong nakatagong partition ang mga hiwa ng nested partition bilang libre.

Bilang default, ang lahat ng mga subsection ng Shufflecake ay may parehong nakikitang laki gaya ng seksyong pinakamataas na antas. Halimbawa, kung mayroong tatlong partition sa isang 1 GB na device, ang bawat isa sa kanila ay makikita ng system bilang 1 GB na partition at ang kabuuang available na disk space ay ibabahagi sa lahat ng partition - kung ang kabuuang sukat ng nakaimbak na data ay lumampas. ang aktwal na laki ng device, ito ay magsisimula ng isang I/O error ay itinapon.

Ang mga nested na seksyon na hindi bukas ay hindi lumalahok sa paglalaan ng espasyo, i.e. ang pagtatangka na punan ang isang top-level na partition ay magreresulta sa data na ginutay-gutay sa mga nested partition, ngunit hindi magiging posible na ipakita ang kanilang presensya sa pamamagitan ng pagsusuri sa laki ng data na maaaring ilagay sa partition bago magsimula ang error (ito ay ipinapalagay na ang itaas na mga partisyon ay naglalaman ng hindi nababagong data upang makagambala sa atensyon at hindi kailanman hiwalay na hindi ginagamit, at ang regular na gawain ay palaging isinasagawa kasama ang pinakabagong nested na seksyon, ang pamamaraan mismo ay nagpapahiwatig na mas mahalaga na mapanatili ang lihim ng pagkakaroon ng data kaysa mawala ang data na ito).

Sa katunayan, 15 mga partisyon ng Shufflecake ay palaging nilikha - ang password ng gumagamit ay naka-attach sa mga ginamit na partisyon, at ang hindi nagamit na mga partisyon ay binibigyan ng random na nabuong password (imposibleng maunawaan kung gaano karaming mga partisyon ang aktwal na ginagamit). Kapag sinimulan ang mga partition ng Shufflecake, ang disk, partition, o virtual block device na inilaan para sa kanilang pagkakalagay ay mapupuno ng random na data, na ginagawang imposibleng matukoy ang metadata at data ng Shufflecake sa pangkalahatang background.

Ang pagpapatupad ng Shufflecake ay may medyo mataas na pagganap, ngunit dahil sa pagkakaroon ng overhead, ito ay humigit-kumulang dalawang beses na mas mabagal sa throughput kumpara sa disk encryption batay sa LUKS subsystem. Ang paggamit ng Shufflecake ay nagreresulta din sa mga karagdagang gastos para sa RAM at espasyo sa disk para sa pag-iimbak ng data ng serbisyo. Ang pagkonsumo ng memorya ay tinatantya sa 60 MB bawat partition, at disk space sa 1% ng kabuuang laki. Para sa paghahambing, ang pamamaraan ng WORAM, na katulad ng layunin, ay humahantong sa paghina ng 5 hanggang 200 beses na may 75% na pagkawala ng magagamit na espasyo sa disk.

Ang toolkit at kernel module ay sinubukan lamang sa Debian at Ubuntu na may mga kernel 5.13 at 5.15 (suportado sa Ubuntu 22.04). Nabanggit na ang proyekto ay dapat pa ring isaalang-alang bilang isang gumaganang prototype, na hindi dapat gamitin upang mag-imbak ng mahalagang data. Sa hinaharap, plano naming gumawa ng mga karagdagang pag-optimize para sa pagganap, pagiging maaasahan at seguridad, pati na rin magbigay ng kakayahang mag-boot mula sa mga partisyon ng Shufflecake.

Pinagmulan: opennet.ru

Magdagdag ng komento