Shufflecake er et værktøj til Linux, der tillader oprettelsen af flere skjulte volumener på en lagerenhed på en sådan måde, at det er meget vanskeligt, selv under retsmedicinsk inspektion, at bevise eksistensen af sådanne volumener.
Sikkerhedsrevisionsfirmaet Kudelski Security har udgivet Shufflecake-værktøjssættet , som muliggør oprettelse af skjulte filsystemer fordelt på tværs af tilgængelig ledig plads på eksisterende partitioner, som ikke kan skelnes fra tilfældige restdata. Disse sektioner er oprettet på en sådan måde, at det er problematisk at bevise deres eksistens uden at kende adgangsnøglen, selv under retsmedicinsk analyse.
Projektet positionerer sig som en mere avanceret løsning end Truecrypt og Veracrypt til at skjule fortrolige data, tilbyder indbygget understøttelse af Linux-platformen og giver dig mulighed for at placere op til 15 skjulte partitioner på enheden, indlejret i hinanden for at tilsløre analysen af deres eksistens.
De skjulte partitioner , der oprettes, kan efter brugerens skøn formateres, så de passer til ethvert filsystem, for eksempel ext4, xfs eller btrfs. Hver partition behandles som en uafhængig virtuel blokenhed med sin egen oplåsningsnøgle.
For at tilsløre spor foreslås adfærdsmodellen "plausible deniability". Grundlæggende set er værdifulde data skjult som yderligere lag i krypterede sektioner, der indeholder mindre værdifulde data, hvilket danner en slags skjult hierarki af sektioner. Under pres kan enhedsejeren afsløre nøglen til den krypterede sektion, men andre sektioner (op til 15 indlejrede niveauer) kan være skjult i den, hvilket gør det vanskeligt at bestemme deres tilstedeværelse og bevise deres eksistens.
Shufflecake og kernemodulet er kun blevet testet på Debian og Ubuntu med kerner 5.13 og 5.15 (Ubuntu 22.04 understøttes). Det skal bemærkes, at projektet stadig bør betragtes som en fungerende prototype og ikke bør bruges til at gemme følsomme data.
I fremtiden planlægger vi at foretage yderligere optimeringer for ydeevne, pålidelighed og sikkerhed, samt give mulighed for at starte fra Shufflecake-partitioner.
Om Shufflecake
Skjulning opnås ved at danne hver partition som et sæt krypterede segmenter placeret i tilfældige positioner på lagerenheden. Hvert segment oprettes dynamisk, når partitionen kræver yderligere lagerplads. For at komplicere analysen sammenflettes skiver fra forskellige sektioner.
Shufflecake-sektioner er ikke bundet til tilstødende områder, og portioner fra alle sektioner blandes. Oplysninger om de brugte og gratis portioner gemmes i det stedskort, der er knyttet til hver sektion, som refereres til af den krypterede overskrift. Kort og header er krypteret og uden at kende adgangsnøglen kan de ikke skelnes fra tilfældige data.
Headeren er opdelt i slots , som hver definerer sin egen sektion og tilhørende sektorer. Slotsene i headeren er stablet og rekursivt forbundet: den aktuelle slot indeholder nøglen til at dekryptere parametrene for den forrige (mindre skjulte) sektion i hierarkiet, hvilket tillader en enkelt adgangskode at dekryptere alle de mindre skjulte sektioner, der er knyttet til det valgte element. Hver mindre skjult sektion behandler dele af indlejrede sektioner som frie.
Som standard har alle indlejrede Shufflecake-partitioner samme synlige størrelse som partitionen på øverste niveau. Hvis der f.eks. bruges tre partitioner på en 1 GB-enhed, vil hver af dem være synlig for systemet som en 1 GB-partition, og den samlede tilgængelige diskplads vil blive delt mellem alle partitioner. Hvis den samlede mængde gemte data overstiger den faktiske enhedsstørrelse, vil der begynde at opstå I/O-fejl.
Uåbnede indbyggede sektioner deltager ikke i pladsallokering; det vil sige, at forsøg på at udfylde en sektion på et højere niveau vil overskrive dataene i de indbyggede sektioner, men vil ikke afsløre deres tilstedeværelse gennem analyse af størrelsen af de data , der kan placeres i sektionen, før der genereres en fejl (det antages, at sektionerne på højere niveau indeholder uforanderlige data). Data bruges ikke tilfældigt og aldrig separat, og der udføres altid regelmæssigt arbejde med den seneste indbyggede sektion; selve skemaet antyder, at det vigtigste er at holde dataenes eksistens hemmelig, selv på bekostning af at miste dataene.
Shufflecake-implementeringen tilbyder relativt høj ydeevne, men på grund af overheadomkostninger udfører den cirka halvt så godt som diskkryptering baseret på LUKS-undersystemet. Brug af Shufflecake medfører også yderligere RAM- og diskpladsomkostninger til lagring af servicedata. Hukommelsesomkostningerne er estimeret til 60 MB pr. partition , og diskpladsforbruget er estimeret til 1% af den samlede partitionsstørrelse. Til sammenligning resulterer den tilsvarende formålstjenlige WORAM-teknik i en 5- til 200-foldig forsinkelse med et tab på 75% af brugbar diskplads.
Koden til hjælpeprogrammerne (shufflecake-userland) og Linux-kernemodulet (dm-sflc) er skrevet i C og udgivet under GPLv3-licensen, hvilket gør det umuligt at inkludere det udgivne kernemodul i Linux-hovedkernen på grund af inkompatibilitet under GPLv2-licensen, hvorunder kernen sendes.
Hvis du er interesseret i at lære mere, kan du finde detaljerne på følgende link.