Serbestberdana Pirtûkxaneya Krîptografî ya OpenSSL 3.0.0

Piştî sê sal pêşkeftin û 19 weşanên ceribandinê, pirtûkxaneya OpenSSL 3.0.0 bi pêkanîna protokolên SSL/TLS û algorîtmayên cihêreng ên şîfrekirinê hate berdan. Di şaxê nû de guheztinên ku lihevhatina paşverû di asta API û ABI de dişkînin vedihewîne, lê guheztin dê bandorê li xebata piraniya serîlêdanên ku ji nû ve avakirina ji OpenSSL 1.1.1 veqetînin bandor neke. Şaxa berê ya OpenSSL 1.1.1 dê heta Îlona 2023-an were piştgirî kirin.

Guherînek girîng di hejmara guhertoyê de ji ber derbasbûna jimareya kevneşopî ya "Major.Minor.Patch" e. Ji niha û pê ve, hejmara yekem (Major) di jimareya guhertoyê de dê tenê biguhezîne ger ku lihevhatî di asta API/ABI de têkbibe, û ya duyemîn (Mezin) dê biguheze dema ku fonksiyon bêyî guheztina API/ABI were zêdekirin. Nûvekirinên rastkirî dê bi guheztina jimareya sêyem (Patch) bêne radest kirin. Hejmara 3.0.0 tavilê piştî 1.1.1 hate hilbijartin da ku bi modula FIPS ya ku niha di bin pêşkeftinê de ye ji bo OpenSSL-ê, ku ji bo wê jimareya 2.x hatî bikar anîn, ji hevûdu dûr nekeve.

Guhertina duyemîn a girîng ji bo projeyê derbasbûna ji destûrnameyek dualî (OpenSSL û SSLeay) berbi lîsansa Apache 2.0 bû. Lîsansa berê ya xwedan OpenSSL-ê li ser bingeha metna lîsansa mîrateya Apache 1.0 bû û dema ku pirtûkxaneyên OpenSSL bikar tînin di materyalên kirrûbirrê de behsa eşkere ya OpenSSL-ê hewce dikir, û her weha heke OpenSSL wekî beşek hilberê hatî peyda kirin agahdariyek taybetî. Van hewcedariyên lîsansa kevn bi GPL-ê re nehevaheng kir, karanîna OpenSSL-ê di projeyên bi lîsansa GPL de dijwar dike. Ji bo ku li dora vê nelihevkirinê bigerin, projeyên GPL neçar bûn ku peymanên lîsansê yên taybetî bikar bînin ku tê de metna sereke ya GPL-ê bi xalek ku bi eşkere destûr dide ku serîlêdan bi pirtûkxaneya OpenSSL re were girêdan û destnîşan kir ku hewcedariyên GPL-ê nayên pêve kirin. serî li girêdana bi OpenSSL-ê bidin.

Li gorî şaxa OpenSSL 1.1.1, OpenSSL 3.0.0 zêdetirî 7500 guhertinên ku ji hêla 350 pêşdebiran ve hatine beşdar kirin zêde kirin. Nûvekirinên sereke yên OpenSSL 3.0.0:

  • Modulek nû ya FIPS hatiye pêşniyar kirin, di nav de pêkanîna algorîtmayên krîptografîk ên ku li gorî standarda ewlehiyê FIPS 140-2 tevdigerin (pêvajoya pejirandinê ya modulê tê plansaz kirin ku vê mehê dest pê bike, û pejirandina FIPS 140-2 sala bê tê çaverêkirin). Modula nû karanîna wê pir hêsantir e û girêdana wê bi gelek serlêdanan re dê ji guheztina pelê veavakirinê ne dijwartir be. Bi xwerû, modula FIPS neçalak e û pêdivî ye ku vebijarka enable-fips were çalak kirin.
  • libcrypto têgeha pêşkêşkerên pêvekêşbar, ku têgeha motoran cîh girtiye pêk tîne (API-ya ENGINE hate betal kirin). Bi alîkariya pêşkêşvanan, hûn dikarin pêkanînên xwe yên algorîtmayan ji bo operasyonên wekî şîfrekirin, deşîfrekirin, hilberîna mifteyê, hesabkirina MAC, afirandin û verastkirina îmzeyên dîjîtal zêde bikin. Mimkun e ku hem yên nû bi hev ve girêbidin û hem jî pêkanînên alternatîf ên algorîtmayên ku berê hatine piştgirî kirin biafirînin (ji hêla xwerû, pêşkêşvanê ku di OpenSSL-ê de hatî çêkirin naha ji bo her algorîtmayê tê bikar anîn).
  • Piştgiriyek ji bo Protokola Rêvebiriya Sertîfîkayê (RFC 4210) zêde kir, ku dikare were bikar anîn da ku ji serverek CA sertîfîkayan bixwaze, sertîfîkayan nûve bike, û sertîfîkayan betal bike. Karkirina bi CMP re bi karanîna karûbarek nû ya openssl-cmp, ku di heman demê de formata CRMF (RFC 4211) piştgirî dike û daxwaza şandina bi HTTP / HTTPS (RFC 6712) jî piştgirî dike.
  • Ji bo protokolên HTTP û HTTPS xerîdarek bêkêmasî hate bicîh kirin, ku piştgirî dide rêbazên GET û POST, beralîkirina daxwazê, bi navgînek proxy, kodkirina ASN.1 û pêvajoya demdirêjê dixebite.
  • EVP_MAC-ya nû (API-ya Koda Nasnameya Peyamê) hate zêdekirin da ku lê zêdekirina pêkanînên nû yên têkelên xapînok hêsantir bike.
  • Têkiliyek nermalava nû ya ji bo hilberîna kilîtan tê pêşniyar kirin - EVP_KDF (Key Derivation Function API), ku lêzêdekirina pêkanînên nû yên KDF û PRF hêsan dike. API-ya kevn a EVP_PKEY, ku bi navgîniya wê algorîtmayên şîfre, TLS1 PRF û HKDF peyda bûn, di forma qatek ku li ser API-yên EVP_KDF û EVP_MAC hatî bicîh kirin ji nû ve hatî sêwirandin.
  • Pêkanîna protokola TLS îmkana karanîna xerîdar û servera TLS ya ku di nav kernel Linux de hatî çêkirin bikar tîne da ku operasyonan bilezîne. Ji bo çalakkirina pêkanîna TLS ya ku ji hêla kernel Linux ve hatî peyda kirin, divê hûn vebijarka "SSL_OP_ENABLE_KTLS" an mîhenga "enable-ktls" çalak bikin.
  • Piştgiriya ji bo algorîtmayên nû zêde kir:
    • Algorîtmayên hilberîna sereke (KDF) "SINGLE STEP" û "SSH" ne.
    • Algorîtmayên têketina simulated (MAC) "GMAC" û "KMAC" ne.
    • Algorîtmaya Encapsulation Key RSA (KEM) "RSASVE".
    • Algorîtmaya şîfrekirinê "AES-SIV" (RFC-8452).
    • Bangên li EVP API-ya ku şîfreyên berevajî piştgirî dikin bi karanîna algorîtmaya AES-ê ji bo şîfrekirina mifteyan (Key Wrap) piştgirî dikin: "AES-128-WRAP-INV", "AES-192-WRAP-INV", "AES-256-WRAP-INV" ” , "AES-128-WRAP-PAD-INV", "AES-192-WRAP-PAD-INV" û "AES-256-WRAP-PAD-INV".
    • Piştgiriya ji bo algorîtmayên deynkirina şîfretext (CTS) li API-ya EVP zêde kir: "AES-128-CBC-CTS", "AES-192-CBC-CTS", "AES-256-CBC-CTS", "CAMELLIA-128-CBC". -CTS", "CAMELLIA-192-CBC-CTS" û "CAMELLIA-256-CBC-CTS".
    • Piştgiriya ji bo îmzeyên dîjîtal CAdES-BES (RFC 5126) zêde kir.
    • AES_GCM parametreya AuthEnvelopedData (RFC 5083) pêk tîne da ku şîfrekirin û deşîfrekirina peyamên ku bi karanîna moda AES GCM ve hatine pejirandin û şîfrekirin çalak bike.
  • Fonksiyonên PKCS7_get_octet_string û PKCS7_type_is_other li API-ya giştî hatine zêdekirin.
  • PKCS#12 API algorîtmayên xwerû yên ku di fonksiyona PKCS12_create() de têne bikar anîn bi PBKDF2 û AES vedigire, û algorîtmaya SHA-256 bikar tîne da ku MAC hesab bike. Ji bo vegerandina tevgera paşîn, vebijarka "-legacy" tê peyda kirin. Gelek bangên nû yên dirêjkirî li PKCS12_*_ex, PKCS5_*_ex û PKCS8_*_ex zêde kirin, wek PKCS12_add_key_ex().PKCS12_create_ex() û PKCS12_decrypt_skey_ex().
  • Ji bo platforma Windows-ê, piştgirî ji bo hevdemkirina mijarê bi karanîna mekanîzmaya SRWLock ve hatî zêdekirin.
  • API-ya şopandina nû lê zêde kir, ku bi navgîniya pîvana enable-trace ve hatî çalak kirin.
  • Rêjeya bişkojên ku di fonksiyonên EVP_PKEY_public_check() û EVP_PKEY_param_check() de têne piştgirî kirin hatine berfireh kirin: RSA, DSA, ED25519, X25519, ED448 û X448.
  • Binepergala RAND_DRBG hate rakirin, li şûna EVP_RAND API-ê hate guherandin. Fonksiyonên FIPS_mode() û FIPS_mode_set() hatin rakirin.
  • Beşek girîng a API-ê kevin bûye - karanîna bangên kevinkirî di koda projeyê de dê di dema berhevkirinê de bibe sedema hişyariyê. Di nav de API-yên nizm ên ku bi hin pêkanînên algorîtmayan ve girêdayî ne (mînakî, AES_set_encrypt_key û AES_encrypt) bi fermî hatine qewirandin. Piştgiriya fermî di OpenSSL 3.0.0 de naha tenê ji bo API-yên EVP-a-asta bilind ên ku ji celebên algorîtmayên kesane têne veqetandin tê peyda kirin (ev API, mînakî, fonksiyonên EVP_EncryptInit_ex, EVP_EncryptUpdate, û EVP_EncryptFinal dihewîne). Dê API-yên paşverû di yek ji weşanên mezin ên din de werin rakirin. Pêkanîna algorîtmayên mîras ên wekî MD2 û DES, ku bi navgîniya EVP API-yê ve têne peyda kirin, hatine veguheztin modulek "mîrasî" ya cihê, ku ji hêla xwerû ve hatî asteng kirin.
  • Belgekirin û pakêta testê bi girîngî hate berfireh kirin. Li gorî şaxa 1.1.1, qebareya belgekirinê ji sedî 94% zêde bûye, û mezinahiya koda pakêta testê% 54 zêde bûye.

Source: opennet.ru

Add a comment