Krüptograafia raamatukogu OpenSSL 3.0.0 väljaanne

Pärast kolme aastat arendustööd ja 19 beetaversiooni on välja antud OpenSSL 3.0.0, mis rakendab SSL/TLS protokolle ja erinevaid krüpteerimisalgoritme. Uus haru sisaldab API ja ABI tasandi ühilduvust rikkuvaid muudatusi, kuid need muutused ei mõjuta enamikku rakendustest, mille jaoks piisab OpenSSL 1.1.1-st ümberehitamisest. OpenSSL-i eelmise haru 1.1.1 tuge plaanitakse pakkuda kuni 2023. aasta septembrini.

Oluline versiooninumbriga seotud muudatus on üleminek traditsioonilisele numbreerimisele "Major.Minor.Patch". Esimene number (Major) versiooninumbris muutub edaspidi ainult API/ABI tasandi ühilduvuse rikkumise korral, samas kui teine number (Minor) muutub funktsionaalsuse suurendamisel ilma API/ABI muutmata. Paranduste uuendused toimetatakse kolmanda numbri (Patch) muutumisega. Number 3.0.0 valiti kohe pärast 1.1.1, et vältida kattumist arenduses oleva OpenSSL FIPS-mooduliga, mille puhul rakendati numbreid 2.x.

Teine projektile oluline muudatus on üleminek kaheastmeliselt litsentsilt (OpenSSL ja SSLeay) Apache 2.0 litsentsile. Varasemalt kasutusel olnud OpenSSL-i eralitsents põhines aegunud Apache 1.0 litsentsi tekstil ja nõudis OpenSSL-i selget mainimist reklaamimaterjalides OpenSSL-i raamatukogude kasutamisel, samuti spetsiaalse märkuse lisamist, kui OpenSSL-i tarniti toote koosseisus. Sellised nõuded tegid vana litsentsi kompromiteerituks GPL-iga, mis tekitas raskusi OpenSSL-i kasutamisel GPL-litsentsiga projektides. Selle ühilduvuse vältimiseks pidid GPL-projektid rakendama spetsiifilisi litsentsilepinguid, kus GPL-i põhiteksti täiendati klausliga, mis selgelt lubas rakenduse sidumist OpenSSL-i raamatukoguga ja mainis, et GPL-i nõuded ei kehti OpenSSL-iga sidumise puhul.

Avatud OpenSSL 1.1.1 haruga võrreldes on OpenSSL 3.0.0-sse lisatud üle 7500 muudatust, mille on ette valmistanud 350 arendajat. OpenSSL 3.0.0 peamised uuendused:

  • Käidi välja uus FIPS moodul, mis sisaldab krüptograafiliste algoritmide rakendusi, mis vastavad FIPS 140-2 turvastandardile (selle kuu jooksul plaanitakse alustada mooduli sertifitseerimisprotsessi, FIPS 140-2 sertifikaadi saamine ootab järgmisel aastal). Uus moodul on oluliselt lihtsam kasutada ja selle ühendamine paljude rakendustega ei ole keerulisem kui konfiguratsioonifaili muutmine. Vaikimisi on FIPS moodul keelatud ja selle aktiveerimiseks on vajalik määrata valik enable-fips.
  • libcrypto-s on rakendatud ühendatavate pakkujate kontseptsioon, mis asendab mootorite (ENGINE API on deklareeritud aegunuks) kontseptsiooni. Pakkujate abil on võimalik lisada oma algoritmide rakendusi selliste toimingute jaoks nagu krüpteerimine, dekrüpteerimine, võtmete genereerimine, MAC-i arvutamine, digitaalsete allkirjade loomine ja kontrollimine. Võimalik on nii uute ühendamine kui ka juba toetatud algoritmide alternatiivsete rakenduste loomine (vaikimisi kasutatakse nüüd iga algoritmi jaoks OpenSSL-i integreeritud pakkujat).
  • Lisatud on sertifikaatide haldamise protokolli CMP (Certificate Management Protocol, RFC 4210) toetus, mida saab kasutada sertifikaatide taotlemiseks serverilt sertifikaadi väljaandmise keskuse, sertifikaatide värskendamiseks ja sertifikaatide tühistamiseks. CMP-iga töö toimub uue utiliidi openssl-cmp abil, mis toetab ka CRMF formaati (RFC 4211) ja päringute edastamist üle HTTP/HTTPS (RFC 6712).
  • Rakendatud on täisfunktsionaalne klient HTTP ja HTTPS protokollide jaoks, mis toetab GET ja POST meetodeid, päringute ümbersuunamist, töö läbi vaheserverite, ASN.1 kodeerimist ja ajutiste üleminekute töötlemist.
  • Lisatud uus API EVP_MAC (Message Authentication Code API), mis lihtsustab uute MAC-rakenduste lisamist.
  • Käidi välja uus liides võtmete genereerimiseks — EVP_KDF (Key Derivation Function API), mis lihtsustab uute KDF ja PRF rakenduste lisamist. Vana API EVP_PKEY, mille kaudu olid saadaval algoritmid scrypt, TLS1 PRF ja HKDF, on ümber tehtud kihina, mis on rakendatud API-de EVP_KDF ja EVP_MAC peale.
  • TLS protokolli rakenduses on lisatud võimalus kasutada Linuxi tuuma sisseehitatud TLS klientide ja serverite kasutamist operatsioonide kiirendamiseks. Linuxi tuuma pakutava TLS rakenduse aktiveerimiseks on vajalik lubada suvand "SSL_OP_ENABLE_KTLS" või seaded "enable-ktls".
  • Lisatud on uute algoritmide toetus:
    • Ahneste võtmete genereerimise algoritmid (KDF) — «SINGLE STEP» ja «SSH».
    • Ahneste kinnituse algoritmid (MAC) — «GMAC» ja «KMAC».
    • RSA võtme kapseldamise algoritm (KEM) «RSASVE».
    • Krüpteerimise algoritm «AES-SIV» (RFC-8452).
    • API-s EVP on lisatud toetused inversiivsete krüpteerimiste jaoks, kasutades algoritmi AES võtmete krüpteerimiseks (Key Wrap): «AES-128-WRAP-INV», «AES-192-WRAP-INV», «AES-256-WRAP-INV», «AES-128-WRAP-PAD-INV», «AES-192-WRAP-PAD-INV» ja «AES-256-WRAP-PAD-INV».
    • API-s EVP on lisatud toetused šifrite äralaenamise algoritmidele (CTS): «AES-128-CBC-CTS», «AES-192-CBC-CTS», «AES-256-CBC-CTS», «CAMELLIA-128-CBC-CTS», «CAMELLIA-192-CBC-CTS» ja «CAMELLIA-256-CBC-CTS».
    • Lisatud toetus digitaalsetele allkirjadele CAdES-BES (RFC 5126).
    • AES_GCM-is on rakendatud parameeter AuthEnvelopedData (RFC 5083), mis võimaldab krüpteerida ja dekrüpteerida autentitud ja krüpteeritud sõnumeid, kasutades režiimi AES GCM.
  • Avalikus API-s on välja toodud funktsioonid PKCS7_get_octet_string ja PKCS7_type_is_other.
  • API-s PKCS#12 on algoritmid, mida rakendatakse vaikimisi funktsioonis PKCS12_create(), asendatud PBKDF2 ja AES-iga, ning MAC arvutamiseks on kasutatud algoritmi SHA-256. Eelneva käitumise taastamiseks on ette nähtud valik «-legacy». Lisatud suur hulk uusi laiendatud funktsioone PKCS12_*_ex, PKCS5_*_ex ja PKCS8_*_ex, nagu PKCS12_add_key_ex(), PKCS12_create_ex() ja PKCS12_decrypt_skey_ex().
  • Windowsi platvormile on lisatud toetus lõimede sünkroniseerimiseks SRWLock mehhanismi kaudu.
  • Lisatud uus API jälgimiseks, mida saab aktiveerida parameetri enable-trace kaudu.
  • Laienenud toetatavate võtmete vahemik funktsioonides EVP_PKEY_public_check() ja EVP_PKEY_param_check(): RSA, DSA, ED25519, X25519, ED448 ja X448.
  • RAND_DRBG alamkomplekt on eemaldatud, mille asemel on loodud API EVP_RAND. Funktsioonid FIPS_mode() ja FIPS_mode_set() on eemaldatud.
  • Märkimisväärne osa API-st on muudetud vananenuks — vananenud kutsete kasutamine projektide koodis toob kaasa hoiatused kompileerimise ajal. Sealhulgas on vananenud ametlikult välja kuulutatud madala taseme API-d, mis on seotud teatud algoritmide rakendustega (näiteks AES_set_encrypt_key ja AES_encrypt). Ametlik tugi OpenSSL 3.0.0-s antakse nüüd ainult kõrgetasemelistele API-dele EVP, mis on eristatud üksikute algoritmide tüüpidest (selle API alla kuuluvad näiteks funktsioonid EVP_EncryptInit_ex, EVP_EncryptUpdate ja EVP_EncryptFinal). Ühes järgmistest olulisest väljaandest eemaldatakse vananenud API-d. Vananenud algoritmide rakendused, nagu MD2 ja DES, mis on saadaval läbi API EVP, on viidud eraldi „legacy“ moodulisse, mis on vaikimisi välja lülitatud.
  • Dokumentatsiooni ja testide komplekti on oluliselt laiendatud. Võrreldes versiooniga 1.1.1 on dokumentatsiooni maht suurenenud 94% ja testikomplekti koodi suurus 54%.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster