web-dev-qa-db-ja.com

check.torproject.orgはTorを使用しているかどうかをどのようにして知るのですか?

次のURLの結果を見ていて、Tor ProjectのWebサイトがTorが使用されているかどうかを「知っている」方法を知りたいのですが。

https://check.torproject.org/?lang=en-US&small=1&uptodate=1

パケットスニファをセットアップしますが、出口ノードではないので、それが大きな違いをもたらすかどうかはわかりません。

42

1行で:すべての出口ノードのリストがあります( that のようなもの)。

より詳細な:

私はこれを見てきました post は、phpでTor接続を検出する方法を示しています

function IsTorExitPoint(){
    if (gethostbyname(ReverseIPOctets($_SERVER['REMOTE_ADDR']).".".$_SERVER['SERVER_PORT'].".".ReverseIPOctets($_SERVER['SERVER_ADDR']).".ip-port.exitlist.torproject.org")=="127.0.0.2") {
        return true;
    } else {
       return false;
    } 
}

function ReverseIPOctets($inputip){
    $ipoc = explode(".",$inputip);
    return $ipoc[3].".".$ipoc[2].".".$ipoc[1].".".$ipoc[0];
}

良いリファレンスはそれが何をしているのかを説明しています:

更新:

Torの公式 doc より、exitnodes ip listをテストする古い方法の欠点を軽減するTorDNSELメソッドについて説明します。

接続がTorノードからのものかどうかを判断することは、さまざまな理由で役立ちます。特定のIPアドレスがTor出口であるかどうかを判断する初期の試みは、ディレクトリを使用してIPアドレスと出口ポリシーを照合しました。このアプローチには、TorルーターがORポートがリッスンするポートとは異なるIPアドレスからトラフィックを終了するときの偽陰性など)のような多くの欠点がありました。Tor DNSベースの出口リストは、これらの問題は、質問に答えるためのシンプルなインターフェースを提供します:これはTor出口ですか?

Rubyには、このテクニックを実装するクールな Tor.rb gem があります:

Tor::DNSEL.include?("208.75.57.100")               #=> true
Tor::DNSEL.include?("1.2.3.4")                     #=> false
24
0x90

彼らはTor出口ノードのアドレスを知っています。したがって、彼らはあなたのアドレスをチェックして、それが出口ノードの1つと一致するかどうかを確認します。

出口ノードはTorネットワーク全体に認識されています。1つの出口ノードを実行する場合は、それを正しくアドバタイズする必要がありますか?そうでなければ誰もそれを使用しません。その後、人々はあなたのIPがTor出口ノードであることを知るでしょう。シンプル。

19
Aki

TorDNSEL ;を使用して、接続がtor出口点であるかどうかを確認できます。したがって、スクリプトをコーディングして、すべての接続をチェックできます。

「TorDNSELは、Tor出口ノード用のアクティブテスト、DNSベースの出口リストの実装です。」

9
Rick Rhodes