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.