Sous Linux Slackware il est possible depuis la version 12.0 d'utiliser une partition chiffrée pour conserver ses données.
Voici un petit récapitulatif dans le cas d'une utilisation avec un disque externe. Pour une utilisation sur un disque interne, les informations complémentaires se trouvent dans le fichier README_CRYPT.TXT présent à la racine de votre DVD Slackware.
Notez que l'on parle bien de disque externe et non de clé USB, la tenue dans le temps de ces dernières étant bien inférieure à celles des disques (la procédure doit être utilisable, à vos risques et périls).
Pour le reste de l'article, il est admis que votre disque est détecté en tant que /dev/sdb
avec une seule partition /dev/sdb1
. Et que ce disque ne comporte rien d'important que vous n'ayez sauvegardé préalablement.
Branchez votre disque mais ne le montez pas ; s'il est monté automatiquement, démontez-le.
C'est une étape facultative et assez longue : elle consiste à remplir la partition de données aléatoires afin d'éviter un éventuelle analyse par des personnes trop curieuses (en clair, vous êtes paranoïaque).
dd if=/dev/urandom of=/dev/sdb1
Les opérations sérieuses commencent, le disque sera chiffré avec l'algorithme AES utilisé par défaut et une clé de 256 bits, ce qui assure une protection relativement pérenne d'un point de vue cryptographique.
Une phrase secrète vous sera demandée, pensez à utiliser une phrase suffisamment longue pour avoir une sécurité robuste (10 caractères sont un minimum).
cryptsetup -s 256 -y luksFormat /dev/sdb1
Pour être sûr que tout est en place, vous pouvez utiliser l'option luksDump
pour connaître l'état de votre disque :
cryptsetup luksDump /dev/sdb1
Vous retrouverez de manière brute les informations sur le chiffrement et la première clé utilisée.
Votre disque peut maintenant être ouvert, toujours via la commande cryptsetup
avec la demande de votre phrase secrète :
cryptsetup luksOpen /dev/sdb1 cryptdisk
Cela ne rend pas votre disque immédiatement utilisable. Vous obtenez un nouveau périphérique déclaré dans /dev/mapper
sous le nom cryptdisk (vous pouvez donc choisir un autre nom arbitrairement, cela permet également l'accès à différents disques chiffrés avec des noms différents).
Et avant une première utilisation, vous devez formater ce nouveau disque pour pouvoir l'utiliser comme tout autre espace de stockage.
mkfs.ext2 /dev/mapper/cryptdisk
Bien sûr ext3 ou ext4 peuvent être utilisés si vous le préférez.
Et votre disque peut maintenant être monté et utilisé :
mount /dev/mapper/cryptdisk /media/hd0
Une fois vos opérations terminées, vous devrez démonter le disque et refermer l'accès chiffré via les commandes suivantes :
umount /media/hd0
cryptsetup luksClose cryptdisk
Le disque peut ensuite être débranché.
En cas d'arrêt normal de la machine, le disque sera refermé "proprement". En cas de coupure sauvage (déconnexion USB, coupure électrique) le disque se retrouvera inaccessible et il sera nécessaire de rouvrir l'accès avec la phrase secrète (on ne peut donc pas accéder aux données en débranchant sauvagement un disque et en le rebranchant sur une autre machine).
Les opérations de mise en place ayant été effectuées, vous pouvez utiliser votre disque avec ces deux blocs de deux commandes pour respectivement ouvrir et monter le disque et démonter et fermer le disque :
cryptsetup luksOpen /dev/sdb1 cryptdisk
mount /dev/mapper/cryptdisk /media/hd0
umount /media/hd0
cryptsetup luksClose cryptdisk
Quelques autres commandes qui peuvent vous être utiles...
Votre disque n'est pas vérifié lors d'un montage s'il n'est pas déclaré dans le fichier /etc/fstab
; vous devez donc lancer manuellement une vérification après avoir ouvert l'accès chiffré, mais avant de monter le disque :
cryptsetup luksOpen /dev/sdb1 cryptdisk
fsck /dev/mapper/cryptdisk
Vous pouvez ajouter sept clés après la première, ce qui peut vous permettre de partager votre disque avec d'autres personnes.
Toujours après avoir branché votre disque, lancez la commande suivante pour ajouter une clé dans un emplacement (slot) disponible. Vous devrez saisir une clé secrète déjà en place.
cryptsetup luksAddKey /dev/sdb1
Et si vous souhaitez supprimer une clé :
cryptsetup luksRemoveKey /dev/sdb1
La phrase secrète de la clé à supprimer sera alors demandée, mais vous devrez également fournir une autre phrase secrète valide pour confirmer l'opération.
cryptsetup luksKillSlot /dev/sdb1 1
Le chiffre en dernier argument correspond à l'emplacement de clé que vous souhaitez libérer (le premier étant zéro, on supprime donc ici le deuxième) et seule une autre phrase secrète que celle de la clé à supprimer sera demandée.
Vous pouvez vérifier l'ajout et la suppression de clés avec l'option luksDump comme présenté précédemment.
dm-crypt à l'origine de cette fonctionnalité
Linux Unified Key Setup (LUKS) facilitant l'utilisation de dm-crypt
Page du blog de Denis Bodor sur le sujet
Page du blog de Sylvain Sarméjeanne sur une tentative de forçage d'une partition chiffrée
publié le 20 novembre 2009