From 989c3975af38f01dccbba612d91875527433dbd7 Mon Sep 17 00:00:00 2001 From: Josh Aas Date: Sat, 5 Sep 2026 11:04:23 -0400 Subject: [PATCH 1/2] Fix a bunch of links --- content/en/blog/2022-03-01-memory-safe-httpd.md | 4 ++-- content/en/blog/2022-06-23-memory-safety-in-linux-kernel.md | 2 +- content/en/blog/2023-10-05-announcing-hickory-dns.md | 2 +- content/en/blog/2024-02-28-Introducing-River.md | 2 +- content/en/blog/2024-03-12-growing-support.md | 2 +- .../en/blog/2024-05-08-Rustls-Nginx-Compatibility-layer.md | 2 +- content/en/blog/2024-05-09-Fedora-Linux-for-ntp-and-sudo.md | 2 +- content/en/blog/2024-06-24-ntpd-rs-deployment.md | 2 +- .../en/blog/2024-07-17-trifecta-tech-foundation-sudo-su.md | 2 +- content/en/blog/2024-09-09-porting-c-to-rust-for-AV1.md | 2 +- content/en/blog/2024-12-03-Rustls-adoption-grows.md | 2 +- content/en/docs/memory-safety.md | 2 +- content/en/sponsor.html | 2 +- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/content/en/blog/2022-03-01-memory-safe-httpd.md b/content/en/blog/2022-03-01-memory-safe-httpd.md index a5ab1d68..e1e3f4a0 100644 --- a/content/en/blog/2022-03-01-memory-safe-httpd.md +++ b/content/en/blog/2022-03-01-memory-safe-httpd.md @@ -41,13 +41,13 @@ Rustls-ffi has nothing specific to Apache in it, but it was developed in coordin On the Apache side, I did two things: -1. I developed [mod_tls](https://github.com/abetterinternet/mod_tls) around Rustls, via rustls-ffi, as a memory safe alternative to the existing TLS module [mod_ssl](https://httpd.apache.org/docs/2.4/mod/mod_ssl.html), which uses OpenSSL and compatible libraries. Apache modules are dynamically loadable extensions, so people can choose what they need. +1. I developed [mod_tls](https://github.com/icing/mod_tls) around Rustls, via rustls-ffi, as a memory safe alternative to the existing TLS module [mod_ssl](https://httpd.apache.org/docs/2.4/mod/mod_ssl.html), which uses OpenSSL and compatible libraries. Apache modules are dynamically loadable extensions, so people can choose what they need. 2. I enhanced Apache's internal infrastructure to allow not just one, but several, TLS modules to be loaded in the same server instance. The second point means you can phase in mod_tls alongside mod_ssl in your installations. Rustls only supports TLS 1.2 and higher because earlier TLS versions are not considered to be secure. However, some people still need to support older versions of TLS for legacy systems. If you want to use mod_tls for TLS 1.2 and higher while still supporting older versions of the protocol with mod_ssl, you can do that today. -The mod_tls documentation offers a [feature table](https://github.com/abetterinternet/mod_tls#comparison-with-mod_ssl) comparing it to mod_ssl, letting people determine if they can make the complete switch or which parts of the server they may migrate to the memory safe implementation. [Possible scenarios](https://github.com/abetterinternet/mod_tls#peace-and-harmony) are described in the documentation. Client certificate support is not available yet, but we are hoping to add it in the future. +The mod_tls documentation offers a [feature table](https://github.com/icing/mod_tls#comparison-with-mod_ssl) comparing it to mod_ssl, letting people determine if they can make the complete switch or which parts of the server they may migrate to the memory safe implementation. [Possible scenarios](https://github.com/icing/mod_tls#peace-and-harmony) are described in the documentation. Client certificate support is not available yet, but we are hoping to add it in the future. The Cost -------- diff --git a/content/en/blog/2022-06-23-memory-safety-in-linux-kernel.md b/content/en/blog/2022-06-23-memory-safety-in-linux-kernel.md index 7f30d08c..3e57bbbb 100644 --- a/content/en/blog/2022-06-23-memory-safety-in-linux-kernel.md +++ b/content/en/blog/2022-06-23-memory-safety-in-linux-kernel.md @@ -70,7 +70,7 @@ We have also been in contact with several academics, including researchers at th Similarly, members of [LSE](https://www.lse.epita.fr) (Systems Research Laboratory) at EPITA (École pour l'informatique et les techniques avancées) used Rust for Linux because they “are convinced that Rust is changing the landscape of system programming by applying the research done on programming languages in the last decades. We wanted to see how the language was able to help us write code we are really comfortable with thanks to the extensive static checking.” -In addition, we presented Rust for Linux (and Rust in general) in a few avenues: [Linaro Virtual Connect Fall](https://resources.linaro.org/en/resource/A4Z6FpSkwsWJdfixEbNTiZ), [Clang Built Linux Meetup](https://clangbuiltlinux.github.io/cbl-meetup/), Linux Plumbers Conference (LPC) (e.g. on [Rust in the Linux ecosystem](https://www.youtube.com/watch?v=jTWdk0jYy54), on [Rust for Linux](https://www.youtube.com/watch?v=46Ky__Gid7M) and on [Android drivers in Rust](https://www.youtube.com/watch?v=aRbxBeaFf54&t=8367s)), [Samsung Engineering Summit](https://www.srib.in/SEConference/), [Open Source Summit Japan](https://www.youtube.com/watch?v=yxau9EJq9NE&t=2061s), [Rust Cross Team Collaboration Fun Times (CTCFT)](https://rust-lang.github.io/ctcft/meetings/2021-11-22.html) and [Rust Linz](https://www.youtube.com/watch?v=fVEeqo40IyQ). As a fun fact, according to the keynote’s [informal poll](https://www.youtube.com/watch?v=2SHwVhWzwa0&t=256s) at LPC 2021, Rust was the emerging technology attendees were most excited about. +In addition, we presented Rust for Linux (and Rust in general) in a few avenues: [Linaro Virtual Connect Fall](https://resources.linaro.org/en/resource/A4Z6FpSkwsWJdfixEbNTiZ), [Clang Built Linux Meetup](https://clangbuiltlinux.github.io/cbl-meetup/), Linux Plumbers Conference (LPC) (e.g. on [Rust in the Linux ecosystem](https://www.youtube.com/watch?v=jTWdk0jYy54), on [Rust for Linux](https://www.youtube.com/watch?v=46Ky__Gid7M) and on [Android drivers in Rust](https://www.youtube.com/watch?v=aRbxBeaFf54&t=8367s)), [Samsung Engineering Summit](https://web.archive.org/web/20220623165113/https://www.srib.in/SEConference/), [Open Source Summit Japan](https://www.youtube.com/watch?v=yxau9EJq9NE&t=2061s), [Rust Cross Team Collaboration Fun Times (CTCFT)](https://rust-lang.github.io/ctcft/meetings/2021-11-22.html) and [Rust Linz](https://www.youtube.com/watch?v=fVEeqo40IyQ). As a fun fact, according to the keynote’s [informal poll](https://www.youtube.com/watch?v=2SHwVhWzwa0&t=256s) at LPC 2021, Rust was the emerging technology attendees were most excited about. We also gave a couple Linux Foundation Live Mentorship Series sessions on [an introduction to Rust safety and abstractions](https://linuxfoundation.org/webinars/rust-for-linux-writing-abstractions-and-drivers/) and on [code documentation and tests](https://linuxfoundation.org/webinars/rust-for-linux-code-documentation-tests/). diff --git a/content/en/blog/2023-10-05-announcing-hickory-dns.md b/content/en/blog/2023-10-05-announcing-hickory-dns.md index df2a4fee..924e0be4 100644 --- a/content/en/blog/2023-10-05-announcing-hickory-dns.md +++ b/content/en/blog/2023-10-05-announcing-hickory-dns.md @@ -36,7 +36,7 @@ Where did the name Hickory DNS come from? While considering the goals of this pr How will this impact existing users and contributors? ----------------------------------------------------- -We will be moving the project into the [Hickory DNS](https://github.com/hickorydns) organization on GitHub. During this move we will also be changing the project name to [Hickory DNS](https://github.com/hickorydns/hickorydns). This transition to an organization and away from my personal github account will allow for a greater set of administrative options for other collaborators, like [Dirkjan Ochtman](https://github.com/djc) who's been helping maintain the project for a couple of years now. All of the crates will start being published under the hickory-* name, for example the popular crates trust-dns-resolver and trust-dns-proto will become hickory-resolver and hickory-proto, while the server will be hickory-dns. There may be other changes that need to occur, if others have gone through similar moves, we'd be open to feedback about how to make it most effective. Things that we will not change: licensing (MIT or Apache 2.0), Code of Conduct, and seeking to make the best DNS software available. +We will be moving the project into the [Hickory DNS](https://github.com/hickory-dns) organization on GitHub. During this move we will also be changing the project name to [Hickory DNS](https://github.com/hickory-dns/hickory-dns). This transition to an organization and away from my personal github account will allow for a greater set of administrative options for other collaborators, like [Dirkjan Ochtman](https://github.com/djc) who's been helping maintain the project for a couple of years now. All of the crates will start being published under the hickory-* name, for example the popular crates trust-dns-resolver and trust-dns-proto will become hickory-resolver and hickory-proto, while the server will be hickory-dns. There may be other changes that need to occur, if others have gone through similar moves, we'd be open to feedback about how to make it most effective. Things that we will not change: licensing (MIT or Apache 2.0), Code of Conduct, and seeking to make the best DNS software available. I want to thank the many users of and contributors to the Trust-DNS project and I hope you will join us by continuing to collaborate on the same project under the new name, Hickory DNS. This project would not be where it is without your support of 2,560 commits and 71,318 lines of code written by 170 collaborators. All of that has led to, according to GitHub, 1,136 dependent projects that use the software. Crates.io shows 20,310,799 downloads of the [proto](https://crates.io/crates/trust-dns-proto) crate and 19,003,768 of the [resolver](https://crates.io/crates/trust-dns-resolver) crate. With these new investments in the project, we hope to grow the usage of the [server](https://crates.io/crates/trust-dns) and make it something people are comfortable deploying in their production systems. Thank you everyone for your confidence, I am excited for the future of this project, and I hope you are too. If you have any questions or concerns related to this change, feel free to reach out to me. Here's a Hickory tree in the woods near my parents' house in New York, it's probably 20 or 30 years old. I hope that together we can build something as beautiful. diff --git a/content/en/blog/2024-02-28-Introducing-River.md b/content/en/blog/2024-02-28-Introducing-River.md index 66be936f..c22e5d6f 100644 --- a/content/en/blog/2024-02-28-Introducing-River.md +++ b/content/en/blog/2024-02-28-Introducing-River.md @@ -9,7 +9,7 @@ display_default_footer: true Today we are announcing plans to build a new [high performance and memory safe reverse proxy](https://github.com/memorysafety/river) in partnership with Cloudflare, Shopify, and Chainguard. The new software will be built on top of Cloudflare's [Pingora](https://github.com/cloudflare/pingora), a Rust-based HTTP proxy, the open sourcing of which was [announced today](https://blog.cloudflare.com/pingora-open-source). -Just about every significant deployment on the Internet makes use of reverse proxy software, and the most commonly deployed reverse proxy software is not memory safe. This means that most deployments have millions of lines of C and C++ handling incoming traffic at the edges of their networks, a risk that [needs to be addressed](https://www.whitehouse.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/) if we are to have greater confidence in the security of the Internet. In order to change this, Prossimo is investing in new reverse proxy software called [River](https://www.memorysafety.org/initiative/reverse-proxy/), which will offer excellent performance while reducing the chance of memory safety vulnerabilities to near zero. +Just about every significant deployment on the Internet makes use of reverse proxy software, and the most commonly deployed reverse proxy software is not memory safe. This means that most deployments have millions of lines of C and C++ handling incoming traffic at the edges of their networks, a risk that [needs to be addressed](https://bidenwhitehouse.archives.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/) if we are to have greater confidence in the security of the Internet. In order to change this, Prossimo is investing in new reverse proxy software called [River](https://www.memorysafety.org/initiative/reverse-proxy/), which will offer excellent performance while reducing the chance of memory safety vulnerabilities to near zero. “Cloudflare announced plans to open source Pingora, a high performance, memory-safe framework to build large scale networked systems a little over a year ago. After the announcement, it became clear that we were not the only ones striving to replace unsafe legacy Internet infrastructure,” said Aki Shugaeva, Engineering Director, Cloudflare. “Cloudflare's mission is to help build a better Internet and we look forward to partnering with the ISRG and others on the River project to continue to improve the Internet for everyone.” diff --git a/content/en/blog/2024-03-12-growing-support.md b/content/en/blog/2024-03-12-growing-support.md index 85f2c30c..16d6dd8a 100644 --- a/content/en/blog/2024-03-12-growing-support.md +++ b/content/en/blog/2024-03-12-growing-support.md @@ -13,7 +13,7 @@ slug: growing-support Initial signs point to 2024 being a big year for memory safety and we aim to continue Prossimo's work to accelerate the momentum. -Last month, the White House's Office of the National Cyber Director (ONCD) issued a [report](https://www.whitehouse.gov/oncd/briefing-room/2024/02/26/memory-safety-fact-sheet/) that strongly endorses the use of memory safe languages. We've been formally working on improving memory safety for critical Internet infrastructure for years now and are proud to be the only 501c3 nonprofit referenced in this report. The report highlights a few points that are well-aligned with Prossimo's outlook: +Last month, the White House's Office of the National Cyber Director (ONCD) issued a [report](https://bidenwhitehouse.archives.gov/oncd/briefing-room/2024/02/26/memory-safety-fact-sheet/) that strongly endorses the use of memory safe languages. We've been formally working on improving memory safety for critical Internet infrastructure for years now and are proud to be the only 501c3 nonprofit referenced in this report. The report highlights a few points that are well-aligned with Prossimo's outlook: 1. Now is the time to make memory safe choices since it effectively solves an avoidable problem, diff --git a/content/en/blog/2024-05-08-Rustls-Nginx-Compatibility-layer.md b/content/en/blog/2024-05-08-Rustls-Nginx-Compatibility-layer.md index e9a5cfaa..25c27edb 100644 --- a/content/en/blog/2024-05-08-Rustls-Nginx-Compatibility-layer.md +++ b/content/en/blog/2024-05-08-Rustls-Nginx-Compatibility-layer.md @@ -22,7 +22,7 @@ $ sudo service nginx restart After [investing heavily](https://www.memorysafety.org/initiative/rustls/) in Rustls over the last few years, we now see it as a viable, performant, and memory safe alternative to OpenSSL. Recent releases have brought pluggable cryptography with [FIPS support](https://www.memorysafety.org/blog/rustls-with-aws-crypto-back-end-and-fips/), [performance optimizations](https://www.memorysafety.org/blog/rustls-performance/), [post-quantum key exchange](https://www.memorysafety.org/blog/pq-key-exchange/), and numerous other improvements. In the coming months, we will focus on improving performance in the few areas where Rustls doesn't already surpass OpenSSL and add support for [RFC 8879](https://datatracker.ietf.org/doc/html/rfc8879.html) for certificate compression. ISRG's [Let's Encrypt](https://letsencrypt.org/) certificate authority will begin replacing OpenSSL with Rustls later this year. -The importance of memory safety has been expounded upon recently by a number of groups, including the [White House Office of the National Cyber Director](https://www.whitehouse.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/). Anjana Rajan, Assistant National Cyber Director for Technology Security, The White House, adds: "Moving the cyber ecosystem toward memory safe programming languages is not only good engineering practice, but imperative for our national security. Achieving this will require a pragmatic and methodical approach. Securing the building blocks of cyberspace is critical and there is no better place to start than with TLS." +The importance of memory safety has been expounded upon recently by a number of groups, including the [White House Office of the National Cyber Director](https://bidenwhitehouse.archives.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/). Anjana Rajan, Assistant National Cyber Director for Technology Security, The White House, adds: "Moving the cyber ecosystem toward memory safe programming languages is not only good engineering practice, but imperative for our national security. Achieving this will require a pragmatic and methodical approach. Securing the building blocks of cyberspace is critical and there is no better place to start than with TLS." Regarding Rustls, Ms. Rajan adds "The White House, Office of the National Cyber Director, commends the Prossimo team for their outstanding work in building Rustls, a FIPS compliant memory safe TLS implementation. By prioritizing integration with Nginx, the Prossimo team is actively ensuring a good developer experience when pursuing stronger cybersecurity." diff --git a/content/en/blog/2024-05-09-Fedora-Linux-for-ntp-and-sudo.md b/content/en/blog/2024-05-09-Fedora-Linux-for-ntp-and-sudo.md index c9d1d838..26a22ab2 100644 --- a/content/en/blog/2024-05-09-Fedora-Linux-for-ntp-and-sudo.md +++ b/content/en/blog/2024-05-09-Fedora-Linux-for-ntp-and-sudo.md @@ -32,7 +32,7 @@ Additionally, this approach allows us to ship updates for security vulnerabiliti I was initially approached by Josh Aas from Prossimo in January 2023 because there was interest in providing official Fedora Linux RPM packages for [ntpd-rs](https://www.memorysafety.org/initiative/ntp/). At this point, our tools did not yet support building projects like ntpd-rs (i.e. projects that were organized as multiple crates within a "cargo workspace"). Over the following months, I worked on both updating our tools to support this use case and on packaging and getting packages for crate dependencies through peer review. -While I was able to finish the tooling support relatively quickly (I [released](https://pagure.io/fedora-rust/rust2rpm/raw/8ca9320/f/NEWS) official support for building "workspace" projects in February 2023), getting packages for crate dependencies reviewed and/or updated to the versions that were needed by ntpd-rs took longer than expected. One of the final blockers was resolved with the 0.17.0 release of `ring` in October 2023 (and the accompanying release of `rustls`), as this version finally included support for all CPU architectures that are supported by Fedora Linux. +While I was able to finish the tooling support relatively quickly (I [released](https://codeberg.org/rust2rpm/rust2rpm/src/commit/8ca9320/NEWS) official support for building "workspace" projects in February 2023), getting packages for crate dependencies reviewed and/or updated to the versions that were needed by ntpd-rs took longer than expected. One of the final blockers was resolved with the 0.17.0 release of `ring` in October 2023 (and the accompanying release of `rustls`), as this version finally included support for all CPU architectures that are supported by Fedora Linux. Additionally, the effort to reduce the number of dependencies of ntpd-rs in the versions approaching the 1.0.0 release helped as well - even though it rendered some work that had already been done to package the dropped dependencies (i.e. the `axum` web framework) for Fedora obsolete (one of the dangers of working towards a moving target, I suppose). diff --git a/content/en/blog/2024-06-24-ntpd-rs-deployment.md b/content/en/blog/2024-06-24-ntpd-rs-deployment.md index 375fc59d..df654061 100644 --- a/content/en/blog/2024-06-24-ntpd-rs-deployment.md +++ b/content/en/blog/2024-06-24-ntpd-rs-deployment.md @@ -16,6 +16,6 @@ Most operating systems use the Network Time Protocol (NTP) to accurately determi In April of 2022, Prossimo started work on a memory safe and generally more secure [NTP](https://en.wikipedia.org/wiki/Network_Time_Protocol) implementation called [ntpd-rs](https://github.com/pendulum-project/ntpd-rs). Since then, the implementation has matured and is now maintained by [Project Pendulum](https://github.com/pendulum-project). In April of 2024 ntpd-rs was deployed to the Let's Encrypt staging environment, and as of now it's in production. -Over the next few years we plan to continue replacing C or C++ software with memory safe alternatives in the Let's Encrypt infrastructure: OpenSSL and its derivatives with [Rustls](https://www.memorysafety.org/initiative/rustls/), our DNS software with [Hickory](https://www.memorysafety.org/initiative/dns/), Nginx with [River](https://www.memorysafety.org/initiative/reverse-proxy/), and sudo with [sudo-rs](https://www.memorysafety.org/initiative/sudo-su/). Memory safety is just part of the overall security equation, but [it's an important part](https://www.whitehouse.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/) and we're glad to be able to make these improvements. +Over the next few years we plan to continue replacing C or C++ software with memory safe alternatives in the Let's Encrypt infrastructure: OpenSSL and its derivatives with [Rustls](https://www.memorysafety.org/initiative/rustls/), our DNS software with [Hickory](https://www.memorysafety.org/initiative/dns/), Nginx with [River](https://www.memorysafety.org/initiative/reverse-proxy/), and sudo with [sudo-rs](https://www.memorysafety.org/initiative/sudo-su/). Memory safety is just part of the overall security equation, but [it's an important part](https://bidenwhitehouse.archives.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/) and we're glad to be able to make these improvements. We depend on contributions from our community of users and supporters in order to provide our services. If your company or organization would like to [sponsor](https://www.abetterinternet.org/sponsor/) Let's Encrypt please email us at . We ask that you make an [individual contribution](https://letsencrypt.org/donate/) if it is within your means. \ No newline at end of file diff --git a/content/en/blog/2024-07-17-trifecta-tech-foundation-sudo-su.md b/content/en/blog/2024-07-17-trifecta-tech-foundation-sudo-su.md index a6226276..a79dd08d 100644 --- a/content/en/blog/2024-07-17-trifecta-tech-foundation-sudo-su.md +++ b/content/en/blog/2024-07-17-trifecta-tech-foundation-sudo-su.md @@ -14,7 +14,7 @@ Today we're pleased to announce that an open source [memory safe implementation ISRG's Prossimo project set out to develop a strategy, raise funds, and select a contractor for a memory safe sudo/su implementation in early 2022. We did this because sudo and su are critical utilities managing control of the user privilege boundary on most Linux systems. The original utilities are written in C and have a history of [memory safety vulnerabilities](https://www.memorysafety.org/docs/memory-safety/), a class of issues that critical system software should not suffer from. -During 2022 we made a [plan](https://www.memorysafety.org/blog/sudo-and-su/) and selected a joint team from [Tweede golf](https://tweedegolf.nl/) and [Ferrous Systems](https://ferrous-systems.com/) as the contractors. Funding was generously provided by [Amazon Web Services](https://aws.amazon.com/). The first release was made in August 2023. A [third party security audit](https://github.com/trifectatechfoundation/sudo-rs/blob/main/docs/audit/audit-report-sudo-rs.pdf) was completed in September of 2023. +During 2022 we made a [plan](https://www.memorysafety.org/blog/sudo-and-su/) and selected a joint team from [Tweede golf](https://tweedegolf.nl/) and [Ferrous Systems](https://ferrous-systems.com/) as the contractors. Funding was generously provided by [Amazon Web Services](https://aws.amazon.com/). The first release was made in August 2023. A [third party security audit](https://github.com/trifectatechfoundation/sudo-rs/blob/main/docs/audit/NLnet%20Tweede%20Golf%20Code%20Review%20Report%202023%201.0.pdf) was completed in September of 2023. There are software packages for [Debian,](https://packages.debian.org/trixie/sudo-rs) [Ubuntu](https://packages.ubuntu.com/noble/sudo-rs) and [Fedora](https://packages.fedoraproject.org/pkgs/sudo-rs/sudo-rs/). It's also available on [crates.io](https://crates.io/crates/sudo-rs). diff --git a/content/en/blog/2024-09-09-porting-c-to-rust-for-AV1.md b/content/en/blog/2024-09-09-porting-c-to-rust-for-AV1.md index 3ce787d9..e3289795 100644 --- a/content/en/blog/2024-09-09-porting-c-to-rust-for-AV1.md +++ b/content/en/blog/2024-09-09-porting-c-to-rust-for-AV1.md @@ -37,7 +37,7 @@ Writing a high performance and complete AV1 decoder from scratch is a challengin We want to provide a compatible C API to make migration to our new Rust library smoother. We also want to reuse the ```dav1d``` assembly code to preserve performance. These compatibility constraints mean that we must preserve some of the same data structure layout as ```dav1d``` both externally and internally. We must also call the assembly routines in the exact same way as ```dav1d``` does. Functionally, this requires that we implement decoding in effectively the same way as ```dav1d```. -We could have manually rewritten ```dav1d``` into Rust one function or module at a time. However, given the compatibility we wanted to retain, this would have been a tedious process. To get to the point where we could make cross-cutting changes to internal data structures necessary for enforcing memory safety would require rewriting much of the codebase. Instead we chose to migrate by initially transpiling the C code into equivalent but unsafe Rust using [c2rust](http://c2ru.st). This allowed us to start the rewriting process from a fully working, seamlessly compatible Rust codebase without introducing any new logic bugs in the process. The bulk of the work then consisted of manually refactoring and rewriting the unsafe Rust into a safe, idiomatic Rust. +We could have manually rewritten ```dav1d``` into Rust one function or module at a time. However, given the compatibility we wanted to retain, this would have been a tedious process. To get to the point where we could make cross-cutting changes to internal data structures necessary for enforcing memory safety would require rewriting much of the codebase. Instead we chose to migrate by initially transpiling the C code into equivalent but unsafe Rust using [c2rust](https://c2rust.com). This allowed us to start the rewriting process from a fully working, seamlessly compatible Rust codebase without introducing any new logic bugs in the process. The bulk of the work then consisted of manually refactoring and rewriting the unsafe Rust into a safe, idiomatic Rust. Transpiling into unsafe Rust followed by rewriting provided two important advantages for this project: 1) starting from a fully working Rust implementation allowed us to thoroughly test decoding functionality while incrementally refactoring, and 2) transpiling complex decoding logic reduced the need for expert domain knowledge of the AV1 specification. We found that full CI testing from the beginning while rewriting and improving the Rust code was immensely beneficial. We could make cross-cutting changes to the codebase and run the existing ```dav1d``` tests on every commit. Between the static checking of the Rust compiler and integration testing of the full decoder, we spent comparatively less time debugging than we would have implementing a decoder from scratch. The majority of the team on this project were experts in systems programming and Rust, but did not have previous experience with AV codecs. Our codec expert on the project, [Frank Bossen](http://bossentech.com/), provided invaluable guidance but did not need to be involved in the bulk of the effort. diff --git a/content/en/blog/2024-12-03-Rustls-adoption-grows.md b/content/en/blog/2024-12-03-Rustls-adoption-grows.md index 1b236a6e..d03519ca 100644 --- a/content/en/blog/2024-12-03-Rustls-adoption-grows.md +++ b/content/en/blog/2024-12-03-Rustls-adoption-grows.md @@ -11,7 +11,7 @@ Prossimo has been investing in the memory safe, high performance TLS library cal The FIS team was able to make the switch with just a few hours of engineering time thanks to the [Rustls OpenSSL compatibility layer for Nginx](https://www.memorysafety.org/blog/rustls-nginx-compatibility-layer/). This recently added feature made it possible to swap in Rustls without needing to modify or recompile Nginx. -Moving to Rustls is an excellent response to the recent [cross-industry call](https://www.whitehouse.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/) from the White House's Office of the National Cyber Director (ONCD) for companies to add memory safety to their roadmaps. National Cyber Director Harry Coker stated, "we, as a nation, have the ability -- and the responsibility -- to reduce the attack surface in cyberspace and prevent entire classes of security bugs from entering the digital ecosystem but that means we need to tackle the hard problem of moving to memory safe programming languages." +Moving to Rustls is an excellent response to the recent [cross-industry call](https://bidenwhitehouse.archives.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/) from the White House's Office of the National Cyber Director (ONCD) for companies to add memory safety to their roadmaps. National Cyber Director Harry Coker stated, "we, as a nation, have the ability -- and the responsibility -- to reduce the attack surface in cyberspace and prevent entire classes of security bugs from entering the digital ecosystem but that means we need to tackle the hard problem of moving to memory safe programming languages." We see the Nginx OpenSSL compatibility layer as an important tool to accelerate the move to memory safety and encourage any organization running Nginx to try it out. If your organization is able to dedicate a few hours of engineering time like FIS did, your memory safety roadmap will have one item marked as 'complete' in 2024. "This may be a multi-decade endeavor that will require all of us, those in government, the private sector, and across the technical community to play our part and that's why we must begin this work today," Anjana Rajan, Assistant National Cyber Director at the White House, stated previously.  Recently, Rajan commented: "the urgency of addressing the memory safety problem cannot be overstated and it's time to start the next chapter of back to the building blocks and show how we are executing against this vision." diff --git a/content/en/docs/memory-safety.md b/content/en/docs/memory-safety.md index 198fb817..4b803023 100644 --- a/content/en/docs/memory-safety.md +++ b/content/en/docs/memory-safety.md @@ -97,7 +97,7 @@ This explanation is, with permission, based on Alex Gaynor's blog post [Introduc [Slammer worm]: https://en.wikipedia.org/wiki/SQL_Slammer [WannaCry]: https://www.fireeye.com/blog/threat-research/2017/05/smb-exploited-wannacry-use-of-eternalblue.html -[Trident exploit]: https://blog.lookout.com/trident-pegasus-technical-details +[Trident exploit]: https://www.lookout.com/threat-intelligence/article/trident-pegasus-technical-details [Heartbleed]: https://tonyarcieri.com/would-rust-have-prevented-heartbleed-another-look [Stagefright]: https://googleprojectzero.blogspot.com/2015/09/stagefrightened.html [Ghost]: https://blog.qualys.com/laws-of-vulnerabilities/2015/01/27/the-ghost-vulnerability diff --git a/content/en/sponsor.html b/content/en/sponsor.html index 9bb03c33..746eef43 100644 --- a/content/en/sponsor.html +++ b/content/en/sponsor.html @@ -132,5 +132,5 @@

Contribute Code

  • Rust-for-Linux
  • Rustls
  • curl
  • -
  • mod_tls for Apache
  • +
  • mod_tls for Apache
  • \ No newline at end of file From 805a63aaae6cda792865baf29c84d927775f450f Mon Sep 17 00:00:00 2001 From: Josh Aas Date: Sat, 5 Sep 2026 11:13:13 -0400 Subject: [PATCH 2/2] Move more links to HTTPS --- content/en/blog/2022-06-23-memory-safety-in-linux-kernel.md | 2 +- content/en/blog/2023-01-31-remy-rakic-compile-times.md | 2 +- .../2023-09-18-rustls-and-rust-for-linux-funding-openssf.md | 2 +- content/en/blog/2023-11-03-tectonics-recap.md | 2 +- content/en/blog/2023-12-28-EOY-letter-2023.md | 6 +++--- .../en/blog/2024-09-10-Rav1d-Performance-Optimization.md | 2 +- ...9-03-rustls-joins-rust-foundation-rust-innovation-lab.md | 2 +- layouts/partials/footer.html | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/content/en/blog/2022-06-23-memory-safety-in-linux-kernel.md b/content/en/blog/2022-06-23-memory-safety-in-linux-kernel.md index 3e57bbbb..cc00b272 100644 --- a/content/en/blog/2022-06-23-memory-safety-in-linux-kernel.md +++ b/content/en/blog/2022-06-23-memory-safety-in-linux-kernel.md @@ -70,7 +70,7 @@ We have also been in contact with several academics, including researchers at th Similarly, members of [LSE](https://www.lse.epita.fr) (Systems Research Laboratory) at EPITA (École pour l'informatique et les techniques avancées) used Rust for Linux because they “are convinced that Rust is changing the landscape of system programming by applying the research done on programming languages in the last decades. We wanted to see how the language was able to help us write code we are really comfortable with thanks to the extensive static checking.” -In addition, we presented Rust for Linux (and Rust in general) in a few avenues: [Linaro Virtual Connect Fall](https://resources.linaro.org/en/resource/A4Z6FpSkwsWJdfixEbNTiZ), [Clang Built Linux Meetup](https://clangbuiltlinux.github.io/cbl-meetup/), Linux Plumbers Conference (LPC) (e.g. on [Rust in the Linux ecosystem](https://www.youtube.com/watch?v=jTWdk0jYy54), on [Rust for Linux](https://www.youtube.com/watch?v=46Ky__Gid7M) and on [Android drivers in Rust](https://www.youtube.com/watch?v=aRbxBeaFf54&t=8367s)), [Samsung Engineering Summit](https://web.archive.org/web/20220623165113/https://www.srib.in/SEConference/), [Open Source Summit Japan](https://www.youtube.com/watch?v=yxau9EJq9NE&t=2061s), [Rust Cross Team Collaboration Fun Times (CTCFT)](https://rust-lang.github.io/ctcft/meetings/2021-11-22.html) and [Rust Linz](https://www.youtube.com/watch?v=fVEeqo40IyQ). As a fun fact, according to the keynote’s [informal poll](https://www.youtube.com/watch?v=2SHwVhWzwa0&t=256s) at LPC 2021, Rust was the emerging technology attendees were most excited about. +In addition, we presented Rust for Linux (and Rust in general) in a few avenues: [Linaro Virtual Connect Fall](https://resources.linaro.org/en/resource/A4Z6FpSkwsWJdfixEbNTiZ), [Clang Built Linux Meetup](https://clangbuiltlinux.github.io/cbl-meetup/), Linux Plumbers Conference (LPC) (e.g. on [Rust in the Linux ecosystem](https://www.youtube.com/watch?v=jTWdk0jYy54), on [Rust for Linux](https://www.youtube.com/watch?v=46Ky__Gid7M) and on [Android drivers in Rust](https://www.youtube.com/watch?v=aRbxBeaFf54&t=8367s)), Samsung Engineering Summit, [Open Source Summit Japan](https://www.youtube.com/watch?v=yxau9EJq9NE&t=2061s), [Rust Cross Team Collaboration Fun Times (CTCFT)](https://rust-lang.github.io/ctcft/meetings/2021-11-22.html) and [Rust Linz](https://www.youtube.com/watch?v=fVEeqo40IyQ). As a fun fact, according to the keynote’s [informal poll](https://www.youtube.com/watch?v=2SHwVhWzwa0&t=256s) at LPC 2021, Rust was the emerging technology attendees were most excited about. We also gave a couple Linux Foundation Live Mentorship Series sessions on [an introduction to Rust safety and abstractions](https://linuxfoundation.org/webinars/rust-for-linux-writing-abstractions-and-drivers/) and on [code documentation and tests](https://linuxfoundation.org/webinars/rust-for-linux-code-documentation-tests/). diff --git a/content/en/blog/2023-01-31-remy-rakic-compile-times.md b/content/en/blog/2023-01-31-remy-rakic-compile-times.md index ced819f0..df661afb 100644 --- a/content/en/blog/2023-01-31-remy-rakic-compile-times.md +++ b/content/en/blog/2023-01-31-remy-rakic-compile-times.md @@ -53,7 +53,7 @@ I worked with Prossimo on the following priorities: - Improve support for persistent, cached and distributed builds -We start by looking for what's slow. Looking at this holistically, from the crate-compile level, might provide new insights, especially since we've rarely done this before. I gathered the 1000 most popular crates from [crates.io](http://crates.io/), and [gathered data](https://github.com/lqd/rustc-benchmarking-data/tree/main/results) for complete cargo builds including dependencies. I also gathered rustc self-profiling data for a higher-level view and profiled for sources of high memory usage. All of this was done in check, debug, and release modes, with varying degrees of parallelism. +We start by looking for what's slow. Looking at this holistically, from the crate-compile level, might provide new insights, especially since we've rarely done this before. I gathered the 1000 most popular crates from [crates.io](https://crates.io/), and [gathered data](https://github.com/lqd/rustc-benchmarking-data/tree/main/results) for complete cargo builds including dependencies. I also gathered rustc self-profiling data for a higher-level view and profiled for sources of high memory usage. All of this was done in check, debug, and release modes, with varying degrees of parallelism. From this high level view, we could see a few promising ways to move forward: diff --git a/content/en/blog/2023-09-18-rustls-and-rust-for-linux-funding-openssf.md b/content/en/blog/2023-09-18-rustls-and-rust-for-linux-funding-openssf.md index 5c4a67a4..f34e6890 100644 --- a/content/en/blog/2023-09-18-rustls-and-rust-for-linux-funding-openssf.md +++ b/content/en/blog/2023-09-18-rustls-and-rust-for-linux-funding-openssf.md @@ -27,4 +27,4 @@ The primary maintainer of [Rust for Linux](https://rust-for-linux.com/), Miguel We hope to see more public and private organizations who rely on open source critical digital infrastructure to step up and support it. If you or your organization would like to come on board as a funder of Prossimo, we would be excited to begin a conversation with you at . -[Internet Security Research Group (ISRG)](https://abetterinternet.org) is the parent organization of [Prossimo](http://memorysafety.org), [Let’s Encrypt](http://letsencrypt.org), and [Divvi Up](http://divviup.org). \ No newline at end of file +[Internet Security Research Group (ISRG)](https://abetterinternet.org) is the parent organization of [Prossimo](https://memorysafety.org), [Let’s Encrypt](https://letsencrypt.org), and [Divvi Up](https://divviup.org). \ No newline at end of file diff --git a/content/en/blog/2023-11-03-tectonics-recap.md b/content/en/blog/2023-11-03-tectonics-recap.md index 5f84636e..179b91af 100644 --- a/content/en/blog/2023-11-03-tectonics-recap.md +++ b/content/en/blog/2023-11-03-tectonics-recap.md @@ -27,4 +27,4 @@ We'd also like to thank our event sponsors, Ford Foundation, Google, Tweede golf Our next step for Tectonics will be to compile pages of notes from the day into a series of readouts that we'll publish in the weeks ahead. To be sure you receive these and other updates from ISRG, [subscribe to our newsletter](https://www.memorysafety.org/#:~:text=SIGN%20UP%20FOR%20THE%20PROSSIMO%20NEWSLETTER). -All of our work, including Tectonics, is made possible thanks to financial support from the people and companies who value better security and privacy for the Internet. [Internet Security Research Group (ISRG)](https://abetterinternet.org) is the parent organization of [Prossimo](http://memorysafety.org), [Let's Encrypt](http://letsencrypt.org), and [Divvi Up](http://divviup.org). ISRG is a 501(c)(3) nonprofit. If you'd like to support our work, please consider [getting involved](https://www.abetterinternet.org/getinvolved/), [donating](https://www.abetterinternet.org/donate/), or encouraging your company to [become a sponsor](https://www.abetterinternet.org/sponsor/). \ No newline at end of file +All of our work, including Tectonics, is made possible thanks to financial support from the people and companies who value better security and privacy for the Internet. [Internet Security Research Group (ISRG)](https://abetterinternet.org) is the parent organization of [Prossimo](https://memorysafety.org), [Let's Encrypt](https://letsencrypt.org), and [Divvi Up](https://divviup.org). ISRG is a 501(c)(3) nonprofit. If you'd like to support our work, please consider [getting involved](https://www.abetterinternet.org/getinvolved/), [donating](https://www.abetterinternet.org/donate/), or encouraging your company to [become a sponsor](https://www.abetterinternet.org/sponsor/). \ No newline at end of file diff --git a/content/en/blog/2023-12-28-EOY-letter-2023.md b/content/en/blog/2023-12-28-EOY-letter-2023.md index b01919ed..445f000e 100644 --- a/content/en/blog/2023-12-28-EOY-letter-2023.md +++ b/content/en/blog/2023-12-28-EOY-letter-2023.md @@ -17,11 +17,11 @@ We typically open our annual report with a letter from our Executive Director an One of the biggest observations I've made during Josh's absence is that all 23 people who work at ISRG fall into that class of folks. Of course I was a bit nervous as Josh embarked on his leave to discover just how many balls he has been keeping in the air for the last decade. Answer: it's a lot. But the roster of staff that we've built up made it pretty seamless for us to keep moving forward. -[Let's Encrypt](http://letsencrypt.org) is supporting 40 million more websites than a year ago, bringing the total to over [360 million](http://letsencrypt.org/stats). The engineering team has grown to 12 people who are responsible for our continued reliability and ability to scale. But they're not maintaining the status quo. Let's Encrypt engineers are pushing forward our expectations for ourselves and for the WebPKI community. We've added shorter-lived certificates to our 2024 roadmap. We're committing to this work because sub-10 day certificates significantly reduce the impact of key compromise and it broadens the universe of people who can use our certs. In addition, the team started an ambitious project to develop a new Certificate Transparency implementation because the only existing option cannot scale for the future and is prone to operational fragility. These projects are led by two excellent technical leads, Aaron Gable and James Renken, who balance our ambition with our desire for a good quality of life for our teams. +[Let's Encrypt](https://letsencrypt.org) is supporting 40 million more websites than a year ago, bringing the total to over [360 million](https://letsencrypt.org/stats). The engineering team has grown to 12 people who are responsible for our continued reliability and ability to scale. But they're not maintaining the status quo. Let's Encrypt engineers are pushing forward our expectations for ourselves and for the WebPKI community. We've added shorter-lived certificates to our 2024 roadmap. We're committing to this work because sub-10 day certificates significantly reduce the impact of key compromise and it broadens the universe of people who can use our certs. In addition, the team started an ambitious project to develop a new Certificate Transparency implementation because the only existing option cannot scale for the future and is prone to operational fragility. These projects are led by two excellent technical leads, Aaron Gable and James Renken, who balance our ambition with our desire for a good quality of life for our teams. -[Prossimo](http://memorysafety.org) continues to deliver highly performant and memory safe software and components in a world that is increasingly eager to address the memory safety problem. This was evidenced by participation at [Tectonics](https://tectonics.memorysafety.org/), a gathering we hosted which drew industry leaders for [invigorated conversation](https://www.memorysafety.org/blog/tectonics-recap/). Meanwhile, initiatives like our [memory safe AV1 decoder](https://www.memorysafety.org/initiative/av1/) are in line to replace a C version in Google Chrome. This change would improve security for billions of people. We're grateful to the community that helps to guide and implement our efforts in this area, including Dirkjan Ochtman, the firms Tweede golf and Ferrous Systems, and the maintainers of the many projects we are involved with. +[Prossimo](https://memorysafety.org) continues to deliver highly performant and memory safe software and components in a world that is increasingly eager to address the memory safety problem. This was evidenced by participation at [Tectonics](https://tectonics.memorysafety.org/), a gathering we hosted which drew industry leaders for [invigorated conversation](https://www.memorysafety.org/blog/tectonics-recap/). Meanwhile, initiatives like our [memory safe AV1 decoder](https://www.memorysafety.org/initiative/av1/) are in line to replace a C version in Google Chrome. This change would improve security for billions of people. We're grateful to the community that helps to guide and implement our efforts in this area, including Dirkjan Ochtman, the firms Tweede golf and Ferrous Systems, and the maintainers of the many projects we are involved with. -Our newest project, [Divvi Up](http://divviup.org), brought on our first two subscribers in 2023. [Horizontal](https://wearehorizontal.org/index), a small international nonprofit serving Human Rights Defenders, will be [collecting privacy-preserving telemetry metrics](https://divviup.org/blog/horizontal/) about the users of their Tella app, which people use to document human rights violations. Mozilla is using Divvi Up to [gain insight into aspects of user behavior](https://divviup.org/blog/divvi-up-in-firefox/) in the [Firefox ](https://www.mozilla.org/en-US/firefox/new/)browser. It took a combination of focus and determination to get us to a production-ready state and our technical lead, Brandon Pitman played a big role in getting us there. +Our newest project, [Divvi Up](https://divviup.org), brought on our first two subscribers in 2023. [Horizontal](https://wearehorizontal.org/index), a small international nonprofit serving Human Rights Defenders, will be [collecting privacy-preserving telemetry metrics](https://divviup.org/blog/horizontal/) about the users of their Tella app, which people use to document human rights violations. Mozilla is using Divvi Up to [gain insight into aspects of user behavior](https://divviup.org/blog/divvi-up-in-firefox/) in the [Firefox ](https://www.mozilla.org/en-US/firefox/new/)browser. It took a combination of focus and determination to get us to a production-ready state and our technical lead, Brandon Pitman played a big role in getting us there. We hired Kristin Berdan to fill a new role as General Counsel and her impact is already apparent within our organization. She joins Sarah Heil, our CFO, Josh, and me in ISRG leadership. diff --git a/content/en/blog/2024-09-10-Rav1d-Performance-Optimization.md b/content/en/blog/2024-09-10-Rav1d-Performance-Optimization.md index 864c9bbb..95a57f48 100644 --- a/content/en/blog/2024-09-10-Rav1d-Performance-Optimization.md +++ b/content/en/blog/2024-09-10-Rav1d-Performance-Optimization.md @@ -230,6 +230,6 @@ Inlining was a small source of differences between our Rust implementation and t After applying the optimization techniques discussed here (and more), we have reduced performance overhead from a peak of about 11% when we started optimizing the safe Rust implementation in earnest to under 6% now on x86_64. We believe there is still room for further improvement, both in how the compiler optimizes Rust and in our implementation details. This will necessarily be a process of small, incremental improvements, as our profiling now indicates that the remaining overhead is spread roughly evenly across the largest, most complex functions in ```rav1d```. -[^1]: http://download.opencontent.netflix.com.s3.amazonaws.com/AV1/Chimera/Old/Chimera-AV1-8bit-1920x1080-6736kbps.ivf +[^1]: https://s3.amazonaws.com/download.opencontent.netflix.com/AV1/Chimera/Old/Chimera-AV1-8bit-1920x1080-6736kbps.ivf *We'd like to thank Amazon Web Services, Sovereign Tech Fund, and Alpha-Omega for supporting the development of this work. If you want to learn more about ```rav1d``` or start using it, check it out on [GitHub.](https://github.com/memorysafety/rav1d/)* \ No newline at end of file diff --git a/content/en/blog/2025-09-03-rustls-joins-rust-foundation-rust-innovation-lab.md b/content/en/blog/2025-09-03-rustls-joins-rust-foundation-rust-innovation-lab.md index 425cd9ac..9dc3498e 100644 --- a/content/en/blog/2025-09-03-rustls-joins-rust-foundation-rust-innovation-lab.md +++ b/content/en/blog/2025-09-03-rustls-joins-rust-foundation-rust-innovation-lab.md @@ -18,4 +18,4 @@ In our opinion, Rustls is now both the fastest and the safest TLS library out th With features and performance in a good place, the priorities for Rustls are responsiveness to the needs of potential adopters and stable support for long-term maintenance. The Rust Innovation Lab will help Rustls pursue those priorities and more. We couldn't be happier to see it! -We'd like to thank Joe Birr-Pixton, the creator of Rustls, for our years of great collaboration. We'd also like to thank the organizations who supported our vision and investment: the Sovereign Tech Agency, Google, [Fly.io](http://fly.io), AWS, Alpha-Omega, and craig newmark philanthropies. \ No newline at end of file +We'd like to thank Joe Birr-Pixton, the creator of Rustls, for our years of great collaboration. We'd also like to thank the organizations who supported our vision and investment: the Sovereign Tech Agency, Google, [Fly.io](https://fly.io), AWS, Alpha-Omega, and craig newmark philanthropies. \ No newline at end of file diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 91f01df2..a42b7b0d 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -9,7 +9,7 @@

    {{ .Site.Params.address_line_1}}
    {{ .Site.Params.address_line_2}}

    {{ i18n "footer_mailing" }}

    - + PO Box 18666, Minneapolis, MN