Una chiavetta USB che, collegata al computer, dichiara soltanto 8 GB di capacità e mostra file del tutto ordinari. Nessuna richiesta di password, nessun volume cifrato visibile, nessun software da installare. La parte interessante viene a galla solo dopo una sequenza precisa: basta creare un file chiamato unlock.txt nella chiavetta contenente l’indicazione password:xyz.
Dopo questa operazione, la memoria USB si disconnette e torna online mostrando una seconda area, fino a quel momento invisibile al sistema operativo. È l’idea alla base di Phantomdrive, progetto open source sviluppato da Ryan Walker di Rootkit Labs che porta sul piano hardware un concetto noto da tempo nella crittografia: non limitarsi a proteggere le informazioni, ma cercare di nascondere perfino l’esistenza dello spazio che le contiene.
TrueCrypt prima e VeraCrypt poi hanno reso popolari i volumi nascosti e la cosiddetta plausible deniability, cioè la possibilità di mantenere un secondo insieme di dati cifrati difficilmente distinguibile dallo spazio apparentemente inutilizzato. Phantomdrive prende però una strada diversa: il computer non vede un grande supporto contenente settori dall’aspetto casuale: quando la chiavetta è bloccata, il firmware dichiara semplicemente un dispositivo da 8 GB. La capacità restante della microSD sottostante non compare nella geometria dello storage esposta tramite USB.
Una chiavetta da 8 GB che in realtà può essere molto più grande
Il trucco più interessante adottato da Phantomdrive ha a che vedere con ciò che il controller USB “racconta” al computer. Al primo collegamento della chiavetta USB, questa patre in modalità bloccata: l’host, ovvero il PC a cui è connessa, riceve informazioni compatibili con una normale unità da 8 GB.
La memoria vera e propria risiede su una microSD posta all’interno del corpo della chiavetta: Rootkit Labs indica una capacità minima di 16 GB; montando, per esempio, una scheda più capiente, i primi 8 GB continuano a costituire la parte pubblica mentre il resto può ospitare i dati protetti. Il computer non comunica direttamente con la scheda SD: tra host e memoria si trova il controller progettato per Phantomdrive, che decide quali blocchi rendere accessibili e come trasformarli.

Certo, se qualcuno aprisse l’unità, potrebbe fisicamente estrarre la scheda SD. Tuttavia, non sarebbe comunque un indizio inequivocabile, dato che molte chiavette USB economiche sono alimentate da schede microSD. Gli autori di Phantomdrive hanno comunque anticipato che realizzeranno una versione del progetto con moduli eMMC non appena i prezzi si abbasseranno.
Un supporto contenente una partizione VeraCrypt, LUKS o BitLocker mostra una capacità fisica compatibile con la presenza di altri dati. Phantomdrive tenta invece di spostare la negazione plausibile a un livello più evoluto grazie all’abilità di nascondere l’unità aggiuntiva, finché l’utente non fornisce “il segreto” (in questo caso sotto forma di password da salvare nel file system).
Perché il file unlock.txt non resta sulla chiavetta e non può essere recuperato
A prima vista il meccanismo può sembrare rischioso: se per sbloccare Phantomdrive bisogna creare un file di testo nella partizione visibile, un malintenzionato potrebbe tentare di recuperarlo dopo la cancellazione e leggere la password. In realtà il funzionamento è diverso: il file (che può chiamarsi anche diversamente rispetto a unlock.txt) serve soprattutto come mezzo per fare arrivare una determinata sequenza di byte al controller USB: quando il sistema operativo prova a salvare il contenuto, il firmware intercetta la richiesta di scrittura prima che il payload raggiunga fisicamente la microSD, cerca la stringa password: e usa i caratteri successivi come credenziale da elaborare.
La password passa temporaneamente nella SRAM del microcontrollore e il firmware neutralizza i byte sensibili destinati allo storage; perciò non si verifica la normale sequenza “file scritto – file cancellato – cluster ancora recuperabile” tipica di una pendrive tradizionale.
Un programma di recupero dati non potrebbe quindi mai trovare sulla microSD una vecchia copia di unlock.txt contenente la password.
Il rischio si sposta semmai sul PC utilizzato per lo sblocco: l’editor di testo, i file temporanei, l’autosalvataggio, la cache o la memoria virtuale potrebbero conservare tracce della stringa digitata. È per questo che le indicazioni del progetto raccomandano particolare attenzione al software usato per creare la scrittura di sblocco.
L’algoritmo che trasforma la password in un segreto davvero sicuro
Usare direttamente una password come chiave AES sarebbe una pessima idea. Phantomdrive passa quindi la credenziale attraverso PBKDF2-HMAC-SHA256, funzione di derivazione progettata per rendere più costoso il tentativo sistematico di indovinare password.
Il firmware supporta 100.000 oppure 600.000 iterazioni, con 100.000 come impostazione predefinita. La configurazione distribuita indicata nella documentazione del progetto risulta basata su una versione del firmware che utilizza AES-XTS e KDF da 100.000 iterazioni.
Per il volume privato, Phantomdrive permette di scegliere tra AES-256-CTR e AES-256-XTS: cambia sia il formato dei dati sul supporto sia il profilo di sicurezza.
Il progetto non supera circa 20 MB/s in lettura e 9 MB/s in scrittura con CTR; con XTS si scende approssimativamente a 10 MB/s e 6 MB/s. Numeri modesti per una chiavetta moderna, con velocità assimilabili a un dispositivo USB 2.0. Per chi deve spostare decine o centinaia di gigabyte, non è quindi una soluzione orientata alle prestazioni.

Phantomdrive si può comprare, ma su GitHub c’è tutto per costruirla
Phantomdrive non è soltanto un esperimento pubblicato online: Rootkit Labs la vende direttamente, al momento a 65 dollari canadesi, senza scheda microSD inclusa.
La parte più interessante, però, è che il progetto resta completamente open source. All’interno del repository GitHub ufficiale sono disponibili il firmware, i file hardware, gli schemi elettronici, il layout del PCB, i materiali meccanici e le risorse necessarie per programmare il dispositivo.
Rootkit Labs sottolinea inoltre che la scheda è progettata con KiCad, quindi i file possono essere aperti e modificati senza ricorrere a costosi strumenti CAD proprietari. Chi possiede competenze di elettronica può ordinare il PCB a partire dai file pubblicati, procurarsi il CH569W (microcontrollore prodotto da WCH pensato anche per applicazioni che richiedono gestione diretta di periferiche USB e memorie esterne) e gli altri componenti indicati nel progetto, assemblare la scheda e caricare il firmware via USB usando gli strumenti previsti.
Non serve quindi acquistare necessariamente l’unità già pronta: il prodotto commerciale offre soprattutto la comodità dell’hardware assemblato e collaudato, mentre GitHub mette a disposizione quanto occorre per studiarne il funzionamento, modificarlo o realizzare una propria variante. È anche un elemento importante sul piano della sicurezza: firmware e progetto elettronico possono essere esaminati pubblicamente, anche se la disponibilità dei sorgenti non sostituisce un audit crittografico indipendente.
Come ottenere un risultato simile con VeraCrypt
È già possibile realizzare qualcosa di molto simile servendosi di una chiavetta USB e del software VeraCrypt, senza acquistare hardware dedicato. Il meccanismo, però, è differente. Dal pulsante “Create Volume” di VeraCrypt si avvia la procedura guidata, si sceglie “Create an encrypted file container” oppure un volume ospitato direttamente sulla partizione per poi attivare anche l’opzione “Hidden VeraCrypt volume“.
VeraCrypt crea prima un volume esterno, protetto da una propria password, all’interno del quale si possono collocare alcuni file credibili e non sensibili. Lo spazio libero di questo volume ospita poi il vero hidden volume, cifrato con una seconda password. Non esiste una tabella delle partizioni che lo identifichi come tale: l’header nascosto risiede in un’area che, in assenza della chiave corretta, risulta indistinguibile dai dati pseudo-casuali che riempiono il volume.
L’uso quotidiano è piuttosto semplice. In VeraCrypt si seleziona sempre lo stesso file contenitore o dispositivo e si preme “Mount“: inserendo la password esterna compare il volume-esca; digitando invece la password del volume nascosto viene montata direttamente l’area privata.
Su Windows ciascun volume appare come una nuova unità con una sua lettera identificativa. Al termine delle operazioni basta smontare l’unità da VeraCrypt.
Esiste anche una modalità portable, che evita l’installazione tradizionale del programma, ma su Windows richiede comunque privilegi amministrativi perché VeraCrypt deve caricare il proprio driver: è una differenza importante rispetto a Phantomdrive, che presenta all’host un normale dispositivo USB Mass Storage e svolge cifratura e commutazione direttamente nel controller.

Il limite del volume nascosto: attenzione alle sovrascritture
VeraCrypt non destina una partizione separata al volume nascosto bensì la colloca nello spazio libero apparente del volume esterno. Se quest’ultimo viene montato e riempito con nuovi file, il file system non sa che una parte dello “spazio libero” contiene dati segreti e può sovrascrivere il volume nascosto. Per lavorare sul volume-esca senza correre questo rischio bisogna aprire “Mount Options“, selezionare “Protect hidden volume against damage caused by writing to outer volume” e fornire anche la password del volume nascosto. VeraCrypt può così determinare quali settori non devono essere toccati e blocca le scritture prima che influenzino l’area protetta.
C’è però un prezzo da pagare: finché la protezione rimane attiva, un esaminatore che controlli il computer può ricavare indizi dell’esistenza del volume nascosto. La documentazione raccomanda quindi di valutare attentamente quando utilizzare questo tipo di soluzione.
Va infine fatta un’importante precisazione tecnica proprio se l’esempio riguarda una pendrive. La documentazione ufficiale di VeraCrypt sconsiglia di affidarsi agli hidden volume su dispositivi che applicano wear leveling, categoria nella quale rientrano normalmente SSD e memorie flash USB. Il controller della memoria può infatti spostare internamente i blocchi e conservarne vecchie copie in celle fisiche che il sistema operativo non può indirizzare né cancellare direttamente.
Per la gestione di dati crittografati su USB, VeraCrypt rimane una soluzione pratica da usare, ma chi considera la plausible deniability una proprietà realmente critica dovrebbe attenersi alle prescrizioni del progetto e preferire un supporto privo di wear leveling.