Shufflecake, жасырын шифрланған диск бөлімдерін жасауға арналған құралдар жинағы жарияланды

Kudelski Security қауіпсіздік аудиті компаниясы Shufflecake деп аталатын құралды шығарды, ол сізге бар бөлімдердегі бос кеңістікте шашыраңқы және кездейсоқ қалдық деректерден ажыратылмайтын жасырын файлдық жүйелерді жасауға мүмкіндік береді. Бөлімдер рұқсат кілтін білмей, сот сараптамасын жүргізген кезде де олардың бар екенін дәлелдеу қиын болатындай етіп жасалған. Утилиталардың (shufflecake-userland) және Linux ядро ​​модулінің (dm-sflc) коды C тілінде жазылған және GPLv3 лицензиясы бойынша таратылады, бұл жарияланған ядро ​​модулін негізгі Linux ядросына қосу мүмкін емес. ядро жеткізілетін GPLv2 лицензиясы.

Жоба қорғауды қажет ететін деректерді жасыру үшін Truecrypt және Veracrypt-қа қарағанда жетілдірілген шешім ретінде орналастырылған, ол Linux платформасы үшін жергілікті қолдауға ие және талдауды шатастыру үшін бір-бірінің ішіне салынған құрылғыда 15 жасырын бөлімді орналастыруға мүмкіндік береді. олардың бар болуы. Егер Shufflecake-ті пайдаланудың өзі құпия болмаса, мысалы, жүйеде сәйкес утилиталардың болуы арқылы бағалауға болады, онда жасалған жасырын бөлімдердің жалпы санын анықтау мүмкін емес. Құрылған жасырын бөлімдерді кез келген файлдық жүйені, мысалы, ext4, xfs немесе btrfs орналастыру үшін пайдаланушының қалауы бойынша пішімдеуге болады. Әрбір бөлім құлпын ашу кілті бар жеке виртуалды блок құрылғысы ретінде қарастырылады.

Іздерді шатастыру үшін «сенімді теріске шығару» мінез-құлық моделін пайдалану ұсынылады, оның мәні құнды деректер шифрланған бөлімдерде қосымша қабаттар ретінде құндылығы аз деректермен жасырылады, бөлімдердің жасырын иерархиясының түрін құрайды. Қысым жағдайында құрылғының иесі шифрланған бөлімнің кілтін аша алады, бірақ бұл бөлімде басқа бөлімдер (15 кірістірілген деңгейге дейін) жасырылуы мүмкін және олардың болуын анықтау және олардың бар екенін дәлелдеу қиын.

Жасыру әрбір бөлімді сақтау құрылғысында кездейсоқ орындарға орналастырылған шифрланған кесінділер жиынтығы ретінде құру арқылы қол жеткізіледі. Бөлімде қосымша сақтау орны қажет болғанда әрбір кесінді динамикалық түрде жасалады. Талдауды қиындату үшін әртүрлі бөлімдердің кесінділері кезектеседі, яғни. Shufflecake бөлімдері іргелес аймақтармен байланыстырылмайды және барлық бөлімдердің кесектері араласады. Пайдаланылған және бос кесінділер туралы ақпарат шифрланған тақырып арқылы сілтеме жасалған әрбір бөліммен байланысты орналасу картасында сақталады. Карталар мен тақырып шифрланған және кіру кілтін білмей, кездейсоқ деректерден ажыратылмайды.

Тақырып ұяшықтарға бөлінген, олардың әрқайсысы өз бөлімін және байланысты кесінділерін анықтайды. Тақырыптағы ұяшықтар жинақталған және рекурсивті түрде байланыстырылған - ағымдағы ұяшық иерархиядағы алдыңғы бөлімнің параметрлерін шифрлау кілтін қамтиды (азырақ жасырын), бір құпия сөзбен байланысты барлық аз жасырын бөлімдердің шифрын ашу үшін пайдалануға мүмкіндік береді. таңдалған бөлім. Әрбір азырақ жасырын бөлім кірістірілген бөлімдердің бөліктерін бос ретінде қарастырады.

Әдепкі бойынша, барлық Shufflecake ішкі бөлімдері жоғарғы деңгейдегі бөліммен бірдей көрінетін өлшемге ие. Мысалы, 1 ГБ құрылғыда үш бөлім болса, олардың әрқайсысы жүйеге 1 ГБ бөлім ретінде көрінеді және жалпы қолжетімді дискілік кеңістік барлық бөлімдер арасында ортақ болады - егер сақталған деректердің жалпы өлшемі құрылғының нақты өлшемі, ол енгізу/шығару қатесі жіберіледі.

Ашық емес кірістірілген бөлімдер кеңістікті бөлуге қатыспайды, яғни. жоғарғы деңгейлі бөлімді толтыру әрекеті кірістірілген бөлімдерде деректердің ұсақталуына әкеледі, бірақ қате басталғанға дейін бөлімге орналастыруға болатын деректердің өлшемін талдау арқылы олардың болуын анықтауға мүмкіндік бермейді (ол жоғарғы бөлімдерде назар аудару үшін өзгермейтін деректер бар және ешқашан бөлек пайдаланылмайды деп болжанады және тұрақты жұмыс әрқашан ең соңғы кірістірілген бөліммен жүзеге асырылады, схеманың өзі бар құпияны сақтау маңыздырақ екенін білдіреді. деректер бұл деректерді жоғалтудан гөрі).

Іс жүзінде 15 Shufflecake бөлімі әрқашан жасалады - пайдаланушы құпия сөзі пайдаланылған бөлімдерге тіркеледі, ал пайдаланылмаған бөлімдер кездейсоқ жасалған құпия сөзбен қамтамасыз етіледі (қанша бөлімнің нақты пайдаланылғанын түсіну мүмкін емес). Shufflecake бөлімдері инициализацияланған кезде, оларды орналастыру үшін бөлінген диск, бөлім немесе виртуалды блок құрылғысы кездейсоқ деректермен толтырылады, бұл Shufflecake метадеректері мен деректерін жалпы фонда анықтау мүмкін емес.

Shufflecake іске асыру айтарлықтай жоғары өнімділікке ие, бірақ үстеме шығындардың болуына байланысты LUKS ішкі жүйесіне негізделген дискілік шифрлаумен салыстырғанда өткізу қабілеті шамамен екі есе баяу. Shufflecake пайдалану сонымен қатар қызмет деректерін сақтауға арналған жедел жады мен дискілік кеңістік үшін қосымша шығындарға әкеледі. Жадты тұтыну бір бөлімге 60 МБ, ал дискілік кеңістік жалпы өлшемнің 1% құрайды. Салыстыру үшін, мақсаты бойынша ұқсас WORAM техникасы дискілік кеңістіктің 5% жоғалтуымен 200-75 есе баяулауына әкеледі.

Құралдар жинағы мен ядро ​​модулі 5.13 және 5.15 ядролары бар Debian және Ubuntu жүйелерінде ғана сыналған (Ubuntu 22.04 нұсқасында қолдау көрсетіледі). Жоба әлі де маңызды деректерді сақтау үшін пайдаланылмауы керек жұмыс прототипі ретінде қарастырылуы керек екендігі атап өтілді. Болашақта біз өнімділік, сенімділік және қауіпсіздік үшін қосымша оңтайландырулар жасауды, сондай-ақ Shufflecake бөлімдерінен жүктеу мүмкіндігін қамтамасыз етуді жоспарлап отырмыз.

Ақпарат көзі: opennet.ru

пікір қалдыру