È stato pubblicato Shufflecake, un toolkit per la creazione di sezioni nascoste criptate sul disco.

L'azienda Kudelski Security, specializzata in audit di sicurezza, ha pubblicato lo strumento Shufflecake, che consente di creare sistemi di file nascosti, distribuiti nello spazio libero presente nelle partizioni esistenti e indistinguibili da dati residui casuali. Le partizioni sono create in modo tale che, senza la chiave di accesso, la loro esistenza sia difficile da dimostrare anche durante un'analisi forense. Il codice degli strumenti (shufflecake-userland) e del modulo del kernel Linux (dm-sflc) è scritto in linguaggio C e distribuito sotto licenza GPLv3, il che rende impossibile l'inclusione del modulo del kernel pubblicato nella distribuzione principale del kernel Linux a causa dell'incompatibilità con la licenza GPLv2, sotto la quale è distribuito il kernel.

Il progetto si presenta come una soluzione più avanzata rispetto a Truecrypt e Veracrypt per la protezione dei dati, con supporto nativo per la piattaforma Linux e la possibilità di creare fino a 15 partizioni nascoste sul dispositivo, annidate l'una nell'altra per complicare la rilevazione della loro esistenza. Sebbene l'uso stesso di Shufflecake non sia un mistero, come dimostrano le apposite utility presenti nel sistema, il numero totale di partizioni nascoste create non è determinabile. Le partizioni nascoste possono essere formattate a discrezione dell'utente per supportare vari filesystem, come ext4, xfs o btrfs. Ogni partizione è trattata come un dispositivo di blocco virtuale separato con la propria chiave di sblocco.

Per confondere le tracce, si consiglia di utilizzare un modello di comportamento di "negazione plausibile", che consiste nel nascondere i dati di valore come strati aggiuntivi in sezioni criptate con dati di minor valore, creando una sorta di gerarchia nascosta delle sezioni. In caso di pressione, il proprietario del dispositivo può rivelare la chiave per la sezione criptata, ma in quella sezione possono essere nascoste altre sezioni (fino a 15 livelli di annidamento), e determinare la loro esistenza e provare la loro esistenza è problematico.

La protezione è garantita dalla creazione di ogni sezione come un insieme di frammenti crittografati, posizionati in modo casuale nel dispositivo di archiviazione. Ogni frammento viene generato dinamicamente nel momento in cui una sezione richiede ulteriore spazio di archiviazione. Per rendere difficile l'analisi, i frammenti di sezioni diverse si alternano, cioè le sezioni Shufflecake non sono collegate a aree contigue e i frammenti di tutte le sezioni si mescolano. Le informazioni sui frammenti utilizzati e liberi sono memorizzate in una mappa di posizionamento associata a ogni sezione, a cui si fa riferimento nell'intestazione crittografata. Le mappe e l'intestazione sono crittografate e, senza la conoscenza della chiave di accesso, sono indistinguibili da dati casuali.

L'intestazione è suddivisa in slot, ognuno dei quali definisce la propria sezione e le relative fette. Gli slot nell'intestazione sono disposti in ordine a stack e collegati in modo ricorsivo: lo slot corrente contiene la chiave per decrittografare i parametri della sezione precedente nella gerarchia (meno nascosta), il che consente di utilizzare una sola password per decrittografare tutte le sezioni meno nascoste associate alla sezione selezionata. Ogni sezione meno nascosta considera le fette delle sezioni annidate come libere.

Per impostazione predefinita, tutte le partizioni interne di Shufflecake hanno la stessa dimensione visibile della partizione principale. Ad esempio, se su un dispositivo da 1 GB sono presenti tre partizioni, ciascuna sarà visibile per il sistema come una partizione da 1 GB e lo spazio disco totale disponibile sarà condiviso tra tutte le partizioni: se la dimensione complessiva dei dati salvati supera la dimensione effettiva del dispositivo, verrà generato un errore di input/output.

Le sotto-sezioni non aperte non partecipano alla distribuzione dello spazio, cioè il tentativo di riempire una sezione di livello superiore porterà a sovrascrivere i dati nelle sotto-sezioni senza possibilità di rivelarne l'esistenza attraverso l'analisi della dimensione dei dati che possono essere collocati nella sezione prima dell'inizio dell'uscita dell'errore (si presume che le sezioni superiori contengano dati immutabili per distrarre l'attenzione e non vengano mai utilizzate singolarmente, mentre il lavoro normale viene sempre effettuato con l'ultima sotto-sezione annidata, lo schema stesso implica che sia più importante mantenere il segreto dell'esistenza dei dati piuttosto che perdere tali dati).

Di norma, vengono sempre create 15 partizioni di Shufflecake: le partizioni utilizzate sono legate alla password dell'utente, mentre le partizioni non utilizzate sono dotate di una password generata casualmente (non è possibile determinare quante partizioni siano realmente in uso). Durante l'inizializzazione delle partizioni di Shufflecake, il disco, la partizione o il dispositivo a blocchi virtuale dedicato al loro posizionamento viene riempito con dati casuali, rendendo impossibile distinguere i metadati e i dati di Shufflecake sullo sfondo.

L'implementazione di Shufflecake offre prestazioni piuttosto elevate, ma a causa delle spese generali, presenta una capacità di throughput circa due volte inferiore rispetto alla crittografia dei dischi basata sul sottosistema LUKS. L'uso di Shufflecake comporta anche costi aggiuntivi in termini di memoria e spazio di archiviazione per i dati di servizio sul disco. Si stima che il costo in termini di memoria sia di 60 MB per ogni partizione, mentre lo spazio su disco è dell'1% della dimensione totale. A titolo di confronto, la tecnica simile WORAM provoca un rallentamento da 5 a 200 volte con una perdita dell'75% di spazio utile sul disco.

L'insieme di strumenti e il modulo del kernel sono stati testati solo su Debian e Ubuntu con i kernel 5.13 e 5.15 (supporto fornito per Ubuntu 22.04). È importante notare che il progetto dovrebbe ancora essere considerato un prototipo funzionante, non consigliato per la memorizzazione di dati importanti. In futuro, è prevista ulteriore ottimizzazione delle prestazioni, affidabilità e sicurezza, oltre alla possibilità di avviare da partizioni Shufflecake.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster