Molti utenti utilizzano MEGA per sincronizzare documenti, backup e file personali tra più dispositivi. Tuttavia, quando si tratta di dati particolarmente sensibili, come database di KeePassXC, configurazioni di accesso remoto, chiavi SSH o certificati, è buona norma cifrarli prima che vengano caricati nel cloud.
In questo articolo vedremo come utilizzare gocryptfs su Debian per creare una cartella cifrata perfettamente integrata con MEGA, mantenendo i file leggibili sul proprio PC ma completamente inutilizzabili per chiunque dovesse ottenere una copia della cartella sincronizzata.
Proteggere i dati sensibili sincronizzati con MEGA usando gocryptfs
Se utilizzi MEGA per sincronizzare i tuoi file nel cloud, potresti voler salvare anche dati sensibili come:
- Database di KeePassXC
- Configurazioni di RustDesk
- Configurazioni di AnyDesk
- Chiavi SSH
- Certificati
- File contenenti password o informazioni riservate
Affidarsi esclusivamente alla cifratura del provider cloud non sempre è la scelta migliore. Una soluzione molto più sicura consiste nel cifrare i dati prima che vengano sincronizzati.
Per questo scopo ho scelto gocryptfs, un filesystem cifrato progettato proprio per cartelle sincronizzate con servizi cloud come MEGA, Dropbox, Nextcloud e simili.
Perché scegliere gocryptfs
A differenza di un contenitore cifrato (ad esempio VeraCrypt), gocryptfs cifra ogni file singolarmente.
Questo significa che:
- ogni file viene sincronizzato indipendentemente;
- modificando un solo file, MEGA sincronizzerà solo quel file;
- non esiste un grosso file contenitore che viene aggiornato continuamente;
- le prestazioni risultano migliori per piccoli documenti e database.
Nel cloud saranno presenti esclusivamente file con nomi casuali e completamente cifrati.
Struttura delle cartelle
Nel mio caso utilizzerò:
Cartella cifrata sincronizzata da MEGA
/home/mega/privato
Cartella montata in chiaro
/home/sa/privato
I programmi accederanno sempre a /home/sa/privato, mentre MEGA sincronizzerà automaticamente la cartella cifrata /home/mega/privato.
Installazione
sudo apt update
sudo apt install gocryptfs
Verificare l'installazione:
gocryptfs -version
Creazione delle cartelle
sudo mkdir -p /home/mega/privato
sudo mkdir -p /home/sa/privato
sudo chown -R sa:sa /home/mega/privato
sudo chown -R sa:sa /home/sa/privato
Inizializzazione della cartella cifrata
Eseguire il comando come utente sa:
su - sa
gocryptfs -init /home/mega/privato
Il programma chiederà una password.
Questa sarà la password principale che proteggerà tutti i dati.
Al termine verrà mostrata anche la Master Key, che conviene salvare in un luogo sicuro.
Nella cartella compariranno due file:
gocryptfs.conf
gocryptfs.diriv
Sono necessari al funzionamento del filesystem cifrato.
Primo montaggio
gocryptfs /home/mega/privato /home/sa/privato
Inserita la password, la cartella /home/sa/privato mostrerà il contenuto in chiaro.
Per prova:
echo "ciao" > /home/sa/privato/test.txt
Se si osserva la cartella sincronizzata con MEGA:
ls /home/mega/privato
compariranno solamente file cifrati con nomi casuali.
Smontare il filesystem
fusermount -u /home/sa/privato
oppure
umount /home/sa/privato
Montaggio automatico senza richiesta della password
Creare una cartella dedicata:
mkdir -p ~/.config/gocryptfs
Creare il file contenente la password:
nano ~/.config/gocryptfs/password
Inserire esclusivamente la password, senza righe aggiuntive.
Proteggere il file:
chmod 600 ~/.config/gocryptfs/password
A questo punto il filesystem può essere montato automaticamente:
gocryptfs \
-passfile ~/.config/gocryptfs/password \
/home/mega/privato \
/home/sa/privato
Non verrà richiesta alcuna password.
Script di montaggio
Se lo script viene eseguito da root, è importante che il montaggio venga effettuato come utente sa.
#!/bin/bash
mkdir -p /home/sa/privato
if mountpoint -q /home/sa/privato; then
exit 0
fi
su - sa -c 'gocryptfs -passfile /home/sa/.config/gocryptfs/password /home/mega/privato /home/sa/privato'
Lo script verifica prima che la cartella non sia già montata e, in caso contrario, esegue il montaggio utilizzando l'utente corretto.
Per comodità, salvo lo script con nome "monta_privato.sh" e lo salvo in "/usr/local/bin/", poi posso aggiungerlo all'avvio del desktop nell'apposita sezione.
Considerazioni sulla sicurezza
La password è salvata in un file locale per consentire il montaggio automatico.
Questa soluzione protegge efficacemente:
- i dati archiviati su MEGA;
- chiunque ottenga una copia della cartella sincronizzata;
- eventuali accessi non autorizzati al cloud.
Naturalmente, chi riuscisse ad accedere direttamente al computer con i privilegi dell'utente proprietario potrebbe leggere anche il file contenente la password.
Per un livello di sicurezza ancora superiore è possibile utilizzare il TPM del computer oppure il keyring del sistema operativo per custodire la chiave di cifratura, evitando di salvarla in chiaro sul disco.