Tor: The Second-Generation Onion Router

Tor: The Second-Generation Onion Router

作者:R Dingledine ,N Mathewson ,P Syverson 出版源:《Journal of the Franklin Institute》 , 2004

一、Tor是什么Tor一种基于电路的低延迟匿名通信服务。第二代洋葱路由系统通过添加完美的前向匿名,拥塞控制,目录服务器,完整性检查,可配置的退出策略以及通过聚合点实现位置隐藏服务的实用设计来解决原始设计中的限制。

二、Tor设计目标

Babel、Mix-masterMixminion

较大和可变的延迟为代价实现匿名化

Anonymizer

易于分析,但用户必须信任匿名代理

Crowds

任何节点都可以读取用户的流量

Herbivore、P5 

广播响应来隐藏发起者

Tor在匿名性,可用性和效率之间提供合理的权衡,实现通信的发起者与接受者被匿名保护。 在文中引导Tor演变目标: 可部署性、可用性、灵活性和设计简单。

补充:Tor网络工作原理

三、Tor设计

每个洋葱路由器都与每个其他洋葱路由器(OR)保持TLS 连接。每个用户运行称为洋葱代理(OP)的本地软件来获取目录,在网络上建立电路,以及处理来自用户应用程序的连接。这些OP接受TCP流并在电路中复用它们。电路另一侧的OR连接到请求的目的地并中继数据。 OR维护有两个key: (1)长期身份key (2)短期洋葱key

Tor数据单元

中继单元

为了降低性能的开销,Tor在建立连接时使用RSA进行加密,而在传输数据的时候则使用速度较快的AES加密。 DH算法中gx为前半部分,gy为后半部分。 会话密钥k=gxgy。

           Alice构建了一个两跳电路并开始获取网页。

中继数据: 链路已建立好,与链路上每个OR分享密钥。 OR接到relay后,查找此数据包对应链路,并用对应会话密钥解密中继头部和有效载荷。 若是从A发送过来的,OR检查该数据包摘要是否有效。若有效,接收并处理中继单元。OR找到circID和下一跳OR地址,发送解密后的数据包给下一跳OR。OR在解密过程中,还要对数据包进行填充。

电路拆除: A发送了destroy数据包,电路上每个OR收到后,关闭电路上的所有数据流,并发送一个新的destroy数据包给下一跳。同建立一条链路一样,链路的拆除也是逐步进行的。A若想改变电路,A会给链路中某个OR发送一个relay truncate数据包,OR收到后,向它的下一跳转发一个destroy命令数据包,并向A回复一个relay truncated数据包,这样后面的链路就会终止。

打开和关闭数据流:当某用户的应用程序想要与给定地址和端口建立TCP连接,会要求OP通过socks建立连接。OP选一新的(或根据需要创建一条)电路,然后在电路上选一个合适的OR作为出口节点。OP通过使用新的随机身份标识符将中继开始单元发送到出口节点来打开流。一旦出口节点连接到远程主机,它就会以中继连接的单元响应。OP收到后发送socks回复通知应用程序成功。OP接受来自应用程序TCP流的数据,将其打包到中继数据单元中,并将这些单元沿着电路发送到所选的OR。

数据流的完整性检验:旧的洋葱路由设计使用了流密码而没有进行完整性检查。 Tor仅在每条数据流的边缘进行完整性检查。(在我们的漏管电路拓扑中,流的边缘可能是电路中的任何跳)。

速率限制和公平:Tor服务器使用令牌桶方法来强制执行传入字节的长期平均速率,同时仍允许短期突发超过允许的带宽。 目前常用流量限制方法: (1)漏桶算法 (2)令牌桶算法

拥塞控制:(1)电路级限制 为了控制电路的带宽,每个OR跟踪两个窗口。 打包窗口 传送窗口 (2)流级别限制 OR和OP使用relay sendme单元来实现跨电路的各个流的端到端流控制。

四、集合点和位置隐藏服务

集合点是Tor网络中位置隐藏服务(也称为响应者匿名)的构建块。位置隐藏服务允许提供TCP服务,例如网络服务器,而不会泄露他的IP地址。 针对位置隐藏服务的设计具有以下目标: 访问控制、健壮性 、涂抹阻力(smear-resistance) 、应用程序透明度。

五、其他设计决定

1 拒绝服务 OR可以要求客户在开始新的TLS握手或接受创建单元时令牌易于验证且生产计算成本高,这种方法就限制了攻击乘数。OR还可以限制它们接受创建单元和TLS连接的速率。

2 退出策略和滥用 每个洋葱路由器的退出策略都描述了路由器将连接到哪些外部地址和端口。OR也可能能够对客户端进行身份验证防止退出滥用而不伤害匿名。

3 目录服务器 Tor网络中是将部分安全可靠的服务器设置为目录服务器。

六、攻击和防御(部分)

1 用户指纹 :每个用户在浏览网页时的习惯是不同的,譬如屏幕尺寸,当地时间,甚至鼠标滚轮的速度,这些信息构成了一个用户的指纹。禁止读取浏览器相关信息来阻止用户隐私的泄露。

2 诽谤(smear)攻击 :攻击者可能为了社会上不赞成的行为适用Tor网络,给他带来坏的名声使得被停止,出口退出策略减少这种滥用的可能性。

3 破坏目录服务器 :如果有一些目录服务器消失,其他目录服务器仍然决定一个有效的目录。只要任何目录服务器仍在运行,它们仍将生成一致目录并广播对网络视察。