ファイル共有ソフトとは、インターネットで不特定多数の利用者とファイルをやり取りする、いわゆるファイル共有のためのソフトウェア。本記事では不特定多数の人の間でファイルを共有するソフトウェアやウェブサービス(アップローダー)について説明する。限られた人数、あるいは組織内でのみファイルを共有するソフトウェア(ドキュメント共有)についてはグループウェア、オンラインストレージ(クラウドストレージとも)などを参照のこと。

## 概要

ファイル共有ソフトは、ソフトが定めた専用のプロトコルで通信を行うことで専用のネットワークを構成し、そのネットワークに接続された不特定多数のコンピュータとの間で共有されているファイルのやりとりを行う仕組みを持つソフトウェアである。その手法は、当初はHTTPやFTPのようなアップローダーに相当する手法であったが、21世紀に入ると、Peer to Peer技術(P2P技術)を利用したものが主流になってきた。

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

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

### アップローダー

アップローダーは、HTTPやFTPのような通信プロトコルを用いたクライアントサーバーモデルでの共有を行う。

### アップローダーの特徴

- HTTPやFTPのようなプロトコルは多くのウェブブラウザで標準でサポートされているため新たにソフトウェアをインストールする必要がない。
- Peer to Peer技術を使用した配布よりも管理が容易である。ファイルの変更や管理が即座に反映されたり、ダウンロードが要求後すぐに始まるなど、リアルタイム性では最も有利である。
- 誰がファイルをダウンロードしたのかが把握しやすい利点がある。
- 全ての検索・転送をサーバが把握できることの裏返しとして、匿名性は無い。
- サーバーの処理能力やサーバーの接続された回線の性能(回線速度、信頼性)に大きく依存する。

## P2P型ソフトの場合のデータ情報の持ち方

「このキーワードを含むデータは共有されているか?」「このデータを持っているのは誰か?」というような問い合わせに答えるためには、
サーバにデータを持たせる場合と、各ノードに分散して持たせる場合と、特定の選ばれたノードに分散して持たせる場合、の3種類が存在する。

### ハイブリッドP2P

共有するデータの情報をサーバーに伝え、サーバで管理して、実際のデータはノード同士でやりとりを行う仕組み。

BitTorrent、Napster、WinMXなどは、この方式。

### ピュアP2P

共有するデータの情報を、参加しているコンピュータ同士で、分散して持ち合って、実際のデータもコンピュータ同士でやりとりを行う仕組み

Gnutella、Freenet、OceanStore、Winny、Shareなどが、この方式。

### スーパーノード型P2P

共有するデータの情報を、特定の選ばれたノード(スーパーノード)が分担して持つ仕組み。

KaZaA、などが、この方式。

## P2Pネットワークにおける匿名化技術

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

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

## 課題と問題点

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

### 著作権問題

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

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

WinnyやShareなどのファイル共有ソフトは、ファイルを暗号化し、データを送受信してファイルを共有する。そのため配布者の特定が困難で、著作権の保持された音楽や映画、市販のソフトウェアなどを違法に交換する者が絶えない。2014年のコンピュータソフトウェア著作権協会(ACCS)と不正商品対策協議会(ACA)の調査によると、音楽や映像、プログラムなど著作権を明らかに侵害しているファイルの流通は、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カ国以上の国々で海賊党が結党され活動を行っている。

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

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

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

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

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

### 暗号化

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

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

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

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

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

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

### ウイルス感染

ネットワーク・セキュリティ上の問題点の一つとして暴露ウイルスをはじめとしたコンピュータウイルスに感染するというものがある。

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

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

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

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

この節ではP2Pを利用した共有ソフトについて述べる。

### Napster

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

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

### Gnutella

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

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

### WinMX

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

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

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

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

### BitTorrent

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

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

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

現在使われているファイル共有ソフトウェアはの殆どはTorrentによるものである。

### Winny

Winnyは2002年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日に著作権の侵害の幇助を理由に開発者の金子勇も逮捕された。なお、金子は2011年12月に無罪確定となったものの、2013年7月に死去している。

現在では解析が進んでおり匿名性は破られてきているが、Winnyは技術的なことも含め様々な点で特徴的であり注目を集めた。国内では初めての実用的なピュアP2Pネットワークソフトであったことも、その一つである。Winnyの影響を受けたソフトウェアも多い。

現在はかなり衰退している。

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

## 現行のファイル共有規格

- Amoeba(日本製)
- BitTorrent
- Freenet
- GNUnet
- eMule(eDonkey2K Network)

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

- ICQ - インスタントメッセンジャーだが、P2Pでファイル交換ができたため、世界で最初に普及したファイル共有ソフトとされている。
- MSN メッセンジャー
- Opera - BitTorrentのクライアントが内蔵されている。
- Skype