DEDIBOX-NEWS.COM

Le Forum Non Officiel de la DEDIBOX

Vous n'êtes pas identifié.

#1 2006-09-19 07:06:55

Namevac
Je débarque
Date d'inscription: 2006-09-19
Messages: 8

[Suggestion Tutorial]Support Padlock kernel-openssl-openssh

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 smile

# 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 smile

# 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 wink

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

 

#2 2006-09-19 07:12:54

Namevac
Je débarque
Date d'inscription: 2006-09-19
Messages: 8

Re: [Suggestion Tutorial]Support Padlock kernel-openssl-openssh

# 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

 

#3 2006-09-19 13:15:00

voyageur
Membre
Lieu: Paris
Date d'inscription: 2006-06-22
Messages: 23

Re: [Suggestion Tutorial]Support Padlock kernel-openssl-openssh

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 wink ).


Voyageur
cafarelli.fr dedibox-gentoo

Hors ligne

 

#4 2006-09-19 13:32:56

Gaetan
Maitre Jeidi
Date d'inscription: 2006-05-04
Messages: 418

Re: [Suggestion Tutorial]Support Padlock kernel-openssl-openssh

Question bête : ca sert à quoi Padlock ?


http://gaetan-allart.com/ubar.png

Hors ligne

 

#5 2006-09-19 13:39:09

Namevac
Je débarque
Date d'inscription: 2006-09-19
Messages: 8

Re: [Suggestion Tutorial]Support Padlock kernel-openssl-openssh

Merci pour ta contribution et la correction de mes erreurs voyageur

je les ai pris en compte et corrigés wink

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

 

#6 2006-09-19 13:53:19

Gaetan
Maitre Jeidi
Date d'inscription: 2006-05-04
Messages: 418

Re: [Suggestion Tutorial]Support Padlock kernel-openssl-openssh

Merci pour la précision wink


http://gaetan-allart.com/ubar.png

Hors ligne

 

#7 2006-09-22 16:04:38

ElBumba
Invité

Re: [Suggestion Tutorial]Support Padlock kernel-openssl-openssh

 

Pied de page des forums

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson