Sortie d’OpenSSL 4.0.0
(github.com/openssl)- Une sortie majeure comprenant de nombreuses nouvelles fonctionnalités et modifications incompatibles
- La prise en charge de ECH (Encrypted Client Hello, RFC 9849) est intégrée, rendant inutile une implémentation séparée pour protéger la confidentialité des clients TLS
- Le code SSLv2 Client Hello, SSLv3 et engine a été complètement supprimé, entérinant la rupture avec les protocoles legacy
- Ajout de la prise en charge de la signature SM2 (
sm2sig_sm3), de l’échange de clés (curveSM2) basé sur la RFC 8998, ainsi que du groupe post-quantiquecurveSM2MLKEM768 - Ajout de nouvelles fonctions cryptographiques comme cSHAKE (SP 800-185), les digests ML-DSA-MU, la SNMP KDF, la SRTP KDF, etc.
- Prise en charge de la négociation de l’échange de clés FFDHE basé sur la RFC 7919 dans TLS 1.2
- Lors de l’installation du module FIPS, l’option
-defer_testspermet de différer l’exécution des auto-tests FIPS - Modernisation de l’API avec l’ajout du qualificateur
constà de nombreuses signatures de fonctions API et l’opacification deASN1_STRING, entre autres - Pour les fonctions obsolètes comme
X509_cmp_time(), il est recommandé de les remplacer parX509_check_certificate_times() - Avec l’utilisation du provider FIPS de
PKCS5_PBKDF2_HMAC, la vérification des valeurs minimales est désormais imposée, et des contrôles supplémentaires ont été ajoutés à la validation des CRL - Grand nettoyage des fonctionnalités legacy, notamment les méthodes personnalisées obsolètes
EVP_CIPHER,EVP_MD,EVP_PKEY, les fonctions de version SSL/TLS figées, le scriptc_rehash,BIO_f_reliable(), etc. - Suppression des anciennes cibles de build Apple comme
darwin-i386etdarwin-ppc - Prise en charge sous Windows du choix entre liaison statique et dynamique du runtime VC
- Cette sortie marque un tournant pour le renforcement de la sécurité et de la conformité aux standards d’OpenSSL
2 commentaires
J’ai l’impression que c’était hier, l’époque où on utilisait 1.1.1.
Réactions sur Hacker News
Certains se réjouissent enfin de l’ajout du support de Encrypted Client Hello (ECH)
En citant un billet du blog HAProxy sur l’état des piles SSL, ils insistent sur le fait qu’il ne faut désormais plus utiliser la v3
Auparavant, utiliser OpenSSL signifiait aussi être forcé d’utiliser sa propre pile QUIC
QUIC est un protocole qui réimplémente les fonctions de TCP au-dessus d’UDP, et constitue la base de HTTP/3
Mais même si l’implémentation QUIC d’OpenSSL ne plaisait pas, il n’y avait pas d’alternative
Par exemple, si curl était lié à OpenSSL, curl devait lui aussi automatiquement utiliser le QUIC d’OpenSSL
Il est rappelé que Daniel Stenberg de curl a écrit un billet de blog critique à ce sujet
À la question sur l’état actuel d’OpenSSL, certains rappellent que la sécurité s’est nettement améliorée depuis l’ancien incident Heartbleed
Mais beaucoup estiment que la qualité logicielle a au contraire régressé
La conception d’OpenSSL 3.0 a marqué un recul en matière de performances, et des projets majeurs comme pyca/cryptography montrent une volonté de remplacer OpenSSL
Les opérations centrales d’OpenSSL 3 sont bien plus lentes que celles de la 1.1.1, et il cite l’analyse des piles SSL par HAProxy ainsi que la déclaration de l’équipe Python cryptography
OpenSSL 3 a rendu de nombreux éléments dynamiques, ce qui a entraîné un usage excessif des verrous (locks), et l’API est passée au modèle OSSL_PARAM, provoquant une baisse de performances et une complexification du code
Par rapport à OpenSSL 3, certains indiquent que cette transition s’est déroulée de manière très fluide
Sous Fedora, à part la suppression des « Engines », la plupart des dépendances ont été corrigées sans problème majeur
Il est souligné que les procédures manuelles d’opt-out deviennent un point de friction de plus en plus important
La situation où il faut une levée de boucliers de la communauté pour améliorer les réglages par défaut est critiquée, avec ce rappel qu’il est difficile de gagner la confiance et facile de la perdre
Certains réagissent en plaisantant que la sortie semble calée sur le timing de la « suckerpinch video »
Du point de vue d’un non-spécialiste, ce changement ressemble à un grand ménage assez propre, mais les ruptures de compatibilité restent toujours pesantes
Ils se souviennent aussi qu’OpenSSL 3.x n’avait pas été particulièrement apprécié
Certains craignent qu’une montée de version majeure rende le logiciel plus lent, mais disent que les benchmarks n’ont montré en moyenne qu’environ 10 % de baisse de performances
À l’échelle de l’ensemble d’Internet, ils ajoutent que cela ne devrait pas poser de gros problème
L’augmentation de l’usage de const dans le code est bien accueillie
En environnement embarqué, il fallait souvent ajouter soi-même des
const, et le fait que cela soit désormais appliqué par défaut est appréciéEnfin, une plaisanterie imagine les cris d’angoisse des gestionnaires de paquets des distributions Linux