OpenSSL 3.4 présente de nouvelles API et des mises à jour FIPS
OpenSSL 3.4 apporte de nouvelles fonctionnalités cryptographiques, notamment des suites de chiffrement d'intégrité uniquement pour TLS 1.3, des optimisations ECC et des mises à jour du fournisseur FIPS.
OpenSSL a publié la version 3.4, qui introduit des modifications importantes et est potentiellement incompatible avec OpenSSL 3.3 dans certains cas.
Parmi les changements majeurs, les fonctions « TS_VERIFY_CTX_set_* » ont été dépréciées au profit de nouveaux remplacements « TS_VERIFY_CTX_set0_* », qui promettent une sémantique améliorée.
Les utilisateurs Windows verront également une refonte de la façon dont les répertoires OPENSSLDIR, ENGINESDIR et MODULESDIR sont utilisés : ces emplacements peuvent désormais être définis au moment de l'exécution à l'aide de clés de registre, par opposition à la configuration précédente au moment de la construction.
D'autres changements incluent des mises à jour des algorithmes SHAKE-128 et SHAKE-256. Ceux-ci nécessitent désormais un réglage explicite de leur longueur de sortie, les rendant inutilisables avec « EVP_DigestFinal/_ex() » sans définir le paramètre « xoflen ». Pendant ce temps, les implémentations d'échange de clés X25519 et X448 dans le fournisseur FIPS ne sont actuellement pas approuvées, signalées par une propriété « fips=no ».
Le train de dépréciation se poursuit, avec des fonctions telles que « SSL_SESSION_get_time() », « SSL_SESSION_set_time() » et « SSL_CTX_flush_sessions() » étant remplacées par leurs variantes respectives « _ex », qui sont conçues pour être sécurisées pour Y2038 pour les plates-formes prenant en charge les types d'heure sécurisés pour Y2038.
Il y a également un changement dans la façon dont la renégociation est gérée dans les hellos du client TLS : pour les connexions avec des versions TLS minimales supérieures à 1.0, une extension de renégociation vide sera utilisée à la place du SCSV de renégociation vide.
OpenSSL 3.4 introduit également plusieurs nouvelles fonctionnalités. Il ajoute notamment la prise en charge des algorithmes de signature composite récupérés directement, tels que RSA-SHA2-256, avec les nouvelles fonctions API correspondantes. Cette version étend également les indicateurs FIPS dans le fournisseur FIPS, en préparation aux futures exigences de validation FIPS 140-3.
La prise en charge de la RFC 9579 (PBMAC1) a été ajoutée pour PKCS#12, et la version inclut une source de départ aléatoire supplémentaire facultative sous la forme de RNG JITTER, activée via une bibliothèque de jitterentropie liée statiquement. De plus, les nouvelles options « -not_before » et « -not_after » fournissent des moyens explicites de définir les dates de début et de fin des certificats créés à l'aide des commandes req et x509.
Concernant TLS 1.3, OpenSSL prend désormais en charge les suites de chiffrement d'intégrité uniquement TLS_SHA256_SHA256 et TLS_SHA384_SHA384. Il existe également une prise en charge des requêtes CRL dans CMP, des extensions X.509v3 supplémentaires liées aux certificats d'attribut et une prise en charge initiale des certificats d'attribut selon RFC 5755.
Enfin, un ajout remarquable pour l'optimisation des performances est la possibilité de personnaliser l'initialisation du groupe ECC à l'aide de valeurs précalculées, que l'implémentation du P-256 exploite désormais pour réduire l'utilisation du processeur.
Le journal des modifications de la version contient une liste détaillée de toutes les modifications apportées à OpenSSL 3.4.