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

Säkerhetsrevisionsföretaget Kudelski Security har publicerat ett verktyg som heter Shufflecake som låter dig skapa dolda filsystem utspridda över tillgängligt ledigt utrymme på befintliga partitioner och omöjligt att skilja från slumpmässiga restdata. Partitioner skapas på ett sådant sätt att utan att känna till åtkomstnyckeln är det svårt att bevisa deras existens även när man gör en rättsmedicinsk analys. Koden för verktygen (shufflecake-userland) och Linux-kä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-huvudkärnan på grund av inkompatibilitet med GPLv2-licensen under vilken kärnan levereras.

Projektet är positionerat som en mer avancerad lösning än Truecrypt och Veracrypt för att dölja data som kräver skydd, som 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 förvirra 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 bestämmas. De skapade dolda partitionerna kan formateras efter användarens gottfinnande för att passa alla filsystem, till exempel ext4, xfs eller btrfs. Varje partition behandlas som en separat virtuell blockenhet med sin egen upplåsningsnyckel.

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

Döljning uppnås genom att konstruera varje partition som en uppsättning krypterade skivor placerade på slumpmässiga platser på lagringsenheten. Varje segment skapas dynamiskt när ytterligare lagringsutrymme behövs i partitionen. För att göra analysen svårare växlas skivor av olika sektioner, d.v.s. Shufflecake-sektioner är inte kopplade till sammanhängande regioner och skivor från alla sektioner blandas. Information om använda och lediga skivor lagras i en platskarta som är associerad med varje partition, som refereras till av en krypterad rubrik. Korten och rubriken är krypterade och, utan att känna till åtkomstnyckeln, går de inte att skilja från slumpmässiga data.

Rubriken är uppdelad i luckor, som var och en definierar sin egen sektion och tillhörande skivor. Fackorna i rubriken är staplade och rekursivt länkade - den aktuella platsen innehåller nyckeln för att dekryptera parametrarna i föregående avsnitt i hierarkin (den mindre dolda), vilket gör att ett lösenord kan användas för att dekryptera alla mindre dolda sektioner som är associerade med det valda avsnittet. Varje mindre dold partition behandlar segmenten av kapslade partitioner som gratis.

Som standard har alla Shufflecake-undersektioner samma synliga storlek som toppnivåsektionen. Till exempel, om det finns tre partitioner på en 1 GB-enhet, kommer var och en av dem att vara synliga 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å lagrad data överstiger den faktiska storleken på enheten, kommer det att starta ett I/O-fel kastas.

Kapslade sektioner som inte är öppna deltar inte i platstilldelning, d.v.s. ett försök att fylla en partition på toppnivå kommer att resultera i att data strimlas i kapslade partitioner, men kommer inte att göra det möjligt att avslöja deras närvaro genom analys av storleken på data som kan placeras i partitionen innan felet börjar (det antas att de övre partitionerna innehåller oföränderlig data för att distrahera uppmärksamheten och aldrig separat inte används, och regelbundet arbete utförs alltid med den senaste kapslade sektionen, antyder själva schemat att det är viktigare att upprätthålla hemligheten bakom existensen av data än att förlora dessa data).

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

Shufflecake-implementeringen har ganska hög prestanda, men på grund av förekomsten av overhead är den ungefär dubbelt så långsam i genomströmning jämfört med diskkryptering baserad på LUKS-delsystemet. Att använda Shufflecake resulterar också i extra kostnader för RAM och diskutrymme för lagring av tjänstdata. Minnesförbrukningen uppskattas till 60 MB per partition och diskutrymme till 1 % av den totala storleken. Som jämförelse leder WORAM-tekniken, med liknande syfte, till en nedgång på 5 till 200 gånger med en förlust på 75 % av användbart diskutrymme.

Verktygslådan och kärnmodulen har endast testats på Debian och Ubuntu med kärnorna 5.13 och 5.15 (stöds på Ubuntu 22.04). Det noteras att projektet fortfarande ska betraktas som en fungerande prototyp, som inte ska användas för att lagra viktig data. I framtiden planerar vi att göra ytterligare optimeringar för prestanda, tillförlitlighet och säkerhet, samt tillhandahålla möjligheten att starta från Shufflecake-partitioner.

Källa: opennet.ru

Lägg en kommentar