« Security/Crypt/Directory » : différence entre les versions

De TartareFR
Aller à la navigation Aller à la recherche
Ligne 190 : Ligne 190 :
== Avantages/défauts ==
== Avantages/défauts ==


Il existe beaucoup d'autres méthodes pour chiffrer des données sous Linux, mais celle-ci a beaucoup d'avantages :
'''Avantages :'''
 
* une installation en quelques commandes, une utilisation basique avec deux commandes,
* 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,
* l'installation est durable. Aucune compilation ou réinstallation n'est nécessaire en cas de mise à jour du kernel,
Ligne 200 : Ligne 199 :
* fonctionnement possible sur différents types de fichier (dont NTFS)
* fonctionnement possible sur différents types de fichier (dont NTFS)


Parmi les défauts, ou désavantages, on peut citer :
'''Défauts :'''
 
* 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 taille et droits d'accès…),
* 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 taille 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).
* 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).

Version du 19 décembre 2012 à 21:19

Chiffrez aisément vos répertoires avec EncFS

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(s) 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 :

  1. un premier répertoire dans lequel seront stockées les données chiffrées ("source directory") ;
  2. 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.png
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.

Changements

- le fichier contenant les paramètres de chiffrement a changé de nom à partir d'Intrepid, il s'appelle désormais .encfs6.xml

Conséquence importante : afin d'assurer la compatibilité ascendante, si vous partagez un dossier chiffré entre un système Hardy ou antérieur, et un système Intrepid ou supérieur, il convient d'avoir créé le chiffrement avec la version la plus ancienne. En effet, il y a compatibilité ascendante, mais pas descendante !.. Ainsi, une version Intrepid ou supérieure pourra utiliser un chiffrement créé avec une version antérieure et donc marqué avec .encfs5, par contre l'inverse n'est pas vrai. Si le chiffrement est créé par Intrepid ou postérieur, Hardy verra votre chiffrement comme non initialisé puisqu'il ne connaît pas .encfs6.xml et ne trouve pas de .encfs5

- fuse-utils semble installé dans le package par défaut (vrai à partir de Hardy)

Installation

Paquets module fuse

Installez le paquet suivant : <package>fuse-encfs</package> Les dépendances nécessaires seront installées automatiquement.

 #On ajoute son nom d'utilisateur au groupe fuse
 sudo adduser $USER 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 - $USER
 #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 ~/.safe et le répertoire « de travail » (pour manipuler les données en clair après authentification) sera ~/unsafe. Tapez donc :

encfs /home/$USER/.safe/ /home/$USER/unsafe/

Warning.png
La commande encfs attend des chemins complets : écrivez donc /home/$USER/ 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 :

$ encfs /home/$USER/.safe/ /home/$USER/unsafe
Le répertoire "/home/didier/.safe/" n'existe pas. Faut-il le créer ? (y/n) y
Le répertoire "/home/didier/unsafe" n'existe pas. Faut-il le créer ? (y/n) y
Création du nouveau volume encrypté.
Veuillez choisir l'une des options suivantes :
 entrez "x" pour le mode de configuration expert,
 entrez "p" pour le mode paranoïaque préconfiguré,
 toute autre entrée ou une ligne vide sélectionnera le mode normal.
?> p

Configuration paranoïaque sélectionnée.

Configuration terminée. Le système de fichier à créer a les propriétés suivantes :
Cryptage du système de fichiers : "ssl/aes" version 3:0:2
Encodage de fichier "nameio/block", version 3:0:1
Taille de clé : 256 bits
Taille de bloc : 1024 octets, y compris 8 octets d'en-tête MAC.
Chaque fichier contient un en-tête de 8 octets avec des données IV uniques.
Noms de fichier encodés à l'aide du mode de chaînage IV.
Les données IV du fichier sont chaînées à celles du nom de fichier
File holes passed through to ciphertext.

-------------------------- AVERTISSEMENT --------------------------
Le vecteur d'initialisation externe a été activé.
Cette option n'autorise pas l'usage de liens durs dans le système de fichiers.
Sans liens durs, quelques programmes peuvent ne pas fonctionner.
Les programmes «mutt» et «procmail» sont connus pour échouer.
Pour plus d'information, reportez-vous à la liste de discussion d'encfs.
Pour choisir une autre configuration, pressez CTRL-C et recommencez.

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 : 
Vérifier le mot de 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/$USER/unsafe fuse rw,nosuid,nodev,user_id=1000,group_id=1000,default_permissions 0 0
Note.png
Notes
  • 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.
  • Le répertoire des données en clair (ici "safe") 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 :
  1. le nouveau répertoire ait bien été créé et soit vide
  2. 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/$USER/.safe/ /home/$USER/unsafe/
    Contrairement à la première fois, EncFS détecte qu'une initialisation a déjä é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, ~/unsafe) sera automatiquement stockée sous forme chiffrée dans le répertoire de stockage (ici, ~/.safe).
  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/$USER/unsafe

Exemples sur un terminal

Vous trouverez sur la page encfs_exemples quelques exemples d'utilisation à partir d'un terminal.

Note.png
Système de fichier
  • Puisque vous utilisez fuse, il vous est possible de travailler sur un couple de répertoires placé sur une partition NTFS.
  • La plus récente version du pilote ntfs-3G en version bêta, 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é.

Changement du mot de passe

Le mot de passe peut être changé, grâce à la commande (nom du répertoire à adapter si différent) :

encfsctl passwd ~/.safe

À l'invite, entrer l'ancien mot de passe et 2 fois le nouveau.

Automatiser le lancement/arrêt

avec pam_mount

Il est possible de configurer Ubuntu pour qu'il monte le système de fichier encrypté au démarrage de la session et ceci de manière automatique et sans redemander le mot de passe.

Note.png
Il est impératif que le mot de passe de la session soit identique à celui d'encfs.
En effet, pam_mount va transmettre le mot de passe tapé lors de l'ouverture de la session à encfs pour le déchiffrement du système de fichiers.

L'exemple suivant montre comment utiliser cette technique pour sécuriser des données qui seront ensuite synchronisées sur Ubuntu One. Vous devez avoir au préalable avoir créé un répertoire ~/Ubuntu One/.Encrypted comme décrit dans le début de cet article.

Installer pam_mount

yum install  pam-mount

Créer le répertoire de stockage sécurisé et le point de montage

cd
mkdir ~/Encrypted/
ln -s ~/Ubuntu\ One/.Encrypted/ .Encrypted

Editer le fichier /etc/security/pam_mount.conf.xml Rechercher la ligne <!– Volume definitions –> Ajouter la ligne suivante juste après en remplaçant «utilisateur» par votre login

<volume user="<<utilisateur>>" fstype="fuse" path="encfs#/home/<<utilisteur>>/.Encrypted" mountpoint="/home/<<utilisateur>>/Encrypted" />

A la prochaine ouverture de session, le système de fichier encrypté sera automatiquement monté dans le répertoire ~/Encrypted et les données de ce répertoire seront automatiquement encryptées et sauvegardées grace Ubuntu One.

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.

avec cryptkeeper

C'est une applet qui s'installe sous forme de cadenas dans la zone de notification. Le mot "stash" se rapporte au couple de répertoires "clair/chiffré". La création d'un dossier chiffré /home/user/Coffre correspond à la création du répertoire chiffré (et caché) /home/user/.Coffre monté à l'emplacement /home/user/Coffre. Le reste est assez explicite. Pour éviter de trop chercher sachez aussi qu'il faut faire un clic droit sur la liste des dossiers chiffrés pour avoir :

  • des informations
  • modifier le mot de passe
  • effacer le dossier chiffré

Pour installer Cryptkeeper:

yum install cryptkeeper

Enfin, vous souhaiterez sans doute activer Cryptkeeper automatiquement à chaque démarrage plutôt que de le lancer manuellement à chaque fois. Pour ce faire, allez dans Système > Préférences > Applications au démarrage, et ajoutez une application ayant pour nom Cryptkeeper et lançant la commande "cryptkeeper".

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 se trouve dans le répertoire chiffré à la racine du répertoire de stockage. Ce fichier caché 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")

Avantages/défauts

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, leur taille 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)

Défauts :

  • 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 taille 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 :