Pourquoi chiffrer

Si vraiment vous vous posez la question, c'est que vous n'avez pas vraiment du suivre l'actualité durant ces 10 dernières années :)

Pourquoi ne PAS chiffrer

Si vous n'avez pas confiance dans vos capacités en informatique, si vous avez de fréquents "trou de mémoire", ou si votre système doit avoir les meilleures performances possibles. Il faut surtout bien comprendre une chose. Si vous perdez les "codes d'accès" d'un espace de stockage réellement chiffré, vous perdrez vos données. Et cela de façon totalement irrémédiable. Bien sur, vos sauvegardes seront elles aussi inutilisables, car elles aussi seront chiffrés également. (Si ce n'est pas le cas, le chiffrement de vos donnés n'a aucun sens).

Que chiffrer

En fonction du "quoi", on pourra décider du "comment". Si par exemple vous ne souhaitez chiffrer que vos mots de passe, des logiciels existent et font cela très bien. Par exemple celui ci : keepassx. (des versions ou logiciels compatibles existes pour toutes les plateformes, smartphones compris). Si vous souhaitez chiffrer un fichier en particulier, alors c'est probablement gpg qui sera l'outil le plus adapté. Nous allons plutôt nous intéresser au troisième cas : Le chiffrement intégral d'un système de fichier.

Un peu de théorie

Chiffrer une donnée, c'est lui appliquer un procédé mathématique RÉVERSIBLE. La même "clef" permet donc de chiffrer ou de déchiffrer l'information. (On parle de chiffrement symétrique). Mais, avant de pouvoir utiliser une clef pour chiffrer, il faut choisir une méthode de chiffrement. le "comment" (quel procédé mathématique va t-on appliquer). Ce "comment" est aussi important que le "avec quoi" (quel clef). Dans la suite, nous appellerons ce "comment", le cypher. Ce cypher est donc le nom de l’algorithme (ou de la suite d’algorithmes) qui sera utilisé pour chiffrer les données de l'utilisateur. Enfin, dernière notion, après le cypher et la clef, il reste à déterminer la taille de la clef. Un peu comme la longueur d'un mot de passe, plus la clef est longue, et plus le chiffrement sera sécurisé. (Mais il faut bien comprendre que cela dépend aussi beaucoup du cypher ! Un cypher peu sécurisé le restera quel que soit la taille de la clef. Inversement, certains cypher sont considérés comme très sécurisés, même avec des clefs qui ne sont pas hyper longues).

En général, c'est à l'utilisateur de choisir le cypher, et la taille de la clef (sans indications de votre part, il existe bien sur des valeurs par défaut). Mais pas la clef elle même ! En effet, pour être efficace, une clef doit être très aléatoire, et tout de même relativement longue (trop longue pour pouvoir être retenu par un être humain normalement constitué). Du coup, la plupart des logiciels de chiffrement demande un mot de passe à l'utilisateur. Et c'est à partir de ce mot de passe, qu'une clef est générée. Globalement cela revient à peu près au même, et, en simplifiant, on peut s'imaginer que le mot de passe correspond à la clef, même si ce n'est pas l'exacte vérité.

Truecrypt

Sous windows, le choix sera très vite fait. Utilisez truecrypt. Et c'est tout ce que je dirai à propos de windows :) Sous linux, il est également possible d'utiliser ce logiciel (open source et déjà compilé pour Windows, Mac et linux 32 et 64 bits). Mais d'autres choix sont possibles.

Les avantages de truecrypt

En plus d’être open source (ne faites jamais confiance à un logiciel de chiffrement qui ne le serait pas) truecrypt offre des fonctionnalités vraiment très évoluées pour un logiciel de ce type. Il est par exemple possible d'avoir des volumes chiffrés dans lequel vous n'auriez strictement rien de compromettant (vous pouvez donc les déchiffrer sans crainte devant un expert judiciaire par exemple). A coté de cela, vous pouvez avoir des volumes chiffrés dissimulés. Or, même si l'expert en question peut soupçonner la présence de tels volumes dissimulés "derrière" les volumes chiffrés "normaux", il n'a AUCUN moyen de prouver qu'ils existent. Il suffit donc de nier l'existence d'autres volumes et, techniquement et légalement, personne ne devrait rien pouvoir y faire. Il est même possible de stocker l'intégralité d'un système d'exploitation bootable dans un de ces volumes chiffrés ET secret.

Un autre avantage indéniable de ce logiciel et que les volumes chiffrés qu'il crée pourront être lus sur toutes les plateformes. Si vous souhaitez pouvoir accéder à vos donnés à partir de linux et de windows, la encore, c'est vraiment vers truecrypt qu'il faut vous tourner.

Les inconvénients

Objectivement... techniquement, il ne semble pas en avoir. Mais... Je commence personnellement à trouver un peu "louche" toute cette publicité qui lui est faite. Oui, sur le papier, c'est une excellente solution. Mais que le FBI et d'autres organismes similaires répètent à qui veut l'entendre que ce programme est trop parfait, que vraiment ils n'arrivent pas à déchiffrer quoi que ce soit etc... Peut être que c'est vrai, mais mon coté paranoïaque ne peut s’empêcher d'imaginer que c'est exactement le genre de publicité que ces agences feraient à un logiciel qu'ils auraient réussit à contourner. Bref, que ce soit déjà le cas ou pas, cela arrangera bien les forces de l'ordre que tout le monde utilise truecrypt le jour ou ils découvriront un moyen de déchiffrer ces données. Etre un peu original, ça à souvent du bon :)

eCryptFs

C'est est la solution utilisée par ubuntu lorsque vous demandez le chiffrement de vos données au moment de l'installation. Cette solution est très simple à mettre en place, mais elle à un très gros inconvénient : Vous ne maitrisez rien de ce qui se passe ! Le jour ou il y aura un soucis (ou changement de distribution etc), vous allez galérer un moment pour retrouver vos fichiers. Ce n'est donc clairement pas la solution que je recommande, mais si vous voulez plus d'informations (ou si vos données sont déjà chiffrées de cette façon et que vous cherchez à les récupérer) je vous invite à lire ce billet ou tout est parfaitement expliqué.

Cryptsetup

cryptsetup est la solution de chiffrement intégrée par défaut à la grande majorité les distributions linux existantes. Cette solution ne fonctionne donc que sous linux, et nul par ailleurs. Beaucoup plus "basique" dans son fonctionement que truecrypt, cette solution à l'avantage de ne pas nécessiter de logiciels spécifiques. Si vous utiliser cryptsetup pour chiffrer une clef usb par exemple, vous saurez lire cette clef sur toutes les machines linux, sans logiciels supplémentaire, sans même avoir besoin d'une interface graphique ou quoi que ce soit de ce genre. Une seule commande suffira pour "ouvrir" le volume chiffré situé sur votre clef, et basta.

Simple et efficace, cette commande peut s'utiliser de deux façon sensiblement différentes. Je vais essayer de résumer les avantages et les inconvénients de ces deux solutions.

Utilisation basique (sans formatage luks)

C'est la solution la plus simple qui soit. Comme nous l'avons vu plus haut, il vous suffira de choisir un cypher, un mot de passe, et C'EST TOUT. Tant que vous n'oubliez pas ces informations, vous pourrez toujours retrouver vos données. Mais si vous oubliez l'une de ces informations... c'est mort. Dites adieu à vos fichiers, ils sont perdus. L'avantage de cette méthode, c'est qu'il n'y a que vous qui êtes censé connaitre les bons paramètres (cypher, mot de passe, taille de la clef si vous n'avez pas utilisé la valeur par défaut). Une personne qui analysera votre disque dur n'aura AUCUN moyen de les connaitre. Bref, il ne devra pas seulement trouver votre mot de passe, mais aussi tout le reste, d’où une sécurité qui est à mon avis maximale. Problème, les données sont donc toutes chiffrés avec ces paramètres. Imaginez qu'une personne découvre votre mot de passe. Et bien vous ne pouvez pas faire grand chose. Impossible par exemple de "changer le mot de passe". Il faudrait pour cela recopier l'ensemble des donnés dans un nouveau disque chiffré avec le nouveau mot de passe, puis effacer les données de l'ancien disque. Si cela concerne plusieurs To de données, bon courage :)

Utilisation avec formatage luks

luks corrige les problèmes de la précédente solution. au lieu de chiffrer brutalement toutes les données directement avec votre mot de passe unique, luks permet de "formater" le disque chiffré. Une entête est donc crée sur le volume. Cette entête permet d'enregistrer le cypher utilisé (vous n'avez plus à le retenir, mais n'importe qui pourra donc savoir que vos donnée sont chiffrés, et avec quel cypher). De plus, les donnes ne sont plus directement chiffrés avec votre mot de passe, mais avec une clef qui peut etre associé a plusieurs mot de passe, tous permettant de déchiffrer les données (ou de créer d'autres mot de passe, ou d'en supprimer). Une solution un peu moins sécurisée donc (et qui surtout ne vous permettra pas de nier l’existence du chiffrement). Par contre vous pourrez supprimer un mot de passe, si vous pensez que celui ci est compromis.

Quel cypher utiliser

Pour commencer, je tiens à dire que je ne suis pas du tout expert sur le sujet. Voila simplement un résumé de ce que j'ai pu lire ici ou la sur le net. A vous de faire vos propres tests, et n'hésitez pas à m'envoyer un petit mail pour me faire part des résultats observés ;)

  • Triple DES : Trop faible
  • Twofish / Blowfish : Trop lent par rapport à la sécurité fournie
  • AES : Bon compromis perf/sécurité
  • Serpent : Tres lent, mais très sécurisé

Pour information, AES avec une clef de 256 bits doit encore être considéré comme suffisamment sécurisé pour les applications militaire de niveau top secret. Alors en passant à une taille de clef plus importante (512...) vous serez probablement tranquilles un moment ! Surtout si c'est pour chiffrer vos vos mp3 :) Pour savoir quel sont les cypher disponibles dans votre système, vous pouvez vous référer à cette page. Sur les versions récentes de linux (année 2011 et au delà) tous ceux que j'ai indiqué devraient déjà être inclus.

Il est maintenant temps de passer à la pratique. Nous allons voir très rapidement, avec deux exemples simple, comment utiliser cyptsetup. D’abord dans sa version "basique", puis en utilisant le formatage luks...