Après un an et demi de développement, la librairie OpenSSL 3.1.0 a été publiée avec l'implémentation des protocoles SSL/TLS et divers algorithmes de cryptage. Le support d'OpenSSL 3.1 sera assuré jusqu'en mars 2025. Le support des versions précédentes d'OpenSSL 3.0 et 1.1.1 durera jusqu'en septembre 2026 et septembre 2023 respectivement. Le code du projet est distribué sous la licence Apache 2.0.
Les principales nouveautés d'OpenSSL 3.1.0 :
- Le module FIPS prend en charge les algorithmes cryptographiques conformes à la norme de sécurité FIPS 140-3. Le processus de certification du module pour obtenir un certificat conforme aux exigences de FIPS 140-3 a été lancé. Jusqu'à la fin de la certification après la mise à jour d'OpenSSL vers la version 3.1, les utilisateurs peuvent continuer à utiliser le module FIPS certifié pour FIPS 140-2. Parmi les changements dans la nouvelle version du module, on note l'inclusion des algorithmes Triple DES ECB, Triple DES CBC et EdDSA, qui n'ont pas encore été testés pour leur conformité aux exigences de FIPS. La nouvelle version a également apporté des optimisations pour améliorer la performance et a commencé à exécuter des tests internes à chaque chargement du module, et pas seulement après installation.
- Le code OSSL_LIB_CTX a été retravaillé. Le nouveau modèle est débarrassé des blocages excessifs et permet d'atteindre une performance plus élevée.
- La performance des frameworks d'encodage et de décodage a été améliorée.
- Une optimisation de la performance liée à l'utilisation de structures internes (tables de hachage) et au caching a été effectuée.
- La vitesse de génération des clés RSA en mode FIPS a été augmentée.
- Pour différentes architectures de processeurs, des optimisations assembleur spécifiques ont été apportées aux implémentations des algorithmes AES-GCM, ChaCha20, SM3, SM4 et SM4-GCM. Par exemple, le code AES-GCM a été accéléré grâce aux instructions AVX512 vAES et vPCLMULQDQ.
- La fonction KBKDF (Key Based Key Derivation Function) a ajouté le support de l'algorithme KMAC (KECCAK Message Authentication Code).
- Différentes fonctions « OBJ_* » ont été adaptées pour une utilisation dans du code multithread.
- Il est désormais possible d'utiliser les instructions RNDR et les registres RNDRRS pour la génération de nombres pseudo-aléatoires, disponibles sur les processeurs basés sur l'architecture AArch64.
- Les fonctions OPENSSL_LH_stats, OPENSSL_LH_node_stats, OPENSSL_LH_node_usage_stats, OPENSSL_LH_stats_bio, OPENSSL_LH_node_stats_bio et OPENSSL_LH_node_usage_stats_bio ont été déclarées obsolètes. Le macro DEFINE_LHASH_OF a été déclaré obsolète.
Source : opennet.ru
