ṢiiSSL 3.0.0 Tu silẹ Ile-ikawe Cryptographic

Lẹhin ọdun mẹta ti idagbasoke ati awọn idasilẹ idanwo 19, ile-ikawe OpenSSL 3.0.0 ti tu silẹ pẹlu imuse ti awọn ilana SSL/TLS ati ọpọlọpọ awọn algoridimu fifi ẹnọ kọ nkan. Ẹka tuntun naa pẹlu awọn iyipada ti o fọ ibamu sẹhin ni ipele API ati ABI, ṣugbọn awọn iyipada kii yoo ni ipa lori iṣẹ ti ọpọlọpọ awọn ohun elo ti o nilo atunṣeto lati jade lati OpenSSL 1.1.1. Ẹka ti tẹlẹ ti OpenSSL 1.1.1 yoo ni atilẹyin titi di Oṣu Kẹsan 2023.

Iyipada pataki ninu nọmba ikede jẹ nitori iyipada si nọmba ibile “Major.Minor.Patch”. Lati isisiyi lọ, nọmba akọkọ (Major) ninu nọmba ikede yoo yipada nikan ti ibamu ba baje ni ipele API/ABI, ati pe keji (Kekere) yoo yipada nigbati iṣẹ ṣiṣe pọ si laisi iyipada API/ABI. Awọn imudojuiwọn atunṣe yoo jẹ jiṣẹ pẹlu iyipada si nọmba kẹta (Patch). Nọmba 3.0.0 lẹsẹkẹsẹ lẹhin 1.1.1 ti yan lati yago fun awọn agbekọja pẹlu lọwọlọwọ labẹ idagbasoke FIPS module fun OpenSSL, fun eyiti a lo nọmba 2.x.

Iyipada pataki keji fun iṣẹ akanṣe naa ni iyipada lati iwe-aṣẹ meji (OpenSSL ati SSLeay) si iwe-aṣẹ Apache 2.0. Iwe-aṣẹ OpenSSL ohun-ini iṣaaju ti da lori ọrọ ti iwe-aṣẹ Apache 1.0 julọ ati pe o nilo mẹnuba gbangba ti OpenSSL ni awọn ohun elo titaja nigba lilo awọn ile ikawe OpenSSL, bakanna bi akiyesi pataki ti OpenSSL ba pese gẹgẹbi apakan ọja naa. Awọn ibeere wọnyi jẹ ki iwe-aṣẹ atijọ ko ni ibamu pẹlu GPL, ṣiṣe ki o nira lati lo OpenSSL ni awọn iṣẹ akanṣe GPL. Lati wa ni ayika aiṣedeede yii, awọn iṣẹ akanṣe GPL ni a fi agbara mu lati lo awọn adehun iwe-aṣẹ pato ninu eyiti ọrọ akọkọ ti GPL jẹ afikun pẹlu gbolohun ọrọ kan ti o gba laaye ohun elo ni gbangba lati sopọ pẹlu ile-ikawe OpenSSL ati mẹnuba pe awọn ibeere GPL ko ṣe. kan si ọna asopọ pẹlu OpenSSL.

Ti a ṣe afiwe si ẹka OpenSSL 1.1.1, OpenSSL 3.0.0 ṣafikun diẹ sii ju awọn ayipada 7500 ti o ṣe alabapin nipasẹ awọn olupolowo 350. Awọn imotuntun akọkọ ti OpenSSL 3.0.0:

  • A ti dabaa module FIPS tuntun kan, pẹlu imuse ti awọn algoridimu cryptographic ti o ni ibamu pẹlu boṣewa aabo FIPS 140-2 (ilana iwe-ẹri fun module naa ti ṣeto lati bẹrẹ ni oṣu yii, ati pe iwe-ẹri FIPS 140-2 nireti ni ọdun to nbọ). Module tuntun jẹ rọrun pupọ lati lo ati sisopọ rẹ si ọpọlọpọ awọn ohun elo kii yoo nira diẹ sii ju yiyipada faili iṣeto ni. Nipa aiyipada, module FIPS jẹ alaabo ati pe o nilo aṣayan agbara-fips lati mu ṣiṣẹ.
  • libcrypto ṣe imuse ero ti awọn olupese pluggable, eyiti o rọpo ero ti awọn ẹrọ (APIN ENGINE ti parẹ). Pẹlu iranlọwọ ti awọn olupese, o le ṣafikun awọn imuse ti ara rẹ ti awọn algoridimu fun iru awọn iṣẹ bii fifi ẹnọ kọ nkan, decryption, iran bọtini, iṣiro MAC, ẹda ati ijẹrisi awọn ibuwọlu oni-nọmba. O ṣee ṣe lati sopọ mejeeji awọn tuntun ati ṣẹda awọn imuse yiyan ti awọn algoridimu ti o ni atilẹyin tẹlẹ (nipasẹ aiyipada, olupese ti a ṣe sinu OpenSSL ti lo bayi fun algorithm kọọkan).
  • Atilẹyin ti a ṣafikun fun Ilana Iṣakoso ijẹrisi (RFC 4210), eyiti o le ṣee lo lati beere awọn iwe-ẹri lati olupin CA kan, awọn iwe-ẹri imudojuiwọn, ati fagile awọn iwe-ẹri. Ṣiṣẹ pẹlu CMP ni a ṣe ni lilo ohun elo openssl-cmp tuntun, eyiti o tun ṣe atilẹyin ọna kika CRMF (RFC 4211) ati fifiranṣẹ awọn ibeere nipasẹ HTTP/HTTPS (RFC 6712).
  • Onibara ti o ni kikun fun awọn ilana HTTP ati HTTPS ti ni imuse, ti n ṣe atilẹyin awọn ọna GET ati POST, ti o beere fun atunṣe, ṣiṣẹ nipasẹ aṣoju, ASN.1 fifi koodu ati sisẹ akoko.
  • A ti ṣafikun EVP_MAC tuntun (Koodu Ijeri Ifiranṣẹ API) lati jẹ ki o rọrun lati ṣafikun awọn imuse tuntun ti awọn ifibọ ẹgan.
  • Ni wiwo sọfitiwia tuntun kan fun ṣiṣẹda awọn bọtini ni a dabaa - EVP_KDF (Iṣẹ Itọnisọna bọtini API), eyiti o rọrun lati ṣafikun awọn imuṣẹ tuntun ti KDF ati PRF. API EVP_PKEY atijọ, nipasẹ eyiti scrypt, TLS1 PRF ati awọn algoridimu HKDF wa, ti tun ṣe ni irisi Layer ti a ṣe ni oke ti EVP_KDF ati EVP_MAC APIs.
  • Imuse ti Ilana TLS n pese agbara lati lo alabara TLS ati olupin ti a ṣe sinu ekuro Linux lati mu awọn iṣẹ ṣiṣẹ. Lati mu imuse TLS ti a pese nipasẹ ekuro Linux, o gbọdọ mu aṣayan “SSL_OP_ENABLE_KTLS ṣiṣẹ” tabi eto “enable-ktls”.
  • Atilẹyin ti a ṣafikun fun awọn algoridimu tuntun:
    • Awọn algoridimu iran bọtini (KDF) jẹ “Igbese kan ṣoṣo” ati “SSH”.
    • Awọn algoridimu ifibọ simulated (MAC) jẹ “GMAC” ati “KMAC”.
    • Algorithm Imudaniloju Bọtini RSA (KEM) "RSASVE".
    • Alugoridimu ìsekóòdù "AES-SIV" (RFC-8452).
    • Awọn ipe ti a fikun si API EVP pẹlu atilẹyin fun awọn oluyipada onidakeji ni lilo algorithm AES lati parọ awọn bọtini (Iwe Bọtini): “AES-128-WRAP-INV”, “AES-192-WRAP-INV”, “AES-256-WRAP- INV” , “AES-128-WRAP-PAD-INV”, “AES-192-WRAP-PAD-INV” ati “AES-256-WRAP-PAD-INV”.
    • Atilẹyin ti a ṣafikun fun awọn algoridimu yiya ọrọ-ọrọ ciphertext (CTS) si API EVP: “AES-128-CBC-CTS”, “AES-192-CBC-CTS”, “AES-256-CBC-CTS”, “CAMELLIA-128-CBC -CTS", "CAMELLIA-192-CBC-CTS" ati "CAMELLIA-256-CBC-CTS".
    • Atilẹyin ti a ṣafikun fun awọn ibuwọlu oni nọmba CAdES-BES (RFC 5126).
    • AES_GCM ṣe imuse paramita AuthEnvelopedData (RFC 5083) lati jẹ ki fifi ẹnọ kọ nkan ati sisọ awọn ifiranṣẹ jẹri ati fifi ẹnọ kọ nkan nipa lilo ipo AES GCM.
  • PKCS7_get_octet_string ati PKCS7_type_is_omiiran awọn iṣẹ ti a ti fi kun si awọn àkọsílẹ API.
  • PKCS # 12 API rọpo awọn algoridimu aiyipada ti a lo ninu iṣẹ PKCS12_create () pẹlu PBKDF2 ati AES, o si nlo algorithm SHA-256 lati ṣe iṣiro MAC. Lati mu pada iwa ti o ti kọja, aṣayan "-legacy" ti pese. Fi kun kan ti o tobi nọmba ti titun o gbooro sii awọn ipe to PKCS12_*_ex, PKCS5_*_ex ati PKCS8_*_ex, gẹgẹ bi awọn PKCS12_add_key_ex () .PKCS12_create_ex () ati PKCS12_decrypt_skey_ex ().
  • Fun Syeed Windows, atilẹyin fun amuṣiṣẹpọ okun nipa lilo ẹrọ SRWLock ti ni afikun.
  • Ṣafikun API wiwa kakiri tuntun kan, ṣiṣẹ nipasẹ paramita wiwa kakiri.
  • Iwọn awọn bọtini ti o ni atilẹyin ni EVP_PKEY_public_check() ati awọn iṣẹ EVP_PKEY_param_check() ti gbooro: RSA, DSA, ED25519, X25519, ED448 ati X448.
  • RAND_DRBG subsystem ti a ti kuro, rọpo nipasẹ awọn EVP_RAND API. Awọn iṣẹ FIPS_mode () ati FIPS_mode_set () ti yọkuro.
  • Apa pataki ti API ni a ti sọ di igba atijọ - lilo awọn ipe ti ko tọ ni koodu iṣẹ akanṣe yoo ja si awọn ikilo lakoko iṣakojọpọ. Pẹlu awọn API ipele-kekere ti a so si awọn imuse kan ti awọn algoridimu (fun apẹẹrẹ, AES_set_encrypt_key ati AES_encrypt) ni a ti sọ ni gbangba pe o ti pari. Atilẹyin osise ni OpenSSL 3.0.0 ti wa ni bayi ti a pese fun awọn API EVP giga-giga ti a yọkuro lati awọn iru algorithm kọọkan (API yii pẹlu, fun apẹẹrẹ, EVP_EncryptInit_ex, EVP_EncryptUpdate, ati awọn iṣẹ EVP_EncryptFinal). Awọn API ti a ti palẹ yoo yọkuro ni ọkan ninu awọn idasilẹ pataki atẹle. Awọn imuse ti awọn algoridimu julọ gẹgẹbi MD2 ati DES, ti o wa nipasẹ EVP API, ti gbe lọ si “julọ” module lọtọ, eyiti o jẹ alaabo nipasẹ aiyipada.
  • Awọn iwe ati suite idanwo ti pọ si ni pataki. Ti a ṣe afiwe si 1.1.1 ti eka, iwọn didun ti iwe-ipamọ ti pọ si nipasẹ 94%, ati iwọn koodu suite idanwo ti pọ si nipasẹ 54%.

orisun: opennet.ru

Fi ọrọìwòye kun