Po półtora roku prac wydana została biblioteka OpenSSL 3.1.0 z wdrożeniem protokołów SSL/TLS i różnych algorytmów szyfrowania. Wsparcie dla OpenSSL 3.1 będzie realizowane do marca 2025 roku. Wsparcie dla wcześniejszych wersji OpenSSL 3.0 i 1.1.1 potrwa do września 2026 roku i września 2023 roku odpowiednio. Kod projektu jest udostępniany na licencji Apache 2.0.
Główne nowości OpenSSL 3.1.0:
- W module FIPS wdrożono wsparcie dla algorytmów kryptograficznych zgodnych ze standardem bezpieczeństwa FIPS 140-3. Rozpoczęto proces certyfikacji modułu w celu uzyskania certyfikatu zgodności z wymaganiami FIPS 140-3. Do zakończenia certyfikacji po aktualizacji OpenSSL do wersji 3.1 użytkownicy mogą kontynuować korzystanie z modułu FIPS, certyfikowanego dla FIPS 140-2. Wśród zmian w nowej wersji modułu zaznacza się włączenie algorytmów Triple DES ECB, Triple DES CBC oraz EdDSA, które jak na razie nie zostały zweryfikowane pod kątem zgodności z wymaganiami FIPS. W nowej wersji wprowadzono także optymalizacje dla zwiększenia wydajności oraz przeprowadzono przejście na uruchamianie testów wewnętrznych przy każdym załadunku modułu, a nie tylko po instalacji.
- Przeprojektowano kod OSSL_LIB_CTX. Nowa wersja pozbawiona jest zbędnych blokad i umożliwia osiągnięcie wyższej wydajności.
- Podniesiono wydajność frameworków kodera i dekodera.
- Zoptymalizowano wydajność związaną z wykorzystaniem struktur wewnętrznych (tablic haszujących) i cache'owaniem.
- Zwiększono szybkość generowania kluczy RSA w trybie FIPS.
- Dla różnych architektur procesorów w implementacji algorytmów AES-GCM, ChaCha20, SM3, SM4 i SM4-GCM wprowadzono specyficzne optymalizacje assemblerowe. Na przykład kod AES-GCM przyspieszono za pomocą instrukcji AVX512 vAES i vPCLMULQDQ.
- W KBKDF (Key Based Key Derivation Function) dodano wsparcie dla algorytmu KMAC (KECCAK Message Authentication Code).
- Różne funkcje «OBJ_*» dostosowano do użycia w kodzie wielowątkowym.
- Dodano możliwość wykorzystania instrukcji RNDR i rejestrów RNDRRS do generowania pseudolosowych liczb, dostępnych w procesorach opartych na architekturze AArch64.
- Funkcje OPENSSL_LH_stats, OPENSSL_LH_node_stats, OPENSSL_LH_node_usage_stats, OPENSSL_LH_stats_bio, OPENSSL_LH_node_stats_bio oraz OPENSSL_LH_node_usage_stats_bio zostały przeklasyfikowane jako przestarzałe. Został ogłoszony przestarzałym makro DEFINE_LHASH_OF.
Źródło: opennet.ru
