Julkaistu Shufflecake, työkalupakki piilotettujen salattujen levyosioiden luomiseen

Turvatarkastusyritys Kudelski Security on julkaissut työkalun nimeltä Shufflecake, jonka avulla voit luoda piilotettuja tiedostojärjestelmiä, jotka ovat hajallaan olemassa olevien osioiden vapaassa tilassa ja joita ei voi erottaa satunnaisista jäännöstiedoista. Osiot luodaan siten, että ilman pääsyavainta on vaikea todistaa niiden olemassaolo edes rikosteknistä analyysiä tehtäessä. Apuohjelmien (shufflecake-userland) ja Linux-ydinmoduulin (dm-sflc) koodi on kirjoitettu C-kielellä ja jaettu GPLv3-lisenssillä, mikä tekee julkaistun ydinmoduulin sisällyttämisen Linuxin pääytimeen mahdottomaksi yhteensopimattomuuden vuoksi. GPLv2-lisenssi, jolla ydin toimitetaan.

Projekti on sijoitettu edistyneemmäksi ratkaisuksi kuin Truecrypt ja Veracrypt suojaa vaativien tietojen piilottamiseen, jolla on natiivi tuki Linux-alustalle ja jonka avulla voit sijoittaa laitteeseen jopa 15 piilotettua osiota, jotka on sijoitettu sisäkkäin jäsentämisen sekoittamiseksi. niiden olemassaolosta. Jos itse Shufflecaken käyttö ei ole salaisuus, kuten voidaan päätellä esimerkiksi vastaavien apuohjelmien läsnäolosta järjestelmässä, luotujen piilotettujen osioiden kokonaismäärää ei voida määrittää. Luodut piilotetut osiot voidaan alustaa käyttäjän harkinnan mukaan sopimaan mihin tahansa tiedostojärjestelmään, esimerkiksi ext4, xfs tai btrfs. Jokaista osiota käsitellään erillisenä virtuaalisena lohkolaitteena, jolla on oma lukituksen avausavain.

Jälkien hämmentämiseksi ehdotetaan käytettäväksi "todennäköisen kiellettävyyden" käyttäytymismallia, jonka ydin on, että arvokasta tietoa piilotetaan lisäkerroksina salattuihin osioihin, joissa on vähemmän arvokasta tietoa, muodostaen eräänlaisen piilotetun osien hierarkian. Painetilanteessa laitteen omistaja voi paljastaa salatun osion avaimen, mutta muut osiot (enintään 15 sisäkkäistä tasoa) voivat olla piilossa tähän osioon, ja niiden olemassaolon määrittäminen ja olemassaolon todistaminen on ongelmallista.

Piilottaminen saavutetaan rakentamalla jokainen osio salattujen osien joukkona, jotka on sijoitettu satunnaisiin paikkoihin tallennuslaitteessa. Jokainen viipale luodaan dynaamisesti, kun osiossa tarvitaan lisää tallennustilaa. Analysoinnin vaikeuttamiseksi vuorottelevat eri osien viipaleita, ts. Shufflecake-osia ei ole linkitetty vierekkäisiin alueisiin ja viipaleita kaikista osista sekoitetaan. Tiedot käytetyistä ja vapaista osista tallennetaan kuhunkin osioon liittyvään sijaintikarttaan, johon viitataan salatulla otsikolla. Kortit ja otsikko ovat salattuja, ja niitä ei voi erottaa satunnaisista tiedoista ilman pääsyavainta.

Otsikko on jaettu aikaväleihin, joista jokainen määrittelee oman osuutensa ja siihen liittyvät viipaleet. Otsikon paikat on pinottu ja linkitetty rekursiivisesti - nykyinen paikka sisältää avaimen hierarkian edellisen osion parametrien salauksen purkamiseen (vähemmän piilotettu), jolloin yhdellä salasanalla voidaan purkaa kaikki vähemmän piilotetut osiot, jotka liittyvät valittu osio. Jokainen vähemmän piilotettu osio käsittelee sisäkkäisten osioiden osioita vapaina.

Oletusarvoisesti kaikilla Shufflecake-alaosastoilla on sama näkyvä koko kuin ylätason osiolla. Jos esimerkiksi 1 Gt:n laitteessa on kolme osiota, jokainen niistä näkyy järjestelmälle 1 Gt:n osiona ja käytettävissä oleva kokonaislevytila ​​jaetaan kaikkien osioiden kesken - jos tallennetun tiedon kokonaiskoko ylittää laitteen todellisen koon mukaan, se käynnistää I/O-virheilmoituksen.

Sisäkkäiset osiot, jotka eivät ole auki, eivät osallistu tilanjakoon, ts. yritys täyttää ylätason osio johtaa siihen, että tiedot pilkotaan sisäkkäisiin osioihin, mutta niiden läsnäoloa ei voida paljastaa analysoimalla niiden tietojen kokoa, jotka voidaan sijoittaa osioon ennen virheen alkamista (se oletetaan, että ylemmät osiot sisältävät muuttumatonta dataa huomion kääntämiseksi, eikä niitä koskaan käytetä erikseen, ja säännöllistä työtä tehdään aina viimeisimmän sisäkkäisen osion kanssa, itse kaavio tarkoittaa, että on tärkeämpää säilyttää salaisuus tietoja kuin menettää nämä tiedot).

Itse asiassa 15 Shufflecake-osiota luodaan aina - käyttäjän salasana liitetään käytettyihin osioihin, ja käyttämättömät osiot toimitetaan satunnaisesti luodulla salasanalla (on mahdotonta ymmärtää kuinka monta osiota todella käytetään). Kun Shufflecake-osiot alustetaan, niiden sijoittamiseen varattu levy, osio tai virtuaalilohkolaite täytetään satunnaisella tiedolla, mikä tekee mahdottomaksi tunnistaa Shufflecake-metatietoja ja tietoja yleistä taustaa vasten.

Shufflecake-toteutuksen suorituskyky on melko korkea, mutta ylikuormituksen vuoksi sen suorituskyky on noin kaksi kertaa hitaampi verrattuna LUKS-alijärjestelmään perustuvaan levysalaukseen. Shufflecaken käyttö aiheuttaa myös lisäkustannuksia RAM-muistista ja levytilasta palvelutietojen tallentamiseen. Muistin kulutuksen arvioidaan olevan 60 Mt per osio ja levytilaa 1 % kokonaiskoosta. Vertailun vuoksi, WORAM-tekniikka, jonka tarkoitus on samanlainen, johtaa 5-200-kertaiseen hidastumiseen ja 75 %:n käyttökelpoisen levytilan menetykseen.

Työkalusarja ja ydinmoduuli on testattu vain Debianissa ja Ubuntussa ytimillä 5.13 ja 5.15 (tuettu Ubuntu 22.04:ssä). Todetaan, että projektia tulee edelleen pitää toimivana prototyyppinä, jota ei tule käyttää tärkeän tiedon tallentamiseen. Tulevaisuudessa aiomme tehdä lisäoptimointeja suorituskyvyn, luotettavuuden ja turvallisuuden kannalta sekä tarjota mahdollisuuden käynnistää Shufflecake-osioista.

Lähde: opennet.ru

Lisää kommentti