Crypter une partition et l'ouvrir sans crainte d'un keylogger
Nous allons utiliser dm-crypt+LUKS qui se basent sur les outils de cryptographie présents normalement dans le noyau linux. On pourra faire le reproche à cette solution de ne pas permettre mettre en place un déni plausible (i.e. ouvrir une partition avec des données à l'apparence normale sous la contrainte, TrueCrypt le permet).
Création de la partition
La partition à crypter se nomme : /dev/sdaX Choisissons le chiffrement aes-xts-plain avec un taille de clé de 512 bits :
cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/sdaX
Le système demande une 'passphrase' que l'on choisira bien sûr longue, avec de nombreux caractères accentués, des chiffres, des majuscules, des signes de ponctuation... Attention à ne pas perdre la 'passphrase' car sans elle, point de salut !
Puis accédons au périphérique :
cryptsetup luksOpen /dev/sdaX zonecryptee
et formatons l'espace comme souhaité puis montons le :
mkfs.ext3 /dev/mapper/zonecryptee mount -t ext3 /dev/mapper/zonecryptee /mnt/dossiercrypte/
Pour fermer la partition cryptée :
umount /mnt/dossiercrypte/ cryptsetup luksClose zonecryptee
Pour obtenir des informations sur la partition crypée, on fera :
cryptsetup luksDump /dev/sdaX
Ajouter une clé pour accéder à la partition
Grâce à LUKS, on peut saisir plusieurs clés (jusqu'à 8) pour accéder à un même espace crypé. Commençons par générer une longe clé aléatoire :
dd if=/dev/urandom of=keyfile bs=1024 count=4
et ajoutons cette clé à l'espace crypté :
cryptsetup luksAddKey /dev/sdaX keyfile
On pourra désormais ouvrir l'espace, sans saisir la 'passphrase' secrète et sans crainte d'un keylogger ou d'une caméra qui filmerait nos mains sur le clavier, grâce à la commande :
cryptsetup --key-file=keyfile luksOpen /dev/sdaX zonecryptee
Après ouverture, la clé peut être retirée du système (elle n'est nécessaire qu'à l'ouverture) afin de limiter son exposition aux regards. Bien sûr, il ne faut pas perdre le fichier 'keyfile' et le conserver en sûreté ! S'il était compromis, on pourrait révoquer la clé avec la commande :
cryptsetup luksRemoveKey /dev/sdaX
Refermer la partition
Là rien ne change :
umount /mnt/dossiercrypte/ cryptsetup luksClose zonecryptee
Protégez-vous bien !