ISRG (Internet Security Research Group), som er stiftar av prosjektet Let’s Encrypt og fremjar utviklinga av teknologiar for å auke internett-sikkerheit, har kunngjort publiseringa av lagrøyse rustls-openssl-compat, som gjer det mogleg å bruke Rustls-biblioteket som ein transparent erstatning for OpenSSL. For tida er det tilgjengeleg ei implementering av rustls-libssl, som sikrar kompatibilitet med libssl, medan utviklinga av libcrypto-implementeringa er under arbeid.
Funksjonaliteten som er tilgjengeleg i lagrøysa er tilstrekkeleg for å få nginx til å fungere basert på Rustls. For å overføre nginx til Rustls, må ein berre erstatte biblioteka, utan behov for ombygging eller endringar av nginx. Blant dei næraste planane for Rustls er optimering av ytelsen på områder der Rustls enno er bak OpenSSL, samt å sikre støtte for RFC 8879 for komprimering av sertifikat. Det blir også nævnt i kunngjeringa planane om å overføre elementa i infrastrukturen til sertifiseringssentra Let’s Encrypt frå OpenSSL til Rustls.
Rustls-prosjektet utviklar klient- og serverimplementasjonar av TLS1.2 og TLS1.3-protokollar for bruk i applikasjonar på Rust. Rustls gir ikkje eigne implementasjonar av kryptografiske primitive, men nyttar pluggbare kryptografiske leverandørar (støtter algoritmene ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM og AES256-GCM). Som standard bruker Rustls ein kryptoleverandør basert på aws-lc-rs-biblioteket, som vert utvikla av Amazon og er basert på C++-koden til BoringSSL, som følges av Google-forken av OpenSSL. I tillegg kan kryptoleverandøren også vere ring-biblioteket, som delvis er basert på BoringSSL og kombinerer kode i assembler, C++ og Rust.
Det er interessant å merke seg at nginx har innebygd støtte for å bygge med BoringSSL, som gjer det mogleg å bruke dette biblioteket direkte utan ekstra lag. I tillegg til den innebygde Rustls-støtta for aws-lc-rs- og ring-biblioteka, som er basert på BoringSSL-kode, utviklar det seg også fleire tredjeparts kryptoleverandørar for Rustls, som gjer det mogleg å bruke mbedtls (C-kode), BoringSSL (C++) og RustCrypto (Rust).
Kilde: opennet.ru
