文章摘要
Tor项目正用Rust语言重写Tor网络核心组件Arti,以解决C语言代码存在的内存安全问题。最新发布的Arti 1.8.0版本改进了电路超时机制,采用基于使用情况的随机超时策略,取代原有的固定超时模式,降低了用户行为被追踪的风险。此外还新增了洋葱服务迁移工具,帮助运营商平滑过渡到新系统。
文章总结
Tor项目推进Rust化进程:Arti 1.8.0版本发布
Tor网络自21世纪初运行至今,其核心代码一直基于C语言构建。但C代码库存在缓冲区溢出、释放后使用(use-after-free)和内存损坏等安全隐患。为此,Tor项目启动了名为Arti的Rust重写计划,利用Rust语言的内存安全特性从根本上解决这些问题。
最新发布的Arti 1.8.0版本主要带来以下改进:
- 电路超时机制重构
- 原系统采用单一"电路脏超时"(CDT)计时器,存在流量模式可预测风险
- 新版实现基于使用情况的分离式计时机制: • 独立控制新连接接收时机 • 随机化空闲电路关闭时间
- 有效降低通过超时行为进行指纹识别的风险
- 洋葱服务迁移工具
- 新增实验性命令
arti hsc ctor-migrate - 支持将受限发现密钥从C版Tor迁移至Arti密钥库
- 自动化完成客户端授权密钥转移,无需手动操作
此外,该版本还在路由架构、协议实现、目录缓存支持和OR端口监听配置等方面进行了优化。此次升级标志着Tor网络向更安全、更现代化的架构迈出重要一步。
(注:原文中关于Helium浏览器的推荐阅读部分与主题无关,已作删减处理)
评论总结
以下是评论内容的总结:
支持Rust的观点
- 认为Rust适合项目需求,不同工具适用于不同场景
"If Rust helps with their pains and they like Rust this seems very sensible."
"That's exactly why we have different languages and tools..."
- 认为Rust重写是成功的,带来了开发效率和安全性
"Their experience with Rust was positive...if it compiles it works"
"better portability...attracting more contributors"
对Rust的质疑
- 认为Rust不会提升Tor的性能
"I don't think merely moving to Rust makes Tor faster"
"not entirely convinced that Rust is really better than C"
- 认为Rust学习曲线陡峭,像"新企业级Java"
"I don't want to learn everything about Rust"
"It is the new enterprise Java boilerplate BS"
其他替代方案讨论
- 建议使用Go语言
"Why not Go? It's more portable"
"There are others like Go"
项目背景补充
- 指出重写始于2020年,已取得进展
"This rewrite started in 2020...released Arti 1.0 in 2022"
"versions 1.6,1.7 and 1.8 were released in the last 3 months"
延伸讨论
- 希望Mozilla继续在Firefox中使用Rust
"I still wish Mozilla had kept oxidizing Firefox"
- 提到项目资金来自Zcash社区资助
"funded by Zcash Community Grants"
- 关于Tor指纹识别的技术讨论
"Tor without JS was the only...completely fingerprint resistant"