ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ криптографичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ 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 (Key Derivation Function 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