encyklopedia.space

OpenSSL

OpenSSL – otwarto‑źródłowy zestaw narzędzi i bibliotek implementujących protokoły SSL i TLS oraz szeroki wachlarz algorytmów kryptograficznych. Projekt jest powszechnie wykorzystywany w serwerach internetowych, klientach, aplikacjach mobilnych i systemach operacyjnych, stanowiąc jedną z najważniejszych podstaw współczesnego szyfrowania komunikacji.

Historia

Projekt OpenSSL powstał jako kontynuacja biblioteki SSLeay, opracowanej w latach 19951998 przez Erica Younga i Randalla Daileya. Po zaprzestaniu prac nad SSLeay w 1998 roku, społeczność programistów przejęła kod i w 1998 roku powołała projekt OpenSSL, którego pierwsza wersja 0.9.0 została wydana w 1998. Od tego czasu projekt jest rozwijany w modelu open‑source i jest utrzymywany przez międzynarodową grupę wolontariuszy oraz firmy współpracujące.

Podstawowe elementy

  • Biblioteka kryptograficzna (libcrypto) – oferuje implementacje algorytmów symetrycznych (AES, DES), asymetrycznych (RSA, DSA, ECDSA), funkcji hash (SHA‑2, MD5) oraz protokołów wymiany kluczy (Diffie‑Hellman).
  • Biblioteka protokołów SSL/TLS (libssl) – realizuje warstwę transportową szyfrowaną, obsługując wszystkie wersje od SSL v2 po najnowsze TLS v1.3. Zapewnia funkcje tworzenia i weryfikacji certyfikatów cyfrowych, obsługę protokołu SNI oraz mechanizmów renegocjacji.
  • Narzędzie wiersza poleceń (openssl) – uniwersalne CLI umożliwiające generowanie kluczy, żądań certyfikatów (CSR), konwersję formatów (PEM, DER, PKCS#12), testowanie połączeń TLS oraz wykonywanie operacji kryptograficznych na plikach.

Wykorzystanie

OpenSSL jest domyślną biblioteką kryptograficzną w wielu dystrybucjach systemu Linux, w serwerze Apache HTTP Server, w Nginx oraz w oprogramowaniu pocztowym (Postfix, Dovecot). Ponadto jest wykorzystywany w aplikacjach desktopowych, mobilnych oraz w systemach wbudowanych.

Licencja

Od wersji 1.1.0 OpenSSL jest rozpowszechniany na licencji Apache License 2.0 oraz na licencji OpenSSL License, co pozwala na komercyjne i niekomercyjne użycie kodu źródłowego bez konieczności ujawniania własnego kodu.

Problemy bezpieczeństwa

Projekt OpenSSL od początku swojej historii był przedmiotem licznych audytów bezpieczeństwa. Najbardziej znane incydenty to:

  • Heartbleed (CVE‑2014‑0160) – krytyczna luka w wersji 1.0.1, wykryta w 2014 roku, pozwalająca na wyciek pamięci serwera.
  • Vulnérabilité POODLE (CVE‑2014‑3566) – wpływająca na starsze wersje SSL v3.
  • Różne błędy w implementacji RSA i ECC, naprawiane w kolejnych wydaniach (np. 1.1.1 w 2018 roku).

W odpowiedzi na te incydenty społeczność OpenSSL wprowadziła program OpenSSL Improvement Project, zwiększający transparentność rozwoju i testowanie kodu.

Alternatywy

Do najpopularniejszych alternatyw dla OpenSSL należą:

  • GnuTLS – biblioteka pod licencją LGPL, używana m.in. w GNOME.
  • LibreSSL – fork OpenSSL powstały po incydencie Heartbleed, skupiający się na czystości kodu.
  • BoringSSL – wewnętrzna biblioteka Google, wykorzystywana w Chrome i Androidzie.

Zobacz także