Shufflecake, en verktygslåda för att skapa dolda krypterade diskpartitioner, har publicerats

Kudelski Security, ett säkerhetsrevisionsföretag, har publicerat verktygslådan Shufflecake, som gör det möjligt att skapa dolda filsystem som är utspridda över tillgängligt ledigt utrymme i befintliga partitioner och inte kan skiljas från slumpmässiga restdata. Partitionerna är skapade på ett sådant sätt att deras existens är svår att bevisa utan att känna till åtkomstnyckeln, även under forensisk analys. Koden för verktygen (shufflecake-userland) och Linuxkärnmodulen (dm-sflc) är skriven i C och distribueras under GPLv3-licensen, vilket gör det omöjligt att inkludera den publicerade kärnmodulen i Linux-kärnan på grund av inkompatibilitet med GPLv2-licensen, under vilken kärnan levereras.

Projektet positioneras som en mer avancerad lösning än Truecrypt och Veracrypt för att dölja data som kräver skydd, vilken har inbyggt stöd för Linux-plattformen och låter dig placera upp till 15 dolda partitioner på enheten, kapslade inuti varandra för att dölja analysen av deras existens. Om användningen av Shufflecake i sig inte är en hemlighet, vilket till exempel kan bedömas genom närvaron av motsvarande verktyg i systemet, kan det totala antalet skapade dolda partitioner inte fastställas. De skapade dolda partitionerna kan formateras efter användarens gottfinnande för att rymma alla FS, till exempel ext4, xfs eller btrfs. Varje partition bearbetas som en separat virtuell blockenhet med sin egen upplåsningsnyckel.

För att dölja spåren föreslås att man använder beteendemodellen "plausible deniability", vars kärna är att värdefull data döljs som ytterligare lager i krypterade sektioner med mindre värdefull data, vilket bildar en slags dold hierarki av sektioner. Vid tryck kan enhetens ägare avslöja nyckeln till den krypterade sektionen, men denna sektion kan dölja andra sektioner (upp till 15 kapslade nivåer), och det är problematiskt att fastställa deras närvaro och bevisa deras existens.

Obfuskeringen uppnås genom att konstruera varje partition som en uppsättning krypterade skivor placerade på slumpmässiga platser på lagringsenheten. Varje skiva skapas dynamiskt när ytterligare lagringsutrymme krävs i partitionen. För att komplicera analysen sammanflätas skivor från olika partitioner, d.v.s. Shufflecake-partitioner är inte associerade med sammanhängande områden och skivor från alla partitioner blandas. Information om använda och lediga skivor lagras i en platskarta associerad med varje partition, refererad av en krypterad rubrik. Kartorna och rubriken är krypterade och kan inte skiljas från slumpmässig data utan kännedom om åtkomstnyckeln.

Rubriken är uppdelad i platser, som var och en definierar sin sektion och de segment som är associerade med den. Platserna i rubriken är staplade och rekursivt länkade - den aktuella platsen innehåller nyckeln för att dekryptera parametrarna för föregående sektion i hierarkin (mindre dold), vilket gör att ett lösenord kan användas för att dekryptera alla mindre dolda sektioner som är associerade med den valda sektionen. Varje mindre dold sektion behandlar segmenten av kapslade sektioner som lediga.

Som standard har alla kapslade Shufflecake-partitioner samma synliga storlek som partitionen på översta nivån. Om du till exempel har tre partitioner på en 1 GB-enhet kommer var och en att visas för systemet som en 1 GB-partition, och det totala tillgängliga diskutrymmet kommer att delas mellan alla partitioner - om den totala storleken på lagrade data överstiger enhetens faktiska storlek kommer ett I/O-fel att uppstå.

Oöppnade kapslade avsnitt deltar inte i utrymmesallokeringen, d.v.s. ett försök att fylla ett avsnitt på översta nivån kommer att resultera i att data i de kapslade avsnitten skrivs över, men kommer inte att avslöja deras närvaro genom att analysera storleken på de data som kan placeras i avsnittet innan felet visas (det antas att de översta avsnitten innehåller oföränderliga data för distraktion och aldrig används separat, och regelbundet arbete utförs alltid med det allra sista kapslade avsnittet; själva schemat antyder att det är viktigare att hålla existensen av data hemlig än att förlora dessa data).

Faktum är att det alltid skapas 15 Shufflecake-partitioner - användarlösenordet tilldelas de partitioner som används, och de oanvända partitionerna förses med ett slumpmässigt genererat lösenord (det är omöjligt att avgöra hur många partitioner som faktiskt används). När Shufflecake-partitioner initieras fylls disken, partitionen eller den virtuella blockenheten som tilldelats dem med slumpmässig data, vilket gör det omöjligt att identifiera Shufflecake-metadata och data från den allmänna bakgrunden.

Shufflecake-implementeringen har ganska hög prestanda, men på grund av omkostnader släpar den efter i dataflöde med ungefär dubbelt så mycket som diskkryptering baserad på LUKS-undersystemet. Användningen av Shufflecake leder också till extra kostnader för RAM och utrymme för att lagra servicedata på disken. Minneskostnaderna uppskattas till 60 MB per partition och diskutrymmet till 1 % av den totala storleken. Som jämförelse leder den liknande avsedda WORAM-tekniken till en nedgång på 5 till 200 gånger med en förlust av användbart diskutrymme på 75 %.

Verktygslådan och kärnmodulen har endast testats på Debian och Ubuntu med kärnor 5.13 och 5.15 (Ubuntu 22.04 stöds). Det noteras att projektet för närvarande bör betraktas som en fungerande prototyp, som inte bör användas för att lagra viktig data. I framtiden planeras ytterligare optimering av prestanda, tillförlitlighet och säkerhet, samt möjligheten att starta från Shufflecake-partitioner.

Källa: opennet.ru

Lägg en kommentar