Została wydana wersja OpenSSL 3.6.0, implementacja protokołów SSL/TLS i różnych algorytmów szyfrowania. OpenSSL 3.6 to standardowa wersja wsparcia, z aktualizacjami dostępnymi przez 13 miesięcy. Wsparcie dla poprzednich wersji OpenSSL – 3.5 LTS, 3.4, 3.3, 3.2 i 3.0 LTS – będzie kontynuowane odpowiednio do kwietnia 2030 r., października 2026 r., kwietnia 2026 r., listopada 2025 r. i września 2026 r. Kod projektu jest licencjonowany na podstawie licencji Apache 2.0.
Główne innowacje:
- Dodano obsługę struktury EVP_SKEY (KLUCZ Symetryczny) do reprezentacji kluczy symetrycznych jako obiektów nieprzezroczystych. W przeciwieństwie do kluczy surowych, reprezentowanych jako tablica bajtów, EVP_SKEY abstrahuje strukturę kluczy i zawiera dodatkowe metadane. EVP_SKEY może być używany w funkcjach szyfrowania, wymiany kluczy i wyprowadzania kluczy (KDF). Dodano funkcje EVP_KDF_CTX_set_SKEY(), EVP_KDF_derive_SKEY() i EVP_PKEY_derive_SKEY() do pracy z kluczami EVP_SKEY.
- Dodano obsługę weryfikacji podpisów cyfrowych w oparciu o schemat podpisów Leighton-Micali (LMS), który wykorzystuje funkcje skrótu i haszowanie oparte na drzewie w formie drzewa Merkle'a (każda gałąź weryfikuje wszystkie gałęzie i węzły bazowe). Podpisy cyfrowe LMS są odporne na testy siłowe na komputerze kwantowym i zostały zaprojektowane do weryfikacji integralności oprogramowania sprzętowego i aplikacji.
- Dodano obsługę kategorii bezpieczeństwa NIST dla parametrów obiektu PKEY (kluczy publicznych i prywatnych). Kategoria bezpieczeństwa jest ustawiana za pomocą ustawienia „security-category”. Dodano funkcję EVP_PKEY_get_security_category() w celu sprawdzenia poziomu bezpieczeństwa. Poziom bezpieczeństwa odzwierciedla odporność na ataki siłowe na komputery kwantowe i może przyjmować wartości całkowite od 0 do 5:
- 0 - implementacja nieodporna na ataki hakerskie na komputerach kwantowych;
- 1/3/5 — implementacja nie wyklucza możliwości poszukiwania klucza w szyfrze blokowym o kluczu 128/192/256-bitowym na komputerze kwantowym;
- 2/4 - implementacja nie wyklucza możliwości poszukiwania kolizji w hashu 256/384-bitowym na komputerze kwantowym).
- Dodano polecenie „openssl configutl” do przetwarzania plików konfiguracyjnych. To narzędzie umożliwia wygenerowanie skonsolidowanego pliku ze wszystkimi ustawieniami z konfiguracji wieloplikowej z uwzględnieniem elementów dołączonych.
- Dostawca usług kryptograficznych FIPS został zaktualizowany w celu zapewnienia obsługi deterministycznego generowania podpisów cyfrowych ECDSA (ten sam podpis jest generowany przy użyciu tych samych danych wejściowych), zgodnie z wymogami standardu FIPS 186-5.
- Wymagania dotyczące środowiska kompilacji zostały zwiększone. Kompilacja OpenSSL nie wymaga już narzędzi obsługujących ANSI-C; teraz wymagany jest kompilator zgodny ze standardem C-99.
- Funkcje związane ze strukturą EVP_PKEY_ASN1_METHOD zostały uznane za przestarzałe.
- Wsparcie dla platformy VxWorks zostało zakończone.
Naprawione luki:
- CVE-2025-9230 to luka w zabezpieczeniach kodu deszyfrującego dla zaszyfrowanych hasłem wiadomości CMS (PWRI). Luka może prowadzić do zapisu lub odczytu danych spoza zakresu, co może skutkować awarią lub uszkodzeniem pamięci w aplikacji wykorzystującej OpenSSL do przetwarzania wiadomości CMS. Chociaż wykorzystanie tej luki do wykonania kodu jest możliwe, powaga problemu jest łagodzona przez fakt, że zaszyfrowane hasłem wiadomości CMS są rzadko używane w praktyce. Oprócz OpenSSL 3.6.0, luka została naprawiona w OpenSSL 3.5.4, 3.4.3, 3.3.5, 3.2.6 i 3.0.18. Problem został również naprawiony w LibreSSL 4.0.1 i 4.1.1, bibliotece opracowanej przez projekt OpenBSD.
- CVE-2025-9231 — Implementacja algorytmu SM2 jest podatna na atak typu side-channel. W systemach z 64-bitowymi procesorami ARM umożliwia to odzyskiwanie klucza prywatnego poprzez analizę czasu poszczególnych obliczeń. Atak może być potencjalnie przeprowadzony zdalnie. Ryzyko ataku jest ograniczone przez fakt, że OpenSSL nie obsługuje bezpośrednio używania certyfikatów z kluczami SM2 w protokole TLS.
- CVE-2025-9232 to luka w zabezpieczeniach wbudowanej implementacji klienta HTTP, która umożliwia odczyt danych poza zakresem podczas przetwarzania specjalnie spreparowanego adresu URL w funkcjach klienta HTTP. Problem pojawia się tylko wtedy, gdy ustawiona jest zmienna środowiskowa „no_proxy” i może prowadzić do awarii aplikacji.
Źródło: opennet.ru
