ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ 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 ΠΈ ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° C++ ΠΊΠΎΠ΄Π° Π½Π° BoringSSL, ΡΡΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π½ ΠΎΡ Google fork Π½Π° OpenSSL. ΠΠ°ΡΠΎ ΠΊΡΠΈΠΏΡΠΎΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ring, ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° BoringSSL ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ° ΠΊΠΎΠ΄ Π½Π° Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ, C++ ΠΈ Rust.
ΠΠ°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΎ Π΅, ΡΠ΅ nginx ΠΈΠΌΠ° Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Ρ BoringSSL, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π±Π΅Π· ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ. ΠΡΠΈ ΡΠΎΠ²Π°, ΠΎΡΠ²Π΅Π½ Π²Π³ΡΠ°Π΄Π΅Π½Π°ΡΠ° Π² Rustls ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ aws-lc-rs ΠΈ ring, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° BoringSSL, Π·Π° Rustls ΡΡΡΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΊΡΠΈΠΏΡΠΎΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ mbedtls (ΠΊΠΎΠ΄ Π½Π° C), BoringSSL (C++) ΠΈ RustCrypto (Rust).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
