Openssl est une API qui fournit un environnement approprié pour chiffrer les données envoyées
Après un an et demi de développement et plusieurs versions correctives de la version précédente, la sortie de la nouvelle version de la bibliothèque « OpenSSL 3.1.0 » a été annoncée avec la mise en œuvre des protocoles SSL/TLS et de plusieurs algorithmes de chiffrement.
La prise en charge de cette nouvelle version d'OpenSSL 3.1 se poursuivra jusqu'en mars 2025, tandis que la prise en charge des anciennes versions d'OpenSSL 3.0 et 1.1.1 se poursuivra jusqu'en septembre 2026 et septembre 2023, respectivement.
Pour ceux qui ne connaissent pas OpenSSL, il s'agit d'un projet de logiciel libre basé sur SSLeay , qui consiste en une suite robuste d'outils d'administration et de bibliothèques liées à la cryptographie fournissant des fonctions cryptographiques à d'autres packages tels qu'OpenSSH et les navigateurs Web (pour un accès sécurisé aux sites HTTPS).
Ces outils aident le système à implémenter Secure Sockets Layer (SSL) ainsi que d'autres protocoles liés à la sécurité tels que Transport Layer Security (TLS). OpenSSL vous permet également de créer des certificats numériques pouvant être appliqués à un serveur, par exemple Apache.
OpenSSL est utilisé pour la validation chiffrée des clients de messagerie, des transactions Web pour les paiements par carte de crédit et, dans de nombreux cas, dans les systèmes qui nécessitent une sécurité pour les informations exposées sur le réseau, c'est-à-dire les « données confidentielles ».
Principales nouveautés d'OpenSSL 3.1.0
Dans cette nouvelle version d'OpenSSL 3.1.0, il est souligné que le module FIPS implémente la prise en charge des algorithmes cryptographiques conformes à la norme de sécurité FIPS 140-3 , et le processus de certification du module a commencé pour obtenir la certification de conformité FIPS 140-3.
Il est mentionné que tant que la certification n'est pas terminée après la mise à jour d'OpenSSL vers la branche 3.1, les utilisateurs peuvent continuer à utiliser un module FIPS certifié FIPS 140-2. Parmi les changements apportés à la nouvelle version du module, on distingue l'inclusion des algorithmes Triple DES ECB, Triple DES CBC et EdDSA, dont la conformité aux exigences FIPS n'a pas encore été testée. Toujours dans la nouvelle version, des optimisations ont été apportées pour améliorer les performances et une transition a été faite pour exécuter des tests internes avec chaque chargement de module, et pas seulement après l'installation.
Un autre changement qui se démarque est que a modifié la longueur de sel par défaut pour les signatures PKCS#1 RSASSA-PSS à la taille maximale qui est inférieure ou égale à la longueur du résumé à respecter
FIPS 186-4. Ceci est implémenté par une nouvelle option `OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX` ("auto-digestmax") pour le paramètre `rsa_pss_saltlen`, qui est maintenant la valeur par défaut.
De plus, le code OSSL_LIB_CTX a été retravaillé ; la nouvelle option est exempte de verrous inutiles et permet de meilleures performances.
Il convient également de souligner l'amélioration des performances des frameworks d'encodage et de décodage , ainsi que l'optimisation des performances liée à l'utilisation de structures internes (tables de hachage) et de la mise en cache, et également une vitesse améliorée de génération de clés RSA en mode FIPS.
Les algorithmes AES-GCM, ChaCha20, SM3, SM4 et SM4-GCM bénéficient d'optimisations d'assembleur spécifiques à différentes architectures de processeur. Par exemple, le code AES-GCM est accéléré par les instructions AVX512 vAES et vPCLMULQDQ.
La prise en charge de l'algorithme KMAC (KECCAK Message Authentication Code) a été ajoutée à KBKDF (Key-Based Key Derivation Function), et plusieurs fonctions « OBJ_* » ont été adaptées pour une utilisation dans du code multithread.
Ajout de la possibilité d'utiliser l'instruction RNDR et les registres RNDRRS disponibles sur les processeurs basés sur l'architecture AArch64 pour générer des nombres pseudo-aléatoires.
D'autre part, il est mentionné que la macro `DEFINE_LHASH_OF` est désormais obsolète au profit de la macro `DEFINE_LHASH_OF_EX`, qui omet la fonction spécifique au type correspondante pour les définitions de ces fonctions, que `OPENSSL_NO_DEPRECATED_3_1` soit défini ou non. C'est pourquoi les utilisateurs de `DEFINE_LHASH_OF` peuvent commencer à recevoir des avertissements de dépréciation pour ces fonctions, qu'ils les utilisent ou non. Il est recommandé aux utilisateurs de passer à la nouvelle macro, `DEFINE_LHASH_OF_EX`.
Enfin, si vous souhaitez en savoir plus sur cette nouvelle version, vous trouverez les détails en suivant ce lien.