Chiffrement des données sur clé USB, pas si facile !
Par idoric le mercredi, juillet 28 2010, 09:44 - Lien permanent
Ce document n'est pas une énième méthode détaillée pour chiffrer des données sur clé USB, mais une discussion sur les différents façons de faire. En effet, ayant perdu énormément de temps à comprendre et mettre en place certaines approches pour ensuite découvrir un inconvénient qui m'était rédhibitoire, j'ai pensé qu'un récapitulatif de celles-ci avec leurs avantages et désavantages pourrait faire gagner un temps appréciable à d'autres que moi, charge ensuite à vous de parcourir la riche littérature existante pour appliquer l'approche que vous jugerez vous disconvenir le moins.
Mon cahier des charges
Il y a des solutions que je n'ai tout simplement pas exploré car hors de mes exigences qui étaient les suivantes :
- utilisation de solutions logicielles libres (excluant TrueCrypt) ;
- partage entre Linux et Windows.
Dans l'état actuel des choses, il semblerait qu'il n'y ait que deux solutions. La première est d'utiliser un volume chiffré dans le format LUKS, pour Linux Unified Key Setup, mais également lisible sous Windows grâce à FreeOTFE (le logiciel lui-même est en français). La deuxième est de se tourner vers une clé chiffrée matériellement de la marque IronKey, qui évite bien des galères comme nous allons le voir ci-après, mais particulièrement onéreuse.
Une ou plusieurs partitions ?
Le volume chiffré peut prendre deux formes : soit une partition, soit un fichier (dans lequel se « cache » un système de fichiers complet). Une partition LUKS est très agréable d'usage sous Linux, puisqu'elle est reconnue automatiquement comme n'importe quelle autre partition, il suffit de taper sa phrase de passe quand elle nous l'est demandée.
Pour être lisible sous Windows même sans connexion internet, il faut mettre FreeOTFE sur la clé USB, évidemment hors du volume chiffré. La solution évidente est d'avoir deux partitions : l'une chiffrée, l'autre pas. Pour un disque dur externe, pas besoin d'aller chercher plus loin, mais pas pour une clé USB, car, et c'est là que le bât blesse, Windows ne reconnait pas les partitions supplémentaires d'une clé USB…
Il existe deux astuces (nécessitant un logiciel propriétaire), l'une efficace mais ne fonctionnant qu'avec quelques clés et susceptible d'en détruire certaines, l'autre très alambiquée et nécessitant d'avoir un accès administrateur sur la machine windows.
Une clé ou deux ?
Si on s'en tient à une seule partition sur une clé USB, deux solutions s'offrent à nous :
- utiliser deux clés, une chiffrée et l'autre pas ;
- placer le volume chiffré dans un fichier, lui-même sur l'unique clé USB.
J'ai exclu la première solution, entre autre parce que l'idée d'avoir besoin d'une deuxième clé pour faire fonctionner la première me dérange, mais la deuxième m'a amené à écrire deux petits scripts (pour monter et démonter le volume) car, à l'inverse d'une partition, un fichier LUKS n'est pas reconnu comme tel sous Linux. Pour vous donner une idée :
#!/bin/bash sudo losetup /dev/loop0 /media/disk/cle.vol sudo cryptsetup luksOpen /dev/loop0 vault sudo mount -t vfat -o uid=1000,gid=1000 /dev/mapper/vault /home/idoric/Vault #!/bin/bash sudo umount /home/idoric/Vault sudo cryptsetup luksClose vault sudo losetup -d /dev/loop0
Plusieurs volumes chiffrés, ou formater en NTFS ou exFAT ?
Ce paragraphe ne vous concerne que si votre clé USB fait plus de 4 Go.
Par défaut, l'unique partition d'une clé USB est formatée en FAT32. Or, il n'est pas possible de créer un fichier de plus de 4 Go dans un système de fichier FAT32.
La première solution consiste à créer plusieurs volumes pour autant de fichiers, chacun de 4 Go. On voit vite le problème si on veut un total de 15 Go chiffrés sur une clé de 16 Go…
L'autre solution consiste à employer un autre système de fichier, lisible sans ajout par Windows, ce qui nous laisse NTFS et exFAT. Si on veut espérer lire la clé sur autre chose qu'un ordinateur, la solution d'avenir sera peut-être exFAT, qui marche d'ores et déjà sous Linux. En attendant, il ne faut pas oublier que NTFS n'a jamais été conçu pour cette usage et réduit la durée de vie d'une mémoire flash comme l'est une clé USB, car il est journalisé et écrit la date de dernier accès à un fichier même s'il s'agit d'une simple lecture de celui-ci.
Est-ce bien la peine ?
Résumons, vouloir chiffrer les données de sa clé USB peut nécessiter un important travail de mise en place, est contraignant au quotidien, et limite l'accès à nos données, là où ça aurait fonctionné si elles ne l'avaient pas été. Alors, pourquoi le faire et comment conserver la motivation de le faire ?
Il y a deux mois et demi, j'ai perdu ma clé USB deux heures pour finalement la retrouver dans la trousse d'une élève. Bien sûr il y avait mes sujets à venir, voire même leur correction, mais ce n'était pas le pire, il y avais surtout mon firefox portable. Soit les mots de passe stockés sont eux-même protégés par un mot de passe, mais rien qu'avec l'historique, c'est toute ma vie qui aurait été étalée… et vous, si vous perdiez votre clé USB ?
Commentaires
En résumé, cet article n'existerait pas si Microsoft avait conçu FAT 32 en pensant 2 sec à l'avenir, et si Windows pouvait lire les clés USB multi-partition comme n'importe-quel autre OS... je vous laisse conclure vous-même !