2006/03/07
■[P2P]ポエム専用P2PネットワークPoenTropy
Poeny(ポエニー)
http://blog.fuktommy.com/#e1141630998
上記Fuktommyさんの日記を見て、以前考えた「TropyをP2P化」というアイディア……というか妄想をふと思い出したので、ここで一気に垂れ流してみます。テーマはPoeny + TropyでPoenTropyです。
----
■ Tropy(トロピー)とは
Tropyとは、コンピュータ関係の入門書の著作で有名な結城さんが去年の11月に発表した、ちょっと変わったCGIです。命名は「entropy」の「tropy」だそうな。
作者自身によるTropyの紹介は結城浩の日記(2005年11月3日)にありますが、個人的にはこれを更に要約して
- Wikiのように誰でもページを作成、編集できる
- ページの閲覧方法はランダム表示のみ(一覧機能もない)
- URLを覚えてなければ特定のページに移動できない(Tropyクローンによっては、URL指定もできない)
といったあたりがTropyの特徴だと思っています。
Tropyって実際に使ってみないとイメージが掴みにくいCGIだと思うのですが、オリジナルのTropyはもうソースコードしか公開されてないので、まだ触った事の無い方は数多くあるTropyクローンを当たってみてください。ちらっと辿って見た感じでは、rytropyやFropyなどは実際に動くものが設置されてました。
■ TropyとP2Pは相性がいい
このTropyを去年初めて見たとき、僕はまずまっ先にTropyのP2P化を考えました。それは、負荷が原因でオリジナルのTropyがソースコード公開のみになった(当初はCGIを設置してた)という理由もありますが、それ以上に「全体像が見えない」というTropyの特徴がP2P技術の弱点と上手くマッチしてるように思えたからです。
また、オリジナルのTropyは使用目的が全く無いものでしたが、それでも登録されたページの閲覧性はかなり高いと感じました。Webブラウザで閲覧できて、リロードするたびに次々新しいページを見れるわけですから。
一方、WinMXの時代からWinnyの時代まで、P2Pネットワーク上でポエムを流通させるという動きはかなり昔から存在していました。しかし、これらのソフトウェアはポエムの閲覧性が最悪だったため、不幸な事にポエムを流通させる基盤としては普及せず、現在では機密情報を流通させる基盤として普及してしまっています。そこで、僕はこう思ったわけです。
「TropyをP2P化したら、非常に素晴らしいポエム専用P2Pネットワークが出来るのではないか?」
TropyをP2P化すると、負荷分散以外にも、例えば以下のようなメリットが考えられます。
扱えるデータ量が無制限になる
- テキストだけでなく、音声や動画でポエムを流通させることも可能に
閲覧機能をパーソナライズ可能になる
- 既読管理:一度見たページは編集されない限り表示しない
- 推薦:自分の趣味にあったポエムを優先的に表示する
Tropy機能を持ったピア同士で構成されるネットワークを構成するから、Tropy2TropyでT2Tだ! そしていずれはT2T勉強会を開催……とか夢も広がります。
■ TropyのP2P化は意外と面倒
もちろん、TropyをP2P化するにあたっては、いろいろ追加しなきゃいけない機能もあります。
まず、著作権を侵害するようなコンテンツを放置しておくと、何かの幇助とかで捕まる可能性があるので、何らかの対策が必要です。とはいえ、これは用途を「ポエムの共有」に限定してしまえば、手動で特定のコンテンツをフィルタする機能をソフトに追加して、ユーザには「ポエム以外のデータはフィルタする」という簡単なルールに従ってもらうことで解決可能です。
それよりも、難しいのはP2PネットワークにTropyっぽさを追加する方法です。前述のとおり、Tropyには「ページの閲覧方法はランダム表示のみ」という変わった特徴があるので、ユーザに「名前を指定してファイルを検索させる」ことはできません。つまり、従来のP2Pファイル共有ソフトの機能は全く使えないので、
- ユーザからの問い合せに応じてランダムなポエムを返すP2Pネットワーク
- または、ひたすらポエムをプッシュ配信してくるP2Pネットワーク(ローカルのソフトウェアでランダム表示)
のいずれかを実装する必要があると思います。でも、そんな妙なP2Pネットワークなんて、僕は聞いた事ないです。
……とまぁ、ここまで考えて「そんなプロトコルを一から考えるのはめんどいなぁ」ということで、このアイディアはブログにも書かずにほったらかしにしていたわけです。
■ Winnyプロトコルを流用してTropyをP2P化
でも、PoenyのようなオープンソースのWinny実装を利用できれば、上記のようなポエム専用P2Pネットワークも意外とあっさり実装できるような気がするんですが、どうでしょうか。
名前はPoeny + TropyでPoenTropyとか考えてみたんですが、別にPoenyにこだわる必要はないので、poem + entropyでPoentropyということでも良いんですけど。とりあえず語呂だけは良いと思うんですけど。どうですかねえ。
2006/03/13
■[P2P]one^氏がポエニーを使ってPoenTropyを実装
PoenTropy α1(デー)
http://d.hatena.ne.jp/ultraist/20060311/p1
PoenTropy α1.2(デー)
http://d.hatena.ne.jp/ultraist/20060313/p1
ポエニー(poeny)開発者のone^氏が、ポエニーのソースコードを流用してPoenTropyを実装してくれました。仕事早いなぁ……。
詳しくは上記リンク先を見てもらった方が早いですが、すごく簡単に言うと、PoenTropy α1.2ではこんなことができます。
- ポエムのランダム表示(ランダむ)と、ポエムのアップロード(ポエむ)ができる
- ランダム表示は、"【合法】.*\.txt"で自動ダウンロードしたファイルからランダムに選択することで実現してる
せっかくアイディアを採用してもらったので、これは使わないわけにはいきません。とはいえ、最近の凶悪すぎるウィルスを見てると、普段使っているPCでWinnyを動かすのはちょっと恐いので……テスト用にVMwareの仮想マシン(Windows XP)を作って、そこにインストールしてみました。我ながらヘタレすぎ……。以下感想。
- 意外と使えます。Winnyネットワーク上の合法ファイルを一覧できて、これだけでも十分楽しめます(ポエムよりも、レシピやらブラックジョークやらの方が意外と多い)
- PoenTropy専用のWinnyネットワークを用意して、ユーザ数が十分増えたら、このままのソフトでも使い物になりそう
- でも、現状だと合法ファイルがあんまり集まらない(半日起動しっぱなしで100個に達しなかった。運が悪かっただけ?)
- Tropyと違って自分でタイトルを付ける必要あり(専用ネットワークを用意しない限り、ファイル名に手を付けるのは無理か)
- 自分で書いたポエムが表示されない仕様なのは、再編集できないのでやや不便な気が……
- ポエムの表示がやけに下の方までスクロールしてしまう
- ときどき固まる
というわけで、こうなるとPoenTropy専用のネットワークを期待したいところですけど、one^氏がPoenTropy α1.2(デー)で以下のように書いてるようにいろいろ課題はありそうです。
@ フューチャー
初期ノードCGIを作って、PoenTropyだけでネットワークを作ってみる。
今は、相手がほぼWinnyで更新してくれないから面白くないし、ファイルも一定数以上は集まらない。
ただ、逆にファイル数が増大するとジャンルわけか、なにかをしないと更新量が多すぎるようになる。
クラスタリングで少しはマシだと思うのですが、それだけじゃ足りないと思う。
ちなみに、PoenTropy α1.2のエントリに「ポエトロ」というカテゴリ名が付いてますけど、この略称いいですね。ポエポエ。
----
ところで、僕は今まであまりポエニーのことを知らなかったので、この機会に少し調べてみました。と言っても、one^氏のサイトをざーっと読んだ程度ですけど。ポエニーの主な特徴は、こんなところでしょうか。
- Winny2プロトコル(Winny2b 7.1互換プロトコル)を喋る
問題になりそうな違法利用防止策として、以下の対策を取ってる
- ファイル転送の中継をしない(ダウンロード中の匿名性がない)
- ユーザーがキャッシュを完全に管理できる
- D言語で開発してる(読めません)
- キャッシュ管理にSQLite3を使ってる
- エアーエッジでテストしてる(!?)
参考1:ポエニー―readme.txt
http://imony.fbox.info/one/readme.html
参考2:ポエニー(途中)(デー)
http://d.hatena.ne.jp/ultraist/20051204/1133718038
ポエニーは、今後ちょっと(最近Winnyまわりがやけにドタバタしてるのでこっそりと)注目してみます。
2006/03/24
■[P2P]最近のWinny騒動についての個人的な考え
Winny経由のウィルス感染による最近の情報漏洩騒ぎを受けて、今月15日、安倍官房長官が国民に対してWinnyの利用自粛を求めるという異例の出来事がありました。しかし、これが事態の沈静化に繋がるとは思えませんし、実際のところ、僕にはWinnyの知名度を上げてしまっただけのように見えます。
官房長官はユーザに対して呼びかけるのではなく、むしろそれらのユーザが属するであろう組織に呼びかけて、著作権侵害、情報漏洩を行った者に対する厳重な処分を求めるべきだったのではないでしょうか? 今必要なのはユーザの自由を束縛する目新しい技術ではなくて、ユーザに対する“教育”です。
----
■ Winny騒動が気になる理由
今年に入ってから毎日のように報道される情報漏洩*1と、その「Winny特需」を狙ったアンチウィルスソフトやPC管理ソフトのリリースラッシュ、安倍官房長官の記者会見*2、そしてぷららネットワークスによるWinny通信の全ユーザ無差別完全規制*3の開始……。
そんなWinny騒動の中で、「今は国家の非常事態だから、問題解決のためにはどんな強攻策も許される」という風潮が生まれつつあるのがとても心配です。具体的には、「もう面倒だから国がプロバイダにWinny遮断させちゃいなよ」ってトラフィックの検閲を許す流れになりそう……というかその流れが仕組まれてそうなのが、個人的にすごくイヤです。
そこで今回はその流れに反抗するための理論武装というか、取りかかりとして、現時点での僕の個人的な考えをまとめてみたいと思います。
■ 十分な罰則の与えられてこなかった「著作権侵害」と「情報漏洩」
現在、Winnyに関連して問題になっているのは、Winnyを利用した著作権侵害と、Winnyで入手したファイルからのウィルス感染による情報漏洩です。
で、まず前者が明らかな犯罪であることは衆目の一致するところでしょう。その一方、後者は自分のプライバシー情報を漏洩させる分には単なる笑い話ですが、企業や自治体が厳密に管理しているはずの個人情報を漏洩させるとなると、その組織が加害者になります。当然、普通の組織だったら情報漏洩した個人に対してそれなりの罰則を与えるでしょうし、実際、2ちゃんねるでは、かなり厳しい罰則を与えている民間企業の例も報告されているようです*4。
しかし、マスコミでの報道を見ていると、著作権侵害についても情報漏洩についても、過失のあったWinnyユーザに対して十分な罰則が与えられているように見えない……というより全く罰が与えられていないように見えます。
警察は金子氏を逮捕することでユーザの萎縮を狙いましたが、そんな暴挙に出る前に、実際に不正行為を行っているユーザ自体をきちんと取り締まるべきでしたし、今からでもユーザの取り締まりを行うべきだ、というのが僕の考えです。
■ 著作権侵害を罰するには
Winnyには匿名性があると言われていますが、Winnyが提供する匿名性というのは「そのファイルを最初に公開したのが誰かを分からなくする」だけのもので、自分に対して直接ファイルを送ってきているのが誰かは、パケットの送信元IPアドレスを見れば分かります。また、ネットエージェントのOne Point Wallを初めとして、Winnyのファイル暗号化を解けるソフトは既に存在しています。
ですので、Winnyクライアントを実行したPCの通信を監視して、著作権を侵害しているファイルを転送してくるユーザを見つけたら、警察が片っ端から逮捕するなり、JASRACが片っ端から訴えるなり(それこそRIAAのように)することは技術的に可能なわけです。
え、Winnyがユーザの知らないところでファイルを転送してるだけだし、ユーザにはキャッシュの中身が分からないって? じゃあ、著作権法違反幇助くらいにして訴えましょうか……というのは乱暴すぎるとしても、1週間とか1ヶ月とか継続的にトラフィック解析すれば、悪質なユーザは十分特定できるでしょう。あとは、PCを押収してからハードディスクの中身を見る、ということで。
また、winny.info別館の最近のエントリ「トラフィック解析」では、大規模なトラフィック解析をすれば「そのファイルを最初に誰が公開したか」さえも追跡可能であると解説しています。以下引用。
ネットエージェントさんなどがやっているように、あるファイルを誰が最初にWinnyで公開したかを追うことは、今では十分に実現可能です。キャッシュによる匿名効果は、あくまで「過去は分からない」というだけであり、多数の地点で継続的に記録を続けている強力な監視者がいるような場合には著しく効果が薄れます。所詮は、「目をつけられなければ勝ち」という程度だと思ってください。
■ 情報漏洩を罰するには
Winnyネットワーク上で流れるウィルスは、「PC上のファイルを詰め合わせてWinnyネットワークに放流する」という動作をすることが多いため、一緒に放流されたファイルを調べて、情報漏洩の発端となったユーザ個人を特定するのは比較的容易そうです。
ですから、まずその特定されたユーザを組織の中で徹底的に罰して、そしてどのような罰を与えられたのかを必ず外部に公表しましょう。特に、公務員や警察、自衛隊など、公的な機関にはそういう情報公開が求められるはずです。民間企業の場合は、個人情報を漏洩された被害者に対して十分な(具体的には500円より多く)補償をして、そのユーザに賠償金請求して公開する、などなど。
今までは、そういう情報は組織のメンツに関わるから公開できない、とダダをこねていたかもしれませんが、今は国家的な危機なので組織のメンツなんて気にしてられません。それこそ、安倍官房長官に出てきてもらって「著作権侵害、情報漏洩を行った者に対する厳重な処分と、その処分内容の公開」を求めましょうよ。
つまり、2ちゃんねるなんて可愛く見えるくらいの晒し行為を政府公認、マスコミ主導でやればいいわけです。というか、そういうことを喜んでやりそうなマスコミがあまりそういうことをしないのも、今回の騒動で不思議な点の一つですが(僕が目にしてないだけ?)。
■ Winnyと「自動車教習所のビデオ」の関係
上記の内容は少し過激すぎるかもしれませんけれど、要するに今のWinnyには、スピード違反や飲酒運転にとっての「自動車教習所のビデオ」に相当するものが必要なのです。
「Winnyに繋ぐだけで危険」と言われても、たぶん普通の人にはピンと来ないでしょう。
経験がある人なら分かると思いますが、自動車などの運転免許を取るときには、教習所や免許センターで必ず「スピード違反したせいでこんな事に!」みたいなビデオを見せられるものです。そのビデオでは事故の加害者・被害者双方の証言インタビューがあって、被害者は一生車いす生活だの、ドライバーは交通刑務所行きだの、事件を期に妻が実家へ帰っただの……。見ていると、もはや「スピードに気を付けよう」とか「飲酒運転はやめよう」とかいうレベルを超えて「できるだけ車に乗るのは避けよう」という気にすらなってきます。
それでも実際自動車は便利だし、人によってはスピードを出すのが死ぬほど楽しいらしいので、車に乗る人も交通事故も絶えないわけですが、こういう「社会的な制裁」を意識させる教育は重要だと思います。同様の教育は、Winnyにも必要なのではないでしょうか?
もちろん、Winnyネットワークに限らず出所のはっきりしないファイルの取り扱いには注意する、という更に一般的な教育も必要です。とにかく、教育にコストをかけない限り、たとえWinnyトラフィックを規制しても何の解決にもなりません。
(ヒント:どうせ、将来的にはファイルを全部GDrive & GoogleBaseに公開するようなウィルスが出てきますよ。そうしたらHTTPトラフィックを制限するんですか?)
----
■ まとめ
現在、Winnyを通じて不正行為を行うユーザに対する社会的な制裁はほとんど行われていません。そのため、安倍官房長官の記者会見では、Winnyを利用することによるリスクの恐怖を十分に伝えることができず、結果として単なるWinnyの宣伝に終わってしまったと僕は考えています。
そこで、まずは著作権侵害と情報漏洩を徹底的に罰し、その様子を報道することで国民を教育するべきです。
僕は、Winnyプロトコルやそれを開発した金子氏には罪がないと思っています。罪があるのは、そのWinnyを利用して著作権侵害や情報漏洩を起こしたユーザの方であり、それらの罪が今に至るまで、そして現在も見逃されていることこそが、最近のWinny騒ぎを引き起こした原因なのです。
また、この日記に無関係と判断したコメント及びトラックバックは削除する可能性があります。ご了承ください。