OpenSSL 3.0.0 Cryptographic Perpustakaan Release

Saatos tilu taun pamekaran sareng 19 sékrési uji, perpustakaan OpenSSL 3.0.0 dileupaskeun kalayan palaksanaan protokol SSL/TLS sareng sababaraha algoritma enkripsi. Cabang anyar ngawengku parobahan nu megatkeun kasaluyuan mundur dina tingkat API tur ABI, tapi parobahan moal mangaruhan operasi paling aplikasi nu merlukeun hiji ngawangun deui migrasi ti OpenSSL 1.1.1. Cabang saméméhna tina OpenSSL 1.1.1 bakal dirojong dugi ka Séptémber 2023.

Parobahan signifikan dina jumlah versi alatan transisi ka "Major.Minor.Patch" panomeran tradisional. Ti ayeuna, angka kahiji (Mayor) dina nomer versi bakal robah ngan lamun kasaluyuan rusak dina API / tingkat ABI, sarta kadua (Minor) bakal robah nalika fungsionalitas ngaronjat tanpa ngarobah API / ABI. Pembaruan korektif bakal dikirimkeun ku parobihan kana angka katilu (Patch). Jumlah 3.0.0 langsung saatos 1.1.1 dipilih pikeun nyegah tumpang tindih sareng modul FIPS anu ayeuna dikembangkeun pikeun OpenSSL, dimana panomeran 2.x dianggo.

Parobihan penting kadua pikeun proyék éta nyaéta transisi tina lisénsi ganda (OpenSSL sareng SSLeay) kana lisénsi Apache 2.0. Lisensi OpenSSL proprietary saméméhna dumasar kana téks tina warisan Apache 1.0 lisénsi jeung merlukeun nyebut eksplisit OpenSSL dina bahan pamasaran nalika ngagunakeun perpustakaan OpenSSL, kitu ogé bewara husus lamun OpenSSL disadiakeun salaku bagian tina produk. Sarat ieu ngajantenkeun lisénsi lami teu cocog sareng GPL, janten sesah ngagunakeun OpenSSL dina proyék anu dilisensikeun GPL. Pikeun ngabéréskeun sauyunan ieu, proyék GPL kapaksa nganggo perjanjian lisénsi khusus dimana téks utama GPL ditambah ku klausa anu sacara eksplisit ngijinkeun aplikasi dikaitkeun sareng perpustakaan OpenSSL sareng nyebatkeun yén sarat GPL henteu. dilarapkeun ka linking kalawan OpenSSL.

Dibandingkeun sareng cabang OpenSSL 1.1.1, OpenSSL 3.0.0 nambihan langkung ti 7500 parobahan anu disumbangkeun ku 350 pamekar. Inovasi utama OpenSSL 3.0.0:

  • A modul FIPS anyar geus diajukeun, kaasup palaksanaan algoritma cryptographic nu sasuai jeung FIPS 140-2 standar kaamanan (prosés sertifikasi pikeun modul ieu dijadwalkeun dimimitian bulan ieu, sarta FIPS 140-2 sertifikasi diperkirakeun taun hareup). Modul anyar langkung gampang dianggo sareng nyambungkeun kana seueur aplikasi moal langkung sesah tibatan ngarobih file konfigurasi. Sacara standar, modul FIPS ditumpurkeun sarta merlukeun pilihan enable-fips diaktipkeun.
  • libcrypto ngalaksanakeun konsép panyadia pluggable, anu ngagentos konsép mesin (API ENGINE parantos dileungitkeun). Kalayan bantosan panyadia, anjeun tiasa nambihan palaksanaan algoritma anjeun nyalira pikeun operasi sapertos enkripsi, dekripsi, generasi konci, itungan MAC, nyiptakeun sareng verifikasi tanda tangan digital. Kasebut nyaéta dimungkinkeun pikeun duanana nyambungkeun nu anyar jeung nyieun palaksanaan alternatif tina algoritma geus dirojong (sacara standar, panyadia diwangun kana OpenSSL ayeuna dipaké pikeun tiap algoritma).
  • Ditambahkeun dukungan pikeun Protokol Manajemén Sertipikat (RFC 4210), anu tiasa dianggo pikeun menta sertipikat ti server CA, ngapdet sertipikat, sareng nyabut sertipikat. Gawé sareng CMP dilaksanakeun nganggo utilitas openssl-cmp énggal, anu ogé ngadukung format CRMF (RFC 4211) sareng ngirim pamundut ngalangkungan HTTP / HTTPS (RFC 6712).
  • Klién pinuh pikeun protokol HTTP sareng HTTPS parantos dilaksanakeun, ngadukung metode GET sareng POST, nyuhunkeun alihan, damel ngaliwatan proxy, encoding ASN.1 sareng pamrosésan seep.
  • A EVP_MAC anyar (Pesen Authentication Code API) geus ditambahkeun pikeun nyieun leuwih gampang pikeun nambahkeun palaksanaan anyar inserts bohongan.
  • Antarbeungeut parangkat lunak énggal pikeun ngahasilkeun konci diusulkeun - EVP_KDF (API Fungsi Derivation Key), anu nyederhanakeun tambihan palaksanaan anyar KDF sareng PRF. API EVP_PKEY heubeul, ngaliwatan nu scrypt, TLS1 PRF na HKDF algoritma éta sadia, geus redesigned dina bentuk lapisan dilaksanakeun dina luhureun EVP_KDF na EVP_MAC API.
  • Palaksanaan protokol TLS nyadiakeun kamampuhan pikeun ngagunakeun klien TLS sarta server diwangun kana kernel Linux Ubuntu pikeun nyepetkeun operasi. Pikeun ngaktifkeun palaksanaan TLS anu disayogikeun ku kernel Linux, anjeun kedah ngaktipkeun pilihan "SSL_OP_ENABLE_KTLS" atanapi setélan "aktipkeun-ktls".
  • Ditambahkeun dukungan pikeun algoritma énggal:
    • Algoritma generasi konci (KDF) nyaéta "LENGKAH TUNGGAL" sareng "SSH".
    • Algoritma sisipan simulasi (MAC) nyaéta "GMAC" sareng "KMAC".
    • RSA Key Encapsulation Algorithm (KEM) "RSASVE".
    • Algoritma énkripsi "AES-SIV" (RFC-8452).
    • Nambahkeun telepon ka API EVP nu ngarojong ciphers tibalik ngagunakeun algoritma AES pikeun encrypt konci (Key Wrap): "AES-128-WRAP-INV", "AES-192-WRAP-INV", "AES-256-WRAP-INV". ", "AES-128-bungkus-PAD-INV", "AES-192-bungkus-PAD-INV" jeung "AES-256-bungkus-PAD-INV".
    • Ditambahkeun dukungan pikeun algoritma injeuman ciphertext (CTS) kana API EVP: "AES-128-CBC-CTS", "AES-192-CBC-CTS", "AES-256-CBC-CTS", "CAMELLIA-128-CBC". -CTS" ", "CAMELLIA-192-CBC-CTS" jeung "CAMELLIA-256-CBC-CTS".
    • Ditambahkeun dukungan pikeun tanda tangan digital CAdES-BES (RFC 5126).
    • AES_GCM nerapkeun parameter AuthEnvelopedData (RFC 5083) pikeun ngaktipkeun énkripsi sareng dekripsi pesen anu dioténtikasi sareng énkripsi nganggo modeu AES GCM.
  • Fungsi PKCS7_get_octet_string na PKCS7_type_is_other geus ditambahkeun kana API umum.
  • PKCS # 12 API ngagantikeun algoritma standar dipaké dina PKCS12_create () fungsi kalawan PBKDF2 na AES, tur ngagunakeun algoritma SHA-256 keur ngitung MAC. Pikeun mulangkeun kabiasaan baheula, pilihan "-legacy" disayogikeun. Ditambahkeun angka nu gede ngarupakeun panggero nambahan anyar pikeun PKCS12_ * _ex, PKCS5_ * _ex na PKCS8_ * _ex, kayaning PKCS12_add_key_ex ().PKCS12_create_ex () sarta PKCS12_decrypt_skey_ex ().
  • Pikeun platform Windows, rojongan pikeun sinkronisasi thread ngagunakeun mékanisme SRWLock geus ditambahkeun.
  • Nambahkeun API tracing anyar, diaktipkeun via parameter aktipkeun-trace.
  • Kisaran konci dirojong dina EVP_PKEY_public_check () sarta EVP_PKEY_param_check () fungsi geus dimekarkeun: RSA, DSA, ED25519, X25519, ED448 na X448.
  • Subsistem RAND_DRBG geus dihapus, diganti ku EVP_RAND API. The FIPS_mode () jeung FIPS_mode_set () fungsi geus dihapus.
  • Bagian signifikan tina API geus rendered luntur - ngagunakeun panggero luntur dina kode proyék bakal ngahasilkeun warnings salila kompilasi. Kaasup API tingkat-rendah anu aya hubunganana sareng palaksanaan algoritma anu tangtu (contona, AES_set_encrypt_key sareng AES_encrypt) parantos sacara resmi dinyatakeun luntur. Pangrojong resmi dina OpenSSL 3.0.0 ayeuna ngan disayogikeun pikeun API EVP tingkat luhur anu disarikeun tina jinis algoritma individu (API ieu kalebet, contona, fungsi EVP_EncryptInit_ex, EVP_EncryptUpdate, sareng EVP_EncryptFinal). API anu teu dianggo bakal dipupus dina salah sahiji rilis utama salajengna. Palaksanaan algoritma warisan sapertos MD2 sareng DES, sayogi ngalangkungan EVP API, parantos dipindahkeun ka modul "warisan" anu misah, anu ditumpurkeun sacara standar.
  • Dokuméntasi sareng tés suite parantos dilegakeun sacara signifikan. Dibandingkeun cabang 1.1.1, volume dokuméntasi geus ngaronjat ku 94%, sarta ukuran kode test suite geus ngaronjat ku 54%.

sumber: opennet.ru

Tambahkeun komentar