Avaldatud Shufflecake, tööriistakomplekt peidetud krüptitud kettasektsioonide loomiseks

Компания Kudelski Security, специализирующаяся на проведении аудита безопасности, опубликовала инструментарий Shufflecake, который позволяет создавать скрытые файловые системы, размазанные по имеющемуся свободному пространству в существующих разделах и не отличимые от случайных остаточных данных. Sektsioonid on loodud nii, et juurdepääsuvõtit teadmata on nende olemasolu raske tõestada isegi kohtuekspertiisi analüüsi tehes. Utiliitide (shufflecake-userland) ja Linuxi kerneli mooduli (dm-sflc) kood on kirjutatud C-keeles ja levitatakse GPLv3 litsentsi all, mis muudab avaldatud kerneli mooduli kaasamise Linuxi põhikernelisse, kuna see ei ühildu GPLv2 litsents, mille alusel kernel tarnitakse.

Projekt on positsioneeritud kui täiustatud lahendus kui Truecrypt ja Veracrypt kaitset vajavate andmete peitmiseks, millel on natiivne Linuxi platvormi tugi ja mis võimaldab teil asetada seadmesse kuni 15 peidetud partitsiooni, mis on pesastatud üksteise sisse, et segada parsimist. nende olemasolust. Kui Shufflecake'i enda kasutamine ei ole saladus, nagu saab hinnata näiteks vastavate utiliitide olemasolu järgi süsteemis, siis ei saa loodud peidetud partitsioonide koguarvu määrata. Loodud peidetud partitsioone saab kasutaja äranägemise järgi vormindada, et mahutada mis tahes failisüsteemi, näiteks ext4, xfs või btrfs. Iga partitsiooni käsitletakse eraldi virtuaalse plokkseadmena, millel on oma lukustusvõti.

Jälgede segamiseks tehakse ettepanek kasutada “usutava eitavuse” käitumismudelit, mille olemus seisneb selles, et väärtuslikud andmed peidetakse täiendavate kihtidena krüpteeritud sektsioonidesse, kus on vähem väärtuslikke andmeid, moodustades omamoodi sektsioonide peidetud hierarhia. Surve korral saab seadme omanik paljastada krüpteeritud partitsiooni võtme, kuid selles partitsioonis võivad peituda teised partitsioonid (kuni 15 pesastatud taset), mille olemasolu kindlakstegemine ja olemasolu tõestamine on problemaatiline.

Peitmine saavutatakse, konstrueerides iga partitsiooni krüptitud osade komplektina, mis asetatakse salvestusseadmes juhuslikesse kohtadesse. Iga osa luuakse dünaamiliselt, kui sektsioonis on vaja täiendavat salvestusruumi. Analüüsi keerulisemaks muutmiseks vahelduvad erinevate sektsioonide lõigud, s.t. Shufflecake'i sektsioonid ei ole külgnevate piirkondadega lingitud ja kõikide osade lõigud segatakse. Teave kasutatud ja vabade lõikude kohta salvestatakse iga partitsiooniga seotud asukohakaardile, millele viitab krüptitud päis. Kaardid ja päis on krüptitud ning juurdepääsuvõtit teadmata ei erista neid juhuslikest andmetest.

Päis on jagatud pesadeks, millest igaüks määratleb oma jaotise ja seotud lõigud. Päises olevad pesad on virnastatud ja rekursiivselt lingitud – praegune pesa sisaldab võtit hierarhia eelmise jaotise parameetrite dekrüpteerimiseks (vähem peidetud), võimaldades ühe parooliga dekrüpteerida kõik vähem peidetud sektsioonid, mis on seotud valitud jaotis. Iga vähem peidetud partitsioon käsitleb pesastatud partitsioonide osi vabadena.

Vaikimisi on kõigil Shufflecake'i alamjaotistel sama nähtav suurus kui ülataseme jaotisel. For example, if there are three partitions on a 1 GB device, each of them will be visible to the system as a 1 GB partition and the total available disk space will be shared among all partitions - if the total size of the stored data exceeds seadme tegelik suurus, siis käivitub I/O viga.

Pesastatud sektsioonid, mis ei ole avatud, ei osale ruumijaotuses, s.t. tipptaseme partitsiooni täitmise katse tulemuseks on andmete purustamine pesastatud partitsioonidesse, kuid see ei võimalda paljastada nende olemasolu, analüüsides nende andmete suurust, mida saab partitsiooni paigutada enne tõrke ilmnemist (see Eeldatakse, et ülemised vaheseinad sisaldavad tähelepanu hajutamiseks muutumatuid andmeid ja neid ei kasutata kunagi eraldi ning regulaarne töö tehakse alati kõige uuema pesastatud jaotisega, skeem ise viitab sellele, et olulisem on säilitada selle olemasolu saladus. kui need andmed kaotada).

Фактически всегда создаётся 15 разделов Shufflecake — к используемым разделам привязывается пароль пользователя, а неиспользованные разделы снабжаются случайно сгенерированным паролем (невозможно понять сколько реально разделов используется). При инициализации разделов Shufflecake, выделенные для их размещения диск, раздел или виртуальное блочное устройство заполняется случайными данными, что не позволяет определить на общем фоне метаданные и данные Shufflecake.

Shufflecake'i teostus on üsna suure jõudlusega, kuid üldkulude tõttu on selle läbilaskevõime ligikaudu kaks korda aeglasem võrreldes LUKS-i alamsüsteemil põhineva ketta krüptimisega. Shufflecake'i kasutamine toob kaasa ka lisakulud RAM-ile ja kettaruumile teenuseandmete salvestamiseks. Mälukulu on hinnanguliselt 60 MB partitsiooni kohta ja kettaruumi 1% kogumahust. Võrdluseks võib tuua, et sarnase eesmärgiga WORAM-i tehnika aeglustub 5–200 korda ja kasutatava kettaruumi kaotus on 75%.

Tööriistakomplekti ja kerneli moodulit on testitud ainult Debianis ja Ubuntu tuumadega 5.13 ja 5.15 (toetatud Ubuntu 22.04 puhul). Märgitakse, et projekti tuleks siiski käsitleda kui töötavat prototüüpi, mida ei tohiks kasutada oluliste andmete salvestamiseks. В будущем планируется провести дополнительную оптимизацию производительности, надёжности и безопасности, а также обеспечить возможность загрузки с разделов Shufflecake.

Allikas: opennet.ru

Lisa kommentaar