From: Michel Bouissou To: open-crypto@bouissou.net, pingouin@bouissou.net Date: Tue, 9 Apr 2002 09:56:00 +0200 Subject: [open-crypto] Mandrake 8.2 et chiffrement du swap Bonjour, J'ai finalisé mon patch de rc.sysinit qui "répare" le chiffrement du swap sous Mandrake 8.2. La version complète en un seul patch se trouve sur https://www.bouissou.net/wws/d_read/open-crypto/linux-crypto/Mdk82_fixes/ D'un point de vue technique, il n'apporte rien de nouveau par rapport à l'application successive des deux patchs précédents, mais: - Il améliore un peu les messages fournis au démarrage; - ...et il est en un seul morceau. N.B.: - Ce patch de rc.sysinit a été réalisé UNIQUEMENT pour une Mandrake 8.2 et n'est probablement PAS compatible avec une autre distribution. - Dans tous les cas de figure, ce patch nécessite la présence de loop-aes sur le système (qui est inclus avec le noyau standard sur la Mandrake 8.2) - L'utilisation de ce patch avec une autre distribution est susceptible de créer des problèmes. Vous avez été prévenu ;-) - Dans tous les cas de figure, l'utilisation de ce patch est entièrement à vos risques et périls, et je n'assume aucune responsabilité, ni ne fournis aucune espèce de garantie, etc... - Ce patch s'appliquant au script rc.sysinit sous licence GPL, est lui-même également sous licence GPL. En ce qui concerne la génération de la clé aléatoire de chiffrement, je résume le point où je me suis arrêté après discussion sur cette liste, et en m'inspirant d'idées de Jari Ruusu qui seront implémentées dans sa prochaine version du patch aux util-linux: - Une clé de session aléatoire est générée par mcookie à chaque boot, et différente pour chaque swap (si l'on utilise plusieurs swaps); - mcookie utilise pour s'initialiser les éléments suivants: - Un mix de différents paramètres pseudo-aléatoires du système à l'entropie probablement faible au démarrage: Timer, N° de pid... - 64 octets provenants de /dev/urandom (sur une Mandrake 8.2), ou 16 octets de /dev/random (sur d'autres distribs). L'entropie de /dev/random est probablement bonne, tandis que celle de /dev/urandom peut éventuellement laisser à désirer peu de temps après le démarrage du système - 40 K octets tirés du swap chiffré tel qu'il était au démarrage de la machine, avant que celui-ci ne soit immédiatement écrasé par de nouvelles données pseudo-aléatoires (par chiffrement de zéros avec la nouvelle clé de session). Le contenu du swap chiffré au démarrage de la machine est très hautement aléatoire, et ceci me semble donc constituer une excellente source d'entropie d'appoint. mcookie faisant un mix de tous ces éléments avant d'en ressortir un hash md5, il me semble que la clé de session obtenue en sortie offre toutes les garanties d'entropie nécessaires à une utilisation en toute sécurité. Installation du patch (en console root): Copier rc.sysinit.patch.gz dans /etc/rc.d, puis: cd /etc/rc.d gunzip rc.sysinit.patch.gz patch < rc.sysinit.patch Mise en oeuvre d'un swap chiffré: Il suffit d'éditer /etc/fstab, et de modifier la ligne définissant le (ou les) swap(s) comme suit (exemple): /dev/hda4 swap swap defaults 0 0 devient /dev/hda4 swap swap encrypted 0 0 ..puis rebooter le système. Le swap sera alors automatiquement chiffré par AES128 en utilisant une clé de session aléatoire différente à chaque boot. Une fois la machine redémarrée, il est facile de contrôler que le swap est désormais chiffré, par exemple: [root@totor etc]# swapon -s Filename Type Size Used Priority /dev/loop/0 partition 128512 0 0 /dev/loop/1 partition 128512 0 0 [root@totor etc]# losetup /dev/loop/0 /dev/loop/0 : [0007]:447 (/dev/hda4) décalage 0, AES128 cryptage [root@totor etc]# losetup /dev/loop/1 /dev/loop/1 : [0007]:747 (/dev/sda3) décalage 0, AES128 cryptage Cordialement. -- Michel Bouissou OpenPGP ID 0x5C2BEE8F Les querelles ne dureraient pas longtemps, si le tort n'était que d'un côté. -- La Rochefoucauld, Maximes ---------------------------------------------------------------------------- Pour poster sur cette liste: open-crypto@bouissou.net Désabonnement de la liste: open-crypto-unsubscribe@bouissou.net Homepage liste et archives: https://www.bouissou.net/wws/info/open-crypto ----------------------------------------------------------