Ceci est une ancienne révision du document !



Partition chiffrée avec Cryptsetup

Afin de protéger au mieux vos données personnelles, il peut être nécessaire de chiffrer vos partitions utilisateur. En effet, si via le système il est impossible d’accéder aux fichiers qui ne vous appartiennent pas, un simple passage sur un livecd permet d’accéder à n’importe quel fichier de votre système. Le chiffrement de partition permet d’éviter ça. Ubuntu intègre en standard les outils nécessaires à une gestion simple de votre sécurité.

Installer cryptsetup

ou

Pour l'installation, lancez Synaptic. Recherchez «cryptsetup», cochez la case correspondante et validez le tout (bouton « Appliquer ») pour l'installer.

Si nécessaire charger les modules « aes-i586 », « dm_mod » et « dm_crypt ». Au besoin, les ajouter à la liste de /etc/modules (cf. infra Référence).

Chiffrer une partition

Créer un conteneur pour vos données : une partition ou un fichier contenant votre système de fichier.

Les données sont chiffrées à la volée, tout est transparent pour l'utilisateur, mais cependant il y a un coût machine pour le chiffrement qui est négligeable, tant que la fonction première de votre machine n'est pas serveur de fichiers.

Initialiser la partition

Exemple sur une partition libre /dev/hda7 :

 sudo cryptsetup luksFormat -c aes -h sha256 /dev/hda7 

ou avec un cryptage plus fort :

 sudo cryptsetup luksFormat -c aes-xts-plain -s 512 /dev/hda7 

On invoque cette commande pour formater la partition au type LUKS (initialiser la partition LUKS et définir la clé initiale). Le chiffrage sera de type AES avec un algorithme de hachage SHA256. Vous allez taper votre phrase de chiffrage qui va permettre de créer un conteneur standard chiffré à l'aide de votre phrase.

Le conteneur chiffré de manière standard va stocker la clé de chiffrage maître qui servira à ouvrir votre volume sécurisé. Il est possible d'ajouter jusqu'à 8 clefs supplémentaires dans des "slots", qui déverrouillent l'accès à la clef maître. Vous pouvez ainsi avec cette méthode avoir plusieurs utilisateurs qui vont chacun ouvrir le conteneur chiffré avec leur clef, et il vous sera possible de révoquer les clés éventuellement compromises.

Pour ajouter une clé d'accès au conteneur chiffré précédent :

sudo cryptsetup luksAddKey /dev/hda7

Pour voir l'état du conteneur chiffré et les "slots" utilisés :

sudo cryptsetup luksDump /dev/hda7

Pour révoquer une clé contenue dans un "slot" :

sudo cryptsetup luksKillSlot /dev/hda7 <numero_de_slot>

Montage manuel et formatage

Ouverture et formatage en ext3 de la partition chiffrée. L'appellation du volume est ici home.

 sudo cryptsetup luksOpen /dev/hda7 home
 sudo mkfs.ext3 /dev/mapper/home 

puis montage de la partition :

 sudo mount -t ext3 /dev/mapper/home /mnt/ 

puis démontage et fermeture du volume chiffré :

 sudo umount /mnt
 sudo cryptsetup luksClose home 

Aparté sur la transformation de fichiers en volumes

Pour générer un fichier de nom big de 10 Mo :

dd if=/dev/urandom bs=1M count=10 of=big

Pour éviter de dévoiler des informations, cette commande remplit le fichier avec du contenu aléatoire (/dev/urandom/). Cette opération est horriblement lente (quelque MiB/s). Utilisez Truecrypt pour générer un volume dans un fichier, la génération du fichier est beaucoup plus rapide et continuez ensuite normalement ce tutoriel.

Pour transformer le fichier en volume (sur Dapper, remplacer /dev/loop0 par /dev/loop/0) :

sudo losetup /dev/loop0  big

Pour déconnecter le volume du fichier (sur Dapper, remplacer /dev/loop0 par /dev/loop/0) :

sudo losetup -d /dev/loop0

Ces informations vous permettront d'utiliser dm-crypt sur des systèmes de fichiers embarqués dans des fichiers.

Montage automatique

Depuis Dapper, Ubuntu intègre la gestion des volumes chiffrée LUKS en standard, ce qui permet de gérer de manière automatique le montage et le démontage de vos volumes (partitions) sécurisées. La configuration des paramètres du volume chiffré est dans le fichier /etc/crypttab et le montage du volume est de manière classique dans /etc/fstab.

Un exemple de chiffrement du dossier /home:

Modifier le fichier /etc/crypttab :

 # <target name> <source device>         <key file>      <options>
home /dev/hda7  none    luks 

Modifier /etc/fstab pour le volume qui nous intéresse :

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/home        /home   ext3    defaults        0       1 

La clé d'ouverture du volume chiffré vous sera demandée au démarrage de la machine si votre partition est montée automatiquement (voir fstab).

Attention, si une ligne est déjà présente pour le montage de la partition qui héberge le système de fichier chiffré (/dev/hda7 dans l'exemple ci-dessus), il faut la commenter (en ajoutant un # comme premier caractère) pour éviter un message d'erreur au démarrage.

Ouverture automatique du conteneur chiffré au démarrage à l'aide d'un support amovible

http://doc.ubuntu-fr.org/tutoriel/securiser_ubuntu_avec_peripherique_externe

On peut grâce à LUKS monter automatiquement les partitions chiffrées au démarrage sans mot de passe à taper. Ceci est possible par l'intermédiaire d'une clé USB ou d'une carte SD ou MS : http://web.archive.org/web/20100110234521/http://petaramesh.org/post/2007/11/29/Une-cle-de-contact-pour-votre-portable-chiffre FIXME

Suivre la procédure indiquée plus haut, mais modifier le fichier /etc/crypttab :

# <target name> <source device> <key file>          <options>
  home          /dev/hda7       /dev/sda:/keyfile:1 luks,keyscript=/lib/cryptsetup/scripts/passdev
  home          /dev/hda7       none                luks

De cette manière, le système va tenter de déchiffrer la partition /dev/hda7 au moyen du fichier clé "keyfile" se trouvant sur le périphérique /dev/sda (en FAT par exemple). Le "1" représente le temps d'attente avant de demander le mot de passe si le fichier clé n'est pas trouvé.

ou

Pour les versions plus récentes d'Ubuntu (10.04 et plus) : http://wejn.org/how-to-make-passwordless-cryptsetup.html#28bd9ec7b2f9ea74ea0499586bde727c FIXME

Ouverture et montage automatique de la partition chiffrée à l'ouverture de session, sans support amovible ni pass-phrase

Les techniques exposées plus haut offrent un haut niveau de sécurité pour peu que la pass-phrase de LUKS ait été bien choisie. Cependant, elles sont également assez lourdes, dans la mesure où elles nécessitent que l'utilisateur rentre à chaque démarrage sa pass-phrase (ou qu'il porte sur lui en permanence le support amovible permettant l'ouverture du conteneur chiffré). La méthode proposée ici va permettre d'ouvrir automatiquement le conteneur chiffré et de monter la partition chiffrée au démarrage de la session, sans que la pass-phrase ne soit saisie. La partition chiffrée n'est donc plus protégée que par le mot de passe d'ouverture de session.

La pass-phrase de la partition cryptée et le mot de passe associé au compte doivent être les mêmes (PAM ne fait que "passer" le mot de passe de session pour le montage de la partition), cela a donc des implications lorsque le mot de passe de l'utilisateur doit être changé : il faut au préalable rajouter une pass-phrase (identique au nouveau mot de passe) dans un nouveau "slot" et une fois que cela est validé, supprimer l'ancienne passphrase.

Le niveau de sécurité est donc plus bas, mais le chiffrement devient parfaitement transparent pour l'utilisateur. Cette solution convient donc bien si vous souhaitez simplement protéger vos données personnelles en cas de vol de votre machine par un quidam quelconque, mais peut-être pas si vous avez des documents vraiment confidentiels à protéger.

Nous allons utiliser PAM, utilitaire habituellement utilisé pour le montage automatique de partitions sur des postes multi-utilisateurs.

La situation est la suivante : la partition /dev/sda2 est notre partition cryptée. Elle doit être montée automatiquement au point /mnt/cryptodisk. Les opérations suivantes ont donc été effectuées au préalable :

#Création du containeur chiffré. Attention, la partition ne doit pas être montée. De plus, toute donnée présente sur cette partition sera perdue :
sudo cryptsetup luksFormat /dev/sda2

#Ouverture du containeur nouvellement créé, à qui on donne le nom de "cryptodisk":
sudo cryptsetup luksOpen /dev/sda2 cryptodisk

#Création du système de fichier ext3 sur cette partition chiffrée :
sudo mkfs.ext3 /dev/mapper/cryptodisk

#Création du point de montage :
sudo mkdir /mnt/cryptodisk

#Définition du point de montage: Dans le fichier /etc/fstab, notez l'option
#"noauto" qui permet de faire apparaître la partition dans le fichier fstab
#sans pour autant la monter automatiquement au démarrage
/dev/mapper/cryptodisk /mnt/cryptodisk           ext3    defaults,noauto        0       0

#Et on s'arrête là. Ne RIEN ajouter dans le fichier /etc/cryptab

Notre partition chiffrée est à présent créée, formatée, et un point de montage a été défini. Il ne reste plus qu'à indiquer à PAM de la monter automatiquement à chaque ouverture de session (sans demande de la pass-phrase donc).

#Installation de la librairie :
sudo apt-get install libpam-mount

Indication à PAM de la partition à monter : Editer le fichier /etc/security/pam_mount.conf.xml. Au début du fichier, après la première balise <pam-mount>, ajouter la ligne suivante :

<volume user="*" mountpoint="/mnt/cryptodisk" path="/dev/sda2" fstype="crypt" />

La partition /dev/sda2 de type "crypt" (partition cryptée) sera montée à l'ouverture de session sans demande de la phrase-pass sur le point de montage /mnt/cryptodisk, et ce quel que soit l'utilisateur qui se connecte (et dont le mot de passe de session correspond à une pass-phrase de la partition).

Et pour finir, il suffit d'indiquer à gdm (dans le cas de Gnome) ou kdm (pour KDE) d'appeler PAM. Ouvrir ainsi dans le cas de Gnome le fichier /etc/pam.d/gdm, et ajouter à la fin de ce fichier la ligne

@include common-pammount

Remarque : ceci n'est plus utile depuis Jaunty.

Et voilà ! Il ne vous reste plus qu'à redémarrer votre machine, et à l'ouverture de session la partition chiffrée sera ouverte et montée automatiquement, sans que la pass-phrase ne vous soit demandée. Bien entendu, si vous avez au préalable désactivé l'authentification pour l'ouverture de la session, cela ne sert pas à grand chose d'avoir une partition chiffrée (car alors l'authentification étant désactivée, la session est ouverte automatiquement à chaque démarrage et la partition chiffrée est également ouverte et montée automatiquement et sans pass-phrase à chaque démarrage).

Remarque: méthode testée et approuvée sous Ubuntu 10.04

Réglage de la priorité d'exécution

Par défaut le niveau de priorité du démon de chiffrage est trop élevé et peut induire des ralentissements gênants. Vous pouvez modifier cette priorité à l'aide de la commande renice :

 sudo renice 10 `pgrep kcryptd` 

Pour exécuter cette commande à chaque démarrage, il faut la placer dans le fichier /etc/rc.local avant la ligne exit 0 sans sudo car c'est le système avec les droits administrateur qui l'exécutera.

#!/bin/sh -e
#
renice 10 `pgrep kcryptd`
exit 0

Chiffrer votre systeme avec le swap aleatoirement

Ici ont parle de chiffrement manuel. Donc, avant de chifffrer le swap il vous faut le creer avec Gparted, en plus de votre partition systeme, celle qui va acceullir GRUB.

Pour chiffrer le systeme suivez les instructions un peu plus haut.

N.B. Qu'un peu plus haut sur cette page vous trouverez les informations qui vous servira a chiffrer votre partition systeme. Celle du boot ne pouvant pas l'etre. Alors, il ne faut pas la chiffrer. Sinon, le systeme ne poura pas demarrer.
Si vous voulez un swap aleatoire qui fonctionne bien. Apres l'installation de votre distribution. Effacez la partition du swap et creez une partition de type "Unformated" a sa place. Si vous creez cette partition et qu'elle est en swap. Elle poura etre utiliser par un systeme live et compromette la securite.

Montez votre nouvelle installation dans /mnt pour mettre en place le systeme de demarrage :

cd /mnt

Creez un repertoire pour votre systeme :

mkdir root

Si votre partition systeme (monter sous le nom de crypt dans mon cas) et celle du boot(qui par exemple est sur sda2) sont tout les deux de type ext4 tappez ces commandes :

mount -t ext4 /dev/mapper/crypt root
mount -t ext4 /dev/sda2 root/boot

Notez bien qu'il est possible que l'internet ne soit pas fonctionnel quand vous allez changer de root. Si oui tappez cette commande :

cp /etc/resolv.conf /mnt/root/etc/resolv.conf

Changer de root :

sudo chroot root

Testez la connexion avec un ping sur Google :

ping www.google.com

Monter ce qui est nescessaire avant de poursuivre :

mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t devpts devpts /dev/pts
N.B. que les deux commandes qui vont suivre tienne en compte le fait que vous utilisez lvm.

Lancez l'update des paquets et installez ceci au besoin

apt-get update
apt-get install lvm2 cryptsetup

Lancez cette commande sans le chroot :

cryptsetup -d /dev/urandom create cryptoswap /dev/sdXX

Remplacer les deux XX par la partition en question (ex. sda3)…

Pour savoir de quel il sagit. Verifiez dans Gparted ou avec la commande suivante :

sudo blkid

Avec votre nouvelle installation monter et avec chroot. Ouvrez nano et editer le fichier crypttab :

sudo nano /etc/crypttab

Inserez-y l'UUID obtenu avec la commande blkid dans le fichier ouvert comme ceci

crypt UUID=XXXX none luks
N.B. les XXXX doivent etre remplacer par l'UUID.

Rajoutez une ligne supplementaire pour le swap(choisisez entre les deux qui suivre. Pas les deux) :

cryptoswap /dev/sdXX	/dev/urandom	cipher=aes-cbc-essiv:sha256,hash=ripemd160,size=256,swap
cryptoswap /dev/sdXX /dev/urandom cipher=aes-xts-plain64:sha512,hash=ripemd160,size=512,swap

Moi, j'utilise le dernier.

Il faut maintenant monter ce système dans fstab :

sudo nano /ect/fstab
/dev/mapper/cryptoswap	none	swap	sw	0	0

Apres ces modification il vous faut updater le systeme d'initiation comme ceci :

update-initramfs -u

Assurez-vous d'avoir indiquer a votre fichier crypttab de monter la partition systeme. Comme indiquer un peu plus haut.

Si tout se passe bien avec la derniere commande. Vous pouvez finalement redemarrer votre systeme.

Une dernier chose en vous laissant. Si vous voulez installer plusieurs systeme chiffrer, utiliser GRUB2. Une partition /boot differentes par system. Le logiciel GRUB Customizer. Et rajouter des scripts de chargeur en chaine…

Kyzis.

Le nouveau système de gestion des volumes chiffrés est très bien implémenté dans Dapper. Il permet notamment de sécuriser votre /home sans manipulation complexe autre que de renseigner la pass-phrase lors du démarrage.

Spécificité Edgy

Le fait de chiffrer votre dossier /home (par exemple) nécessite de taper la clé d'ouverture du volume chiffré lors de la séquence de démarrage de l'ordinateur, mais sous Edgy le système de boot n'est plus séquentiel comme sur Dapper, ce qui entraîne pour l'heure que le lancement de Xorg (le serveur graphique) n'attendra pas que vous ayez tapé votre clé d'ouverture du volume.

Une des solutions pour l'heure est d'installer sysvinit avec Synaptic au lieu d'Upstart (le nouveau système de démarrage, intégré dans Edgy).

Grâce au logiciel FreeOTFE, il est possible de monter de façon non permanente une partition LUKS encryptée par Cryptsetup sous Linux à partir de votre système Windows.

Pour monter et utiliser le même type de partition que celle décrite dans ce wiki, voici les étapes :

1. Télécharger FreeOTFE ici

2. Extraire les fichiers de l'archive dans un dossier et ouvrir FreeOTFE.exe

3. Lorsqu'on vous demande si vous voulez démarrer FreeOTFE en portable mode, dites oui. Si vous voulez utiliser FreeOTFE régulièrement afin de monter des volumes cryptés sous Windows, vous pouvez cliquer sur non et activer de façon permanente tous les pilotes de cryptage un par un.

4. Cliquez ensuite sur File / Linux volume / Mount partition

5. Choisissez la partition qui est encryptée sur votre disque dur

6. Dans la grande case, entrez votre clé secrète, puis cliquez sur Ok

7. Si vous avez choisi la bonne partition et la bonne clé, le programme détectera l'encryptage correspondant et vous offrira une liste des pilotes pouvant monter le volume. Faites votre choix.

8. Si tout s'est bien passé, vous avez un nouveau lecteur dans votre poste de travail !

Notes importantes

Ce volume ne survivra pas à un redémarrage, il faudra tout reprendre de zéro à chaque fois.

Si vous fermez FreeOTFE alors qu'il est en mode portable, vous devez lui spécifier de ne pas désactiver les pilotes d'encryptage afin de ne pas perdre l'usage de votre partition.

Avant de fermer votre ordinateur, il est recommandé de démonter la partition à l'aide de FreeOTFE et de lui permettre de désactiver tous les pilotes à sa fermeture.

Si votre système de fichier est ext2 ou ext3, Windows ne sera pas capable de lire le contenu de votre partition, sauf si vous installez le Ext2 IFS For Windows. Attention toutefois, ce pilote pour Windows ne prend pas en charge les droits d'accès et la journalisation. Pour du partage entre Windows et Linux, le Fat32 est plus conseillée.

—-

Contributeur : ???

  • cryptsetup.1382311880.txt.gz
  • Dernière modification: Le 21/10/2013, 01:31
  • par 142.217.36.165