Cryptomator vs GoCryptFS: cloud encryption tools a confronto

Cryptomator vs GoCryptFS:  cloud encryption tools a confronto
Photo by Growtika / Unsplash

Quando si salvano dati personali su un cloud storage come Dropbox, Google Drive o OneDrive occorre essere consapevoli che questi dati non sono al sicuro dal punto di vista della privacy. A parte i rischi che derivano dal furto di credenziali e che possono essere mitigati abilitando la multi factor authentication, esiste un problema alla base dovuto al fatto che non si tratta di zero knowledge cloud: in altre parole i fornitori si mantengono facoltà almeno teorica di accedere ai vostri dati, spesso perché obbligati dalla legislazione a cui sottostanno. La questione è parecchio spinosa perché non solo implica fidarsi dei fornitori, ma espone i vostri dati al rischio di attacchi informatici che possano sfruttare queste "backdoor".

Utilizzare un cloud storage per archiviare i propri documenti è utilissimo, ma diventa importante a questo punto anche separare le aree di competenza: il fornitore garantisce la sicurezza fisica dei vostri dati, voi la protezione da data breach e la riservatezza. In che modo? Con un sistema di crittografia sotto il vostro controllo.

In questo articolo prendo in considerazione due tool del mondo open source e che servono proprio a questo scopo.

  1. GoCryptFS (https://nuetzlich.net/gocryptfs/)
  2. Cryptomator (https://cryptomator.org/)

Il loro funzionamento è molto simile, in entrambi i casi mettono a disposizione mount point dove depositare i file e loro in modo trasparente scrivono i dati criptati nella directory di destinazione, che potrebbe essere appunto una directory di Dropbox. In questo modo sul cloud vengono sincronizzati solo dati criptati senza che nessuno, a parte voi, possa accedervi.

GoCryptFS

Si tratta di un tool scritto in Go utilizzabile da command line, anche se esistono GUI sviluppate da terze parti che però non ho considerato. Come interfaccia file system utilizza FUSE (tramite la libreria go-fuse) e per la crittografia AES-256-GCM (Galois/Counter Mode). Per approfondimenti sulla crittografia si può vedere qui.

Il progetto vuole essere il successore di EncFS correggendo alcune sue issue di sicurezza e puntando a migliori performance. Sul repository di Ubuntu si trova la versione 1.8.0 mentre l'ultima release stabile è la 2.3.2, nel performance test ho considerato entrambe le versioni perché come vedremo il progetto è molto attivo su questo fronte e ci sono sensibili differenze.

Cryptomator

Questo tool è scritto in Java e integra una interfaccia grafica che rende agevole la configurazione, inoltre si integra con il desktop salvando la password nel wallet di sistema. Come interfaccia file system mette a disposizione sia FUSE che WebDAV, per la crittografia AES-256 CTR con random IV.

Performance

I test sono stati condotti utilizzando la suite nel progetto GoCryptFS con una piccola variante, a causa di un bug di Cryptomator non è stato possibile eseguire il test di delete. Per eliminare la variabile disco i vault di test sono stati creati su tmpfs.

Test GoCryptFS GoCryptFS Cryptomator
(1.8.0) (2.3.2) (1.8.0)
Streaming write 863 MB/s 1,1 GB/s 1,2 GB/s
Streaming read 2,2 GB/s 2,2 GB/s 2,2 GB/s
Tarball extraction 6,1s 3,8s 8,2s
md5sum 2,3s 2,3s 4,4s

Come è possibile vedere nella lettura sequenziale sono assolutamente equivalenti, mentre in scrittura la versione 1.8.0 di GoCryptFS pacchettizzata da Ubuntu è sensibilmente più lenta rispetto alla più recente versione. I miglioramenti in scrittura registrati nell'ultima versione di GoCryptFS sono ancora più accentuati nel test di Tarball extraction, dove però Cryptomator subisce una netta sconfitta. Piuttosto netta anche la differenza fra i due tool nel test di md5sum dove GoCryptFS (entrambe le versioni) "risparmia" il 48% di tempo.

Conclusioni

Fatto salvo una differenza di performance su alcune operazioni a vantaggio di GoCryptFS i due tool si sono mostrati sostanzialmente equivalenti, la scelta può dipendere dal fatto che si preferisca una interfaccia grafica oppure i vantaggi di una cli scriptabile.

Entrambi consentono di salvarsi la master key in chiaro (attenzione, solo una volta alla creazione del vault) che è indispensabile nel caso si dimentichi la password e che va custodita in un luogo sicuro. Ricordo che nel caso venga smarrita la password e non si dispone della master key tutto il contenuto del vault sarà perso per sempre.

Entrambi i tool hanno una app per Android che però non ho provato.