ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ISRG (Internet Security Research Group), ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ΅Π΄ΠΈΡΠ΅Π»Π΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° Let’s Encrypt ΠΈ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΠΎΠ±ΡΡΠ²ΠΈΠ»Π° ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ rustls-openssl-compat, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Rustls Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ OpenSSL. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ rustls-libssl, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ libssl, Π° Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ libcrypto.
ΠΡΠΈΡΡΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ nginx Π½Π° Π±Π°Π·Π΅ Rustls. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° nginx Π½Π° Rustls ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ nginx. ΠΠ· Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΡ ΠΏΠ»Π°Π½ΠΎΠ² ΠΏΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ Rustls ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΎΠ±Π»Π°ΡΡΡΡ , Π² ΠΊΠΎΡΠΎΡΡΡ Rustls ΠΏΠΎΠΊΠ° ΠΎΡΡΡΠ°ΡΡ ΠΎΡ OpenSSL, ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ RFC 8879 Π΄Π»Ρ ΡΠΆΠ°ΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π°Π½ΠΎΠ½ΡΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡ ΠΏΠ»Π°Π½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π½ΡΠ° Let’s Encrypt Ρ OpenSSL Π½Π° Rustls.
ΠΡΠΎΠ΅ΠΊΡ Rustls ΡΠ°Π·Π²ΠΈΠ²Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TLS1.2 ΠΈ TLS1.3 Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. Rustls Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ², Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM ΠΈ AES256-GCM). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Rustls ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΡΠΈΠΏΡΠΎΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ Π½Π° Π±Π°Π·Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ aws-lc-rs, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Amazon ΠΈ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° Π‘++ ΠΊΠΎΠ΄Π΅ BoringSSL, ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ Google ΡΠΎΡΠΊΠ° OpenSSL. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΡΠΈΠΏΡΠΎΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ring, ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° BoringSSL ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΡΡΡΠ°Ρ ΠΊΠΎΠ΄ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅, Π‘++ ΠΈ Rust.
ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ nginx ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ±ΠΎΡΠΊΠΈ Ρ BoringSSL, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π½Π°ΠΏΡΡΠΌΡΡ Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ
ΠΏΡΠΎΡΠ»ΠΎΠ΅ΠΊ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΊΡΠΎΠΌΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π² Rustls ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ aws-lc-rs ΠΈ ring, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ
Π½Π° ΠΊΠΎΠ΄Π΅ BoringSSL, Π΄Π»Ρ Rustls ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΠΊΡΠΈΠΏΡΠΎΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ mbedtls (ΠΊΠΎΠ΄ Π½Π° Π‘ΠΈ), BoringSSL (C++) ΠΈ RustCrypto (Rust).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru