洋葱路由(英语:Onion routing)为一种在电脑网络上匿名沟通的技术。在洋葱路由的网络中,消息一层一层的加密包装成像洋葱一样的数据包,并经由一系列被称作洋葱路由器的网络节点发送,每经过一个洋葱路由器会将数据包的最外层解密,直至目的地时将最后一层解密,目的地因而能获得原始消息。而因为透过这一系列的加密包装,每一个网络节点(包含目的地)都只能知道上一个节点的位置,但无法知道整个发送路径以及原发送者的地址。[1]

发明与实现

1990年代中期,美国海军研究实验室的研究员保罗‧西维尔森(Paul Syverson)、麦可‧里德英语G. Mike Reed和大卫‧戈尔德施拉格(David Goldschlag)为了保护美国在线情报系统而开发了洋葱路由[2][3][4]。其后国防高等研究计划署接手该项目继续开发,并在1998年获得海军的专利[3][5][6]。2002年电脑科学家罗杰‧丁高戴恩(Roger Dingledine)和尼克‧马修森(Nick Mathewson)加入了西维尔森的项目,并开始开发Tor;Tor为“洋葱路由项目”(The Onion Routing project)的头字语,该项目后来成为规模最大的洋葱路由实现并广为人知。之后美国海军研究实验室将Tor以自由软件授权的方式公开了原始码[4][7][8],丁高戴恩、马修森以及其他五位成员在2006年成立了名为“The Tor Project”的非营利组织,并获得包含电子前哨基金会在内的几个组织的财政资助英语Fiscal sponsorship[9][10]

数据结构

Thumb
一个在洋葱路由网络中传递的数据包例子。发送者首先将数据包发送给路由器A,解密了蓝色一层,并发现要传给B,而数据包发送至B时又解密了绿色一层,同理再传给C,而C在解密了红色一层后得到原始要发送的消息并将之传给目的地。

被称作洋葱路由的原因在于消息一层一层的加密包装成被称作洋葱数据包的数据结构,层数取决于到目的地中间会经过的节点数,每经过一个节点层会将数据包的最外层解密,因此任一个节点都无法同时知晓这个消息最初与最终的目的地,使发送者达到匿名的效果。[11]

数据包的建立与发送

为了发送洋葱数据包,发送消息者会从“目录节点”(directory node)提供的列表中选取一些节点,并以这些规划出一条被称作“链”(chain)或“线路”(circuit)的发送路径,这条路径将为传输数据包所用。为了确保发送者的匿名性,任一节点都无法知道在链中自己的前一个节点是发送者还是链上的另一节点;同理,任一节点也无法知道在链中自己的下一节点是目的地还是链上另一节点。只有链上的最后一个节点知道自己是链上最终节点,该节点被称作“出口节点”(exit node)。[11]

洋葱路由网络使用非对称加密,发送者从目录节点获得一把公开密钥,用之将要发送的消息加密并发送给链上的第一个节点,该节点又被称作入口节点(entry node);其后与之建立连线和共享密钥。建立连线后发送者就可以通过这条连线发送加密过的消息至链上的第二个节点,该消息将只有第二个节点可以解密;当第二个节点收到此消息后,便会与前一个节点也就是入口节点同样的建立连线,使发送者的加密连线延伸到它,但第二个节点并不晓得前一个节点在链中的身份。之后按照同样原理,发送者通过入口节点和第二个节点的这条加密连线将只有第三个节点能解密的消息发送给第三个节点,第三节点同样的与第二个节点建立连线;借由重复相同的步骤,发送者能产生一条越来越长的连线,但在性能上仍有限制。[11]

当链上的连线都建立后,发送者就可以透过其发送资料并保持匿名性。当目的地回送资料时,链上的节点会透过同一条连线将资料回传,且一样对资料层层加密,但加密的顺序与发送者完全相反;原发送者收到目的地回传的资料时,将仅剩最内一层加密,此时对其解密就可拿到目的地回送的消息。[11]

弱点

计时分析

传统互联网不被认为具有匿名性的一个理由为互联网服务供应商具有纪录和追踪各电脑间的连线能力;例如当有人存取一个特定网站时,往来的资讯内容如密码等,虽然能透过像是HTTPS等加密连线方式保护让其他人无法得知内容,但是连线本身却仍会有纪录,包含何时建立连线,多少资料量被发送等。洋葱路由虽然能建立并隐藏两电脑之间的连线,使两者之间并无一个可分辨的直接连线,但仍会有上述的连线纪录问题。流量分析英语Traffic analysis可借由搜索连线纪录的连线时间和资料传输量来试图判别潜在的一对发送者与接收者;例如当有人发送51KB的资料到一个未知的电脑,三秒后另一未知的电脑发送51KB的资料给一个特定的网站,则可以推断此人可能与该网站曾建立连线[12][13]。此外还有一些原因可以让流量分析更加有效,包含节点的损坏或离开网络[13],以及当链已经因为定期重建而改变,但有些链上节点却仍在追踪此前建立的会话等。[14]

大蒜路由是洋葱路由的一种变体,其结合了I2P网络并将多份消息加密打包在一起,使其更难被攻击者以流量分析的方式破解。[15]

出口节点漏洞

虽然消息在洋葱路由网络中被层层加密,但是在出口节点时,该节点会把最后一层解密并将原始消息传给接收者;因此若出口节点遭到攻击或是受控制,则原始的消息将会被截取[16]瑞典研究员丹‧伊格史塔德(瑞典语Dan Egersta)曾用此方式获得了超过100封寄给外国大使馆电邮密码[17]。出口节点漏洞的原理与未加密无线网络很类似,后者为用户将未加密的资料在无线网络上传送时可能中途被其他人截走;这两种问题都可以透过端对端加密连线SSLHTTPS等方式解决。[18]

相关条目

参考资料

外部链接

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.