Chiffrement avec TrueCrypt

Gazette Linux n°165 — Août 2009

Ariel Maiorano

Eric Gérard

Adaptation française 

Gaël Montreuil

Relecture de la version française 

Article paru dans le n°165 de la Gazette Linux de août 2009.

Cet article est publié selon les termes de la Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.


Table des matières

À propos de TrueCrypt
Conflits de licence
Les algorithmes
Installation
Avant de commencer
Options de la ligne de commandes
Chiffrement
Finalement
Références
À propos de l'auteur

À propos de TrueCrypt

Sur son site Web, nous apprenons que TrueCrypt est un logiciel libre, open-source, de chiffrement de disque pour Windows Vista/XP, Mac OS X et Linux. Son utilisation la plus fréquente est la création d'un disque virtuel chiffré dans un fichier (appelé fichier volume), monté comme un disque réel. De plus, il implémente également des mécanismes plausibles de déni, un volume caché à l'intérieur d'un autre volume, et, bien sûr, la possibilité de chiffrer une partition entière ou un volume de stockage externe. Le chiffrement du système n'est, quant à lui actuellement, supporté seulement par Windows.

Le chiffrement est automatique, temps-réel (à la volée) et transparent. Concernant cette propriété de chiffrement «à la volée» effectuée par TrueCrypt, on peut lire dans la documentation officielle:

[Chiffrement «à la volée» signifie que les données sont automatiquement chiffrées ou déchiffrées juste avant qu'elles soient lues ou écrites, sans aucune intervention de la part de l'utilisateur. Aucune donnée ne peut être lue (déchiffrée) sans utiliser le mot de passe / fichier clé ou clé de chiffrement correcte. Le système de fichier entier est chiffré (i.e. les noms de fichiers, de répertoites, le contenu des fichiers, l'espace libre, les métadonnées, etc.)]

Bien que plus populaire dans le monde des systèmes d'exploitation Windows[1], TrueCrypt fonctionne bien sous Linux, et ses fichiers volume sont totalement indépendant des systèmes d'exploitation. La documentation générale à propos de l'utilisation du programme est principalement orientée sur l'interface graphique des différentes versions de Windows, mais les informations à propos de son fonctionnement, les algorithmes de chiffrement, les algorithmes de hachage, les détails techniques etc. sont très complets et s'appliquent également à la version Linux.

Conflits de licence

Comme cela a déjà été mentionné, dans la documentation officielle, nous savons que TrueCrypt est un logiciel libre et open-source. Cependant, malgré de nombreuses demandes d'utilisateurs, il n'a pas été inclus dans le plupart des distributions et dépôts populaires de Linux à cause de certaines préoccupations concernant les licences collectives de TrueCrypt. [1]La majorité des distributeurs Linux considère qu'il n'est pas libre; Dans ce courrier, d'un représentant Red Hat, il est expliqué pourquoi ils pensent cela, et même si Fedora respecte toutes les conditions et/ou obligations imposées par cette licence, ils ne seraient pas protégé contre une attaque en justice de la part de TrueCrypt. Pour connaitre la position officielle de Fedora sur cette question, vous pouvez consulter ce lien, et pour Ubuntu celui-ci.

De toute façon, si vous projetez de redistribuer TrueCrypt, ou un programme basé sur lui, vous aurez probablement besoin d'une aide juridique. Cela étant dit, vous pouvez, bien entendu, télécharger la totalité du code source et l'utiliser comme il vous convient pour vos besoins privés.

Les algorithmes

TrueCrypt implémente trois algorithmes de chiffrement par blocs (également appelés chiffreurs, ainsi il y a des chiffreurs par blocs, des chiffreurs à clé symétrique, etc.): AES (pour chiffrement avancé standard), Twofish et Serpent. Le programme peut aussi combiner l'usage des chiffreurs, aussi, lorsque vous devez sélectionner l'algorithme à utiliser, vous voyez des options comme Serpent-AES ou Twofish-Serpent. Les fonctions cryptographiques de hachage implémentées et disponibles dans TrueCrypt sont RIPEMD-160, SHA-512, et Whirlpool.

Si cela ne vous est pas familier, sachez qu'un chiffreur par blocs opère sur des morceaux de données de taille fixe, chacune d'eux est un bloc. AES, par exemple, utilise des blocs de 128 bits de long. Ces blocs sont constitués de vos données: ce que vous voulez chiffrer, habituellement du texte. Lorsqu'un chiffreur chiffre un bloc de texte, sa sortie est un bloc transformé de même longueur, appelé bloc de texte chiffré. Ceci est fait en utilisant la clé, comme autre entrée du processus de chiffrement, clé qui possède également une longueur fixe (jusqu'à 256 bits avec Twofish, par exemple).

Un autre aspect à prendre en considération est qu'il est nécessaire d'effectuer d'autres étapes si vous voulez chiffrer un texte dont la taille est supérieure à celle du bloc utilisé par le chiffreur. Dans ce cas, l'implémentation choisit un mode opératoire (ce n'est pas fait par l'algorithme lui-même). Le bloc chiffré, issu du chiffrement du bloc de texte précédent, peut être combiné avec le bloc de texte à chiffrer suivant. Le mode dans lequel vous utilisez un algorithme détermine la façon dont les blocs seront chainés, si un tel procédé doit être déterminé. Lorsque vous utilisez un mode chaîné, le premier bloc ne dispose pas de la sortie précédente, dans ce cas vous utilisez un vecteur d'initialisation (IV), habituellement composé de données aléatoires.

La clé n'est pas le tableau de caractères ASCII qui compose votre mot de passe - du moins, pas au cours des dernières implémentations cryptographiques - mais la sortie d'une fonction de hachage cryptographique appliquée à ce mot de passe et à un groupe de bits aléatoires (salt).

Les fonctions cryptographiques de hachage peuvent prendre un bloc de données d'une taille arbitraire et retourner une taille de bloc fixe en sortie (par exemple, 128 bits de long pour MD5). Cette sortie est appelée la valeur de hachage, parfois appelée condensé du message - le message étant les données entrées ou simplement le condensé. Tout changement de l'entrée produit une valeur de hachage sensiblement différente.

Le salt (grain de sel) est un nombre aléatoire, une partie de l'entrée de la fonction de hachage, habituellement simplement concaténée avec le mot de passe, qui fait que le même mot de passe ne génère pas la même valeur de hachage. Il est aussi public que le résultat du hachage et vous devez toujours disposer des deux valeurs pour effectuer une comparaison de mot de passe. De cette façon il est plus difficile d'attaquer le mot de passe par dictionnaire.

Des standards définissent que la fonction de hachage doit être répétée - un minimum de 1000 itérations est recommandé dans le standard RSA PKCS5 - hachant à chaque fois la valeur de hachage issue de l'itération précédente, pour finalement produire les octets de la clé utilisée comme clé d'entrée d'un chiffreur symétrique.

En ce qui concerne la théorie générale de chiffrement, vous pouvez consulter la version en ligne du livre Handbook of Applied Cryptography. Vous trouverez ensuite une description très brève et basique de chaque algorithme, mais si vous voulez d'autres références ou une discussion plus approfondie sur chacun d'entre eux, consultez les références, et comment ils sont implémentés dans TrueCrypt, dans la documentation technique du programme. Souvenez vous, également, que les chiffreurs de blocs peuvent être utilisés dans différents modes. Ces modes définissent la méthode de chainage (ou non) des blocs en chiffrant chaque bloc de texte. Les versions récentes de TrueCrypt utilisent le mode XTS (standard IEEE 1619).

  • Chiffreurs symétriques disponibles dans TrueCrypt:

    • AES: Advanced Encryption Standard (standard avancé de chiffrement). Publié originellement sous le nom de Rijndael (1998), un mot dérivé des noms des auteurs: Joan Daemen et Vincent Rijmen. Cet algorithme a été sélectionné en 2001 lors du concours NIST's AES (National Institute of Standards and Technology), ainsi le standard spécifie qu'il est approuvé par le Federal Information Processing Standard (FIPS-17) et peut être utilisé par les organisations gouvernementales US (ou d'autres) pour protéger les informations sensibles. Il produit de blocs de 128 bits à partir de clés de 128, 192 et 256 bits. Rijndael supporte d'autres tailles de blocs et de clés mais les valeurs citées sont les seules utilisées par AES. Il est intéressant de noter qu'il a été analysé en profondeur et est utilisé dans le monde entier.[2]

    • Serpent: Cet algorithme a été finaliste au concours AES et a terminé en seconde place, juste derrière Rijndael. Les auteurs sont Ross Anderson, Eli Biham et Lars Knudsen. Il implémente une taille de bloc de 128 bits. Ses clés peuvent être de 128, 192 et 256 bits de longueur. Première publication en 1998.

    • Twofish: Un autre finaliste du concours AES. Les auteurs sont: Bruce Schneier, JohnKelsey, Doug Whiting, DavidWagner, ChrisHall et Niels Ferguson. Il implémente une taille de blocs de 128 bits avec des clés de tailles variables: d'un minimum de 8 bits à un maximum de 256 bits, par multiple de 8 bits. Egalement publié en 1998.

  • Fonctions cryptographiques de hachage disponibles:

    • RIPEMD-160: Acronyme de RACE Integrity Primitives Evaluation Message Digest. Les auteurs sont: Hans Dobbertin, Antoon Bosselaers et Bart Preneel. Il produit une valeur de hachage de 160 bits de long, mais il existe d'autres versions de cet algorithme (RIPEMD-128, RIPEMD-256 et RIPEMD-320). Première publication en 1996.

    • SHA-512: SHA est l'acronyme de Secure Hash Algorithm. Il appartient à la famille SHA-2. Ces fonctions ont été conçues par le NSA, et publiée par le NIST comme US FIPS en 2001. Comme vous l'avez probablement deviné, SHA-512 produit des valeurs de hachage de 512 bits.

    • Whirlpool: Conçu par un des auteurs de Rijndael, Vincent Rijmen et Paulo S. L. M. Barreto. Publié en 2000. Il produit des valeurs de hachage de 512 bits de long.

Installation

Nous allons construire et installer la dernière version de TrueCrypt à partir des sources (à la date de l'article, la dernière version est 6.2a, publiée le 15 juin 2009). Vous pouvez également télécharger les paquets .deb et .rpm, pour Ubuntu et OpenSUSE respectivement, depuis le site de TrueCrypt. Bien sûr, vous ne pouvez procéder ainsi que si vous disposez d'une des deux distributions Linux supportées. Sinon, ou si vous utilisez l'une d'elles mais préférez compiler le programme que vous utiliserez sur votre système, vous devrez télécharger le code source pour Linux/Mac OS X et continuer à lire la section installation. Note: le paquet .zip du code source ne contient pas les mêmes fichiers; si vous trouvez un fichier .sln (Microsoft Visual Studio solution) au lieu d'un fichier Makefile, c'est que vous avez téléchargé la version Windows.

La documentation nous dit que notre système doit comprendre les composants suivants pour pouvoir compiler votre logiciel:

En fonction de votre distribution Linux, vous devriez déjà respecter la majorité de ces prérequis. (Mais surement pas tous dans les distributions par défaut, j'en ai peur). Vous devrez, bien sûr, les installer depuis les paquets de distribution ou des sources, comme vous préférez. Les composants qui vont manqueront probablement sont les entêtes FUSE et RSA, ainsi que les wxWidgets, si vous n'en avez pas eu besoin avant. Quelques conseils et notes rapides, avant de procéder à une installation pas à pas:

  1. Si vous téléchargez les paquets de distribution FUSE, souvenez vous de télécharger les paquets "fuse" ou "libfuse" et "libfuse-devel" pour votre distribution.

  2. Considérez, également, que vous aurez besoin des sources du noyau si vous voulez compiler FUSE; le nom du paquet dans la plupart des distributions est kernel-devel.

  3. Le fichier d'entête principal RSA (pkcs11.h) comporte des commentaires dans le code source indiquant que certaines portions de code doivent être dé-commentées avant l'utilisation; Ne faites pas cela, car il n'y en a pas besoin. Le fichier Common/SecurityToken.h contenu dans les sources de TrueCrypt possède toutes les lignes #define nécessaires.

  4. Si vous compilez une version NOGUI de TrueCrypt (c'est à dire, exécuter dans un environnement non graphique), comme nous allons effectuer dans cet article, notez que vous devrez quand même télécharger le code source de la librairie wxWidgets. L'installer ne sera, cependant, pas nécessaire.

Voici, donc, les instructions d'installation pas à pas. La seule supposition, faite ici, est que les fichiers TrueCrypt 6.2a Source.tar.gz et wxX11-2.8.10.tar.gz ont été placés dans le répertoire /tmp. Le site de TrueCrypt ne semble pas fournir de lien public direct pour le téléchargement, et les codes source des librairies wx sont hébergées chez Sourceforge, vous devrez donc télécharger ces fichiers à l'aide de votre navigateur Internet. Les fichiers include de PCKS #11 seront téléchargés à l'aide de la commande wget. Enfin, toutes les commandes ne nécessitent pas que vous soyez connecté en tant que root, mais, dans ces exemples, je me suis connecté en tant que root.

[root@w2 ~]#
[root@w2 ~]# cd /tmp
[root@w2 tmp]# mkdir pkcs11
[root@w2 tmp]# cd pkcs11
[root@w2 pkcs11]# wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11.h
[root@w2 pkcs11]# wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11f.h
[root@w2 pkcs11]# wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11t.h
[root@w2 pkcs11]# cd ..
[root@w2 tmp]# tar xvfz wxX11-2.8.10.tar.gz
[root@w2 tmp]# tar xvfz "TrueCrypt 6.2a Source.tar.gz"
[root@w2 tmp]# cd truecrypt-6.2a-source/
[root@w2 truecrypt-6.2a-source]# export PKCS11_INC=/tmp/pkcs11
[root@w2 truecrypt-6.2a-source]# make NOGUI=1 WX_ROOT=/tmp/wxX11-2.8.10 wxbuild
[root@w2 truecrypt-6.2a-source]# make NOGUI=1 WXSTATIC=1
[root@w2 truecrypt-6.2a-source]# cd Main
[root@w2 Main]# ./truecrypt --test
[root@w2 Main]# cp truecrypt /usr/local/bin/

Note: A la fin de l'exécution de TrueCrypt avec l'option --test, vous devriez obtenir Self-tests of all algorithms passed. Les binaires compilés de TrueCrypt doivent être copiés manuellement dans le répertoire système, car le fichier Makefile ne fournit pas de répertoire cible d'installation.[3]

Avant de commencer

Maintenant, d'après la documentation, votre système Linux doit répondre à certaines exigences pour faire fonctionner TrueCrypt:

Comme il a été dit précédemment, vous devriez déjà avoir la plupart de ces programmes avec une distribution « moderne » de Linux. Par exemple, FUSE peut avoir été installé lors du processus de compilation. Prenez en compte que les noyaux récents de Linux comprennent déjà FUSE. Si votre système ne contient pas tous les composants, suivez les liens fournis dans la documentation officielle, ou cherchez sur Internet pour trouver les paquets correspondants à votre distribution.

Cela fait, vérifiez que le module du noyau FUSE se charge; si il se charge correctement, c'est bon.

[root@w2 tmp]# modprobe fuse

Options de la ligne de commandes

La documentation officielle concernant les options de la ligne de commandes concernent seulement la version Windows de TrueCrypt. Aussi, avant de présenter un couple d'exemples sur l'utilisation de ce logiciel, j'ai effectué un copier/coller ci-après de ce que l'aide nous dit, si nous voulons savoir comment exécuter TrueCrypt et que nous sommes sous Linux ou MacOS; Utilisons l'option -h. C'est un bon moyen d'avoir une idée de ce qu'un programme peut faire.

[root@w2 tmp]# truecrypt -h
Usage: truecrypt [--auto-mount <str>] [--backup-headers] [--background-task] [-C] [-c]
[--create-keyfile] [--delete-token-keyfiles] [-d] [--encryption <str>] [--explore]
[--filesystem <str>] [-f] [--fs-options <str>] [--hash <str>] [-h] [--import-token-keyfiles]
[-k <str>] [-l] [--list-token-keyfiles] [--load-preferences] [--mount] [-m <str>]
[--new-keyfiles <str>] [--new-password <str>] [--non-interactive] [-p <str>]
[--protect-hidden <str>] [--protection-keyfiles <str>] [--protection-password <str>]
[--random-source <str>] [--restore-headers] [--quick] [--size <str>] [--slot <str>]
[--test] [-t] [--token-lib <str>] [-v] [--version] [--volume-properties]
[--volume-type <str>] [Volume path] [Mount point]
  --auto-mount=<str>            Auto mount device-hosted/favorite volumes
  --backup-headers              Backup volume headers
  --background-task             Start Background Task
  -C, --change                  Change password or keyfiles
  -c, --create                  Create new volume
  --create-keyfile              Create new keyfile
  --delete-token-keyfiles       Delete security token keyfiles
  -d, --dismount                Dismount volume
  --encryption=<str>            Encryption algorithm
  --explore                     Open explorer window for mounted volume
  --filesystem=<str>            Filesystem type
  -f, --force                   Force mount/dismount/overwrite
  --fs-options=<str>            Filesystem mount options
  --hash=<str>                  Hash algorithm
  -h, --help                    Display detailed command line help
  --import-token-keyfiles       Import keyfiles to security token
  -k, --keyfiles=<str>          Keyfiles
  -l, --list                    List mounted volumes
  --list-token-keyfiles         List security token keyfiles
  --load-preferences            Load user preferences
  --mount                       Mount volume interactively
  -m, --mount-options=<str>     TrueCrypt volume mount options
  --new-keyfiles=<str>          New keyfiles
  --new-password=<str>          New password
  --non-interactive             Do not interact with user
  -p, --password=<str>          Password
  --protect-hidden=<str>        Protect hidden volume
  --protection-keyfiles=<str>   Keyfiles for protected hidden volume
  --protection-password=<str>   Password for protected hidden volume
  --random-source=<str>         Use file as source of random data
  --restore-headers             Restore volume headers
  --quick                       Enable quick format
  --size=<str>                  Size in bytes
  --slot=<str>                  Volume slot number
  --test                        Test internal algorithms
  -t, --text                    Use text user interface
  --token-lib=<str>             Security token library
  -v, --verbose                 Enable verbose output
  --version                     Display version information
  --volume-properties           Display volume properties
  --volume-type=<str>           Volume type

A la suite de la liste des options de la ligne de commandes, des détails et quelques exemples simples d'utilisation sont affichés à l'écran. J'inclurai dans les sections suivantes un couple d'exemples standards, mais, avec les informations fournies, vous pouvez voir exactement comment ça fonctionne.

Chiffrement

Nous allons, maintenant, créer des fichiers volume exemples puis les monter. Ces fichiers sont chiffrés et déchiffrés "à la volée" lorsqu'ils sont montés. Vous pouvez les considérer comme des fichiers .iso en lecture/écriture, par exemple, mais sans utiliser la commande mount; à la place, vous utiliserez les binaires TrueCrypt. Lorsque vous travaillez à l'intérieur d'une partition "montée", le chiffrement (et déchiffrement, bien sûr) se font automatiquement.

La première action que nous allons accomplir est la création d'un fichier volume standard de 5 Mo. Notez que nous utiliserons l'option -t, qui signifie "Utiliser l'interface texte utilisateur", et l'option -c pour "Créer un nouveau volume". Nous allons être guidés pour renseigner toutes les informations nécessaires pour créer le volume. Nous pourrions, comme prévu, utiliser d'autres options de ligne de commandes pour déterminer certaines de ces informations, mais je pense que cela est plus clair de cette façon.

[root@w2 tmp]#
[root@w2 tmp]# mkdir tests
[root@w2 tmp]# cd tests/
[root@w2 tests]#
[root@w2 tests]#truecrypt -t -c
Volume type:
 1) Normal
 2) Hidden
Select [1]: 1

Enter volume path: /tmp/tests/file.tc

Enter volume size (sizeK/size[M]/sizeG): 5M

Encryption algorithm:
 1) AES
 2) Serpent
 3) Twofish
 4) AES-Twofish
 5) AES-Twofish-Serpent
 6) Serpent-AES
 7) Serpent-Twofish-AES
 8) Twofish-Serpent
Select [1]: 1

Hash algorithm:
 1) RIPEMD-160
 2) SHA-512
 3) Whirlpool
Select [1]: 1

Filesystem:
 1) FAT
 2) None
Select [1]: 1

Enter password:
WARNING: Short passwords are easy to crack using brute force techniques!

We recommend choosing a password consisting of more than 20 characters. Are you sure you want to use a short password? (y=Yes/n=No) [No]: y

Re-enter password:

Enter keyfile path [none]:

Please type at least 320 randomly chosen characters and then press Enter:
Characters remaining: 247
Characters remaining: 57


Done: 100,000%  Speed:  782 KB/s  Left: 0 s

The TrueCrypt volume has been successfully created.
[root@w2 tests]#

Nous pouvons voir que le fichier a été créé avec la taille souhaitée. (Le programme ajoute une entête, mais elle est relativement petite).

[root@w2 tests]# ls -la
total 5208
drwxr-xr-x  2 root root    4096 jul  4 21:03 .
drwxrwxrwt  9 root root   65536 jul  4 21:01 ..
-rw-------  1 root root 5242880 jul  4 21:04 file.tc
[root@w2 tests]#

Maintenant que le fichier volume est créé, nous allons le monter et créer un fichier test à l'intérieur. Nous créerons d'abord un répertoire temporaire comme point de montage, pour effectuer ces essais.

[root@w2 tests]# mkdir mount_point
[root@w2 tests]# truecrypt -t file.tc /tmp/tests/mount_point

A ce stade, vous pourriez obtenir un message d'avertissement:

Warning: Your system uses an old version of the Linux kernel. Due to a bug in the Linux kernel, your system may stop responding when writing data to a TrueCrypt volume. This problem can be solved by upgrading the kernel to version 2.6.24 or later.

Si vous avez correctement installé FUSE et les composants requis, vous pouvez ignorer ce message, et le reste du processus de montage se poursuivra sans soucis.

Enter password for /tmp/tests/file.tc:
Enter keyfile [none]:
Protect hidden volume (if any)? (y=Yes/n=No) [No]:
[root@w2 tests]#

Créons, maintenant, le fichier de test puis démontons le volume. L'option -d de la ligne de commande démonte tous les volumes TrueCrypt actuellement montés.

[root@w2 tests]# ls
file.tc  mount_point
[root@w2 tests]# cd mount_point/
[root@w2 mount_point]# ls -la
total 20
drwx------  2 root root 16384 ene  1  1970 .
drwxr-xr-x  3 root root  4096 jul  4 22:32 ..
[root@w2 mount_point]# cat > secret.txt
This is a secret test.
[root@w2 mount_point]# cat secret.txt
This is a secret test.
[root@w2 mount_point]# cd ..
[root@w2 tests]# truecrypt -d
[root@w2 tests]# ls mount_point
[root@w2 tests]#

L'utilisation de fichiers clés peut apporter une amélioration importante de la sécurité: Il sera combiné avec le mot de passe pour le chiffrement et déchiffrement. Aux fins de test, nous utiliserons un fichier compressé; la documentation recommande ce type de fichier (mp3, par exemple) ainsi que des fichiers générés aléatoirement. Vous pouvez les considérer comme des clés privées. Vous pouvez également utiliser des fichiers publics , mais c'est un secret que vous ne devrez partager qu'avec les gens avec lesquels vous partagez également le mot de passe. Il servira comme source de données aléatoires.

[root@w2 tests]# truecrypt -t -c
Volume type:
 1) Normal
 2) Hidden
Select [1]: 1

Enter volume path: volume2.tc

Enter volume size (sizeK/size[M]/sizeG): 1M

Encryption algorithm:
 1) AES
 2) Serpent
 3) Twofish
 4) AES-Twofish
 5) AES-Twofish-Serpent
 6) Serpent-AES
 7) Serpent-Twofish-AES
 8) Twofish-Serpent
Select [1]: 1

Hash algorithm:
 1) RIPEMD-160
 2) SHA-512
 3) Whirlpool
Select [1]: 2

Filesystem:
 1) FAT
 2) None
Select [1]: 1

Enter password:
WARNING: Short passwords are easy to crack using brute force techniques!

We recommend choosing a password consisting of more than 20 characters. Are you sure you want to use a short password? (y=Yes/n=No) [No]: y

Re-enter password:

Enter keyfile path [none]: ../fuse-2.7.4.tar.gz
Enter keyfile path [finish]:

Please type at least 320 randomly chosen characters and then press Enter:
Characters remaining: 40


Done: 100,000%  Speed:  267 KB/s  Left: 0 s

The TrueCrypt volume has been successfully created.
[root@w2 tests]#

Le montage a, également, été effectué de la façon attendue. En premier lieu, je ne vais pas spécifier de fichier clé, pour montrer comment le logiciel indique qu'il y a un problème. Notez que le mot de passe était correct.

[root@w2 tests]# mkdir mount_point2
[root@w2 tests]# truecrypt -t volume2.tc mount_point2
Enter password for /tmp/tests/volume2.tc:
Enter keyfile [none]:
Protect hidden volume (if any)? (y=Yes/n=No) [No]:
Incorrect password or not a TrueCrypt volume.

Enter password for /tmp/tests/volume2.tc:
Protect hidden volume (if any)? (y=Yes/n=No) [No]:
Incorrect password or not a TrueCrypt volume.

[CTRL-C]

[root@w2 tests]#
[root@w2 tests]# truecrypt -t volume2.tc mount_point2
Enter password for /tmp/tests/volume2.tc:
Enter keyfile [none]: ../fuse-2.7.4.tar.gz
Enter keyfile [finish]:
Protect hidden volume (if any)? (y=Yes/n=No) [No]:
[root@w2 tests]#

Finalement

Comme vous pouvez le voir à travers ces exemples, utiliser TrueCrypt avec la ligne de commandes n'est pas compliqué du tout. C'est un outil puissant pour sécuriser rapidement des fichiers en utilisant une cryptographie forte et les déplacer facilement. (Le fichier volume peut être copié sur une clé USB, puis monté ensuite sur un système Windows, par exemple). Il fonctionne sous Linux, il est bien documenté, il est libre et vous avez accès à son code source. D'un point de vue cryptographie, l'implémentation est robuste, moderne et basée sur des algorithmes bien connus, la durée de vie du programme, et sa popularité, peut vous donner une confiance certaine.

Références



[1] Commentaires de Rick Moen: Une lecture approfondie de la version courante de la licence de la version 2.7 de TrueCrypt suggère, à mon avis, en tant que passionné des licences de logiciel, que la fondation TrueCrypt a réglé tous les problèmes cités par Red Hat Legal (relayés par Tom Calloway), les éditeurs de paquets d'Ubuntu, les développeurs de Debian et de Gentoo.

La page wiki de Fedora citée prétend toujours que la licence est propriétaire, mais ma conviction est que cela concerne une version précédente, probablement la version 2.5.

La licence TrueCrypt n'est toujours pas approuvée par OSI (parce que il y a toujours une licence utilisateur unique, et plus encore elle n'a pas été proposée à la certification), mais sa dernière version apparait, néanmoins, totalement compatible avec la définition Open Source.

[2] Commentaires de Rick Moen: Ces analyses sont les meilleurs arguments pour AES/Rijndael, et les raisons pour lesquelles on mérite de s'y attarder. Ailleurs dans le domaine des logiciels, il est souvent dit que les nouveaux algorithmes sont meilleurs, et donc les nouveaux chiffreurs devraient être plus dignes de confiance. En cryptographie, c'est l'inverse. Les nouveaux chiffreurs, si impressionnantes que soient leurs spécifications et leurs conceptions, sont traités avec circonspection, le plus vieux le meilleur. Ainsi, dans la compétition qui a conduit au choix de Rijndael pour l'AES, Twofish, l'algorithme de Bruce Schneier semblait, superficiellement, avoir l'avantage sur son prédécesseur Blowfish -- mais, en fait Blowfish est le plus digne de confiance des deux, car il a beaucoup plus résisté à des attaques plus variées et plus longues par des experts en cryptographie, sans être cassé.

[3] Commentaires de René Pfeiffer: C'est une bonne pratique de télécharger, décompresser et compiler en tant qu'utilisateur différent de root. Vous n'avez besoin des droits root que pour installer un logiciel. Sur chaque système, j'ai un user constructeur qui prépare tout; root ne fait que l'installation. faites attention au fait que la majorité des fichiers Makefile et des fichiers de configuration sont constitués de code qui tournent sur votre machine. Personne n'est parfait, et, si le script plante, les dommages seront moindres si vous utilisez un user dédié, sans droits, pour la construction.

À propos de l'auteur

Ariel Maiorano travaille comme consultant IT chez m-sistemas studio en Argentine. Il détient un diplôme en sciences informatiques et est principalement impliqué dans le développement de la sécurité et les solutions Web. Il a commencé à utiliser Linux avec une distribution Slackware, il y a presque 15 ans

Adaptation française de la Gazette Linux

L'adaptation française de ce document a été réalisée dans le cadre du Projet de traduction de la Gazette Linux.

Vous pourrez lire d'autres articles traduits et en apprendre plus sur ce projet en visitant notre site : http://www.traduc.org/Gazette_Linux.

Si vous souhaitez apporter votre contribution, n'hésitez pas à nous rejoindre, nous serons heureux de vous accueillir.