GNU/Linux >> Tutoriels Linux >  >> Linux

Comment chiffrer des fichiers avec gocryptfs sous Linux

Gocryptfs est un programme de chiffrement au niveau des fichiers monté sur le système de fichiers dans l'espace utilisateur (FUSE). Monté par FUSE signifie que les fichiers chiffrés sont stockés dans une seule arborescence de répertoires qui est montée, comme une clé USB, à l'aide de l'interface FUSE. Cela permet à n'importe quel utilisateur d'effectuer le montage, vous n'avez pas besoin d'être root. Étant donné que gocryptfs chiffre au niveau du fichier, les opérations de synchronisation qui copient vos fichiers peuvent fonctionner efficacement sur chaque fichier. Cela contraste avec le chiffrement au niveau du disque, où le disque entier est chiffré comme un seul gros blob binaire.

Lorsque vous utilisez gocryptfs dans son mode normal, vos fichiers sont stockés sur votre disque dans un format crypté. Cependant, lorsque vous montez les fichiers cryptés, vous obtenez un accès non crypté à vos fichiers, comme tout autre fichier sur votre ordinateur. Cela signifie que tous vos outils et programmes habituels peuvent utiliser vos fichiers non cryptés. Les modifications, les nouveaux fichiers et les suppressions sont reflétés en temps réel dans la version cryptée des fichiers stockés sur votre disque.

Installer gocryptfs

L'installation de gocryptfs est facile sur Fedora car il est packagé pour Fedora 30 et Rawhide. Par conséquent, sudo dnf install gocryptfs effectue tous les travaux d'installation requis. Si vous n'utilisez pas Fedora, vous pouvez trouver des détails sur l'installation à partir des sources, sur Debian ou via Homebrew dans le Quickstart.

Initialiser votre système de fichiers chiffré

Le Terminal Linux

  • Les 7 meilleurs émulateurs de terminaux pour Linux
  • 10 outils de ligne de commande pour l'analyse de données sous Linux
  • Télécharger maintenant :Aide-mémoire SSH
  • Aide-mémoire des commandes Linux avancées
  • Tutoriels de ligne de commande Linux

Pour commencer, vous devez décider où vous souhaitez stocker vos fichiers cryptés. Cet exemple conservera les fichiers dans ~/.sekrit_files afin qu'ils n'apparaissent pas lors d'un ls normal .

Commencez par initialiser le système de fichiers. Cela vous demandera de choisir un mot de passe. Vous êtes fortement encouragé à utiliser un mot de passe unique que vous n'avez jamais utilisé ailleurs, car c'est votre clé pour déverrouiller vos fichiers. Les auteurs du projet recommandent un mot de passe avec entre 64 et 128 bits d'entropie. En supposant que vous utilisiez des lettres majuscules et minuscules et des chiffres, cela signifie que votre mot de passe doit comporter entre 11 et 22 caractères. Si vous utilisez un gestionnaire de mots de passe, cela devrait être facile à réaliser avec un mot de passe généré.

Lorsque vous initialisez le système de fichiers, vous verrez une clé unique. Conservez cette clé dans un endroit sûr, car elle vous permettra d'accéder à vos fichiers si vous avez besoin de récupérer vos fichiers mais que vous avez oublié votre mot de passe. La clé fonctionne sans votre mot de passe, alors gardez-la privée !

La routine d'initialisation ressemble à ceci :

$ mkdir ~/.sekrit_files
$ gocryptfs -init ~/.sekrit_files
Choose a password for protecting your files.
Password:
Repeat:

Your master key is:

    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-
    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX

If the gocryptfs.conf file becomes corrupted or you ever forget your password,
there is only one hope for recovery: The master key. Print it to a piece of
paper and store it in a drawer. This message is only printed once.
The gocryptfs filesystem has been created successfully.
You can now mount it using: gocryptfs .sekrit_files MOUNTPOINT

Si vous regardez dans les ~/.sekrit_files répertoire, vous verrez deux fichiers :un fichier de configuration et un vecteur d'initialisation unique au niveau du répertoire. Vous n'aurez pas besoin de modifier ces deux fichiers à la main. Assurez-vous de ne pas supprimer ces fichiers.

Utiliser votre système de fichiers chiffré

Pour utiliser votre système de fichiers chiffré, vous devez le monter. Cela nécessite un répertoire vide où vous pouvez monter le système de fichiers. Par exemple, utilisez le ~/my_files annuaire. Comme vous pouvez le constater lors de l'initialisation, le montage est simple :

$ gocryptfs ~/.sekrit_files ~/my_files
Password:
Decrypting master key
Filesystem mounted and ready.

Si vous consultez les ~/my_files répertoire, vous verrez qu'il est vide. Les fichiers vectoriels de configuration et d'initialisation ne sont pas des données, ils ne s'affichent donc pas. Mettons quelques données dans le système de fichiers et voyons ce qui se passe :

$ cp /usr/share/dict/words ~/my_files/
$ ls -la ~/my_files/ ~/.sekrit_files/
~/my_files/:
.rw-r--r-- 5.0M bexelbie 19 Jul 17:48 words

~/.sekrit_files/:
.r--------@  402 bexelbie 19 Jul 17:39 gocryptfs.conf
.r--------@   16 bexelbie 19 Jul 17:39 gocryptfs.diriv
.rw-r--r--@ 5.0M bexelbie 19 Jul 17:48 xAQrtlyYSFeCN5w7O3-9zg

Notez qu'il y a un nouveau fichier dans les ~/.sekrit_files annuaire. Il s'agit de la copie cryptée du dictionnaire dans lequel vous avez copié (le nom du fichier peut varier). N'hésitez pas à utiliser cat et d'autres outils pour examiner ces fichiers et expérimenter l'ajout, la suppression et la modification de fichiers. Assurez-vous de tester avec quelques applications, telles que LibreOffice.

N'oubliez pas qu'il s'agit d'un montage de système de fichiers, donc le contenu de ~/my_files ne sont pas enregistrés sur le disque. Vous pouvez le vérifier en exécutant mount | grep mes_fichiers et observer la sortie. Seuls les fichiers cryptés sont écrits sur votre disque. L'interface FUSE effectue le cryptage et le décryptage en temps réel des fichiers et les présente à vos applications et à votre shell en tant que système de fichiers.

Démonter le système de fichiers

Lorsque vous avez terminé avec vos fichiers, vous pouvez les démonter. Cela fait que le système de fichiers non chiffré n'est plus disponible. Les fichiers chiffrés dans ~/.sekrit_files ne sont pas affectés. Démontez le système de fichiers à l'aide du programme de montage FUSE avec fusermount -u ~/my_files .

Sauvegarder vos données

L'un des avantages intéressants de gocryptfs utilisant le chiffrement au niveau des fichiers est qu'il facilite la sauvegarde de vos données chiffrées. Les fichiers peuvent être stockés en toute sécurité sur un système de synchronisation, tel que OwnCloud ou Dropbox. La clause de non-responsabilité standard concernant la non-modification du même fichier en même temps s'applique. Cependant, les fichiers peuvent être sauvegardés même s'ils sont montés. Vous pouvez également enregistrer vos données de toute autre manière que vous sauvegardez généralement des fichiers. Vous n'avez besoin de rien de spécial.

Lorsque vous effectuez des sauvegardes, assurez-vous d'inclure le gocryptfs.diriv dossier. Ce fichier n'est pas un secret et peut être enregistré avec la sauvegarde. Cependant, votre gocryptfs.conf est un secret. Lorsque vous contrôlez l'intégralité de la chaîne de sauvegarde, comme avec une bande, vous pouvez la sauvegarder avec le reste des fichiers. Cependant, lorsque les fichiers sont sauvegardés dans le cloud ou publiquement, vous pouvez omettre ce fichier. En théorie, si quelqu'un obtient ce fichier, la seule chose qui protège vos fichiers est la force de votre mot de passe. Si vous avez choisi un mot de passe fort, cela peut suffire; cependant, vous devez examiner attentivement votre situation. Plus de détails sont dans ce problème en amont de gocryptfs.

Bonus :mode inversé

Une fonctionnalité intéressante de gocryptfs est la fonction de mode inversé. En mode inverse, pointez gocryptfs sur vos données non chiffrées, et cela créera un point de montage avec une vue chiffrée de ces données. Ceci est utile pour des choses telles que la création de sauvegardes cryptées. C'est facile à faire :

$ gocryptfs -reverse -init my_files
Choose a password for protecting your files.
Password:
Repeat:

Your master key is:

    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX-
    XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX

If the gocryptfs.conf file becomes corrupted or you ever forget your password,
there is only one hope for recovery: The master key. Print it to a piece of
paper and store it in a drawer. This message is only printed once.
The gocryptfs-reverse filesystem has been created successfully.
You can now mount it using: gocryptfs -reverse my_files MOUNTPOINT

$ gocryptfs -reverse my_files sekrit_files
Password:
Decrypting master key
Filesystem mounted and ready.

Maintenant sekrit_files contient une vue chiffrée de vos données non chiffrées de my_files . Cela peut être sauvegardé, partagé ou géré selon les besoins. Le répertoire est en lecture seule, car vous ne pouvez rien faire d'utile avec ces fichiers, sauf les sauvegarder.

Un nouveau fichier, .gocryptfs.reverse.conf , a été ajouté à my_files pour fournir une vue cryptée stable. Ce fichier de configuration garantira que chaque montage inversé utilisera la même clé de chiffrement. De cette façon, vous pourriez, par exemple, sauvegarder uniquement les fichiers modifiés.

Gocryptfs est un outil de chiffrement de fichiers flexible qui vous permet de stocker vos données de manière chiffrée sans modifier de manière significative votre flux de travail ou vos processus. La conception a fait l'objet d'un audit de sécurité et les développeurs ont de l'expérience avec d'autres systèmes, tels que encfs . Je vous encourage à ajouter gocryptfs à votre système dès aujourd'hui et à commencer à protéger vos données.


Linux
  1. Comment renommer des fichiers sous Linux

  2. Comment chiffrer une partition avec DM-Crypt LUKS sous Linux

  3. Comment chiffrer un seul système de fichiers Linux

  4. Comment rechercher des fichiers avec la commande fd sous Linux

  5. Comment copier un dossier contenant des fichiers dans un autre dossier sous Unix/Linux ?

Comment renommer un ou plusieurs fichiers sous Linux

Comment synchroniser des fichiers avec Unison sous Linux

Comment supprimer des fichiers avec une extension spécifique sous Linux

Comment rechercher des fichiers avec la commande fd sous Linux

Comment télécharger des fichiers avec la commande Curl sous Linux

Comment télécharger des fichiers avec la commande Wget sous Linux