Pourquoi donc ?

La plupart des gens possèdent au moins une - sinon des dizaines - de clefs USB. Ces dernières servent à une seule chose : le stockage !

Mais ce que l'on stocke peut aller du fichier assez impersonnel - comme la documentation d'un appareil quelconque - à des choses extrêmement sensibles (mots de passe, comptes bancaires, photos, etc...)

Ces Clefs ont vu leur capacité croître au fur et à mesure que leur taille diminuer... Ce qui à pour fâcheuse conséquence - tout du moins pour quelqu'un un peu à l'ouest tête en l'air - de les égarer assez facilement.

Ayant déjà fait cette expérience - heureusement avec rien de critique, seulement des dessins animés pour les chiards les enfants - je me suis dit qu'il fallait faire quelque chose, au cas ou...

LUKS aide-moi !

LUKS pour Linux Unified Key Setup, a été créé par Clemens Fruhwirth et il s'agit du standard associé au noyau Linux pour le chiffrement.

L'avantage de ce standard, c'est qu'il permet le chiffrement de l'intégralité d'un disque mais surtout, que celui-ci peut être déchiffré par d'autres applications et/ou système d'exploitation...

Du coup, cela permet pas mal de petite choses que nous verrons plus tard...

Partitionnement de la clef

Si, comme moi, vous voulez que votre clef puisse passer d'un système GNU/Linux à un système Microsoft Windows, il y a un impératif à prendre en compte : ne créer qu'une seule partition sur la clef.

Toutes les opérations suivantes seront réalisées sur un système GNU/Linux Debian 8.X et 9.0

Avant toute chose la petite mise à jour de rigueur :

apt update && apt full-upgrade  

Puis on installe le paquet cryptsetup si il n'est pas présent sur le système :

apt install cryptsetup  

Afin d'éviter quelques fâcheux désagréments, je ne serais vous conseiller de brancher seulement la clef que l'on veut chiffrer !

Une fois la cles branchée, il faut la démonter pour pouvoir réaliser les opérations de partitionnement :

[~]$ su -
[~]# umount /dev/sdb1 # A ajuster

N.B : la clef ne saura pas forcement montée sous sdb1 en fonction du nombre de disques branchés !

Une fois démontée, nous allons effacer la table de partition et la recréer :

~# fdisk /dev/scb
Command (m for help): o # Création d'une nouvelle table de type DOS  
Command (m for help): w # Écriture de la table sur le disque et quitte  

Création de la nouvelle partition, les valeurs par défaut étant les bonnes il suffit de presser la touche Entrée :

~# fdisk /dev/sdb
Command (m for help): n  
Select (default p):  
Partition number (1-4, default 1): Entrée  
First sector (2048-1953525167, default 2048): Entrée  
Last sector, +sectors or +size{K,M,G} (2048-17179869184, default 17179869184): Entrée  
Command (m for help): w  

Chiffrement de la partition

Nous allons chiffrer la nouvelle partition à l'aide de la commande suivante :

cryptsetup luksFormat /dev/sdb1

Il faut confirmer la commande en saisissant YES en majuscule puis renseigner une phrase de passe :

WARNING!  
========
This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES  
Enter LUKS passphrase: Masuperpassephrassedefoufou  
Verify passphrase: Masuperpassephrassedefoufou  

Vérification et formatage

Utiliser de nouveau la commande cryptsetup avec l'option open (ou luksOpen dans l'ancienne syntaxe) pour déchiffrer la clef :

~# cryptsetup open /dev/sdb1 NomDeMappage

N.B : Le paramètre NomDeMappage permet de donner un point de montage pour la clef

Enter passphrase for /dev/sdb1: Masuperpassephrassedefoufou  

Si tout c'est bien déroulé, votre clef est déchiffrée est doit se trouver à l'emplacement /dev/mapper/NomDeMappage

Procédons maintenant au formatage de celle-ci. Il faut choisir le format qui correspond le mieux aux besoins. Pour rappel, si vous avez l'intention d'utiliser le périphérique à la fois sur un système GNU/Linux et Windows, il faut opter pour le système de fichier NTFS.

Si l'utilisation aura lieu uniquement sur des machines GNU/Linux, EXT4 sera un bon choix.

Afin de pouvoir utiliser le système de fichier NTFS, il faut vérifier la présence du paquet ntfs-3g.

~# apt install ntfs-3g

Pour formater la partition en EXT4 :

~# mkfs.ext4 /dev/mapper/NomDeMappage -L NomDuLabelChoisi

Pour formater la partition en NTFS :

~# mkfs.ntfs /dev/mapper/NomDeMappage -L NomDuLabelChoisi

L'option -L permet de configurer le nom de l’étiquette (label), du système de fichier avec un maximum de 16 octets (cf. man mke2fs). Personnellement j'utilise la marque de mes clefs pour les différencier...
Par exemple : ~# mkfs.ntfs /dev/mapper/lukskey -L SURVIVOR.

Une fois le formatage terminé, on ferme la partition chiffrée à l'aide de l'option close (ou luksClose dans l'ancienne syntaxe) :

~# cryptsetup close NomDeMappage

Tests !

Sous un système GNU/Linux, le montage de la clef devrait être détectée par le gestionnaire de fichier dans la majorité des cas.

Par exemple, sous ma Debian Stretch, le gestionnaire de fichier Nemo de l’environnement Cinnamon me demande de déverrouiller la clef à l'insertion de celle-ci.

Sous un système Microsoft Windows - il s'agit de ma machine de travail (pas taper) - il faut installer le petit utilitaire LibreCrypt.

N.B : Je n'ai testé l'utilisation de ce programme que sous une version Windows Seven Entreprise, je ne sais donc pas si cela fonctionne correctement pour d'autres versions...

La première chose que fait le système lorsque on branche la clef, c'est de râler un bon coup...

Bien sûr, on annule tout simplement le message et on lance LibreCrypt.

On indique à l'utilitaire d'ouvrir une partition via le raccourci ctrl + p et nous sélectionnons l'onglet contenant notre clef.

Une boîte de dialogue nous demande alors notre phrase de passe, ainsi que quelques options supplémentaires...

Et si la phrase est acceptée, le volume se monte comme un grand

Mot de la fin

Le chiffrement de mes différentes clefs, me permet - entre autre chose - de transporter une de mes bases de données de Keepass 2 ainsi qu'une version portable de ce dernier afin de pouvoir accéder à mes mots et/ou phrases de passe partout...