β

Tor网络Python接口工具Stem的几个替代用法

程序师 309 阅读

Stem是Tor netword的一个Python 控制类库,也就是Tor的Python语言接口API。程序员可以通过Python编程,利用Tor匿名网络来传递自己的隐蔽信息。需要注意的是,Tor在中国被许多人用于突破防火长城,这主要是因为中国屏蔽了大量的海外网站和服务器。Tor会自动检测节点是否可达目标地址。如果返回错误无法到达,它会自动更换节点。相应地,这种技术也可以用在中国境外模拟中国境内的节点,以访问一些境外无法访问的内容。

Stem所需的Python版本最低是Python 2.6,它还兼任Python3.x版本。

但很多时候你并不一定需要使用一个编程类库来和Tor网络交互,有四种方法你可以直接通过命令行来和Tor网络交互。

你可以使用ControlPort

使用ControlPort是最简单的利用 Telnet 和Tor网络交互的方法。这种方法在连接后需要安全认证。

% cat ~/.tor/torrc
ControlPort 9051

% telnet localhost 9051
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
AUTHENTICATE
 OK
GETINFO version
-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc)
 OK
QUIT
 closing connection
Connection closed by foreign host.

你可以使用ControlSocket

ControlSocket是基于文件的socket交互,所以,你可以是 socat 连接它..

% cat ~/.tor/torrc
ControlSocket /home/atagar/.tor/socket

% socat UNIX-CONNECT:/home/atagar/.tor/socket STDIN
AUTHENTICATE
 OK
GETINFO version
-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc)
 OK
QUIT
 closing connection

你可以使用cookie认证

Cookie认证的意思就是说你的信用凭证依赖于Tor DataDirectory 里的一个文件的内容。你可以通过调用 PROTOCOLINFO 来了解Tor的更多认证方法。

% cat ~/.tor/torrc
ControlPort 9051
CookieAuthentication 1

% telnet localhost 9051
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
PROTOCOLINFO
-PROTOCOLINFO 1
-AUTH METHODS=COOKIE,SAFECOOKIE COOKIEFILE="/home/atagar/.tor/control_auth_cookie"
-VERSION Tor="0.2.5.1-alpha-dev"
 OK

Cookie认证有两个小的工具: COOKIE SAFECOOKIE 。下面我们演示的是使用 COOKIE 。而使用 SAFECOOKIE 需要更多的技术知识,牵涉更多的问题。

我们需要是 hexdump 命令来进行认证…

% hexdump -e '32/1 "%02x""\n"' /home/atagar/.tor/control_auth_cookie
be9c9e18364e33d5eb8ba820d456aa2bc03444c0420f089ba4569b6aeecc6254

% telnet localhost 9051
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
AUTHENTICATE be9c9e18364e33d5eb8ba820d456aa2bc03444c0420f089ba4569b6aeecc6254
 OK
GETINFO version
-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc)
 OK
QUIT
 closing connection
Connection closed by foreign host.

使用密码认证

Tor的另外一个认证方法就是使用密码。你需要让Tor来hash你的密码,然后…

% tor --hash-password "my_password"
:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF

其余的就很简单了

% cat ~/.tor/torrc
ControlPort 9051
HashedControlPassword 16:E600ADC1B52C80BB6022A0E999A7734571A451EB6AE50FED489B72E3DF

% telnet localhost 9051
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
AUTHENTICATE "my_password"
 OK
GETINFO version
-version=0.2.5.1-alpha-dev (git-245ecfff36c0cecc)
 OK
QUIT
 closing connection
Connection closed by foreign host.
作者:程序师
用程序师的眼光看世界
原文地址:Tor网络Python接口工具Stem的几个替代用法, 感谢原作者分享。

发表评论