转载

程序员如何在自己的软件中使用Tor Network(Tor network API)?

最近在搜索翻墙软件时经常会发现Tor Network的字眼。回想起近年来的很多著名的黑客攻击事件的描述中很多也出现了Tor Network。那么,Tor Network究竟是个什么东西呢?黑客是如何利用Tor Network进行黑客攻击的?我们程序员是否也可以在自己的软件中使用Tor Network呢?

首先来看看 维基百科 是如何介绍Tor Network的:

Tor(The Onion Router,洋葱路由器)是实现匿名通信的自由软件。Tor是第二代洋葱路由的一种实现,用户通过Tor可以在因特网上进行匿名交流。最初该项目由美国海军研究实验室赞助。2004年后期,Tor成为电子前哨基金会(EFF)的一个项目。2005年后期,EFF不再赞助Tor项目,但他们继续维持Tor的官方网站。

由于Tor可以匿名进行TCP传输,这就导致了被滥用的可能。路由器存放有一个“出口政策”(exit policy),内有各种地址、端口的组合规定,通过这个来区别哪些传输可以通过这个节点而离开Tor网络,这样就可能防范许多滥用的可能。潜在的滥用包括:

  • P2P:抛开合法性不谈,如果通过Tor网络来进行大量数据的传输,这就有些不礼貌了,毕竟洋葱路由器是由志愿者,花费自己的带宽创建起来的。
  • E-mail:匿名的SMTP很容易导致垃圾邮件的产生,一般Tor节点的“出口政策”,都拒绝对外连接到端口25(SMTP的端口)。
  • 蓄意破坏:由于不会被识破,用户有时会利用Tor来对协作网站进行破坏,这导致许多的网站,包括维基百科[13],决定部分限制对Tor的通讯。

听起来Tor是一款很强悍的黑客工具,但这只是人们对其使用的一个方面。一款软件的好坏和意义并不是它自身决定的,而在于使用它的人。就像是一把斧头,既可以帮助人砍木头,也能用来伤害人。

Tor Network是一个开放的网络,它有各种API可以使用。程序员可以利用这些接口在自己的程序中调用这些接口。现成的api接口有这样几种:

  • Python:
    • Stem
    • Txtorcon
    • TorCtl (不推荐使用)
  • Java:
    • JTorCtl

当然,如果你想获得更多的编程自由和更大的权限,你可以直接研究 Tor Network控制协议 。

Tor Network的官方网站是 https://www.torproject.org 。目前国内用户需要翻墙才能访问。

[原创,CC Licensed]

正文到此结束
Loading...