Die Organisation ISRG (Internet Security Research Group), die die Initiative Let’s Encrypt ins Leben gerufen hat und die Entwicklung von Technologien zur Verbesserung der Internetsicherheit unterstützt, hat die Veröffentlichung einer rustls-openssl-compat-Schicht bekannt gegeben. Diese ermöglicht die Verwendung der Rustls-Bibliothek als transparente Alternative zu OpenSSL. Derzeit bietet das Projekt eine Implementierung von rustls-libssl an, die mit libssl kompatibel ist, und eine Implementierung von libcrypto ist in Arbeit.
Die vorhandene Funktionalität der Schicht ist ausreichend, um den Betrieb von nginx auf Basis von Rustls zu gewährleisten. Um nginx auf Rustls zu migrieren, müssen lediglich die Bibliotheken ersetzt werden, ohne dass eine Neuanpassung oder Modifizierung von nginx erforderlich ist. Zu den nächsten Entwicklungsplänen für Rustls gehört die Optimierung der Leistung in Bereichen, in denen Rustls derzeit hinter OpenSSL zurückbleibt, sowie die Unterstützung von RFC 8879 für die Kompression von Zertifikaten. Darüber hinaus wird im Ankündigung erwähnt, dass die Migration von Komponenten der Infrastruktur der Zertifizierungsstelle Let’s Encrypt von OpenSSL zu Rustls geplant ist.
Das Projekt Rustls entwickelt eine Client- und Server-Implementierung der Protokolle TLS1.2 und TLS1.3 zur Verwendung in Anwendungen, die in Rust geschrieben sind. Rustls stellt keine eigene Implementierung kryptografischer Primitiven bereit, sondern nutzt modulare Kryptografie-Anbieter (unterstützte Algorithmen sind ECDSA, Ed25519, RSA, ChaCha20-Poly1305, AES128-GCM und AES256-GCM). Standardmäßig verwendet Rustls einen Kryptografie-Anbieter, der auf der Bibliothek aws-lc-rs basiert, die von Amazon entwickelt wird und auf dem C++-Code von BoringSSL basiert, der von einem Google-Fork von OpenSSL betreut wird. Alternativ kann auch die Bibliothek ring als Kryptografie-Anbieter verwendet werden, die teilweise auf BoringSSL basiert und Code in Assembler, C++ und Rust kombiniert.
Bemerkenswert ist, dass nginx eine eingebaute Unterstützung für den Bau mit BoringSSL hat, was es ermöglicht, diese Bibliothek direkt ohne zusätzliche Schichten zu verwenden. Neben der Standardunterstützung von Rustls für die Bibliotheken aws-lc-rs und ring, die auf dem Code von BoringSSL basieren, werden auch mehrere externe Kryptografie-Anbieter für Rustls entwickelt, die es ermöglichen, Bibliotheken wie mbedtls (C-Code), BoringSSL (C++) und RustCrypto (Rust) zu verwenden.
Quelle: opennet.ru
