ืฉื—ืจื•ืจ ืกืคืจื™ื™ื” ืงืจื™ืคื˜ื•ื’ืจืคื™ืช ืฉืœ OpenSSL 3.0.0

ืœืื—ืจ ืฉืœื•ืฉ ืฉื ื™ื ืฉืœ ืคื™ืชื•ื— ื•-19 ืžื”ื“ื•ืจื•ืช ื‘ื“ื™ืงื”, ืกืคืจื™ื™ืช OpenSSL 3.0.0 ืฉื•ื—ืจืจื” ืขื ื”ื˜ืžืขืช ืคืจื•ื˜ื•ืงื•ืœื™ SSL/TLS ื•ืืœื’ื•ืจื™ืชืžื™ ื”ืฆืคื ื” ืฉื•ื ื™ื. ื”ืกื ื™ืฃ ื”ื—ื“ืฉ ื›ื•ืœืœ ืฉื™ื ื•ื™ื™ื ื”ืฉื•ื‘ืจื™ื ืชืื™ืžื•ืช ืœืื—ื•ืจ ื‘ืจืžืช ื”-API ื•ื”-ABI, ืืš ื”ืฉื™ื ื•ื™ื™ื ืœื ื™ืฉืคื™ืขื• ืขืœ ืคืขื•ืœืช ืจื•ื‘ ื”ื™ื™ืฉื•ืžื™ื ื”ื“ื•ืจืฉื™ื ื‘ื ื™ื™ื” ืžื—ื“ืฉ ื›ื“ื™ ืœืขื‘ื•ืจ ืž-OpenSSL 1.1.1. ื”ืกื ื™ืฃ ื”ืงื•ื“ื ืฉืœ OpenSSL 1.1.1 ื™ื”ื™ื” ื ืชืžืš ืขื“ ืกืคื˜ืžื‘ืจ 2023.

ืฉื™ื ื•ื™ ืžืฉืžืขื•ืชื™ ื‘ืžืกืคืจ ื”ื’ืจืกื” ื ื•ื‘ืข ืžื”ืžืขื‘ืจ ืœืžืกืคื•ืจ ื”ืžืกื•ืจืชื™ "Major.Minor.Patch". ืžืขืชื” ื•ื”ืœืื”, ื”ืกืคืจื” ื”ืจืืฉื•ื ื” (Major) ื‘ืžืกืคืจ ื”ื’ืจืกื” ืชืฉืชื ื” ืจืง ืื ื”ืชืื™ืžื•ืช ื ืฉื‘ืจื” ื‘ืจืžืช ื”-API/ABI, ื•ื”ืฉื ื™ื™ื” (Minor) ืชืฉืชื ื” ื›ืืฉืจ ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืชื•ื’ื“ืœ ืœืœื ืฉื™ื ื•ื™ ื”-API/ABI. ืขื“ื›ื•ื ื™ื ืžืชืงื ื™ื ื™ื™ืžืกืจื• ืขื ืฉื™ื ื•ื™ ืœืกืคืจื” ื”ืฉืœื™ืฉื™ืช (ืชื™ืงื•ืŸ). ื”ืžืกืคืจ 3.0.0 ืžื™ื“ ืœืื—ืจ 1.1.1 ื ื‘ื—ืจ ื›ื“ื™ ืœืžื ื•ืข ื—ืคื™ืคื•ืช ืขื ืžื•ื“ื•ืœ ื”-FIPS ืฉื ืžืฆื ื›ืขืช ื‘ืคื™ืชื•ื— ืขื‘ื•ืจ OpenSSL, ืฉืขื‘ื•ืจื• ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžืกืคื•ืจ 2.x.

ื”ืฉื™ื ื•ื™ ื”ื—ืฉื•ื‘ ื”ืฉื ื™ ืœืคืจื•ื™ืงื˜ ื”ื™ื” ื”ืžืขื‘ืจ ืžืจื™ืฉื™ื•ืŸ ื›ืคื•ืœ (OpenSSL ื•-SSLeay) ืœืจื™ืฉื™ื•ืŸ Apache 2.0. ืจื™ืฉื™ื•ืŸ OpenSSL ื”ืงื ื™ื™ื ื™ ื”ืงื•ื“ื ื”ืชื‘ืกืก ืขืœ ื”ื˜ืงืกื˜ ืฉืœ ืจื™ืฉื™ื•ืŸ Apache 1.0 ืžื“ื•ืจ ืงื•ื“ื ื•ื“ืจืฉ ืื–ื›ื•ืจ ืžืคื•ืจืฉ ืฉืœ OpenSSL ื‘ื—ื•ืžืจื™ ืฉื™ื•ื•ืง ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื•ืช OpenSSL, ื›ืžื• ื’ื ื”ื•ื“ืขื” ืžื™ื•ื—ื“ืช ืื OpenSSL ืกื•ืคืง ื›ื—ืœืง ืžื”ืžื•ืฆืจ. ื“ืจื™ืฉื•ืช ืืœื• ื”ืคื›ื• ืืช ื”ืจื™ืฉื™ื•ืŸ ื”ื™ืฉืŸ ืœื‘ืœืชื™ ืชื•ืื ืœ-GPL, ืžื” ืฉื”ืงืฉื” ืขืœ ื”ืฉื™ืžื•ืฉ ื‘-OpenSSL ื‘ืคืจื•ื™ืงื˜ื™ื ื‘ืขืœื™ ืจื™ืฉื™ื•ืŸ GPL. ื›ื“ื™ ืœืขืงื•ืฃ ืืช ื—ื•ืกืจ ื”ื”ืชืืžื” ื”ื–ื”, ืคืจื•ื™ืงื˜ื™ GPL ื ืืœืฆื• ืœื”ืฉืชืžืฉ ื‘ื”ืกื›ืžื™ ืจื™ืฉื™ื•ืŸ ืกืคืฆื™ืคื™ื™ื ืฉื‘ื”ื ื”ื ื•ืกื— ื”ืจืืฉื™ ืฉืœ ื”-GPL ื ื•ืกืคื” ื‘ืกืขื™ืฃ ืฉืื™ืคืฉืจ ื‘ืžืคื•ืจืฉ ืœืงืฉืจ ืืช ื”ืืคืœื™ืงืฆื™ื” ืœืกืคืจื™ื™ืช OpenSSL ื•ื”ื–ื›ื™ืจ ืฉื”ื“ืจื™ืฉื•ืช ืฉืœ ื”-GPL ืœื ืœื”ื—ื™ืœ ืขืœ ืงื™ืฉื•ืจ ืขื OpenSSL.

ื‘ื”ืฉื•ื•ืื” ืœืขื ืฃ OpenSSL 1.1.1, OpenSSL 3.0.0 ื”ื•ืกื™ืฃ ื™ื•ืชืจ ืž-7500 ืฉื™ื ื•ื™ื™ื ืฉื ืชืจืžื• ืขืœ ื™ื“ื™ 350 ืžืคืชื—ื™ื. ื”ื—ื™ื“ื•ืฉื™ื ื”ืขื™ืงืจื™ื™ื ืฉืœ OpenSSL 3.0.0:

  • ืžื•ื“ื•ืœ FIPS ื—ื“ืฉ ื”ื•ืฆืข, ื›ื•ืœืœ ื”ื˜ืžืขืช ืืœื’ื•ืจื™ืชืžื™ื ืงืจื™ืคื˜ื•ื’ืจืคื™ื™ื ื”ืขื•ืžื“ื™ื ื‘ืชืงืŸ ื”ืื‘ื˜ื—ื” FIPS 140-2 (ืชื”ืœื™ืš ื”ื”ืกืžื›ื” ืฉืœ ื”ืžื•ื“ื•ืœ ืืžื•ืจ ืœื”ืชื—ื™ืœ ื”ื—ื•ื“ืฉ, ื•ืื™ืฉื•ืจ FIPS 140-2 ืฆืคื•ื™ ื‘ืฉื ื” ื”ื‘ืื”). ื”ืžื•ื“ื•ืœ ื”ื—ื“ืฉ ื”ืจื‘ื” ื™ื•ืชืจ ืงืœ ืœืฉื™ืžื•ืฉ ื•ื—ื™ื‘ื•ืจื• ืœื™ื™ืฉื•ืžื™ื ืจื‘ื™ื ืœื ื™ื”ื™ื” ืงืฉื” ื™ื•ืชืจ ืžืฉื™ื ื•ื™ ืงื•ื‘ืฅ ื”ืชืฆื•ืจื”. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืžื•ื“ื•ืœ ื”-FIPS ืžื•ืฉื‘ืช ื•ื“ื•ืจืฉ ื”ืคืขืœืช ืืคืฉืจื•ืช ื”-enable-fips.
  • libcrypto ืžื™ื™ืฉืžืช ืืช ื”ืจืขื™ื•ืŸ ืฉืœ ืกืคืงื™ื ื ื™ืชื ื™ื ืœื—ื™ื‘ื•ืจ, ืฉื”ื—ืœื™ืฃ ืืช ืจืขื™ื•ืŸ ื”ืžื ื•ืขื™ื (ื”- ENGINE API ื”ื•ืฆื ืžืฉื™ืžื•ืฉ). ื‘ืขื–ืจืช ืกืคืงื™ื, ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ื™ื™ืฉื•ืžื™ื ืžืฉืœืš ืฉืœ ืืœื’ื•ืจื™ืชืžื™ื ืœืคืขื•ืœื•ืช ื›ื’ื•ืŸ ื”ืฆืคื ื”, ืคืขื ื•ื—, ื™ืฆื™ืจืช ืžืคืชื—ื•ืช, ื—ื™ืฉื•ื‘ MAC, ื™ืฆื™ืจื” ื•ืื™ืžื•ืช ืฉืœ ื—ืชื™ืžื•ืช ื“ื™ื’ื™ื˜ืœื™ื•ืช. ืืคืฉืจ ื’ื ืœื—ื‘ืจ ื—ื“ืฉื™ื ื•ื’ื ืœื™ืฆื•ืจ ื™ื™ืฉื•ืžื™ื ื—ืœื•ืคื™ื™ื ืฉืœ ืืœื’ื•ืจื™ืชืžื™ื ืฉื›ื‘ืจ ื ืชืžื›ื™ื (ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ืกืคืง ื”ืžื•ื‘ื ื” ื‘-OpenSSL ืžืฉืžืฉ ื›ืขืช ืขื‘ื•ืจ ื›ืœ ืืœื’ื•ืจื™ืชื).
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืคืจื•ื˜ื•ืงื•ืœ ื ื™ื”ื•ืœ ื”ืื™ืฉื•ืจื™ื (RFC 4210), ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื‘ืงืฉ ืื™ืฉื•ืจื™ื ืžืฉืจืช CA, ืœืขื“ื›ืŸ ืื™ืฉื•ืจื™ื ื•ืœื‘ื˜ืœ ืื™ืฉื•ืจื™ื. ื”ืขื‘ื•ื“ื” ืขื CMP ืžืชื‘ืฆืขืช ื‘ืืžืฆืขื•ืช ื›ืœื™ ื”ืฉื™ืจื•ืช ื”ื—ื“ืฉ openssl-cmp, ื”ืชื•ืžืš ื’ื ื‘ืคื•ืจืžื˜ CRMF (RFC 4211) ื•ืฉืœื™ื—ืช ื‘ืงืฉื•ืช ื‘ืืžืฆืขื•ืช HTTP/HTTPS (RFC 6712).
  • ื™ื•ืฉื ืœืงื•ื— ืžืœื ืขื‘ื•ืจ ืคืจื•ื˜ื•ืงื•ืœื™ HTTP ื•-HTTPS, ื”ืชื•ืžืš ื‘ืฉื™ื˜ื•ืช GET ื•-POST, ื ื™ืชื•ื‘ ืžื—ื“ืฉ ืฉืœ ื‘ืงืฉื”, ืขื‘ื•ื“ื” ื‘ืืžืฆืขื•ืช ืคืจื•ืงืกื™, ืงื™ื“ื•ื“ ASN.1 ื•ืขื™ื‘ื•ื“ ืคืกืง ื–ืžืŸ.
  • EVP_MAC ื—ื“ืฉ (Message Authentication Code API) ื ื•ืกืฃ ื›ื“ื™ ืœื”ืงืœ ืขืœ ื”ื•ืกืคืช ื™ื™ืฉื•ืžื™ื ื—ื“ืฉื™ื ืฉืœ ืชื•ืกืคื•ืช ืžื“ื•ืžื•ืช.
  • ืžื•ืฆืข ืžืžืฉืง ืชื•ื›ื ื” ื—ื“ืฉ ืœื”ืคืงืช ืžืคืชื—ื•ืช - EVP_KDF (Key Derivation Function API), ืืฉืจ ืžืคืฉื˜ ืืช ื”ื•ืกืคืช ื”ื˜ืžืขื•ืช ื—ื“ืฉื•ืช ืฉืœ KDF ื•-PRF. ื”-API ื”ื™ืฉืŸ ืฉืœ EVP_PKEY, ืฉื“ืจื›ื• ื”ื™ื• ื–ืžื™ื ื™ื ื”ืืœื’ื•ืจื™ืชืžื™ื scrypt, TLS1 PRF ื•-HKDF, ืขื•ืฆื‘ ืžื—ื“ืฉ ื‘ืฆื•ืจื” ืฉืœ ืฉื›ื‘ื” ื”ืžื™ื•ืฉืžืช ืขืœ ื’ื‘ื™ ืžืžืฉืงื™ ื”-API ืฉืœ EVP_KDF ื•-EVP_MAC.
  • ื”ื™ื™ืฉื•ื ืฉืœ ืคืจื•ื˜ื•ืงื•ืœ TLS ืžืกืคืง ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืœืงื•ื— ื•ื‘ืฉืจืช TLS ื”ืžื•ื‘ื ื™ื ื‘ืœื™ื‘ืช ืœื™ื ื•ืงืก ื›ื“ื™ ืœื”ืื™ืฅ ืืช ื”ืคืขื•ืœื•ืช. ื›ื“ื™ ืœื”ืคืขื™ืœ ืืช ื”ื˜ืžืขืช TLS ืฉืกื•ืคืง ืขืœ ื™ื“ื™ ืœื™ื‘ืช ืœื™ื ื•ืงืก, ืขืœื™ืš ืœื”ืคืขื™ืœ ืืช ื”ืืคืฉืจื•ืช "SSL_OP_ENABLE_KTLS" ืื• ืืช ื”ื”ื’ื“ืจื” "enable-ktls".
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืืœื’ื•ืจื™ืชืžื™ื ื—ื“ืฉื™ื:
    • ืืœื’ื•ืจื™ืชืžื™ื ืœื™ืฆื™ืจืช ืžืคืชื—ื•ืช (KDF) ื”ื "SINGLE STEP" ื•-"SSH".
    • ืืœื’ื•ืจื™ืชืžื™ ื”ื•ืกืคื” ืžื“ื•ืžื” (MAC) ื”ื "GMAC" ื•-"KMAC".
    • ืืœื’ื•ืจื™ืชื RSA Key Encapsulation (KEM) "RSASVE".
    • ืืœื’ื•ืจื™ืชื ื”ืฆืคื ื” "AES-SIV" (RFC-8452).
    • ื ื•ืกืคื• ืงืจื™ืื•ืช ืœ-EVP API ื”ืชื•ืžื›ื™ื ื‘ืฆืคื ื™ื ื”ืคื•ื›ื™ื ื‘ืืžืฆืขื•ืช ืืœื’ื•ืจื™ืชื AES ืœื”ืฆืคื ืช ืžืคืชื—ื•ืช (Key Wrap): "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".
    • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืืœื’ื•ืจื™ืชืžื™ื ืœื”ืฉืืœืช ื˜ืงืกื˜ื™ื (CTS) ืœ-EVP API: "AES-128-CBC-CTS", "AES-192-CBC-CTS", "AES-256-CBC-CTS", "CAMELLIA-128-CBC -CTS", "CAMELLIA-192-CBC-CTS" ื•-"CAMELLIA-256-CBC-CTS".
    • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื—ืชื™ืžื•ืช ื“ื™ื’ื™ื˜ืœื™ื•ืช CAdES-BES (RFC 5126).
    • AES_GCM ืžื™ื™ืฉืžืช ืืช ื”ืคืจืžื˜ืจ AuthEnvelopedData (RFC 5083) ื›ื“ื™ ืœืืคืฉืจ ื”ืฆืคื ื” ื•ืคืขื ื•ื— ืฉืœ ื”ื•ื“ืขื•ืช ืžืื•ืžืชื•ืช ื•ืžื•ืฆืคื ื•ืช ื‘ืืžืฆืขื•ืช ืžืฆื‘ AES GCM.
  • ื”ืคื•ื ืงืฆื™ื•ืช PKCS7_get_octet_string ื•-PKCS7_type_is_other ื ื•ืกืคื• ืœ-API ื”ืฆื™ื‘ื•ืจื™.
  • ื”-API ืฉืœ PKCS#12 ืžื—ืœื™ืฃ ืืช ืืœื’ื•ืจื™ืชืžื™ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ืžืฉืžืฉื™ื ื‘ืคื•ื ืงืฆื™ื” PKCS12_create() ื‘-PBKDF2 ื•ื‘-AES, ื•ืžืฉืชืžืฉ ื‘ืืœื’ื•ืจื™ืชื SHA-256 ื›ื“ื™ ืœื—ืฉื‘ MAC. ื›ื“ื™ ืœืฉื—ื–ืจ ื”ืชื ื”ื’ื•ืช ื‘ืขื‘ืจ, ื ื™ืชื ืช ื”ืืคืฉืจื•ืช "-legacy". ื”ื•ืกื™ืฃ ืžืกืคืจ ื’ื“ื•ืœ ืฉืœ ืงืจื™ืื•ืช ืžื•ืจื—ื‘ื•ืช ื—ื“ืฉื•ืช ืœ-PKCS12_*_ex, PKCS5_*_ex ื•-PKCS8_*_ex, ื›ื’ื•ืŸ PKCS12_add_key_ex().PKCS12_create_ex() ื•-PKCS12_decrypt_skey_ex().
  • ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžืช Windows, ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืกื ื›ืจื•ืŸ ื—ื•ื˜ื™ื ื‘ืืžืฆืขื•ืช ืžื ื’ื ื•ืŸ SRWLock.
  • ื ื•ืกืฃ API ื—ื“ืฉ ืœืžืขืงื‘, ืžื•ืคืขืœ ื‘ืืžืฆืขื•ืช ื”ืคืจืžื˜ืจ enable-trace.
  • ื˜ื•ื•ื— ื”ืžืคืชื—ื•ืช ื”ื ืชืžื›ื™ื ื‘ืคื•ื ืงืฆื™ื•ืช EVP_PKEY_public_check() ื•-EVP_PKEY_param_check() ื”ื•ืจื—ื‘: RSA, DSA, ED25519, X25519, ED448 ื•-X448.
  • ืชืช-ื”ืžืขืจื›ืช RAND_DRBG ื”ื•ืกืจื”, ื•ื”ื•ื—ืœืฃ ืขืœ ื™ื“ื™ EVP_RAND API. ื”ืคื•ื ืงืฆื™ื•ืช FIPS_mode() ื•- FIPS_mode_set() ื”ื•ืกืจื•.
  • ื—ืœืง ื ื™ื›ืจ ืžื”-API ื”ืคืš ืœืžื™ื•ืฉืŸ - ืฉื™ืžื•ืฉ ื‘ืงืจื™ืื•ืช ืžื™ื•ืฉื ื•ืช ื‘ืงื•ื“ ื”ืคืจื•ื™ืงื˜ ื™ื’ืจื•ื ืœืื–ื”ืจื•ืช ื‘ืžื”ืœืš ื”ื”ื™ื“ื•ืจ. ื›ื•ืœืœ ืžืžืฉืงื™ API ื‘ืจืžื” ื ืžื•ื›ื” ื”ืงืฉื•ืจื™ื ืœืžื™ืžื•ืฉื™ื ืžืกื•ื™ืžื™ื ืฉืœ ืืœื’ื•ืจื™ืชืžื™ื (ืœื“ื•ื’ืžื”, AES_set_encrypt_key ื•-AES_encrypt) ื”ื•ื›ืจื–ื• ืจืฉืžื™ืช ื›ืžื™ื•ืฉื ื™ื. ืชืžื™ื›ื” ืจืฉืžื™ืช ื‘-OpenSSL 3.0.0 ื ื™ืชื ืช ื›ืขืช ืจืง ืขื‘ื•ืจ ืžืžืฉืงื™ API ืฉืœ EVP ื‘ืจืžื” ื’ื‘ื•ื”ื” ื”ืžื•ืคืฉื˜ื™ื ืžืกื•ื’ื™ ืืœื’ื•ืจื™ืชืžื™ื ื‘ื•ื“ื“ื™ื (API ื–ื” ื›ื•ืœืœ, ืœืžืฉืœ, ืืช ื”ืคื•ื ืงืฆื™ื•ืช EVP_EncryptInit_ex, EVP_EncryptUpdate ื•-EVP_EncryptFinal). ืžืžืฉืงื™ API ืฉื”ื•ืฆืื• ืžืฉื™ืžื•ืฉ ื™ื•ืกืจื• ื‘ืื—ืช ืžื”ื’ืจืกืื•ืช ื”ื’ื“ื•ืœื•ืช ื”ื‘ืื•ืช. ื”ื˜ืžืขื•ืช ืฉืœ ืืœื’ื•ืจื™ืชืžื™ื ืžื“ื•ืจ ืงื•ื“ื ื›ืžื• MD2 ื•-DES, ื”ื–ืžื™ื ื™ื ื“ืจืš EVP API, ื”ื•ืขื‘ืจื• ืœืžื•ื“ื•ืœ "ืžื•ืจืฉืช" ื ืคืจื“, ื”ืžื•ืฉื‘ืช ื›ื‘ืจื™ืจืช ืžื—ื“ืœ.
  • ื—ื‘ื™ืœืช ื”ืชื™ืขื•ื“ ื•ื”ื‘ื“ื™ืงื•ืช ื”ื•ืจื—ื‘ื” ืžืฉืžืขื•ืชื™ืช. ื‘ื”ืฉื•ื•ืื” ืœืขื ืฃ 1.1.1, ื ืคื— ื”ืชื™ืขื•ื“ ื’ื“ืœ ื‘-94%, ื•ื’ื•ื“ืœ ืงื•ื“ ื—ื‘ื™ืœืช ื”ื‘ื“ื™ืงื” ื’ื“ืœ ื‘-54%.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”