AccueilFAQStatistiquesDiversContact

Linux : encrypter sa clé USB

Après avoir transformé une clé USB en couteau-suisse en utilisant à peine 100Mo, nous pouvons aussi transformer tout le reste de l'espace disque disponible en Fort Knox. Depuis le kernel 2.6 on peut tout encrypter sous Linux sans aucun logiciel grace à dm-crypt. Une clé USB étant si vite perdue (ainsi que toutes les données personelles qu'elle contient), il serait dommage de s'en priver.

Avec la nouvelle cryptoapi du kernel qui maintenant élimine les lacunes de cryptoloop, nous allons utiliser cryptsetup et l'extension LUKS (Linux Unified Key Setup). Son avantage principal étant de pouvoir utiliser dm-crypt (Device Mapper) avec une étonnante simplicité.
Aucun logiciel à installer et de plus, à chaque fois que la clé USB sera insérée, gnome-mount ouvrira une petite fenêtre pour nous demander le mot de passe. Il va de soit que si vous avez besoin de partager vos données encryptées entre Linux et Windows, il vous faudra plutôt envisager des solutions logicielles (truecrypt, ScramDisk)

Installation

Nous avions créé une partition pour Damn Small Linux dans l'article précédant, nous allons créer maintenant la deuxième qui occupera la totalité de l'espace libre sur la clé. Nous assumerons que la clé est /dev/sdX et la partition à créer /dev/sdX2.
Insérez la clé USB et créez la partition avec fdisk :

   # fdisk /dev/sdX

   - Tapez n pour créer une nouvelle partition
   - Tapez p pour qu'elle soit primaire
   - Tapez 2 pour que ce soit la deuxième partition
   - Appuyez sur Entrée pour la valeur par défaut (1er cylindre)
   - Appuyez sur Entrée pour la valeur par défaut (dernier cylindre)
   - Tapez w pour enregistrer ces modifications

Installez cryptsetup :

   # apt-get install cryptsetup

Vérifiez que vous avez bien les modules aes et sha256 :

   # cat /proc/crypto

   ...
   name         : sha256
   driver       : sha256-generic
   module       : sha256
   ...
   name         : aes
   driver       : aes-generic
   module       : aes
   ...

S'ils sont absents de la liste, chargez-les :

   # modprobe aes
   # modprobe sha256

Il suffit d'encrypter la partition avec cryptsetup qui vous demandera une confirmation avant de continuer (à taper en majuscule), puis vous devrez entrer à deux reprises le mot de passe que vous souhaitez utiliser pour protéger vos données.
ATTENTION : ne vous trompez pas de partition, car en cas d'erreur toutes les données seraient perdues !

   # cryptsetup luksFormat --cipher "aes-cbc-essiv:sha256" --key-size 256 /dev/sdX2

Si jamais une erreur concernant dm-crypt se produisait, utilisez la commande # modprobe dm_crypt puis relancez la ligne de commande ci-dessus.

Ouvrez le volume en lui donnant par exemple le nom provisoire de 'usbmapper'. Votre mot de passe vous sera demandé :

   # cryptsetup luksOpen /dev/sdX2 usbmapper

Si tout c'est bien passé vous pouver voir votre volume dans /dev/mapper :

   # ls /dev/mapper

   control  usbmapper

Il ne reste plus qu'à formatter le volume :

   # mkfs.reiserfs /dev/mapper/usbmapper

Fermez le volume :

   # cryptsetup luksClose usbmapper
Retirez la clé USB (pensez à démonter toute autre partition qui pourrait être montée), puis réinsérez-la. Normalement vous devriez avoir la fenêtre de gnome-mount vous demandant votre mot de passe, puis votre partition sera automatiquement décryptée et montée, prête à l'emploi :

Bien que dans le cas d'une clé USB toute la procédure soit automatique avec gnome-mount, voici tout de même quelques commandes qui peuvent toujours être utiles :

Connaitre le nom du volume :

   # ls /dev/mapper
   control  luks_crypto

Avoir des informations sur ce volume :

   # cryptsetup status luks_crypto

Démonter puis fermer le volume :

  # umount /point_de_montage

  # cryptsetup luksClose luks_crypto

Ouvrir un volume et le monter :

   # cryptsetup luksOpen /dev/sdXX luks_crypto

   # mount /dev/mapper/luks_crypto /point_de_montage