Comment crypter et décrypter au mieux un répertoire via la ligne de commande ou le script?

8

J'ai un répertoire de fichiers texte sous contrôle de version bazar et j'en garde une copie (une branche, en fait) sur chacune de mes machines. Je veux crypter et décrypter le répertoire via la ligne de commande.

Idéalement, je pourrais également faire exécuter un script à la déconnexion pour vérifier si le répertoire est crypté et le crypter sinon, le tout sans intervention de l'utilisateur. Cependant, je ne souhaite pas que le répertoire soit décrypté lors de la connexion. (Je veux que le script protège contre l'oubli de chiffrer manuellement. Ceci est particulièrement important pour le netbook.)

Je suis en cours d'exécution ubuntu 10.04.1et deux versions de crunchbang linux, une dérivée de ubuntu 9.04l'une ou l'autre d'un instantané fin juin des dépôts Debian Squeeze.

Quelle est la meilleure façon de procéder?

(J'ai essayé de marquer avec encryptionet directories, mais je n'ai pas le représentant pour créer une balise.)

vanden
la source

Réponses:

5

Avez-vous un accès administratif aux machines? On pourrait utiliser un périphérique de bouclage crypté. Exemple:

créer un fichier conteneur pour les fs chiffrés:

dd if=/dev/urandom of=container bs=1024k count=100 

lier le fichier conteneur au périphérique de bouclage 0:

losetup container /dev/loop0

créer un périphérique crypté (-y demande deux fois la phrase secrète; ligne divisée par \):

cryptsetup -c serpent-xts-essiv:sha256 -b 512 \
   -y create container /dev/loop0 

créer un système de fichiers ext2 sur un appareil crypté (peut vraiment utiliser n'importe quoi):

mkfs.ext2 /dev/mapper/container

monte le système de fichiers crypté dans le répertoire crypt:

mount /dev/mapper/container crypt

Pour référence:

man cryptsetup && man losetup

Lisez également les meilleures pratiques de cryptographie, pour plus d'informations sur le choix du chiffrement et des longueurs de clé à utiliser, etc.

dsp
la source
4

Il semble que ce que vous recherchez n'est pas un moyen de chiffrer et de déchiffrer des répertoires, mais un moyen de travailler avec un stockage chiffré de manière transparente. Notez que le schéma que vous proposez, avec un décryptage et un cryptage de masse réels, n'est pas très sécurisé: il laisse les choses non cryptées si vous ne vous déconnectez pas normalement (panne de courant, plantage du système, ordinateur portable volé ...); et il laisse des traces de vos données confidentielles qu'un attaquant déterminé pourrait trouver (les données des fichiers effacés sont toujours sur le disque, juste difficiles à trouver).

Les systèmes Linux actuels offrent plusieurs façons d'obtenir un chiffrement transparent. Vous pouvez crypter un volume entier avec dm-crypt ou l'une de ses alternatives. Il existe plusieurs outils disponibles pour crypter une arborescence de répertoires spécifique, y compris ecryptfs (qui fonctionne au niveau du noyau) et encfs (qui fonctionne uniquement dans l'espace utilisateur via fuse). (Les trois que je mentionne sont disponibles dans Debian Lenny et devraient être proposés par toutes vos distributions.)

Vous pouvez configurer les répertoires chiffrés à monter lorsque vous vous connectez via PAM ( libpam-mountpackage; option recommandée pour ecryptfs) ou via vos scripts de profil (option recommandée pour encfs). Notez qu'il n'y a aucun problème à «oublier de chiffrer manuellement» car rien n'est jamais écrit non chiffré sur le disque.

Pour une meilleure protection, vous devez chiffrer non seulement vos fichiers confidentiels, mais également d'autres endroits où des données confidentielles peuvent être stockées par des programmes. Au moins, vous devez crypter votre partition de swap. D'autres endroits à surveiller incluent /tmp(mieux résolu en le faisant tmpfs), /var/spool/cupssi vous imprimez des documents confidentiels et des fichiers par application dans votre répertoire personnel tels que les caches / historiques Web (par exemple ~/.mozilla).

Gilles 'SO- arrête d'être méchant'
la source
3

Que diriez-vous d'utiliser gpgdir ? Cela devrait être scriptable pour la connexion et la déconnexion. Vous pouvez également sélectionner des sous-répertoires qui sont censés être chiffrés (vous souhaiterez peut-être des fichiers tels .bash_rcqu'ils restent décryptés, par exemple).

Une autre alternative peut être Truecrypt . Vous pouvez créer un conteneur pour vos données et les crypter / décrypter via des scripts shell.

Son le Bienheureux
la source
2

Vous pouvez également utiliser ecryptfs, qui est standard sur Ubuntu et ses distributions dérivées. C'est ce qui est utilisé lorsque le processus d'installation vous demande si vous souhaitez crypter votre répertoire personnel (http://www.linuxjournal.com/article/9400). L'avantage d'ecryptfs est que vous n'avez pas besoin d'une partition séparée ou d'un fichier monté en boucle pour l'utiliser.

Luc Stepniewski
la source