Chiffrer ses données avec EncFS
Par Yannick le mercredi, 17 mai 2006, 12:07 - Sécu - Lien permanent
- Introduction
EncFS permet de chiffrer très simplement des données.
En gros, 2 répertoires sont utilisés:
- le répertoire dans lequel sont stoquées les données chiffrées.
- le répertoire dans lequel on monte les données en clair pour y accéder.
- Installation
sudo apt-get install encfs fuse-utils
Charger tout de suite le module fuse avec:
sudo modprobe fuse
Activer le chargement au démarrage en ajoutant fuse dans le fichier /etc/modules
Ajouter l'utilisateur au groupe fuse avec:
sudo adduser <NomUser> fuse
puis réouvrir une session avec
su - <user>
Vérification par la commande
groups
- Initialisation
encfs /home/yannick/.crypt/ /home/yannick/crypt/
Cette commande permet la 1ère fois qu'elle est lancée de tout paramétrer pour stoquer les données chiffrées dans le répertoire .crypt/ et de monter les données en clair dans le répertoire crypt/ ...Tout ceci avec le mot de passe demandé, et avec l'algo choisi:
A noter qu'il est nécessaire d'indiquer des chemins complets !
[yannick@yop ~] encfs /home/yannick/.crypt/ /home/yannick/crypt
The directory "/home/yannick/.crypt/" does not exist. Should it be created? (y,n) y
The directory "/home/yannick/crypt" 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.
Vous allez maintenant devoir entrer un mot de passe
pour votre système de fichiers.
Vous allez devoir absolument vous souvenir de ce mot de passe,
comme il n'y a aucun mécanisme de secours.
Cependant, le mot de passe pourra être changé plus tard
en utilisant encfsctl.
Nouveau mot de passe EncFS:
Vérifiez le mot de passe EncFS:
[yannick@yop ~]
- Utilisation
Pour ne plus pouvoir accéder au données en clair, il suffit de démonter le répertoire:
fusermount -u /home/yannick/crypt
Pour accéder au données en clair, il suffit de réutiliser la même commande qu'au début.
(Maintenant EncFS voit qu'une initialisation a déja été faite sur ces répertoires et ne redemande plus de choisir un nouveau mot de passe ou de choix d'algo)
(Il demande simplement le mot de passe choisi à l'étape précédente).
encfs /home/yannick/.crypt/ /home/yannick/crypt/
Toute donnée copiée (en clair donc) dans le répertoire crypt/ sera automatiquement stoquée chiffrée dans .crypt/
- Exemple
[yannick@yop ~] echo tutu > crypt/toto
[yannick@yop ~] ll crypt
total 20K
drwx------ 2 yannick yannick 4,0K 2006-05-15 17:39 .
drwxr-xr-x 154 yannick yannick 8,0K 2006-05-15 17:02 ..
-rw-r--r-- 1 yannick yannick 5 2006-05-15 17:39 toto
[yannick@yop ~]
[yannick@yop ~] ll .crypt/
total 24K
drwx------ 2 yannick yannick 4,0K 2006-05-15 17:39 .
drwxr-xr-x 154 yannick yannick 8,0K 2006-05-15 17:02 ..
-rw-r----- 1 yannick yannick 239 2006-05-15 17:01 .encfs5
-rw-r--r-- 1 yannick yannick 21 2006-05-15 17:39 kFt9KLjUCdpWHJfyabKjfD0k
[yannick@yop ~] cat .crypt/kFt9KLjUCdpWHJfyabKjfD0k
i¥Æ1ýúð
ã?DmDNò7ó[yannick@yop ~]
[yannick@yop ~]
[yannick@yop ~] fusermount -u crypt
[yannick@yop ~] ll crypt
total 16K
drwx------ 2 yannick yannick 4,0K 2006-05-15 17:00 .
drwxr-xr-x 154 yannick yannick 8,0K 2006-05-15 17:02 ..
[yannick@yop ~]
- Conclusion/Divers
Il existe beaucoup d'autres méthodes pour chiffrer les données sous Linux, mais celle ci a, je trouve, le plus d'avantages.
Cette méthode ne nécessite pas par exemple, de créer un fichier d'une taille définie dédiée à l'espace chiffré...par contre on peut voir le nombre de fichiers chiffrés , leur taille, leurs droits ... ceci étant un avantage lors de l'utilisation de backups incrémentaux par exemple...
Les performances semblent correctes (crontrairement à d'autres solutions)..
J'ai fait un test de lecture de divx par exemple... je n'ai noté aucun ralentissement...
Dans le cas ou le module fuse n'est pas trouvé au moment du chargement, il se peut qu'il faille modifier le noyau (cas de ma sarge en 2.4).
Dans ce cas faire un:
sudo apt-get install module-assistant
sudo module-assistant...
puis "prepare", puis "select", puis "fuse", puis "build", puis faire "enter" au moment du "The source package may not be installed...", puis "exit...
...et la le "modprobe fuse" devrait être ok...
Ne pas hésiter à utiliser des alias pour simplifier le montage et le démontage...
Pour pouvoir accéder au données en clair, est nécessaire en plus du mot de passe de bien avoir le fichier .encfs5 à la racine du répertoire chiffré...
Cette autre page est interressante à lire en plus du man...
Bref... une installation en 3/4 commandes, une utilisation en 2 commandes... çà serait vraiment dommage de ne pas en profiter surtout sur un PC portable où les données sont particulièrement exposées...
PS: Suite à un commentaire de Totologie, il est a noter que les liens (hard) ne peuvent pas etre copiés dans le répertoire chiffré en mode "paranoiaque". (Pour plus d'infos, voir les commentaires)
EDIT: Ajout de ce billet sur le Wiki d'Ubuntu-fr



Commentaires
Plop,
j'ai bien suivi le tuto et ca fonctionne quasiement nickel...
Pour tout ce qui concerne les fichiers et repertoire pas de soucis.
Parcontre si je fais un RSYNC d'un repertoire vers le repertoire chiffré, il merde au niveau des fichiers "Linké"
en effet j'utilise la commande :
sudo rsync -avrlH --delete --stats /[SRC]/ /[DEST_CRYPTE]/
resulat des courses :
rsync: link "/[DEST_CRYPTE]/fFic_Emis/f01051589.ZIP" => [DEST_CRYPTE]/3/ec38fbdd71c88d10907fee8c6a0e8bab failed: Operation not permitted (1)
Sachant que j'ai passer la mm commande dans un autre Repertoire de destination j'ai eu aucun pbl..
Si quelqu'un peut m'aider sur le sujet ce serait SUPER COOL
J'ai pas l'impression d'avoir d'erreurs... ?
[yannick@yop /tmp/rep] ll
total 20K
drwxr-xr-x 2 yannick yannick 4,0K 2006-06-08 00:13 .
drwxrwxrwt 12 root root 16K 2006-06-08 00:16 ..
-rw-r--r-- 1 yannick yannick 0 2006-06-08 00:13 toto
lrwxrwxrwx 1 yannick yannick 4 2006-06-08 00:13 tutu -> toto
[yannick@yop /tmp/rep]
[yannick@yop ~] ll /tmp/.crypt
total 24K
drwxr-xr-x 2 yannick yannick 4,0K 2006-06-08 00:18 .
drwxrwxrwt 13 root root 16K 2006-06-08 00:17 ..
-rw-r----- 1 yannick yannick 224 2006-06-08 00:17 .encfs5
[yannick@yop ~] rsync -avrlH --stats /tmp/rep/ /tmp/.crypt
building file list ... done
./
toto
tutu -> toto
Number of files: 3
Number of files transferred: 1
Total file size: 4 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 104
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 174
Total bytes received: 54
sent 174 bytes received 54 bytes 456.00 bytes/sec
total size is 4 speedup is 0.02
[yannick@yop ~] ll /tmp/.crypt
total 24K
drwxr-xr-x 2 yannick yannick 4,0K 2006-06-08 00:13 .
drwxrwxrwt 13 root root 16K 2006-06-08 00:17 ..
-rw-r----- 1 yannick yannick 224 2006-06-08 00:17 .encfs5
-rw-r--r-- 1 yannick yannick 0 2006-06-08 00:13 toto
lrwxrwxrwx 1 yannick yannick 4 2006-06-08 00:18 tutu -> toto
[yannick@yop ~]
En effet les liens réalisés à la mano j'ai pas de problème (avec la commande ln -s)... c'est que je ne dois pas bien saisir la facon dont les "hard-links" sont gérés par le soft que j'utilise (backuppc - www.jarunee.org/sari/semi...
En gros je veux mettre le répertoire de travail de Backuppc.
Peut être que les liens sont faits via la commande Link..
Si t’as une idée … je suis preneur
Encore Merci
A priori je n'ai pas de pb non plus avec les "hard link" (ln sans option)...
Par contre, effectivement, si backuppc utilise la commande link....là je ne sais pas...
Voila j'ai la réponse à mon problème que j'ai trouvé sur le site suivant : arg0.net/users/vgough/enc...
Dans le chapitre suivant on trouve :
External IV Chaining
[...]
There is a cost associated with this. When External IV Chaining is enabled, hard links will not be allowed within the filesystem, as there would be no way to properly decode two different filenames pointing to the same data.
Also, renaming a file requires modifying the file header. So renames will only be allowed when the user has write access to the file.
Because of these limits, this option is disabled by default for standard mode (and enabled by default for paranoia mode).
[...]
J'ai ré-essayé sans le mode paranoia... C'est tout bon :)
Voila un élément à ajouter à ce tres bon tuto.
Enjoye...
a oui je m'etais gouré dans mon test précédent (.crypt au lieu de crypt)
...et la j'ai bien le meme pb...
[yannick@yop /tmp] rsync -avrlH --stats /tmp/rep/ /tmp/crypt
building file list ... done
./
tutu
rsync: link "/tmp/crypt/toto" => tutu failed: Operation not permitted (1)
Je rajoute une petite note dans le billet...
Merci Topologie ;)