Chiffrer ses données personnelles avec Luks

Luks est un système de fichier dont il indexe un block de données dont le contenu est chiffré. Ci-dessous on utilisera l'outil cryptsetup vu qu'il est bien supporté et de mon point de vue, la force de cette technologie réside sur deux points :

Ainsi, en fonction de la taille du block, il est aisé de déplacer et partager une arborescence de dossiers par exemple.


Installation

apt install cryptsetup

Création du block (container)

fallocate -l 100M container.img

Création de la clé privé et du formatage

openssl req -new -newkey rsa:4096 -sha512 -nodes -out secure.csr -keyout secure.key -subj "/C=FR/ST=Example/L=Example/O=Example/CN=example.org"

Notons que l'on peut faire pareille si l'on créée juste un fichier du type :

echo "ma clé privé" >> secure.key

Si l'on utilise la commande d'openssl, on pourra valider l'authenticité de la clé privé.

Formatons le block :

sudo cryptsetup luksFormat -d secure.key container.img

Sinon, il n'est pas obligatoire d'utiliser une clé mais une passphrase :

sudo cryptsetup -y luksFormat container.img

Dévérouiller le block

sudo cryptsetup luksOpen container.img -d secure.key container.open

Le dernier paramètre sera présent dans le dossier /dev/mapper/

Si l'on a choisie de le faire avec la passphrase :

sudo cryptsetup luksOpen container.img container.open

Une commande à faire qu'une seule fois pour lui donner un système de fichier. Ce qui va lui permettre de retrouver l'emplacement des fichiers :

sudo mkfs.ext4 /dev/mapper/container.open

Il reste plus qu'a monter le périphérique :

mount /dev/mapper/container.open /mnt

Vérouiller le block

On le démonte :

umount /mnt

On sécurise :

cryptsetup luksClose -d secure.key container.open

Si l'on utilise une passphrase :

cryptsetup luksClose container.open

Aller plus loin

Supprimer une passphrase/clé :

# cryptsetup luksDump /dev/xvdc

Ajouter une clé/passphrase :

# cryptsetup luksAddKey /dev/xvdc