Skip to content

Kévin Dunglas

Founder of Les-Tilleuls.coop (worker-owned cooperative). Creator of API Platform, FrankenPHP, Mercure.rocks, Vulcain.rocks and of some Symfony components.

Menu
  • Talks
  • Resume
  • Sponsor me
  • Contact
Menu

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

Posted on July 15, 2007 by Kévin Dunglas

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.

Related posts:

  1. Que devient Easy Ubuntu ?
  2. Mettre à jour une Breezy vers une Dapper avec Xgl
  3. Bien postuler au Google Summer of Code 2008
  4. Mise-à-jour de Dapper vers Edgy en console

Leave a ReplyCancel reply

Social

  • Bluesky
  • GitHub
  • LinkedIn
  • Mastodon
  • X
  • YouTube

Links

  • API Platform
  • FrankenPHP
  • Les-Tilleuls.coop
  • Mercure.rocks
  • Vulcain.rocks

Subscribe to this blog

Top Posts & Pages

  • JSON Columns and Doctrine DBAL 3 Upgrade
  • Securely Access Private Git Repositories and Composer Packages in Docker Builds
  • Preventing CORS Preflight Requests Using Content Negotiation
  • FrankenPHP: The Modern Php App Server, written in Go
  • Symfony's New Native Docker Support (Symfony World)
  • Develop Faster With FrankenPHP
  • HTTP compression in PHP (new Symfony AssetMapper feature)
  • How to debug Xdebug... or any other weird bug in PHP
  • PHP and Symfony Apps As Standalone Binaries
  • Generate a Symfony password hash from the command line

Tags

Apache API API Platform Buzz Caddy Docker Doctrine FrankenPHP Go Google GraphQL HTTP/2 Hydra hypermedia Hébergement Javascript JSON-LD Kubernetes La Coopérative des Tilleuls Les-Tilleuls.coop Lille Linux Mac Mercure Mercure.rocks Messagerie Instantanée MySQL performance PHP Punk Rock Python React REST Rock'n'Roll Schema.org Security SEO SEO Symfony Symfony Live Sécurité Ubuntu Web 2.0 webperf XML

Archives

Categories

  • DevOps (84)
    • Ubuntu (68)
  • Go (17)
  • JavaScript (46)
  • Mercure (7)
  • Opinions (91)
  • PHP (170)
    • API Platform (77)
    • FrankenPHP (9)
    • Laravel (1)
    • Symfony (97)
    • Wordpress (6)
  • Python (14)
  • Security (15)
  • SEO (25)
  • Talks (46)
© 2025 Kévin Dunglas | Powered by Minimalist Blog WordPress Theme