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