Cartelle condivise criptate

Sia che si lavori in una rete aziendale, sia che si usi il sempre più diffuso “cloud computing”, ormai siamo tutti abituati a condividere intere cartelle con collaboratori, familiari, amici, etc. Nel primo caso, usando i servizi nativi di windows (smb) o linux (nfs). Nel secondo caso usando uno dei tanti servizi tra Dropbox (il mio preferito), Google Drive, Ubuntu One, etc.

Il problema però spesso è che i dati che condividiamo sono “in chiaro”, e perciò intrinsecamente leggibili da chiunque riesca ad impossessarsi di un pc che abbia l’accesso a tali cartelle. Ancora più problematico è il caso in cui tali cartelle vengano usate anche su dei tablet o smartphone, dispositivi ancora più soggetti ad essere persi/rubati/usati da altri.

Poiché sento personalmente sempre più questo problema, ho cercato una soluzione, e per fortuna c’è già chi ci ha pensato.

Da tempo usavo TrueCrypt, ottimo prodotto da usare su chiavette usb, ma poco adatto per le cartelle condivise. Il suo pregio è che “simula” un disco, usando un (grande) file interamente criptato. Quando il disco non è “montato”, dal file non è possibile neanche capire che è un disco TrueCrypt; dopo averlo “montato” inserendo la password, si possono leggere e scrivere i file come se si avesse un altro disco o chiavetta nel computer. Essendo però un unico grande file, ogni volta deve essere sincronizzato per intero, e questo richiede tempo e banda.

L’altra soluzione invece è EncFS, che permette di criptare una intera cartella (con tutte le sottocartelle e file), ma mantiene separati i singoli file. In altri termini, quando la cartella criptata non è “montata”, si vedono tutte le singole sottocartelle ed i file, ma con nomi in codice e con il contenuto criptato. Questo permette di capire più o meno cosa c’è (ad es. un file grande sarà probabilmente un video) e come sono strutturate le cartelle, ma non permette comunque di leggere i contenuti. In compenso, quando si modifica un singolo file, andrà sincronizzato solo quello.

La buona notizia è che funziona sia su Windows che su Linux (ed anche su MacOS ed Android), perciò rispetto ad altri sistemi, è possibile condividere in modo sicuro documenti anche con computer e dispositivi diversi.

Installare EncFS è piuttosto semplice. Di seguito le istruzioni per Windows e per Ubuntu.

Istruzioni per Windows

Come primo passo, occorre creare una cartella, all’interno delle proprie cartelle condivise, che conterrà i file criptati (nota: è possibile creare un numero illimitato di cartelle criptate, ognuna con una propria password).

Poniamo abbiate una cartella Dropbox condivisa:
C:\Documents and Settings\VostroNome\Documenti\Dropbox\Condivisa

Dentro questa cartella potete creare una sottocartella “FileCriptati”:
C:\Documents and Settings\VostroNome\Documenti\Dropbox\Condivisa\FileCriptati
che conterrà le versioni criptate dei file.

A questo punto occorre installare il programma Encfs4win, che potete scaricare da:
http://members.ferrara.linux.it/freddy77/encfs.html

Purtroppo (all’11 dicembre 2012) non esiste ancora un pacchetto di installazione unico. Dovete perciò seguire una procedura un po’ complessa:

  1. Scaricare l’installazione della libreria Dokan da http://dokan-dev.net/en/download/
  2. Lanciare l’installazione di Dokan
  3. Scaricare il pacchetto zip di Encfs4win da http://members.ferrara.linux.it/freddy77/encfs.html
  4. Scompattare il pacchetto in una cartella a piacere (io in genere per i programmi installati a mano uso C:\Programmi2 )
  5. Lanciare il programma encfsw.exe (che è l’interfaccia grafica) da dentro la cartella scompattata (ad es. C:\Programmi2\encfs4win )
  6. Vicino all’orologio appare una chiave. Cliccarci sopra, scegliere “Preferences” e nella finestra mettere la spunta su “Launch at startup”, poi premere “Ok”.

Le informazioni che seguono valgono sia per creare la prima volta una cartella criptata, sia per registrare su un altro computer una cartella criptata già esistente.

Per creare/registrare la cartella criptata, occorre cliccare sulla chiave vicino all’orologio, e scegliere “Open/Create”. Il programma chiederà di indicare la cartella che contiene i file criptati: scegliere la cartella creata sopra (ad es: C:\Documents and Settings\VostroNome\Documenti\Dropbox\Condivisa\FileCriptati ). A questo punto il programma chiederà di specificare la lettera del “disco virtuale” in cui si vedranno i file decriptati. Infine chiederà di specificare/inserire la password.

Una volta concluse correttamente queste operazioni, il programma aprirà in una nuova finestra il “disco virtuale” contenente i file decriptati. Qui sarà possibile aprire, modificare, aggiungere ed eliminare file e cartelle come se fosse un disco qualsiasi. Il programma apporterà automaticamente le modifiche alla versione criptata della cartella, e Dropbox (o qualsiasi altro sistema di condivisione si usi) salverà in automatico le modifiche ai file criptati.

E’ possibile “smontare” in qualsiasi momento il “disco virtuale” cliccando sulla chiave e scegliendo “unmount C:\Percorso\Cartella\Criptata”. Quando si spegne il computer tutte le cartelle criptate montate vengono automaticamente “smontate”.

Per “rimontare” una cartella già registrata, occorre cliccare sulla chiave vicino all’orologio, e scegliere “mount C:\Percorso\Cartella\Criptata”. Una volta inserita la password corretta, il programma aprirà il “disco virtuale”.

A questo punto basterà comunicare la password alle altre persone con cui abbiamo condiviso la cartella criptata, e saremo sicuri che solo chi è in possesso della password potrà accedere a quei contenuti, mentre per tutto il resto del mondo (Dropbox compreso) saranno incomprensibili.

Istruzioni per Ubuntu

Poiché EncFS è nato sotto Linux, l’installazione dentro Linux è anche più facile. Basta infatti andare su “Gestore pacchetti” o su “Ubuntu software center” e cercare ed installare il pacchetto “cryptkeeper”. In alternativa digitare in una shell:

sudo apt-get install cryptkeeper

Per comodità consiglio di aggiungere cryptkeeper alla lista di programmi lanciati automaticamente all’avvio.

Una volta lanciato cryptkeeper, nell’area di notifica appare l’icona di una chiave. Il funzionamento è simile a quello di windows, eccetto che la registrazione di una cartella criptata esistente e la creazione di una nuova cartella criptata sono due operazioni distinte.

Cliccando sopra alla chiave, è possibile registrare una cartella criptata scegliendo “Importa cartella EncFS”. Dopo aver scelto la cartella che contiene i file criptati (ad es. /home/VostroNome/Dropbox/Condivisa/FileCriptati ) ed aver cliccato “Avanti”, occorre scegliere la posizione della “cartella virtuale” dove verrà “montata” la cartella decriptata (cioè la posizione in cui vedremo i file e le sottocartelle decriptate). Scegliamo ad esempio /home/VostroNome/Scrivania/FileDecriptati .

Per “montare” una cartella criptata, occorre cliccare sopra la chiave, e poi sopra il percorso della “cartella virtuale” (ad es. /home/VostroNome/Scrivania/FileDecriptati ). Dopo aver inserito la password, verrà aperta la “cartella virtuale”. Qui sarà possibile aprire, modificare, aggiungere ed eliminare file e cartelle come se fosse una cartella qualsiasi. Il programma apporterà automaticamente le modifiche alla versione criptata della cartella, e Dropbox (o qualsiasi altro sistema di condivisione si usi) salverà in automatico le modifiche ai file criptati.

Per “smontare” una cartella criptata, basta cliccare sopra la chiave, e poi cliccare sul nome della cartella (se una cartella è montata ha una spunta affianco).

La creazione di una nuova cartella criptata si può invece fare con cryptkeeper o da riga di comando. Usando cryptkeeper, le prime volte può apparire controintuitivo, in quanto viene solo chiesta la posizione della “cartella virtuale” che conterrà i file decriptati, e la cartella criptata viene creata automaticamente con un nome particolare. In ogni caso, ho potuto testare che questo non crea problemi con Dropbox, in quanto i contenuti della cartella non criptata non vengono inviati a Dropbox. Può tuttavia creare problemi per comunicare ad altri la posizione della cartella criptata. Vediamo perché.

Poniamo il caso che abbiamo una cartella condivisa /home/VostroNome/Dropbox/Condivisa/ , dentro vogliamo crearci una “cartella virtuale” (non criptata) “FileSicuri”. Per far ciò clicchiamo sulla chiave e scegliamo “Nuova cartella crittografata”. Il programma ci chiede dove creare la cartella, e gli diciamo appunto /home/VostroNome/Dropbox/Condivisa/FileSicuri . Ci chiede quindi di inserire una password. A quel punto ci apre la cartella /home/VostroNome/Dropbox/Condivisa/FileSicuri , dove possiamo iniziare a creare i file che verranno invece condivisi criptati. Ma… in quale cartella finiscono, una volta criptati? Purtroppo questa volta il programma per Linux risulta essere più opaco di quello per windows. In ogni caso, studiando il contenuto di /home/VostroNome/Dropbox/Condivisa/ scoprirete una cartella “.FileSicuri_encfs”, che contiene i file criptati.

Per chi volesse invece specificare manualmente entrambe le cartelle, è possibile svolgere l’operazione anche da shell, con il comando “encfs”.

Conclusioni

Tutto ciò può sembrare complesso, ed in effetti ancora non ci sono strumenti che rendano semplice l’uso di queste cose. Tuttavia dopo il primo ostacolo, ci si renderà conto che è un buon sistema per condividere documenti riservati con strumenti di condivisione standard e gratuiti. Esistono anche dei programmi per MacOS ed Android, e questo rende il tutto ancora più multipiattaforma.

L’unico neo è che la password deve essere condivisa ed è uguale per tutti. L’ideale sarebbe stato un sistema di autenticazione distribuita (ad es. via Ldap o meglio ancora OAuth) con una richiesta della password tramite un sistema di challenge-response. Chissà, forse in futuro qualcuno lo implementerà…

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

+ 36 = 45

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>