Joe Birr-Pixton started Rustls in 2016 and remains the lead developer as of 2024.[1] The Internet Security Research Group (ISRG), a nonprofit organization based in the United States, has sponsored the project since 2021 as part of its Prossimo initiative.[4][5] ISRG aims to make Rustls a viable alternative to OpenSSL, which is widely used by internetservers but difficult to use correctly and has had security bugs, such as Heartbleed, caused by memory-unsafe code.[4][6]
ISRG has paid several programmers to work on Rustls, including Birr-Pixton, Daniel McCarney, and Dirkjan Ochtman, using money contributed by Google and other companies and organizations.[4][7] In 2023, the Open Source Security Foundation's Alpha-Omega initiative gave ISRG $530,000 for development of the option to use different cryptographic backends and for the separate project Rust for Linux.[8][9] That money came from Google, Amazon Web Services, and Microsoft.[10] Amazon Web Services also gave ISRG $1 million in 2023 for memory-safety projects including Rustls.[11] The Sovereign Tech Fund, supported by the German government, gave $1.5 million to ISRG in 2023 for work on Rustls and other projects that provide memory-safe versions of open source tools critical to internet security.[12][13]Craig Newmark Philanthropies granted $100,000 to ISRG for memory safety projects in 2024.[14] Additional funding has come from Fly.io,[15] a cloud platform that uses Rustls.[16]
The United States Office of the National Cyber Director has encouraged work on memory-safe security software[17] and complimented the Rustls team.[15] Google awarded Open Source Peer Bonuses to Birr-Pixton and Ochtman for their work on Rustls.[18]
Architecture and features
Rustls is a low-level software library focused on TLS implementation.[19] This means it does not support other internet protocols by itself, such as HTTPS, but software that implements other protocols may use Rustls as a component.[19]
In 2019, benchmarks carried out by the Rustls developer showed better performance than OpenSSL.[29] In 2024 the project conducted new performance comparisons with the latest version of OpenSSL, which showed some scenarios where Rustls was faster or more efficient and some where OpenSSL performed better.[30]
Uses
Like other TLS implementations, a computer user may use Rustls without being aware of it, as an underlying part of an application or website. A programmer can use Rustls directly or by configuring a higher-level library or tool to use it. In particular, Rustls is used by some projects that want to ensure they have a secure software supply chain.[31] The US Cybersecurity and Infrastructure Security Agency has recommended using products in memory safe languages as part of its "Secure by Design" initiative.[32]
Some libraries support Rustls as one of several choices for TLS implementations. The reqwestHTTP client library offers the option to use Rustls for TLS instead of the system's default TLS library (for example, on Windows the default is the Security Support Provider Interface).[33][34] In 2020 an ISRG software engineer enabled using Rustls as a TLS backend for cURL.[35][36]s2n-quic, an implementation of the QUICnetwork protocol in Rust, supports both Rustls and s2n-tls for TLS.[37]
In 2021 Google funded the creation of mod_tls, a new TLS module for Apache HTTP Server using Rustls.[38][39] The new module is intended to be a successor to the mod_ssl module that uses OpenSSL, as a more secure default.[38][40] As of August 2024, mod_tls is available in the latest version of Apache but still marked as experimental.[41] The Internet Society, a nonprofit that advocates for an open and secure internet, suggests that organizations use this module as a step toward increasing memory safety.[42]
Rustls is the default TLS implementation in some applications. The utility program cargo_audit, which checks Rust project dependencies for security vulnerabilities, uses Rustls.[43]Linkerd, which "adds security, observability, and reliability to any Kubernetes cluster", includes a proxy server built with Rustls.[44] Wolfi, a tool for making memory-safe Linuxcontainers, uses Rustls.[45][46] In 2024, ISRG announced plans to start replacing OpenSSL with Rustls in Let's Encrypt, their free certificate authority used by hundreds of millions of websites.[15][47]