Organizace ISRG (Internet Security Research Group), která je zakladatelem projektu Let’s Encrypt a přispívá k rozvoji technologií pro zvýšení bezpečnosti internetu, oznámila publikaci vrstvy rustls-openssl-compat, která umožňuje používat knihovnu Rustls jako průhlednou náhradu OpenSSL. V současnosti projekt poskytuje implementaci rustls-libssl, která zajišťuje kompatibilitu s libssl, a implementace libcrypto je ve vývoji.
Funkčnost obsažená ve vrstvě je dostatečná k zajištění provozu nginx na bázi Rustls. Pro přechod nginx na Rustls stačí pouze nahradit knihovny, bez nutnosti přebudování nebo změny nginx. Mezi nejbližší plány rozvoje Rustls patří optimalizace výkonu v oblastech, kde Rustls zatím zaostává za OpenSSL, a zajištění podpory RFC 8879 pro kompresi certifikátů. Kromě toho byl v oznámení zmíněn plán přenést prvky infrastruktury certifikačního úřadu Let’s Encrypt z OpenSSL na Rustls.
Projekt Rustls vyvíjí klientskou a serverovou implementaci protokolů TLS1.2 a TLS1.3 pro použití v aplikacích v jazyce Rust. Rustls neposkytuje vlastní implementaci kryptografických primitiv, ale používá připojitelné poskytovatele kryptografických funkcí (podporovány jsou algoritmy ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM a AES256-GCM). Ve výchozím nastavení Rustls používá kryptoprovodce založeného na knihovně aws-lc-rs, kterou vyvíjí společnost Amazon a která je založena na C++ kódu BoringSSL, spravovaném forkem OpenSSL od Googlu. Jako kryptoprovodce lze také použít knihovnu ring, která je částečně založena na BoringSSL a kombinuje kód v assembleru, C++ a Rust.
Je pozoruhodné, že nginx má vestavěnou podporu pro kompilaci s BoringSSL, což umožňuje používat tuto knihovnu přímo bez zbytečných vrstev. Kromě vestavěné podpory v Rustls pro knihovny aws-lc-rs a ring, které jsou založeny na kódu BoringSSL, se také vyvíjí několik externích kryptoprovodců pro Rustls, které umožňují použití knihoven mbedtls (kód v C), BoringSSL (C++) a RustCrypto (Rust).
Zdroj: opennet.ru
