ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΠΏΡΠΈΡΡΡΡΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π² TLS ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° ΠΈ Π·Π°ΡΡΠ³Π° ΡΠ°ΠΌΠΎ Π²ΡΡΠ·ΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ ΡΠΈΡΡΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° DH ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ (Diffie-Hellman, TLS_DH_*"). ΠΡΠΈ ECDH ΡΠΈΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π½Π΅ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΠΈ ΡΠ΅ ΠΎΡΡΠ°Π²Π°Ρ Π·Π°ΡΠΈΡΠ΅Π½ΠΈ. Π‘Π°ΠΌΠΎ TLS ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 1.2 ΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΈ; TLS 1.3 Π½Π΅ Π΅ Π·Π°ΡΠ΅Π³Π½Π°Ρ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΠΏΡΠΈ TLS ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ DH ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΈΡ ΠΊΠ»ΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ TLS Π²ΡΡΠ·ΠΊΠΈ (ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ ΡΡΠ΅ΡΠ° Π½Π° ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 4.4% ΠΎΡ ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π½Π° Alexa Top 1M).
Π OpenSSL 1.0.2e ΠΈ ΠΏΠΎ-ΡΠ°Π½Π½ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΡΠ²ΠΈΡΠ½ΠΈΡΡ ΠΊΠ»ΡΡ Π½Π° DH ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΡΡΡΠ²ΡΡΠ½ΠΈ Π²ΡΡΠ·ΠΊΠΈ, ΠΎΡΠ²Π΅Π½ Π°ΠΊΠΎ ΠΎΠΏΡΠΈΡΡΠ° SSL_OP_SINGLE_DH_USE Π½Π΅ Π΅ ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½Π°. ΠΡ OpenSSL 1.0.2f ΠΏΡΡΠ²ΠΈΡΠ½ΠΈΡΡ ΠΊΠ»ΡΡ Π½Π° DH ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ°ΡΠΈΡΠ½ΠΈ ΡΠΈΡΡΠΈ Π½Π° DH (βDH-*β, Π½Π°ΠΏΡ. βDH-RSA-AES256-SHAβ). Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π½Π΅ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π° Π² OpenSSL 1.1.1, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠ·ΠΈ ΠΊΠ»ΠΎΠ½ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° DH ΠΏΡΡΠ²ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ ΠΈ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ DH ΡΠΈΡΡΠΈ.
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° DH ΠΊΠ»ΡΡΠΎΠ²Π΅, Π΄Π²Π΅ΡΠ΅ ΡΡΡΠ°Π½ΠΈ Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΡΠ°ΡΡΠ½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ (ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ ΠΊΠ»ΡΡ βaβ ΠΈ ΠΊΠ»ΡΡ βbβ), Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Ρ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ (ga mod p ΠΈ gb mod p). Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π²ΡΡΠΊΠ° ΡΡΡΠ°Π½Π° ΠΏΠΎΠ»ΡΡΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅, ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° ΠΎΠ±Ρ ΠΏΡΡΠ²ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ (gab mod p), ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠΉΠ½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅. ΠΡΠ°ΠΊΠ°ΡΠ° Raccoon Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΏΡΡΠ²ΠΈΡΠ½ΠΈΡ ΠΊΠ»ΡΡ ΡΡΠ΅Π· Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈΡ ΠΊΠ°Π½Π°Π» Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π½Π° TLS Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 1.2 ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π²ΡΠΈΡΠΊΠΈ Π²ΠΎΠ΄Π΅ΡΠΈ Π½ΡΠ»Π΅Π²ΠΈ Π±Π°ΠΉΡΠΎΠ²Π΅ Π½Π° ΠΏΡΡΠ²ΠΈΡΠ½ΠΈΡ ΠΊΠ»ΡΡ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Ρ Π²ΡΡΠ»Π΅Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ°, Π²ΠΊΠ»ΡΡΠ²Π°ΡΠΈ Π½Π΅Π³ΠΎ.
ΠΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΡΠ°ΡΠ΅Π½ΠΈΡΡ ΠΏΡΡΠ²ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠ΅Π½ ΠΊΠ»ΡΡ, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° Ρ
Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π·Π°Π±Π°Π²ΡΠ½ΠΈΡ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ. Π’ΠΎΡΠ½ΠΎΡΠΎ ΠΈΠ·ΠΌΠ΅ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈΠ·Π²ΡΡΡΠ²Π°Π½ΠΈ ΠΎΡ ΡΡΡΠ²ΡΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΡΠ»ΠΈΠΊΠΈ (ΠΎΡΠ°ΠΊΡΠ»), ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΠ΅Π½ΠΈ Π΄Π°Π»ΠΈ ΠΏΡΡΠ²ΠΈΡΠ½ΠΈΡΡ ΠΊΠ»ΡΡ Π·Π°ΠΏΠΎΡΠ²Π° ΠΎΡ Π½ΡΠ»Π°ΡΠ° ΠΈΠ»ΠΈ Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡ
Π²Π°Π½Π΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡ ΠΊΠ»ΡΡ (ga), ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π΄Π° Π³ΠΎ ΠΏΡΠ΅ΠΏΡΠ΅Π΄Π°Π΄Π΅ Π½Π° ΡΡΡΠ²ΡΡΠ° ΠΈ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ
Π΄Π°Π»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΡ ΠΏΡΡΠ²ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ Π·Π°ΠΏΠΎΡΠ²Π° ΠΎΡ Π½ΡΠ»Π°.
Π‘Π°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ ΠΎΡ ΠΊΠ»ΡΡΠ° Π½Π΅ Π΄Π°Π²Π° Π½ΠΈΡΠΎ, Π½ΠΎ ΡΡΠ΅Π· ΠΏΡΠΈΡ
Π²Π°ΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° βgaβ, ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½Π° ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠ΅Π³ΠΎΠ²ΠΎΡΠΈ Π·Π° Π²ΡΡΠ·ΠΊΠ°, Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ° Π½Π°Π±ΠΎΡ ΠΎΡ Π΄ΡΡΠ³ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ βgaβ ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠΈ Π½Π° ΡΡΡΠ²ΡΡΠ° Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ΅ΡΠΈΠΈ Π·Π° ΠΏΡΠ΅Π³ΠΎΠ²ΠΎΡΠΈ Π·Π° Π²ΡΡΠ·ΠΊΠ°. Π§ΡΠ΅Π· Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ βgri*gaβ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅, ΡΡΠ΅Π· Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° Π² ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°, Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π²ΠΎΠ΄ΡΡ Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΡΠ²ΠΈΡΠ½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅, Π·Π°ΠΏΠΎΡΠ²Π°ΡΠΈ ΠΎΡ Π½ΡΠ»Π°. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, Π½Π°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π·Π°
OpenSSL ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ
ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΎ (
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru