トップページに戻る
tokix.netはネットワーク・セキュリティ周辺から半径rな雑文を垂れ流す不定期更新個人サイト>>このサイトについて

よい子と厨房のための基本講座

<<トップカテゴリー「ScriptKiddies」に戻る

検索マニヤ〜串集の探し方〜 (>>この記事のみを表示)

最初に書いておきますが、現在プロキシ情報の中心はCyberSyndromです。正直ここをチェックすれば生きてる串はいくらでも手に入ります。

それを踏まえた上で「検索エンジンgoogleを使った串集の探し方」を書きます。「串集が欲しい」と思って検索エンジンのフォームに「串集」とか打ち込んでしまう人(※)対象です。「検索マニヤ」は不定期連載でシリーズ化させてもいーなーと思いながら、今回は「検索式」とかは使わない単純なページ検索について。

「google検索の基本的な話は理解している、でも実際自分が欲しい情報(=今回は串集)が見つからない」という人を対象にしています。

基本的なことすら知らない場合はgoogleの基本検索googleの詳しい検索方法を先に読んで下さい。

googleは「ページ検索」が基本です。「ページ検索」というのは「ネット上のファイルをサーバーがキャッシュとして蓄えその中からキーワードが含まれたページを検索結果として出力」という仕組みです。

「ということを知ってますか?」と聞けば「知ってるよ」とあなたは答えると思います。でもあなたはキーワードを「串集」にしてしまう。

串集探しに限らずあらゆるページ検索に通じると思います。まず、自分がどんなページを探しているのか頭に描いてください。当然100%細部まで描けはしないと思います。というか100%描けるなら検索なんてしなくていいし。でも10%くらいなら描けるはずです。

例えば僕は「串集欲しい」と思った時点で以下のようなページが「検索結果」に出力されることを期待しています。

目をこらしましょう。10%は見えるはずです。

(タイトル)

1 ***.***.***.***:8080

2 ***.**.***.**:****

3 ***.***.*.***:3128

4 proxy.**.***:**

何を検索語にしますか?「串集」ですか?「(タイトル)」が何なのかいくら目をこらしても僕には見えません。「串集」「プロキシリスト」「串リスト」・・・別に日本人が作った串集である必要もないから「proxy list」「proxxxyz」とかでもいい。もっと言うならフランス語でも韓国語でも構わない。タイトルが画像でもいいし、なくても構わない。

ありますよね。作成者の国籍と関係なくページレイアウトとも関係なく、大量のプロキシがリストアップされたページには必ず登場するキーワードが。

「:8080」や「:3128」や「proxy.」や「cache.」や「mail.」です。

話が逸れますが、「PCスキル」と一言で言っても「全てのネットユーザーに求められるスキル」なんてのはあまりないと思います。どっかの雑誌に「ワードエクセル使えて一人前」とかいう記述あったんですが僕MS-OFFICE自体インストールしてないですしねぇ。寧ろそういうこと言いたがるヤツって疑問なく他人にエクセル独自形式ファイルとかメールで送ってそうな気もするし。

「検索スキル」ってのは数少ない「全てのユーザーに求められる能力」の一つだと思うんです。よく「質問する前に検索しろ」って言われてる人いますけど、つまり検索スキルが足りないから「検索」という行為を「掲示板で質問するより面倒なこと」と思っているんじゃないですか?

さて。ここからは単純労働ですね。色々キーワードを組み合わせてみましょうか。

んー絞り込みが「":8080"」だけだと足りなすぎで「":8080" ":3128"」でも少し足りない感じですかね。まぁ好みの問題ですが「":8080" ":3128" "proxy." "cache."」あたりが一番いいかなぁ。

まぁ何にしても、「串集」をキーワードにするよりはずっと効率がいい検索になったと思います。

応用方法は書かなくてもいいですよね。例えば「JPドメインの串が欲しい」と思ったらキーワードに「".jp:"」を追加すればいい訳です。その場合、期待している記述は「*****.jp:****」といった感じですからね。

よい子のための転送メール活用術 (>>この記事のみを表示)

「インターネットでは電子メールって無料でいくつでも持てるんだって!」という事実を知った人間はHotmail等のウェブメールアカウントや、メールソフトで受信可能なPOP3アカウント等を取得しまくり「こんなに増えてもチェックが大変になるだけじゃん。っていうかウェブメールとかマジでチェック面倒なんですけど」という事態を招き「んー、まぁでも強いて言うならHotmailであればOEで受信できるし、OEでアカウントを10個くらい受信する分には、まぁ時間がかかるけど我慢できなくはないかな・・・」とOEを使い続ける羽目になる訳ですが、ここで「メール活用」の一つの方法を紹介します。

まぁ「活用」なんてのはインターネットとか言うモノを使い続ける過程で各個人が見つけるべきモノであり、「活用術」なんてのは本来ユーザーの数だけある訳でここで提示するのはあくまで「tokix的活用術」に過ぎない訳ですが、参考程度に。


「電子メールアドレスは複数使い分けるべき」

これは多分正しいです。でも、その「電子メールアドレス」の数だけメーラーによるチェック回数(あるいはブラウザでのチェック回数)を増やすのはあまりに大変です。POP3アドレスは二つあれば十分。と言ってみます。何故十分かというと、転送アドレスによって、二つしかないアドレスを無数に増やすことが可能だからです。「メールがどのように転送されるか」という図を考え、効率的にメールを動かしましょう。その中には「リアルタイムでメールチェックが出来るが受信料がかかる」という携帯電話をも含み、その立ち位置には特に注意する(スパムやメルマガで受信料が膨らむと携帯を叩き割りたくなるはずだ)。

で、僕の場合は下図です。実線が転送で、破線がメール受信。

それぞれの解説ですが

  • Main POP3
    プロバイダーから支給されるメールアドレス。これは大事に利用し、ネット上でばらまいたりは決してしない。お仕事関係とかにしか使わない(仕事の場合は「万一でもメールが届かない」は割と死なので転送は噛ませないようにこちらを教える)。
  • Private FWD
    プライベート用というか重要な転送アドレス。片方は有料で取得し、少なくとも向こう十年は使い続けるつもりなので親しい友人知人にはこのアドレスを教える。もう片方は「某文字列@tokix.net」であり親しいネット知人に教える用。
  • Cell Phone
    携帯電話。Main POP3は携帯に自動転送される。ほとんどのプロバイダーで自動転送は設定可能だと思います。また、ezWebには自動転送設定機能があるので後述する「Sub POP3」に転送する。
  • Sub POP3
    無料で取得した某POP3アカウント。携帯に届いたメールは全てここに転送されるためPC上でのバックアップが可能だし、万一携帯にボムとか食らってもヘッダ読める、とかそういう効果もアリ。
  • FWD
    無数(図では四個にしたけどもっとある)の転送アドレス群。ほとんど受信というかウェブサービスやらの申し込みとML/メルマガ専用。各種ドメインが揃っていたりするので大体のサービスにはどれかで申し込めるし、全て「Sub POP3」に転送されるので受信も楽。ん?「転送って返事書く時生アドレスから出すことになって色々面倒」って?そういう人は超初級偽装メール講座参照で。「偽装」というと犯罪チックだけど、「転送アドレス宛に届いたメールの返事を転送アドレスから出す」は全然犯罪じゃない。
  • Local PC
    今この文章を打っているこのマシン。図の通り、「Main POP3」やその上位転送アドレスに届いたメールは(携帯を経由し)「Sub POP3」にも転送されるので、Main POP3を経由しSub POP3に来たメールは自動的にごみ箱に移るよう設定してある(そうしないと同じメールが二通来ることになる)。また、ここでは触れないけど二種類のスパムキラーを走らせている。

この方法が、個人的には「なるべくメールアドレスを増やし、かつメールチェックの手間は増やさない」という意味で最良だと思っています。転送アドレスは各所でゲット可能なので「無料POP3増やしすぎて手に負えなくなった」「無料ウェブメールって正直使いにくい」という方は参考までに。

※参考

「タダものではない!」の無料転送メール

「タダものではない!」の無料POP3メール

よい子のためのスパムメール除去講座 (>>この記事のみを表示)

世の中は「スパムメールを何とかしろよ>プロバイダーとか」という流れになりつつあって、この先にあるのはおそらく「サーバーがヘッダレベルでメールをスキャンしスパムか判別する」という時代であり、プライバシーがどうのとかいう以前に自前SMTPでFromを転送アドレスとかにすると普通に弾かれる時代なような気がします。結局それもまた「お前ら俺が想定する『普通の方法』を使えよ」という傲慢であり「うちのサイトはIEでActiveXオンにしてないと一切見れませんが別に問題無しだろ?」というのと何も変わらないことに気付いて欲しいと思う。


と、いう第一段落に同意してもらえるかどうかは分かりませんが、少なくとも現状ではスパムメールはユーザーサイドで何とかしなくてはいけない代物です。「スパムメールを消す」という日本語を実現するためには具体的には何をすればいいのか。単純なアウトラインですが、具体的には二種類のツールを併用することになります。一つだけでは不完全で、二つ組み合わせないと満足な結果を得られない。これは今後も続く傾向だと思います(一つで二つの役割を果たすツールが登場するまで)。

□1:ベイズ理論によって受信メールをスパム判定するツール

メール受信サーバーとメールソフトの間に(ローカルプロキシとして)入り込み「このメールはスパムかどうか」を判断するツールです。

さて、「ベイズ理論」なのですが、これは単純にいうと「Aだった事象に似た事象はAである可能性が高い」というモノです。つまり「スパム」「非スパム」が「A」です。過去にスパムメールと判断されたメールと「似た」メールはスパムである可能性が高い。逆に、過去にスパムでないと判断されたメールと「似た」メールはスパムでない可能性が高い。

つまり、我々ユーザーがスパム判定ソフトに対して「これはスパムで、これはスパムでない」という判断を与えると、ソフトはその情報を元にして以後送られてくるメールに対し「スパムなのかどうか」という判断を下す訳です。ある程度育てないと使い物にならないが、きちんと育てればまず間違いなく「スパムかどうか」を判断してくれる。

この動作原理を理解して貰えれば、何故このツールが単体では満足な結果を出せないのか分かって貰えると思います。

  • ベイズ理論型のソフトはメールを細かく検証しないと「スパムかどうか」を判断できない。故に動作は決して速くない。可能であれば「明らかに不要なメール」はチェック前に削除したい。
  • ユーザー登録で勝手に送りつけられる不要なメルマガ等をベイズ理論のツールに「スパム」と教えるのは得策ではない。何故なら「不要なメールマガジン」は「必要なメールマガジン」と似ている。ベイズ理論というのは「似ているモノ同士は似た結果になる」という前提に立っていますから、「似ている」メールを「スパム」と言ったり「スパムでない」と言ったりすると判定精度が下がってしまう。

つまり、この問題を解決するために二つ目のツールが必要なのです。

□2:定期的なサーバーチェック時に条件一致メールを削除するツール

POP3サーバーに定期的に接続し、予め指定しておいた条件(例えば「○○というアドレスからのメールは全削除」といった)に従いメールをサーバー上から削除するツール。こうしたツールに

  • 何度もスパムを送りつけてくる業者(のアドレスや件名)
  • 不要なメールマガジン(のアドレスや件名)

等を登録すれば、前述の問題は解決される。何度も同じ業者からのメールをベイズ理論ソフトに判断させるのは時間の無駄ですし、不要なメールマガジンをベイズ理論ソフトに「スパム」と伝えることで生じる判定精度の悪化も起こらない。受信前にサーバー上から消してしまえばよい。


今後おそらく□1や□2のツールはそれぞれの道を、それぞれの足で進んでいくのだと思われますし、新しいツールもどんどん登場するでしょう。ネットランナー9月号に□1/2それぞれのお勧めツールを書いているので&具体的なツール名出すと例えば半年後や一年後にソフトマップが変わった時にこの文章自体に価値がなくなるのでここでは「アウトライン」に徹し具体的なソフト名は出しませんが。

ただ、いずれにしても僕らユーザーは□1のようなツールを一つ、□2のようなツールを一つ選ばないと「スパム」というモノを完全に/快適に消し去ることはできない。この事実は今後もおそらく当分は続くと思いますんで、具体的なツール名はともかく、考え方は頭に残しておいて貰えれば。


ちなみに、第一段落で書いたような事態は既に始まりかけていて、携帯電話が「ドメイン詐称メールを削除」という設定を付けて以来、携帯メールに対する返事をPCから(Fromを携帯アドレスにして)送る時に「こいつ詐称メール切り設定してるのかなぁ」と不安にならなければいけなくなった。何で家にいてPCの前に座っている時に携帯でメール打たなくちゃいけないのさ。と、いう、これがつまり、ある人間にとっての「お前ら俺が想定する『普通の方法』を使えよ」なんだ。

FAQ: ***で使える串を探しています (>>この記事のみを表示)

「***」にはサイト名が入ります。「2ちゃんねる」でも何でもいいです。ただツール名は入りません。「特定のツールで使える串」という話は別の記事で書きます。

簡潔に言えば、「***というサイトで使えない串」というのは「***というサイトの串弾きに弾かれる串」です。で、あるからして「***というサイトで使える串」とは「***というサイトの串弾きを潜れる串」。サイトによって「串弾き」の方法は違いますし、また時間と共に進化していくでしょう。ここでは、多くのサイトが2005年1月である現在採用している「串弾き」の原理を紹介します。


で、紹介する前に根本的なことをいくつか書いておきます。

  • ブラウジングは「(閲覧者からサーバーへの)リクエスト」「(サーバーから閲覧者への)レスポンス」によって成立している

※参考

小学生でも分かるプロキシ講座(2)

  • 「プロキシ」とは、ウェブサーバーとクライアントの間に立って「リクエスト」「レスポンス」の中継を行う代物だ

※参考

小学生でも分かるプロキシ講座(3)

  • ウェブサーバーは基本的に自分が受けた「リクエスト」がブラウザからのモノかプロキシによって中継されたモノかを判断することが出来ない

※参考

小学生でも分かるプロキシ講座(4)

ウェブサーバーは基本的に自分が受けた「リクエスト」がブラウザからのモノかプロキシによって中継されたモノかを判断することが出来ない

故に、「串弾き」とは「本来は出来ないはずの『ブラウザからのモノかプロキシによって中継されたモノか』という判断を行う処理」であり、本質的に「無理のある処理」です。だからこそ、そこにはどうしても埋めることが出来ない「隙」がある。その「隙」をつくことが出来れば「串弾き」を行っているサイトでも串を使うことができる、と。


で、多くのサイトが採用している「串弾き」の方針なのですが。

□1: 「プロキシ特有の環境変数」の参照

クライアントがサーバーに対して送信したリクエストの一部は「環境変数」として、例えばCGIから参照されます。このメカニズム故に、「環境変数」というのは基本的にクライアントが自由に記述できる代物です。

※参考

アダルトサイトで学ぶHTTP基礎(6)

しかし通常のブラウジングではユーザーはInternetExplorerなりNetscapeNavigatorなりといった「メジャーなブラウザ」を使う訳で、そうしたブラウザはユーザーの目に触れない部分で毎回同じような「環境変数」をサーバーに対し送信している訳です。

※参考

アダルトサイトで学ぶHTTP基礎(5)

ところが、プロキシを経由しリクエストをサーバーに送信する場合、一部のプロキシは環境変数を勝手に書き換え(追記)してしまう。

※参考

小学生でも分かるプロキシ講座(4)

このため、プロキシ経由のブラウジングでは本来あり得ないような環境変数がサーバーに対し送信されることになる場合がある。サーバーはこうした「本来あり得ないような環境変数」つまり「プロキシ特有の環境変数」をチェックし「それがプロキシ経由のブラウジングだ」という判断を行うことが可能です。

□2: リクエストの発信元

これはブラウジングに限った話ではありませんが、ネットにおいて通信を行う二台のマシンは必ず「相手のIPアドレス」を知っています。「通信」というモノが、いわば「文通」のような仕組みで行われるため、相手の住所(IPアドレス)を知らなければ相手にデータを送ることが出来ない。

※参考

小学生でも分かるIP抜き講座(1)

であるからして、ウェブサーバーは「自分に対してリクエストを送ってきたマシンのIPアドレス」を知っている訳です。そして、IPアドレスが分かればホスト名を引くことが可能です。これを使えば、例えば「ホスト名の中に『proxy』という文字列があったらプロキシ」「(外人のアクセスを想定していない国内サイトの場合)ホスト名の中に『com』という文字列があったらプロキシ」といった判断を行うことが出来る。また、有名なプロキシサーバー(有名な「プロキシサーバーリスト公開サイト」で公開されているプロキシ)をデータベースに格納し、いわゆる「ブラックリストフィルタリング(これらのサーバーはプロキシなので遮断、という方針)」として「串弾き」を行うことも可能です。

□3: リクエスト発信元のポート開閉

IPアドレスが分かれば「そのマシンが特定ポートを開いているか否か」という判断は可能です。HTTPプロキシの多くはポート8080で公開されているため、「ポート8080が開いているIPアドレスからのアクセスはプロキシ経由である」という判断が出来る。

今回は「閲覧者側のためのコンテンツ」ということなので詳しくは書きませんが一応書いておくと、「あるIPアドレスのあるポートが開いているか否か」を調べるのは□1,2より難しいです。例えば無料サーバーで運営されている個人サイトの掲示板、といったレベルでは□3の串弾きは採用されていない可能性が高い。


ただ、□2,□3に共通して言えることですが、「プロキシサーバーソフトが走っているマシンからのリクエスト」は必ずしも「そのプロキシサーバーソフトによって中継されたリクエスト」ではない。

例えば僕がプロキシサーバーソフトを走らせていたとして、「僕自身が自分でブラウザから送ったリクエスト」と「プロキシサーバーソフトによって中継された、他人からのリクエスト」をウェブサーバーが判別することは出来ないからです。

小学生でも分かるプロキシ講座(6)より

□2,□3のような「串弾き」は、言ってしまえば「疑わしきを罰する」串弾きです。つまり

ただ、まぁ、「ポート8080が開いているマシンからのリクエストは(それが相手自身のモノであれ中継であれ)問答無用に弾く」ということは出来る

小学生でも分かるプロキシ講座(6)より

と。


・・・さて。要は□1〜3の「串弾き」を潜れる串ならば「***というサイト」でも使える可能性が高いでしょう。

□1: 「プロキシ特有の環境変数」を記述しない串

いわゆる「診断くん」とかでチェックすれば良いと思います。

□2: ホスト名が怪しくない/有名でない串

プロキシ公開サイトで「.ne.jp」等を検索すれば良いでしょう。最近はYahoo!BB等「.net」ドメインのプロバイダーも増えているので「.net」ドメインも弾かれにくくなっている気がします。そして検索結果から「proxy」「www」等が含まれるホスト名を除外しましょう(確認くんなどで自分の生IPを確認すれば分かると思いますが、通常一般ユーザーのホスト名に「www」などの文字は登場しません)。

また、「有名な」プロキシ公開サイトで公開されている串はブラックリストに登録されている可能性が高いので、なるべくマイナーな/海外の公開サイトを探すと良いでしょう。

※参考

検索マニヤ〜串集の探し方〜

□3: ポート8080を開いていない串

言い換えれば「ポート8080以外で公開されている串」ということになります(厳密に言えば、プロキシサーバーソフトをポート8080以外で走らせつつポート8080で別のソフトを走らせている「串」もあり得なくはないですがメリットがないですし現実問題存在しないでしょう)。


ただし、最後に書いておきますが「串弾き」「串弾き潜り」というのは何処まで行ってもイタチごっこです。序盤で書いたように「完璧な串弾き」というのは不可能です。不可能ですが「完璧に近い串弾き」は今後も開発され続けるでしょう。「串弾きを潜る」ためには「串弾き」を知らなければいけない。「串弾き」を知るためには「ブラウジング」「プロキシ」を知らなければいけない。・・・ということを「面倒だ」と思うならば「片っ端から試してみる」「他人が使っている串を教えて貰う」の方が楽だ、という判断もあり得るでしょう。

FAQ: ***を使ったIP抜き方法とは (>>この記事のみを表示)

特定のソフトを使って他人のIPアドレスを抜く方法に関して。「特定のサイト内で公開されている掲示板やチャットで見かけた他人のIPを抜きたい」という話は別テキストで書く予定です。

「他人のIPを抜きたい」と思った時、まず考えるべきことは「その『他人』と直接的なコネクションを張ることは可能か」という点です。「ネット」というモノの仕組み上、あるPC(例えばこの文章を読んでいる貴方のPC)は必ず「現在自分がコネクションを張っている相手のIPアドレス」を知っている。例えばnetstatを使えば「現在コネクションを張っている相手のIPアドレス」を見ることが可能です。
参考: 小学生でも分かるIP抜き講座(1)
しかしnetstatはお世辞にも「使いやすい」とは言い難い。そこで、現実的なことを考えるならば例えばパーソナルファイアーウォールソフトを使うのが良いでしょう。
参考: 小学生でも分かるIP抜き講座(2)
さて。では、如何にして「相手と直接的なコネクションを張」れば良いのか。コレは完全に「サービスによって変わる」「ソフトによって変わる」という類の話なので一言では答えられません。ここでは架空のメッセンジャーソフト「tokix messenger」を使ったIP抜き方法を模索する主人公が行うべきことを書きます。
  1. 協力者となる友人を探す
  2. 友人に「自分(友人)のIPアドレス」を調べてもらう
  3. その「友人のIPアドレス」を教えてもらう
  4. tokix messengerを使い、例えば「友人にメッセージを送る」「友人からメッセージを受ける」「友人にファイルを転送する」「友人とボイスチャットを行う」等、実装された様々な機能を試してみる
  5. この時パーソナルファイアーウォールソフト等を監視し「教えてもらった友人のIPアドレス」が「現在コネクションを張っている相手のIPアドレス一覧」に登場するかチェックする
  6. 登場したならば、その時使用していた機能は「相手と直接コネクションを張る機能」だと分かる(例えばファイル転送時に友人のIPアドレスが「現在コネクションを張っている相手のIPアドレス一覧」に登場したなら、「tokix messengerによるファイル転送」は「相手と直接コネクションを張る機能」である)
  7. 「相手と直接コネクションを張る機能」が分かったならば、次回以降「IPを抜きたい相手」に対しその機能(先の例なら「tokix messengerによるファイル転送」)を行えばよい
一般的に言うならば「ファイル転送」「ボイスチャット」は基本的に相手と直接的なコネクションを張ります。ですが、まぁ所詮は
「サービスによって変わる」「ソフトによって変わる」という類の話
なので、重要なのは「どうすれば自分で方法を探すことが出来るか」ということでしょう。上記のようにパーソナルファイアーウォールなどを用い「何をすると相手との直接的なコネクションが生じるのか」という点を自分で調べればよい、と。
さらに付け加えるならば、「ある機能を使えば相手と直接的なコネクションを張ることが出来る」としても、「相手と直接的コネクションを張るのが『相手の了承後』なのか『了承前』なのか」は大きな差です。つまり、例えばtokix messengerのファイル転送機能が「相手と直接的コネクションを張る機能」だとしても
  1. 自分が他人に対しファイル転送許可願いを送る
  2. 相手がそれを了承しファイルの転送が開始される
「直接的コネクションを張る」のが1の後なのか2の後なのか。「2の後」だった場合は「如何にして相手を騙し了承させるか」というのが「実戦的IP抜き方法」の上で重要なポイントになるでしょう。一般化して言えば「メッセンジャーソフトは2の後でファイル共有ソフトは1の後(というか『了承』という概念が存在しない)」なので、よく聞かれる「ファイル共有ソフトはメッセンジャーよりもIPを抜かれやすい」というような主張はここから生まれているのだと思います。

蛇足として書いておくと、「直接的」でない「コネクション」は「間接的なコネクション」です。例えばメッセンジャーを使い相手にメッセージを送ったとする。そのメッセージが相手に届いても「相手のIPアドレス」が「現在コネクションを張っている相手のIPアドレス一覧」に登場しなかったとする。この時何が起こっているのかと言えば、
自分 → メッセンジャーのサーバー等第三者 → 相手
といった二段階の「間接的な」コネクションである、と。これでは「自分」にとって「現在コネクションを張っている相手」は「メッセンジャーのサーバー等第三者」であって「相手」ではないので、相手のIPアドレスを抜くことは出来ない訳です。

Share一次放流方法まとめ (>>この記事のみを表示)

久々の更新がこれかよ!という気もしなくはないですが、ファイル共有ソフト「Share」における一次放流方法まとめ(色々あってHDDを漁ってたら出てきたので超今更感なんですが「せっかく図も書いたし」ということでアップしてみます)。
なお、この記事は一次放流方法の解説であってShare自体の解説ではないので、基本的な導入方法等に関しては下記サイトを参考に自力で頑張ってみて下さい。
Share(仮称)について
NextP2P
stereozenkai
Shareには「Linkキャッシュ」「Localキャッシュ」「Completeキャッシュ」という用語があり、これがファイルの拡散を分かりにくくしている要因であるように思えます。しかし、ダウンローダーから見てステータスの一部が揃わない、俗に言う「歯抜け」の発生を防ぐため、一次放流を行う人間は拡散の仕組みを理解し適切な一次放流を行う必要があります。
最初に、各キャッシュの性質とShareにおけるファイル拡散の仕組みをざっと紹介しておきます。
  • Linkキャッシュ
    アップロードフォルダ内ファイルのハッシュ値等を定義する小さなファイルであり、拡散アップロード(DiffuseUP)に利用される
  • Localキャッシュ
    近隣ノードが拡散アップによって所有することになる、いわゆる「キャッシュ」であり、通常のファイル転送(ShareUP)によってダウンローダーに送信される。ダウンロードリストに入れてダウンロード中のファイルのキャッシュも「Localキャッシュ」であり区別は無い
  • Completeキャッシュ
    ファイルを落とし終わった人が所有することになる、いわゆる「完全キャッシュ」。二次拡散(ShareUP)によって他のダウンローダーに送信される

一次放流者は近隣のノード(他Shareユーザー)に対し、ファイルを分割してキャッシュ化しながら強制的にアップロードする。これがShareの特徴である拡散アップロード(DiffuseUP)であり、放流者の匿名性を高める要因にもなっている(ダウンローダーが放流者と直接接続しない)。拡散アップロードによって近隣ノードはLocalキャッシュを持つこととなり、このLocalキャッシュが通常の転送(ShareUP)によってダウンローダーに渡される。ダウンローダーは全ての断片(Localキャッシュ)が揃った段階で結合された完全キャッシュを「Completeキャッシュ」とし、他のダウンローダーへの二次拡散(ShareUP)に利用する。

DiffuseUPは、基本的に一つのファイルに関して一回しか行われません。新しいファイルをアップロードフォルダに入れてShareを起動するか、Share起動後に新しいファイルをアップロードフォルダに入れて「クイックスキャン」をクリックすることで、フォルダタブで当該ファイルがスキャンされ、ハッシュ値の計算が行われてLinkキャッシュが生成される。

そしてLinkキャッシュの生成後、アップロードタブでDiffuseUPが行われる。フォルダタブで行われるファイルスキャンはあくまでファイルのハッシュ値を計算するものであり、DiffuseUP時にリアルタイムで元ファイルからキャッシュが作成され送信される仕組みなので、DiffuseUPは他の転送と比べて非常に負荷が高い作業であり、これが故にターボモード(後述)に必要性が生じる。
ファイルスキャン時にそのファイルの完全キャッシュが生成されている(LinkキャッシュもCompleteキャッシュと同様にファイルの内容全てを定義するものである)と誤解している人がどこかにいた記憶なんですが、何だったらキャッシュビューアツールでキャッシュフォルダを覗いてみれば、Linkキャッシュのサイズが非常に小さいことが分かると思います。

キャッシュビューアツールに関しては、特にこの記事と直接の関係もないので、すみませんが興味がある方は自力でどうにかして下さい。

基本的に一回しか行われないDiffuseUPを二回以上行うにはクエリを利用する。ファイル名の一部などを検索して、検索結果のLinkキャッシュの右クリックメニュー「アップロードに追加」で二回目以降のDiffuseUPが可能です。ただし、Shareの仕様として、近隣ノードがCompleteキャッシュを保有している場合はDiffuseUPが行われません

なお、クエリの検索結果のLinkキャッシュの右クリックメニュー「変換」によって、Linkキャッシュ(とアップロードフォルダ内の元ファイル)からCompleteキャッシュを生成することも可能です。Completeキャッシュを持った一次放流者は、ダウンロードが終わったダウンローダー(上図参照)と同様に、ShareUPによって他のダウンローダーにCompleteキャッシュを転送するので、まず近隣ノードがCompleteキャッシュを持つまでDiffuseUPを繰り返し(この作業を自動的に行うためのプラグインも存在します)、近隣ノードが完全キャッシュを持った後(近隣ノードが完全キャッシュを所有している場合はクエリにおける検索結果がオレンジになります)に変換を行うと良いでしょう。ただし、Shareは起動時(ないしクイックスキャン時)アップロードフォルダに元ファイルが存在するとCompleteキャッシュを削除しLinkキャッシュを生成する仕様なので、変換を行った後はアップロードフォルダ内の元ファイルを別フォルダに退避させる必要があります。

と、いうことで、ここまでをまとめ一次放流者が行うべき作業手順は下記。灰色の四角はユーザーが行う作業で白い四角はソフトが行う処理。太い矢印が推奨手順です(経路が無数にあるが「それは割とどうでも良い」の意)。

以下補足。
  • ターボモードとは、DiffuseUPのみを行うモード。一時拡散を行う場合に利用すると短時間でDiffuseUPを行うことが可能だが、ターボモードのON/OFFによる変化は同時接続数の差(のみ)であるため、一次拡散に必須な訳ではない
  • 近隣ノードがCompleteキャッシュを所有するとDiffuseUPは不可能になる。クラスタを変更することで別のノードを近隣ノードとすれば再び可能になるケースが多いが、そもそもファイルの内容によって適切なクラスタで一時拡散を行う方が拡散効率が高いため、クラスタの変更は必須ではない
  • Completeキャッシュが削除されるタイミングは、キャッシュフォルダがクォータ設定量を超えた段階であり、基本的にユーザーの意志とは無関係

手動・プラグインによる繰り返しDiffuseUPや、変換によるCompleteキャッシュ化を一切行わない、Shareデフォルトの一次放流方法とは、上図における「アップロードタブでDiffuseUP」から即「作業終了」に繋がる赤い矢印です。この記事によってまとめた一次放流方法を理解し拡散効率を高めないと、俗に言う「歯抜け」を止めるのは難しいでしょう。
なお、結論としてはこの記事通りの方法で問題ないと思うんですが、以下記事中で書かなかった事実に関して。
DiffuseUPはCompleteキャッシュの右クリックメニュー「アップロードに追加」からでも可能です。従って
  1. フォルダタブでLinkキャッシュを生成
  2. Linkキャッシュの右クリックメニュー「変換」でCompleteキャッシュを生成
  3. Completeキャッシュを繰り返しDiffuseUP
という手順でも一次放流を行うことが可能です。こちらの方針にはメリット/デメリットがあり
  • メリット
    • LinkキャッシュのDiffuseUPはリアルタイムで元ファイルをキャッシュ化するため負荷が大きいがCompleteキャッシュであれば負荷を抑えてDiffuseUPすることが可能
  • デメリット
    • Linkキャッシュはクォータによって削除されることがないがCompleteキャッシュは削除され得るため、放流作業中に自分もファイルをダウンロードしていると削除されてしまう危険性がある
    • CompleteキャッシュはShareUPによってもアップロードされるため拡散が不十分な段階でダウンローダーと直接接続してしまう危険性がある(記事本文の方法なら、Completeキャッシュ生成後の一次放流者は「Completeキャッシュを持っている人間」という不特定多数の中に紛れる)
ここらへんは自分で判断して欲しいですが、個人的には記事本文の方法を推奨します。

フォールス・〜ティブという (>>この記事のみを表示)

セキュリティの世界でよく使われる、「フォールス・ポジティブ」「フォールス・ネガティブ」という言葉がある。基本的に当サイトはセキュリティオタク以外の一般ネットユーザーを対象にしているが、この言葉(の意味するもの)はセキュリティオタク以外にとっても非常に重要だ。

  • フォールス・ポジティブ
    「誤検出」などと同義。白を黒という誤反応。
  • フォールス・ネガティブ
    「検出漏れ」などと同義。黒を白という誤反応。

何故この言葉が重要なのか。いくつかの例と共に紹介する。一言で言っておくと、「どちらが常に悪い」という訳ではなくケースバイケースなのだが、様々なケースにおいて、この概念を持って判断を行うことが非常に重要だ。その判断の方法論を解説する。


・・・と、いうことで様々なケース。

□1:スパムメール除去ツール

フォールス・ネガティブが許され、フォールス・ポジティブが許されない典型的なケースだ。

  • フォールス・ポジティブ
    必要なメールが迷惑メール扱いされる
  • フォールス・ネガティブ
    迷惑メールが受信ボックスに入る

これが故に、僕はずっとPOP Fileを評価せず、SpamFighterやGMail(の迷惑メール機能)などブラックリスト型のフィルタリングを評価し続けてきたんだけど、一日数通、受信ボックスの中の迷惑メールを手動削除することは大した問題ではない。問題なのは、必要なメールが削除されているかもしれない、という危惧と共にごみ箱の中身を覗かねばならないということ。

  • POP Fileなど学習型ツール
    必要なメールが迷惑メール扱いされる可能性・迷惑メールが受信ボックスに入る可能性の両方が僅かながら存在する
  • SpamFighterやGMail(の迷惑メール機能)などブラックリスト型
    必要なメールが迷惑メール扱いされる可能性はないが、迷惑メールが受信ボックスに入る可能性は結構高い

傾向を書けば上記のようになる。「100% - フォールス・ポジティブの可能性 - フォールス・ネガティブの可能性」を比較するなら、それはどちらが高いか分からない。ひょっとしたらPOP Fileが最強かもしれない。でも、だとしても、学習型ツールは「毎日ごみ箱を覗く」という手間を求める。故に、使えない。そろそろ断言しておくが、「100%にカナリ近い精度を実現する学習型の迷惑メール除去ツール」という方法論は根本的に間違っている。

□2:フィッシングサイト検出ツール

フォールス・ポジティブは許されるが、フォールス・ネガティブは許されない。

  • フォールス・ポジティブ
    安全なサイトが「フィッシングサイトかも?」と言われる
  • フォールス・ネガティブ
    フィッシングサイトが検出されない

例えばショッピングサイトとしよう。「安全なサイトかどうか分からない」というのは、究極的には大した問題にはならない。「まぁやめておこう」と思えば済むからだ。しかし「危険なサイトが検出されない」というのは大問題。万一でも危険サイトだったらクレジットカード番号が盗まれ以下略、と。

  • ブラックリスト型
    ブラックリストに登録されたフィッシングサイトにアクセスしたとき「危険」と警告を発する
    フォールス・ポジティブは起こりえないが、必ずしも全てのフィッシングサイトが登録されている訳ではないため、フォールス・ネガティブは起こりうる
  • ホワイトリスト型
    ホワイトリストに登録されたショッピングサイトにアクセスしたとき「安全」と教える
    必ずしも全てのショッピングサイトが登録されている訳ではないため、フォールス・ポジティブは起こりうるが、フォールス・ネガティブは起こりえない

故に、僕は根本的にブラックリスト型のフィッシングサイト検出ツールを疑っている。IE7やGoogleツールバーなど、既存のフィッシングサイト検出ツールは大半がブラックリスト型だが、それでも疑っている。逆の方法論、ホワイトリスト型のフィッシングサイト検出ツールがComodoからリリースされたので、今後日本のサイトにも対応してくれることに期待する……という話は「にゅーあきば」で書いたので省略。

□3:アンチウイルスの未知ウイルス検出エンジン

理想論としては、フォールス・ポジティブが許され、フォールス・ネガティブが許されない典型的なケースだ。

  • フォールス・ポジティブ
    安全なファイルが未知ウイルス扱いされる
  • フォールス・ネガティブ
    危険なファイルが安全と判定される

理由は、まぁ分かるだろうので省略。ただ、いずれにしてもこれは理想論。現実的にはフォールス・ポジティブとフォールス・ネガティブの両方が存在してしまい、ある「傾向」をもって両者の確率が変動する類の話だ。故にどのような「傾向」が良いのだろうか……という話はヒューリスティックの数字ゲームを参考に。結論だけ書いておくと、どのような傾向を求めるかは人それぞれだろう。ただ、判断材料としてフォールス・ポジティブとフォールス・ネガティブ、両方の確率が必要であり、それを使いどのような判断を行うべきか、という方法論を知っておくべきだ。

□4:彼女の浮気を疑ってるんですが携帯を見るべきですか

見ないべきです。

  • フォールス・ポジティブ
    実際は浮気してないのにメールを見た結果「浮気してる」と思いこむ
  • フォールス・ネガティブ
    実際は浮気してるのにメールを見ても証拠が出てこない

このケースでは、フォールス・ポジティブが発生する確率は二アリーイコール0です。普通の友達に対して「昨夜は良かったよ☆」とか送るのが趣味なファンキーな男友達がいない限り0です。しかし、フォールス・ネガティブは普通に発生します。彼女がメールを消してるだけで発生します。従って、メールを覗いた結果分かるのは、「白か黒か」でないだけでなく、「白か灰か」でもない。「白か灰か」であれば「白ならスッキリできるし」ということで覗いても良い(その道徳的問題と無関係なレベルで)とは思いますが、「黒か灰か」に過ぎない以上、覗くのは単純に損です。


と、いうことで、セキュリティオタク以外の普通のPCユーザー、むしろPCを持ってない人まで含め、「フォールス・ポジティブ」「フォールス・ネガティブ」は万人が理解し日々の生活に役立てるべき概念なのです(まとめ方を失敗した気がしなくもありません)。

Share海外に一次放流実験 (>>この記事のみを表示)

※1/31追記

実験に成功いたしました。記事全文ページの最後に結果を追記いたします。ご協力いただいた方、本当にありがとうございました。

ちょっと実験をしてみたい。ファイル共有ネットワーク上に情報収集botが、ある程度以上いるとして、その中で一次放流をどのように行えば自作ポエムを匿名で放流できるのか考えてみたい。

半分以上くらいネタであり、また、(自作ポエムを匿名で放流するという目的において)おまじないであり、それ以上でないことにご留意下さい。

で、現在実験中です。Shareユーザーで国内在住な方は

[テスト]海外のみと接続しDiffuseUp.avi.blk 734,003,200 193d6254a2e90ad23311289b976bf53c8503f7fc

をトリガに登録していただけると助かります。ゴミファイルで、ファイルサイズは700MB。なので、本当に落としたいファイル(ポエム)の収集をジャマする程の物ではない、と思います。


NetAgentのレポートによれば、海外にもWinny/Shareユーザーは存在する。

Winny(ウィニー)・Share(シェア)につきましては、やはりその大部分が日本(Winny:約96%、Share:約95%)を含む東アジアにおける利用割合が非常に高く(Winny:約97%、Share:約99%)、また日本以外の東アジアでは、WinnyよりもShareの人気が高く、より多く利用されている事が判明いたしました。

Share経由情報流出調査サービス 各P2Pノードの分布

あと僕が書いた「Share一次放流方法まとめ」という記事の英訳版を公開している方もいる。ということで、とりあえず海外にもWinny/Shareユーザーは存在し、そして、botは全て国内IPで動作している、はずだ。従って。


海外IPに対してのみ一次放流を行えば、放流者のIPアドレスをbotに拾われることはない。


……原田ウイルス作者(+アップローダー二名)の逮捕に関して書いた直後なので追記しておくと、実のところ、「botに放流者のIPアドレスを拾われる」と「警察に放流者だとして逮捕される」をイコールで繋げるか否か、という点には結構疑問がある。個人レベルでの「特定」と、警察にとって必要な「特定」の差。だから京都府警は2004年の逮捕時にも結構回りくどい「特定」方法を使ったのだ。

参考:Winny京都府警の捜査方法

ただ、でも、ほら、自作ポエム流してることが「個人レベル」であっても特定されると恥ずかしい、ということで。


「海外IPに対して一次放流を行う」ということは、言い換えれば、国内IPを弾いた状態で一次放流を行うということ。今回は、「Shareの方が多い」という上記NetAgentのレポートに従いShareを利用する。結果だけ先に書くと、現在一次放流が完了した状態です。Shareユーザー&国内在住な方は

[テスト]海外のみと接続しDiffuseUp.avi.blk 734,003,200 193d6254a2e90ad23311289b976bf53c8503f7fc

をトリガに加えて頂けると助かります。また、もしダウンロードに成功しましたら、コメントやメールで報告頂けると更に助かります(トリガに加えて頂けるだけでも十分です)。


以下、興味がある方向けに実際の一次放流方法。

00350.jpg

まず、PeerGuardianで国内IPを全て弾く。国別のIPアドレスリストが公開されているので、「Add List」で国内IPアドレスリストのURLを指定するだけで良い。

00351.jpg

Shareを起動させる。「海外は低速ユーザー中心」と考え、一度PeerGuardianを切った状態で、回線速度を低めに虚偽申告して10分ほどShareを動かし、この上でPeerGuardianを有効にした。クラスタは、別に合わせていただく必要はない(普通に落とせないと意味がない)ですが一応書いておくと

  • Share
  • App
  • DVD
  • AVI
  • MP3

です。とりあえず「日本人も使う半角キーワード」という感じにしてみた。

00352.jpg

あとは

参考:Share一次放流方法まとめ

のように一次放流を行うだけだ。たしかに、海外にもShareユーザーは存在する。95%な国内ユーザーを弾くためアップロードには時間がかかるが、転送速度は80〜1000KBps。実は上の方で書いた「海外は低速中心」というのは割と誤解だったのかもしれない。Winny/Shareは、自分のクライアントが国内ユーザーのノード情報しか持っていない状態で国内IPを弾くと、ネットワークに接続することができなくなってしまう。このため「おまじない」として一度低速ユーザー(の中に海外ユーザーが少なくとも一人いればネットワークから切断されずに済む)と繋がっておく必要がある……かどうかは、この方法での放流を何度も繰り返す中で「ノウハウ」として身に付けて貰えれば(不要な気も少しする)。


で、僕が放流したテスト用ゴミファイルは、「CreateFileBlock」で作成した

[テスト]海外のみと接続しDiffuseUp.avi.blk 734,003,200 193d6254a2e90ad23311289b976bf53c8503f7fc

です。これがShareネットワーク(95%が国内な)にちゃんと拡散されるかどうかのテストなので、トリガに加えて頂けると非常に助かります。少し放置後に僕のローカルにあるキャッシュを削除し、上記ファイルのダウンロードが可能かテストする予定です(もちろん結果は報告いたします)。

……「botに自作ポエム作者が誰か暴かれる」という問題はShareというより金子版Winnyな気が今更しなくもないんだけど、それは「Winny一次放流まとめ」とか書いてる方にお願いしたい。


※以下1/31追記

そして1/30の夜にローカルのキャッシュを削除し、また、回線速度を本来の値に戻してノード情報を一度全て削除し、初期ノード登録からやり直した上で上記ファイルをトリガに加え、無事にダウンロードに成功いたしました。

00353.jpg

国内IPアドレスを全て弾いた状態でも、国内Shareネットワークへのファイル拡散は、ある程度以上の効率で可能です。今回は「自分のサイトでハッシュ情報を公開する」という方法を用いましたが、少なくとも、ある程度以上有名な一次放流者(ポエム作家)であれば、IDをトリガに加えている国内Shareユーザーが少なからず存在するはずなので、同様の結果を得ることができると思います。

協力していただいた方あっての実験成功だと思います。皆様ありがとうございました。

dammy

Credit

SeeAlso

OtherSubCategory

Footprint

Navigation