Join us

Tor Goes Rust: Introducing Arti, a New Foundation for the Future of Tor

Tor Goes Rust: Introducing Arti, a New Foundation for the Future of Tor

TL;DR

The development of "Arti," a Rust-based Tor implementation funded by Zcash, aims to enhance security and efficiency by addressing the limitations of the current C-based Tor.

Key Points

Highlight key points with color coding based on sentiment (positive, neutral, negative).

Arti is a new implementation of Tor written in Rust, aimed at addressing the limitations of the current C-based Tor, which is error-prone and complex.

The existing C code for Tor is difficult to manage due to its complexity and lack of modularity.

The decision to fully rewrite Tor in Rust, rather than incrementally replacing C code, was made because the existing C modules are not well-separated.

The development of Arti is structured in phases, with goals to achieve a production-quality client implementation.

Arti can currently connect to the Tor network and act as a SOCKS proxy, but it is not yet suitable for real privacy needs.

The Tor Project is stirring the pot with "Arti," a new iteration of Tor built using Rust. This initiative, supported by Zcash Open Major Grants, aims to address the headaches of the old C-based Tor. If you've ever tangled with that version, you know it's a bit of a mess with its error-prone and convoluted code. Rust, known for its safety and efficiency, is expected to reduce bugs and improve security. The hope is that Rust's expressiveness and strong guarantees will speed up development, making life a tad easier for everyone involved.

The current C code isn't exactly easy. It's riddled with issues, especially when it comes to multithreaded cryptography. Thread-safety problems can creep in, leading to those annoying bugs and security vulnerabilities. But Rust's type system acts like a safety net, helping to avoid these pitfalls and making it simpler to write safe concurrent code. This means Arti's circuit cryptography can be multicore-ready right from the start, without too much extra hassle.

So, why a complete rewrite in Rust? The C codebase is so tangled that replacing it piece by piece just wouldn't cut it. A full overhaul allows for a more modular and embeddable design, addressing design issues that were a nightmare in C. Arti aims to be a flexible, cleaner version, with the potential to be embedded into other applications. Right now, Arti can connect to the Tor network, get a view of the Tor directory, and make anonymized connections. But don't get too excited yet - it's not ready for real privacy needs, missing some key security features.

The roadmap for Arti is laid out in phases, focusing on improving security, enhancing embedding features, and eventually reaching a production-quality client implementation. Down the line, they're planning to add anti-censorship features and support for onion services. Meanwhile, the old C version of Tor isn't going anywhere just yet. It'll still be supported and developed, but the spotlight is gradually shifting to Rust. The endgame is to have the Rust version fully take over once it's up to snuff. And hey, if you're a developer with a knack for Rust or Tor, they're welcoming contributions to help push Arti forward.

Stakeholder Relationships

An interactive diagram mapping entities directly or indirectly involved in this news. Drag nodes to rearrange them and see relationship details.

Organizations

Key entities and stakeholders, categorized for clarity: people, organizations, tools, events, regulatory bodies, and industries.
Tor Project Non-profit Organization

Responsible for the development and transition of Tor from a C-based implementation to Rust with the creation of Arti.

Zcash Open Major Grants (ZOMG) Funding Organization

Provided financial support for the development of Arti, enabling the project to progress and succeed.

Tools

Key entities and stakeholders, categorized for clarity: people, organizations, tools, events, regulatory bodies, and industries.
Arti Software Tool

A new implementation of Tor written in Rust, designed to improve safety, efficiency, and security over the existing C-based Tor.

Timeline of Events

Timeline of key events and milestones.
2021-2022 Arti development funded

Significant time devoted to Arti development due to funding from Zcash Open Major Grants.

End of October 2021 Arti 0.0.1 goal

Goal for Arti 0.0.1, a minimal secure client.

Mid March 2022 Arti 0.1.0 goal

Goal for Arti 0.1.0, suitable for experimental embedding.

Mid September 2022 Arti 1.0.0 goal

Goal for Arti 1.0.0, the initial stable release.

End of October 2022 Arti 1.1.0 goal

Goal for Arti 1.1.0, focusing on anti-censorship features.

End of 2023 Arti ~1.2.0 goal

Goal for Arti ~1.2.0, to support onion services.

Mid 2024 Arti ~2.0.0 goal

Goal for Arti ~2.0.0, achieving feature parity with C Tor as a client.

Enjoyed it?

Get weekly updates delivered straight to your inbox, it only takes 3 seconds!

Subscribe to our weekly newsletter VarBear to receive similar updates for free!

What is FAUN.news()?

Let's keep in touch!

Stay updated with my latest posts and news. I share insights, updates, and exclusive content.

Unsubscribe anytime. By subscribing, you share your email with @varbear and accept our Terms & Privacy.

Give a Pawfive to this post!


Only registered users can post comments. Please, login or signup.

Start writing about what excites you in tech — connect with developers, grow your voice, and get rewarded.

Join other developers and claim your FAUN.dev() account now!

FAUN.dev()
FAUN.dev()

FAUN.dev() is a developer-first platform built with a simple goal: help engineers stay sharp without wasting their time.

Avatar

VarBear #SoftwareEngineering

FAUN.dev()

@varbear
SWE Weekly Newsletter, Varbear. Curated Programming news, tutorials, tools and more!
Developer Influence
1

Influence

1

Total Hits

61

Posts