[Summer Of Code] Première beta publique de Crypt Manager

Crypt Manager, c’est mon projet Google Summer Of Code Ubuntu, et c’est surtout un gestionnaire de dossier chiffrés pour Linux. Il est utilisable aussi bien depuis une interface graphique qu’en ligne de commande et s’intègre au gestionnaire de fichier de Gnome.

Récupérer la première beta publique de Crypt Manager !

Installation :

  • tar xvjpf crypt-manager-0.2.tar.bz2
  • cd crypt-manager-0.2
  • sudo apt-get install encfs python-nautilus python2.4-dev
  • sudo ./install.sh
  • sudo modprobe fuse

Il faut également vous ajouter dans le groupe Fuse (Système -> Administration -> Utilisateurs et groupes) ou :

  • sudo groupadd login fuse

Utilisation:

  • gcrypt-manager

Ou directement en faisant un click droit sur un dossier dans le gestionnaire de fichiers.

Pour les afficionados de la ligne de commande:

  • crypt-manager –help

Pour ceux qui veulent être à la page (version SVN, contenant toutes les dernières avancées, mais très réguliérement cassée):

  • svn checkout http://crypt-manager.googlecode.com/svn/trunk/ crypt-manager
  • cd crypt-manager
  • sudo ./install.sh

(N’oubliez pas d’exécuter install.sh après chaque checkout :))

Pour voir apparaître les entrées du menu dans Nautilus, il vous faudra certainement clore votre session puis vous reconnecter.

Et c’est parti 🙂 Comme vous vous en doutez, cette première beta doit être bourrée de bugs. Ne la testez pas sur des données importantes et faites des sauvegardes…

J’attend vos impressions, suggestions et bien-sûr, vos rapports de bugs 😀 Pour se faire, vous pouvez commenter directement ici ou utiliser l’Issue Tracker du projet.

Page officielle du projet

Mon occupation de cette été ? Le Google Summer Of Code ! Mon projet c’est un gestionnaire de dossiers chiffrés pour Ubuntu.

L’objectif est d’obtenir un gestionnaire sûr, efficace, facile à utiliser et générique. Une fois ouvert, le dossier chiffré doit être utilisable comme n’importe quel autre dossier, que ce soit depuis les explorateurs de fichiers, un terminal, ou n’importe quel autre programme. Il doit aussi être le plus indépendant possible du bureau voir de la distribution utilisée.

Côté langage, mon choix c’est porté sur Python.. Seuls le C et lui sont recommandés pour la réalisation des outils d’administration de Ubuntu/GNOME, c’est un langage que j’apprécie et je n’ai que trop peu d’occasions de l’utiliser ! À l’époque, c’est déjà Python que j’avais choisi pour écrire la deuxième version de Easy Ubuntu.

L’idée première fût de chiffrer l’ensemble du dossier $HOME. Après discussion avec mon mentor, nous avons conclus qu’il serait plus judicieux de proposer un système de dossiers chiffrés à la manière des dossiers partagés Samba. Moins lourd qu’un chiffrage total (donc plus rapide), plus adapté, utilisation et conversion aisé pour les utilisateurs déjà existants.

J’ai d’abord écrit un module Python assurant toutes les opérations de “bas niveau” (pas si bas que ça tout compte fait). Dans sa première mouture il utilisait CryptSetup et LUKS comme backend.

En simplifiant, pour chiffrer un dossier on créait un périphérique de type block (comme si c’était une partition mais contenue dans un fichier) que l’on chiffrait puis que l’on montait à l’endroit ou se trouve le dossier. En réalité, ce dossier est vide, il n’est que le point de montage, les données se trouvant sur l’image chiffrée.

Cette solution, très robuste, posait tout de même quelques problèmes :

  • Nécessite les privilèges d’administrateur (root)
  • Impose une limite en taille pour les dossiers chiffrés

Une deuxième version du module Python à vu le jour, cette fois-ci avec EncFS comme backend. Avec EncFS, au lieu de chiffrer directement les blocs, la partition, on chiffre les fichiers grâce un pseudo filesystem. Plus besoin d’être root car plus besoin d’attribuer de “loopback devices” et plus de limite de taille car ce pseudo système de fichier repose directement sur le système de fichier normal, pas de “block device” intermédiaire.

L’étape suivante fut de réaliser un gestionnaire de dossiers chiffrés en ligne de commande. C’est crypt-manager. Il permet de très aisément chiffrer, déchiffrer, ouvrir et fermer des dossiers.

Un exemple d’utilisation: $ crypt-manager –open mon-dossier

Écriture de la documentation qui commençait à manquer cruellement (elle est disponible sur http://code.google.com/p/crypt-manager/w/list) puis vint le développement de l’interface graphique.

Ubuntu et Python oblige, le choix c’est naturellement porté sur PyGTK (avec Glade) mais sans dépendance directe à GNOME. L’outil devrait être utilisable aussi bien sous ce dernier que sous XFCE. Elle dispose aussi d’une interface en ligne de commande afin d’être facilement scriptable.

Maintenant, c’est, c’est l’intégration de Crypt Manager à GNOME qui vient de débuter. Une ébauche d’extension Nautilus est dos et déjà disponible. Elle permet de repérer (grâce à une emblème) les dossiers chiffrés, de les ouvrir et fermer depuis le menu contextuel (clique droit) et de chiffrer de nouveaux dossiers toujours depuis ce menu.

Crypt Manager devrait utiliser GNOME Keyring (qui est toute petite libraire, aussi utilisée par XFCE) pour garder en mémoire les mots-de-passe des dossiers chiffrés.

Leave a Reply