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 :

  • Possible de chiffrer ses données avec sa clé privé.
  • Les données sont stocker sous forme de block.

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