Lëshimi i bibliotekës kriptografike OpenSSL 3.0.0

Pas tri vjetësh zhvillimi dhe 19 lëshimeve testuese, u realizua lëshimi i bibliotekës OpenSSL 3.0.0 me implementimin e protokolleve SSL/TLS dhe algoritmeve të ndryshëm të enkriptimit. Dega e re përmban ndryshime që shkelin prapavijën e pajtueshmërisë në nivelin API dhe ABI, por këto ndryshime nuk do të ndikojnë në funksionimin e shumicës së aplikacioneve, për të cilat kalimi nga OpenSSL 1.1.1 kërkon vetëm rindërtimin. Mbështetja për degën e kaluar OpenSSL 1.1.1 do të vazhdojë deri në shtator 2023.

Ndryshimi i ndjeshëm i numrit të versionit është i lidhur me kalimin në numërimin tradicional «Major.Minor.Patch». Numri i parë (Major) në numrin e versionit tani do të ndryshojë vetëm kur të ketë shkelje të pajtueshmërisë në nivelin API/ABI, ndërsa numri i dytë (Minor) do të ndryshohet me rritjen e funksionalitetit pa ndryshuar API/ABI. Përditësimet e korrigjimit do të ofrohen me ndryshimin e numrit të tretë (Patch). Numri 3.0.0 menjëherë pas 1.1.1 është zgjedhur për të evituar të njëjtat numra me modulin FIPS që është në zhvillim për OpenSSL, për të cilin është përdorur numërimi 2.x.

Një ndryshim tjetër i rëndësishëm për projektin ishte kalimi nga licenca e dyfishtë (OpenSSL dhe SSLeay) në licencën Apache 2.0. Licenca e mëparshme e pronarit të OpenSSL ishte bazuar në tekstin e një licence të vjetëruar Apache 1.0 dhe kërkonte përmendje të qartë të OpenSSL në materialet reklamues në rast përdorimi të bibliotekave OpenSSL, si dhe shtimin e një shënimi të veçantë në rast ofrimi të OpenSSL si pjesë e produktit. Këto kërkesa e bënë licencën e vjetër të papajtueshme me GPL, e cila krijoi vështirësi në përdorimin e OpenSSL në projekte me licencë GPL. Për të shmangur këtë papajtueshmëri, projektet GPL ishin të detyruara të përdorin marrëveshje specifike licencash, ku teksti kryesor i GPL u plotësua me një klauzolë që lejonte qartazi lidhjen e aplikacionit me bibliotekën OpenSSL dhe përmendte se kërkesat e GPL nuk zbatoheshin për lidhjen me OpenSSL.

Në krahasim me degën OpenSSL 1.1.1, në OpenSSL 3.0.0 janë shtuar më shumë se 7500 ndryshime, të përgatitura nga 350 zhvillues. Novitetet kryesore të OpenSSL 3.0.0:

  • ËshtĂ« propozuar njĂ« modul i ri FIPS, qĂ« pĂ«rfshin implementimin e algoritmeve kriptografike qĂ« i pĂ«rmbahen standardit tĂ« sigurisĂ« FIPS 140-2 (kjo muaj planifikohet tĂ« fillojĂ« procesin e certifikimit tĂ« modulit, me pritshmĂ«rinĂ« pĂ«r tĂ« marrĂ« certifikatĂ«n FIPS 140-2 vitin tjetĂ«r). Moduli i ri Ă«shtĂ« dukshĂ«m mĂ« i lehtĂ« pĂ«r t'u pĂ«rdorur dhe lidhja e tij me shumĂ« aplikacione do tĂ« jetĂ« po aq e thjeshtĂ« sa ndĂ«rrimi i skedarit tĂ« konfigurimit. PĂ«rveç kĂ«saj, moduli FIPS Ă«shtĂ« i çaktivizuar si parazgjedhje dhe kĂ«rkon specifikimin e opsionit enable-fips pĂ«r aktivizim.
  • NĂ« libcrypto Ă«shtĂ« realizuar koncepti i ofruesve tĂ« pluggable, i cili zĂ«vendĂ«son konceptin e motorĂ«ve (API i ENGINE Ă«shtĂ« shpallur i vjetĂ«ruar). PĂ«rmes ofruesve mund tĂ« shtoni implementime tĂ« veta tĂ« algoritmeve pĂ«r operacione tĂ« tilla si enkriptimi, dekryptimi, krijimi i çelsave, llogaritja e MAC, krijimi dhe verifikimi i nĂ«nshkrimeve digjitale. ËshtĂ« e mundur si lidhja e tĂ« rejave ashtu edhe krijimi i alternativeve tĂ« implementimeve tĂ« algoritmeve tashmĂ« tĂ« mbĂ«shtetur (si parazgjedhje, tani pĂ«r çdo algoritĂ«m pĂ«rdoret ofruesi i integruar nĂ« OpenSSL).
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r protokollin e menaxhimit tĂ« certifikatave CMP (Certificate Management Protocol, RFC 4210), i cili mund tĂ« pĂ«rdoret pĂ«r tĂ« kĂ«rkuar certifikata nga server autoriteti i certifikimit, pĂ«r tĂ« pĂ«rditĂ«suar certifikatat dhe pĂ«r t'i revokuar ato. Puna me CMP bĂ«het me ndihmĂ«n e njĂ« utility tĂ« re openssl-cmp, nĂ« tĂ« cilĂ«n gjithashtu Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r formatin CRMF (RFC 4211) dhe pĂ«r kalimin e kĂ«rkesave pĂ«rmes HTTP/HTTPS (RFC 6712).
  • ËshtĂ« realizuar njĂ« klient i plotĂ« pĂ«r protokollet HTTP dhe HTTPS, qĂ« mbĂ«shtet metodat GET dhe POST, redirektimin e kĂ«rkesave, punĂ«n pĂ«rmes proxy, kodimin ASN.1 dhe menaxhimin e kohĂ«ve tĂ« pritjes.
  • ËshtĂ« shtuar njĂ« API i ri EVP_MAC (Message Authentication Code API), i cili e thjeshton shtimin e implementimeve tĂ« reja tĂ« kodimeve tĂ« mesazheve.
  • ËshtĂ« propozuar njĂ« interface i ri pĂ«r formimin e çelĂ«save - EVP_KDF (Key Derivation Function API), i cili e thjeshton shtimin e implementimeve tĂ« reja tĂ« KDF dhe PRF. API e vjetĂ«r EVP_PKEY, pĂ«rmes sĂ« cilĂ«s ishin tĂ« disponueshĂ«m algoritmet scrypt, TLS1 PRF dhe HKDF, Ă«shtĂ« ristrukturuar nĂ« formĂ«n e njĂ« shtrese, tĂ« implementuar mbi API EVP_KDF dhe EVP_MAC.
  • Protokolli TLS ofron mundĂ«sinĂ« pĂ«r tĂ« pĂ«rdorur implementimin e TLS tĂ« integruar nĂ« bĂ«rthamĂ«n Linux pĂ«r tĂ« pĂ«rshpejtuar operacionet. PĂ«r tĂ« aktivizuar implementimin e TLS tĂ« siguruar nga bĂ«rthama Linux, kĂ«rkohet aktivizimi i opsionit «SSL_OP_ENABLE_KTLS» ose i parametrave «enable-ktls».
  • Shtuar mbĂ«shtetje pĂ«r algoritme tĂ« reja:
    • Algoritmet e formimit tĂ« çelĂ«save (KDF) — «SINGLE STEP» dhe «SSH».
    • Algoritmet e imitim-veprimit (MAC) — «GMAC» dhe «KMAC».
    • Algoritmi i inkapsulimit tĂ« çelĂ«save RSA (KEM) «RSASVE».
    • Algoritmi i enkriptimit «AES-SIV» (RFC-8452).
    • NĂ« API-nĂ« EVP janĂ« shtuar thirrje me mbĂ«shtetje pĂ«r enkriptim tĂ« inversiv, duke pĂ«rdorur algoritmin AES pĂ«r enkriptimin e çelĂ«save (Key Wrap): «AES-128-WRAP-INV», «AES-192-WRAP-INV», «AES-256-WRAP-INV», «AES-128-WRAP-PAD-INV», «AES-192-WRAP-PAD-INV» dhe «AES-256-WRAP-PAD-INV».
    • NĂ« API-nĂ« EVP Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r algoritmet e huazimit tĂ« çelĂ«save tĂ« enkriptuar (CTS): «AES-128-CBC-CTS», «AES-192-CBC-CTS», «AES-256-CBC-CTS», «CAMELLIA-128-CBC-CTS», «CAMELLIA-192-CBC-CTS» dhe «CAMELLIA-256-CBC-CTS».
    • Shtuar mbĂ«shtetje pĂ«r nĂ«nshkrimet digjitale CAdES-BES (RFC 5126).
    • NĂ« AES_GCM Ă«shtĂ« implementuar parametri AuthEnvelopedData (RFC 5083), i cili lejon enkriptimin dhe dekriptimin e mesazheve, tĂ« autentikuara dhe tĂ« enkriptuara duke pĂ«rdorur modalitetin AES GCM.
  • NĂ« API-nĂ« publike, janĂ« nxjerrĂ« funksionet PKCS7_get_octet_string dhe PKCS7_type_is_other.
  • NĂ« API PKCS#12, algorithmet e pĂ«rdorura si standard nĂ« funksionin PKCS12_create() janĂ« zĂ«vendĂ«suar me PBKDF2 dhe AES, ndĂ«rsa pĂ«r llogaritjen e MAC Ă«shtĂ« pĂ«rdorur algoritmi SHA-256. ËshtĂ« paraparĂ« njĂ« opsion "-legacy" pĂ«r rikthimin e sjelljes sĂ« kaluar. JanĂ« shtuar njĂ« numĂ«r i madh thirrjesh tĂ« reja tĂ« zgjeruara PKCS12_*_ex, PKCS5_*_ex dhe PKCS8_*_ex, si PKCS12_add_key_ex(), PKCS12_create_ex() dhe PKCS12_decrypt_skey_ex().
  • PĂ«r platformĂ«n Windows Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r sinkronizimin e rrjedhave pĂ«rmes mekanizmit SRWLock.
  • ËshtĂ« shtuar njĂ« API i ri pĂ«r gjurmimin, i aktivizuar pĂ«rmes parametrave enable-trace.
  • JanĂ« zgjeruar llojet e çelĂ«save qĂ« mbĂ«shteten nĂ« funksionet EVP_PKEY_public_check() dhe EVP_PKEY_param_check(): RSA, DSA, ED25519, X25519, ED448 dhe X448.
  • ËshtĂ« hequr nĂ«n-sistemi RAND_DRBG, pĂ«r tĂ« cilin Ă«shtĂ« propozuar API EVP_RAND. Funksionet FIPS_mode() dhe FIPS_mode_set() janĂ« hequr.
  • NjĂ« pjesĂ« e dukshme e API-t Ă«shtĂ« shpallur si tĂ« vjetruar — pĂ«rdorimi i thirrjeve tĂ« vjetruara nĂ« kodin e projekteve do tĂ« çojĂ« nĂ« paraqitjen e paralajmĂ«rimeve gjatĂ« kompilimit. Midis tyre, API-tĂ« e nivelit tĂ« ulĂ«t, tĂ« lidhura me implementime tĂ« caktuara tĂ« algoritmeve (p.sh., AES_set_encrypt_key dhe AES_encrypt) janĂ« shpallur tashmĂ« si tĂ« vjetruara. MbĂ«shtetje zyrtare nĂ« OpenSSL 3.0.0 tani ofrohet vetĂ«m pĂ«r API tĂ« nivelit tĂ« lartĂ« EVP, tĂ« ndara nga llojet e veçanta tĂ« algoritmeve (p.sh., funksionet EVP_EncryptInit_ex, EVP_EncryptUpdate dhe EVP_EncryptFinal). NĂ« njĂ« nga lĂ«shimet e ardhshme tĂ« rĂ«ndĂ«sishme, API-tĂ« e vjetruara do tĂ« hiqen. Implementimet e algoritmeve tĂ« vjetruara, si MD2 dhe DES, qĂ« janĂ« tĂ« disponueshme pĂ«rmes API-sĂ« EVP, janĂ« transferuar nĂ« njĂ« modul tĂ« veçantĂ« "legacy" qĂ« Ă«shtĂ« i çaktivizuar si parazgjedhje.
  • Dokumentacioni dhe grupi i testeve janĂ« zgjeruar ndjeshĂ«m. Krahasuar me degĂ«n 1.1.1, volumi i dokumentacionit Ă«shtĂ« rritur me 94%, dhe madhĂ«sia e kodit tĂ« grupit tĂ« testeve Ă«shtĂ« rritur me 54%.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster