OpenSSL 3.0.0 Kryptografyske bibleteek Release

Nei trije jier fan ûntwikkeling en 19 testferzjes waard de OpenSSL 3.0.0-bibleteek frijlitten mei de ymplemintaasje fan de SSL/TLS-protokollen en ferskate fersiferingsalgoritmen. De nije tûke omfettet wizigingen dy't efterút kompatibiliteit brekke op it API- en ABI-nivo, mar de wizigingen sille gjin ynfloed hawwe op 'e wurking fan' e measte applikaasjes dy't in werbou nedich binne om te migrearjen fan OpenSSL 1.1.1. De foarige tûke fan OpenSSL 1.1.1 sil wurde stipe oant septimber 2023.

In wichtige feroaring yn it ferzjenûmer komt troch de oergong nei de tradisjonele "Major.Minor.Patch" nûmering. Fan no ôf sil it earste sifer (Major) yn it ferzjenûmer allinich feroarje as kompatibiliteit is brutsen op it API / ABI-nivo, en de twadde (Minor) sil feroarje as funksjonaliteit wurdt ferhege sûnder de API / ABI te feroarjen. Korrigearjende updates sille wurde levere mei in feroaring nei it tredde sifer (Patch). It nûmer 3.0.0 direkt nei 1.1.1 waard keazen om oerlapingen te foarkommen mei de op it stuit ûnder ûntwikkeling FIPS-module foar OpenSSL, wêrfoar de 2.x-nûmering brûkt waard.

De twadde wichtige feroaring foar it projekt wie de oergong fan in dûbele lisinsje (OpenSSL en SSLeay) nei de Apache 2.0-lisinsje. De foarige proprietêre OpenSSL-lisinsje wie basearre op de tekst fan 'e legacy Apache 1.0-lisinsje en easke eksplisite fermelding fan OpenSSL yn marketingmateriaal by it brûken fan OpenSSL-biblioteken, lykas ek in spesjale meidieling as OpenSSL waard levere as ûnderdiel fan it produkt. Dizze easken makken de âlde lisinsje ynkompatibel mei de GPL, wêrtroch it dreech waard om OpenSSL te brûken yn GPL-lisinsjeprojekten. Om dizze ynkompatibiliteit om te kommen, waarden GPL-projekten twongen om spesifike lisinsje-ôfspraken te brûken wêryn de haadtekst fan 'e GPL waard oanfolle mei in klausule dy't de applikaasje eksplisyt koe wurde keppele oan de OpenSSL-bibleteek en neamde dat de easken fan' e GPL net diene. jilde foar keppeling mei OpenSSL.

Yn ferliking mei de OpenSSL 1.1.1-ôfdieling hat OpenSSL 3.0.0 mear dan 7500 wizigingen tafoege bydroegen troch 350 ûntwikkelders. De wichtichste ynnovaasjes fan OpenSSL 3.0.0:

  • In nije FIPS-module is foarsteld, ynklusyf de ymplemintaasje fan kryptografyske algoritmen dy't foldogge oan 'e FIPS 140-2-befeiligingsstandert (it sertifikaasjeproses foar de module is pland om dizze moanne te begjinnen, en FIPS 140-2-sertifikaasje wurdt takom jier ferwachte). De nije module is folle makliker te brûken en it ferbinen mei in protte applikaasjes sil net dreger wêze dan it feroarjen fan it konfiguraasjetriem. Standert is de FIPS-module útskeakele en fereasket dat de ynskeakelje-fips-opsje ynskeakele is.
  • libcrypto ymplementearret it konsept fan pluggable providers, dy't ferfong it konsept fan motoren (de ENGINE API is ôfkard). Mei help fan providers kinne jo jo eigen ymplemintaasjes fan algoritmen tafoegje foar operaasjes lykas fersifering, ûntsifering, generaasje fan kaaien, MAC-berekkening, oanmeitsjen en ferifikaasje fan digitale hantekeningen. It is mooglik om beide nije te ferbinen en alternative ymplemintaasjes te meitsjen fan al stipe algoritmen (standert wurdt de provider ynboud yn OpenSSL no brûkt foar elk algoritme).
  • Stipe tafoege foar it Certificate Management Protocol (RFC 4210), dat kin wurde brûkt om sertifikaten oan te freegjen fan in CA-tsjinner, sertifikaten te aktualisearjen en sertifikaten yn te lûken. Wurkje mei CMP wurdt útfierd mei it nije openssl-cmp-hulpprogramma, dat ek it CRMF-formaat (RFC 4211) stipet en fersiken ferstjoere fia HTTP/HTTPS (RFC 6712).
  • In folweardige kliïnt foar de HTTP- en HTTPS-protokollen is ymplementearre, dy't de GET- en POST-metoaden stypje, omlieding oanfreegje, wurkje fia in proxy, ASN.1-kodearring en time-outferwurking.
  • In nije EVP_MAC (Message Authentication Code API) is tafoege om it makliker te meitsjen om nije ymplemintaasjes fan mock-ynserts ta te foegjen.
  • In nije software ynterface foar it generearjen fan kaaien wurdt foarsteld - EVP_KDF (Key Derivation Function API), dy't simplifies de tafoeging fan nije ymplemintaasjes fan KDF en PRF. De âlde EVP_PKEY API, wêrmei't de scrypt, TLS1 PRF en HKDF algoritmen beskikber wiene, is opnij ûntwurpen yn 'e foarm fan in laach ymplementearre boppe op' e EVP_KDF en EVP_MAC API's.
  • De ymplemintaasje fan it TLS-protokol jout de mooglikheid om de TLS-kliïnt en tsjinner te brûken yn 'e Linux-kernel om operaasjes te fersnellen. Om de TLS-ymplemintaasje yn te skeakeljen dy't troch de Linux-kernel levere wurdt, moatte jo de opsje "SSL_OP_ENABLE_KTLS" as de "enable-ktls" ynstelling ynskeakelje.
  • Stipe tafoege foar nije algoritmen:
    • Kaaigeneraasjealgoritmen (KDF) binne "SINGLE STEP" en "SSH".
    • Simulearre ynfoegje algoritmen (MAC) binne "GMAC" en "KMAC".
    • RSA Key Encapsulation Algorithm (KEM) "RSASVE".
    • Fersiferingsalgoritme "AES-SIV" (RFC-8452).
    • Oproppen tafoege oan de EVP API dy't omkearde sifers stypje mei it AES-algoritme om kaaien te fersiferjen (Key Wrap): "AES-128-WRAP-INV", "AES-192-WRAP-INV", "AES-256-WRAP-INV " , "AES-128-WRAP-PAD-INV", "AES-192-WRAP-PAD-INV" en "AES-256-WRAP-PAD-INV".
    • Stipe tafoege foar algoritmen foar sifertekstliening (CTS) oan 'e EVP API: "AES-128-CBC-CTS", "AES-192-CBC-CTS", "AES-256-CBC-CTS", "CAMELLIA-128-CBC -CTS", "CAMELLIA-192-CBC-CTS" en "CAMELLIA-256-CBC-CTS".
    • Stipe tafoege foar CAdES-BES digitale hantekeningen (RFC 5126).
    • AES_GCM ymplementearret de AuthEnvelopedData (RFC 5083) parameter om fersifering en ûntsiferjen fan berjochten ferifiearre en fersifere mei de AES GCM-modus yn te skeakeljen.
  • De funksjes PKCS7_get_octet_string en PKCS7_type_is_other binne tafoege oan de iepenbiere API.
  • De PKCS#12 API ferfangt de standertalgoritmen dy't brûkt wurde yn de funksje PKCS12_create() mei PBKDF2 en AES, en brûkt it SHA-256-algoritme om MAC te berekkenjen. Om ferline gedrach te herstellen, wurdt de opsje "-legacy" levere. In grut oantal nije útwreide petearen tafoege oan PKCS12_*_ex, PKCS5_*_ex en PKCS8_*_ex, lykas PKCS12_add_key_ex ().PKCS12_create_ex () en PKCS12_decrypt_skey_ex ().
  • Foar it Windows-platfoarm is stipe foar threadsyngronisaasje mei it SRWLock-meganisme tafoege.
  • In nije tracing API tafoege, ynskeakele fia de enable-trace parameter.
  • It berik fan kaaien stipe yn de EVP_PKEY_public_check () en EVP_PKEY_param_check () funksjes is útwreide: RSA, DSA, ED25519, X25519, ED448 en X448.
  • It subsysteem RAND_DRBG is fuorthelle, ferfongen troch de EVP_RAND API. De FIPS_mode() en FIPS_mode_set() funksjes binne fuortsmiten.
  • In wichtich part fan 'e API is ferâldere makke - it brûken fan ferâldere oproppen yn projektkoade sil resultearje yn warskôgings tidens kompilaasje. Ynklusyf API's op leech nivo ferbûn oan bepaalde ymplemintaasjes fan algoritmen (bygelyks AES_set_encrypt_key en AES_encrypt) binne offisjeel ferâldere ferklearre. Offisjele stipe yn OpenSSL 3.0.0 wurdt no allinich foarsjoen foar EVP API's op hege nivo's dy't abstrahearre binne fan yndividuele algoritmetypen (dizze API omfettet bygelyks de EVP_EncryptInit_ex, EVP_EncryptUpdate, en EVP_EncryptFinal funksjes). Ferâldere API's sille wurde fuortsmiten yn ien fan 'e folgjende grutte releases. Implementaasjes fan legacy algoritmen lykas MD2 en DES, beskikber fia de EVP API, binne ferpleatst nei in aparte "legacy" module, dy't standert útskeakele is.
  • De dokumintaasje en testsuite binne signifikant útwreide. Yn ferliking mei branch 1.1.1 is it folume fan dokumintaasje ferhege mei 94%, en de grutte fan 'e testsuite-koade is ferhege mei 54%.

Boarne: opennet.ru

Add a comment