OpenSSL 3.0.0 ගුප්ත ලේඛන පුස්තකාලය නිකුත් කිරීම

වසර තුනක සංවර්ධනයකින් සහ පරීක්ෂණ නිකුතු 19කින් පසුව, SSL/TLS ප්‍රොටෝකෝල සහ විවිධ සංකේතාංකන ඇල්ගොරිතම ක්‍රියාත්මක කිරීමත් සමඟ OpenSSL 3.0.0 පුස්තකාලය නිකුත් කරන ලදී. නව ශාඛාවෙහි API සහ ABI මට්ටමින් පසුගාමී ගැළපුම බිඳ දමන වෙනස්කම් ඇතුළත් වේ, නමුත් OpenSSL 1.1.1 වෙතින් සංක්‍රමණය වීමට නැවත ගොඩනැඟීමක් අවශ්‍ය වන බොහෝ යෙදුම්වල ක්‍රියාකාරිත්වයට එම වෙනස්කම් බලපාන්නේ නැත. OpenSSL 1.1.1 හි පෙර ශාඛාව 2023 සැප්තැම්බර් දක්වා සහය දක්වයි.

අනුවාද අංකයෙහි සැලකිය යුතු වෙනසක් සම්ප්‍රදායික "Major.Minor.Patch" අංකනයට සංක්‍රමණය වීම හේතුවෙන්. මෙතැන් සිට, අනුවාද අංකයේ පළමු ඉලක්කම් (මේජර්) වෙනස් වන්නේ API/ABI මට්ටමින් ගැළපුම කැඩී ගියහොත් පමණක් වන අතර, API/ABI වෙනස් නොකර ක්‍රියාකාරීත්වය වැඩි කළ විට දෙවැන්න (Minor) වෙනස් වේ. නිවැරදි යාවත්කාලීන කිරීම් තුන්වන ඉලක්කම් (Patch) වෙත වෙනස් කිරීමකින් ලබා දෙනු ඇත. OpenSSL සඳහා දැනට සංවර්ධනය වෙමින් පවතින FIPS මොඩියුලය සමඟ අතිච්ඡාදනය වීම වැළැක්වීම සඳහා 3.0.0 ට පසු වහාම 1.1.1 අංකය තෝරා ගන්නා ලදී, ඒ සඳහා 2.x අංකනය භාවිතා කරන ලදී.

ව්‍යාපෘතිය සඳහා වූ දෙවන වැදගත් වෙනස වූයේ ද්විත්ව බලපත්‍රයකින් (OpenSSL සහ SSleay) Apache 2.0 බලපත්‍රය වෙත මාරු වීමයි. පෙර හිමිකාර OpenSSL බලපත්‍රය පැරණි Apache 1.0 බලපත්‍රයේ පාඨය මත පදනම් වූ අතර OpenSSL පුස්තකාල භාවිතා කරන විට අලෙවිකරණ ද්‍රව්‍යවල OpenSSL ගැන පැහැදිලිව සඳහන් කිරීම අවශ්‍ය වේ, එසේම නිෂ්පාදනයේ කොටසක් ලෙස OpenSSL සපයා තිබේ නම් විශේෂ දැනුම්දීමක්. මෙම අවශ්‍යතා පැරණි බලපත්‍රය GPL සමඟ නොගැලපෙන අතර, GPL බලපත්‍රලාභී ව්‍යාපෘතිවල OpenSSL භාවිතා කිරීමට අපහසු විය. මෙම නොගැලපීම මඟහරවා ගැනීම සඳහා, GPL ව්‍යාපෘතිවලට විශේෂිත බලපත්‍ර ගිවිසුම් භාවිතා කිරීමට බල කෙරුනි, එහි GPL හි ප්‍රධාන පාඨය යෙදුම OpenSSL පුස්තකාලය සමඟ සම්බන්ධ කිරීමට පැහැදිලිවම ඉඩ සලසන වගන්තියක් සමඟින් පරිපූරණය කරන ලද අතර GPL හි අවශ්‍යතා එසේ නොවන බව සඳහන් විය. OpenSSL සමඟ සම්බන්ධ කිරීම සඳහා අයදුම් කරන්න.

OpenSSL 1.1.1 ශාඛාව හා සසඳන විට, OpenSSL 3.0.0 සංවර්ධකයින් 7500 ක් විසින් දායක වූ වෙනස්කම් 350 කට වඩා එකතු කරන ලදී. OpenSSL 3.0.0 හි ප්‍රධාන නවෝත්පාදන:

  • FIPS 140-2 ආරක්ෂක ප්‍රමිතියට අනුකූල වන ගුප්ත ලේඛන ඇල්ගොරිතම ක්‍රියාත්මක කිරීම ඇතුළුව නව FIPS මොඩියුලයක් යෝජනා කර ඇත (මොඩියුලය සඳහා සහතික කිරීමේ ක්‍රියාවලිය මේ මාසයේ ආරම්භ වීමට නියමිත අතර FIPS 140-2 සහතිකය ලබන වසරේ අපේක්ෂා කෙරේ). නව මොඩියුලය භාවිතා කිරීමට වඩාත් පහසු වන අතර එය බොහෝ යෙදුම් වලට සම්බන්ධ කිරීම වින්‍යාස ගොනුව වෙනස් කිරීමට වඩා අපහසු නොවනු ඇත. පෙරනිමියෙන්, FIPS මොඩියුලය අක්‍රිය කර ඇති අතර සක්‍රීය-fips විකල්පය සක්‍රීය කිරීමට අවශ්‍ය වේ.
  • libcrypto විසින් ප්ලග් කළ හැකි සැපයුම්කරුවන්ගේ සංකල්පය ක්‍රියාවට නංවන අතර එය එන්ජින් සංකල්පය ප්‍රතිස්ථාපනය කරන ලදී (ENGINE API අවලංගු කර ඇත). සපයන්නන්ගේ සහාය ඇතිව, සංකේතනය, විකේතනය, යතුරු උත්පාදනය, MAC ගණනය කිරීම, ඩිජිටල් අත්සන් නිර්මාණය කිරීම සහ සත්‍යාපනය වැනි මෙහෙයුම් සඳහා ඔබේම ඇල්ගොරිතම ක්‍රියාත්මක කිරීම් එකතු කළ හැකිය. නව ඒවා සම්බන්ධ කිරීම සහ දැනටමත් සහාය දක්වන ඇල්ගොරිතමවල විකල්ප ක්‍රියාත්මක කිරීම් නිර්මාණය කිරීම යන දෙකටම හැකිය (පෙරනිමියෙන්, OpenSSL තුළ ගොඩනගා ඇති සැපයුම්කරු දැන් එක් එක් ඇල්ගොරිතම සඳහා භාවිතා කරයි).
  • Certificate Management Protocol (RFC 4210) සඳහා සහය එක් කරන ලදී, එය CA සේවාදායකයකින් සහතික ඉල්ලීමට, සහතික යාවත්කාලීන කිරීමට සහ සහතික අවලංගු කිරීමට භාවිතා කළ හැක. CMP සමඟ වැඩ කිරීම නව openssl-cmp උපයෝගීතාව භාවිතයෙන් සිදු කරනු ලබන අතර, එය CRMF ආකෘතියට (RFC 4211) සහය වන අතර HTTP/HTTPS (RFC 6712) හරහා ඉල්ලීම් යැවීම.
  • HTTP සහ HTTPS ප්‍රොටෝකෝල සඳහා සම්පූර්ණ සේවාලාභියෙකු ක්‍රියාවට නංවා ඇත, GET සහ POST ක්‍රම සඳහා සහාය වීම, යළි හරවා යැවීම් ඉල්ලීම, ප්‍රොක්සියක් හරහා වැඩ කිරීම, ASN.1 කේතනය සහ කල් ඉකුත්වීම සැකසීම.
  • නව EVP_MAC (පණිවිඩ සත්‍යාපන කේතය API) ව්‍යාජ ඇතුළු කිරීම් නව ක්‍රියාත්මක කිරීම් එක් කිරීම පහසු කිරීමට එක් කර ඇත.
  • යතුරු ජනනය කිරීම සඳහා නව මෘදුකාංග අතුරු මුහුණතක් යෝජනා කර ඇත - EVP_KDF (Key Derivation Function API), එය KDF සහ PRF නව ක්‍රියාත්මක කිරීම් එකතු කිරීම සරල කරයි. පැරණි EVP_PKEY API, ස්ක්‍රිප්ට්, TLS1 PRF සහ HKDF ඇල්ගොරිතම ලබා ගත හැකි වූ අතර, EVP_KDF සහ EVP_MAC API මත ක්‍රියාත්මක කරන ලද ස්ථරයක ආකාරයෙන් ප්‍රතිනිර්මාණය කර ඇත.
  • TLS ප්‍රොටෝකෝලය ක්‍රියාත්මක කිරීම මඟින් මෙහෙයුම් වේගවත් කිරීම සඳහා ලිනක්ස් කර්නලය තුළ ගොඩනගා ඇති TLS සේවාදායකයා සහ සේවාදායකය භාවිතා කිරීමේ හැකියාව ලබා දේ. Linux කර්නලය මඟින් සපයන TLS ක්‍රියාත්මක කිරීම සක්‍රීය කිරීමට, ඔබ "SSL_OP_ENABLE_KTLS" විකල්පය හෝ "enable-ktls" සැකසීම සක්‍රිය කළ යුතුය.
  • නව ඇල්ගොරිතම සඳහා සහය එක් කරන ලදී:
    • ප්රධාන උත්පාදන ඇල්ගොරිතම (KDF) "තනි පියවර" සහ "SSH" වේ.
    • අනුකරණය කරන ලද ඇතුළත් කිරීමේ ඇල්ගොරිතම (MAC) යනු "GMAC" සහ "KMAC" වේ.
    • RSA Key Encapsulation Algorithm (KEM) "RSASVE".
    • සංකේතාංකන ඇල්ගොරිතම "AES-SIV" (RFC-8452).
    • යතුරු සංකේතනය කිරීමට AES ඇල්ගොරිතම භාවිතා කරමින් ප්‍රතිලෝම කේතාංක සඳහා සහය ඇතිව EVP API වෙත ඇමතුම් එකතු කරන ලදි (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".
    • EVP API වෙත කේතාංක පෙළ ණය ගැනීමේ (CTS) ඇල්ගොරිතම සඳහා සහය එක් කරන ලදි: "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 functions public API වෙත එක් කර ඇත.
  • PKCS#12 API PKCS12_create() ශ්‍රිතයේ භාවිතා කරන පෙරනිමි ඇල්ගොරිතම PBKDF2 සහ AES සමඟ ප්‍රතිස්ථාපනය කරන අතර MAC ගණනය කිරීමට SHA-256 ඇල්ගොරිතම භාවිතා කරයි. අතීත හැසිරීම් ප්‍රතිසාධනය කිරීමට, "-legacy" විකල්පය සපයා ඇත. PKCS12_add_key_ex().PKCS5_create_ex() සහ PKCS8_decrypt_skey_ex() වැනි PKCS12_*_ex, PKCS12_*_ex සහ PKCS12_*_ex වෙත නව දිගු ඇමතුම් විශාල ප්‍රමාණයක් එක් කරන ලදී.
  • Windows වේදිකාව සඳහා, SRWLock යාන්ත්‍රණය භාවිතයෙන් නූල් සමමුහුර්ත කිරීම සඳහා සහය එක් කර ඇත.
  • සක්‍රීය-ට්‍රේස් පරාමිතිය හරහා සක්‍රීය කරන ලද නව ලුහුබැඳීමේ API එකක් එක් කරන ලදී.
  • 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 හි නිල සහාය දැන් සපයනු ලබන්නේ තනි ඇල්ගොරිතම වර්ග වලින් වියුක්ත කරන ලද ඉහළ මට්ටමේ EVP API සඳහා පමණි (මෙම API හට, උදාහරණයක් ලෙස, EVP_EncryptInit_ex, EVP_EncryptUpdate, සහ EVP_EncryptFinal ශ්‍රිත ඇතුළත් වේ). අත්හැර දැමූ API ඊළඟ ප්‍රධාන නිකුතුවකින් ඉවත් කරනු ලැබේ. EVP API හරහා ලබා ගත හැකි MD2 සහ DES වැනි ලෙගසි ඇල්ගොරිතම ක්‍රියාත්මක කිරීම, පෙරනිමියෙන් අක්‍රිය කර ඇති වෙනම "ලෙගසි" මොඩියුලයකට ගෙන ගොස් ඇත.
  • ලේඛන සහ පරීක්ෂණ කට්ටලය සැලකිය යුතු ලෙස පුළුල් කර ඇත. ශාඛාව 1.1.1 හා සසඳන විට, ලේඛන පරිමාව 94% කින් වැඩි වී ඇති අතර, පරීක්ෂණ කට්ටල කේතයේ ප්රමාණය 54% කින් වැඩි වී ඇත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න