Le Forum Non Officiel de la DEDIBOX
Vous n'êtes pas identifié.
Pages: 1
Bonjour à vous,
Voila, étant locataire d'un serveur dedibox doté d'une distribution Gentoo. J'ai soudainement ressenti le besoin d'activer le support du padlock afin de pouvoir le tester, j'ai donc procédé à son activation avec ces quelques étapes :
Je suis parti d'une base saine et mise à jour, emerge --sync && emerge -uav world
passage vers gcc 4.1.1 et profil 2006.1 x86
emerge -eav system && emerge -ev world
#USE="symlink" emerge gentoo-sources
Ici j'ai utilisé le kernel par défaut de la distribution et j'hesite à passer en Hardened-Sources
le flag symlink permet de linker automatiquement /usr/src/linux vers la nouvelle version du kernel
------------------------------------------------------------------------------------------------------------------
Se rendre sur le site du projet padlock afin de télécharger les patch des noyaux (meme si les noyaux supportent le cryptage matériel AES padlock, il reste le SHA1 et SHA256)
http://www.logix.cz/michal/devel/padlock/ afin d'y télécharger les patchs, clique droit sur le lien et copier l'adresse du lien pour firefox
Pour ma part j'ai utilisé les patchs pour le kernel linux-2.6.17-gentoo-r8
Il faut procéder dans un certain ordre pour éviter d'avoir des erreurs, donc d'abord, on se rend dans le rep /usr/src/linux afin d'y placer les patchs :
1) prerequisities for Linux kernel before 2.6.18-rc2
http://www.logix.cz/michal/devel/padloc … .6.17.diff
2) le PadLock SHA patch for 2.6.16, 2.6.17 and 2.6.18
http://www.logix.cz/michal/devel/padloc … plete.diff
Récupération des patchs :
#cd /usr/src/linux && wget http://www.logix.cz/michal/devel/padloc … .6.17.diff && wget http://www.logix.cz/michal/devel/padloc … plete.diff
Application des rustines (patchs)
#patch -p1 < padlock-prereq-2.6.17.diff
#patch -p1 < padlock-sha-complete.diff
------------------------------------------------------------------------------------------------------------------
Compilation du kernel avec invocation de menu config
à noter qu'il est possible de récupérer l'ancienne configuration du kernel en copiant le .config de celuici vers /usr/src/linux et en invoquant make oldconfig (seulement lorsque les changements sont mineurs)
# make menuconfig
Se rendre à la séction
Cryptographic options --->
Hardware crypto devices --->
et compiler le tout en dur ou en module
<*> Support for VIA PadLock ACE
<*> PadLock driver for AES algorithm
<*> PadLock driver for SHA1 and SHA256 algorithms
Après, on compile le noyau :
# make && make modules_install
Prendre un café, se faire 2, 3 grilles de sudoku et :
Copier le nouveau noyau dans /boot
# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.17-gentoo-r8
Il ne reste plus qu'à editer le bootloader grub ou lilo en remplaçant l'ancienne valeur par l'ancienne
nano /boot/grub/grub.conf (faire une sauvegarde) du fichier.
faire la combinaison de touches ctrl+w pour lancer une recherche de la ligne concernant le noyau compilé : "bzImage" et remplacer la fin par le nouveau noyau obtenu, soit bzImage-2.6.17-gentoo-r8
puis combinaison de touches ctrl + x et confirmer en pressant la touche o (ou y si prompt en anglais)
Un dernier
#reboot
et il ne reste plus qu'à prier
Si la machine redevient accéssible dans les 5 minutes suivant le reboot, tout va bien (ou pas trop mal)
Il reste alors à compiler les paquets de openssl et openssh avec les patchs padlock
------------------------------------------------------------------------------------------------------------------
Patcher Openssl
Il faut pour cela depackager le build du paquet avec la commande
# ebuild /usr/portage/dev-libs/openssl/openssl-0.9.8c-r2.ebuild unpack
Puis, se rendre dans le rep temporaire d'extraction du paquet :
# cd /var/tmp/portage/openssl-0.9.8c-r2/work/openssl-0.9.8c/
Telecharger le patch depuis le site du projet via padlock
# wget http://www.logix.cz/michal/devel/padloc … b-sha.diff
Patcher !
# patch -p1 < openssl-0.9.8b-sha.diff
Recompiler ![]()
# ebuild /usr/portage/dev-libs/openssl/openssl-0.9.8c-r2.ebuild compile
Make
# ebuild /usr/portage/dev-libs/openssl/openssl-0.9.8c-r2.ebuild install
Emerge
# ebuild /usr/portage/dev-libs/openssl/openssl-0.9.8c-r2.ebuild qmerge
------------------------------------------------------------------------------------------------------------------
La manipulation est assez similaire pour openssh
# ebuild /usr/portage/net-misc/openssh/openssh-4.3_p2-r1.ebuild unpack
Puis, se rendre dans le rep temporaire d'extraction du paquet :
# cd /var/tmp/portage/openssh-4.3_p2-r1/work/openssh-4.3_p2/
Telecharger le patch depuis le site du projet via padlock
# wget http://www.logix.cz/michal/devel/padloc … gines.diff
Patcher !
# patch -p1 < openssh-3.8p1-engines.diff
Recompiler ![]()
# ebuild /usr/portage/net-misc/openssh/openssh-4.3_p2-r1.ebuild compile
Make
# ebuild /usr/portage/net-misc/openssh/openssh-4.3_p2-r1.ebuild install
Emerge
# ebuild /usr/portage/net-misc/openssh/openssh-4.3_p2-r1.ebuild qmerge
un dernier coup de
# openssl speed -evp aes-128-ecb
# openssl speed -evp aes-128-ecb -engine padlock
Pour comparer les résultats
Pour infos, j'ai utilisé des optimisations p4 avec support sse2 sse3 donc il paraitrait que les performances du cryptage matériel soient en retrait comparé à un support C3-2
Mes résultats sont, à charge nulle :
Sans Padlock :
# openssl speed -evp aes-128-ecb
Doing aes-128-ecb for 3s on 16 size blocks: 4 937 579 aes-128-ecb's in 3.00s
Doing aes-128-ecb for 3s on 64 size blocks: 1 320 481 aes-128-ecb's in 3.00s
Doing aes-128-ecb for 3s on 256 size blocks: 337 316 aes-128-ecb's in 3.00s
Doing aes-128-ecb for 3s on 1024 size blocks: 84 845 aes-128-ecb's in 3.00s
Doing aes-128-ecb for 3s on 8192 size blocks: 10 623 aes-128-ecb's in 3.00s
OpenSSL 0.9.8c 05 Sep 2006
built on: Mon Sep 18 06:40:30 CEST 2006
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx)
compiler: i686-pc-linux-gnu-gcc -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -Os -march=i686 -pipe -mmmx -msse -msse2 -msse3 -fomit-frame-pointer -mfpmath=sse
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
The 'numbers' are in 1 000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128-ecb 26 333.75k 28 170.26k 28 784.30k 28 960.43k 29 007.87k
Avec Padlock
# openssl speed -evp aes-128-ecb -engine padlock
engine "padlock" set.
Doing aes-128-ecb for 3s on 16 size blocks: 25 726 651 aes-128-ecb's in 3.00s
Doing aes-128-ecb for 3s on 64 size blocks: 23 414 521 aes-128-ecb's in 3.00s
Doing aes-128-ecb for 3s on 256 size blocks: 15 362 118 aes-128-ecb's in 3.00s
Doing aes-128-ecb for 3s on 1024 size blocks: 6 253 859 aes-128-ecb's in 3.00s
Doing aes-128-ecb for 3s on 8192 size blocks: 956 639 aes-128-ecb's in 3.00s
OpenSSL 0.9.8c 05 Sep 2006
built on: Mon Sep 18 06:40:30 CEST 2006
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx)
compiler: i686-pc-linux-gnu-gcc -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -Os -march=i686 -pipe -mmmx -msse -msse2 -msse3 -fomit-frame-pointer -mfpmath=sse
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
aes-128-ecb 137 208.81k 499 509.78k 1 310 900.74k 2 134 650.54k 2 612 262.23k
Donc si y'a quelque chose qui cloche ou une étape oubliée, je serais ravi de l'apprendre ![]()
PS: l'étape login/pass devient instantannée quand openssh est compilé avec le support du padlock
Dernière modification par Namevac (2006-09-19 19:49:09)
Hors ligne
# openssl speed -evp sha1
Doing sha1 for 3s on 16 size blocks: 1 244 466 sha1's in 2.83s
Doing sha1 for 3s on 64 size blocks: 919 455 sha1's in 2.81s
Doing sha1 for 3s on 256 size blocks: 527 094 sha1's in 2.83s
Doing sha1 for 3s on 1024 size blocks: 189 787 sha1's in 2.80s
Doing sha1 for 3s on 8192 size blocks: 27 475 sha1's in 2.80s
OpenSSL 0.9.8c 05 Sep 2006
built on: Mon Sep 18 06:40:30 CEST 2006
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx)
compiler: i686-pc-linux-gnu-gcc -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -Os -march=i686 -pipe -mmmx -msse -msse2 -msse3 -fomit-frame-pointer -mfpmath=sse
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
sha1 7 035.85k 20 941.32k 47 680.59k 69 407.82k 80 384.00k
# openssl speed -evp sha1 -engine padlock
engine "padlock" set.
Doing sha1 for 3s on 16 size blocks: 874 457 sha1's in 2.83s
Doing sha1 for 3s on 64 size blocks: 824 170 sha1's in 2.80s
Doing sha1 for 3s on 256 size blocks: 722 337 sha1's in 2.84s
Doing sha1 for 3s on 1024 size blocks: 469 233 sha1's in 2.83s
Doing sha1 for 3s on 8192 size blocks: 109 053 sha1's in 2.79s
OpenSSL 0.9.8c 05 Sep 2006
built on: Mon Sep 18 06:40:30 CEST 2006
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) idea(int) blowfish(idx)
compiler: i686-pc-linux-gnu-gcc -fPIC -DOPENSSL_PIC -DZLIB_SHARED -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -Os -march=i686 -pipe -mmmx -msse -msse2 -msse3 -fomit-frame-pointer -mfpmath=sse
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
sha1 4 943.93k 18 838.17k 65 112.07k 169 786.07k 320 201.50k
Dernière modification par Namevac (2006-09-19 07:15:21)
Hors ligne
Presque prêt pour aller dans la section Gentoo du wiki! Juste quelques "equery" qui trainent dans les commandes au lieu de "ebuild", et la version de openssl stable c'est la 0.9.8c-r2 maintenant (qui peut faire planter openssh, gaffe à l'update).
Pour le noyau, mon grub/menu.lst pointe directement sur vmlinuz, créé avec make install (dans les sources noyau): il recopie vmlinuz, System.map, config et déplace les anciens en .old histoire d'être tranquille.
Ca serait bien qu'ils integrent les derniers patchs non présents dans les sources noyau, openssl/h quand même (au moins pour les utilisateurs de C7 sur autres distribs
).
Hors ligne
Question bête : ca sert à quoi Padlock ?

Hors ligne
Merci pour ta contribution et la correction de mes erreurs voyageur
je les ai pris en compte et corrigés ![]()
sinon, le padlock est décrit sur ce site
presence-oc
ou encore sur le site officiel dedibox
Nos serveurs dédiés sont équipés du processeur VIA C7 2 GHz.
Ce processeur bénéficie de nombreuses fonctionnalités notamment les instructions Padlock permettant le chiffrement SSL matériel des données en (AES-256) à plus de 20 Go/sec.
De par ses fonctionnalités de chiffrement matériel, ce processeur est idéal pour les applications sécurisées de e-commerce, paiements en ligne et VPN haute performances...
Hors ligne
Merci pour la précision ![]()

Hors ligne
2 entrées à ce sujet de le bugzilla gentoo:
http://bugs.gentoo.org/show_bug.cgi?id=148629
http://bugs.gentoo.org/show_bug.cgi?id=145537
Pages: 1