Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[howto]crypter ses partitions avec un noyau 2.6
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  

Ce HOWTO est :
Inutile
8%
 8%  [ 2 ]
Trop peu approfondi
4%
 4%  [ 1 ]
Trop complexe
0%
 0%  [ 0 ]
Intéressant
88%
 88%  [ 22 ]
Total Votes : 25

Author Message
ultraViolet
Apprentice
Apprentice


Joined: 03 Apr 2004
Posts: 280
Location: Lyon, France

PostPosted: Tue Sep 07, 2004 6:56 pm    Post subject: [howto]crypter ses partitions avec un noyau 2.6 Reply with quote

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
Code:
emerge 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.

8) 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
View user's profile Send private message
zdra
Veteran
Veteran


Joined: 30 Nov 2003
Posts: 1693
Location: Bruxelles, Belgique

PostPosted: Tue Sep 07, 2004 7:05 pm    Post subject: Reply with quote

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
View user's profile Send private message
DuF
Advocate
Advocate


Joined: 09 Dec 2002
Posts: 2687
Location: Paris

PostPosted: Tue Sep 07, 2004 7:10 pm    Post subject: Reply with quote

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
View user's profile Send private message
kernelsensei
Bodhisattva
Bodhisattva


Joined: 22 Feb 2004
Posts: 5619
Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)

PostPosted: Tue Sep 07, 2004 7:13 pm    Post subject: Reply with quote

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
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Tue Sep 07, 2004 7:16 pm    Post subject: Reply with quote

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
View user's profile Send private message
kernelsensei
Bodhisattva
Bodhisattva


Joined: 22 Feb 2004
Posts: 5619
Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)

PostPosted: Tue Sep 07, 2004 7:19 pm    Post subject: Reply with quote

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 :D
_________________
$ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join'
Back to top
View user's profile Send private message
ultraViolet
Apprentice
Apprentice


Joined: 03 Apr 2004
Posts: 280
Location: Lyon, France

PostPosted: Tue Sep 07, 2004 7:21 pm    Post subject: Reply with quote

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
View user's profile Send private message
ultraViolet
Apprentice
Apprentice


Joined: 03 Apr 2004
Posts: 280
Location: Lyon, France

PostPosted: Tue Sep 07, 2004 7:24 pm    Post subject: Reply with quote

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
View user's profile Send private message
ultraViolet
Apprentice
Apprentice


Joined: 03 Apr 2004
Posts: 280
Location: Lyon, France

PostPosted: Tue Sep 07, 2004 7:27 pm    Post subject: Reply with quote

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
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Tue Sep 07, 2004 7:46 pm    Post subject: Reply with quote

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
View user's profile Send private message
ultraViolet
Apprentice
Apprentice


Joined: 03 Apr 2004
Posts: 280
Location: Lyon, France

PostPosted: Wed Sep 08, 2004 9:59 am    Post subject: Reply with quote

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
View user's profile Send private message
scout
Veteran
Veteran


Joined: 08 Mar 2003
Posts: 1991
Location: France, Paris en Semaine / Metz le W-E

PostPosted: Wed Sep 08, 2004 10:12 am    Post subject: Reply with quote

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
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Wed Sep 08, 2004 10:23 am    Post subject: Reply with quote

scout wrote:

Non c'est très bien comme ça, et merci beaucoup pour ce Howto :)

+1 ;)
_________________
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
View user's profile Send private message
moon69
Guru
Guru


Joined: 30 Aug 2003
Posts: 444

PostPosted: Wed Sep 08, 2004 10:53 am    Post subject: Reply with quote

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
View user's profile Send private message
ultraViolet
Apprentice
Apprentice


Joined: 03 Apr 2004
Posts: 280
Location: Lyon, France

PostPosted: Wed Sep 08, 2004 12:12 pm    Post subject: Reply with quote

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
View user's profile Send private message
DuF
Advocate
Advocate


Joined: 09 Dec 2002
Posts: 2687
Location: Paris

PostPosted: Wed Sep 08, 2004 1:03 pm    Post subject: Reply with quote

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
View user's profile Send private message
navier-stokes
n00b
n00b


Joined: 03 Jul 2004
Posts: 41

PostPosted: Wed Sep 29, 2004 8:45 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
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