Выпуск криптографичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ 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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ