View previous topic :: View next topic |
Ce HOWTO est : |
Inutile |
|
8% |
[ 2 ] |
Trop peu approfondi |
|
4% |
[ 1 ] |
Trop complexe |
|
0% |
[ 0 ] |
Intéressant |
|
88% |
[ 22 ] |
|
Total Votes : 25 |
|
Author |
Message |
ultraViolet Apprentice
Joined: 03 Apr 2004 Posts: 280 Location: Lyon, France
|
Posted: Tue Sep 07, 2004 6:56 pm Post subject: [howto]crypter ses partitions avec un noyau 2.6 |
|
|
Salut à tous,
Je viens de réaliser mon premier how to, à portée modeste puisqu'il n'explique pas comment crypter la partition racine, ou un seul fichier / répértoire. N'hésitez pas à me corriger si j'ai écrit n'importe quoi ou si vous trouvez des parties incomplètes, ou incompréhensibles.
Crypter ses partitions (pour noyau 2.6.x) HOW TO
1) Résumé :
Ce HOW-TO résume la procédure nécessaire à l'encryption d'une partition avec les noyaux 2.6.x. Il n'a pas la prétention de couvrir l'ensemble du sujet, mais devrait permettre à un débutant d'empécher la CIA ou le FBI de fouiller dans ses données personnelles
2) Introduction :
Supposons qu'un individu dérobe votre ordinateur portable. Où qu'un espion s'introduise chez vous afin de dérober votre disque dur . Comment l'empécher d'accèder à vos données ? Le logiciel d'identification initial ne vous protège pas rééllement. En effet, rien ne l'empéche de booter sur un autre disque dur en utilisant le votre comme disque esclave.
Linux propose cependant à ses utilisateurs d'encrypter / décoder les données à la volée. C'est-à-dire que les données sont cryptées sur le disque dur, et qu'un mot de passe est nécessaire pour le monter. Mais du point de vue de l'utilisateur local ou des échanges distants, l'opération est transparente (ainsi, on peut toujours vous attaquer via un protocole type ftp ou autre). N'en reste pas moins qu'une tierce personne, désirant accéder au contenu du disque dur, après qu'il soit démonté, (par exemple en redémarrant votre machine), devra utiliser des méthodes extrèmes (et très couteuses en temps de calcul) pour y arriver.
3) Principe :
On attache la partition à un "loopback device" (dispositif de réalimentation au mot à mot, alors ne m'en voulez pas si j'utilise le terme anglais ), qui se charge des opérations d'encryption /décodage. On monte ensuite ce "device" comme un disque dur traditionnel, en précisant les options d'encryptions à utiliser.
4) Les différents algorythmes d'encryption :
Quand on décide d'encoder une de ses partitions, il est d'abord nécessaire de choisir la facon dont les données vont être encodées. Le noyau de linux propose plusieurs algorythmes, dont certains n'ont, semblerait-il, encore jamais été craqués.
D'après mes recherches, les codes les plus difficiles à craquer semblent être "aes", "serpent" et "twofish". AES semblant être le plus répandu, je lui ai personnellement préféré twofish, partant du principe que ce qui est moins connu est moins soumis aux attaques .
Il faut ensuite choisir un niveau d'encryption. Chaque algorythme peut être associé à plusieurs niveaux exprimé en bits. Les clés de 128 bits sont en théorie suffisante pour empécher une personne normale de vous craquer (car elle n'est pas sensée disposer de 100 supercalculateurs ). Les clés de 256 bits devrait vous protéger pendant les 10 prochaines années en dépit de l'évolution technologique , mais elle risque d'être plus gourmandes en ressources. Notez que la loi n'autorise pas toujours l'encryption. En France, toute clé de chiffrage égalant ou dépassant les 128 bits doit être communiquée à l'état. Mais comme nous le verrons plus tard, il est impossible de savoir si votre disque dur est encrypté ou non, à moins d'accèder à votre /etc/fstab.
5) Configuration requise :
- Les derniers util-linux
- Un noyau 2.6.x avec les options suivantes activées :
Code: | Device Drivers ---> Block devices --->
<*> Loopback device support
<*> Cryptoloop Support
Cryptographic options --->
Le ou les algorythmes que vous souhaitez utiliser. Exemple :
<*> Twofish cipher algorithms
|
6) Effacement de la partition :
Si la partition que vous voulez utiliser à déjà contenu des données, il faut d'abord l'effacer complétement en y inscrivant des données aléatoires. Le processus est d'autant plus long que votre disque est volumineux. Si la partition ne contient aucune donnée sensible, passez directement au point suivant.
Code: |
cat /dev/urandom > /dev/hda4
ou hda4 est la partition à effacer (à substituer par la partition à encoder, bien sur).
|
Attention ! Après cette opération, votre partition sera entièrement effacée (bon je sais, ca fait 3 fois que je le dis, mais bon..)
7) Attacher la partition à un loopback device :
Code: |
(en tant que root)
losetup -e aes-256 /dev/loop0 /dev/hda4
ou (par exemple)
losetup -e twofish-128 /dev/loop0 /dev/hda4
|
où twofish et aes sont l'encodage, et 256 et 128 sont la puissance de
cryptage. Ainsi, aes-128 encoderait en aes 128 bits.
Si vous encodez une deuxieme partition par la suite, vous utiliserez loop1, puis loop2 pour la troisieme...
L'utilitaire losetup vous demande le mot de passe. Soyez attentif au mot de passe que vous utilisez, il ne vous sera demandé qu'une fois ! Évitez les chiffres et les caractéres changeant en qwerty / azerty car si vous décidez de monter la partition au démarrage, vous risquez de devoir jongler de l'un à l'autre, la keymap n'ayant pas encore été chargée.
Créér le système de fichiers sur la partition :
Code: |
mke2fs /dev/loop0
ou (par exemple)
mkreiserfs /dev/loop0
|
Une fois de plus, attention ! Cette opération rendra les données de votre disque dur inaccessible !
Notez que le choix du système de fichier influence sur la charge du processeur lors des opérations d'encryption / décryption. J'ai pu constater que lorsque les transferts sont très rapides, le processeur est davantage sollicité.
9) Monter la partition :
Code: |
mkdir /mnt/mondossier (créér un dossier pour monter la partition)
mount -t ext2 /dev/loop0 /mnt/mondossier
ou (par exemple)
mount -t reiserfs /dev/loop0 /mnt/mondossier
|
Ca y est. Votre partition est encodée, et utilisable.
Copiez un fichier sur la partition pour le test. Vous apprécierez ainsi le temps mis pour effectuer l'opération d'encryption à la volée, et les ressources CPU nécessaires. J'utilise ext3.
10) Vérification :
- Démontez le device loopback :
Code: |
umount /mnt/mondossier
losetup -d /dev/loop0
|
- Remontez le :
Code: |
losetup -e aes-128 /dev/loop0 /mnt/mondossier (tapez votre mot de passe)
mount -t ext2 /dev/loop0 /mnt/mondossier
|
Attention : Une fois que le mot de passe est entré, il n'y a pas de message de confirmation. Si vous vous trompez dans sa saisie, la commande mount vous dira qu'il n'y pas de système de fichiers lisibles sur votre partition. D'où l'efficacité, d'ailleurs, si une personne indésirable souhaite faire la même chose (puisqu'elle ne saura même pas s'il y a des données sur votre partition).
Lisez le fichier copié précédemment pour vérifier que tout fonctionne.
11) Monter les partitions au démarrage :
Maintenant, modifiez fstab pour y inclure votre partition, par exemple :
Code: |
/dev/hda7 /mnt/mondossier ext3 defaults,loop=/dev/loop0,encryption=twofish-128 0 0
|
N'oubliez pas d'utiliser 0 comme valeur finale, car la vérification du disque précéde l'association au device loopback (et donc échoue)
12) Si vous êtes sceptiques, vous pouvez rebooter et vérifier que tout fonctionne (en n'oubliant de taper votre mot de passe en qwerty, et d'activer si besoin le clavier numérique).
13) Liens :
http://www.sdc.org/~leila/usb-dongle/readme.html
https://forums.gentoo.org/viewtopic.php?t=108162&highlight=encryption+howto
Last edited by ultraViolet on Tue Sep 07, 2004 7:11 pm; edited 1 time in total |
|
Back to top |
|
|
zdra Veteran
Joined: 30 Nov 2003 Posts: 1693 Location: Bruxelles, Belgique
|
Posted: Tue Sep 07, 2004 7:05 pm Post subject: |
|
|
j'ai voté "interraissant", bien que ce ne soit pas plus utile pour moi qu'une simple culture général, mais c'est certainement utile pour d'autres. de toutes facons un howto n'est jamais à jeter
Beau travaille !
pour etre parfait je mettrais quand meme le titre du style: [howto]crypter ses partitions avec un noyau 2.6 |
|
Back to top |
|
|
DuF Advocate
Joined: 09 Dec 2002 Posts: 2687 Location: Paris
|
Posted: Tue Sep 07, 2004 7:10 pm Post subject: |
|
|
Moi je ne comprends pas à quel moment tu donnes le mot de passe pour monter les partitions au démarrage, ça se fait pendant le boot avant d'être connecté par le login après la séquence de boot ? |
|
Back to top |
|
|
kernelsensei Bodhisattva
Joined: 22 Feb 2004 Posts: 5619 Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)
|
Posted: Tue Sep 07, 2004 7:13 pm Post subject: |
|
|
il doit bien avoir un ralentissement niveau ecriture/lecture sur une partoche cryptee non ?
c'est sensible comme ralentissement ? _________________ $ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join' |
|
Back to top |
|
|
guilc Bodhisattva
Joined: 15 Nov 2003 Posts: 3326 Location: Paris - France
|
Posted: Tue Sep 07, 2004 7:16 pm Post subject: |
|
|
Bien ce tuto
Je tiens toutefois a y apporter un bémol, sur l'utilisation de cryptoloop, qui est maintenant déprécated, et en sursis sur les kernel 2.6...
Voir ceci : http://kerneltrap.org/node/view/3521
il faut maintenant utiliser dm-crypt au lieu de cryptoloop, qui soufre de mutliples failles sécurité. _________________ Merci de respecter les règles du forum.
Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing |
|
Back to top |
|
|
kernelsensei Bodhisattva
Joined: 22 Feb 2004 Posts: 5619 Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)
|
Posted: Tue Sep 07, 2004 7:19 pm Post subject: |
|
|
guilc wrote: | Bien ce tuto
Je tiens toutefois a y apporter un bémol, sur l'utilisation de cryptoloop, qui est maintenant déprécated, et en sursis sur les kernel 2.6...
Voir ceci : http://kerneltrap.org/node/view/3521
il faut maintenant utiliser dm-crypt au lieu de cryptoloop, qui soufre de mutliples failles sécurité. |
merci pour l'info _________________ $ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join' |
|
Back to top |
|
|
ultraViolet Apprentice
Joined: 03 Apr 2004 Posts: 280 Location: Lyon, France
|
Posted: Tue Sep 07, 2004 7:21 pm Post subject: |
|
|
DuF wrote: | Moi je ne comprends pas à quel moment tu donnes le mot de passe pour monter les partitions au démarrage, ça se fait pendant le boot avant d'être connecté par le login après la séquence de boot ? |
Oui, pendant le montage des partitions, tout au début... |
|
Back to top |
|
|
ultraViolet Apprentice
Joined: 03 Apr 2004 Posts: 280 Location: Lyon, France
|
Posted: Tue Sep 07, 2004 7:24 pm Post subject: |
|
|
kernel_sensei wrote: | il doit bien avoir un ralentissement niveau ecriture/lecture sur une partoche cryptee non ?
c'est sensible comme ralentissement ? |
C'est surtout le processeur qui est concerné...
Sur mon ancien proc athlon 2000, en ext2, 2%
Sur mon proc amd64 3000, en ext3, 2%
Par contre en reiserfs, il y a un ralentissement (mais pas si grand que ca, a peine perceptible), et surtout le processeur monte à 6% de plus dans gkrellm... |
|
Back to top |
|
|
ultraViolet Apprentice
Joined: 03 Apr 2004 Posts: 280 Location: Lyon, France
|
Posted: Tue Sep 07, 2004 7:27 pm Post subject: |
|
|
guilc wrote: | Bien ce tuto
Je tiens toutefois a y apporter un bémol, sur l'utilisation de cryptoloop, qui est maintenant déprécated, et en sursis sur les kernel 2.6...
Voir ceci : http://kerneltrap.org/node/view/3521
il faut maintenant utiliser dm-crypt au lieu de cryptoloop, qui soufre de mutliples failles sécurité. |
Mais dm-crypt n'est pas dans le noyau, non ? Pour l'instant en tout cas, ca fait trois mois que j'ai 400Go de données encryptées, et je n'ai pas eu de problèmes de pertes de données... Je vais quand même essayer de voir comment dm-crypt fonctionne et d'updater ce howto... |
|
Back to top |
|
|
guilc Bodhisattva
Joined: 15 Nov 2003 Posts: 3326 Location: Paris - France
|
Posted: Tue Sep 07, 2004 7:46 pm Post subject: |
|
|
Ce n'est pas un probleme de perte de données, mais les dévelos du kernel considèrent que l'utilisateur est floué quand on lui dit que cryptoloop est une solution de cryptage de périphérique loop, parceque ce n'est pas sécure : le cryptage se casse facilement d'après eux (je n'ai pas cherché d'exploit pour ça, mais je leur fait confiance, si ils le disent, c'est que ça doit etre vrai ). C'est pour ça que le support est arreté.
dm-crypt : http://www.saout.de/misc/dm-crypt/
Ça utilise le device-mapper : CONFIG_BLK_DEV_DM et CONFIG_DM_CRYPT dans le support "Device Drivers > Multi-device support (RAID and LVM)"
Le portage n'a pas l'air bien compliqué, c'est tout expliqué dans le lien que j'ai donné juste au dessus, et il y a une méthode de portage des devices cryptoloop _________________ Merci de respecter les règles du forum.
Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing |
|
Back to top |
|
|
ultraViolet Apprentice
Joined: 03 Apr 2004 Posts: 280 Location: Lyon, France
|
Posted: Wed Sep 08, 2004 9:59 am Post subject: |
|
|
Merci pour les tuyaux !
Je vais donc tester dm-crypt et j'ajouterais la méthode. Apparemment, le fait que l'un ou l'autre soit plus ou moins sécurisé est controversé, mais dm-crypt semble meilleur car:
-il ne souffre pas des bugs de loop.c
-il ne dépend pas d'un outil specifique (util-linux)
-il utilise mempool, ce qui le rend plus stable que cryptoloop
Sinon, de manière général, pensez vous qu'il faille que je sois plus précis dans les manip ou moins précis ? |
|
Back to top |
|
|
scout Veteran
Joined: 08 Mar 2003 Posts: 1991 Location: France, Paris en Semaine / Metz le W-E
|
Posted: Wed Sep 08, 2004 10:12 am Post subject: |
|
|
ultraViolet wrote: | Sinon, de manière général, pensez vous qu'il faille que je sois plus précis dans les manip ou moins précis ? |
Non c'est très bien comme ça, et merci beaucoup pour ce Howto _________________ http://petition.eurolinux.org/ - Petition against ePatents
L'essence de la finesse |
|
Back to top |
|
|
guilc Bodhisattva
Joined: 15 Nov 2003 Posts: 3326 Location: Paris - France
|
|
Back to top |
|
|
moon69 Guru
Joined: 30 Aug 2003 Posts: 444
|
Posted: Wed Sep 08, 2004 10:53 am Post subject: |
|
|
tres bien ce howto!
merco +1
ya possibiliter de mettre le passwd dans fstab ?
meme si c'est pas secu, car je pense utiliser le systeme pour des disques amovilbles seulement! |
|
Back to top |
|
|
ultraViolet Apprentice
Joined: 03 Apr 2004 Posts: 280 Location: Lyon, France
|
Posted: Wed Sep 08, 2004 12:12 pm Post subject: |
|
|
moon69 wrote: | tres bien ce howto!
merco +1
ya possibiliter de mettre le passwd dans fstab ?
meme si c'est pas secu, car je pense utiliser le systeme pour des disques amovilbles seulement! |
Je pense que password=xxxx dans les paramètres doit passer, comme pour samba... |
|
Back to top |
|
|
DuF Advocate
Joined: 09 Dec 2002 Posts: 2687 Location: Paris
|
Posted: Wed Sep 08, 2004 1:03 pm Post subject: |
|
|
ultraViolet wrote: | DuF wrote: | Moi je ne comprends pas à quel moment tu donnes le mot de passe pour monter les partitions au démarrage, ça se fait pendant le boot avant d'être connecté par le login après la séquence de boot ? |
Oui, pendant le montage des partitions, tout au début... |
OK merci, je comprends mieux pourquoi il y a la remarque sur le qwerty. |
|
Back to top |
|
|
navier-stokes n00b
Joined: 03 Jul 2004 Posts: 41
|
Posted: Wed Sep 29, 2004 8:45 am Post subject: |
|
|
je me sers de cryptsetup et de dmsetup, mais pas pour crypter mon disque root, seulement tous les autres et la swap. Je range les Clefs de mes disques durs cryptes sur une clef usb (que je vais appeller stick pour eviter les confusions)
emerge cryptsetup et les options kernel sus-mentionnees.
Je cree des clefs aleatoires comme ca,
Code: |
dd if=/dev/urandom of=/mnt/usbstick/key bs=12k count=100 |
J'encrypte le disque AVANT de le formatter
Code: |
cryptsetup -c aes -d /mnt/usbstick/key create DisqueCrypte /dev/hda1 |
ensuite on a un /dev/mapper/DisqueCrypte qu'on peut formatter et monter.
Code: |
mke2fs -j /dev/mapper/DisqueCrypte
mount /dev/mapper/DisqueCrypte /mnt/DisqueCrypte
|
Pour une partition swap crypte, j'enleve la ligne de la partition swap dans fstab et je rajoute a /etc/conf.d/local.start:
Code: |
cryptsetup -c serpent -d /dev/urandom create enc-swap /dev/hdX
mkswap /dev/mapper/enc-swap
swapon /dev/mapper/enc-swap
|
Pour enlever la partition decryptee il suffit de faire
umount /mnt/DsiqueCrypte
cryptsetup remove DisqueCrypte
et sinon de refaire:
cryptsetup -c aes -d /mnt/usbstick/key create DisqueCrypte /dev/hda1
mount /dev/mapper/DisqueCrypte /mnt/DisqueCrypte
pour remonter le tout.
Ensuite je me suis fait un petit script pour monterle stick automatiquement qd il est insere, monter tous mes disques cryptes, demonter le stick, et enfin refaire un nouveau swap. Qd j'enleve le stick (non-monte) ca fait cryptsetup remove.
Dans gnome par exemple, on voit les icones des disques cryptes apparaitre sur le bureau une fois le stick insere.
Je laisse le usbstick avec les Clef le moins longtemps possible monte, juste le temps de monter tous les autre disques. Ensuite je nettoie la swap par securite, histoire qu'une empreinte en clair des Clefs n'y reste pas... _________________ Tyan Thunder K8W; dual 244's, 2Gigs ECC, SBLive, G4Ti4600,
Flatron lcd 885LE |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|