OpenSSL 3.0.0 Kryptografesch Bibliothéik Verëffentlechung

No dräi Joer Entwécklung an 19 Testreleases gouf d'OpenSSL 3.0.0 Bibliothéik mat der Ëmsetzung vun den SSL / TLS Protokoller a verschidde Verschlësselungsalgorithmen verëffentlecht. Déi nei Branche enthält Ännerungen déi Réckkompatibilitéit um API- an ABI-Niveau briechen, awer d'Ännerunge beaflossen net d'Operatioun vun de meeschten Uwendungen, déi e Rebuild erfuerderen fir aus OpenSSL 1.1.1 ze migréieren. Déi viregt Branche vun OpenSSL 1.1.1 gëtt bis September 2023 ënnerstëtzt.

Eng bedeitend Ännerung vun der Versiounsnummer ass wéinst dem Iwwergang op déi traditionell "Major.Minor.Patch" Nummeréierung. Vun elo un wäert déi éischt Ziffer (Major) an der Versiounsnummer nëmmen änneren wann d'Kompatibilitéit um API / ABI Niveau gebrach ass, an déi zweet (Minor) wäert änneren wann d'Funktionalitéit erhéicht gëtt ouni d'API / ABI z'änneren. Korrigéierend Updates ginn mat enger Ännerung op déi drëtt Ziffer (Patch) geliwwert. D'Nummer 3.0.0 direkt nom 1.1.1 gouf gewielt fir Iwwerlappungen mam Moment ënner Entwécklung FIPS Modul fir OpenSSL ze vermeiden, fir déi d'2.x Nummeréierung benotzt gouf.

Déi zweet wichteg Ännerung fir de Projet war den Iwwergank vun enger Dual Lizenz (OpenSSL an SSLeay) op d'Apache 2.0 Lizenz. Déi viregt propriétaire OpenSSL Lizenz baséiert op den Text vun der Legacy Apache 1.0 Lizenz an erfuerdert explizit Ernimmung vun OpenSSL a Marketingmaterial wann Dir OpenSSL Bibliothéiken benotzt, souwéi eng speziell Notiz wann OpenSSL als Deel vum Produkt geliwwert gouf. Dës Ufuerderunge hunn déi al Lizenz mat der GPL inkompatibel gemaach, wat et schwéier mécht OpenSSL an GPL-lizenzéierte Projeten ze benotzen. Fir dës Inkompatibilitéit ëmzegoen, goufen GPL-Projete gezwongen spezifesch Lizenzverträg ze benotzen, an deenen den Haapttext vun der GPL ergänzt gouf mat enger Klausel, déi d'Applikatioun explizit erlaabt huet mat der OpenSSL Bibliothéik ze verbannen an ernimmt datt d'Ufuerderunge vum GPL net gëlle fir Verknëppung mat OpenSSL.

Am Verglach mat der OpenSSL 1.1.1 Branche huet OpenSSL 3.0.0 méi wéi 7500 Ännerungen bäigedroen, déi vun 350 Entwéckler bäigedroen hunn. Haaptinnovatiounen vun OpenSSL 3.0.0:

  • En neie FIPS-Modul gouf proposéiert, dorënner d'Ëmsetzung vu kryptografeschen Algorithmen, déi dem FIPS 140-2 Sécherheetsstandard entspriechen (den Zertifizéierungsprozess fir de Modul ass geplangt fir dëse Mount unzefänken, an d'Fips 140-2 Zertifizéierung gëtt d'nächst Joer erwaart). Den neie Modul ass vill méi einfach ze benotzen an et mat villen Uwendungen ze verbannen ass net méi schwéier wéi d'Konfiguratiounsdatei z'änneren. Par défaut ass de FIPS Modul deaktivéiert a verlaangt datt d'Enable-fips Optioun aktivéiert ass.
  • libcrypto implementéiert d'Konzept vu pluggable Ubidder, déi d'Konzept vu Motoren ersat hunn (d'ENGINE API gouf ofgeschaaft). Mat der Hëllef vu Fournisseuren kënnt Dir Är eege Implementatioune vun Algorithmen fir esou Operatiounen wéi Verschlësselung, Entschlësselung, Schlësselgeneratioun, MAC-Berechnung, Schafung a Verifizéierung vun digitale Ënnerschrëften derbäi. Et ass méiglech souwuel nei ze verbannen an alternativ Implementatioune vu scho ënnerstëtzten Algorithmen ze kreéieren (par défaut gëtt de Provider agebaut an OpenSSL elo fir all Algorithmus benotzt).
  • Zousätzlech Ënnerstëtzung fir den Certificate Management Protocol (RFC 4210), dee benotzt ka ginn fir Zertifikater vun engem CA Server ze froen, Certificaten ze aktualiséieren an Zertifikater zréckzezéien. Schafft mat CMP gëtt mat der neier openssl-cmp Utility duerchgefouert, déi och den CRMF Format (RFC 4211) ënnerstëtzt an Ufroen iwwer HTTP/HTTPS (RFC 6712) schécken.
  • E vollwäertege Client fir d'HTTP- an HTTPS-Protokoller gouf implementéiert, ënnerstëtzt d'GET- a POST-Methoden, d'Redirectioun ufroen, duerch e Proxy schaffen, ASN.1 Kodéierung an Timeoutveraarbechtung.
  • Eng nei EVP_MAC (Message Authentication Code API) gouf bäigefüügt fir et méi einfach ze maachen nei Implementatioune vu Spott-Inserts derbäi ze maachen.
  • Eng nei Software-Interface fir Schlësselen ze generéieren gëtt proposéiert - EVP_KDF (Key Derivation Function API), wat d'Zousatz vun neien Implementatioune vu KDF a PRF vereinfacht. Déi al EVP_PKEY API, duerch déi d'Skrypt, TLS1 PRF an HKDF Algorithmen verfügbar waren, gouf nei designt a Form vun enger Schicht, déi uewen op den EVP_KDF an EVP_MAC APIs implementéiert gouf.
  • D'Ëmsetzung vum TLS Protokoll bitt d'Fäegkeet den TLS Client an de Server an de Linux Kernel gebaut ze benotzen fir Operatiounen ze beschleunegen. Fir d'TLS-Implementatioun z'aktivéieren, déi vum Linux Kernel geliwwert gëtt, musst Dir d'Optioun "SSL_OP_ENABLE_KTLS" oder d'Astellung "enable-ktls" aktivéieren.
  • Zousätzlech Ënnerstëtzung fir nei Algorithmen:
    • Schlësselgeneratioun Algorithmen (KDF) sinn "SINGLE STEP" an "SSH".
    • Simuléiert Insertion Algorithmen (MAC) sinn "GMAC" an "KMAC".
    • RSA Key Encapsulation Algorithmus (KEM) "RSASVE".
    • Verschlësselungsalgorithmus "AES-SIV" (RFC-8452).
    • Uruff un d'EVP API bäigefüügt mat Ënnerstëtzung fir inverse Chifferen déi den AES Algorithmus benotze fir Schlësselen ze verschlësselen (Key Wrap): "AES-128-WRAP-INV", "AES-192-WRAP-INV", "AES-256-WRAP- INV", "AES-128-WRAP-PAD-INV", "AES-192-WRAP-PAD-INV" an "AES-256-WRAP-PAD-INV".
    • Zousätzlech Ënnerstëtzung fir Chiffertext-Ausleeung (CTS) Algorithmen un der EVP API: "AES-128-CBC-CTS", "AES-192-CBC-CTS", "AES-256-CBC-CTS", "CAMELLIA-128-CBC -CTS", "CAMELLIA-192-CBC-CTS" an "CAMELLIA-256-CBC-CTS".
    • Zousätzlech Ënnerstëtzung fir CAdES-BES digital Ënnerschrëften (RFC 5126).
    • AES_GCM implementéiert den AuthEnvelopedData (RFC 5083) Parameter fir d'Verschlësselung an d'Entschlësselung vu Messagen z'erméiglechen, déi authentifizéiert a verschlësselt sinn mam AES GCM Modus.
  • D'PKCS7_get_octet_string an PKCS7_type_is_other Funktiounen goufen op d'ëffentlech API dobäigesat.
  • De PKCS # 12 API ersetzt d'Standardalgorithmen déi an der PKCS12_create () Funktioun benotzt ginn mat PBKDF2 an AES, a benotzt den SHA-256 Algorithmus fir MAC ze berechnen. Fir d'Vergaangenheet ze restauréieren, gëtt d'Optioun "-legacy" zur Verfügung gestallt. Dobäigesat eng grouss Zuel vun neie verlängert Appellen ze PKCS12_*_ex, PKCS5_*_ex an PKCS8_*_ex, wéi PKCS12_add_key_ex ().PKCS12_create_ex () an PKCS12_decrypt_skey_ex ().
  • Fir d'Windows Plattform ass Ënnerstëtzung fir Thread Synchroniséierung mam SRWLock Mechanismus bäigefüügt.
  • Eng nei Tracing API bäigefüügt, aktivéiert iwwer den Enable-Trace Parameter.
  • D'Gamme vu Schlësselen ënnerstëtzt am EVP_PKEY_public_check () an EVP_PKEY_param_check () Funktiounen gouf erweidert: RSA, DSA, ED25519, X25519, ED448 an X448.
  • De RAND_DRBG Subsystem gouf geläscht, ersat duerch d'EVP_RAND API. D'Fonctiounen FIPS_mode () an FIPS_mode_set () goufen ewechgeholl.
  • E wesentlechen Deel vun der API ass obsolet gemaach ginn - d'Benotzung vun obsoleten Uriff am Projetcode wäert zu Warnungen wärend der Kompilatioun resultéieren. Inklusiv Low-Level APIs verbonne mat bestëmmten Implementatioune vun Algorithmen (zum Beispill AES_set_encrypt_key an AES_encrypt) goufen offiziell als obsolet deklaréiert. Offiziell Ënnerstëtzung am OpenSSL 3.0.0 gëtt elo nëmme fir High-Level EVP APIs zur Verfügung gestallt, déi aus eenzelne Algorithmustypen abstrachéiert sinn (dës API enthält zum Beispill d'EVP_EncryptInit_ex, EVP_EncryptUpdate, an EVP_EncryptFinal Funktiounen). Deprecéiert APIe ginn an enger vun den nächste grousse Verëffentlechunge geläscht. Implementatioune vu legacy Algorithmen wéi MD2 an DES, verfügbar iwwer d'EVP API, goufen an e separaten "Legacy" Modul geplënnert, deen als Standard deaktivéiert ass.
  • D'Dokumentatioun an d'Testsuite goufe wesentlech erweidert. Am Verglach mam Branche 1.1.1 ass de Volume vun der Dokumentatioun ëm 94% eropgaang, an d'Gréisst vum Testsuite Code ass ëm 54% eropgaang.

Source: opennet.ru

Setzt e Commentaire