Stockage des donn�es confidentielles sous GNU/Linux
Ce tutorial est le compl�ment de l'article Stockage des donn�es confidentielles sous GNU/Linux (Hakin9 01/2005). On considere que les exercices d�crits ci-dessous seront effectu�s au moyen du CD Hakin9 Live.
Avertissement! Il n'est pas conseill� de chiffrer les vraies donn�es disponibles dans le systeme Hakin9 Live – elles risquent d'etre perdues lors du red�marrage de l'ordinateur.
Objectif: Apres avoir fait les exercices d�crits, vous saurez�:
au moyen du paquet GnuPG chiffrer les fichiers simples par cl� sym�trique et asym�trique,
cr�er et utiliser le r�pertoire chiffr� a l'aide de l'outil EncFS,
cr�er et monter une partition chiffr�e (r�elle et virtuelle) a l'aide de cryptoloop.
Chiffrage sym�trique des fichiers – paquet GnuPG
Dans le premier exercice, nous utiliserons le paquet GnuPG pour chiffrer un fichier simple. Dans notre cas, ce sera le fichier HK1204.pdf.
[01] Dans le tutorial, nous nous servirons de l'algorithme AES (il a le meilleur rapport qualit� efficacit�). Nous commen�ons par charger le module du noyau appropri�:
$ su -
# modprobe aes
# exit
[02] Nous cr�ons le r�pertoire /home/haking/encrypted dans lequel nous stockerons les donn�es chiffr�es:
$ mkdir ~/encrypted
Dans ce r�pertoire, nous enregistrons le fichier HK1204.pdf.
[03] Maintenant, il est temps de commencer le chiffrage. Tapons la commande suivante�:
$ gpg --output ~/encrypted/cyph1 --symmetric --cipher-algo AES192 ~/encrypted/HK2104.pdf
Cette commande permet de chiffrer sym�triquement le fichier HK2104.pdf dans le fichier cible ~/encrypted/cyph1 au moyen de l'algorithme AES sur la cl� de 192 bits.
[04]Pour chiffrer, il est n�cessaire d'entrer un mot de passe. R�fl�chissons bien pour inventer une phrase qui n'a pas de sens, mais qui est facile a retenir – par exemple Trois gros rats gris dans trois gros trous tres creux, 666. Ce sera notre mot de passe.
[05] Le fichier a �t� chiffr�. Maintenant, il faut supprimer l'original:
$ shred -n 35 -z -u ~/encrypted/HK2104.pdf
[06] Pour d�chiffrer le fichier et r�cup�rer les donn�es, nous allons taper la commande suivante:
$ gpg --output HK2104.pdf --decrypt ~/encrypted/cyph1
R�pertoires chiffr�s – EncFS
[07] Avant d'utiliser cette possibilit� du programme EncFS, il faut cr�er deux r�pertoires. L'un (chez nous ~/.crypto) stockera nos donn�es sous forme chiffr�e (il ne sera pas utilis� de fa�on directe), par contre, dans le deuxi�me(~/secret), elles seront mont�es et d�chiffr�es � chaque demande d'acc�s. Le montage, bien s�r, ne sera possible qu'apr�s la saisie du mot de passe.
$ mkdir ~/.crypto
$ mkdir ~/secret
[08] L'�tape suivante consiste � activer le m�canisme EncFS:
$ su -; insmod fuse; exit
$ encfs ~/.crypto ~/secret
Apr�s avoir appuy� sur la touche [Entr�e], le programme nous demande de choisir le mode de configuration. Nous d�cidons d'utiliser le mode pr�configur� pour les parano�aques.
Il est temps de d�terminer le mot de passe associ� � notre archive. Apr�s la saisie du mot de passe et sa confirmation, notre syst�me de fichiers virtuel est pr�ts � �tre utilis�.
[09] Nous y copions quelques fichiers (echo, ls, telnet):
$ cp /bin/echo /bin/ls /bin/telnet ~/secret/
Nous v�rifions ce qui se trouve dans les r�pertoires ~/secret et ~/.crypto:
$ ls ~/secret
$ ls ~/.crypto
Comme vous le voyez, le premier contient nos fichiers, et le deuxi�me – leurs versions chiffr�es. Maintenant, pour que personne ne puisse lire leur contenu, nous pouvons d�monter le syst�me de fichiers virtuel � l'aide de la commande:
$fusermount -u ~/crypto
R�ussi! Nos donn�es sont prot�g�es.
[10] Maintenant, essayons de les monter encore une fois – avec un protection suppl�mentaire qui permet le d�montage automatique apr�s une p�riode d'inactivit� (10 minutes):
$ encfs --idle=10 ~/.crypto ~/secret
Nos fichiers sont de nouveau disponibles dans le r�pertoire ~/secret. Si nous attendons 10 minutes, le r�pertoire sera automatiquement d�mont�.
Syst�me de fichiers chiffr� – cryptoloop
Il reste encore un outil qui nous permettra de prot�ger les fichiers confidentiels. C'est cryptoloop, l'outil int�gr� dans le noyau de Linux.
[11] Nous admettons que nous n'avons pas de partition libre (ce qui est le cas du CD Hakin9 Live), nous nous servirons donc d'une caract�ristique commode du m�canisme de retour – loopback – permettant de l'utiliser comme un syst�me de fichier ou un fichier ordinaire. Pr�parons-le:
$ dd if=/dev/urandom of=~/crypto.raw bs=1k count=10000
� la suite de l'ex�cution de cette commande, le fichier d'une taille de 10 Mo est cr��. Il contient des valeurs al�atoires (d�chets).
[12] Dans l'�tape suivante, il faut associer le fichier cr�� au dispositif loop libre et de le chiffrer par le biais de la m�thode d�crite:
$ su -
# modprobe cryptoloop
# losetup -e aes-192 /dev/loop1 /home/haking/crypto.raw
Le programme nous demande d'entrer le mot de passe (20 caract�res au minimum).
[13] Nous avons pr�par� de la place. Maintenant, il faut y mettre un peu d'ordre, c'est-�-dire, cr�er un syst�me de fichiers quelconque. Par exemple ext2:
# mkfs.ext2 /dev/loop1
[14]Apr�s cela, nous pouvons lib�rer (option -d) le dispositif
loop1:
# losetup -d /dev/loop1
# exit
[15] Notre syst�me de fichiers chiffr� est pr�t et il peut �tre mont� et utilis� de la m�me fa�on que tout autre syst�me de fichiers. Montons-le et voyons comment il fonctionne:
$ mkdir ~/encrypted_disk
$ mount -t ext2 ~/crypto.raw ~/encrypted_disk -oencryption=aes-192
La commande mount, apr�s la saisie du mot de passe valide, associe le fichier donn� au premier dispositif loop libre.
[16] Copions maintenant nos fichiers dans un r�pertoire s�r:
$ cp /bin/echo /bin/ls /bin/telnet ~/encrypted_disk
Et c'est tout – notre nouveau disque chiffr� peut �tre mont� et d�mont� suivant les besoins. Les personnes non-autoris�es qui ne connaissent pas le mot de passe ne pourront pas y acc�der.