Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
securite:encfs [Le 19/12/2006, 13:49] Blackpegaz redirection vers nouvelle version de page |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Chiffrer des répertoires de données avec EncFS ====== | ||
- | <code> | ||
- | Versions : Breezy et Dapper. | ||
- | Indépendant de l'environnement graphique. | ||
- | </code> | ||
- | |||
- | Rédigé par [[utilisateurs:Uggy]] sur la base de [[http://blog.uggy.org/index.php?2006/05/17/90-chiffrer-ses-donnees-avec-encfs|ce billet original]], mis à jour par [[utilisateurs:jd]]. Équivalent anglophone disponible sur ce [[http://ubuntuforums.org/showthread.php?t=148600|topic d'ubuntuforums.org]]. | ||
- | |||
- | **Note** : dans les commandes proposées, vous devez remplacer ''VotreNom'' par votre nom d'utilisateur Ubuntu. | ||
- | |||
- | |||
- | Petit rappels sur les termes "chiffrement" etc... http://fr.wikipedia.org/wiki/Chiffrement | ||
- | |||
- | ===== Objectif ===== | ||
- | |||
- | 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. | ||
- | |||
- | [[http://arg0.net/wiki/encfs|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 nécessaires, module ''fuse'' ==== | ||
- | |||
- | Installez, par ''apt-get install'' ou //via// [[:Synaptic]], les paquets suivants : | ||
- | > encfs fuse-utils | ||
- | |||
- | Les dépendances nécessaires seront installées automatiquement. | ||
- | |||
- | Tout d'abord, chargez le module ''fuse'' par la commande suivante (à [[:console|écrire dans un terminal]]) : | ||
- | |||
- | > sudo modprobe fuse | ||
- | |||
- | Pour éviter d'avoir à recharger ce module à chaque session, vous pouvez en activer le chargement au démarrage du système en ajoutant le mot « fuse » à la fin du fichier ''/etc/modules'' : | ||
- | |||
- | > gksudo gedit /etc/modules | ||
- | |||
- | Ensuite, ajoutez-vous au groupe ''fuse'' par la commande : | ||
- | |||
- | > sudo adduser <VotreNom> fuse | ||
- | |||
- | puis réouvrez une session en tapant : | ||
- | |||
- | > su - <VotreNom> | ||
- | |||
- | Vous pouvez vérifiez que vous êtes bien dans le groupe ''fuse'' en tapant : | ||
- | |||
- | > groups | ||
- | |||
- | |||
- | ==== Création des répertoires d'EncFS ==== | ||
- | |||
- | Dans notre exemple, le répertoire de stockage des données cryptées sera ''~/.crypt'' et le répertoire « de travail » (pour manipuler les données en clair après authentification) sera ''~/crypt''. Tapez donc : | ||
- | |||
- | > encfs /home/VotreNom/.crypt/ /home/VotreNom/crypt/ | ||
- | |||
- | 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/.crypt/ /home/user/crypt\\ | ||
- | > The directory "/home/user/.crypt/" does not exist. Should it be created? (y,n) y\\ | ||
- | > The directory "/home/user/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: \\ | ||
- | > [user@yop ~] | ||
- | |||
- | À 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é. | ||
- | |||
- | **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. | ||
- | |||
- | |||
- | ===== Utilisation ===== | ||
- | |||
- | 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/.crypt/ /home/VotreNom/crypt/ | ||
- | |||
- | 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, ''~/crypt'') sera //automatiquement// stockée sous forme chiffrée dans le répertoire de stockage (ici, ''~/.crypt'').** | ||
- | |||
- | Pour ne //plus pouvoir accéder// au données en clair, il suffit de démonter le répertoire « de travail », soit dans notre exemple : | ||
- | |||
- | > fusermount -u /home/votreNom/crypt | ||
- | |||
- | |||
- | ===== Commandes rapides pour contrôler l'accès ===== | ||
- | |||
- | Vous pouvez vous doter de deux commandes pour donner et fermer rapideement l'accès au répertoire de travail : | ||
- | |||
- | > gksudo gedit /usr/bin/decrypt | ||
- | |||
- | Copiez-y le texte suivant : | ||
- | |||
- | #!/bin/sh | ||
- | encfs /home/VotreNom/.crypt/ /home/VotreNom/crypt/ | ||
- | |||
- | > gksudo gedit /usr/bin/encrypt | ||
- | |||
- | Copiez-y le texte suivant : | ||
- | |||
- | #!/bin/sh | ||
- | fusermount -u /home/votreNom/crypt | ||
- | |||
- | 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. | ||
- | |||
- | ===== Problèmes éventuels ===== | ||
- | |||
- | ==== Accès impossible ? ==== | ||
- | |||
- | **Important** : pour pouvoir accéder au données en clair, il est nécessaire //en plus du mot de passe// de bien avoir le fichier ''.encfs5'' à la racine du répertoire de stockage (fichier caché, ''Ctrl+H'' dans Nautilus pour le voir ou ''ls -al ~/.crypt''). Si vous l'avez supprimé par mégarde, vous avez perdu l'accès aux données chiffrées... Attention, donc ! | ||
- | |||
- | ==== Module ''fuse'' ==== | ||
- | |||
- | Dans le cas ou le module fuse n'est pas trouvé au moment du chargement, il se peut qu'il faille modifier le noyau (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. | ||
- | |||
- | ==== À propos du mode paranoïaque ==== | ||
- | |||
- | Si vous chiffrez des fichiers en utilisant le 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. | ||
- | |||
- | |||
- | ===== 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 en deux commandes ; | ||
- | * cette méthode ne nécessite pas la création d'un fichier/répertoire d'une taille //fixe// dédié à l'espace chiffré ; | ||
- | * chiffrement sélectif (vous choisissez quel(s) répertoire(s) doit avoir son contenu chiffré); | ||
- | * 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). | ||
- | |||
- | 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 informations comme le nombre de fichier 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). | ||
- | |||
- | |||
- | ===== Ressources ===== | ||
- | |||
- | EncFS peut faire un peu plus que ce que cette aide n'a présenté. Pour plus d'informations, voyez : | ||
- | * [[http://arg0.net/wiki/encfs|Site officiel d'EncFS]] | ||
- | * [[http://arg0.net/wiki/encfs/intro2|Introduction détaillée à EncFS]] | ||
- | * [[http://arg0.net/users/vgough/encfs-man.html|Page man d'EncFS]] (ou ''man encfs'' dans votre terminal) | ||
- | * [[http://en.wikipedia.org/wiki/EncFS|Article « EncFS » sur en.wikipedia.org]] |