ИздаванС Π½Π° криптографска Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° 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 ΠΏΡ€ΠΈΠ»Π°Π³Π° концСпцията Π·Π° pluggable доставчици, която Π·Π°ΠΌΠ΅Π½ΠΈ концСпцията Π·Π° Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈ (ENGINE API Π΅ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½). Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° доставчицитС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ свои собствСни Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° Ρ‚Π°ΠΊΠΈΠ²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅, Π΄Π΅ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, изчисляванС Π½Π° MAC, създаванС ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ подписи. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΠΊΠ°ΠΊΡ‚ΠΎ Π΄Π° ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ Π½ΠΎΠ²ΠΈ, Ρ‚Π°ΠΊΠ° ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΄ΠΎΡΡ‚Π°Π²Ρ‡ΠΈΠΊΡŠΡ‚, Π²Π³Ρ€Π°Π΄Π΅Π½ Π² OpenSSL, Π²Π΅Ρ‡Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° всСки Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° сСртификати (RFC 4210), ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° изискванС Π½Π° сСртификати ΠΎΡ‚ CA ΡΡŠΡ€Π²ΡŠΡ€, Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° сСртификати ΠΈ отмяна Π½Π° сСртификати. Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° с CMP сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° openssl-cmp, която ΡΡŠΡ‰ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° CRMF Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (RFC 4211) ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° заявки Ρ‡Ρ€Π΅Π· HTTP/HTTPS (RFC 6712).
  • Π’ΡŠΠ²Π΅Π΄Π΅Π½ Π΅ ΠΏΡŠΠ»Π½ΠΎΡ†Π΅Π½Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ‚Π΅ HTTP ΠΈ HTTPS, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ GET ΠΈ POST, прСнасочванС Π½Π° заявки, Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€Π΅Π· прокси, ASN.1 ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² EVP_MAC (API Π·Π° ΠΊΠΎΠ΄ Π·Π° удостовСряванС Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ), Π·Π° Π΄Π° сС улСсни добавянСто Π½Π° Π½ΠΎΠ²ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Ρ„Π°Π»ΡˆΠΈΠ²ΠΈ вмъквания.
  • ΠŸΡ€Π΅Π΄Π»Π°Π³Π° сС Π½ΠΎΠ² софтуСрСн интСрфСйс Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ - EVP_KDF (Key Derivation Function API), ΠΊΠΎΠΉΡ‚ΠΎ опростява добавянСто Π½Π° Π½ΠΎΠ²ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° KDF ΠΈ PRF. Бтарият EVP_PKEY API, Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‚Π΅ scrypt, TLS1 PRF ΠΈ HKDF бяха Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ, Π΅ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° слой, Π²Π½Π΅Π΄Ρ€Π΅Π½ Π²ΡŠΡ€Ρ…Ρƒ EVP_KDF ΠΈ EVP_MAC API.
  • ВнСдряванСто Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS прСдоставя Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° TLS ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ ΡΡŠΡ€Π²ΡŠΡ€, Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π² ядрото Π½Π° Linux, Π·Π° ускоряванС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅. Π—Π° Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° TLS, прСдоставСно ΠΎΡ‚ ядрото Π½Π° Linux, трябва Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ опцията "SSL_OP_ENABLE_KTLS" ΠΈΠ»ΠΈ настройката "enable-ktls".
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ:
    • АлгоритмитС Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ (KDF) са β€œSINGLE STEP” ΠΈ β€œSSH”.
    • Π‘ΠΈΠΌΡƒΠ»ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° вмъкванС (MAC) са β€žGMACβ€œ ΠΈ β€žKMACβ€œ.
    • RSA Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° капсулиранС Π½Π° ΠΊΠ»ΡŽΡ‡ (KEM) "RSASVE".
    • ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ "AES-SIV" (RFC-8452).
    • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ извиквания към EVP API, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈ ΡˆΠΈΡ„Ρ€ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° 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”.
    • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° Π·Π°Π΅ΠΌΠ°Π½Π΅ Π½Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ тСкст (CTS) към EVP API: β€œ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.
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ PKCS7_get_octet_string ΠΈ PKCS7_type_is_other са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ към общСствСния API.
  • PKCS#12 API замСня Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΡ‚Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ във функцията PKCS12_create() с PBKDF2 ΠΈ AES ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌΠ° SHA-256 Π·Π° изчисляванС Π½Π° MAC. Π—Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΅ прСдоставСна опцията "-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 Π²Π΅Ρ‡Π΅ сС прСдоставя само Π·Π° EVP API ΠΎΡ‚ високо Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠΈΡ‚ΠΎ са абстрахирани ΠΎΡ‚ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ (Ρ‚ΠΎΠ·ΠΈ API Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ EVP_EncryptInit_ex, EVP_EncryptUpdate ΠΈ EVP_EncryptFinal). ΠžΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈΡ‚Π΅ API Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΈ Π² Π΅Π΄Π½Π° ΠΎΡ‚ слСдващитС Π³ΠΎΠ»Π΅ΠΌΠΈ вСрсии. Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° наслСдСни Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ ΠΊΠ°Ρ‚ΠΎ MD2 ΠΈ DES, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Ρ‡Ρ€Π΅Π· EVP API, са прСмСстСни Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ β€žΠ½Π°ΡΠ»Π΅Π΄Π΅Π½β€œ ΠΌΠΎΠ΄ΡƒΠ», ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.
  • ДокумСнтацията ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ ΠΎΡ‚ тСстовС са Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ. Π’ сравнСниС с ΠΊΠ»ΠΎΠ½ 1.1.1 ΠΎΠ±Π΅ΠΌΡŠΡ‚ Π½Π° докумСнтацията сС Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ» с 94%, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° тСстовия ΠΏΠ°ΠΊΠ΅Ρ‚ сС Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ» с 54%.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€