Quelles solutions pour chiffrer ses disques et données sur Linux

Cette entrée fait partie d'une série de sur 14 dans la série Chiffrer ses données, disques, fichiers sur Windows ou Ubuntu : le dossier

Sur Windows, on connaît BitLocker pour chiffrer ses disques.
Mais quelles sont les solutions pour chiffrer ses disques, partitions ou fichiers personnelles sur Linux ?

En effet, on peut installer Ubuntu, Mint, Debian, Fedora ou tout autre distribution Linux sur un PC portable.
On peut aussi utiliser Linux sur des serveurs qui stockent des fichiers et données importants.
Il faut donc protéger et sécuriser l'accès à ces données.
On trouve alors beaucoup de solutions comme eCryptfs, VeraCrypt, LUKS/dm-crypt, PGP, eCryptFS, FSCrypt, etc.

Cet article vous donne la liste des projets libres et propriétaires ainsi que les différentes solutions techniques de chiffrements de données.

Quelles solutions pour chiffrer ses disques et données sur Linux

Les différents types de solutions de chiffrement de données sur Linux

Il existe énormément d'utilitaires, projets pour chiffrer les données et disques.
Chacun ne fonctionne pas au même niveau et ne permettent pas de chiffrer le même type de données.
Ainsi on distingue :

  • Les solutions de chiffrement d'application comme DBMS, PGP, OpenSSL et Themis. Ces derniers chiffrent les flux de fichiers. L'application gère l'algorithme de chiffrement (AES, RSA) et l'utilisateur doit chiffrer l'accès au fichier.
  • Le chiffrement du système de fichiers ou Filesystem-level encryption (FBE) comme eCryptfs, ext4 encryption, fscrypt pour Linux. C'est le système de fichiers qui chiffrent les données quelque soit le type d'application utilisée.
  • Le chiffrement de disque ou par bloc comme LUKS/dm-crypt, BitLocker ou FileVault. C'est le niveau en dessous du système puisqu'il chiffre le disque au complet.
  • Enfin le chiffrement matérielle comme SED ou OPAL

Le schéma ci-dessous reprend les différents de chiffrement.

Source CloudFlare

Les différences entre ces types de chiffrement et lequel choisir sont abordés sur la page suivante :

Le noyau de Linux fournit des API de chiffrement (Linux Kernel Crypto API) qui permettent :

  • Chiffrements symétriques
  • Chiffrements AEAD
  • Résumé du message, y compris le résumé du message à clé
  • Génération de nombres aléatoires
  • Interface de l'espace utilisateur

Certains solutions de chiffrement peuvent s'appuyer dessus pour chiffrer les données.

Quelles solutions pour chiffrer ses disques et données sur Linux

Sur Linux, les chiffrements utilisant le système de fichiers se combinent très bien au chiffrement de disque (par bloc).
Ainsi, vous pouvez très bien chiffrer un disque avec LUKS/dm-crypt puis chiffrer une partition ou des fichiers avec fscrpt ou eCryptfs.

fscrypt

fscrypt (précédemment nommé ext4 encryption)comme son nom l'indique est un chiffrement sur le système de fichiers.
Il utilise une API fournit par ext4 nommée fscrypt.

Différents répertoires peuvent utiliser différentes clés de chiffrement. Dans un répertoire chiffré, tous les contenus, noms de fichiers et liens symboliques des fichiers sont chiffrés.
Tous les sous-répertoires sont également chiffrés.
Enfin les métadonnées sans nom de fichier, telles que les horodatages, la taille et le nombre de fichiers et les attributs étendus, ne sont pas chiffrées.

Il faut donc utiliser fscrypt pour chiffrer des fichiers ou quelques répertoires.
Pour chiffrer un disque en entier, il faut plutôt se tourner vers dm-crypt ou eCryptfs.

eCryptfs

Comme son nom l'indique eCryptfs est une autre solution de chiffrement sur le système de fichiers.
Avec ce dernier, vous pouvez chiffrer des fichiers, répertoires très facilement.
Contrairement à fscrypt, eCryptfs chiffre aussi les métadonnées.
Toutes les métadonnées cryptographiques sont stockées dans les en-têtes des fichiers, de sorte que les données cryptées peuvent être facilement déplacées, stockées pour sauvegarde et récupérées.
Il y a d'autres avantages, mais il y a aussi des inconvénients, par exemple eCryptfs ne convient pas pour crypter des partitions complètes, ce qui signifie également que vous ne pouvez pas protéger l'espace d'échange avec lui.

ZFS

ZFS est un système de fichiers créé par Sun Microsystems devenu ensuite Oracle qui supporte le chiffrement intégré.
ZFS est licencié sous la licence commune de développement et de distribution (CDDL).
Certaines distributions Linux peuvent donc ne pas l'inclure par défaut et cela peut aussi poser polémique.

Les fonctionnalités de ZFS comprennent:

  • stockage groupé (gestion de volume intégrée - zpool), copie sur écriture, instantanés
  • vérification de l'intégrité des données et réparation automatique (nettoyage), RAID-Z
  • une taille de fichier maximale de 16 exaoctets et un maximum de 256 quadrillions de zettaoctets stockage sans limite de nombre de systèmes de fichiers (jeux de données) ou de fichiers

LUKS/dm-crypt : le chiffrement de disque

dm-crypt est une solution de chiffrement de bloc utilisant les routines cryptographiques de l'API Crypto du noyau Linux.
Il peut être utilisé pour les types de chiffrement de périphérique par blocs suivants: LUKS (par défaut), simple et possède des fonctionnalités limitées pour les périphériques loopAES et Truecrypt (abandonné).

L'expansion la plus notable concerne l'extension LUKS (Linux Unified Key Setup), qui stocke toutes les informations de configuration nécessaires pour dm-crypt sur le disque lui-même et fait abstraction de la gestion des partitions et des clés dans le but d'améliorer la facilité d'utilisation.
Les périphériques accessibles via le mappeur de périphériques sont appelés périphériques de bloc.

Par exemple ci-dessous, un disque chiffré avec LUKS.

Le chiffrement de disque LUKS/dm-crypt sur Linux (Ubuntu)

Le contenu déchiffré est accessible par une partition /dev/mapper/vgubuntu-root de type Block Device.

Le chiffrement de disque LUKS/dm-crypt sur Linux (Ubuntu)

Il peut être configuré pour fournir une authentification de pré-démarrage via un initrd, chiffrant ainsi toutes les données sur un ordinateur - à l'exception du chargeur de démarrage, du noyau et de l'image initrd elle-même.

Au moins deux interfaces et commandes sont actuellement disponibles: cryptsetup et cryptmount.

  • cryptsetup : Cryptsetup est l'outil de ligne de commande pour s'interfacer avec dm-crypt pour créer, accéder et gérer des périphériques chiffrés. Il permet de monter et monter un disque chiffré
  • cryptmount permet à n'importe quel utilisateur de monter et de démonter un système de fichiers dm-crypt sans avoir besoin de privilèges de superutilisateur.

Au démarrage l'utilisateur doit saisir le mot de passe qui fait office de clé de déchiffrement.
La commande cryptsetup est alors utilisée pour monter le disque déchiffré.
Cela déverouille l'accès au disque chiffré.

Déchiffrer son disque au démarrage d'Ubuntu

Le chiffrement par défaut pour LUKS est aujourd'hui aes-xts-plain64, c'est-à-dire AES comme chiffrement et XTS comme mode de fonctionnement.

Se reporter à ces tutoriels :

VeraCrypt

VeraCrypt est le successeur de TrueCrypt sous licence libre.
Il permet de créer un disque virtuel chiffré dans un fichier ou une partition. L'ensemble du dispositif de stockage demande une authentification avant de monter le disque virtuel.

VeraCrypt utilise le mode d'opération XTS.
Il permet notamment les types de chiffrements suivants :

  • Crée un disque chiffré virtuel dans un fichier et le monte en tant que disque réel.
  • Chiffrer une partition entière ou un périphérique de stockage tel qu'une clé USB ou un disque dur.
  • Chiffrer une partition ou un lecteur sur lequel Windows est installé (authentification de pré-démarrage).
  • Le chiffrement est automatique, en temps réel (à la volée) et transparent.
  • La parallélisation et le pipelining permettent aux données d'être lues et écrites aussi rapidement que si le lecteur n'était pas chiffré.
  • Le chiffrement peut être accéléré par le matériel sur les processeurs modernes.
  • Fournit un déni plausible, au cas où un adversaire vous obligerait à révéler le mot de passe: volume caché (stéganographie) et système d'exploitation caché.

Enfin il supporte Microsoft Windows, macOS et Linux.

Le site propose plusieurs tutoriels autour de VeraCrypt :

Comparatif des solutions de chiffrement de données pour Linux

Ce tableau récapitule les principales solutions de chiffrements de données.

Solutions de chiffrementsTypeSystèmes de fichiers supportésAlgorithme de chiffrement supportéCompatibilité
Windows
Licence
Loop-AESPar bloc / disqueAES
GPL
dm-crypt/LUKSPar bloc / disqueTous les algorithmes supportés par le noyaux Linux
GPL
VeraCryptPar bloc / disqueAES, Twofish, Serpent, Camellia, Kuznyechik
Apache License
TrueCryptPar bloc / disqueAES, Twofish, Serpent
TrueCrypt License
eCryptfsSystèmes de fichiersext3, ext4, xfs (with caveats), jfs, nfs…AES, Blowfish, Twofish
GPL
fscryptSystèmes de fichiersext4, F2FS, UBIFSAES, ChaCha12
GPL (kernel), Apache 2.0 (pour les outils utilisateurs)
ZFSSystèmes de fichiersZFS
CDDL
Comparatif des solutions de chiffrement pour Linux

Pour un tableau plus complet, suivre ce lien.

Liens

Naviguer dans les séries -