OpenSSL 3.0.0 Rilis Pustaka Kriptografi

Sawise telung taun pangembangan lan 19 rilis tes, perpustakaan OpenSSL 3.0.0 dirilis kanthi implementasi protokol SSL/TLS lan macem-macem algoritma enkripsi. Cabang anyar kalebu owah-owahan sing break kompatibilitas sakdurunge ing API lan tingkat ABI, nanging owah-owahan ora mengaruhi operasi paling aplikasi sing mbutuhake mbangun maneh kanggo pindhah saka OpenSSL 1.1.1. Cabang OpenSSL 1.1.1 sadurunge bakal didhukung nganti September 2023.

Owah-owahan sing signifikan ing nomer versi amarga transisi menyang nomer "Major.Minor.Patch" tradisional. Wiwit saiki, digit pisanan (Major) ing nomer versi mung bakal diganti yen kompatibilitas rusak ing tingkat API/ABI, lan nomer loro (Minor) bakal diganti nalika fungsi tambah tanpa ngganti API/ABI. Nganyari korektif bakal dikirim kanthi owah-owahan menyang digit katelu (Patch). Nomer 3.0.0 sanalika sawise 1.1.1 dipilih supaya ora tumpang tindih karo modul FIPS saiki ing pembangunan kanggo OpenSSL, kang 2.x panomeran digunakake.

Owah-owahan penting kapindho kanggo proyek kasebut yaiku transisi saka lisensi dual (OpenSSL lan SSLeay) menyang lisensi Apache 2.0. Lisensi OpenSSL kepemilikan sadurunge adhedhasar teks saka lisensi Apache 1.0 warisan lan mbutuhake sebutan eksplisit OpenSSL ing materi marketing nalika nggunakake perpustakaan OpenSSL, uga kabar khusus yen OpenSSL diwenehake minangka bagΓ©an saka produk. Syarat kasebut ndadekake lisensi lawas ora kompatibel karo GPL, dadi angel nggunakake OpenSSL ing proyek sing dilisensi GPL. Kanggo ngatasi ketidakcocokan iki, proyek GPL dipeksa nggunakake perjanjian lisensi khusus ing ngendi teks utama GPL ditambah karo klausa sing kanthi tegas ngidini aplikasi kasebut disambungake karo perpustakaan OpenSSL lan nyatakake yen syarat GPL ora ana. aplikasi kanggo ngubungake karo OpenSSL.

Dibandhingake karo cabang OpenSSL 1.1.1, OpenSSL 3.0.0 nambahake luwih saka 7500 owah-owahan sing disumbang dening 350 pangembang. Inovasi utama OpenSSL 3.0.0:

  • A modul FIPS anyar wis ngajokaken, kalebu implementasine saka algoritma cryptographic sing tundhuk karo FIPS 140-2 standar keamanan (proses sertifikasi kanggo modul wis dijadwal kanggo miwiti sasi iki, lan FIPS 140-2 sertifikat samesthine taun sabanjurΓ©). Modul anyar luwih gampang digunakake lan nyambungake menyang akeh aplikasi ora bakal luwih angel tinimbang ngganti file konfigurasi. Kanthi gawan, modul FIPS dipateni lan mbutuhake pilihan ngaktifake-fips kanggo diaktifake.
  • libcrypto ngetrapake konsep panyedhiya pluggable, sing ngganti konsep mesin (API ENGINE wis ora digunakake). Kanthi bantuan panyedhiya, sampeyan bisa nambah implementasi algoritma dhewe kanggo operasi kayata enkripsi, dekripsi, generasi kunci, pitungan MAC, nggawe lan verifikasi tandha digital. Bisa uga nyambungake sing anyar lan nggawe implementasi alternatif saka algoritma sing wis didhukung (kanthi standar, panyedhiya sing dibangun ing OpenSSL saiki digunakake kanggo saben algoritma).
  • Dhukungan tambahan kanggo Protokol Manajemen Sertifikat (RFC 4210), sing bisa digunakake kanggo njaluk sertifikat saka server CA, nganyari sertifikat, lan mbatalake sertifikat. Nggarap CMP ditindakake nggunakake sarana openssl-cmp anyar, sing uga ndhukung format CRMF (RFC 4211) lan ngirim panjalukan liwat HTTP/HTTPS (RFC 6712).
  • Klien lengkap kanggo protokol HTTP lan HTTPS wis dileksanakake, ndhukung metode GET lan POST, njaluk pangalihan, nggarap proxy, enkoding ASN.1 lan proses wektu entek.
  • A EVP_MAC anyar (Pesen Authentication Code API) wis ditambahake supaya luwih gampang kanggo nambah implementasine anyar saka sisipan mock.
  • Antarmuka piranti lunak anyar kanggo ngasilake kunci diusulake - EVP_KDF (Key Derivation Function API), sing nyederhanakake tambahan implementasi anyar KDF lan PRF. API EVP_PKEY lawas, liwat kang scrypt, TLS1 PRF lan HKDF kalkulus kasedhiya, wis redesigned ing wangun lapisan dipun ginakaken ing ndhuwur EVP_KDF lan EVP_MAC API.
  • Implementasi protokol TLS nyedhiyakake kemampuan kanggo nggunakake klien lan server TLS sing dibangun ing kernel Linux kanggo nyepetake operasi. Kanggo ngaktifake implementasi TLS sing diwenehake dening kernel Linux, sampeyan kudu ngaktifake pilihan "SSL_OP_ENABLE_KTLS" utawa setelan "aktif-ktls".
  • Dhukungan tambahan kanggo algoritma anyar:
    • Algoritma generasi kunci (KDF) yaiku "LANGKAH SINGLE" lan "SSH".
    • Algoritma sisipan simulasi (MAC) yaiku "GMAC" lan "KMAC".
    • RSA Key Encapsulation Algorithm (KEM) "RSASVE".
    • Algoritma enkripsi "AES-SIV" (RFC-8452).
    • Telpon ditambahake menyang API EVP sing ndhukung cipher inverse nggunakake algoritma AES kanggo ndhelik kunci (Key Wrap): "AES-128-WRAP-INV", "AES-192-WRAP-INV", "AES-256-WRAP-INV ” , "AES-128-WRAP-PAD-INV", "AES-192-WRAP-PAD-INV" lan "AES-256-WRAP-PAD-INV".
    • Nambahake dhukungan kanggo algoritma ciphertext borrowing (CTS) menyang EVP API: "AES-128-CBC-CTS", "AES-192-CBC-CTS", "AES-256-CBC-CTS", "CAMELLIA-128-CBC". -CTS" ", "CAMELLIA-192-CBC-CTS" lan "CAMELLIA-256-CBC-CTS".
    • Dhukungan tambahan kanggo tandha digital CAdES-BES (RFC 5126).
    • AES_GCM ngetrapake parameter AuthEnvelopedData (RFC 5083) kanggo ngaktifake enkripsi lan dekripsi pesen sing diotentikasi lan dienkripsi nggunakake mode AES GCM.
  • Fungsi PKCS7_get_octet_string lan PKCS7_type_is_other wis ditambahake menyang API umum.
  • PKCS # 12 API ngganti kalkulus standar digunakake ing PKCS12_create () fungsi karo PBKDF2 lan AES, lan nggunakake algoritma SHA-256 kanggo ngetung MAC. Kanggo mulihake prilaku kepungkur, opsi "-warisan" kasedhiya. Added nomer akeh telpon lengkap anyar kanggo PKCS12_*_ex, PKCS5_*_ex lan PKCS8_*_ex, kayata PKCS12_add_key_ex ().PKCS12_create_ex () lan PKCS12_decrypt_skey_ex ().
  • Kanggo platform Windows, dhukungan kanggo sinkronisasi benang nggunakake mekanisme SRWLock wis ditambahake.
  • Nambahake API tilak anyar, diaktifake liwat parameter ngaktifake-trace.
  • Ing sawetara tombol didhukung ing EVP_PKEY_public_check () lan EVP_PKEY_param_check () fungsi wis ditambahi: RSA, DSA, ED25519, X25519, ED448 lan X448.
  • Subsistem RAND_DRBG wis dibusak, diganti dening EVP_RAND API. Fungsi FIPS_mode () lan FIPS_mode_set () wis dibusak.
  • Sebagean penting saka API wis ora bisa digunakake - nggunakake telpon sing ora bisa digunakake ing kode proyek bakal nyebabake bebaya sajrone kompilasi. Kalebu API tingkat rendah sing digandhengake karo implementasi algoritma tartamtu (contone, AES_set_encrypt_key lan AES_encrypt) wis resmi diumumake lungse. Dhukungan resmi ing OpenSSL 3.0.0 saiki mung kasedhiya kanggo API EVP tingkat dhuwur sing diabstraksi saka jinis algoritma individu (API iki kalebu, contone, fungsi EVP_EncryptInit_ex, EVP_EncryptUpdate, lan EVP_EncryptFinal). API sing ora digunakake bakal dibusak ing salah sawijining rilis utama sabanjure. Implementasi algoritma warisan kayata MD2 lan DES, kasedhiya liwat API EVP, wis dipindhah menyang modul "warisan" sing kapisah, sing dipateni kanthi standar.
  • Dokumentasi lan test suite wis ditambahi sacara signifikan. Dibandhingake karo cabang 1.1.1, volume dokumentasi wis tambah 94%, lan ukuran kode test suite wis tambah 54%.

Source: opennet.ru

Add a comment