OpenSSL 3.0.0 Cryptographic Library Tuku

I muri i nga tau e toru o te whakawhanaketanga me nga putanga whakamatautau 19, i tukuna te whare pukapuka OpenSSL 3.0.0 me te whakatinanatanga o nga tikanga SSL/TLS me nga momo algorithm whakamunatanga. Kei roto i te peka hou nga huringa ka pakaru whakamuri te hototahitanga i te taumata API me te ABI, engari kaore nga huringa e pa ki te whakahaeretanga o te nuinga o nga tono e hiahia ana kia hanga ano kia heke mai i OpenSSL 1.1.1. Ko te peka o mua o OpenSSL 1.1.1 ka tautokohia tae noa ki Mahuru 2023.

Ko te huringa nui o te tau putanga na te whakawhiti ki te nama tuku iho "Major.Minor.Patch". Mai i tenei wa, ka huri te mati tuatahi (Major) i te tau putanga mena ka pakaru te hototahi ki te taumata API/ABI, ka huri te tuarua (Minor) ina piki te mahi me te kore e huri i te API/ABI. Ka tukuna nga whakahou whakatika me te huringa ki te mati tuatoru (Patch). Ko te nama 3.0.0 i muri tonu mai i te 1.1.1 i kowhiria kia kore e whiti ki te waahanga FIPS kei te whakawhanakehia i tenei wa mo OpenSSL, i whakamahia ai te nama 2.x.

Ko te huringa nui tuarua mo te kaupapa ko te whakawhiti mai i te raihana rua (OpenSSL me SSLeay) ki te raihana Apache 2.0. Ko te raihana OpenSSL rangatira o mua i ahu mai i runga i te tuhinga o te raihana Apache 1.0 tuku iho, me te whakahua tika mo OpenSSL i roto i nga rawa hokohoko i te wa e whakamahi ana i nga whare pukapuka OpenSSL, me te panui motuhake mena i tukuna a OpenSSL hei waahanga o te hua. Na enei whakaritenga i kore ai te raihana tawhito ki te GPL, he uaua ki te whakamahi i te OpenSSL i roto i nga kaupapa raihana-GPL. Ki te huri i tenei kore hototahi, i akiakihia nga kaupapa GPL ki te whakamahi i nga kirimana raihana motuhake i taapirihia te tuhinga matua o te GPL ki tetahi rara e tino whakaae ana kia hono te tono ki te whare pukapuka OpenSSL me te kii ko nga whakaritenga o te GPL kaore i pai. tono ki te hono ki te OpenSSL.

Ka whakatauritea ki te peka OpenSSL 1.1.1, ka tapirihia e OpenSSL 3.0.0 neke atu i te 7500 nga huringa i tukuna e nga kaihanga 350. Nga mea hou o OpenSSL 3.0.0:

  • Ko te kaupapa FIPS hou kua tohua, tae atu ki te whakatinanatanga o nga algorithms cryptographic e whai ana ki te paerewa haumarutanga FIPS 140-2 (ko te tukanga tiwhikete mo te waahanga kua whakaritea hei timata i tenei marama, me te tiwhikete FIPS 140-2 e tumanakohia ana a tera tau). Ko te waahanga hou he maamaa ake te whakamahi me te hono atu ki nga tono maha kaore e uaua ake i te whakarereke i te konae whirihoranga. Ma te taunoa, kua monoa te kōwae FIPS me te hiahia kia whakahohea te kōwhiringa whakahohe-fips.
  • Ka whakatinanahia e libcrypto te ariā o nga kaiwhakarato mono, i whakakapi i te kaupapa o nga miihini (kua whakakorehia te API ENGINE). Ma te awhina o nga kaiwhakarato, ka taea e koe te taapiri i a koe ake whakatinanatanga o nga algorithms mo nga mahi penei i te whakamunatanga, te whakamunatanga, te whakatipuranga matua, te tatau MAC, te hanga me te manatoko o nga waitohu mamati. Ka taea te hono tahi i nga mea hou me te hanga i etahi atu whakatinanatanga o nga algorithms kua tautokona (ma te taunoa, ko te kaiwhakarato i hangaia ki OpenSSL ka whakamahia inaianei mo ia algorithm).
  • He tautoko taapiri mo te Kawa Whakahaere Tiwhikete (RFC 4210), ka taea te tono tiwhikete mai i te tūmau CA, whakahou i nga tiwhikete, me te whakakore i nga tiwhikete. Ko te mahi tahi me CMP ka mahia ma te whakamahi i te taputapu openssl-cmp hou, e tautoko ana hoki i te whakatakotoranga CRMF (RFC 4211) me te tuku tono ma te HTTP/HTTPS (RFC 6712).
  • Kua whakatinanahia he kaihoko katoa mo nga kawa HTTP me te HTTPS, e tautoko ana i nga tikanga GET me POST, tono whakatika, mahi ma te takawaenga, whakawaehere ASN.1 me te tukatuka wa.
  • He EVP_MAC hou (API Waehere Motuhēhēnga Karere) kua taapirihia kia ngawari ake te taapiri i nga whakatinanatanga hou o nga whakauru whakahi.
  • Kei te whakaarohia he atanga rorohiko hou mo te whakaputa i nga taviri - EVP_KDF (Key Derivation Function API), e whakamaarama ana i te taapiri o nga whakatinanatanga hou o KDF me PRF. Ko te EVP_PKEY API tawhito, na reira i waatea ai te scrypt, TLS1 PRF me HKDF algorithms, kua hangaia ano i te ahua o te paparanga i whakatinanahia ki runga ake o nga API EVP_KDF me EVP_MAC.
  • Ko te whakatinanatanga o te kawa TLS e whakarato ana i te kaha ki te whakamahi i te kaihoko TLS me te tūmau i hangaia ki te kernel Linux hei tere ake i nga mahi. Hei whakahohe i te whakatinanatanga TLS e whakaratohia ana e te kernel Linux, me whakahohe koe i te "SSL_OP_ENABLE_KTLS" kōwhiringa, te tautuhinga "whakahohe-ktls" ranei.
  • He tautoko taapiri mo nga algorithms hou:
    • Ko nga huringa whakatipuranga nui (KDF) ko te "TANGA KOTAHI" me te "SSH".
    • Ko nga algorithms whakauru whakauru (MAC) he "GMAC" me "KMAC".
    • RSA Key Encapsulation Algorithm (KEM) "RSASVE".
    • Whakamuna algorithm "AES-SIV" (RFC-8452).
    • He waea taapiri ki te EVP API me te tautoko mo nga ciphers hurihuri ma te whakamahi i te AES algorithm ki te whakamuna i nga taviri (Key Wrap): "AES-128-WRAP-INV", "AES-192-WRAP-INV", "AES-256-WRAP- INV” , "AES-128-WRAP-PAD-INV", "AES-192-WRAP-PAD-INV" me "AES-256-WRAP-PAD-INV".
    • Kua taapirihia he tautoko mo te tono nama kupu ciphertext (CTS) algorithms ki te EVP API: "AES-128-CBC-CTS", "AES-192-CBC-CTS", "AES-256-CBC-CTS", "CAMELLIA-128-CBC -CTS” ", "CAMELLIA-192-CBC-CTS" me "CAMELLIA-256-CBC-CTS".
    • He tautoko taapiri mo nga waitohu mamati CAdES-BES (RFC 5126).
    • Ka whakatinanahia e AES_GCM te tawhā AuthEnvelopedData (RFC 5083) kia taea ai te whakamunatanga me te wetemuna o nga karere kua whakamotuhēhēhia me te whakamunatia ma te whakamahi i te aratau AES GCM.
  • Ko te PKCS7_get_octet_string me PKCS7_type_is_other mahi kua taapirihia ki te API whanui.
  • Ka whakakapihia e te PKCS#12 API nga huringa taunoa e whakamahia ana i roto i te mahi PKCS12_create() me PBKDF2 me AES, ka whakamahi i te SHA-256 algorithm ki te tatau MAC. Hei whakaora i te whanonga o mua, ka tukuna te whiringa "-legacy". He maha nga waea taapiri hou ki PKCS12_*_ex, PKCS5_*_ex me PKCS8_*_ex, penei i PKCS12_add_key_ex().PKCS12_create_ex() me PKCS12_decrypt_skey_ex().
  • Mo te papanga Windows, kua taapirihia te tautoko mo te tukutahi miro ma te whakamahi i te tikanga SRWLock.
  • Kua taapirihia he API tirotiro hou, kua whakahohea ma te tawhā whakaahei-whakaaro.
  • Ko te awhe o nga taviri e tautokohia ana i roto i nga mahi EVP_PKEY_public_check() me EVP_PKEY_param_check() kua whakaroahia: RSA, DSA, ED25519, X25519, ED448 me X448.
  • Kua tangohia te punaha-roto RAND_DRBG, kua whakakapihia e te EVP_RAND API. Kua tangohia nga mahi FIPS_mode() me te FIPS_mode_set().
  • Ko tetahi waahanga nui o te API kua whakakorehia - ma te whakamahi i nga waea tawhito i roto i te waehere kaupapa ka puta he whakatupato i te wa e whakahiato ana. Tae atu ki nga API taumata-iti e herea ana ki etahi whakatinanatanga o te algorithms (hei tauira, AES_set_encrypt_key me AES_encrypt) kua kiia kua tawhitotia. Ko te tautoko whaimana i OpenSSL 3.0.0 ka whakaratohia inaianei mo nga API EVP taumata teitei ka tangohia mai i nga momo algorithm takitahi (kei roto i tenei API, hei tauira, te EVP_EncryptInit_ex, EVP_EncryptUpdate, me nga mahi EVP_EncryptFinal). Ko nga API kua whakakorehia ka tangohia i tetahi o nga putanga nui e whai ake nei. Ko nga whakatinanatanga o nga algorithm tuku iho penei i te MD2 me te DES, e waatea ana ma te EVP API, kua nekehia ki tetahi waahanga "tuku iho" motuhake, kua monoa ma te taunoa.
  • Kua tino whakawhānuihia te tuhinga me te huinga whakamatautau. I whakaritea ki te peka 1.1.1, kua piki ake te rahi o nga tuhinga e 94%, kua piki ake te rahi o te waehere huinga whakamatautau i te 54%.

Source: opennet.ru

Tāpiri i te kōrero