Shufflecake, инструмент за създаване на скрити обеми

разбъркване

Shufflecake е инструмент за Linux, който позволява създаването на множество скрити томове на устройство за съхранение по такъв начин, че е много трудно, дори при съдебна проверка, да се докаже съществуването на такива томове.

Фирмата за одит на сигурността Kudelski Security пусна набора от инструменти Shufflecake , който позволява създаването на скрити файлови системи, разпределени в наличното свободно пространство на съществуващи дялове, неразличими от произволни остатъчни данни. Тези секции са създадени по такъв начин, че без да се знае ключът за достъп, доказването на тяхното съществуване е проблематично, дори по време на криминалистичен анализ.

Проектът се позиционира като по-усъвършенствано решение от Truecrypt и Veracrypt за скриване на поверителни данни, предлагайки вградена поддръжка за Linux платформата и позволявайки ви да поставите до 15 скрити дяла на устройството, вложени един в друг, за да замъглите анализа на тяхното съществуване.

Създадените скрити дялове , по преценка на потребителя, могат да бъдат форматирани така, че да са подходящи за всяка файлова система, например ext4, xfs или btrfs. Всеки дял се третира като независимо виртуално блоково устройство със собствен ключ за отключване.

За да се скрият следите, се предлага поведенческият модел на „правдоподобно отричане“. По същество ценните данни се скриват като допълнителни слоеве в криптирани секции, съдържащи по-малко ценни данни, образувайки един вид скрита йерархия от секции. Под натиск собственикът на устройството може да разкрие ключа към криптираната секция, но други секции (до 15 вложени нива) могат да бъдат скрити в нея, което затруднява определянето на тяхното присъствие и доказването на съществуването им.

Shufflecake и модулът kernel са тествани само на Debian и Ubuntu с ядра 5.13 и 5.15 (Ubuntu 22.04 се поддържа). Трябва да се отбележи, че проектът все още трябва да се счита за работещ прототип и не трябва да се използва за съхранение на чувствителни данни.

В бъдеще планираме да направим допълнителни оптимизации за производителност, надеждност и сигурност, както и да предоставим възможност за зареждане от Shufflecake дялове.

Относно Shufflecake

Скриването се постига чрез формиране на всеки дял като набор от криптирани сегменти, разположени на произволни позиции върху устройството за съхранение. Всеки сегмент се създава динамично, когато дялът изисква допълнително пространство за съхранение. За да се усложни анализът, срезове от различни секции се преплитат.

Секциите на Shufflecake не са обвързани със съседни региони и порциите от всички секции се разбъркват. Информацията за използваните и безплатните порции се съхранява в картата на местоположението, приложена към всеки раздел, която се посочва от шифрованата заглавка. Картите и хедърът са криптирани и, без да знаят паролата, са неразличими от произволни данни.

Заглавката е разделена на слотове , всеки от които определя собствена секция и свързаните с нея сектори. Слотовете в заглавката са подредени и рекурсивно свързани: текущият слот съдържа ключа за декриптиране на параметрите на предишната (по-малко скрита) секция в йерархията, което позволява с една парола да се декриптират всички по-малко скрити секции, свързани с избрания елемент. Всяка по-малко скрита секция третира части от вложени секции като свободни.

По подразбиране всички вложени Shufflecake дялове имат същия видим размер като дяла от най-високо ниво. Например, ако на устройство с размер 1 GB се използват три дяла, всеки от тях ще бъде видим за системата като дял от 1 GB, а общото налично дисково пространство ще бъде споделено между всички дялове. Ако общото количество съхранени данни надвиши действителния размер на устройството, ще започнат да възникват I/O грешки.

Неотворените вложени секции не участват в разпределението на пространството; т.е. опитът за запълване на секция от по-високо ниво ще презапише данните във вложените секции, но няма да разкрие тяхното присъствие чрез анализ на размера на данните , които могат да бъдат поставени в секцията, преди да се генерира грешка (предполага се, че секциите от по-високо ниво съдържат непроменими данни). Данните не се използват случайно и никога поотделно, а редовната работа винаги се извършва с най-скорошната вложена секция; самата схема предполага, че основното е да се запази съществуването на данните в тайна, дори с цената на загубата им.

Имплементацията на Shufflecake предлага относително висока производителност, но поради режийни разходи, тя изпълнява около половината от това на криптиране на диска, базирано на подсистемата LUKS. Използването на Shufflecake също води до допълнителни разходи за RAM памет и дисково пространство за съхранение на служебни данни. Разходите за памет се оценяват на 60 MB на дял , а използването на дисково пространство се оценява на 1% от общия размер на дяла. За сравнение, подобно използваната техника WORAM води до 5- до 200-кратно забавяне със 75% загуба на използваемо дисково пространство.

Кодът за помощните програми (shufflecake-userland) и модула на ядрото на Linux (dm-sflc) е написан на C и е пуснат под лиценз GPLv3, което прави невъзможно включването на издадения модул на ядрото в основното ядро ​​на Linux поради несъвместимост под лиценза GPLv2, под който се доставя ядрото.

Ако се интересувате да научите повече, можете да намерите подробности на следния линк.


Добавяне като предпочитан източник в Google