noriyuruの日記: BitTorrent for P2P
日記 by
noriyuru
<<匿名性がないとは?>>
BitTorrentでは設計において匿名性がない、とされているが実際にどのように“ない”のか考察してみる。
ピア間は直接、ファイルの断片をやりとりするため各ピアは誰がアクセスしてきたのか知ることができる。もちろん、どのファイルを手に入れようとしているのかも知ることができる。
これは、目的と所在(IP)が隠蔽されないことを示している。
IPが判明しても暗号化された経路を使用することでピア間の秘密が守られると仮定する。この仮定に当たっては各ピアは接続してくるピアの情報を秘匿する義務、または努力をするものとする。簡潔に述べれば“自主的な連帯”である。
その場合でも、ダウンローダーはそれ自体でピアの所在を知ることができないためトラッカーへのアクセスが発生する。トラッカーの使用はサーバー・クライアントモデルを意味するため、サーバー側で目的と所在を知ることができる。
トラッカーへのアクセスを暗号化することはできるが(実際にHTTPSが使用できる)サーバーは経済、社会的理由により“自主的な連帯”に参加することができないことが多い。また、サーバーは案内役を務めることから多くの情報を所持することになる。
ここで、メタ・インフォファイル(.torrent)に注目する。このファイルは目的であるファイルに関する要約とトラッカーへのURLを含む。トラッカーへのURLはファイル自身と関係がないため、リアルタイムに自動生成する事(ただしトラッカーが実際に存在すれば)ができる。
BitTorrentの面白いところは―メタ・インフォファイルを作成するためにはトラッカーが存在しなければならない、トラッカーが機能するためにはオリジン・ダウンローダーが存在しなければならない、ダウンローダーが機能するため(オリジンであれダウンロードのためであれ)にはメタ・インフォファイルが存在しなければならない―という“三竦み”状態にある。このような状態を当然とするのは、もともと巨大ファイルの配布を加速するために参加者同士で協力しあうのが目的だからだろう。
ここで、再び元の世界―ファイルへのポインター、要求応機能力、ファイル供給能力―を一箇所にもどしてみる。つまり、“三竦み”から“三位一体”へ…
<<BT4P2P ストーリー>>
東亜連盟捜査局仮想性犯罪捜査官 森田庚が捜査で押収したXXXファイル―『144 妹性命体12歳x12人』(xは“ぶっかけ”と読む)―を不用意に共有設定した。捜査のために始動しているP2Pアプリケーション―『WixY』―は共有設定に反応し対象ファイルのメタ・インフォファイルを生成する。
他のピアからXXXファイル―『144 妹性命体12歳x12人』―についてあいまいな問い合わせ(ワイルドカードが使用された名前やファイルの全体に対するハッシュID、メタ・インフォファイルに記述されているブロックに対するハッシュとの一致要求など)が送られると森田捜査官の机上常設携帯端末のP2Pアプリケーション―『WixY』―は対象となるファイルが発見された旨をピアに送り返す。
このとき、メタ・インフォファイルにトラッカーとして自分自身の場所を書き込んで渡す。もし、他のトラッカーの存在を知っているなら他のトラッカーの場所を書き込んで渡してもよい。問い合わせの要求によってはトラッカーの場所だけ答えてもよい。
ピアは支持されたトラッカー、森田捜査官の机上常設携帯端末のトラッカーへアクセスしダウンローダーの場所を教わる。この場合はやはり森田捜査官のオリジン・ダウンローダーであり、そこへダウンローダーでアクセスする。この時、P2Pアプリケーション―『WixY』―に関するログが取られている場合、ダウンロードを試みたピアは匿名性が確実に失われる。しかし、P2Pは常に各ピアへの信頼で成り立っている。誰が猫に鈴をつけるのか? 相手がねずみであるならば… 猫がいたからこそ鈴をつける必要が生じたことを思い出さねばならない。我々は如何ともしがたい欲望の中にいる。
いずれの状況でも経路暗号化は可能である。これは部外者にとって何の通信が行われているか知る方法がないことを意味する。
<<P2Pシステムの本質>>
P2Pにおいてファイルの存在を証明する方法がない。Webサイトなどではそのサイト、サイトに存在するファイルを確認できる。ただ、サイトの場所がわからないだけである。そのため、検索サービスを利用することになる。この方法はP2Pでも有効だろう。つまり、ファイルがあるという確証だけを伝えるのである。これを専門とするピアも(分散しP2Pの形で)現れるだろう。
P2Pではファイルポインターが存在しない特徴がある。ファイルリレー方式、ピア間直接転送方式、キャッシュ伝播方式などの方式であれ“どこに実体があるのか?”を事前に明示する方法がない。このため、ファイルの取得を行為を“雲のような行為”にできると幻想してしまう。BitTorrentでは目標ファイルの配布を仕切っているトラッカーへの接続がこれにあたる。しかし、完全なファイルがあれば(または不完全なファイルであっても!)自分自身をオリジン・ダウンローダーとしてトラッカーになることができる。
何らかの方法でトラッカーに接続できればBitTorrentではピア間の転送協力が始まる(トラッカーが複数のピア情報を所有しピアが協力的であれば)。トラッカーが分散するとトラッカーが所持するピア情報が減るり転送協力の威力低下を意味する。BitTorrentにおいてトラッカーがサーバーとして振舞う理由でもあると思われる。これを防ぐために分散したトラッカー同士でも連絡を取り合いピア情報を共有することが考えられる。この場合ピアが申告するIDの衝突が考えられるが160bitの空間では衝突が起こらないと考えてもよいし、意図的な衝突を回避するために衝突が起こった場合はそのIDを捨てる方法も考えられる。
利己的なピアの存在はどのように対処するのか? BitTorrentではファイルの取得要求はファイルの先頭からではなくファイルの適当に選ばれるブロックとなる。これを利用し、各ピアがそれぞれのが取得したブロックを交換(正確には提供)しあう。この仕組みによりROMに徹する(自分が取得したブロックを提供しない)ピアに対してブロックの提供を拒むことができる。参加者が協力し合えば最速で全ブロックがそろい、各自が孤立すれば旧態然としたダウンロード状態になるだけである。オリジン・ダウンローダーはファイル一つ分のブロック群をばらばらに各ピアへ一度ばら撒くだけである。
ところで、ピアの裏切りを防ぐ方法は考えなくてよいのだろうか? これについては転送協力、共有は人間の都合であることに注目したい。つまり囮、潜入といった手段に対抗する方法はない。ピアの背後にいるユーザの信頼、信用は他のレイヤーの担当である。必要ならばPGPのような方法でユーザを査定する方法もあるだろう。この方法は何らかの暗号化の鍵を信用する場合にも適用できる。
P2Pに限らず、どの通信でも暗号化できることに注目すべきだ。これは暗号化経路が可能であるならば暗号化経路網もまた可能であることを意味するだろう。ピア間の接続の完全覆面可は本来別のレイヤーの問題であることを意味する。暗号化経路網が効率的ではないのは当然の事である。P2PはVPNとにた問題を抱えているからである。つまり、ネットワークレイヤーにネットワークレイヤーを重ねる事である。
真の匿名性(と日本で呼ばれるもの)を得るためには暗号と同じ歴史を歩むことになる。すなわち、落ち葉を隠すには森に隠すということである。大規模な参加を促し、隣人が自分について大声を上げない人間であることを期待するしかない。
BitTorrentを元にP2Pについて考えた。この中で、現在一体のものとして登場しているP2Pアプリケーションにレイヤーという考えを導入することができた。
ネットワークがそうであったようにP2Pも何層かのレイヤーの上に成り立っている。それぞれのレイヤーを埋め技術はすでに存在している。P2Pシステムとはそれらを連携させて完成するものである。
BitTorrentでは設計において匿名性がない、とされているが実際にどのように“ない”のか考察してみる。
ピア間は直接、ファイルの断片をやりとりするため各ピアは誰がアクセスしてきたのか知ることができる。もちろん、どのファイルを手に入れようとしているのかも知ることができる。
これは、目的と所在(IP)が隠蔽されないことを示している。
IPが判明しても暗号化された経路を使用することでピア間の秘密が守られると仮定する。この仮定に当たっては各ピアは接続してくるピアの情報を秘匿する義務、または努力をするものとする。簡潔に述べれば“自主的な連帯”である。
その場合でも、ダウンローダーはそれ自体でピアの所在を知ることができないためトラッカーへのアクセスが発生する。トラッカーの使用はサーバー・クライアントモデルを意味するため、サーバー側で目的と所在を知ることができる。
トラッカーへのアクセスを暗号化することはできるが(実際にHTTPSが使用できる)サーバーは経済、社会的理由により“自主的な連帯”に参加することができないことが多い。また、サーバーは案内役を務めることから多くの情報を所持することになる。
ここで、メタ・インフォファイル(.torrent)に注目する。このファイルは目的であるファイルに関する要約とトラッカーへのURLを含む。トラッカーへのURLはファイル自身と関係がないため、リアルタイムに自動生成する事(ただしトラッカーが実際に存在すれば)ができる。
BitTorrentの面白いところは―メタ・インフォファイルを作成するためにはトラッカーが存在しなければならない、トラッカーが機能するためにはオリジン・ダウンローダーが存在しなければならない、ダウンローダーが機能するため(オリジンであれダウンロードのためであれ)にはメタ・インフォファイルが存在しなければならない―という“三竦み”状態にある。このような状態を当然とするのは、もともと巨大ファイルの配布を加速するために参加者同士で協力しあうのが目的だからだろう。
ここで、再び元の世界―ファイルへのポインター、要求応機能力、ファイル供給能力―を一箇所にもどしてみる。つまり、“三竦み”から“三位一体”へ…
<<BT4P2P ストーリー>>
東亜連盟捜査局仮想性犯罪捜査官 森田庚が捜査で押収したXXXファイル―『144 妹性命体12歳x12人』(xは“ぶっかけ”と読む)―を不用意に共有設定した。捜査のために始動しているP2Pアプリケーション―『WixY』―は共有設定に反応し対象ファイルのメタ・インフォファイルを生成する。
他のピアからXXXファイル―『144 妹性命体12歳x12人』―についてあいまいな問い合わせ(ワイルドカードが使用された名前やファイルの全体に対するハッシュID、メタ・インフォファイルに記述されているブロックに対するハッシュとの一致要求など)が送られると森田捜査官の机上常設携帯端末のP2Pアプリケーション―『WixY』―は対象となるファイルが発見された旨をピアに送り返す。
このとき、メタ・インフォファイルにトラッカーとして自分自身の場所を書き込んで渡す。もし、他のトラッカーの存在を知っているなら他のトラッカーの場所を書き込んで渡してもよい。問い合わせの要求によってはトラッカーの場所だけ答えてもよい。
ピアは支持されたトラッカー、森田捜査官の机上常設携帯端末のトラッカーへアクセスしダウンローダーの場所を教わる。この場合はやはり森田捜査官のオリジン・ダウンローダーであり、そこへダウンローダーでアクセスする。この時、P2Pアプリケーション―『WixY』―に関するログが取られている場合、ダウンロードを試みたピアは匿名性が確実に失われる。しかし、P2Pは常に各ピアへの信頼で成り立っている。誰が猫に鈴をつけるのか? 相手がねずみであるならば… 猫がいたからこそ鈴をつける必要が生じたことを思い出さねばならない。我々は如何ともしがたい欲望の中にいる。
いずれの状況でも経路暗号化は可能である。これは部外者にとって何の通信が行われているか知る方法がないことを意味する。
<<P2Pシステムの本質>>
P2Pにおいてファイルの存在を証明する方法がない。Webサイトなどではそのサイト、サイトに存在するファイルを確認できる。ただ、サイトの場所がわからないだけである。そのため、検索サービスを利用することになる。この方法はP2Pでも有効だろう。つまり、ファイルがあるという確証だけを伝えるのである。これを専門とするピアも(分散しP2Pの形で)現れるだろう。
P2Pではファイルポインターが存在しない特徴がある。ファイルリレー方式、ピア間直接転送方式、キャッシュ伝播方式などの方式であれ“どこに実体があるのか?”を事前に明示する方法がない。このため、ファイルの取得を行為を“雲のような行為”にできると幻想してしまう。BitTorrentでは目標ファイルの配布を仕切っているトラッカーへの接続がこれにあたる。しかし、完全なファイルがあれば(または不完全なファイルであっても!)自分自身をオリジン・ダウンローダーとしてトラッカーになることができる。
何らかの方法でトラッカーに接続できればBitTorrentではピア間の転送協力が始まる(トラッカーが複数のピア情報を所有しピアが協力的であれば)。トラッカーが分散するとトラッカーが所持するピア情報が減るり転送協力の威力低下を意味する。BitTorrentにおいてトラッカーがサーバーとして振舞う理由でもあると思われる。これを防ぐために分散したトラッカー同士でも連絡を取り合いピア情報を共有することが考えられる。この場合ピアが申告するIDの衝突が考えられるが160bitの空間では衝突が起こらないと考えてもよいし、意図的な衝突を回避するために衝突が起こった場合はそのIDを捨てる方法も考えられる。
利己的なピアの存在はどのように対処するのか? BitTorrentではファイルの取得要求はファイルの先頭からではなくファイルの適当に選ばれるブロックとなる。これを利用し、各ピアがそれぞれのが取得したブロックを交換(正確には提供)しあう。この仕組みによりROMに徹する(自分が取得したブロックを提供しない)ピアに対してブロックの提供を拒むことができる。参加者が協力し合えば最速で全ブロックがそろい、各自が孤立すれば旧態然としたダウンロード状態になるだけである。オリジン・ダウンローダーはファイル一つ分のブロック群をばらばらに各ピアへ一度ばら撒くだけである。
ところで、ピアの裏切りを防ぐ方法は考えなくてよいのだろうか? これについては転送協力、共有は人間の都合であることに注目したい。つまり囮、潜入といった手段に対抗する方法はない。ピアの背後にいるユーザの信頼、信用は他のレイヤーの担当である。必要ならばPGPのような方法でユーザを査定する方法もあるだろう。この方法は何らかの暗号化の鍵を信用する場合にも適用できる。
P2Pに限らず、どの通信でも暗号化できることに注目すべきだ。これは暗号化経路が可能であるならば暗号化経路網もまた可能であることを意味するだろう。ピア間の接続の完全覆面可は本来別のレイヤーの問題であることを意味する。暗号化経路網が効率的ではないのは当然の事である。P2PはVPNとにた問題を抱えているからである。つまり、ネットワークレイヤーにネットワークレイヤーを重ねる事である。
真の匿名性(と日本で呼ばれるもの)を得るためには暗号と同じ歴史を歩むことになる。すなわち、落ち葉を隠すには森に隠すということである。大規模な参加を促し、隣人が自分について大声を上げない人間であることを期待するしかない。
BitTorrentを元にP2Pについて考えた。この中で、現在一体のものとして登場しているP2Pアプリケーションにレイヤーという考えを導入することができた。
ネットワークがそうであったようにP2Pも何層かのレイヤーの上に成り立っている。それぞれのレイヤーを埋め技術はすでに存在している。P2Pシステムとはそれらを連携させて完成するものである。