OpenSSL 3.0.0 zawiera wiele istotnych zmian i ulepszeń

Po trzech latach rozwoju i 19 wersjach próbnych niedawno ogłoszono wydanie nowej wersji OpenSSL 3.0.0 który ma ponad 7500 zmian wniesionych przez 350 programistów, co oznacza również znaczącą zmianę w numerze wersji, wynikającą z przejścia na tradycyjną numerację.

Od teraz pierwsza cyfra (Major) w numerze wersji zmieni się tylko w przypadku naruszenia kompatybilności na poziomie API/ABI, a druga (Minor) w przypadku zwiększenia funkcjonalności bez zmiany API/ABI. Aktualizacje korygujące będą dostarczane z trzecią cyfrą (poprawką). Numer 3.0.0 został wybrany zaraz po 1.1.1, aby uniknąć kolizji z rozwijanym modułem FIPS dla OpenSSL, który otrzymał numer 2.x.

Drugą poważną zmianą w projekcie była przejście z podwójnej licencji (OpenSSL i SSLeay) do licencji Apache 2.0. Natywna licencja OpenSSL używana wcześniej była oparta na starszej licencji Apache 1.0 i wymagała wyraźnego wzmianki o OpenSSL w materiałach promocyjnych podczas korzystania z bibliotek OpenSSL oraz specjalnej uwagi, jeśli OpenSSL był dostarczany z produktem.

Te wymagania sprawiły, że poprzednia licencja była niezgodna z GPL, co utrudniało używanie OpenSSL w projektach na licencji GPL. Aby obejść tę niezgodność, projekty GPL zostały zmuszone do stosowania określonych umów licencyjnych, w których główny tekst GPL został uzupełniony o klauzulę wyraźnie zezwalającą aplikacji na linkowanie do biblioteki OpenSSL oraz wzmiankę, że GPL nie dotyczy wiązania z OpenSSL.

Co nowego w OpenSSL 3.0.0

W przypadku części nowości zaprezentowanych w OpenSSL 3.0.0 możemy stwierdzić, że zaproponowano nowy moduł FIPS, oferuje nasz konfigurator obejmuje implementację algorytmów kryptograficznych spełniające standard bezpieczeństwa FIPS 140-2 (rozpoczęcie procesu certyfikacji modułu planowane jest w tym miesiącu, a certyfikacja FIPS 140-2 spodziewana jest w przyszłym roku). Nowy moduł jest znacznie łatwiejszy w obsłudze, a łączenie się z wieloma aplikacjami nie będzie trudniejsze niż zmiana pliku konfiguracyjnego. Domyślnie FIPS jest wyłączony i wymaga włączenia opcji enable-fips.

W libcrypto wdrożono koncepcję połączonych dostawców usług która zastąpiła koncepcję silników (interfejs ENGINE API został przestarzały). Z pomocą dostawców możesz dodawać własne implementacje algorytmów dla operacji takich jak szyfrowanie, deszyfrowanie, generowanie kluczy, obliczanie MAC, tworzenie i weryfikacja podpisów cyfrowych.

Podkreśla się również, że dodano wsparcie dla CMPŻe Może być używany do żądania certyfikatów z serwera CA, odnawiania certyfikatów i unieważniania certyfikatów. Praca z CMP odbywa się za pomocą nowego narzędzia openssl-cmp, które implementuje również obsługę formatu CRMF oraz transmisję żądań przez HTTP/HTTPS.

Również Zaproponowano nowy interfejs programowania do generowania kluczy: EVP_KDF (Key Derivation Function API), który upraszcza włączanie nowych implementacji KDF i PRF. Stare API EVP_PKEY, przez które dostępne były algorytmy szyfrowania, TLS1 PRF i HKDF, zostało przeprojektowane jako warstwa pośrednia zaimplementowana na wierzchu API EVP_KDF i EVP_MAC.

A w realizacji protokołu TLS oferuje możliwość korzystania z klienta i serwera TLS wbudowanego w jądro Linux w celu przyspieszenia operacji. Aby włączyć implementację TLS zapewnianą przez jądro systemu Linux, musi być włączona opcja „SSL_OP_ENABLE_KTLS” lub ustawienie „enable-ktls”.

Z drugiej strony jest o tym mowa znaczna część API została przeniesiona do przestarzałej kategorii- Użycie przestarzałych wywołań w kodzie projektu wygeneruje ostrzeżenie podczas kompilacji. ten Interfejs API niskiego poziomu powiązane z pewnymi algorytmami zostały oficjalnie uznane za przestarzałe.

Oficjalne wsparcie w OpenSSL 3.0.0 jest teraz zapewnione tylko dla wysokopoziomowych API EVP, pochodzących z pewnych typów algorytmów (to API zawiera na przykład funkcje EVP_EncryptInit_ex, EVP_EncryptUpdate i EVP_EncryptFinal). Przestarzałe interfejsy API zostaną usunięte w jednej z kolejnych głównych wersji. Implementacje starszych algorytmów, takie jak MD2 i DES, dostępne za pośrednictwem interfejsu API EVP, zostały przeniesione do oddzielnego „starszego” modułu, który jest domyślnie wyłączony.

W końcu jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły W poniższym linku.


Treść artykułu jest zgodna z naszymi zasadami etyka redakcyjna. Aby zgłosić błąd, kliknij tutaj.

Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.