Auteur Sujet: Test de performance CPU OpenSSL  (Lu 5217 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Test de performance CPU OpenSSL
« le: 04 mai 2021 à 09:54:35 »
Extrait du sujet Serveur 40 Gb/s Appliwave pour tester son débit

Pour la capacité à faire 40 Gb/s en https sur une seule connexion, cela me semble presque possible en aes-128-gcm.

Voici le résumé du comparatif OpenSSL :


Les commandes pour simuler le chiffrement d'un trafic https en mono / multiu-thread :
- aes-128-cbc mono : openssl speed -elapsed -evp aes-128-cbc
- aes-128-cbc 6 threads : openssl speed -multi6 -elapsed -evp aes-128-cbc
- aes-128-cbc 12 threads : openssl speed -multi6 -elapsed -evp aes-128-cbc
- aes-128-cbc multi (24 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-128-cbc
- aes-256-cbc mono : openssl speed -elapsed -evp aes-256-cbc
- aes-256-cbc 6 threads : openssl speed -multi 6 -elapsed -evp aes-256-cbc
- aes-256-cbc 12 threads : openssl speed -multi 12 -elapsed -evp aes-256-cbc
- aes-256-cbc multi (24 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-256-cbc
- aes-128-gcm mono : openssl speed -elapsed -evp aes-128-gcm
- aes-128-gcm 6 threads : openssl speed -multi 6 -elapsed -evp aes-128-gcm
- aes-128-gcm 12 threads : openssl speed -multi 12 -elapsed -evp aes-128-gcm
- aes-128-gcm multi (24 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-128-gcm
- aes-256-gcm mono : openssl speed -elapsed -evp aes-256-gcm
- aes-256-gcm 6 threads : openssl speed -multi 6 -elapsed -evp aes-256-gcm
- aes-256-gcm 12 threads : openssl speed -multi 12 -elapsed -evp aes-256-gcm
- aes-256-gcm multi (24 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-256-gcm
- chacha20-poly1305 mono : openssl speed -elapsed -evp chacha20-poly1305
- chacha20-poly1305 6 threads : openssl speed -multi 6 -elapsed -evp chacha20-poly1305
- chacha20-poly1305 12 threads : openssl speed -multi 12 -elapsed -evp chacha20-poly1305
- chacha20-poly1305 multi (24 ici) : openssl speed -multi $(nproc) -elapsed -evp chacha20-poly1305

Le CPU du serveur :


Comparatif avec un PC Asus All-in-One PC ET2321I  :
- openssl speed rsa4096 : 114,4 signatures par seconde / 7 599 vérifications par seconde
- 2 threads : openssl speed -multi 2 rsa4096 : 161,3 signatures par seconde / 13 431 vérifications par seconde
- 4 threads : openssl speed -multi $(nproc) rsa4096 : 208,8 signatures par seconde / 14 150 vérifications par seconde
- aes-128-cbc mono : openssl speed -elapsed -evp aes-128-cbc : 580,308 Mo/s
- aes-128-cbc 2 threads : openssl speed -multi 2 -elapsed -evp aes-128-cbc : 1034,617 Mo/s
- aes-128-cbc multi (4 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-128-cbc : 2049,308 Mo/s
- aes-256-cbc mono : openssl speed -elapsed -evp aes-256-cbc : 416,465 Mo/s
- aes-256-cbc 2 threads : openssl speed -multi 2 -elapsed -evp aes-256-cbc : 742,182 Mo/s
- aes-256-cbc multi (4 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-256-cbc : 1468,296 Mo/s
- aes-128-gcm mono : openssl speed -elapsed -evp aes-128-gcm : 2539,209 Mo/s
- aes-128-gcm 2 threads : openssl speed -multi 2 -elapsed -evp aes-128-gcm : 3962,760 Mo/s
- aes-128-gcm multi (4 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-128-gcm : 4612,063 Mo/s
- aes-256-gcm mono : openssl speed -elapsed -evp aes-256-gcm : 1993,758 Mo/s
- aes-256-gcm 2 threads : openssl speed -multi 2 -elapsed -evp aes-256-gcm : 3549,889 Mo/s
- aes-256-gcm multi (4 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-256-gcm : 3542,215 Mo/s
- chacha20-poly1305 mono : openssl speed -elapsed -evp chacha20-poly1305 : 1373,192 Mo/s
- chacha20-poly1305 2 threads : openssl speed -multi 2 -elapsed -evp chacha20-poly1305 : 2435,452 Mo/s
- chacha20-poly1305 multi (4 ici) : openssl speed -multi $(nproc) -elapsed -evp chacha20-poly1305 : 2788,824 Mo/s

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Test performance OpenSSL
« Réponse #1 le: 04 mai 2021 à 11:21:18 »
Pour la capacité à faire 40 Gb/s en https sur une seule connexion, cela me semble presque possible en aes-128-gcm.
Si tu as un autre serveur 40Gbps pour la réception  ;D
En pratique il faudrait limiter les copies avant et après le chiffrement, et toute la charge due à l'envoi de paquets, ou pouvoir séparer chiffrement et envoi sur des coeurs différents.

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Test performance OpenSSL
« Réponse #2 le: 04 mai 2021 à 12:18:06 »
Autre test de performance :

- 1 thread : openssl speed rsa4096 : 263,9 signatures par seconde / 17 042 vérifications par seconde


- 6 threads : openssl speed -multi  6 rsa4096 : 1509,0 signatures par seconde / 102 354 vérifications par seconde


- 12 threads : openssl speed -multi 12 rsa4096 : 1854,0 signatures par seconde / 171 521 vérifications par seconde


- 24 threads : openssl speed -multi $(nproc) rsa4096 : 3179,2 signatures par seconde / 209 058 vérifications par seconde


artiflo

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 314
Test performance OpenSSL
« Réponse #3 le: 04 mai 2021 à 13:34:05 »
Je vois que tu fais les tests en 4096bits, 2048bits ne suffirait-il pas ?

J'imagine qu'il doit y avoir une différence de perf pas neutre quand même entre les 2 ?


EDIT : Je reformule, intéressant ces données en 4096bits et en 2048bits ça donne quoi ?

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Test performance OpenSSL
« Réponse #4 le: 04 mai 2021 à 13:59:29 »
Mes tests habituels, c'est ceux-ci, ce sont les mode d'opération de chiffrement par bloc en cryptographie symétrique utilisés sur les sites internet (le navigateur indique le mode négocié).
Les commandes pour simuler le chiffrement d'un trafic https en mono / multiu-thread :
- aes-128-cbc mono : openssl speed -elapsed -evp aes-128-cbc
- aes-128-cbc 6 threads : openssl speed -multi6 -elapsed -evp aes-128-cbc
- aes-128-cbc 12 threads : openssl speed -multi6 -elapsed -evp aes-128-cbc
- aes-128-cbc multi (24 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-128-cbc
- aes-256-cbc mono : openssl speed -elapsed -evp aes-256-cbc
- aes-256-cbc 6 threads : openssl speed -multi 6 -elapsed -evp aes-256-cbc
- aes-256-cbc 12 threads : openssl speed -multi 12 -elapsed -evp aes-256-cbc
- aes-256-cbc multi (24 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-256-cbc
- aes-128-gcm mono : openssl speed -elapsed -evp aes-128-gcm
- aes-128-gcm 6 threads : openssl speed -multi 6 -elapsed -evp aes-128-gcm
- aes-128-gcm 12 threads : openssl speed -multi 12 -elapsed -evp aes-128-gcm
- aes-128-gcm multi (24 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-128-gcm
- aes-256-gcm mono : openssl speed -elapsed -evp aes-256-gcm
- aes-256-gcm 6 threads : openssl speed -multi 6 -elapsed -evp aes-256-gcm
- aes-256-gcm 12 threads : openssl speed -multi 12 -elapsed -evp aes-256-gcm
- aes-256-gcm multi (24 ici) : openssl speed -multi $(nproc) -elapsed -evp aes-256-gcm
- chacha20-poly1305 mono : openssl speed -elapsed -evp chacha20-poly1305
- chacha20-poly1305 6 threads : openssl speed -multi 6 -elapsed -evp chacha20-poly1305
- chacha20-poly1305 12 threads : openssl speed -multi 12 -elapsed -evp chacha20-poly1305
- chacha20-poly1305 multi (24 ici) : openssl speed -multi $(nproc) -elapsed -evp chacha20-poly1305

Le test openssl speed rsa4096, c'est le test que fait NextINpact sur toutes les machines qui leur passe entre les mains. Je fais plutôt ça pour pouvoir comparer avec les tests de NextINpact.

Personnellement, un débit en Mb/s sur les bloc en cryptographie utilisés en permanence pour le serveur je trouve cela plus parlant.

Ce qui est plus étonnant, c'est les variations entre distribution dans les test de NextINpact.

Exemple avec Parallels Desktop 16 sur un Mac avec le nouveau Apple M1, réalisé par NextINpact : pourquoi une telle différence de résultats entre Ubuntu et Fedora ?




vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Test performance OpenSSL
« Réponse #5 le: 04 mai 2021 à 14:10:57 »
Comparatif rsa4096 / rsa2048 :

- 1 thread :
openssl speed rsa4096 : 263,9 signatures par seconde / 17 042 vérifications par seconde
openssl speed rsa2048 : 1757,7 signatures par seconde / 60 059 vérifications par seconde

- 6 threads :
openssl speed -multi  6 rsa4096 : 1 509,0 signatures par seconde / 102 354 vérifications par seconde
openssl speed -multi  6 rsa2048 : 10 522,3 signatures par seconde / 360 802 vérifications par seconde

- 12 threads :
openssl speed -multi 12 rsa4096 : 1 854,0 signatures par seconde / 171 521 vérifications par seconde
openssl speed -multi 12 rsa2048 : 21 007,9 signatures par seconde / 711 981 vérifications par seconde

- 24 threads :
openssl speed -multi $(nproc) rsa4096 : 3 179,2 signatures par seconde / 209 058 vérifications par seconde
openssl speed -multi $(nproc) rsa2048 : 20 883,5 signatures par seconde / 712 414 vérifications par seconde[/size]


Mes tests habituels :
- signatures/sec et vérifications/sec mono : openssl speed rsa4096
- signatures/sec et vérifications/sec multi : openssl speed -multi $(nproc) rsa4096
- aes-128-cbc mono : openssl speed -elapsed -evp aes-128-cbc
- aes-128-cbc multi : openssl speed -multi $(nproc) -elapsed -evp aes-128-cbc
- aes-256-cbc mono : openssl speed -elapsed -evp aes-256-cbc
- aes-256-cbc multi : openssl speed -multi $(nproc) -elapsed -evp aes-256-cbc
- aes-128-gcm mono : openssl speed -elapsed -evp aes-128-gcm
- aes-128-gcm multi : openssl speed -multi $(nproc) -elapsed -evp aes-128-gcm
- aes-256-gcm mono : openssl speed -elapsed -evp aes-256-gcm
- aes-256-gcm multi : openssl speed -multi $(nproc) -elapsed -evp aes-256-gcm
- chacha20-poly1305 mono : openssl speed -elapsed -evp chacha20-poly1305
- chacha20-poly1305 multi : openssl speed -multi $(nproc) -elapsed -evp chacha20-poly1305

artiflo

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 314
Test performance OpenSSL
« Réponse #6 le: 04 mai 2021 à 14:48:00 »
Merci, c'est bien ce que j'avais en tête, l'écart et colossale entre les 2.

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Test performance OpenSSL
« Réponse #7 le: 04 mai 2021 à 18:15:56 »
C'est effectivement utilisable avec sendfile, avec /dev/zero ça peut être sympa, peut-être même pour envoyer des données aléatoires à un client HTTP.

oh /dev/zero bonne idée ca, je vais tester.

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Test performance OpenSSL
« Réponse #8 le: 19 juin 2021 à 15:55:53 »
J'ai réalisés des tests, sur un PC peu performant sans capacité matérielle AES :
Intel NUC DN2820FYKH acheté en 2015
CPU Intel Celeron N2820 @2.13 GHz (cpu 2 cœurs, il n'a pas le jeu d'instructions AES)
RAM 4 Go DDR3
SSD 256 Go Crucial MX100 SATA

Voici la commande lscpu :

Architecture :                          x86_64
Mode(s) opératoire(s) des processeurs : 32-bit, 64-bit
Boutisme :                              Little Endian
Address sizes:                          36 bits physical, 48 bits virtual
Processeur(s) :                         2
Liste de processeur(s) en ligne :       0,1
Thread(s) par cœur :                    1
Cœur(s) par socket :                    2
Socket(s) :                             1
Nœud(s) NUMA :                          1
Identifiant constructeur :              GenuineIntel
Famille de processeur :                 6
Modèle :                                55
Nom de modèle :                         Intel(R) Celeron(R) CPU  N2820  @ 2.13GHz
Révision :                              3
Vitesse du processeur en MHz :          1046.134
Vitesse maximale du processeur en MHz : 2399,3999
Vitesse minimale du processeur en MHz : 533,2000
BogoMIPS :                              4266.66
Virtualisation :                        VT-x
Cache L1d :                             48 KiB
Cache L1i :                             64 KiB
Cache L2 :                              1 MiB
Nœud NUMA 0 de processeur(s) :          0,1
Vulnerability Itlb multihit:            Not affected
Vulnerability L1tf:                     Not affected
Vulnerability Mds:                      Vulnerable: Clear CPU buffers attempted, no microcode; SMT disabled
Vulnerability Meltdown:                 Mitigation; PTI
Vulnerability Spec store bypass:        Not affected
Vulnerability Spectre v1:               Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:               Mitigation; Full generic retpoline, IBPB conditional, IBRS_FW, STIBP disabled, RSB filling
Vulnerability Srbds:                    Not affected
Vulnerability Tsx async abort:          Not affected
Drapaux :                               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer rdrand lahf_lm 3dnowprefetch epb pti ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat

J'ai testé ce PC avec plusieurs système d’exploitation Ubuntu 64bits :
- Ubuntu 18.04.5 / Noyau HWE 5.4.0-74-generic / OpenSSL: OpenSSL 1.1.1 / Gnome 3.28.2
- Ubuntu 20.04.2 / Noyau GA 5.4.0-74-generic / OpenSSL: OpenSSL 1.1.1f / Pas d'interface graphique (tests réalisés par connexion ssh)
- Ubuntu 20.04.2 / Noyau HWE 5.8.0-55-generic / OpenSSL: OpenSSL 1.1.1f / Pas d'interface graphique (tests réalisés par connexion ssh)
- Ubuntu 21.04 / Noyau 5.11.0-18-generic / OpenSSL: OpenSSL 1.1.1j / Gnome 3.38.5

Pour une partie des tests, les résultats sont identiques quel que soit la configuration :
- aes-128-cbc mono-thread : openssl speed -elapsed -evp aes-128-cbc : Même résultats pour les 4 configurations soit 48,9 Mo/s
- aes-128-cbc multi-threads : openssl speed -multi $(nproc) -elapsed -evp aes-128-cbc : Même résultats pour les 4 configurations soit 97,8 Mo/s
- aes-256-cbc mono-thread : openssl speed -elapsed -evp aes-256-cbc : Même résultats pour les 4 configurations soit 34,7 Mo/s
- aes-256-cbc multi-threads : openssl speed -multi $(nproc) -elapsed -evp aes-256-cbc : Même résultats pour les 4 configurations soit 69,3 Mo/s

- chacha20-poly1305 mono-thread : openssl speed -elapsed -evp chacha20-poly1305 : Même résultats pour les 4 configurations soit 243,1 Mo/s
- chacha20-poly1305 multi-threads : openssl speed -multi $(nproc) -elapsed -evp chacha20-poly1305 : Même résultats pour les 4 configurations soit 486,5 Mo/s

- signatures/sec et vérifications/sec mono-thread : openssl speed rsa4096 : Même résultats pour les 4 configurations soit 28,4 signatures par secondes et 1875 vérifications/sec
- signatures/sec et vérifications/sec multi-threads : openssl speed -multi $(nproc) rsa4096 : Même résultats pour les 4 configurations soit 56,9 signatures par secondes et 3750 vérifications/sec

Mais pour AES-GCM, les résultats se dégradent significativement avec Ubuntu 20.04 et 21.04, comparé à Ubuntu 18.04 : (pour rappel, le CPU, il n'a pas le jeu d'instructions AES, c'est donc fait en soft)

aes-128-gcm mono-thread : openssl speed -elapsed -evp aes-128-gcm
- Ubuntu 18.04 / Noyau 5.4   / OpenSSL 1.1.1  : 149,0 Mo/s
- Ubuntu 20.04 / Noyau 5.4   / OpenSSL 1.1.1f : 45,4 Mo/s
- Ubuntu 20.04 / Noyau 5.8   / OpenSSL 1.1.1f : 45,4 Mo/s
- Ubuntu 21.04 / Noyau 5.11 / OpenSSL 1.1.1j : 45,4 Mo/s

aes-128-gcm multi-threads : openssl speed -multi $(nproc) -elapsed -evp aes-128-gcm
- Ubuntu 18.04 / Noyau 5.4   / OpenSSL 1.1.1  : 296,3 Mo/s
- Ubuntu 20.04 / Noyau 5.4   / OpenSSL 1.1.1f : 90,8 Mo/s
- Ubuntu 20.04 / Noyau 5.8   / OpenSSL 1.1.1f : 90,7 Mo/s
- Ubuntu 21.04 / Noyau 5.11 / OpenSSL 1.1.1j : 90,1 Mo/s

aes-256-gcm mono-thread : openssl speed -elapsed -evp aes-256-gcm
- Ubuntu 18.04 / Noyau 5.4   / OpenSSL 1.1.1  : 114,3 Mo/s
- Ubuntu 20.04 / Noyau 5.4   / OpenSSL 1.1.1f : 33,2 Mo/s
- Ubuntu 20.04 / Noyau 5.8   / OpenSSL 1.1.1f : 33,1 Mo/s
- Ubuntu 21.04 / Noyau 5.11 / OpenSSL 1.1.1j : 33,1 Mo/s

aes-256-gcm multi-threads : openssl speed -multi $(nproc) -elapsed -evp aes-256-gcm
- Ubuntu 18.04 / Noyau 5.4   / OpenSSL 1.1.1  : 227,2 Mo/s
- Ubuntu 20.04 / Noyau 5.4   / OpenSSL 1.1.1f : 66,3 Mo/s
- Ubuntu 20.04 / Noyau 5.8   / OpenSSL 1.1.1f : 66,3 Mo/s
- Ubuntu 21.04 / Noyau 5.11 / OpenSSL 1.1.1j : 65,7 Mo/s

Je ne comprends pas pourquoi cette différence pour aes-128-gcm et aes-256-gcm entre Ubuntu 18.04 et Ubuntu 20.04 avec le même noyau 5.4

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Test performance OpenSSL
« Réponse #9 le: 19 juin 2021 à 15:57:33 »
Quelques copie d'écran :

Ubuntu 18.04.5 / Noyau HWE 5.4.0-74-generic / OpenSSL: OpenSSL 1.1.1 / Gnome 3.28.2 :



OpenSSL 1.1.1  11 Sep 2018
built on: Mon Mar 22 11:42:42 2021 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-nwsL4a/openssl-1.1.1=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2



Ubuntu 20.04.2 / Noyau GA 5.4.0-74-generic / OpenSSL: OpenSSL 1.1.1f / Pas d'interface graphique :


OpenSSL 1.1.1f  31 Mar 2020
built on: Wed Apr 28 00:37:28 2021 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-olnknv/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2



Ubuntu 20.04.2 / Noyau HWE 5.8.0-55-generic / OpenSSL: OpenSSL 1.1.1f / Pas d'interface graphique :


OpenSSL 1.1.1f  31 Mar 2020
built on: Wed Apr 28 00:37:28 2021 UTC
options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-olnknv/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Test de performance CPU OpenSSL
« Réponse #10 le: 19 juin 2021 à 17:02:53 »
Caractéristiques d'OpenSSL :

Ubuntu 18.04.5 / Noyau HWE 5.4.0-74-generic / OpenSSL: OpenSSL 1.1.1 / Gnome 3.28.2 :


$ openssl version
OpenSSL 1.1.1  11 Sep 2018

$ openssl version -f
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-nwsL4a/openssl-1.1.1=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2

$ openssl engine -c -tt
(rdrand) Intel RDRAND engine
 [RAND]
     [ available ]
(dynamic) Dynamic engine loading support
     [ unavailable ]


Ubuntu 20.04.2 / Noyau GA 5.4.0-74-generic / OpenSSL: OpenSSL 1.1.1f / Pas d'interface graphique :

$ openssl version
OpenSSL 1.1.1f  31 Mar 2020

$ openssl version -f
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-olnknv/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2

$ openssl engine -c -tt
(rdrand) Intel RDRAND engine
 [RAND]
     [ available ]
(dynamic) Dynamic engine loading support
     [ unavailable ]


Écart entre les flags (gauche: 18.04, droite: 20.04)



La perte de performance pourrait être lié à l'implémentation bitsliced d'AES a été désactivée ( BSAES_ASM ). Manifestement, ce type d'implémentation est plus rapide sans AES-NI. Merci à @isithran pour l'info.

DOPENSSL_TLS_SECURITY_LEVEL=level : niveau de sécurité par défaut. S'il n'est pas défini, 1 est utilisé. Dans le passé, cela était difficile car les applications devaient définir un certain nombre de paramètres distincts (chiffres pris en charge, courbes prises en charge, algorithmes de signature pris en charge) pour atteindre cet objectif et certains cas (taille du paramètre DH par exemple) ne pouvaient pas du tout être vérifiés. En définissant un niveau de sécurité approprié, une grande partie de cette complexité peut être évitée.
Les bits des limites de sécurité affectent tous les paramètres pertinents, y compris les algorithmes de chiffrement de la suite de chiffrement, les courbes ECC prises en charge, les algorithmes de signature pris en charge, les tailles de paramètres DH, les tailles de clés de certificat et les algorithmes de signature. Cette limite s'applique quels que soient les autres paramètres personnalisés définis par une application : ainsi, si la suite de chiffrement est définie sur ALL, seules les suites de chiffrement compatibles avec le niveau de sécurité sont autorisées.

Harvester

  • Abonné Free fibre
  • *
  • Messages: 344
  • Freebox Révolution - Limours (91)
    • Site perso
Test de performance CPU OpenSSL
« Réponse #11 le: 19 juin 2021 à 18:20:29 »
Citer
Je ne comprends pas pourquoi cette différence pour aes-128-gcm et aes-256-gcm entre Ubuntu 18.04 et Ubuntu 20.04 avec le même noyau 5.4

Quelle est la version du paquet intel-microcode qui est installée dans les deux cas ? Ca ne viendrait pas des mitigations Spectre et Meltdown ?