Programiści projektu OpenBSD zaprezentowali nową wersję przenośnej edycji pakietu LibreSSL 3.9.0, w ramach której rozwija się fork OpenSSL, mający na celu zapewnienie wyższego poziomu bezpieczeństwa. Projekt LibreSSL koncentruje się na efektywnej obsłudze protokołów SSL/TLS poprzez usunięcie zbędnych funkcji, dodanie dodatkowych środków ochrony oraz przeprowadzenie gruntownej rewizji kodu. Wydanie LibreSSL 3.9.0 traktowane jest jako eksperymentalne, w którym rozwijane są możliwości, które znajdą się w OpenBSD 7.5. Jednocześnie sformułowano stabilne wydanie LibreSSL 3.8.3, które naprawia kilka specyficznych błędów dotyczących systemu Windows i wzmacnia wsparcie dla mechanizmu ochrony CET (Control-flow Enforcement Technology).
Cechy LibreSSL 3.9.0:
- Dodano wsparcie dla algorytmów podpisu cyfrowego opartych na ECDSA z haszami SHA-3.
- Dodano wsparcie dla HMAC z obciętymi haszami SHA-2 i SHA-3 jako PBE PRF.
- Wprowadzone zmiany w celu poprawy przenośności na inne platformy. Aby uniknąć problemów podczas linkowania statycznego, większość używanych do zapewnienia zgodności eksportowanych symboli LibreSSL posiada prefiks „libressl_”. W kompilacjach opartych na CMake zakończono eksport symboli zgodności funkcji libcrypto.
- Wprowadzone zmiany mające na celu polepszenie zgodności z OpenSSL. Na przykład, dodano aliasy ChaCha20 i chacha20 dla algorytmu ChaCha, zjednolicono działanie funkcji SSL_library_init() i OPENSSL_init_ssl(), a wywołania EVP_{CIPHER,MD}_CTX_init() dostosowano do zachowania OpenSSL.
- Do narzędzia openssl dodano wsparcie dla flag „-new -force_pubkey”, „-multivalue-rdn”, „-set_issuer”, „-set_subject” i „-utf8”.
- Przejście z użycia wywołania OBJ_bsearch_() na standardową funkcję bsearch().
- Uproszczona implementacja funkcji by_file_ctrl(), EVP_Cipher{Init,Update,Final}() oraz API OBJ_*.
- Przeprowadzona została znaczna reorganizacja API EVP. Usunięto funkcje EVP_add_{cipher,digest}().
- Uproszczono przetwarzanie X509_TRUST.
- Przepisano funkcje BIO_dump*().
- Zakończono wsparcie dla globalnych tabel, które nie są przystosowane do użycia wielowątkowego. W związku z tym, teraz nie wspiera się przypisywania aliasów do szyfrów i haszy, dodawania własnych łańcuchów oraz metod ASN.1, PKEY i CRL.
- Usunięto funkcje BIO_set(), BIO_{sn,v,vsn}printf(), sk_find_ex() oraz OBJ_bsearch_(), a także wiele przestarzałych funkcji API CRYPTO.
- Ustąpiono publicznego dostępu do API X509_CERT_AUX oraz X509_TRUST.
- Zakończono wsparcie dla algorytmów GOST i STREEBOG.
- Rozszerzona obsługa mechanizmu CET (Control-flow Enforcement Technology), stosowanego w celu zabezpieczenia przed wykonywaniem exploitów opartych na technikach programowania opartego na powrocie (ROP, Return-Oriented Programming).
Źródło: opennet.ru
