Die Organisation ISRG (Internet Security Research Group), die die Gründer des Let’s Encrypt-Projekts ist und die Entwicklung von Technologien zur Verbesserung der Internetsicherheit unterstützt, hat die Veröffentlichung einer Schicht rustls-openssl-compat angekündigt, die es ermöglicht, die Rustls-Bibliothek als transparente Alternative zu OpenSSL zu verwenden. Derzeit bietet das Projekt eine rustls-libssl-Implementierung an, die mit libssl kompatibel ist, und eine libcrypto-Implementierung befindet sich in der Entwicklung.
Die in der Schicht vorhandene Funktionalität reicht aus, um nginx auf Rustls-Basis zu betreiben. Um nginx auf Rustls umzustellen, müssen lediglich die Bibliotheken ausgetauscht werden, ohne dass eine Neukompilierung oder Änderung des nginx erforderlich ist. Zu den kurzfristigen Plänen für die Weiterentwicklung von Rustls gehört die Leistungsoptimierung in Bereichen, in denen Rustls derzeit hinter OpenSSL zurückbleibt, sowie die Gewährleistung der Unterstützung von RFC 8879 zur Komprimierung von Zertifikaten. Darüber hinaus wird im Ankündigung die Planung erwähnt, Elemente der Infrastruktur der Zertifizierungsstelle Let’s Encrypt von OpenSSL auf Rustls umzustellen.
Das Rustls-Projekt entwickelt sowohl klientseitige als auch serverseitige Implementierungen der TLS1.2- und TLS1.3-Protokolle zur Verwendung in Anwendungen in der Programmiersprache Rust. Rustls bietet keine eigene Implementierung kryptografischer Primitiven an, sondern verwendet einsteckbare Anbieter für kryptografische Funktionen (unterstützt werden die Algorithmen ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM und AES256-GCM). Standardmäßig verwendet Rustls einen Kryptoanbieter auf Basis der aws-lc-rs-Bibliothek, die von Amazon entwickelt wird und auf dem C++-Code von BoringSSL basiert, der durch einen Google-Fork von OpenSSL unterstützt wird. Auch die ring-Bibliothek, die teilweise auf BoringSSL basiert und Code in Assembler, C++ und Rust kombiniert, kann als Kryptoanbieter verwendet werden.
Bemerkenswert ist, dass nginx über integrierte Unterstützung für die Erstellung mit BoringSSL verfügt, was die direkte Nutzung dieser Bibliothek ohne zusätzliche Schichten ermöglicht. Neben der in Rustls integrierten Unterstützung für die auf dem BoringSSL-Code basierenden aws-lc-rs- und ring-Bibliotheken werden für Rustls auch mehrere externe Kryptoanbieter entwickelt, die die Verwendung von mbedtls (C-Code), BoringSSL (C++) und RustCrypto (Rust) ermöglichen.
Quelle: opennet.ru
