ИзданиС Π·Π° криптографска Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° 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β€œ. ΠžΡ‚ΡΠ΅Π³Π° ΠΏΠ° Π½Π°Ρ‚Π°ΠΌΡƒ, ΠΏΡ€Π²Π°Ρ‚Π° Ρ†ΠΈΡ„Ρ€Π° (Π“Π»Π°Π²Π½Π°) Π²ΠΎ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π° ќС сС ΠΌΠ΅Π½ΡƒΠ²Π° само Π°ΠΊΠΎ компатибилноста Π΅ ΠΏΡ€Π΅ΠΊΠΈΠ½Π°Ρ‚Π° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° API/ABI, Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° (Minor) ќС сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ³Π° ќС сС Π·Π³ΠΎΠ»Π΅ΠΌΠΈ функционалноста Π±Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π½Π° API/ABI. ΠšΠΎΡ€Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ° ќС Π±ΠΈΠ΄Π°Ρ‚ испорачани со ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π½Π° Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° Ρ†ΠΈΡ„Ρ€Π° (ΠΊΡ€ΠΏΠ΅Π½ΠΈΡ†Π°). Π‘Ρ€ΠΎΡ˜ΠΎΡ‚ 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 Π΅ застарСно). Π‘ΠΎ помош Π½Π° ΠΏΡ€ΠΎΠ²Π°Ρ˜Π΄Π΅Ρ€ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ свои ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° Ρ‚Π°ΠΊΠ²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅, Π΄Π΅ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΊΠ»ΡƒΡ‡Π΅Π²ΠΈ, прСсмСтка Π½Π° 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β€œ ΠΈΠ»ΠΈ поставката β€žΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ-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 Π΅ отстранСт, Π·Π°ΠΌΠ΅Π½Π΅Ρ‚ со EVP_RAND API. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ 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

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€