Site icon 暗网下

一台会“遗忘”的服务器:探索Tor的无状态中继

Tor网络的核心目标是保护用户隐私,让任何人——包括记者、活动人士或举报者——都能在不被追踪的情况下上网。网络设计确保没有单一节点或运营商能知道谁在和谁通信。然而,现实中运行Tor中继节点(relay)面临巨大风险:服务器可能被执法部门扣押、突袭,甚至物理访问。历史上,奥地利、德国、美国、俄罗斯等地都发生过类似事件。一旦服务器被没收,里面存储的密钥、日志或其他数据就可能成为证据,破坏整个网络的信任基础。

为了解决这个问题,有人提出让中继节点变得“无状态”(stateless)。简单说,就是让服务器不保存任何持久化数据,每次启动都从一个已知的、固定的镜像开始运行,就像Tails操作系统那样,一切都在内存(RAM)中完成,重启后所有临时状态自动消失。

本文基于Tor项目官方博客的最新文章,探讨了无状态、无盘操作系统如何从固件到用户空间提升中继服务器的安全性,重点关注软件完整性和抵御物理攻击的能力。这项工作源于意大利Osservatorio Nessuno运行出口中继服务器的经验。中继服务器的管理因具体情况、技术能力、预算和管辖范围而异。我们希望引发讨论,而非提出单一模型。

什么是无状态中继,为什么它更安全?

传统中继节点会把身份密钥(identity key)、带宽历史等信息存放在磁盘上。这些数据让节点能在网络中积累“信誉”(如获得Guard或Exit标志,提高流量分配)。但磁盘数据正是物理攻击的最大弱点:被扣押后,攻击者可以直接复制文件,提取密钥。

无状态系统则彻底反其道而行之:

这种思路并非全新。早在2015年,就有Tor-ramdisk项目——一个基于uClibc的微型Linux发行版,专门设计成完全在内存中运行Tor中继。

Tor中继为什么难以实现无状态?

难点主要在于“信誉”和“状态”:

  1. 长期身份密钥:Tor中继的ed25519身份密钥决定了节点在网络中的身份。丢失它,就得从零开始积累带宽权重。密钥必须能“活过”多次重启,却又不能轻易被提取。
  2. 状态文件:Tor会维护带宽使用历史等临时数据。每次丢弃这些数据会影响性能。
  3. 内存限制:完全无磁盘意味着不能使用交换分区(swap)。如果内存不足,Linux内核的OOM Killer会直接杀死进程。实际测试显示,Tor在繁忙的Guard中继上可能占用约5.7GB内存,主要因为目录缓存对象的高频创建与销毁导致内存碎片。通过把glibc内存分配器换成jemalloc或mimalloc,能把占用降到1.2GB以下,大幅改善稳定性

TPM:硬件级密钥保护的核心工具

解决密钥持久化问题的关键硬件是TPM(Trusted Platform Module,可信平台模块)。这是主板上的一颗独立加密芯片,能存储密钥并执行运算,却从不把私钥暴露给操作系统。

TPM有两个强大功能:

使用TPM时,需要提前决定信任哪些软件状态。更新内核或引导程序后,测量值变化,必须重新密封密钥。这也是目前最大的运维挑战之一。

现有几种实现方案

不同运营商根据安全需求和复杂度,选择不同路径:

尚未解决的技术难题

未来的技术方向

研究者们正在推动更多创新:

总之,“暗网下/AWX”认为,无状态中继不是一个单一方案,而是一系列权衡:从最简单的内存运行,到结合TPM和远程证明的硬件绑定方案。它在提升物理安全、强制不可变性和可审计性的同时,也带来了运维复杂度和性能挑战。Tor社区希望通过持续讨论和实验,让更多运营商能根据自身环境,选择适合的路径,最终让整个网络对扣押和物理攻击更具韧性。

Tor项目在文章中表示,这项工作始于2025年的Tor社区大会,目前仍在进行中。如果用户正在运行中继服务器、参与Tor工具的开发,或者思考过任何这些未解决的问题,Tor项目都非常希望听到大家的意见。

Exit mobile version