nonymous.fr

sécurité linux

Chiffrer ses fichiers avant de les mettre dans le "claoude"

Rédigé par nonymous - - 8 commentaires

Je tiens à ne jamais perdre mes données, surtout les photos de ma progéniture, et pour ça, je suis du genre "ceinture et bretelles" (+airbag). Actuellement, ma stratégie c'est :

  • Une copie sur mon NAS à la maison
  • Une copie sur un disque externe que je laisse au bureau. Celui-ci est chiffré, donc un vol du disque ne me ferait pas grand peine.
  • Une sauvegarde hebdomadaire vers ces 2 supports

Avec toutes ces précautions, je pense pouvoir me dire que je suis à peu près certain de retrouver mes données en cas de cambriolage ou désastre à la maison.

Sauf que, et si le désastre arrive le jour de la sauvegarde hebdomadaire ?

Dans ce cas, le cambrioleur ou le cyclône emportent tout, y compris le disque externe du bureau. Et moi j'ai plus rien.

Sauvegarder mes précieux fichiers sur "le cloud" me paraît donc sensé, histoire de vraiment mettre toutes les chances de mon côté.
Mais rien ne garantit la confidentialité de ce qu'on y met. En tout cas, moi, par défaut, je ne fais pas confiance.
Ça fait donc un moment que je scrute la cloudosphère à la recherche d'une offre gratuite compétitive.
Grâce à shaarli.fr (ma source d'infos favorite), je suis tombé sur l'offre du site https://www.oboom.com, à savoir 50Gb gratos. Vu que mes photos occupent actuellement 30Go, voilà qui fait l'affaire.

Bon, la quantité de stockage, c'est bien, mais la sécurité, ils pourront dire ce qu'ils veulent, par défaut je n'ai pas confiance.

[Edit du 06-03-2016] : je fais bien de ne pas avoir confiance, tout ce que j'avais uploadé à l'époque de l'article a disparu : les dossiers existent encore, mais vides !

Je vais donc chiffrer moi-même mes fichiers avant de les envoyer là haut dans les nuages.

Le chiffrement de conteneurs

Le chiffrement, je pratique avec Truecrypt (ouais, on sait pour Truecrypt, quand j'aurai plus de temps, je regarderai Veracrypt...)

Schématiquement, Truecrypt/Veracrypt fonctionnent en créant un conteneur chiffré, d'une taille donnée, auquel on accède avec un mot de passe. La taille du conteneur est fixée à sa création, et il occupe aussitôt l'espace correspondant. Pour travailler avec les fichiers du conteneur, on l'ouvre avec Truecrypt, on saisit le mot de passe et hop on dispose d'un lecteur supplémentaire (sous Windows) ou d'un montage (sous Linux). Les fichiers sont directement accessibles sans manipulation particulière.

Le gros inconvénient, c'est qu'on se trimballe un fichier de 50Go, quel que soit son contenu :

schema truecrypt

En local, sur un disque externe dédié, c'est acceptable, voire totalement indolore : on crée un conteneur de la taille du disque, et c'est torché.

Par contre, sur internet, c'est beaucoup plus chaud. Pour bosser avec une architecture comme ça il faudrait :

  • Enregistrer une première fois tous les fichiers dans le conteneur
  • Uploader le conteneur complet dans le claude
  • A chaque mise à jour, télécharger le conteneur complet
  • L'ouvrir, enregistrer les nouveaux fichiers
  • Uploader le conteneur complet à jour

Autant dire un bordel sans nom. C'est clairement pas fait pour ça.

La solution "DéjàDup+Owncloud"

Mitsu a publié un tutoriel très intéressant sur une solution basée sur duplicity et Owncloud.

J'avais envie de tenter le coup, mais mon expérience personnelle m'a rendu méfiant vis à vis de toute solution de sauvegarde qui ne permet pas un accès direct aux fichiers (encapsulation dans des archives au format spécifique, utilisation d'un catalogue interne, etc.). Je sais, c'est certainement pas bien, mais je ne me sens pas à l'aise avec ça. Entendons-nous : je ne parle ici que du contexte perso, pour l'entreprise c'est bien entendu une toute autre tambouille.

La solution de Mitsu est donc certainement nickel, mais je préfère en trouver une autre.

De plus, je n'ai pas une instance Owncloud de 50Go à disposition. Or, la solution est orientée sur ce produit.

Le chiffrement individuel des fichiers avec gpg

Mon idée, c'est de chiffrer chaque fichier pour uploader ensuite l'intégralité de mes dossiers. Ainsi, l'arborescence d'origine est respectée. En cas de besoin, je télécharge ce que je veux et je déchiffre.

En fouillant, j'ai rapidement constaté que le couple gpg + gpgdir pouvait faire l'affaire.

Gpg est une solution de chiffrement qui sait entre autres travailler sur des fichiers.

Gpgdir est un script perl qui permet de chiffrer des grandes arborescences complètes avec gpg.

Installer gpgdir

Gpg est en principe déjà installé sur une distribution Linux classique.

Pour installer gpgdir :

sudo apt-get install signing-party

Générer les clefs

RESTE LÀ ! Je dis ça, parce que moi-même je me tire quand un tuto aborde ce genre de sujets.

Mais là c'est tout simple !

Je n'entrerai pas dans des explications sur le chiffrement, les clefs publiques, privées, etc. D'une part, c'est bien trop compliqué pour toi, et en plus je n'y comprends rien. Tout ce que tu dois savoir ici, c'est qu'il te faut une belle paire de bonnes grosses clefs pour chiffrer tes fichiers. Pour cela, à la console, il faut saisir :

gpg --gen-key

Je te propose d'effectuer les choix suivants lorsqu'on te pose la question :

  • Type de clef : (2) DSA et Elgamal
  • Taille de la clef : 2048
  • Délai d'expiration : 0
  • Identité : ton nom, ton adresse e-mail, et si tu veux, un commentaire (ou rien)

Le programme demande ensuite un mot de passe, ou plutôt une "phrase de passe" parce qu'on te voit venir avec ton "password123" ou ton "iloveyou". L'algorithme de génération des clefs démarre, affichant un écran plutôt abscons :

algo

Le principe est le suivant : le système a besoin d'un coup de main pour générer du vrai aléatoire (parce qu'en bon ordinateur qui se respecte, il a du mal à faire n'importe quoi). Pour l'aider, il suffit de faire soi-même n'importe quoi : bouger la souris, taper des trucs au clavier, ...
Comme on peut le voir dans l'exemple ci-dessus, je n'ai pas été très fort car il lui manque 177 octets d'entropie (note pour plus tard : caser dans un dîner qu'à 177 octets près, j'avais une super entropie).

Quand il a fini, il le dit et on est content.

Vérifier les clefs

Avec la commande suivante, on vérifie simplement qu'on dispose maintenant de nos clefs :

gpg --list-keys

Théoriquement, on obtient quelque chose dans ce genre :

list-keys

Sauvegarder les clefs

Si on n'est pas trop couillon, on se dit que dans le contexte "désastre", on aurait l'air bien malin avec nos fichiers chiffrés sans les clefs.

Alors, première chose à faire : sauvegarder les clefs quelque part.

(Source : https://gist.github.com/chrisroos/1205934)

Sauvegarder les fichiers suivants :

  • ~/.gnupg/pubring.gpg
  • ~/.gnupg/secring.gpg

Exporter le "ownertrust"

gpg --export-ownertrust > fichier-ownertrust.txt

Puis sauvegarder le fichier "fichier-ownertrust.txt"

Restaurer les clefs

Il peut être utile de savoir comment les restaurer non ?

  • Recopier pubring.gpg et secring.gpg dans ~/.gnupg
  • Importer le "ownertrust" avec : gpg --import-ownertrust fichier-ownertrust.txt

Configurer gpgdir (on y est presque !)

Si on tape "gpgdir", on obtient un warning :

gpgdir

Il dit simplement qu'il veut savoir quelle clef utiliser. Pour lui dire ça, il suffit d'éditer le fichier ~/.gpgdircc et de le modifier, après avoir noté l'identifiant de clef.

L'identifiant de clef c'est ça (en rose) : (après avoir tapé gpg --list-keys) :

id

  • Ouvrir ~/.gpgdirrc
  • Décommenter la ligne #use_key KEYID
  • Remplacer KEYID par l'identifiant réel de clef
  • Sauvegarder

Cette fois gpgdir ne génère plus de warning.

Chiffrer un dossier

Avant tout, faire une copie du dossier à chiffrer : en effet, gpgdir supprime les fichiers originaux après les avoir chiffrés (on pourrait lui dire de les conserver, mais on se retrouverait avec tous les fichiers chiffrés à côté de l'original, sympa après pour faire le tri de ce qu'on uploade ou pas !)

Ensuite, c'est tout bête. Pour chiffrer par exemple le contenu du dossier "~/Documents/Copie" :

gpgdir -e ~/Documents/Copie

Le logiciel demande le mot de passe (la phrase de passe), puis se met à travailler.

Tous les fichiers sont remplacés par leur équivalent chiffré, avec l'extension ".gpg" ajoutée.

Chiffrer un fichier seul

Ça peut servir :

gpg -c monFichier

Déchiffrer les fichiers

Trop facile. Pour le dossier "~/Documents/Copie" :

gpgdir -d ~/Documents/Copie

Déchiffrer un fichier seul

gpg monFichier.gpg

Envoyer tout ça dans le cloud

Une fois vos dossiers chiffrés, il n'y a plus qu'à les stocker dans le cloud, en utilisant votre méthode favorite parmi celles que proposent le fournisseur.

Chez oboom.com, il y a moyen d'utiliser FTP, ce qui est très pratique.

Concluons

Ce petit bricolage maison est tout à fait adapté à mon usage précis, c'est à dire archiver les fichiers auxquels je tiens dans un emplacement a priori fiable et pérenne, tout en m'assurant que personne (même l'hébergeur) ne pourra les lire.

Il n'est certainement pas adapté à une sauvegarde quotidienne qui nécessite de comparer les versions de fichiers, type sauvegarde incrémentale ou différentielle.