From bcd948482a78ea44b4b68aeb0c031c916c2aafd9 Mon Sep 17 00:00:00 2001 From: gcolpart Date: Fri, 23 Jun 2017 01:12:52 +0200 Subject: [PATCH] relecture --- HowtoChiffrementData.md | 78 ++++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/HowtoChiffrementData.md b/HowtoChiffrementData.md index e61f4269..33fc6973 100644 --- a/HowtoChiffrementData.md +++ b/HowtoChiffrementData.md @@ -1,18 +1,32 @@ -**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** +--- +categories: securité +title: Howto Chiffrement avec LUKS +... -# Howto Chiffrement des données/partitions +* Documentation : -Inspiré de -## Avec LUKS +## Installation ~~~ -# aptitude install cryptsetup +# apt install cryptsetup + +$ /usr/sbin/cryptsetup --version +cryptsetup 1.7.3 + +$ /sbin/modinfo dm_crypt +filename: /lib/modules/4.9.0-3-amd64/kernel/drivers/md/dm-crypt.ko +license: GPL +description: device-mapper target for transparent encryption / decryption +author: Jana Saout +depends: dm-mod +intree: Y +vermagic: 4.9.0-3-amd64 SMP mod_unload modversions ~~~ -### Creation +## Création -En renseignant un mot de passe manuellement : +On peut créer un volume chiffré LUKS en renseignant une passphrase ainsi : ~~~ # cryptsetup --verbose --verify-passphrase luksFormat /dev/md7 @@ -32,14 +46,14 @@ Command successful. # mkfs.ext3 /dev/mapper/crypt_md7 ~~~ -En utilisant un fichier comme clef de chiffrement : +On peut aussi utiliser un fichier comme clé de chiffrement : ~~~ -# dd if=/dev/random of=/root/.keyfile bs=1 count=256 -# cryptsetup --verbose --key-size=256 luksFormat /dev/md7 /root/.keyfile +# dd if=/dev/random of=/root/foo.key bs=1 count=256 +# cryptsetup --verbose --key-size=256 luksFormat /dev/md7 foo.key ~~~ -### Utilisation +## Utilisation Voir si une partition est de type LUKS : @@ -48,35 +62,36 @@ Voir si une partition est de type LUKS : # cryptsetup luksDump /dev/hda7 ~~~ -Ouvrir une partition chiffrée : +Déchiffrer une partition LUKS : ~~~ # cryptsetup luksOpen /dev/mapper/vol1-crypto_test crypto_test # cryptsetup luksOpen /dev/hda7 hda7_crypt ~~~ - -Ouvrir une partition chiffrée avec un fichier de clef : +Si la partition LUKS est protégée par un fichier : ~~~ # cryptsetup luksOpen --key-file /root/.keyfile /dev/md7 supersecretdata ~~~ -Info sur la partition chiffrée : +Informations sur la partition chiffrée : ~~~ # cryptsetup status crypto_test ~~~ -Fermer une partition chiffrée : +Stopper le déchiffrement d'une partition LUKS : ~~~ # cryptsetup luksClose crypto_test ~~~ -### Gestion des mots de passe +## Gestion des passphrases -Ajouter un mot de passe : +LUKS permet d'avoir plusieurs passphrases pour un même volume chiffré. + +Pour ajouter une passphrase : ~~~ # cryptsetup luksAddKey /dev/hda7 @@ -87,47 +102,47 @@ Verify passphrase: Command successful. ~~~ -Rem : -Sur des vieilles versions, il fallait avoir la partition non dechiffrée : +> *Note* : sur d'anciennes versions de *cryptsetup*, il fallait avoir la partition non dechiffrée pour pouvoir ajouter une passphrase : -Pour supprimer un mot de passe, on regarde le n° du mot de passe avec : +Pour supprimer une passphrase, on note son numéro avec : ~~~ # cryptsetup luksDump /dev/hda7 ~~~ -Puis on le supprime avec la commande : +Puis on la supprime avec la commande : ~~~ # cryptsetup luksKillSlot /dev/hda7 ~~~ -Si l'entête du conteneur LUKS est corrompu, ceci rend la partition inutilisable +## Sauvegarde -Procédure pour Sauvegarde de l'entête : -Le fichier contenant la sauvegarde de l’entête est nommé ici backup-entete +Si l'entête du conteneur LUKS est corrompu, ceci rend la partition inutilisable. + +On peut sauvegarde l'entête d'un conteneur LUKS ainsi : ~~~ -# cryptsetup luksHeaderBackup --header-backup-file backup-entete /dev/hda7 +# cryptsetup luksHeaderBackup --header-backup-file backup.txt /dev/hda7 ~~~ Pour Restaurer l'entête : ~~~ -# cryptsetup luksHeaderRestore --header-backup-file backup-entete /dev/hda7 +# cryptsetup luksHeaderRestore --header-backup-file backup.txt /dev/hda7 ~~~ ## FAQ -Si vous obtnez un message de ce type : +Si vous obtenez un message de ce type : ~~~ Command failed: Failed to setup dm-crypt key mapping. Check kernel for support for the aes-cbc-essiv:sha256 cipher spec and verify that /dev/md1 contains at least 133 sectors ~~~ -La solution est : +Cela signifie probablement que le module noyau *Device Mapper* n'est pas chargé : ~~~ # modprobe dm-mod @@ -141,7 +156,6 @@ Pour utiliser un algorithme de chiffrement spécifique, il faut le préciser au # cryptsetup --verbose --cipher=aes-cbc-essiv:sha256 --verify-passphrase luksFormat /dev/md7 ~~~ -Le chiffrement aes-cbc-essiv est le chiffrement par défaut de cryptsetup pour les noyaux supérieurs au 2.6.10, car il corrige une vulnérabilité potentielle du chiffrement aes-cbc-plain. -Une autre méthode de chiffrement utilisée avec l'algorithme AES (Rijndael) est le mode XTS, qui est réputé plus résistants aux attaques par watermarking, mais nécessite un module spécifique (judicieusement nommé xts.ko) et une clef d'initialisation du double de la taille de la clef finale (voir +Le chiffrement **aes-cbc-essiv** est le chiffrement par défaut de _cryptsetup_ pour les noyaux supérieurs au 2.6.10 car il corrige une vulnérabilité potentielle du chiffrement _aes-cbc-plain_. Une autre méthode de chiffrement utilisée avec l'algorithme AES (Rijndael) est le mode XTS, qui est réputé plus résistant aux attaques par watermarking, mais nécessite un module spécifique (judicieusement nommé _xts_) et une clef d'initialisation du double de la taille de la clef finale (voir -Les autres algorithmes dignes d’intérêt sont twofish et serpent, deux compétiteurs de l'AES face à Rijndael. +Les autres algorithmes dignes d’intérêt sont _twofish_ et _serpent_, deux compétiteurs de l'AES face à Rijndael.