Shufflecake er udgivet, et værktøj til at oprette skjulte krypterede partitioner på drevet.

Kudelski Security, der specialiserer sig i sikkerhedsauditter, har offentliggjort værktøjet Shufflecake, som gør det muligt at oprette skjulte filsystemer, der er spredt over det eksisterende frie plads i de eksisterende partitioner og er umulige at skelne fra tilfældige restdata. Partitioner oprettes på en måde, så uden adgangsnøglen er det problematisk at bevise deres eksistens, selv ved kriminalitetsanalyse. Koden til værktøjerne (shufflecake-userland) og Linux-kernemodulet (dm-sflc) er skrevet i C og distribueres under GPLv3-licensen, hvilket gør det umuligt at inkludere den offentliggjorte kernemodul i hovedkernen af Linux grundet inkompatibilitet med GPLv2-licensen, som kernen leveres under.

Projektet præsenteres som mere avanceret end Truecrypt og Veracrypt som en løsning til at skjule beskyttelseskrævende data, der har indfødt støtte til Linux-platformen og muliggør oprettelse af op til 15 skjulte partitioner på enheden, indlejret i hinanden for at forvirre analysen af deres eksistens. Selvom anvendelsen af Shufflecake i sig selv ikke er hemmelig, hvilket kan ses ved tilstedeværelsen af de relevante værktøjer i systemet, er det umuligt at bestemme det samlede antal oprettede skjulte partitioner. De skjulte partitioner kan formatere til enhver filsystemtype, såsom ext4, xfs eller btrfs, efter brugerens vurdering. Hver partition behandles som en separat virtuel blokenhed med sin egen låse-nøgle.

For at forvirre sporene anbefales det at bruge adfærdsmønstret "plausibel benægtelse", hvis essens er, at værdifulde data skjules som ekstra lag i krypterede partitioner med mindre værdifulde data, hvilket danner en slags skjult hierarki af partitioner. I tilfælde af pres kan ejeren af enheden afsløre nøglen til den krypterede partition, men i denne partition kan andre partitioner være skjult (op til 15 indlejrede niveauer), og det er problematisk at bestemme deres eksistens og bevise det.

Skjulthed opnås ved at danne hver sektion som et sæt af krypterede slices, der placeres i tilfældige positioner på lagringsenheden. Hvert slice oprettes dynamisk, når der er brug for ekstra lagerplads i sektionen. For at vanskeliggøre analysen skifter slices fra forskellige sektioner, dvs. Shufflecake-sektioner er ikke forbundet til sammenhængende områder, og slices fra alle sektioner blandes. Oplysninger om de anvendte og ledige slices opbevares i et positionskort, der er knyttet til hver sektion, og som det krypterede hoved kan referere til. Kortene og hovedet er krypterede, og uden adgangsnøglen kan de ikke adskilles fra tilfældige data.

Hovedet er opdelt i slots, hvor hver enkelt definerer sin egen sektion og de relaterede slices. Slots i hovedet er placeret i en stakorden og er rekursivt forbundet — den aktuelle slot indeholder nøglen til at dekryptere parametrene i den forrige, mindre skjulte sektion i hierarkiet, hvilket gør det muligt at bruge et enkelt kodeord til at dekryptere alle mindre skjulte sektioner, der er relateret til den valgte sektion. Hver mindre skjult sektion betragter slices af indlejrede sektioner som ledige.

Som standard har alle indlejrede Shufflecake-sektioner den samme synlige størrelse som sektionen på det øverste niveau. For eksempel, hvis tre sektioner er anvendt på en enhed med en størrelse på 1 GB, vil hver sektion være synlig for systemet som en sektion med 1 GB, og det samlede tilgængelige diskplads vil blive delt mellem alle sektioner — hvis den samlede størrelse af de gemte data overstiger den faktiske størrelse af enheden, vil der begynde at opstå input/output-fejl.

Lukkede underafsnit deltager ikke i pladsfordelingen, dvs. et forsøg på at fylde et overordnet afsnit vil føre til overskrivning af data i de underliggende afsnit, men vil ikke gøre det muligt at afsløre deres eksistens gennem analyse af størrelsen på dataene, der kan placeres i afsnittet inden begyndelsen af fejlmeddelelsen (det antages, at de overordnede afsnit indeholder uforanderlige data for at aflede opmærksomheden og aldrig bruges særskilt, mens det normale arbejde altid udføres med det nyeste underafsnit; selve schemaet indebærer, at det er vigtigere at bevare hemmeligheden om eksistensen af data fremfor at miste disse data).

Der oprettes faktisk altid 15 Shufflecake-afsnit - de anvendte afsnit knyttes til brugerens adgangskode, mens ikke-udnyttede afsnit forsynes med en tilfældigt genereret adgangskode (det er umuligt at forstå, hvor mange afsnit der reelt anvendes). Ved initialisering af Shufflecake-afsnit fyldes den tildelte disk, partition eller virtuelle blokenhed med tilfældige data, hvilket forhindrer bestemmelse af metadata og data for Shufflecake mod den generelle baggrund.

Implementeringen af Shufflecake har en ganske høj ydeevne, men på grund af overhead er den cirka to gange langsommere i kapacitet sammenlignet med diskryptionsmetoder baseret på LUKS-undermoduler. Anvendelsen af Shufflecake medfører også ekstra omkostninger med hensyn til RAM og pladskrav til administrative data på disken. Hukommelsesforbruget vurderes til 60 MB pr. afsnit, mens plads på disken udgør 1% af den samlede størrelse. Til sammenligning medfører en tilsvarende teknik, WORAM, en forsinkelse fra 5 til 200 gange med 75% tab af nyttig plads på disken.

Værktøjet og kerne modulerne er kun testet i Debian og Ubuntu med kernerne 5.13 og 5.15 (Ubuntu 22.04 understøttes). Det bemærkes, at projektet indtil videre bør betragtes som en arbejdsprototype, der ikke bør anvendes til opbevaring af vigtige data. I fremtiden planlægges yderligere optimering af ydeevne, pålidelighed og sikkerhed, samt muligheden for at starte op fra Shufflecake-områder.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster