J'utilise actuellement EncFS pour chiffrer mon répertoire "confidentiel" en ".encconfidential" et sync ce répertoire chiffré à l'aide d'un service en ligne (par exemple, Dropbox, UbuntuOne, etc.). Cependant, mon disque entier est déjà chiffré par LUKS, de sorte que le double chiffrement nuit aux performances.
Je me demande s'il existe une option EncFS "inversée"? Un répertoire non crypté est monté et dans ce répertoire, vous ne voyez que les fichiers cryptés. Je pouvais donc travailler avec les documents non cryptés pendant que l'outil de synchronisation voyait et lisait/lisait uniquement les fichiers cryptés.
Clarification: Mon cas d'utilisation principal est sync pas de sauvegarde. Je veux pouvoir synchroniser en toute sécurité les machines sans la pénalité de double chiffrement lorsqu’on travaille en local (je dois attendre quand je clique sur Sauvegarder, par rapport au temps de transmission, une opération chiffrée est une incrémentation minime dans le temps - et c’est un temps de fond temps utilisateur)
Il existe en fait une option "inversée". Dans la page de manuel Encfs:
--reverse
Normally EncFS provides a plaintext view of data on demand. Normally it stores enciphered data and displays plaintext data. With --reverse it
takes as source plaintext data and produces enciphered data on-demand. This can be useful for creating remote encrypted backups, where you do
not wish to keep the local files unencrypted.
For example, the following would create an encrypted view in /tmp/crypt-view.
encfs --reverse /home/me /tmp/crypt-view
You could then copy the /tmp/crypt-view directory in order to have a copy of the encrypted data. You must also keep a copy of the file
/home/me/.encfs5 which contains the filesystem information. Together, the two can be used to reproduce the unencrypted data:
ENCFS5_CONFIG=/home/me/.encfs5 encfs /tmp/crypt-view /tmp/plain-view
Now /tmp/plain-view contains the same data as /home/me
Note that --reverse mode only works with limited configuration options, so many settings may be disabled when used.
Je ne l'ai pas essayé pour la synchronisation, mais je pense que cela fonctionnerait tant que vous utiliseriez le même dossier .encfs5
config à l'autre bout.
Maintenant, comment faire exactement ce que vous spécifiez:
Ce que vous demandez, c'est une vue de système de fichiers en lecture seule qui chiffre automatiquement tous les fichiers lus:
~/
confidential/
secret_file.txt # Stored unencrypted
.enc_confidential/ # Read-only view of files in confidential/
secret_file.txt # Encrypted view of corresponding file
Pour ce faire, la méthode standard consiste à utiliser Fuse (système de fichiers dans l'espace utilisateur).
Pour votre cas d'utilisation, il existe déjà un système de fichiers Fuse pouvant faire ce que vous voulez, fuseflt
. fuseflt
donne une vue en lecture seule d'un système de fichiers avec des filtres arbitraires spécifiés par l'utilisateur appliqués à chaque fichier lu.
Dans votre cas, le filtre que vous souhaitez utiliser est un programme de chiffrement tel que gpg
.
Voir la documentation pour savoir comment écrire votre fichier de configuration. Fondamentalement, utilisez flt_cmd = gpg --encrypt [... your chosen encryption settings]
en tant que commande de filtrage.
Faites attention; Si vous modifiez votre configuration, des données en texte brut pourraient être exposées à votre service Internet. Je recommanderais mon autre réponse pour un usage général.
Étant donné que vous avez également besoin d'une assistance en écriture pour que la synchronisation fonctionne, il semble que vous deviez écrire votre propre système de fichiers Fuse. Il ne sera probablement pas difficile de modifier les sources fuseflt
pour ajouter un support en écriture; remplissez simplement les fonctions d'écriture qui ne sont pas implémentées. Cela fonctionnerait de la même manière que le support de lecture, appelant un filtre de déchiffrement au lieu du filtre de chiffrement.
Pour écrire votre système de fichiers Fuse, plusieurstutoriels sont disponibles. Voir aussi le Fuse wiki pour plus de documentation.
Une fois cette opération effectuée, ajoutez votre commande Fuse filesystem mount à votre fichier .profile afin qu’elle se monte automatiquement lors de la connexion.
C'est possible en principe (en utilisant un système de fichiers Fuse), mais une option plus simple consiste à utiliser un programme de sauvegarde crypté prêt à l'emploi utilisant votre service en ligne comme cible de la sauvegarde.
Je connais deux programmes de sauvegarde appropriés. Ces deux éléments vous donnent également l'historique complet de vos fichiers.
Duplicity ( paquet Ubunt ) est un programme de sauvegarde qui écrit efficacement des sauvegardes incrémentielles compressées et chiffrées sur un emplacement distant. Les sauvegardes incrémentielles utilisent peu d'espace, car elles utilisent l'algorithme rsync pour générer des diffs binaires.
Vous pouvez également utiliser l'interface frontale Deja-Dup, incluse par défaut dans les versions récentes d'Ubuntu.
Duplicity prend en charge l'écriture sur de nombreux sites distants, ou backends . En particulier, Duplicity a un backend Ubuntu One. Je ne pense pas que cela supporte directement Dropbox, mais vous pouvez lui dire de sauvegarder dans le répertoire local synchronisé par Dropbox.
Si vous sauvegardez de grandes quantités de données, Duplicity ne convient pas. En raison de limitations dans la manière dont il stocke les sauvegardes incrémentielles, il est nécessaire de lancer périodiquement une sauvegarde complète, ce qui implique le téléchargement de toutes vos données .
Pour des sauvegardes plus importantes, regardez Obnam . Il stocke les données chiffrées dédupliquées dans un référentiel de sauvegarde. Pour l'utiliser avec un service de stockage distant, indiquez à Obnam de sauvegarder dans un référentiel situé dans un emplacement que Dropbox/Ubuntu One synchronisera. Étant donné qu'Obnam utilise un format de référentiel basé sur une arborescence B-tree qui nécessite uniquement l'écriture de données nouvelles/modifiées dans le référentiel, la synchronisation doit être rapide.
L'inconvénient est qu'il nécessite de stocker 2 copies de vos données sur votre disque dur (la copie canonique et la copie dans le référentiel de sauvegarde).
lien vers le paquet Ubunt . Il y a aussi n PPA .
Seafile est un autre outil de synchronisation prêt à l'emploi. Il s’agit d’une solution à plusieurs serveurs basée sur un serveur, comme Dropbox. Dans la dernière version, il est possible de partager des dossiers chiffrés de manière à ce que le serveur ne connaisse pas la clé.
Voir Fonctions de sécurité Seafile
Astuce: Seafile appelle un dossier partagé "Bibliothèque", pour une meilleure compréhension de la documentation.