Az ISRG (Internet Security Research Group), amely a Let's Encrypt projekt alapítója és az internet biztonságának javítását célzó technológiák fejlesztését támogatja, bejelentette a rustls-openssl-compat réteg közzétételét, amely lehetővé teszi a Rustls könyvtár átlátható helyettesítését az OpenSSL számára. A projekt jelenleg a rustls-libssl implementációját kínálja, amely kompatibilitást biztosít a libssl-lel, és a libcrypto implementációja is fejlesztés alatt áll.
A rétegben lévő funkciók elegendőek ahhoz, hogy az nginx Rustls alapú működése biztosítva legyen. Az nginx Rustls-ra történő áttéréséhez elegendő csak a könyvtárakat kicserélni anélkül, hogy újraépítést vagy módosítást végeznénk az nginx-en. A Rustls közeljövőbeli fejlesztési tervei között említendő a teljesítmény optimalizálása azokban a területeken, ahol a Rustls jelenleg lemarad az OpenSSL-től, és a RFC 8879 támogatásának biztosítása a tanúsítványok tömörítéséhez. Ezen kívül a bejelentésben említést nyert, hogy a Let's Encrypt tanúsítványkibocsátó központ infrastruktúrájának elemeit az OpenSSL-ről Rustls-ra tervezik átkonvertálni.
A Rustls projekt a TLS1.2 és TLS1.3 protokollok kliens- és szerveroldali implementációját fejleszti Rust nyelvű alkalmazásokhoz. A Rustls nem biztosít saját kriptográfiai primitív implementációt, hanem csatlakoztatható kriptográfiai funkció szolgáltatókat használ (támogatott algoritmusok: ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM és AES256-GCM). Alapértelmezés szerint a Rustls a aws-lc-rs könyvtáron alapuló kriptográfiai szolgáltatót használ, amelyet az Amazon fejleszt és a BoringSSL C++ kódjára alapoznak, amelyet a Google OpenSSL fork támogat. Kriptográfiai szolgáltatóként a ring könyvtár is használható, amely részben a BoringSSL-re épül, és assembler, C++ és Rust kódot kombinál.
Figyelemre méltó, hogy az nginx beépített támogatással rendelkezik a BoringSSL-dal való összerakáshoz, amely lehetővé teszi, hogy ezt a könyvtárat közvetlenül, felesleges rétegek nélkül használják. Ezen kívül a Rustls-ben a BoringSSL kódjára épülő aws-lc-rs és ring könyvtárak beépített támogatása mellett több külső kriptográfiai szolgáltató is fejlődik, amely lehetővé teszi az mbedtls (C-nyelvű kód), BoringSSL (C++) és RustCrypto (Rust) könyvtárak használatát.
Forrás: opennet.ru
