Shufflecake gepubliceerd, een toolkit voor het creƫren van verborgen versleutelde schijven.

Kudelski Security, een bedrijf dat gespecialiseerd is in beveiligingsaudits, heeft de Shufflecake-toolkit gepubliceerd, waarmee verborgen bestandssystemen kunnen worden gemaakt die verspreid zijn over de beschikbare vrije ruimte in bestaande partities en niet te onderscheiden zijn van willekeurige restgegevens. Partities worden op een zodanige manier aangemaakt dat, zonder de toegangssleutel, het bestaan ervan problematisch te bewijzen is, zelfs bij een forensische analyse. De code van de hulpprogramma's (shufflecake-userland) en de Linux-kernelmodule (dm-sflc) is geschreven in de programmeertaal C en wordt verspreid onder de GPLv3-licentie, wat het onmogelijk maakt om de gepubliceerde kernelmodule op te nemen in de hoofdversie van de Linux-kernel vanwege incompatibiliteit met de GPLv2-licentie, waaronder de kernel wordt geleverd.

Het project positioneert zich als een geavanceerdere oplossing dan Truecrypt en Veracrypt voor het verbergen van gegevens die bescherming vereisen, met native ondersteuning voor het Linux-platform en de mogelijkheid om tot 15 verborgen partities op een apparaat te plaatsen die in elkaar zijn genest om de herkenning van hun bestaan te bemoeilijken. Hoewel het gebruik van Shufflecake zelf geen geheim is, zoals kan worden afgeleid uit het feit dat de relevante hulpprogramma's in het systeem aanwezig zijn, is het totale aantal aangemaakte verborgen partities niet te bepalen. De gecreƫerde verborgen partities kunnen naar eigen keuze van de gebruiker worden geformatteerd voor het opslaan van verschillende bestandssystemen, zoals ext4, xfs of btrfs. Elke partitie wordt behandeld als een apart virtueel blokapparaat met zijn eigen ontgrendelingssleutel.

Om sporen te verdoezelen, wordt de gedragsmodel «plausible deniability» (plausible ontkenning) voorgesteld, waarvan de essentie is dat waardevolle gegevens worden verborgen als extra lagen in versleutelde partities met minder waardevolle gegevens, waardoor een soort verborgen hiërarchie van partities ontstaat. In het geval van druk kan de eigenaar van het apparaat de sleutel voor de versleutelde partitie onthullen, maar in deze partitie kunnen zich andere partities verbergen (tot 15 geneste niveaus), en het is problematisch om hun bestaan vast te stellen en te bewijzen.

Verstoppeling wordt bereikt door elke sectie te vormen als een set versleutelde slices die op willekeurige posities op het opslagapparaat worden geplaatst. Elke slice wordt dynamisch aangemaakt wanneer er extra opslags ruimte nodig is in de sectie. Om analyse te bemoeilijken, worden slices van verschillende secties afgewisseld, d.w.z. Shufflecake-secties zijn niet gekoppeld aan aaneengeschakelde gebieden en slices van alle secties worden door elkaar gehusseld. Informatie over gebruikte en vrije slices wordt opgeslagen in een locatiekaart die aan elke sectie is gekoppeld en waarnaar de versleutelde kop verwijst. De kaarten en kop zijn versleuteld en zonder toegangssleutel zijn ze niet te onderscheiden van willekeurige gegevens.

De kop is verdeeld in slots, elk definiƫrend zijn eigen sectie en de bijbehorende slices. De slots in de kop zijn gestapeld geplaatst en recursief met elkaar verbonden - de huidige slot bevat de sleutel voor het ontsleutelen van de parameters van de vorige sectie in de hiƫrarchie (minder verborgen), wat het mogelijk maakt om een enkel wachtwoord te gebruiken voor het ontsleutelen van alle minder verborgen secties die betrekking hebben op de gekozen sectie. Elke minder verborgen sectie beschouwt de slices van geneste secties als vrij.

Standaard hebben alle geneste secties van Shufflecake dezelfde zichtbare grootte als de bovenste sectie. Bijvoorbeeld, als op een apparaat van 1 GB drie secties zijn aangemaakt, zullen ze elk als een sectie van 1 GB worden gezien door het systeem, en de totale beschikbare schijfruimte zal gezamenlijk worden gebruikt in alle secties - als de totale grootte van de opgeslagen gegevens de feitelijke grootte van het apparaat overschrijdt, zal er een invoer-/uitvoerfout optreden.

Niet-geopende geneste secties nemen niet deel aan de ruimteverdeling; dat wil zeggen, het proberen in te vullen van de bovenste sectie zal leiden tot gegevensoverschrijving in de geneste secties, maar geeft geen mogelijkheid om hun aanwezigheid te onthullen door het analyseren van de grootte van de gegevens die in de sectie kunnen worden geplaatst voordat de foutmelding verschijnt (ervan uitgaande dat de bovenste secties onveranderlijke gegevens bevatten om de aandacht te af te leiden en nooit afzonderlijk worden gebruikt, terwijl de normale werking altijd met de meest recente geneste sectie plaatsvindt; het schema impliceert dat het belangrijker is om het bestaan van gegevens geheim te houden dan deze gegevens te verliezen).

Er worden in feite altijd 15 Shufflecake-secties aangemaakt - de gebruikte secties zijn gekoppeld aan het wachtwoord van de gebruiker, terwijl de niet-gebruikte secties zijn voorzien van een willekeurig gegenereerd wachtwoord (het is onmogelijk te begrijpen hoeveel secties daadwerkelijk worden gebruikt). Bij de initialisatie van de Shufflecake-secties wordt de toegewezen schijf, sectie of virtueel blokapparaat gevuld met willekeurige gegevens, waardoor het onmogelijk is om tegen de achtergrond de metadata en gegevens van Shufflecake te identificeren.

De implementatie van Shufflecake heeft een behoorlijk hoge prestaties, maar vanwege overheadkosten blijft het ongeveer twee keer achter op het gebied van doorvoersnelheid in vergelijking met schijfversleuteling op basis van het LUKS-subsysteem. Het gebruik van Shufflecake leidt ook tot extra geheugenkosten en opslagplaats voor tijdelijke gegevens op de schijf. Het geheugengebruik wordt geschat op 60 MB per sectie, terwijl de schijfruimte ongeveer 1% van de totale grootte bedraagt. Ter vergelijking: een vergelijkbare techniek met de naam WORAM leidt tot vertragingen van 5 tot 200 keer met 75% verlies aan bruikbare schijfruimte.

De toolkit en de kernelmodule zijn alleen getest op Debian en Ubuntu met kernels 5.13 en 5.15 (ondersteunt gebruik op Ubuntu 22.04). Het project moet voorlopig worden beschouwd als een werkend prototype, dat niet moet worden gebruikt voor het opslaan van belangrijke gegevens. In de toekomst zijn er plannen om de prestaties, betrouwbaarheid en veiligheid verder te optimaliseren, evenals om opstarten vanaf Shufflecake-secties mogelijk te maken.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster