Hoʻokuʻu ʻia ʻo OpenSSL 3.0.0 Cryptographic Library

Ma hope o ʻekolu mau makahiki o ka hoʻomohala ʻana a me nā hoʻokuʻu hoʻāʻo 19, ua hoʻokuʻu ʻia ka waihona OpenSSL 3.0.0 me ka hoʻokō ʻana i nā protocols SSL/TLS a me nā algorithm encryption like ʻole. Aia ka lālā hou i nā hoʻololi e uhaki ana i ka hoʻokō ʻana i hope ma ka pae API a me ABI, akā ʻaʻole pili nā loli i ka hana o ka hapa nui o nā noi e koi ana i kahi kūkulu hou e neʻe mai OpenSSL 1.1.1. E kākoʻo ʻia ka lālā mua o OpenSSL 1.1.1 a hiki i Kepakemapa 2023.

ʻO ka hoʻololi nui ʻana i ka helu mana ma muli o ka hoʻololi ʻana i ka helu kuʻuna "Major.Minor.Patch". Mai kēia manawa, e hoʻololi ka huahelu mua (Major) i ka helu mana inā ʻoki ʻia ka hoʻohālikelike ma ka pae API/ABI, a e loli ka lua (Minor) ke hoʻonui ʻia ka hana me ka hoʻololi ʻole i ka API/ABI. E hāʻawi ʻia nā mea hoʻoponopono hoʻoponopono me ka hoʻololi ʻana i ka helu ʻekolu (Patch). Ua koho ʻia ka helu 3.0.0 ma hope koke iho o ka 1.1.1 e pale aku i ka uhi ʻana me ka module FIPS i hoʻomohala ʻia i kēia manawa no OpenSSL, kahi i hoʻohana ʻia ai ka helu 2.x.

ʻO ka lua o ka hoʻololi koʻikoʻi no ka papahana ʻo ia ka hoʻololi ʻana mai kahi laikini pālua (OpenSSL a SSLeay) i ka laikini Apache 2.0. Ua hoʻokumu ʻia ka laikini OpenSSL nona mua ma ke kikokikona o ka palapala hoʻoilina Apache 1.0 a koi ʻia ka wehewehe ʻana o OpenSSL i nā mea kūʻai aku i ka wā e hoʻohana ai i nā hale waihona puke OpenSSL, a me kahi leka kūikawā inā hāʻawi ʻia ʻo OpenSSL ma ke ʻano o ka huahana. Ua kūpono kēia mau koi i ka laikini kahiko me ka GPL, e paʻakikī ai ka hoʻohana ʻana i OpenSSL i nā papahana laikini GPL. No ka hoʻopuni ʻana i kēia ʻano like ʻole, ua koi ʻia nā papahana GPL e hoʻohana i nā ʻaelike laikini kikoʻī kahi i hoʻohui ʻia ai ka kikokikona nui o ka GPL me kahi paukū e ʻae i ka noi e hoʻopili ʻia me ka waihona OpenSSL a ʻōlelo ʻia ʻaʻole pono nā koi o ka GPL. pili i ka loulou me OpenSSL.

Hoʻohālikelike ʻia me ka lālā OpenSSL 1.1.1, ua hoʻohui ʻo OpenSSL 3.0.0 ma mua o 7500 mau hoʻololi i hāʻawi ʻia e nā mea hoʻomohala 350. Nā hana hou o OpenSSL 3.0.0:

  • Ua manaʻo ʻia kahi modula FIPS hou, me ka hoʻokō ʻana i nā algorithms cryptographic e hoʻokō me ke kūlana palekana FIPS 140-2 (ua hoʻomaka ʻia ke kaʻina hana hōʻoia no ka module i kēia mahina, a manaʻo ʻia ka palapala hōʻoia FIPS 140-2 i kēia makahiki aʻe). ʻOi aku ka maʻalahi o ka hoʻohana ʻana i ka module hou a ʻo ka hoʻopili ʻana iā ia i nā noi he nui ʻaʻole paʻakikī ma mua o ka hoʻololi ʻana i ka faila hoʻonohonoho. ʻO ka mea paʻamau, ua pio ka module FIPS a koi ʻia ke koho enable-fips e hiki ai.
  • Hoʻokomo ʻo libcrypto i ka manaʻo o nā mea hoʻolako pluggable, kahi i pani ai i ka manaʻo o nā mīkini (ua hoʻopau ʻia ka ENGINE API). Me ke kōkua o nā mea hoʻolako, hiki iā ʻoe ke hoʻohui i kāu hoʻokō ponoʻī o nā algorithms no nā hana e like me ka encryption, decryption, key generation, MAC helu, hana ʻana a me ka hōʻoia ʻana i nā pūlima kikohoʻe. Hiki ke hoʻohui i nā mea hou a hana i nā hoʻokō ʻē aʻe o nā algorithm i kākoʻo mua ʻia (ma ka maʻamau, hoʻohana ʻia ka mea hoʻolako i kūkulu ʻia i OpenSSL no kēlā me kēia algorithm).
  • Kākoʻo hoʻohui ʻia no ka Certificate Management Protocol (RFC 4210), hiki ke hoʻohana ʻia e noi i nā palapala hōʻoia mai kahi kikowaena CA, hōʻano hou i nā palapala hōʻoia, a hoʻopau i nā palapala hōʻoia. Hana ʻia ka hana me CMP me ka hoʻohana ʻana i ka pono openssl-cmp hou, e kākoʻo pū ana i ka format CRMF (RFC 4211) a me ka hoʻouna ʻana i nā noi ma o HTTP/HTTPS (RFC 6712).
  • Ua hoʻokō ʻia kahi mea kūʻai piha piha no nā protocol HTTP a me HTTPS, e kākoʻo ana i nā ʻano GET a me POST, noi i ka hoʻohuli hou ʻana, e hana ana ma o kahi koho, ASN.1 encoding a me ka hana manawa.
  • Ua hoʻohui ʻia kahi EVP_MAC hou (Message Authentication Code API) i mea e maʻalahi ai ka hoʻohui ʻana i nā hoʻokō hou o nā hoʻokomo hoʻohenehene.
  • Manaʻo ʻia kahi polokalamu polokalamu hou no ka hana ʻana i nā kī - EVP_KDF (Key Derivation Function API), e hoʻomaʻamaʻa i ka hoʻohui ʻana i nā hoʻokō hou o KDF a me PRF. ʻO ka EVP_PKEY API kahiko, kahi i loaʻa ai ka scrypt, TLS1 PRF a me HKDF algorithms, ua hoʻolālā hou ʻia ma ke ʻano o kahi papa i hoʻokō ʻia ma luna o nā API EVP_KDF a me EVP_MAC.
  • Hāʻawi ka hoʻokō ʻana i ka protocol TLS i ka hiki ke hoʻohana i ka mea kūʻai aku a me ka server TLS i kūkulu ʻia i loko o ka kernel Linux e wikiwiki i nā hana. No ka hoʻokō ʻana i ka TLS i hāʻawi ʻia e ka Linux kernel, pono ʻoe e hoʻā i ke koho "SSL_OP_ENABLE_KTLS" a i ʻole ka hoʻonohonoho "enable-ktls".
  • Hoʻohui i ke kākoʻo no nā algorithms hou:
    • ʻO nā algorithms hana nui (KDF) ʻo ia ka "SINGLE STEP" a me "SSH".
    • ʻO nā algorithms insertion simulated (MAC) he "GMAC" a me "KMAC".
    • RSA Key Encapsulation Algorithm (KEM) "RSASVE".
    • Hoʻopili algorithm "AES-SIV" (RFC-8452).
    • Hoʻohui i nā kelepona i ka EVP API me ke kākoʻo no nā ciphers inverse e hoʻohana ana i ka algorithm AES e hoʻopili ai i nā kī (Key Wrap): "AES-128-WRAP-INV", "AES-192-WRAP-INV", "AES-256-WRAP- INV” , "AES-128-WRAP-PAD-INV", "AES-192-WRAP-PAD-INV" a me "AES-256-WRAP-PAD-INV".
    • Hoʻohui i ke kākoʻo no ka hōʻaiʻē ciphertext (CTS) algorithms i ka EVP API: "AES-128-CBC-CTS", "AES-192-CBC-CTS", "AES-256-CBC-CTS", "CAMELLIA-128-CBC -CTS” ", "CAMELLIA-192-CBC-CTS" a me "CAMELLIA-256-CBC-CTS".
    • Kākoʻo hoʻohui ʻia no nā pūlima kikohoʻe CAdES-BES (RFC 5126).
    • Hoʻohana ʻo AES_GCM i ka ʻāpana AuthEnvelopedData (RFC 5083) e hiki ai i ka hoʻopili ʻana a me ka wehe ʻana i nā memo i hōʻoia ʻia a hoʻopili ʻia me ke ʻano AES GCM.
  • Ua hoʻohui ʻia nā hana PKCS7_get_octet_string a me PKCS7_type_is_other i ka API lehulehu.
  • Hoʻololi ka PKCS#12 API i nā algorithms paʻamau i hoʻohana ʻia ma ka hana PKCS12_create() me PBKDF2 a me AES, a hoʻohana i ka algorithm SHA-256 e helu MAC. No ka hoʻihoʻi ʻana i ka hana i hala, hāʻawi ʻia ke koho "-legacy". Hoʻohui ʻia he helu nui o nā kelepona hou i PKCS12_*_ex, PKCS5_*_ex a me PKCS8_*_ex, e like me PKCS12_add_key_ex().PKCS12_create_ex() a me PKCS12_decrypt_skey_ex().
  • No ka Windows platform, ua hoʻohui ʻia ke kākoʻo no ka hoʻonohonoho ʻana i ke kaula me ka mīkini SRWLock.
  • Hoʻohui ʻia kahi API hulina hou, i hoʻohana ʻia ma o ka ʻae hiki-trace.
  • Ua hoʻonui ʻia ka laulā o nā kī i kākoʻo ʻia ma ka hana EVP_PKEY_public_check() a me EVP_PKEY_param_check(): RSA, DSA, ED25519, X25519, ED448 a me X448.
  • Ua wehe ʻia ka subsystem RAND_DRBG, ua pani ʻia e ka EVP_RAND API. Ua wehe ʻia nā hana FIPS_mode() a me FIPS_mode_set().
  • ʻO kahi hapa koʻikoʻi o ka API ua lilo i mea kahiko - me ka hoʻohana ʻana i nā kelepona kahiko i ka code papahana e hopena i nā ʻōlelo aʻo i ka wā o ka hōʻuluʻulu ʻana. Hoʻokomo ʻia nā API haʻahaʻa haʻahaʻa i hoʻopaʻa ʻia i kekahi mau hoʻokō o nā algorithms (no ka laʻana, AES_set_encrypt_key a me AES_encrypt) ua haʻi ʻia ʻaʻole kahiko. Hāʻawi ʻia ke kākoʻo kūhelu ma OpenSSL 3.0.0 no nā API EVP kiʻekiʻe i hoʻokaʻawale ʻia mai kēlā me kēia ʻano algorithm (keia API, no ka laʻana, nā hana EVP_EncryptInit_ex, EVP_EncryptUpdate, a me EVP_EncryptFinal). E wehe ʻia nā API i hoʻopau ʻia ma kekahi o nā hoʻokuʻu nui e hiki mai ana. ʻO ka hoʻokō ʻana i nā algorithms hoʻoilina e like me MD2 a me DES, i loaʻa ma o ka EVP API, ua hoʻoneʻe ʻia i kahi module "hoʻoilina" ʻokoʻa, kahi i hoʻopaʻa ʻole ʻia.
  • Ua hoʻonui nui ʻia ka palapala a me ka suite hoʻāʻo. Hoʻohālikelike ʻia me ka lālā 1.1.1, ua hoʻonui ʻia ka nui o nā palapala e 94%, a ua hoʻonui ʻia ka nui o ka code suite test e 54%.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka