Π‘Π»Π΅Π΄ ΡΡΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ 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
