[[encfs]]
Piste: » encfs
Chiffrez aisément vos répertoires avec EncFS
Note : dans les commandes proposées, vous devez remplacer VotreNom par votre nom d'utilisateur Ubuntu.
Petit rappels sur les termes "chiffrement" etc... : Chiffrement
De quoi s'agit-il ?
Apprendre à installer et utiliser le système de chiffrement EncFS qui fonctionne de façon simple sur tout système de fichiers grâce à fuse.
Introduction
Vous souhaitez conserver des données sensibles et/ou privées, mais sans chiffrer tout votre disque dur. Idéalement, vous voudriez pouvoir restreindre l'accès à certains répertoires seulement, par mot de passe. Les données stockées dans ce ou ces répertoire(s) seraient chiffrées et accessibles uniquement après authentification.
EncFS permet de réaliser cela très simplement. Pour ce faire, vous allez utiliser deux répertoires :
- un premier répertoire dans lequel seront stockées les données chiffrées ("source directory") ;
- un second répertoire dans lequel vous pourrez créer des données en clair, après authentification ("mount directory").
L'idée est la suivante : vous donnez temporairement accès au second répertoire en fournissant un mot de passe (initialement choisi par vous), et créez vos données en clair dans ce répertoire. Ensuite, vous refermez l'accès à ce répertoire. EncFS s'occupe de "copier" les données du second répertoire (accès temporaire) vers le premier (stockage permanent), tout en les chiffrant. Après avoir fermé l'accès au second répertoire, ce dernier apparaît vide, tandis que le premier répertoire contient les fichiers chiffrés, donc inaccessibles. Pour pouvoir de nouveau modifier les données conservées dans le répertoire de stockage, il faut redonner accès par mot de passe au second répertoire, qui sert donc de répertoire de travail.
Note technique : EncFS gère donc des couples de fichiers « en clair / chiffré ». Dans le répertoire de stockage, les noms de fichiers sont par ailleurs chiffrés. Les avantages d'EncFS par rapport aux autres programmes de chiffrement de données sont principalement sa simplicité et sa souplesse d'utilisation. Voyez en fin de page les avantages/défauts courants.
Installation
Paquets module ''fuse''
Installez, par apt-get install ou via Synaptic, les deux paquets suivants : fuse-utils et encfs
Les dépendances nécessaires seront installées automatiquement.
Installation de fuse-utils :
:~$ sudo apt-get install fuse-utils
Installation de encfs ( ceci installera aussi librlog1c2a )
:~$ sudo apt-get install encfs
Ajout du module fuse dans /etc/modules afin qu'il soit actif au démarrage du système :
:~$ sudo sh -c "echo fuse >> /etc/modules"
Vous pouvez vérifier, en ouvrant le fichier /etc/modules par gksudo gedit /etc/modules que le mot fuse a bien été rajouté à ce fichier.
Prise en charge du module :
:~$ sudo modprobe fuse
On ajoute son nom d'utilisateur au groupe fuse (utilisateur VotreNom dans mon exemple)
:~$ sudo adduser VotreNom fuse
On vérife ensuite que l'utilisateur VotreNom fait bien partie du groupe fuse. Le numéro (ici 118) peut varier.
:~$ grep "fuse" "/etc/group" fuse:x:118:VotreNom
Puis on réouvre une session
su - VotreNom
Vous pouvez vérifier que vous êtes bien dans le groupe fuse en tapant :
groups
Création des répertoires
Dans notre exemple, le répertoire de stockage des données chiffrées sera ~/.coffre et le répertoire « de travail » (pour manipuler les données en clair après authentification) sera ~/coffre_open. Tapez donc :
encfs /home/VotreNom/.coffre/ /home/VotreNom/coffre_open/
Attention, la commande encfs attend des chemins complets : écrivez donc /home/VotreNom/ et pas le raccourci ~/ !
La première fois qu'elle est écrite, cette commande permet de créer et paramétrer les répertoires utilisés pour stocker et manipuler les données chiffrées par EncFS. Voici un exemple de ce que vous devriez obtenir dans votre terminal :
[user@yop ~] encfs /home/user/.coffre/ /home/user/coffre_open The directory "/home/user/.coffre/" does not exist. Should it be created? (y,n) y The directory "/home/user/coffre_open" does not exist. Should it be created? (y,n) y Création d'un nouveau volume chiffré. Veuillez choisir au moins une des options suivantes : entrez "x" pour le mode de configuration expert, entrez "p" pour un mode pré-configuré paranoïaque, n'importe quoi d'autre ou une ligne vide sélectionnera le mode standard. ?> p Configuration paranoïaque sélectionnée. Configuration terminée. Le système de fichiers sur le point d'être créé a les caractéristiques suivantes : Chiffrement de système de fichiers "ssl/aes", version 2:1:1 Encodage du nom de fichier : "nameio/block", version 3:0:1 Taille de clé : 256 bits Taille de bloc : 512 octets, y compris 8 octets d'en-tête MAC Chaque fichier comprend un en-tête de 8 octets avec des données IV uniques. Nom de fichiers chiffrés en utilisant le mode de chaînage IV. L'IV des données du fichier est chaînée à l'IV du nom de fichier.
————————– AVERTISSEMENT ————————–
The external initialization-vector chaining option has been enabled. This option disables the use of hard links on the filesystem. Without hard links, some programs may not work. The programs 'mutt' and 'procmail' are known to fail. For more information, please see the encfs mailing list. If you would like to choose another configuration setting, please press CTRL-C now to abort and start over.
Vous devez entrer un mot de passe pour votre système de fichiers. Vous devez vous en souvenir, car il n'existe aucun mécanisme de récupération. Toutefois, le mot de passe peut être changé plus tard à l'aide d'encfsctl.
Nouveau mot de passe : votre_passe Vérifier le mot de passe : votre_passe
À la question « Veuillez choisir au moins une des options suivantes », vous pouvez choisir le mode « paranoïaque » en tapant p puis [Entrée]. Ce mode est le plus sécurisé.
Vérifiez le montage du répertoire chiffré :
cat /proc/mounts
vous donnera, entre autres, une entrée de ce type :
encfs /home/VotreNom/coffre_open fuse rw,nosuid,nodev,user_id=1000,group_id=1000,default_permissions 0 0
Note : si vous chiffrez des fichiers en utilisant ce mode « paranoïaque », certaines applications pourront ne pas fonctionner normalement en utilisant ces fichiers chiffrés. Cela vient du fait que les liens (hard) ne peuvent être recopiés dans le dossier de stockage. Si vous rencontrez des problèmes de ce type, recréez un couple de répertoires et changez de mode.
Note2 : le répertoire des données en clair (ici "coffre") peut être changé à volonté. Il n'y a pas de lien définitif entre les deux répertoires. Veillez toutefois dans ce cas à ce que :
- le nouveau répertoire ait bien été créé et soit vide
- il y ait concordance entre le chemin de montage et celui de démontage.

Utilisation
Elle est basique puisqu'il vous suffit de deux commandes du type ON/OFF
1. ON Pour accéder aux données en clair, il suffit de réutiliser la même commande qu'au début, à savoir, dans notre exemple :
encfs /home/VotreNom/.coffre/ /home/VotreNom/coffre_open/
Contrairement à la première fois, EncFS détecte qu'une initialisation a déja été faite sur ces deux répertoires et se contente de demander le mot de passe pour débloquer l'accès au répertoire « de travail » (qu'il montera pour vous avec la commande fusermount).
Toute donnée crée/copiée/déplacée en clair dans le répertoire de travail (ici, ~/coffre_open) sera automatiquement stockée sous forme chiffrée dans le répertoire de stockage (ici, ~/.coffre).
2. OFF Pour ne plus pouvoir accéder aux données en clair, il suffit de démonter le répertoire « de travail », soit dans notre exemple :
fusermount -u /home/VotreNom/coffre_open
Exemples sur un terminal
Vous trouverez sur la page encfs_exemples quelques exemples d'utilisation à partir d'un terminal.
Notez en particulier que, puisque vous utilisez fuse, il vous est possible de travailler sur un couple de répertoires placé sur une partition NTFS.
Nota: la plus récente version du driver ntfs-3G en version beta, basée notamment sur la version 2.6 de fuse permet d'écrire sur les partitions NTFS. Elle ne fonctionne pas encore avec des données chiffrées. Avant d'utiliser conjointement ces deux programmes sur une partition NTFS, vérifiez si cette information est toujours d'actualité.
Automatiser le lancement/arrêt
avec Fusible
Fusible est une interface graphique pour tous les points de montage de type FUSE et donc EncFS. Il s'utilise avec des plugins ; celui pour EncFS est disponible. L'installation et l'utilisation sont détaillées sur la page qui lui est consacré.
avec cryptkeeper
http://www.tomatarium.pwp.blueyonder.co.uk/cryptkeeper.html C'est un applet (english only) qui s'installe sous forme de cadenas dans la zone de notification. Le mot "stash" se rapporte au couple de répertoires "clair/chiffre". Le reste est assez explicite. Vous pouvez aussi le télecharger à partir des dépôts gnome.
avec des commandes
Vous pouvez créer deux commandes pour ouvrir et fermer rapidement l'accès au répertoire de travail :
gksudo gedit /usr/bin/decrypt
Copiez-y le texte suivant :
#!/bin/sh encfs /home/VotreNom/.coffre/ /home/VotreNom/coffre_open/
gksudo gedit /usr/bin/encrypt
Copiez-y le texte suivant :
#!/bin/sh fusermount -u /home/votreNom/coffre_open
Vérifiez que vous utilisez bien les noms de répertoires que vous avez choisi ! Ensuite, donnez les droits nécessaires à ces deux commandes :
sudo chown VotreNom /usr/bin/decrypt /usr/bin/encrypt
chmod 700 /usr/bin/decrypt /usr/bin/encrypt
Désormais, vous pouvez taper decrypt pour libérer l'accès au répertoire de travail et manipuler vos données chiffrées, puis encrypt pour refermer l'accès. Vous pouvez aussi utiliser ces commandes pour créer des lanceurs/raccourcis.
avec un script
Vous trouverez ici un script qui vous permettra de monter et démonter aisément votre répertoire de travail. Il peut remplacer les deux commandes ci-dessus.
Code:
#!/bin/bash # Script de montage de dossier chiffré avec encfs et fuse. # A utiliser avec Thunar ou Nautilus, ou en ligne de commande : # ./mount_enc ~/dossier_de_montage
# Variable à modifier : repertoire contenant les fichiers chiffrés CRYPTEDFOLDER=/home/VotreNom/.coffre
gksudo -p -m "Entrez le mot de passe" | encfs -S $CRYPTEDFOLDER $1 zenity --info --text="Cliquez sur valider pour démonter" fusermount -u $1
Ce programme prend comme argument le dossier à monter. Une fois que le dossier est monté, il fait apparaitre une boite de dialogue grâce à zenity. Et quand on ferme la boite de dialogue, le dossier chiffré est démonté.
Pour en savoir plus à ce sujet:
http://ratur.ovh.org/index.php?post/2006/08/22/Cryptez-vos-donnees-avec-Encfs-et-Fuse
Nota: si vous préférez voir une icône dans le systray au lieu d'une boîte de dialogue, remplacer l'expression
zenity --info --text="Cliquez sur valider pour démonter"
par celle-ci:
zenity --notification --text="Démonter EncFs"
un script qui résume et qui va bien par bhubuntu:
#!/bin/sh # script pour ouvrir .coffre et le fermer facilement # 2 Variables à modifier = 2 répertoires contenant 1) fichiers cryptés et 2) fichiers à monter décryptés # la commande set attribue les valeurs à $1 et $2 set /home/VotreNom/.coffre/dossier_crypte_encfs /home/VotreNom/.coffre/dossier_montage gksudo -p -m "Entrez le mot de passe pour ouvrir .coffre" | encfs -S $1 $2 # on teste si le dossier par exemple ici 'Perso' est présent # si le mot de passe était faux le dossier montage apparaitrait vide donc on passe à else # if [ -e $2"/Perso" ]; then # on affiche le dossier crypté dans nautilus nautilus $2 # notification dans le systray pour masquer le dossier crypté zenity --notification --text "cliquer ici pour fermer votre dossier décrypté" fusermount -u $2 zenity --warning --title=Fermeture --text "votre dossier décrypté a été définitivement fermé et masqué" else zenity --info --title=Erreur --text "mot de passe erronné: recommencez !" fi exit
c'est simple!
Problèmes éventuels
Accès impossible ?
Important : pour pouvoir accéder aux données en clair, il est nécessaire en plus du mot de passe de vérifier si le fichier .encfs5 est bien présent dans le répertoire de l'utilisateur.
Le fichier .encfs5 qui se trouve dans le repertoire chiffré à la racine du répertoire de stockage (fichier caché, Ctrl H dans Nautilus pour le voir ou ls -al ~/.coffre) contient notamment les données propres au chiffrement. Il ne doit donc en aucun cas être supprimé sous peine de perte de vos données. Si vous devez faire une sauvegarde des répertoires de travail encfs (répertoire chiffré et répertoire ouvert), il faut penser à sauvegarder aussi le fichier .encfs5 correspondant.
Module ''fuse''
Vérifier
- - la présence du module fuse ( lsmod | grep fuse)
- - que l'utilisateur a les droits requis (grep "fuse" "/etc/group")
Au cas où le module fuse n'est pas trouvé au moment du chargement, il se peut qu'il faille modifier le noyau (ce ne devrait pas être le cas sous Breezy, Dapper ou Edgy). Dans ce cas, faire :
sudo apt-get install module-assistant
puis :
sudo module-assistant
puis prepare, puis select, puis fuse, puis build, puis appuyer sur [Entrée] au moment du "The source package may not be installed...", puis exit'. Arrivé là, le modprobe fuse devrait fonctionner.
Avantages/défauts
Il existe beaucoup d'autres méthodes pour chiffrer des données sous Linux, mais celle ci a beaucoup d'avantages :
- une installation en quelques commandes, une utilisation basique avec deux commandes,
- l'installation est durable. Aucune compilation ou réinstallation n'est nécessaire en cas de mise à jour du kernel,
- il n'est pas nécessaire de créer de fichier/répertoire d'une taille fixe dédié à l'espace chiffré,
- l'utilisateur a le libre choix des répertoires,
- le fait de voir le nombre de fichiers chiffrés, leurs tailles et droits d'accès peut-être utile, et représente un avantage lors de l'utilisation de backups incrémentaux par exemple ;
- les performances semblent correctes (contrairement à d'autres solutions).
- fonctionnement possible sur différents types de fichier (dont NTFS)
Parmi les défauts, ou désavantages, on peut citer :
- le fait que le dossier de stockage soit visible et donne donc accès à quelques méta-données (nombre de fichiers chiffrés -mais pas leurs noms-, leur tailles et droits d'accès...),
- le fait que les données chiffrées doivent obligatoirement utiliser le système de fichier utilisé pour les données en clair (même partition).
- absence de déni plausible ou de volume caché.
Ressources
Pour plus de détails less /usr/share/doc/encfs/README.gz
EncFS peut faire un peu plus que ce que cette aide n'a présenté. Pour plus d'informations, voyez :
- Page man d'EncFS (ou
man encfsdans votre terminal)
- Un GUI (interface graphique) est en cours de développement : Fusible
Contributeurs : Uggy, jd, Spomky
Basé sur : ce billet original. Équivalent anglophone disponible sur ce topic d'ubuntuforums.org.