历史背景

1995年,美国军方希望军事情报机构可以让情报人员的网上活动不被敌对国进行监控,从而可以秘密的进行开源情报收集。于是,美国海军研究实验室的科学家开始开发一种匿名技术,可以避免人们的行迹在Internet上被追踪到。他们把这个技术叫做“洋葱路由”。“洋葱路由”利用P2P网络,把网络流量随机的通过P2P的节点进行转发,这样可以掩盖源地址与目标地址的路径。使得在Internet上难以确定使用者的身份和地址。

可以看出Tor最初始并非为保护大众的隐私而开发,Tor的大众化应用是由于Tor网络如果单纯的只提供给情报部门使用的话反而使得流量不能安全(Tor网络上的所有流量都是情报部分的机密数据, 人们一看到来自这个系统的流量就知道,啊,这是一个CIA的间谍)。所以,为了将情报部门的流量进行混淆就将Tor开放给大众,这样情报流量就很好的隐藏了。

匿名原理

首先,了解一下日常生活中我们的上网流量是怎么样进行路由处理的,简化版上网流量传输模型如下(PC/客户端 ==> 家庭路由器 ==> 骨干路由器 ==> 数据源/网站服务器):

流量报文中包含了的请求来源和目的地,它才能将网站服务器的响应准确的返回你的上网PC。这样的话,从网络截取的流量就可以轻松的追踪到你的IP地址,进一步通过电信局的IP分配记录就可以找到真实的你“查水表”了。

而洋葱路由器要解决正是为了解决上述的问题:中间人即使在Internet上截获通信的流量也无法判定通信的源头与目的地。

洋葱路由的原理就好像你送一封匿名信,不是自己送或者通过邮差送,而是大街上随便找一个不认识的人让他帮你送。这样收信方就很难往回找到你。

实现原理描述:Tor网络由大量的志愿者贡献自己的PC/服务器运行洋葱路由协议的节点(node)而组成,Tor客户端(如嵌入Tor的浏览器)随机的从Tor网络中选取3台路由器形成一个私有网络路径传输加密的流量,每台节点路由器只知道数据送往的一下跳,而不知道发送流量的来源。这样就保证了这3个节点没有谁知道完整的流量传输路径。也就是说,Tor网络将流量的源地址与目的地址进行了隔断,从而无法根据截取的流量进行源地址追踪。