Développeur FullStack & Devops

Notes et mémos techniques

Cryptsetup pour crypter une clé USB sous Linux

Cryptsetup fournit une interface pour configurer le chiffrement sur des périphériques de bloc (comme des partitions /home ou d’espace d’échange (swap)) en utilisant dm-crypt, un sous-système transparent de chiffrement de disques dans le noyau Linux.
Il permet une prise en charge de LUKS (« Linux Unified Key Setup »), le standard associé au noyau Linux pour le chiffrement de disque.

packages.debian.org

Identifier le device de sa clé USB

Il faut tout d’abord identifier la clé USB qui nous intéresse, avant d’éventuellement la partitionner pour enfin l’encrypter et la formater.
Voici plusieurs 3 méthodes :

lsblk -fs                           # list block devices chercher /dev/sd? pour les clé USB
sudo cat /var/log/messages | tail   # fonctionne immédiatement après insertion de la clé USB
sudo fdisk /dev/sda1                # puis tapper p (infos de partitions) puis partitionner la clé

Crypter la clé USB

On va utiliser pour le cryptage/décryptage, un outil dénommé cryptsetup avec LUKS (Linux Unified Key Setup).

Pré-requis

Il faut tout d’abord disposer des modules noyaux suivants dm-crypt sha256 aes

sudo modprobe dm-crypt sha256 aes         # chargement des modules nécessaires
sudo lsmod                                # vérifier qu'ils sont bien chargés
sudo apt install cryptsetup

Crypter le device

En considérant ci-dessous la clé USB est identifiée en tant que /dev/sda1 nous allons encrypter la partition avec la commande cryptsetup luksFormat.
Attention bien identifier votre device au risque de perdre le contenu de cette partition

Cet opération va nous demander une passphrase (ou mot de passe) qu’il ne faudra pas perdre ! et il est possible de

sudo cryptsetup -y luksFormat /dev/sdaXX -c aes -s 256 -h sha256 # va nous demander 2 fois une passphrase secrète qui nous servira de clé privée

Monter/démonter la partition cryptée

Le montage et démontage de la partition cryptée s’effectue au moyen des commandes cryptsetup luksOpen et cryptsetup luksClose. Une fois décryptée la partition devra être montée classiquement via un mount, il faut donc garder à l’esprit qu’il faut effectuer 2 sortes de montages/démontages.

Formatage et 1er montage

sudo cryptsetup luksOpen /dev/sda1 secure # va créer /dev/mapper/secure
sudo mkfs -t ext4 -m 1 /dev/mapper/secure # formattage en ext4
sudo mkdir /media/macleusb
sudo mount /dev/mapper/secure /media/macleusb
sudo chown xxx:xxx /media/macleusb        # si la clé reste connectée

à partir de là nous avons la clé cryptée montée.

Montage suivants

sudo cryptsetup luksOpen /dev/sda1 secure
sudo mount /dev/mapper/secure /media/macleusb

Démontage

avant de retirer la clé USB ne pas oublier de:

sudo umount /media/macleusb           # démontage du volume déchiffré
sudo cryptsetup luksClose secure # fermeture du volume chiffré

lsof /media/xxx                  # si le umount échoue, pour plus d'infos

Liens

bash
linux
securite
cryptage
usb
securite
rédigé le 01/03/20 par Behrouze
A proposCheat SheetsOutilsVidéos