L'organizzazione ISRG (Internet Security Research Group), fondatrice del progetto Let’s Encrypt e promotrice dello sviluppo di tecnologie per migliorare la sicurezza di Internet, ha annunciato la pubblicazione di un layer rustls-openssl-compat, che consente di utilizzare la libreria Rustls come sostituto trasparente di OpenSSL. Attualmente, il progetto fornisce l'implementazione rustls-libssl, che garantisce compatibilità con libssl, mentre è in fase di sviluppo l'implementazione di libcrypto.
Le funzionalità presenti nel layer sono sufficienti per consentire il funzionamento di nginx basato su Rustls. Per migrare nginx a Rustls, è sufficiente sostituire le librerie, senza bisogno di ricompilare o modificare nginx. Tra i prossimi sviluppi programmati per Rustls, si segnala l'ottimizzazione delle prestazioni nelle aree in cui Rustls è ancora in ritardo rispetto a OpenSSL, e la garanzia di supporto per RFC 8879 per la compressione dei certificati. Inoltre, nell'annuncio è stato menzionato il piano di migrazione degli elementi infrastrutturali dell'autorità di certificazione Let’s Encrypt da OpenSSL a Rustls.
Il progetto Rustls sviluppa implementazioni client e server dei protocolli TLS1.2 e TLS1.3 per l'uso in applicazioni scritte in Rust. Rustls non fornisce una propria implementazione dei primitivi crittografici, ma utilizza fornitori di funzioni crittografiche plugin (supportati gli algoritmi ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM e AES256-GCM). Di default, Rustls utilizza un provider crittografico basato sulla libreria aws-lc-rs, sviluppata da Amazon e basata sul codice C++ di BoringSSL, mantenuto da un fork di OpenSSL di Google. Come provider crittografico può essere utilizzata anche la libreria ring, parzialmente basata su BoringSSL e che combina codice in assembly, C++ e Rust.
È interessante notare che nginx ha un supporto integrato per la compilazione con BoringSSL, che consente di utilizzare questa libreria direttamente senza strati intermedi. Inoltre, oltre al supporto integrato per le librerie aws-lc-rs e ring di Rustls, basate sul codice di BoringSSL, Rustls sta anche sviluppando diversi fornitori crittografici di terze parti, che consentono di utilizzare le librerie mbedtls (codice in C), BoringSSL (C++) e RustCrypto (Rust).
Fonte: opennet.ru
