コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

「ファイル共有ソフト」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Meniv (会話 | 投稿記録)
統合提案
Meniv (会話 | 投稿記録)
P2P共有を統合
タグ: サイズの大幅な増減
170行目: 170行目:
[[Category:アプリケーションソフト]]
[[Category:アプリケーションソフト]]
[[Category:著作権侵害]]
[[Category:著作権侵害]]

{{Mergeto|ファイル共有ソフト|ファイル共有ソフト|date=2014年9月}}
P2P共有は、本来は単にP2P([[Peer to Peer]]の略称)通信によるデータ共有のことであるが、実例上は多数ユーザーによるP2P通信を利用したファイル共有を指す。匿名性をP2P共有の特徴とする用例も目立つが、匿名性はP2P共有の必要条件ではない。このようにP2P共有という用語の立場は不明瞭であるが、以下ではこの「実例上のP2P共有」を単にP2P共有として述べる。

なお、用語としてP2P共有とP2Pが区別されず使用されていることがあるが、P2P技術を用いたサービスがP2P共有技術を用いたサービスと誤解されるケースも目立つため、明確に区別するべきである。

P2P共有には、(通信を行う[[ソフトウェア]]や[[通信プロトコル]]などに左右されつつも、)発信者の[[匿名]]性がある程度確保できるという特徴があり、[[Winny]]に代表されるような[[アンダーグラウンド (文化)|アンダーグラウンド]]な用途でも利用が多い。

== P2P共有における匿名化技術 ==
従って、実際のP2Pでは、'''どのように相手のIPアドレスを知るか'''、が重要なポイントとなる。昨今のP2Pでは、例えば、コンテンツのタイトルや検索キーワード、放送局のチャンネル名といった、人にとって意味のある名前で通信相手を特定して、通信ができるようになっている。
この意味で、P2P方式での通信網は、[[オーバーレイ・ネットワーク]](Overlay Network)と見ることができる(以下、OLNと略記する)。
通常のIPネットワークの上に、もう一層、別のネットワークを、特定のニーズに合うノード同士で作り上げる、という意味合いである。

もう少し具体的に言うと、例えば[[Winny]]では、「欲しいコンテンツの名前」で「そのキャッシュを持っている相手」を特定して通信をおこない、例えば、[[Skype]]では、「ニックネーム」で「ニックネームに対応する相手」を特定して通信をおこなう。一般化すると、「キー」を手かがりに「キーに対応するデータを持つ者」を発見して、その相手と通信をする、という動作になる。「キー」と「データ」をペアで結びつけた情報を'''インデックス情報'''と呼ぶ。通常「データ」は、そのデータを持つ者のIPアドレスとして記憶させる。(インデックスは、'''key-valueペア'''という呼び方をする場合もある。)
P2Pでは、インデックス情報をどのように管理するかが重要となる。

=== メリット ===
;匿名性
<!--匿名性には、利用者の目的によって、メリット、デメリットの両面があるが、この位置に書いておく-->
:P2P方式で、データの中継転送を数多く行えば、誰がそのデータを公開したかを突き止めることを、非常に困難にすることができる。[[Winny]]、[[Share (ソフトウェア)|Share]]、[[Perfect Dark]] などの、アンダーグラウンドなP2Pシステムでは、著作権を無視した違法なコンテンツの公開を、誰が行ったかを隠蔽するために、匿名性が重要視される<ref>[http://imony.fbox.info/develop/point.html Imony開発者の考慮ポイント]</ref>。これは、管理をする立場から見るとデメリットになるわけで、逆に、商用のP2Pシステムでは匿名性は排除して、トレーサビリティを重視した実装を目指す場合も多い。誰がいつどういうデータを送受信したか、までトレースできるようになっているシステムも模索されている<ref>[http://www.nec.co.jp/press/ja/0501/0402.html NEC P2PWeb]</ref>。
:また、言論の自由という観点から、匿名性を持たせたP2P掲示板システム([[新月 (掲示板)|新月]]など)も注目されている。

=== デメリット ===
;実装の困難さ
:実装の難易度が高い。
:特に、エンドユーザの端末がPCである場合には、その電源オン期間が不確定な場合が多く、端末の頻繁な脱退や長期の不在期間を考慮したアルゴリズムが必要になる。参加脱退が激しいノードが居ることに対してどう対処するかは、「Churn問題」という呼び方をする<ref>[http://www.shudo.net/publications/ComSys2007-churn-resilience/shudo-ACS-21-churn-resilience.pdf 下位アルゴリズム中立なDHT実装への耐churn 手法の実装]</ref>。P2P方式は、クライアントサーバ方式に比べて、信頼性が劣るイメージがあるが、逆に、このChurn問題への対応策を取らざるを得ないことにより、自ずから耐障害性が高いシステムが出来上がるという側面もある。
:端末がPCである場合は、各PCの処理能力、転送能力、保存容量などの条件が千差万別であり、できるだけ多くの種類のPCで動くようにするには、注意深い実装が必要になる。
;動作確認の困難さ
:動作確認、評価の難易度が高い。設計段階では、シミュレータなどを用いての動作確認が可能であるが、最終的には、多数のノードを実際に並べて動作確認を取る必要がある。これが、技術的、経済的に難しく、実環境でシステム評価を行って確実に動くシステムに仕上げるには、多大な手間と費用がかかり、これまでクライアントサーバ方式でやってきた配信業者が、P2P方式に乗り換えようとする際の参入障壁となっている。実際には、10000ノードレベルになると、開発者や開発業者が、これを自前で揃えるのは現実的ではなく、一般人から、有償・無償でモニターを募って、実証実験を行うケースが多い<ref>[http://www.tv-bank.com/jp/20081031.html TVバンクのP2Pライブ配信のプレスリリース]</ref><ref>[http://www.biglobe.co.jp/press/2008/1111-1.html BIGLOBEとウタゴエによるライブ動画配信トライアル]</ref><ref>[http://www.brother.co.jp/news/2007/dstream/ ブラザー工業 D-Stream コンテンツ配信システムの実証実験]</ref>。
;削除制御の困難さ
:[[Winny#Winnyによる情報流出事件|Winny事件]]で注目されたように、データが一旦P2P網に公開されると、キャッシュを持つノードが存在する限り、データが公開され続ける、という問題がある。Winnyの場合では、そのデータに誰もアクセスしなくなると、しだいにキャッシュから忘れられて、最後にはデータがP2P網上から消滅するのであるが、覚えている端末が少しでもいると、誰かがアクセスしたときに増殖する。また、一旦データのコピーをキャッシュに持った端末が、電源を切った状態になると、一旦P2P網上からなくなったように見えても、再び電源が入ったときに、データが復活するという事情も手伝って、完全な削除を困難にしている。
:ただ、最近の商用のP2P配信システムでは、管理側からリモートで削除ができる仕組みを、あらかじめ実装しておくことで、この問題は克服されつつある<ref name="EinyOnDmand">[http://www.brother.co.jp/einy/about/ondemand.htm Einy On-Demand]</ref>。
;セキュリティ制御の困難さ
:これもWinny事件で注目されたように、エンドユーザのPC上の個人情報が、ユーザが意識しないうちに、漏洩する可能性がある。これは、エンドユーザが自分でデータを公開できるようなタイプのP2Pシステムで起きる。この公開機能を利用して、違法なコンテンツや、ウィルス入りのデータが、頻繁に公開されて、様々な社会問題となった。商用の多くのP2Pシステムでは、この問題に対する対策として、データの投入口を管理者側にしか設けない作りとなっており、不正なデータが混入する恐れは無くなっている<ref>[http://www.bittorrent.co.jp/ BitTorrent DNA]</ref><ref>[http://www.skeedtools.com/ SkeedCast]</ref><ref>[http://www.gridsolutions.co.jp/technology/ グリッド・デリバリー]</ref><ref name="EinyOnDmand"/>。
;インターネットへの負荷
:昨今のインターネットのトラフィックの中身を解析すると、そのほとんどがファイル共有ソフトの物であることが、問題視されている。これ自体は、利用者のニーズがあるために発生している結果であり、使いたい人が多いのであれば、通信キャリアやISPとしてはインターネットを強化していくべきものであるが、問題は、次項に掲げたように、この負荷と料金が経済的に折り合っていないことである。
;ISP、通信キャリアの料金体系とのミスマッチ
:現状の通信キャリアやISPの間の通信料金体系は、インターネットをクライアントサーバモデルで利用することを想定している。すなわち、一般ユーザは、さほど大きなトラフィックを使うことはないので、使いたい放題の固定料金体系とし、一方、コンテンツを提供する業者は、サーバを設置して太い回線を使うので、これらの業者から比較的高い料金をもらうという構造である。また、各ISPや通信キャリア会社の間では、インターネットの階層(Tier)の上下関係、および、IPパケットの通過量に応じて、従量制のトランジット料金のやりとりが行われている。
:ここにP2P方式のアプリケーションが増えてくると、当初想定していなかったような量のデータが一般ユーザのPCから送受信され、大きなサーバを設置していない地区のネットワークから大量のトラフィックが発生し、ISPのルータに負荷がかかったり、ISP間のトランジット料金のバランスが実体トラフィックと合わなくなるなど、料金体系を考えたときの目論見が外れて、様々なコスト上のアンバランスが生まれる。ただこれは、料金体系の改訂が、利用状況に追いついていないために生じている問題であり、時間が解決するものと思われる。
;環境への負荷
:通常P2Pはサーバを設置しないため環境負荷が低いと思われがちだが、ファイル共有ソフトを使用する場合は主に使っているパソコンの他にP2P用のパソコンを用意した方が無難なため、ファイル共有目的だけ見ればパソコンの台数は倍になる計算になる。またクライアント型では受信したいときだけパソコンを起動していれば良いがP2Pでは常に起動している必要が有ることも要因となる。
:ただしこの問題は規模や用途により異なるので一概に環境負荷が高いとは言えないので注意が必要。(チャットなどの用途では環境負荷は低くなることが多い)


== 技術的な分類 ==

=== インデックス情報の持ち方での分類 ===
「このキーに対応するデータを持っているのは誰か?」という問いに答えるためには、キーとデータのありかの対応表(インデックス)を持っている必要があるが、これをサーバに集中して持たせる場合と、各ノードに分散して持たせる場合と、特定の選ばれたノードに分散して持たせる場合、の3種類が存在する。''(図を入れると良い)''

==== ハイブリッドP2P ====
[[ファイル:BitTorrent DNAの動作説明2.PNG|thumb|200px|ハイブリッドP2Pの仕組み(図はBitTorrentのもの)。<br />欲しい情報となるキーファイルをサーバーに伝え、実際のデータはノード同士でやりとりを行う仕組み]]
ハイブリッドP2Pにおいては、インデックス情報を、中央のインデックスサーバで一括して管理する。新しいデータを保持したノードは、自分が持っていることを、インデックスサーバに申告しておく。データを欲するノードが、「このキーに対応する相手を教えて下さい」とインデックスサーバに問い合わせると、対応する相手のIPアドレスを教えてくれる。インデックスが膨大になると、スケーラビリティが無くなる点が、後述のピュアP2Pと比べて劣るが、通常規模のシステムであれば、この方式で事足りるケースが多い。インデックスサーバがダウンすると、システム全体が停止するため、耐障害性の面では、ピュアP2Pに劣る。

[[BitTorrent]]、[[Napster]]、[[WinMX]]、放送型P2P([[オーバーレイマルチキャスト|OLM]])の多くは、この方式を採用している。

<span id="pureP2P"></span>
==== ピュアP2P ====
[[ファイル:P2P-network.svg|thumb|200px|ピュアP2Pの仕組み。一切の処理をコンピューター同士が対等に通信を行うのが特徴である。]]
インデックス情報は、各ノードが少しずつ分散して持ち合う。
自分の知っているノードに、「データを持っているのは誰ですか?」というメッセージを投げると、そのノードが知っていれば回答が返り、知らなければ又聞きをしてくれる(メッセージを転送する)仕組みになっている。インデックスが膨大になっても破綻しないため、スケーラビリティが高い。メッセージ転送の方式により、非構造化タイプと構造化タイプの2つに分類できる(後述)。

[[Gnutella]]、[[Freenet]]、[[OceanStore]]、[[Winny]]、[[Share (ソフトウェア)|Share]]は、この方式を採用している。

ピュアP2Pに参加する際には、既に参加しているノードのIP情報を何らかの形で知っている必要がある。このためには、常に活きているノード(コンタクトノード)を用意しておいて、参加時はいつもそこに接続するようにするか、あるいは、参加しているいくつかのノードの情報をサーバに集めて、ここから知るように構成する。

==== スーパーノード型P2P ====
インデックス情報は、特定の選ばれたノード(スーパーノード)が分担して持つ。スーパーノードには、できるだけ安定な端末(ずっと電源が入っていて、通信回線も安定していて、帯域幅も太いようなノード)が選ばれる。スーパーノードは、一般のエンドユーザの端末から能力に応じて選ばれるが、サービス提供者側が用意した端末であることも多い。

[[Kazaa Lite|KaZaA]]、[[Skype]]は、この方式を採用している。

=== ピュアP2Pの構造による分類 ===
ピュアP2Pにおいては、インデックス情報も分散されて持たれるため、相手先IPアドレスの発見の仕組みは、検索メッセージを転送することで行われる。転送方式で、2種類に分類ができる。

;非構造化オーバーレイ
:問い合わせ元のノードは、キーに対応する相手を発見するために、手当たり次第に、自分が知っているノード(かつて通信をしたことがあるノードなど)に対して、「データを持っているのは誰ですか?」というメッセージを投げつけ、受け取ったノードは、持っていれば返答し、持っていなければ検索メッセージをコピーして、他のノードに転送する方式。メッセージがネズミ算式に増えるので、フラッディング方式(洪水という意味)という別名が付いているが、メッセージが増えすぎないように、転送回数やメッセージの生存時間などで制限をかける必要がある。そのため、OLN上のどこかに相手が存在するにも関わらず、発見できない場合がある。
:[[Gnutella]]、[[Freenet]]、[[Winny]]、[[Share (ソフトウェア)|Share]]などで実装されている。
;構造化オーバーレイ
:「データを持っているのは誰ですか?」というメッセージを転送する際の、転送先を選ぶ方法をあらかじめ構造的に決めておいて、「キーに対応する相手」が確実に分かるようにした方式である。よく知られている方式として、[[分散ハッシュテーブル]](Distributed Hash Table, DHT)、[[SkipGraph]]などがある。検索メッセージの転送先の範囲が、キーに応じてだんだんと絞られていくように設計されている。概略イメージは、A県の中のB市の中のC町の中の田中さん、というように範囲を絞る形で、メッセージが転送される、と考えると理解がしやすい。
:DHTの実装例としては、[[Chord]]、[[CAN]]、[[Pastry]]、[[Tapestry]]、[[Kademlia]]、[[OpenDHT]]、[[Overlay Weaver]]などがよく知られている。

== 脚注 ==
{{脚注ヘルプ}}
{{Reflist}}

[[Category:P2P]]

2014年9月14日 (日) 05:33時点における版

ファイル共有ソフト(ファイルきょうゆうソフト)とは、インターネットを通じてファイルを不特定多数で共有することを目的としたソフトウェアである。ファイル交換ソフトとも呼ばれる。一般にファイル共有と呼ばれる場合、著作権を侵害する用途に使われることが多いため、グループウェアなどで文章などを共有する場合はドキュメント共有と呼び、区別されることが多い。

概要

ファイル共有ソフトは、ソフトが定めた専用のプロトコルで通信を行うことで専用のネットワークを構成し、そのネットワークに接続された不特定多数のコンピュータとの間で共有されているファイルのやりとりを行う仕組みを持つソフトウェア。ファイルを保持するコンピュータと要求するコンピュータとの間に転送経路を確保するために、検索機能・マッチング機能を備えることが多い。効率的な共有を実現させるために、ほとんどのファイル共有ソフトはPeer to Peerモデルを用いて通信させる。

2001年以後、高速大容量通信(ブロードバンドインターネット接続)が世界的に発展するとともに、ファイル共有ソフトの利用者数も大幅に増加した。

日本において、当初は一対一でファイルをやり取りすることが主だったことからファイル交換ソフトと呼ばれているが、Winny以降、複数対複数でのやり取りが一般的になってからはファイル共有ソフトとも呼ばれている。一時期日本では利用率が9%を超えたこともあったが、2010年には使用率が5.8%まで減少した[1]

クライアント・サーバ・モデル

基本的に、サーバがファイルを一極集中管理し、サーバとクライアントとの間で転送を行う。全ての転送はサーバを経由することになる。

負担がサーバに集中するため、全体でのファイル流通能力はサーバの能力に依存し最も不利である。一方で、容易に管理が可能で、ファイルの変更や管理が即座に反映されたり、ダウンロードが要求後すぐに始まるなど、リアルタイム性では最も有利である。全ての検索・転送をサーバが把握できるため匿名性は無い。

HTTPFTPなどを利用したファイル共有がこれに当たる。今ではファイル共有ソフトの方式としては余り利用されていないが、手軽さやリアルタイム性の良さから小容量のファイルの交換に関しては今も多く活用されている方式である。

ハイブリッドP2Pモデル

基本的に、ファイルの転送はノード同士の間で行うが、ファイルの検索とノードのマッチングはサーバが行う。

一極集中管理が向いている検索をクライアント・サーバ・モデルで、分散管理が向いている転送をP2Pモデルで行うので、最も合理的で効率が良い。容易に管理も可能で、ファイルの検索に関してはリアルタイム性は良いが、ファイルのダウンロードに関してはノードの状態に依存しリアルタイム性は不利となる。全ての検索・転送をサーバが把握できるため匿名性は無い。

ファイル共有ソフトの先駆けであるNapsterの他、日本で有名なWinMX、海外で最も普及しているBitTorrentが挙げられる。なお、アップロード/ダウンロード速度はクライアントの回線の種類と状況、マシンスペックに依存する。

ピュアP2Pモデル

基本的に、全ての通信をノード間で行う。

サーバに依存しないため、ネットワークの耐障害性が非常に高い。本体を把握するサーバが無いため、実装次第では匿名性を確保可能である。ファイルの転送にしては効率が良いが、ファイルの検索がネックとなる。

問題点

共有されるファイルの内容によっては違法行為となる場合があり、警察によるP2P監視システムを利用したサイバーパトロールや一斉検挙により、検挙されるものが後を絶たない[2]。 日本において、2013年にファイル共有ソフト関連で検挙された者の内訳[3]は、著作権関連が66%、猥褻物陳列が19%、児童ポルノ禁止法違反が15%となっている。使用されたソフト別ではShareが50%、Perfect Darkが20%、Cabosが11%、μTorrentが11%、WinMXが7%、emuleが1%となっている。

著作権問題

手軽に共有できる点から著作権によって複製に制限があるデータを共有させるといった問題も発生している。

最初にファイル共有ソフトが著作権問題に問われたソフトウェアにNapsterがある。1999年12月RIAAがNapsterを提訴し[4]、Napsterは非商用目的で共有するのは合法であると主張したが、米連邦地裁からサービス停止命令が出され[5]、Napsterもこれに反論し続けたが、2001年7月にシステム障害を理由として、ファイル共有ソフトとしてのNapsterはサービスを終了した[6]

WinnyShareなどのファイル共有ソフトは、ファイルを暗号化し、データを送受信してファイルを共有する。そのため配布者の特定が困難で、著作権の保持された音楽や映画、市販のソフトウェアなどを違法に交換する者が絶えない。コンピュータソフトウェア著作権協会(ACCS)と不正商品対策協議会(ACA)の調査[7]によると、音楽や映像、プログラムなど著作権を明らかに侵害しているファイルの流通は、Winnyが39.29%、Shareが46.31%、Perfect Darkが60.13%、Gnutellaが52.30%、BitTorrentが73.03%にもなる。

日本国内では、Winnyが高い人気を誇ったが、Winnyの開発者が逮捕され、利用者への取り締まりが進んでいる。それと呼応し、ShareというWinnyと類似した仕組みで動作するソフトウェアが開発された。現在はWinny・Share共に暗号化・匿名化の仕組みは解明され、配布者の特定が原則として可能になっている。ただし、特定にはそれぞれのネットワーク全体の絶え間ない監視が必要なので、監視を始める以前から存在するか、監視対象となる前のノードから発信されたファイルについては配布者特定は不可能である。

共有されるファイルに関して著作権による許諾を不要とする動き

スウェーデンにおいて2005年6月に導入された新たな法律により、インターネットを通じてソフトウェアや映画などをファイル共有することが違法となった。このため100万人に上ると言われるファイル共有者たちは、たちまち犯罪者ということになってしまった。こうした動きをうけてファイル共有の合法化を公約とする海賊党が結党された。海賊党は瞬く間にスウェーデンや海外の新聞に取りあげられることとなった。

スウェーデン海賊党の活動に鼓舞され、40カ国以上の国々で海賊党が結党され活動を行っている。[8]

2009年6月に実施された欧州議会議員選挙において、海賊党は1議席を獲得している。

特にドイツ海賊党の支持率上昇の勢いは凄まじく、2011年9月に行われたベルリン(都市州)の市議会選挙では初めて議席獲得に必要な得票率5%を超える8.9%を得て15議席を獲得。州議会レベルで初の議席を獲得し大躍進した[9][10]

現地のメディアによると国政レベルでもドイツ海賊党の支持率は上昇し、次回の国政選挙でドイツ海賊党が議席を獲得する可能性が高いとしている[11]

2011年10月、欧州議会において55議席を保持し第4会派を構成ている欧州緑グループ・欧州自由連盟が、個人的な使用のためのファイル共有の合法化DRM(デジタル著作権管理、英:Digital Rights Management)の完全な禁止著作権保護期間を5年に短縮することを求めることを表明した[12]欧州緑グループ・欧州自由連盟にはスウェーデン海賊党が所属している。

しかし、このように著作権保護の緩和を求める声は多く、著作権者が個別に許諾範囲を緩和することはあっても、著作権保護は著作物による産業の基盤であるため、TPP交渉の例を挙げるまでもなく、全体的にはむしろ保護期間の長期化、保護および著作権侵害に対する取締りの強化が行われている。

ファイル共有ソフトの歴史

Napster

Napster1999年1月に公開された、音楽の共有を目的としたソフトウェア及びサービス。このサービスはMP3ファイルの共有を行うことができた。P2Pモデルを用いたファイル共有ソフトの先駆けであり、初めて多くの利用者を獲得したP2Pファイル共有ソフトとなった。尚、日本語に対応していないことから日本ではほとんど普及しなかった。RIAAから訴えられ敗訴したことをきっかけに、2000年7月にサービスは停止した。

ファイルの転送はP2Pで行うが、ファイルの検索・ノードのマッチングは専用のサーバが集中管理して行うハイブリッドP2Pモデルを採用している。このため、専用のサーバが停止すると一切機能しなくなる。専用のサーバはNapster社が用意したものを利用する。人気があるファイルを持つノードにアクセスが集中して転送が遅くなる問題を持っている。

Gnutella

最初のGnutellaクライアントは、AOL社のNullsoft部門の社員が会社に黙って開発し2000年3月に公開したものである。これはAOLによって公開・開発はすぐに停止されたが、このクライアントの解析によりプロトコルが解明したことで、さまざまな互換クライアントが今も開発されている。現在でもGnutella規格のクライアントソフトLimeWireなど多くの利用者がいる。

Napsterとの違いはピュアP2Pモデルを採用していることである。従来のファイルの転送に加えて、ファイルの検索・ノードのマッチングもP2Pで実現し、専用のサーバを不要とした。このように専用のサーバに依存しないためGnutellaネットワークは極めて高い耐障害性を持ち、いちど機能し始めてしまうと止めることは困難となる。

WinMX

WinMX2001年に公開された。マルチバイト文字に対応しているため、日本で初めて普及したファイル共有ソフトとなった。(Unicodeに対応しているかは不明。)高機能なチャット機能も持ち、独自のコミュニティが生まれている。雑誌による丁寧な解説もあり、初心者による導入も増え利用者の裾野が広がっていった。

2001年11月、日本で著作権の侵害を理由に利用者から逮捕者を出し、更に翌年には後述するWinnyが登場、利用者は減少傾向に転じたと言われたが、ACCSが行った実態調査[13]によると、2003年1月には8割以上の「現在利用者」がMXを「利用した事がある」と回答しており、その後は緩やかに減少するものの2005年の調査まで首位の座を占め続けていた。尚、ファイル共有ソフトの利用者が逮捕されたのは、世界的に見てもこれが初めてとなる。

2005年9月アメリカ最高裁が出した判決によって公式サーバが閉鎖される。ただ、公式サーバの閉鎖直後に有志による後継サーバが立ち上がり、MXコミュニティは現在に至るも継続している。

Napster互換プロトコルによるハイブリッドP2Pモデルを採用している。ファイルの検索・ノードのマッチングを行う専用サーバは、公式サーバ(後継サーバ)の他に、個人が設置したサーバも幾つかある。

BitTorrent

BitTorrent2001年に公開されたプロトコル。非常に高い効率を持ち、合法的な用途では最も多く利用されている。多くのクライアントがある他、一部のウェブ・ブラウザやネットワーク機器などが対応している。WinMXの衰退により海外では多くの利用者がBitTorrentに乗り換えた。

従来のファイル共有ソフトは明示的に指定したファイルしかアップロードしなかったのに対し、BitTorrentクライアントはダウンロードしたファイルも自動的にアップロードするよう義務づけられている。これにより、人気があるファイルを持つノードへのアクセス集中は最小限に押さえられ、むしろ人気があるほど高速に転送できる性質を持つに至り、効率の良いファイル共有を実現した。

BitTorrentはハイブリッドP2Pモデルを採用し、ノードのマッチングは専用サーバが行うが、Napsterと異なりファイルの検索機能を持たず、ファイルの転送に徹している。利用者は、ダウンロードしたいファイル一つに対し、対応するtorrentファイル一つを用意する必要がある。専用のサーバは誰でも設置することができ多くのサーバが存在するが、torrentファイルに記録されているので利用者は意識する必要はない。ほとんどのtorrentファイルはウェブ・サイトで配布されており、torrentファイルを集めて検索機能を付けたサイトも多い。

注意:日本国内では、著作権を侵害したファイルや違法なポルノ系のファイルに対応するtorrentファイルやtorrentファイルへのリンクを集めて検索機能を付けたサイトを公開しただけで検挙された例もある。特に猥褻物陳列や児童ポルノ禁止法違反については親告罪ではないため、一斉取締りの対象ともなっている。

Winny

Winny2002年5月に公開された日本製のファイル共有ソフトであり、匿名ファイル共有ソフトの草分けでもある。WinMXの利用者が逮捕されたことで、違法な共有を行っている利用者を中心に動揺が広がっていた時期であり、多くの利用者が匿名性を持つWinnyに乗り換えたといわれる。ACCSの実態調査では、2003年に「利用したことがある」が22.8%だったものが、2004年には「最もよく利用する」が40.3%と急増する(同年のWinMXは57.6%)。その後は減少傾向に転じたが、前述のWinMX公式サーバ閉鎖後の2006年には「主に利用している」が33.3%とWinMX(24.5%)を初めて凌駕して国内最多となった。

条件に合うファイルを片っ端から自動でダウンロードさせる地引と呼ばれる利用方法を初めて提案した。BBS機能も持ち、その用途でも利用されていた。マルチバイト文字に対応しているがUnicodeには対応しておらず、またローカライズが困難な仕様だったため、海外では殆ど普及していない。当時、匿名性が絶大に信頼されていたものの、2003年11月27日に著作権の侵害を理由に利用者から逮捕者が出たことで、Winnyの開発は停止した。翌年、2004年5月10日に著作権の侵害の幇助を理由に開発者も逮捕された。現在では解析が進んでおり匿名性は破られてきている。

Winnyは技術的なことも含め様々な点で特徴的であり注目を集めた。国内では初めての実用的なピュアP2Pネットワークソフトであったことも、その一つである。Winnyの影響を受けたソフトウェアも多い。

ピュアP2Pモデルを採用しているが、Gnutella等よりファイルの検索機能が効率化している。転送する時、ファイルをそのまま転送するのではなく、キャッシュと呼ばれるデータに変換してから(あるいは変換しながら)転送を行い、必要に応じて復元する。その際、一定確率で転送の中継を行うことで匿名性の確保を図った。BitTorrentと同様にダウンロードしたキャッシュは自動的にアップロードされるが、キャッシュは原則Winnyが管理し利用者は関与しない方針により、BitTorrent以上に徹底している。キャッシュは暗号化されているため、利用者は自分のノードが何を中継したか分からないようになっている。(実際には特定のツールで知る方法がある。)

セキュリティ上の考察

暗号化

著名なP2Pシステム(例えばwinny)の中にも、公開鍵をcertificate(認証を参照)せずに暗号化や署名を行っているものがあるが、これらは安全性上意味を持たない。逆にcertificateしてしまった場合は、データ秘匿だけは可能になるものの、(certificateの定義より)もちろん匿名ではなくなる。

一部では暗号化によってデータ秘匿や匿名性が確保されると喧伝されているが、暗号化(を使ったオニオン・ルーティング)によってデータを秘匿できるのは公開鍵をcertificateした場合だけであるし、暗号はそもそも匿名性を確保する為のものではない。

暗号学ではよく知られているように、公開鍵をcertificateせずに安全な方式を作る事は原理的にできない(なりすまし、一人二役、man-in-the-middle攻撃等を防げないから)。公開鍵をcertificateしない限り、電子署名と併用したとしても同様の問題が生じる。

また共通鍵暗号方式を使おうとも、公開鍵暗号と共通鍵暗号を併用しようとも安全ではない。共通鍵暗号単独の場合には鍵共有問題を解決できないし、公開鍵暗号と併用した場合には前述のcertificateの問題が起こる。

秘密分散(を使ったオニオン・ルーティング)を用いた場合も同様である。

ただし、素人に対するめくらまし、解読プログラムができるまでの時間稼ぎといった効果はある。しかし一度解読プログラムがばらまかれてしまうと、その解読プログラムを使えば素人でも解読できてしまうという問題もある。

ウイルス感染

コンピュータにインストールされるP2Pアプリケーションは、目的や用途を問わず、インターネットに対しポートをオープンにしてサーバ的動作をする場合が多い。また、クライアント的な動作のみであっても、いずれにせよアプリケーションにバッファオーバーフロー等のセキュリティホールが存在した場合、アプリケーション同士が常時接続している場合が多いだけに、ワームコンピュータウイルス等が急速にP2Pネットに感染拡大する脆弱性を持っている。実際にWinnyShareなどをインストールしたパソコンから個人情報が漏洩する事件や機密情報漏洩事件が多発している(「暴露ウイルス」の項も参照のこと)。

Winnyなどにおけるウイルス感染・個人情報漏洩は、WinnyなどP2Pソフトの脆弱性によるものではなく、通常のウイルスと同等のセキュリティ対策を行なっていれば、対応できるものである。

また、常時稼動されているマシンが多いため、P2Pソフトウェアの脆弱性を突きボットネットを構築され、 スパムメールの送信やDDoS攻撃の踏み台にされる危険性も孕んでいる。[14] その為、更新の停止したソフトウェアや深刻な脆弱性の修正が放置されているソフトウェアは避けたほうがよい。

主なファイル共有ソフト

ファイル共有(交換)システムを一部機能として組み込んでいるソフト

出典

  1. ^ 2011年2月5日の朝日新聞朝刊37面
  2. ^ 著作権侵害事件” (2014年1月17日). 2014年1月17日閲覧。
  3. ^ 現在も約15~20万人がP2Pファイル共有ソフトを使用、ネットエージェント調査” (2014年1月17日). 2014年1月17日閲覧。
  4. ^ Napsterの動向、財団法人デジタルメディア協会
  5. ^ 米連邦地裁、音楽交換ソフトのNapsterにサービス停止命令、ImpressWatch、2000年7月27日
  6. ^ Napsterでシステム障害、ファイル交換サービスが一時停止、ImpressWatch、2001年7月3日
  7. ^ >「ファイル共有ソフトの利用実態調査(クローリング調査)」結果、ACCS
  8. ^ Piratenpartij presenteert verkiezingsprogramma” (Dutch). 3VOOR12 NL (2010年5月20日). 2010年5月27日閲覧。
  9. ^ Wahl in Berlin(ドイツ語)シュピーゲル公式サイトより
  10. ^ . 産経新聞. (2011年10月7日). http://sankei.jp.msn.com/world/news/110919/erp11091920360004-n1.htm ベルリン市議会選で海賊党が大躍進 - MSN産経ニュース 2011年10月10日閲覧。 
  11. ^ . tagesschau.de. (2011年9月19日). http://www.tagesschau.de/inland/deutschlandtrend1386.html ARD-DeutschlandTrend: Piraten obenauf - FDP auf Rekordtief 2011年10月10日閲覧。 
  12. ^ . Ernesto. (2011年10月7日). http://torrentfreak.com/european-greens-want-to-legalize-file-sharing-ban-drm-111007/ European Greens Want to Legalize File-Sharing, Ban DRM 2011年10月10日閲覧。 
  13. ^ 社団法人コンピュータソフトウェア著作権協会(ACCS)による「ファイル交換ソフト利用実態調査]」(ホーム -> ニュース -> 調査報告)より
  14. ^ 無貌の蜘蛛Xunleiが世界を食う~世界最大のP2Pネットワークが匿名最終兵器になる日

関連項目

P2P共有は、本来は単にP2P(Peer to Peerの略称)通信によるデータ共有のことであるが、実例上は多数ユーザーによるP2P通信を利用したファイル共有を指す。匿名性をP2P共有の特徴とする用例も目立つが、匿名性はP2P共有の必要条件ではない。このようにP2P共有という用語の立場は不明瞭であるが、以下ではこの「実例上のP2P共有」を単にP2P共有として述べる。

なお、用語としてP2P共有とP2Pが区別されず使用されていることがあるが、P2P技術を用いたサービスがP2P共有技術を用いたサービスと誤解されるケースも目立つため、明確に区別するべきである。

P2P共有には、(通信を行うソフトウェア通信プロトコルなどに左右されつつも、)発信者の匿名性がある程度確保できるという特徴があり、Winnyに代表されるようなアンダーグラウンドな用途でも利用が多い。

P2P共有における匿名化技術

従って、実際のP2Pでは、どのように相手のIPアドレスを知るか、が重要なポイントとなる。昨今のP2Pでは、例えば、コンテンツのタイトルや検索キーワード、放送局のチャンネル名といった、人にとって意味のある名前で通信相手を特定して、通信ができるようになっている。 この意味で、P2P方式での通信網は、オーバーレイ・ネットワーク(Overlay Network)と見ることができる(以下、OLNと略記する)。 通常のIPネットワークの上に、もう一層、別のネットワークを、特定のニーズに合うノード同士で作り上げる、という意味合いである。

もう少し具体的に言うと、例えばWinnyでは、「欲しいコンテンツの名前」で「そのキャッシュを持っている相手」を特定して通信をおこない、例えば、Skypeでは、「ニックネーム」で「ニックネームに対応する相手」を特定して通信をおこなう。一般化すると、「キー」を手かがりに「キーに対応するデータを持つ者」を発見して、その相手と通信をする、という動作になる。「キー」と「データ」をペアで結びつけた情報をインデックス情報と呼ぶ。通常「データ」は、そのデータを持つ者のIPアドレスとして記憶させる。(インデックスは、key-valueペアという呼び方をする場合もある。) P2Pでは、インデックス情報をどのように管理するかが重要となる。

メリット

匿名性
P2P方式で、データの中継転送を数多く行えば、誰がそのデータを公開したかを突き止めることを、非常に困難にすることができる。WinnySharePerfect Dark などの、アンダーグラウンドなP2Pシステムでは、著作権を無視した違法なコンテンツの公開を、誰が行ったかを隠蔽するために、匿名性が重要視される[1]。これは、管理をする立場から見るとデメリットになるわけで、逆に、商用のP2Pシステムでは匿名性は排除して、トレーサビリティを重視した実装を目指す場合も多い。誰がいつどういうデータを送受信したか、までトレースできるようになっているシステムも模索されている[2]
また、言論の自由という観点から、匿名性を持たせたP2P掲示板システム(新月など)も注目されている。

デメリット

実装の困難さ
実装の難易度が高い。
特に、エンドユーザの端末がPCである場合には、その電源オン期間が不確定な場合が多く、端末の頻繁な脱退や長期の不在期間を考慮したアルゴリズムが必要になる。参加脱退が激しいノードが居ることに対してどう対処するかは、「Churn問題」という呼び方をする[3]。P2P方式は、クライアントサーバ方式に比べて、信頼性が劣るイメージがあるが、逆に、このChurn問題への対応策を取らざるを得ないことにより、自ずから耐障害性が高いシステムが出来上がるという側面もある。
端末がPCである場合は、各PCの処理能力、転送能力、保存容量などの条件が千差万別であり、できるだけ多くの種類のPCで動くようにするには、注意深い実装が必要になる。
動作確認の困難さ
動作確認、評価の難易度が高い。設計段階では、シミュレータなどを用いての動作確認が可能であるが、最終的には、多数のノードを実際に並べて動作確認を取る必要がある。これが、技術的、経済的に難しく、実環境でシステム評価を行って確実に動くシステムに仕上げるには、多大な手間と費用がかかり、これまでクライアントサーバ方式でやってきた配信業者が、P2P方式に乗り換えようとする際の参入障壁となっている。実際には、10000ノードレベルになると、開発者や開発業者が、これを自前で揃えるのは現実的ではなく、一般人から、有償・無償でモニターを募って、実証実験を行うケースが多い[4][5][6]
削除制御の困難さ
Winny事件で注目されたように、データが一旦P2P網に公開されると、キャッシュを持つノードが存在する限り、データが公開され続ける、という問題がある。Winnyの場合では、そのデータに誰もアクセスしなくなると、しだいにキャッシュから忘れられて、最後にはデータがP2P網上から消滅するのであるが、覚えている端末が少しでもいると、誰かがアクセスしたときに増殖する。また、一旦データのコピーをキャッシュに持った端末が、電源を切った状態になると、一旦P2P網上からなくなったように見えても、再び電源が入ったときに、データが復活するという事情も手伝って、完全な削除を困難にしている。
ただ、最近の商用のP2P配信システムでは、管理側からリモートで削除ができる仕組みを、あらかじめ実装しておくことで、この問題は克服されつつある[7]
セキュリティ制御の困難さ
これもWinny事件で注目されたように、エンドユーザのPC上の個人情報が、ユーザが意識しないうちに、漏洩する可能性がある。これは、エンドユーザが自分でデータを公開できるようなタイプのP2Pシステムで起きる。この公開機能を利用して、違法なコンテンツや、ウィルス入りのデータが、頻繁に公開されて、様々な社会問題となった。商用の多くのP2Pシステムでは、この問題に対する対策として、データの投入口を管理者側にしか設けない作りとなっており、不正なデータが混入する恐れは無くなっている[8][9][10][7]
インターネットへの負荷
昨今のインターネットのトラフィックの中身を解析すると、そのほとんどがファイル共有ソフトの物であることが、問題視されている。これ自体は、利用者のニーズがあるために発生している結果であり、使いたい人が多いのであれば、通信キャリアやISPとしてはインターネットを強化していくべきものであるが、問題は、次項に掲げたように、この負荷と料金が経済的に折り合っていないことである。
ISP、通信キャリアの料金体系とのミスマッチ
現状の通信キャリアやISPの間の通信料金体系は、インターネットをクライアントサーバモデルで利用することを想定している。すなわち、一般ユーザは、さほど大きなトラフィックを使うことはないので、使いたい放題の固定料金体系とし、一方、コンテンツを提供する業者は、サーバを設置して太い回線を使うので、これらの業者から比較的高い料金をもらうという構造である。また、各ISPや通信キャリア会社の間では、インターネットの階層(Tier)の上下関係、および、IPパケットの通過量に応じて、従量制のトランジット料金のやりとりが行われている。
ここにP2P方式のアプリケーションが増えてくると、当初想定していなかったような量のデータが一般ユーザのPCから送受信され、大きなサーバを設置していない地区のネットワークから大量のトラフィックが発生し、ISPのルータに負荷がかかったり、ISP間のトランジット料金のバランスが実体トラフィックと合わなくなるなど、料金体系を考えたときの目論見が外れて、様々なコスト上のアンバランスが生まれる。ただこれは、料金体系の改訂が、利用状況に追いついていないために生じている問題であり、時間が解決するものと思われる。
環境への負荷
通常P2Pはサーバを設置しないため環境負荷が低いと思われがちだが、ファイル共有ソフトを使用する場合は主に使っているパソコンの他にP2P用のパソコンを用意した方が無難なため、ファイル共有目的だけ見ればパソコンの台数は倍になる計算になる。またクライアント型では受信したいときだけパソコンを起動していれば良いがP2Pでは常に起動している必要が有ることも要因となる。
ただしこの問題は規模や用途により異なるので一概に環境負荷が高いとは言えないので注意が必要。(チャットなどの用途では環境負荷は低くなることが多い)


技術的な分類

インデックス情報の持ち方での分類

「このキーに対応するデータを持っているのは誰か?」という問いに答えるためには、キーとデータのありかの対応表(インデックス)を持っている必要があるが、これをサーバに集中して持たせる場合と、各ノードに分散して持たせる場合と、特定の選ばれたノードに分散して持たせる場合、の3種類が存在する。(図を入れると良い)

ハイブリッドP2P

ハイブリッドP2Pの仕組み(図はBitTorrentのもの)。
欲しい情報となるキーファイルをサーバーに伝え、実際のデータはノード同士でやりとりを行う仕組み

ハイブリッドP2Pにおいては、インデックス情報を、中央のインデックスサーバで一括して管理する。新しいデータを保持したノードは、自分が持っていることを、インデックスサーバに申告しておく。データを欲するノードが、「このキーに対応する相手を教えて下さい」とインデックスサーバに問い合わせると、対応する相手のIPアドレスを教えてくれる。インデックスが膨大になると、スケーラビリティが無くなる点が、後述のピュアP2Pと比べて劣るが、通常規模のシステムであれば、この方式で事足りるケースが多い。インデックスサーバがダウンすると、システム全体が停止するため、耐障害性の面では、ピュアP2Pに劣る。

BitTorrentNapsterWinMX、放送型P2P(OLM)の多くは、この方式を採用している。

ピュアP2P

ピュアP2Pの仕組み。一切の処理をコンピューター同士が対等に通信を行うのが特徴である。

インデックス情報は、各ノードが少しずつ分散して持ち合う。 自分の知っているノードに、「データを持っているのは誰ですか?」というメッセージを投げると、そのノードが知っていれば回答が返り、知らなければ又聞きをしてくれる(メッセージを転送する)仕組みになっている。インデックスが膨大になっても破綻しないため、スケーラビリティが高い。メッセージ転送の方式により、非構造化タイプと構造化タイプの2つに分類できる(後述)。

GnutellaFreenetOceanStoreWinnyShareは、この方式を採用している。

ピュアP2Pに参加する際には、既に参加しているノードのIP情報を何らかの形で知っている必要がある。このためには、常に活きているノード(コンタクトノード)を用意しておいて、参加時はいつもそこに接続するようにするか、あるいは、参加しているいくつかのノードの情報をサーバに集めて、ここから知るように構成する。

スーパーノード型P2P

インデックス情報は、特定の選ばれたノード(スーパーノード)が分担して持つ。スーパーノードには、できるだけ安定な端末(ずっと電源が入っていて、通信回線も安定していて、帯域幅も太いようなノード)が選ばれる。スーパーノードは、一般のエンドユーザの端末から能力に応じて選ばれるが、サービス提供者側が用意した端末であることも多い。

KaZaASkypeは、この方式を採用している。

ピュアP2Pの構造による分類

ピュアP2Pにおいては、インデックス情報も分散されて持たれるため、相手先IPアドレスの発見の仕組みは、検索メッセージを転送することで行われる。転送方式で、2種類に分類ができる。

非構造化オーバーレイ
問い合わせ元のノードは、キーに対応する相手を発見するために、手当たり次第に、自分が知っているノード(かつて通信をしたことがあるノードなど)に対して、「データを持っているのは誰ですか?」というメッセージを投げつけ、受け取ったノードは、持っていれば返答し、持っていなければ検索メッセージをコピーして、他のノードに転送する方式。メッセージがネズミ算式に増えるので、フラッディング方式(洪水という意味)という別名が付いているが、メッセージが増えすぎないように、転送回数やメッセージの生存時間などで制限をかける必要がある。そのため、OLN上のどこかに相手が存在するにも関わらず、発見できない場合がある。
GnutellaFreenetWinnyShareなどで実装されている。
構造化オーバーレイ
「データを持っているのは誰ですか?」というメッセージを転送する際の、転送先を選ぶ方法をあらかじめ構造的に決めておいて、「キーに対応する相手」が確実に分かるようにした方式である。よく知られている方式として、分散ハッシュテーブル(Distributed Hash Table, DHT)、SkipGraphなどがある。検索メッセージの転送先の範囲が、キーに応じてだんだんと絞られていくように設計されている。概略イメージは、A県の中のB市の中のC町の中の田中さん、というように範囲を絞る形で、メッセージが転送される、と考えると理解がしやすい。
DHTの実装例としては、ChordCANPastryTapestryKademliaOpenDHTOverlay Weaverなどがよく知られている。

脚注