Organizacija ISRG (Internet Security Research Group), koja je osnivač projekta Let’s Encrypt i doprinosi razvoju tehnologija za povećanje sigurnosti interneta, objavila je objavu sloja rustls-openssl-compat, koja omogućava korištenje biblioteke Rustls kao transparentne zamjene za OpenSSL. Trenutno projekt pruža implementaciju rustls-libssl, koja osigurava kompatibilnost s libssl, a u razvoju je implementacija libcrypto.
Prisutne funkcionalnosti u sloju dovoljne su za omogućavanje rada nginx-a na bazi Rustlsa. Za prijelaz nginx-a na Rustls potrebno je samo zamijeniti biblioteke, bez potrebe za ponovnim sastavljanjem ili izmjenom nginx-a. Od najbližih planova za razvoj Rustlsa ističe se optimizacija performansi u područjima gdje Rustls još uvijek zaostaje za OpenSSL-om, kao i osiguranje podrške za RFC 8879 za kompresiju certifikata. Osim toga, u najavi je spomenut plan prijenosa elemenata infrastrukture certifikacijskog centra Let’s Encrypt s OpenSSL-a na Rustls.
Projekt Rustls razvija klijentsku i serversku implementaciju TLS 1.2 i TLS 1.3 protokola za korištenje u aplikacijama napisanima u Rustu. Rustls ne pruža vlastitu implementaciju kriptografskih primitva, već koristi priključne pružatelje kriptografskih funkcija (podržavaju se algoritmi ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM i AES256-GCM). Zadani kriptoproviditelj u Rustls-u temelji se na biblioteci aws-lc-rs, koju razvija kompanija Amazon i koja se oslanja na C++ kod BoringSSL-a, koji održava Google-ov fork OpenSSL-a. Kao kriptoproviditelj također se može koristiti biblioteka ring, djelomično zasnovana na BoringSSL-u i kombinira kod napisan u asembleru, C++ i Rustu.
Zanimljivo je da nginx ima ugrađenu podršku za izradu s BoringSSL-om, što omogućava korištenje ove biblioteke izravno bez dodatnih slojeva. Osim toga, osim ugrađene podrške Rustlsa za biblioteke aws-lc-rs i ring, koje se temelje na BoringSSL kodu, za Rustls se također razvijaju nekoliko vanjskih kriptoproviditelja koji omogućuju korištenje biblioteka mbedtls (C kod), BoringSSL (C++) i RustCrypto (Rust).
Izvor: opennet.ru
