Bruce Schneier knows Alice and Bob's shared secret
Par hr le lundi 13 octobre 2008, 14:50 - système - Lien permanent
Comment faire lorsqu'on souhaite se constituer un petit espace très personnel sur une machine linux. Que faire quand on souhaite que cet espace soit conservé à l'abris des yeux indiscrets. Je vous propose une petite recette simple et efficace. Il suffit d'utiliser des ingrédients que vous trouverez dans votre cuisine !!
L'environnement système est une debian etch installée en 64bits sur une dedibox. Je vais utiliser le chiffrement de bloc avec LUKS utilisant dm-crypt. Nous ne chiffrerons pas la partition racine du système mais bien une partition de données.
Il faut tout d'abord vérifier qu'on a les outils nécessaires au chiffrement de partition.
# apt-get install cryptsetup dmsetup hashalot [...]
Maintenant que les outils de base sont installés, on vérifie leur compatibilité avec l'utilisation qu'on souhaite en faire.
# cryptsetup --help cryptsetup-luks 1.0.5 [...] # dmsetup targets zero v1.0.0 mirror v1.0.20 snapshot-origin v1.6.0 snapshot v1.6.0 crypt v1.5.0 striped v1.1.0 linear v1.0.2 error v1.0.1 # cat /proc/crypto | grep name name : aes name : sha256 name : sha224 name : sha1 name : md5
la commande cryptsetup installée supporte bien LUKS et le noyau est capable de supporter le chiffrement.
Pour les architectures supportant le 64bit.
# modprobe aes-x86_64 # cat /proc/crypto name : aes driver : aes-asm module : aes_x86_64 priority : 200 refcnt : 1 type : cipher blocksize : 16 min keysize : 16 max keysize : 32 [...]
Le module peut-être éventuellement ajouté au fichier /etc/modules.
Je dois maintenant créer la partition qui va être chiffrée et la déclarer au système grâce à partprobe.
# cfdisk /dev/sda [...] # apt-get install parted [...] # partprobe /dev/sda
Pour chiffrer une partition avec LUKS, il faut la "formater" avec cryptsetup et ensuite la déclarer au système "device mapper". Il est conseillé d'utiliser une phrase de mot de passe complexe.
# cryptsetup luksFormat /dev/sda8 WARNING! ======== This will overwrite data on /dev/sda8 irrevocably. Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: Verify passphrase: Command successful. # cryptsetup luksOpen /dev/sda8 data Enter LUKS passphrase: key slot 0 unlocked. Command successful. # ls /dev/mapper/ control data
C'est gagné, la partition est maintenant accessible grâce au chemin /dev/mapper/data.
Il faut formater la partition, ici j'utilise ext3.
# mkfs.ext3 -m 0 /dev/mapper/data
La partition peut maintenant être utilisée par le système.
Pour assurer le montage de la partition au démarrage, il faut la déclarer dans le fichier /etc/crypttab. Cette déclaration permet de faire l'ouverture LUKS et la déclaration à "dev mapper" en une opération. Ensuite /etc/fstab pourra prendre le relais.
# cat /etc/crypttab # <target name> <source device> <key file> <options> data /dev/sda8 none luks,timeout=1
Ps: Le titre vient des "Bruce Schneier facts".
Ps2: Le formatage de la partition peut également se faire avec un version plus longue de la commande cryptsetup :
# cryptsetup --verify-passphrase --verbose --hash=sha256 --cipher=aes-cbc-essiv:sha256 --key-size=256 luksFormat /dev/sda8 [...]
Commentaires
et bien moi je sis fan de tes articles, quoi qu'on, puisse en dire !