Présentation des nouveautés majeures
OpenSSL 4.1.0 se positionne comme une version fonctionnelle qui ajoute le support de DTLS 1.3 (RFC 9147) ainsi que la prise en charge du mécanisme GREASE défini par le RFC 8701. La documentation ossl-guide-dtlsv13(7) décrit les nouvelles options de configuration, tandis que l’API du listener SSL accepte désormais les flux DTLS, ouvrant la voie à des serveurs qui peuvent gérer simultanément TLS et DTLS.
Optimisations matérielles et cibles de compilation
Le release introduit deux nouvelles cibles de construction pour Microsoft Visual C++ 2013 – VC-WIN32-MSVC2013 et VC-WIN64A-MSVC2013 – afin de combler les lacunes du support C99 dans cet environnement. En parallèle, les cibles VC-WIN64I (Windows‑Itanium) et VC-CE (Windows CE) sont supprimées, ce qui simplifie la matrice de build.
Sur le plan des performances, plusieurs implémentations cryptographiques sont optimisées pour des architectures spécifiques. Les opérations NTT de ML‑DSA et ML‑KEM sont accélérées sur ppc64le, tandis que les opérations ML‑DSA bénéficient d’une optimisation x86_64. Les fonctions SHAKE sont exécutées en parallèle quatre fois grâce à AVX‑512 sur x86_64, et le décodage AES‑CBC utilise à la fois AVX‑512 et les extensions VAES, réduisant le nombre de cycles par bloc. Ces améliorations ciblent les charges de travail post‑quantiques où les algorithmes ML‑DSA/KEM sont prévus pour remplacer les schémas classiques.
Extensions protocolaires et architecture émergente
Outre DTLS 1.3, OpenSSL 4.1.0 ajoute le KDF dédié à IKEv2, permettant aux implémentations VPN de dériver des clés conformes aux exigences de l’Internet Key Exchange version 2. Le support initial de l’architecture Elbrus2000 (e2k) indique une volonté d’élargir la portée du code source aux processeurs russes basés sur le jeu d’instructions VLIW.
Le changement du utilitaire tsget vers la bibliothèque Net::Curl::Easy (remplaçant le paquet abandonné WWW::Curl::Easy) impose aux utilisateurs de mettre à jour leurs dépendances Perl avant de migrer, sous peine de ruptures de script.
Limitations connues et impact sur les déploiements
Quatre bugs critiques sont répertoriés. Le ticket #32878 décrit la perte de tous les enregistrements post‑handshake en cas de KeyUpdate DTLS 1.3, ce qui empêche la retransmission de tickets de session. Le ticket #33277 signale qu’une erreur permanente de réception sur un listener DTLS peut être masquée par SSL_ERROR_WANT_READ, prolongeant indéfiniment l’attente de l’application. Le ticket #33278 indique que les échecs d’écriture non bloquants peuvent être mal classés comme SSL_ERROR_SYSCALL, conduisant à la fermeture prématurée de connexions encore valides. Enfin, le ticket #33242 montre que les serveurs DTLS 1.3 peuvent interrompre la poignée de main avec une alerte unexpected_message lorsqu’un client acquitte partiellement le premier vol de paquets, situation fréquente après perte de paquets.
Ces problèmes exigent des vérifications supplémentaires lors de la mise en production de services DTLS, notamment la mise en place de mécanismes de suivi des accusés de réception et la gestion explicite des codes d’erreur mentionnés. La correction de ces bugs est prévue pour une version ultérieure, ce qui implique de planifier des mises à jour de sécurité dès que les correctifs seront disponibles.