Utgivning av kryptografibiblioteket OpenSSL 3.0.0

Efter tre Ärs utveckling och 19 betaversioner slÀpptes biblioteket OpenSSL 3.0.0 med implementation av SSL/TLS-protokollen och olika kryptografiska algoritmer. Den nya versionen innehÄller förÀndringar som bryter bakÄtkompatibiliteten pÄ API- och ABI-nivÄ, men dessa förÀndringar pÄverkar inte majoriteten av applikationerna, för vilka en omkompilering frÄn OpenSSL 1.1.1 Àr tillrÀcklig. Stöd för den tidigare versionen OpenSSL 1.1.1 kommer att ges fram till september 2023.

Den betydande förÀndringen av versionsnumret beror pÄ övergÄngen till traditionell numrering "Major.Minor.Patch". Den första siffran (Major) i versionsnumret kommer nu endast att Àndras vid brist pÄ kompatibilitet pÄ API/ABI-nivÄ, medan den andra siffran (Minor) kommer att Àndras vid funktionalitetstillvÀxt utan förÀndringar pÄ API/ABI. Korrigeringsuppdateringar kommer att levereras med en förÀndring av den tredje siffran (Patch). Numret 3.0.0 valdes direkt efter 1.1.1 för att undvika kollisioner med den FIPS-modul som utvecklas för OpenSSL, som hade numrering 2.x.

Ett annat viktigt förÀndring för projektet var övergÄngen frÄn dubbel licensiering (OpenSSL och SSLeay) till Apache 2.0-licens. Den tidigare anvÀnda egenlicensen för OpenSSL baserades pÄ texten av den förÄldrade licensen Apache 1.0 och krÀvde tydlig nÀmnelse av OpenSSL i reklammaterial nÀr biblioteken OpenSSL anvÀndes, samt tillÀgg av en speciell anmÀrkning vid leverans av OpenSSL som en del av en produkt. SÄdana krav gjorde den gamla licensen oförenlig med GPL, vilket skapade svÄrigheter vid anvÀndningen av OpenSSL i projekt med GPL-licens. För att kringgÄ denna oförenlighet var GPL-projekt tvungna att tillÀmpa specifika licensavtal dÀr huvudinnehÄllet i GPL kompletterades med en punkt som uttryckligen tillÀt bindning av applikationen med biblioteket OpenSSL och nÀmnde att GPL-kraven inte gÀllde bindning med OpenSSL.

JÀmfört med versionen OpenSSL 1.1.1 har mer Àn 7500 Àndringar lagts till i OpenSSL 3.0.0, som förberetts av 350 utvecklare. Huvudnyheterna i OpenSSL 3.0.0:

  • En ny FIPS-modul har föreslagits, som inkluderar implementeringen av kryptografiska algoritmer som uppfyller sĂ€kerhetsstandarden FIPS 140-2 (certifieringsprocessen för modulen planeras att börja den hĂ€r mĂ„naden, och FIPS 140-2-certifikatet förvĂ€ntas nĂ€sta Ă„r). Den nya modulen Ă€r betydligt enklare att anvĂ€nda och att koppla den till mĂ„nga applikationer krĂ€ver inte mer Ă€n att Ă€ndra konfigurationsfilen. Som standard Ă€r FIPS-modulen avstĂ€ngd och krĂ€ver att alternativet enable-fips anges för att aktiveras.
  • I libcrypto har konceptet med plug-in-leverantörer införts, som ersĂ€tter begreppet motorer (ENGINE API har förklarats som förĂ„ldrat). Med hjĂ€lp av leverantörer kan anvĂ€ndardefinierade implementeringar av algoritmer lĂ€ggas till för operationer sĂ„som kryptering, avkryptering, nyckelgenerering, MAC-berĂ€kning, samt skapande och verifiering av digitala signaturer. BĂ„de nya leverantörer kan kopplas in och alternativa implementeringar av redan stödda algoritmer kan skapas (per standard anvĂ€nds nu den inbyggda OpenSSL-leverantören för varje algoritm).
  • Stöd för certifikatstyrningsprotokollet CMP (Certificate Management Protocol, RFC 4210) har lagts till, som kan anvĂ€ndas för att begĂ€ra certifikat frĂ„n servern certifikatutfĂ€rdaren, uppdatera certifikat och Ă„terkalla certifikat. Arbetet med CMP sker med hjĂ€lp av det nya verktyget openssl-cmp, som ocksĂ„ stöder CRMF-formatet (RFC 4211) och överföring av förfrĂ„gningar via HTTP/HTTPS (RFC 6712).
  • En fullstĂ€ndig klient för HTTP- och HTTPS-protokollen har implementerats, som stödjer metoderna GET och POST, omdirigering av förfrĂ„gningar, proxyverksamhet, ASN.1-kodning och hantering av tidsgrĂ€nser.
  • Ett nytt API EVP_MAC (Message Authentication Code API) har lagts till, som förenklar införandet av nya implementeringar av autentiseringskoder.
  • Ett nytt programmeringsgrĂ€nssnitt för nyckelgenerering har föreslagits — EVP_KDF (Key Derivation Function API), som underlĂ€ttar införandet av nya implementeringar av KDF och PRF. Det gamla API:t EVP_PKEY, genom vilket algoritmerna scrypt, TLS1-PRF och HKDF var tillgĂ€ngliga, har omarbetats i form av ett lager som Ă€r implementerat ovanpĂ„ API:erna EVP_KDF och EVP_MAC.
  • I implementeringen av TLS-protokollet har möjligheten införts att anvĂ€nda den inbyggda Linux-kĂ€rnan TLS-klienten och servern för att snabba upp operationerna. För att aktivera den TLS-implementering som tillhandahĂ„lls av Linux-kĂ€rnan krĂ€vs att alternativet «SSL_OP_ENABLE_KTLS» eller instĂ€llningen «enable-ktls» aktiveras.
  • Stöd för nya algoritmer har lagts till:
    • Nyckelgenereringsalgoritmer (KDF) — "SINGLE STEP" och "SSH".
    • Integritetskontrollalgoritmer (MAC) — "GMAC" och "KMAC".
    • RSA-nyckelinbĂ€ddningsalgoritm (KEM) "RSASVE".
    • Krypteringsalgoritm "AES-SIV" (RFC-8452).
    • API:et EVP har fĂ„tt nya anrop med stöd för inversa chiffers som anvĂ€nder algoritmen AES för att kryptera nycklar (Key Wrap): "AES-128-WRAP-INV", "AES-192-WRAP-INV", "AES-256-WRAP-INV", "AES-128-WRAP-PAD-INV", "AES-192-WRAP-PAD-INV" och "AES-256-WRAP-PAD-INV".
    • API:et EVP har fĂ„tt stöd för algoritmer för ciphertext-Ă„tervinning (CTS): "AES-128-CBC-CTS", "AES-192-CBC-CTS", "AES-256-CBC-CTS", "CAMELLIA-128-CBC-CTS", "CAMELLIA-192-CBC-CTS" och "CAMELLIA-256-CBC-CTS".
    • Stöd för digitala signaturer CAdES-BES (RFC 5126) har lagts till.
    • I AES_GCM har parametern AuthEnvelopedData (RFC 5083) implementerats, vilket möjliggör kryptering och dekryptering av meddelanden som Ă€r autentiserade och krypterade med hjĂ€lp av lĂ€get AES GCM.
  • Funktionerna PKCS7_get_octet_string och PKCS7_type_is_other har tagits ut till det publika API:et.
  • I API:et PKCS#12 har de algoritmer som anvĂ€nds som standard i funktionen PKCS12_create() ersatts med PBKDF2 och AES, och algorithmen SHA-256 har anvĂ€nts för att berĂ€kna MAC. För att Ă„terstĂ€lla det tidigare beteendet finns ett alternativ "-legacy". Ett stort antal nya utvidgade anrop PKCS12_*_ex, PKCS5_*_ex och PKCS8_*_ex har lagts till, sĂ„som PKCS12_add_key_ex(), PKCS12_create_ex() och PKCS12_decrypt_skey_ex().
  • För Windows-plattformen har stöd för trĂ„dsynkronisering lagts till via mekanismen SRWLock.
  • Ett nytt API för spĂ„rning har lagts till, aktiveras genom parametern enable-trace.
  • Spektrumet av nycklar som stöds i funktionerna EVP_PKEY_public_check() och EVP_PKEY_param_check() har utökats: RSA, DSA, ED25519, X25519, ED448 och X448.
  • Undersystemet RAND_DRBG har tagits bort, och istĂ€llet erbjuds API:et EVP_RAND. Funktionerna FIPS_mode() och FIPS_mode_set() har tagits bort.
  • En betydande del av API:et har överförts till en förĂ„ldrad kategori - anvĂ€ndning av förĂ„ldrade anrop i projektets kod kommer att leda till varningar vid kompilering. Bland de förĂ„ldrade Ă€r Ă€ven lĂ„g nivĂ„ API:er som Ă€r kopplade till specifika algoritmers implementeringar (till exempel AES_set_encrypt_key och AES_encrypt). Officiellt stöd i OpenSSL 3.0.0 erbjuds nu endast för högnivĂ„ API:er EVP, som Ă€r abstraherade frĂ„n specifika algoritmtyper (till det hĂ€r API:t hör till exempel funktionerna EVP_EncryptInit_ex, EVP_EncryptUpdate och EVP_EncryptFinal). I nĂ€sta betydande version kommer de förĂ„ldrade API:erna att tas bort. Implementeringar av förĂ„ldrade algoritmer som MD2 och DES, som Ă€r tillgĂ€ngliga via EVP API, har flyttats till en separat modul "legacy", som Ă€r inaktiverad som standard.
  • Dokumentationen och testuppsĂ€ttningarna har betydligt utökats. JĂ€mfört med version 1.1.1 har dokumentationens omfattning ökat med 94 %, medan storleken pĂ„ testuppsĂ€ttningen har ökat med 54 %.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster