Les dĂ©veloppeurs du projet OpenBSD ont prĂ©sentĂ© la version portable du paquet LibreSSL 3.9.0, dans le cadre duquel un fork d'OpenSSL est dĂ©veloppĂ©, visant Ă garantir un niveau de sĂ©curitĂ© plus Ă©levĂ©. Le projet LibreSSL se concentre sur un soutien de qualitĂ© pour les protocoles SSL/TLS, en Ă©liminant les fonctionnalitĂ©s superflues, en ajoutant des moyens de protection supplĂ©mentaires et en procĂ©dant Ă un nettoyage et une refonte significatifs de la base de code. La sortie de LibreSSL 3.9.0 est considĂ©rĂ©e comme expĂ©rimentale, dans laquelle des fonctionnalitĂ©s seront dĂ©veloppĂ©es pour ĂȘtre intĂ©grĂ©es dans OpenBSD 7.5. En mĂȘme temps, une version stable de LibreSSL 3.8.3 a Ă©tĂ© formĂ©e, corrigeant plusieurs erreurs spĂ©cifiques Ă Windows et renforçant le soutien Ă la technologie de protection CET (Control-flow Enforcement Technology).
Caractéristiques de LibreSSL 3.9.0 :
- Ajout du support des algorithmes de signature numérique basés sur ECDSA avec des hachages SHA-3.
- Ajout du support HMAC avec des hachages tronqués SHA-2 et SHA-3 comme PBE PRF.
- Des modifications ont Ă©tĂ© apportĂ©es pour amĂ©liorer la portabilitĂ© sur d'autres plateformes. Pour Ă©viter des problĂšmes lors de la liaison statique, la plupart des symboles exportĂ©s utilisĂ©s pour assurer la compatibilitĂ© sont prĂ©fixĂ©s par «libressl_». Dans les compilations basĂ©es sur CMake, l'export des symboles de compatibilitĂ© libcrypto a Ă©tĂ© arrĂȘtĂ©.
- Des modifications visant à améliorer la compatibilité avec OpenSSL ont été apportées. Par exemple, des alias ChaCha20 et chacha20 ont été ajoutés pour l'algorithme ChaCha, le fonctionnement des fonctions SSL_library_init() et OPENSSL_init_ssl() a été unifié, et les appels EVP_{CIPHER,MD}_CTX_init() ont été ajustés pour se comporter comme ceux d'OpenSSL.
- L'utilitaire openssl a ajouté le support des drapeaux «-new -force_pubkey», «-multivalue-rdn», «-set_issuer», «-set_subject» et «-utf8».
- La transition de l'appel OBJ_bsearch_() vers la fonction standard bsearch() a été réalisée.
- L'implémentation des fonctions by_file_ctrl(), EVP_Cipher{Init,Update,Final}() et API OBJ_* a été simplifiée.
- Une grande réorganisation de l'API EVP a été effectuée. Les fonctions EVP_add_{cipher,digest}() ont été supprimées.
- Le traitement de X509_TRUST a été simplifié.
- Les fonctions BIO_dump*() ont été réécrites.
- Le support pour les tables globales non adaptĂ©es Ă un usage multithreadĂ© a Ă©tĂ© arrĂȘtĂ©. En consĂ©quence, l'attribution d'alias aux algorithmes de chiffrement et de hachage, l'ajout de chaĂźnes personnalisĂ©es, de mĂ©thodes ASN.1, PKEY et CRL n'est plus pris en charge.
- Les fonctions BIO_set(), BIO_{sn,v,vsn}printf(), sk_find_ex() et OBJ_bsearch_() ont été supprimées, ainsi qu'un grand nombre de fonctions API CRYPTO obsolÚtes.
- L'accĂšs public Ă l'API X509_CERT_AUX et X509_TRUST a Ă©tĂ© arrĂȘtĂ©.
- Le support des algorithmes GOST et STREEBOG a Ă©tĂ© arrĂȘtĂ©.
- Le support du mécanisme CET (Control-flow Enforcement Technology) a été élargi, utilisé pour protéger contre l'exécution d'exploits basés sur des techniques de programmation orientée retour (ROP, Return-Oriented Programming).
Source : opennet.ru
