Π˜Π·Π»ΡŠΡ‡Π²Π°Π½Π΅ Π½Π° криптографската Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° OpenSSL 3.0.0

Π‘Π»Π΅Π΄ Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ 19 тСстови вСрсии, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° OpenSSL 3.0.0 с рСализация Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ‚Π΅ SSL/TLS ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ Π΅ пусната. Новата вСрсия Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π²Π°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½Π°Ρ‚Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π½Π° Π½ΠΈΠ²ΠΎ API ΠΈ ABI, Π½ΠΎ измСнСнията Π½Π΅ влияят Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ прилоТСния, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Π°Ρ‚Π° компилация с OpenSSL 1.1.1. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€Π΅Π΄Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° вСрсия OpenSSL 1.1.1 Ρ‰Π΅ бъдС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π°Π½Π° Π΄ΠΎ сСптСмври 2023 Π³ΠΎΠ΄ΠΈΠ½Π°.

Π‘ΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° вСрсията Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅Ρ‚ΠΎ към Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° нумСрация β€žMajor.Minor.Patchβ€œ. ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ число (Major) Π² Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° вСрсията сСга Ρ‰Π΅ сС промСня само ΠΏΡ€ΠΈ Π½Π°Ρ€ΡƒΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° Π½Π° Π½ΠΈΠ²ΠΎ API/ABI, Π° Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ (Minor) ΠΏΡ€ΠΈ добавянС Π½Π° Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· промяна Π½Π° API/ABI. ΠšΠΎΡ€Π΅ΠΊΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‰Π΅ сС прСдоставят с промяна Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ число (Patch). НомСр 3.0.0 Π΅ ΠΈΠ·Π±Ρ€Π°Π½ Π²Π΅Π΄Π½Π°Π³Π° слСд 1.1.1, Π·Π° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΎ разработвания FIPS ΠΌΠΎΠ΄ΡƒΠ» Π½Π° OpenSSL, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ сС Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»Π° нумСрацията 2.x.

Π’Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ ΠΏΡ€Π΅Ρ…ΠΎΠ΄ΡŠΡ‚ ΠΎΡ‚ Π΄Π²ΠΎΠΉΠ½Π° лицСнзия (OpenSSL ΠΈ SSLeay) към лицСнзия Apache 2.0. ΠŸΡ€Π΅Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° собствСна лицСнзия OpenSSL бСшС Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° тСкста Π½Π° остарялата лицСнзия Apache 1.0 ΠΈ изисквашС явно спомСнаванС Π½Π° OpenSSL Π² Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ OpenSSL, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ добавянС Π½Π° спСциално ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ Π² случай Π½Π° доставянС Π½Π° OpenSSL Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚. Подобни изисквания ΠΏΡ€Π°Π²Π΅Ρ…Π° старата лицСнзия Π½Π΅ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° с GPL, ΠΊΠΎΠ΅Ρ‚ΠΎ създавашС затруднСния ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° OpenSSL Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ с GPL Π»ΠΈΡ†Π΅Π½Π·. Π—Π° Π΄Π° заобиколят Ρ‚Π°Π·ΠΈ Π½Π΅ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚, GPL ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ бяха ΠΏΡ€ΠΈΠ½ΡƒΠ΄Π΅Π½ΠΈ Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ спСцифични Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΈ споразумСния, Π² ΠΊΠΎΠΈΡ‚ΠΎ основният тСкст Π½Π° GPL бСшС допълнСн с Ρ‚ΠΎΡ‡ΠΊΠ°, явно Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Ρ‰Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° OpenSSL ΠΈ спомСнавайки, Ρ‡Π΅ изискванията Π½Π° GPL Π½Π΅ сС отнасят Π΄ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ с OpenSSL.

Π’ сравнСниС с ΠΊΠ»ΠΎΠ½Π° OpenSSL 1.1.1, Π² OpenSSL 3.0.0 са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π½Π°Π΄ 7500 измСнСния, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ ΠΎΡ‚ 350 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ. ΠžΡΠ½ΠΎΠ²Π½ΠΈΡ‚Π΅ нововъвСдСния Π² OpenSSL 3.0.0:

  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ Π½ΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ» FIPS, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° рСализация Π½Π° криптографски Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ, отговарящи Π½Π° стандарта Π·Π° бСзопасност FIPS 140-2 (ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° сСртификация Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ Ρ‚ΠΎΠ·ΠΈ мСсСц, Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° сСртификат FIPS 140-2 сС ΠΎΡ‡Π°ΠΊΠ²Π° ΠΏΡ€Π΅Π· слСдващата Π³ΠΎΠ΄ΠΈΠ½Π°). Новият ΠΌΠΎΠ΄ΡƒΠ» Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-лСсСн Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ с ΠΌΠ½ΠΎΠ³ΠΎ прилоТСния Π½Π΅ Π΅ ΠΏΠΎ-слоТно ΠΎΡ‚ промяна Π½Π° конфигурационния Ρ„Π°ΠΉΠ». По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ FIPS Π΅ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ ΠΈ изисква Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° опцията enable-fips Π·Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅.
  • Π’ libcrypto Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° концСпцията Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ доставчици, замСнящи концСпцията Π·Π° Π΅Π½Π΄ΠΆΠΈΠ½ΠΈ (ENGINE API Π΅ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ Π·Π° остарял). Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° доставчицитС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° добавятС собствСни Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅, Ρ€Π°Π·ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, изчисляванС Π½Π° MAC, създаванС ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ подписи. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΠΊΠ°ΠΊΡ‚ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° всСки Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π²Π΅Ρ‡Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎΡ‚ΠΎ Π² OpenSSL Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° сСртификати CMP (Certificate Management Protocol, RFC 4210), ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° заявка Π½Π° сСртификати ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ удостовСритСлСн Ρ†Π΅Π½Ρ‚ΡŠΡ€, обновяванС Π½Π° сСртификати ΠΈ ΠΎΡ‚Π·ΠΎΠ²Π°Π²Π°Π½Π΅ Π½Π° сСртификати. Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° с CMP сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Ρ‡Ρ€Π΅Π· Π½ΠΎΠ²Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° openssl-cmp, Π² която ΡΡŠΡ‰ΠΎ Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° CRMF (RFC 4211) ΠΈ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° заявки ΠΏΡ€Π΅Π· HTTP/HTTPS (RFC 6712).
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΅ пълСн ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ‚Π΅ HTTP ΠΈ HTTPS, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ GET ΠΈ POST, прСнасочванС Π½Π° заявки, Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€Π΅Π· прокси, ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° ASN.1 ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² API EVP_MAC (Message Authentication Code API), ΠΊΠΎΠΉΡ‚ΠΎ улСснява добавянСто Π½Π° Π½ΠΎΠ²ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° имитовставки.
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ Π½ΠΎΠ² интСрфСйс Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ β€” EVP_KDF (API Π·Π° функция Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡), ΠΊΠΎΠΉΡ‚ΠΎ улСснява добавянСто Π½Π° Π½ΠΎΠ²ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° KDF ΠΈ PRF. Бтарият API EVP_PKEY, Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ бяха Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‚Π΅ scrypt, TLS1 PRF ΠΈ HKDF, Π΅ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° слой, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π²ΡŠΡ€Ρ…Ρƒ API EVP_KDF ΠΈ EVP_MAC.
  • Π’ рСализацията Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS Π΅ прСдоставСна Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΡ‚Π΅ Π² ядрото Π½Π° Linux ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ TLS Π·Π° ускоряванС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅. Π—Π° Π΄Π° сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° прСдоставСната ΠΎΡ‚ ядрото Π½Π° Linux рСализация Π½Π° TLS, трябва Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡ΠΈ опцията β€žSSL_OP_ENABLE_KTLSβ€œ ΠΈΠ»ΠΈ настройката β€ženable-ktlsβ€œ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π½ΠΎΠ²ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ:
    • АлгоритмитС Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ (KDF) β€” β€žSINGLE STEPβ€œ ΠΈ β€žSSHβ€œ.
    • АлгоритмитС Π·Π° удостовСряванС (MAC) β€” β€žGMACβ€œ ΠΈ β€žKMACβ€œ.
    • ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° инкапсулиранС Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ RSA (KEM) β€žRSASVEβ€œ.
    • ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ β€žAES-SIVβ€œ (RFC-8452).
    • Π’ API EVP са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ извиквания с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° инвСрсивни ΡˆΠΈΡ„Ρ€ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° AES Π·Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ (Key Wrap): β€žAES-128-WRAP-INVβ€œ, β€žAES-192-WRAP-INVβ€œ, β€žAES-256-WRAP-INVβ€œ, β€žAES-128-WRAP-PAD-INVβ€œ, β€žAES-192-WRAP-PAD-INVβ€œ ΠΈ β€žAES-256-WRAP-PAD-INVβ€œ.
    • Π’ API EVP Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° Π·Π°Π΅ΠΌΠ°Π½Π΅ Π½Π° ΡˆΠΈΡ„Ρ€ΠΎΡ‚Π΅ΠΊΡΡ‚ (CTS): β€žAES-128-CBC-CTSβ€œ, β€žAES-192-CBC-CTSβ€œ, β€žAES-256-CBC-CTSβ€œ, β€žCAMELLIA-128-CBC-CTSβ€œ, β€žCAMELLIA-192-CBC-CTSβ€œ ΠΈ β€žCAMELLIA-256-CBC-CTSβ€œ.
    • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ подписи CAdES-BES (RFC 5126).
    • Π’ AES_GCM Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ AuthEnvelopedData (RFC 5083), ΠΊΠΎΠΉΡ‚ΠΎ позволява ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ ΠΈ Π΄Π΅ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΈ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠ° AES GCM.
  • Π’ публичния API са изнСсСни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ PKCS7_get_octet_string ΠΈ PKCS7_type_is_other.
  • Π’ API PKCS#12 Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‚Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ във функцията PKCS12_create(), са Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ с PBKDF2 ΠΈ AES, Π° Π·Π° изчисляванС Π½Π° MAC Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΡŠΡ‚ SHA-256. Π—Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎΡ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π° опция β€ž-legacyβ€œ. Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ голям Π±Ρ€ΠΎΠΉ Π½ΠΎΠ²ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ извиквания PKCS12_*_ex, PKCS5_*_ex ΠΈ PKCS8_*_ex, ΠΊΠ°Ρ‚ΠΎ PKCS12_add_key_ex(), PKCS12_create_ex() ΠΈ PKCS12_decrypt_skey_ex().
  • Π—Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Windows Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° синхронизация Π½Π° ΠΏΠΎΡ‚ΠΎΡ†ΠΈ с ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° SRWLock.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² API Π·Π° прослСдяванС, Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‰ сС Ρ‡Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ enable-trace.
  • Π Π°Π·ΡˆΠΈΡ€Π΅Π½ Π΅ ΠΎΠ±Ρ…Π²Π°Ρ‚ΡŠΡ‚ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ EVP_PKEY_public_check() ΠΈ EVP_PKEY_param_check(): RSA, DSA, ED25519, X25519, ED448 ΠΈ X448.
  • ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ°Ρ‚Π° RAND_DRBG Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π°, вмСсто нСя Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ API EVP_RAND. ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΈ са Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ FIPS_mode() ΠΈ FIPS_mode_set().
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° част ΠΎΡ‚ API Π΅ прСмСстСна Π² катСгорията Π½Π° остарСлитС β€” ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° остарСли повиквания Π² ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ Ρ‰Π΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ прСдупрСТдСния ΠΏΡ€ΠΈ компилация. Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎ остарСлитС са нискоуровнСвитС API, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, AES_set_encrypt_key ΠΈ AES_encrypt). ΠžΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π² OpenSSL 3.0.0 Π²Π΅Ρ‡Π΅ сС прСдоставя само Π·Π° високопрофилни API EVP, абстрахирани ΠΎΡ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ (към Ρ‚ΠΎΠ·ΠΈ API спадат Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ EVP_EncryptInit_ex, EVP_EncryptUpdate ΠΈ EVP_EncryptFinal). Π’ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ слСдващитС Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ вСрсии остарСлитС API Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΈ. Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° остарСли Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ, ΠΊΠ°Ρ‚ΠΎ MD2 ΠΈ DES, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Ρ‡Ρ€Π΅Π· API EVP, са прСмСстСни Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ» β€žlegacyβ€œ, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.
  • ДокумСнтацията ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΡŠΡ‚ ΠΎΡ‚ тСстовС са Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ. Π’ сравнСниС с вСрсия 1.1.1 ΠΎΠ±Π΅ΠΌΡŠΡ‚ Π½Π° докумСнтацията Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ с 94%, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° тСстовия Π½Π°Π±ΠΎΡ€ с 54%.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster