[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 191.   EncFS

EncFS(1) è un file system cifrato, basato su FUSE, la cui gestione è molto semplice e alla portata di tutti: a partire da una certa directory si collocano i file, che sono cifrati nel loro contenuto e nel loro nome, mentre le altre informazioni rimangono intatte. Per accedere ai dati originali in chiaro, la directory contenente la gerarchia cifrata viene reinnestata in corrispondenza di un'altra directory vuota, fornendo una parola d'ordine.

191.1   Un esempio per iniziare

L'utente tizio potrebbe decidere di utilizzare la directory ~/dati_cifrati/ per le proprie cose segrete. L'utente prepara tale directory, inizialmente vuota, quindi ne attiva la gestione attraverso il programma encfs, ma per farlo deve reinnestarla contestualmente in un'altra directory vuota, per esempio ~/dati_in_chiaro/:

mkdir ~/dati_cifrati[Invio]

mkdir ~/dati_in_chiaro[Invio]

encfs ~/dati_cifrati ~/dati_in_chiaro[Invio]

Il programma vuole sapere che livello di sicurezza adottare, ma nella maggior parte delle situazioni è sufficiente quello predefinito:

Creating new encrypted volume.
Please choose from one of the following options:
 enter "x" for expert configuration mode,
 enter "p" for pre-configured paranoia mode,
 anything else, or an empty line will select standard mode.

?> [Invio]

Standard configuration selected.

Configuration finished.  The filesystem to be created has
the following properties:
Filesystem cipher: "ssl/blowfish", version 2:1:1
Filename encoding: "nameio/block", version 3:0:1
Key Size: 160 bits
Block Size: 512 bytes
Each file contains 8 byte header with unique IV data.
Filenames encoded using IV chaining mode.

Now you will need to enter a password for your filesystem.
You will need to remember this password, as there is absolutely
no recovery mechanism.  However, the password can be changed
later using encfsctl.

New Encfs Password: digitazione_all'oscuro[Invio]

Verify Encfs Password: digitazione_all'oscuro[Invio]

mount[Invio]

...
encfs on /home/tizio/dati_in_chiaro type fuse \
  \(rw,nosuid,nodev,default_permissions,user=tizio) ...

Da questo momento, tutto quello che l'utente tizio fa nella directory ~/dati_in_chiaro/, si traduce in altrettanti file e directory cifrati nella directory ~/dati_cifrati/.

Per concludere l'attività nei dati cifrati, si può staccare l'innesto che parte dalla directory ~/dati_in_chiaro::

fusermount -u ~/dati_in_chiaro[Invio]

La directory dedicata al contenimento dei dati cifrati, si distingue in quanto contiene il file .encfsn; pertanto, quando si utilizza nuovamente il programma encfs per innestarla altrove, il contenuto viene riconosciuto e reso disponibile in chiaro. Naturalmente, non è necessario che la directory cifrata venga innestata sempre nello stesso posto:

mkdir /tmp/mia[Invio]

encfs ~/dati_cifrati /tmp/mia[Invio]

EncFS Password: digitazione_all'oscuro[Invio]

mount[Invio]

...
encfs on /tmp/mia type fuse (rw,nosuid,nodev,default_permissions,user=tizio)
...

È importante osservare che le directory vanno indicate al programma encfs con un percorso assoluto. Negli esempi è stata usata la tilde (~) per fare riferimento a un percorso assoluto della directory personale dell'utente.

Benché possa essere considerato di scarsa utilità, è bene sapere che una stessa directory cifrata può essere innestata in chiaro su più directory differenti. Tali directory diventano equivalenti per ciò che riguarda il contenuto.

191.2   Cura nell'uso di EncFS

Dopo la creazione di qualche file nella directory cifrata (attraverso l'innesto in chiaro), si può dare un'occhiata al contenuto, facendo magari un confronto tra dati reali e dati cifrati:

encfs ~/dati_cifrati ~/dati_in_chiaro[Invio]

tree -a ~/dati_in_chiaro[Invio]

/home/tizio/dati_in_chiaro
|-- alfa
|   `-- charlie
`-- bravo

1 directory, 2 files

tree -a ~/dati_cifrati[Invio]

/home/tizio/dati_cifrati
|-- .encfs5
|-- N6rnhFLNx,cgB-
|   `-- dS,q8YPh64-h8,
`-- nuW8KJbRPh-Yn1

1 directory, 3 files

Se nella directory cifrata si inseriscono direttamente dei file (presumibilmente in chiaro), questi non vengono considerati; inoltre, è importante capire che se si cancella il file .encfsn, si perde la possibilità di accedere ai dati.

Il contenuto della directory cifrata può essere trasferito o copiato, tale e quale, mantenendo la possibilità di accedervi poi attraverso il meccanismo del reinnesto in chiaro. In tal modo è possibile fare una copia di sicurezza dei dati, che rimangono cifrati nella copia.

191.3   Manutenzione di EncFS

Il programma encfsctl consente di ispezionare una directory cifrata e di cambiarne la parola d'ordine (purché si conosca quella precedente). Supponendo che la directory cifrata sia sempre ~/dati_cifrati/, ci si potrebbe chiedere di conoscerne le caratteristiche:

encfsctl info ~/dati_cifrati[Invio]

Version 5 configuration; created by EncFS 1.2.5 (revision 20040813)
Filesystem cipher: "ssl/blowfish", version 2:1:1
Filename encoding: "nameio/block", version 3:0:1
Key Size: 160 bits
Block Size: 512 bytes
Each file contains 8 byte header with unique IV data.
Filenames encoded using IV chaining mode.

Poi ci si potrebbe domandare se, per caso, ci sono file estranei, nel senso che non vengono riconosciuto dal sistema di cifratura:

encfsctl showcruft ~/dati_cifrati[Invio]

In tal caso diventa necessario l'inserimento della parola d'ordine:

EncFS Password: digitazione_all'oscuro[Invio]

11:37:04 (FileUtils.cpp:1296) useStdin: 0
11:37:05 (FileUtils.cpp:1307) configuration key size = 32
11:37:05 (FileUtils.cpp:1308) cipher key size = 32
Found 0 invalid files.

Quindi, come possibilità più importante, potrebbe essere necessario cambiare la parola d'ordine per l'accesso ai dati:

encfsctl passwd ~/dati_cifrati[Invio]

Enter current Encfs password

EncFS Password: digitazione_all'oscuro[Invio]

Enter new Encfs password

New EncFS Password: digitazione_all'oscuro[Invio]

Verify EncFS Password: digitazione_all'oscuro[Invio]

Volume Key successfully updated.

È interessante osservare che la parola d'ordine può essere cambiata anche mentre la directory è già innestata in chiaro da qualche parte, senza interferire con le attività normali di accesso. Ciò che cambia è solo il fatto che all'innesto successivo, deve essere fornita la parola d'ordine nuova.

191.4   Opzioni per facilitare l'accesso ai dati

Per consentire l'accesso ai dati in chiaro anche agli altri utenti, si usano notoriamente le opzioni allow_other e default_permissions. Con il programma encfs è possibile usare l'opzione --public per richiamare automaticamente queste opzioni di FUSE, ma in tal caso, encfs pretende che l'azione sia richiesta dall'utente root:

encfs --public ~/dati_cifrati ~/dati_in_chiaro[Invio]

... option '--public' ignored for non-root user

Tuttavia, se la configurazione di FUSE lo consente, questa funzionalità può essere ottenuta ugualmente, con le limitazioni dovute al fatto che non è l'utente root a eseguire l'innesto:

encfs ~/dati_cifrati ~/dati_in_chiaro -- \
  \      -o allow_other,default_permissions
[Invio]

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) EncFS   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome encfs.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!