データの利用可能性を高めるためのネットワークプロトコル

29
1 データの利用可能性を高めるための データの利用可能性を高めるための ネットワークプロトコル ネットワークプロトコル

Upload: saireya-

Post on 06-Aug-2015

3.944 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: データの利用可能性を高めるためのネットワークプロトコル

1

データの利用可能性を高めるためのデータの利用可能性を高めるためのネットワークプロトコルネットワークプロトコル

Page 2: データの利用可能性を高めるためのネットワークプロトコル

2

404 Introduction Not Found.404 Introduction Not Found.

● 「「WebWebページの消失」をいかに防ぐかページの消失」をいかに防ぐか??

Page 3: データの利用可能性を高めるためのネットワークプロトコル

3

404 Introduction Not Found.404 Introduction Not Found.

● 「「WebWebページの消失」をいかに防ぐかページの消失」をいかに防ぐか??

ex. Internet Archiveex. Internet Archive (http://www.archive.org)    InternetInternetをクローラにより自動巡回をクローラにより自動巡回    -> -> 完全ではない完全ではない

Page 4: データの利用可能性を高めるためのネットワークプロトコル

4

The number of web siteThe number of web site

NetcraftNetcraft「「July 2011 Web Server SurvayJuly 2011 Web Server Survay」」http://news.netcraft.com/archives/2011/07/08/july-2011-web-server-survey.html

They got responses from 357,292,065 sites!

Page 5: データの利用可能性を高めるためのネットワークプロトコル

5

The number of web siteThe number of web site

InternetInternetの世界は広大の世界は広大-> -> ページは非常に高速に増加ページは非常に高速に増加-> -> 自動巡回だけでは収集しきれない自動巡回だけでは収集しきれない

老舗レンタルサーバの撤退老舗レンタルサーバの撤退Yahoo! GeoCitiesYahoo! GeoCities ( (http://www.geocities.com) 2009/10/24) 2009/10/24閉鎖閉鎖Infoseek iswebInfoseek isweb ( (http://isweb.www.infoseek.co.jp))      2010/11/012010/11/01無料サーバ閉鎖、無料サーバ閉鎖、2012/05/012012/05/01完全閉鎖完全閉鎖OTD BBSOTD BBS ( (http://www.otd.co.jp) 2011/06/30) 2011/06/30閉鎖閉鎖......

「「WebWebページの消失」≒「ページの消失」≒「WebWebページが持つ情報の消失」ページが持つ情報の消失」-> Web-> Webページは遺すべき貴重な遺産ページは遺すべき貴重な遺産

Page 6: データの利用可能性を高めるためのネットワークプロトコル

6

What is Peer to Peer(P2P)?What is Peer to Peer(P2P)?

● 個々のピア個々のピア((ノードノード))が対等が対等● ((ピュアピュアP2PP2P型では型では))中央サーバが存在しない中央サーバが存在しない

-> -> システムの大規模な拡張に耐えられるシステムの大規模な拡張に耐えられる(scalability)(scalability)-> -> システムの障害に強いシステムの障害に強い

Page 7: データの利用可能性を高めるためのネットワークプロトコル

7

Application of P2PApplication of P2P

● ファイル共有ソフトファイル共有ソフトNapster: Napster: 世界初の世界初のP2PP2Pソフトソフト, , 中央サーバが存在中央サーバが存在Gnutella: Gnutella: 世界初のピュア世界初のピュアP2PP2Pソフトソフト

(WinMX, KaZaA, ...)(WinMX, KaZaA, ...)Winny: Winny: 金子勇金子勇(47)(47)氏が開発氏が開発

(Share, Perfect Dark, ...)(Share, Perfect Dark, ...)BitTorrent: BitTorrent: 非匿名非匿名P2P, P2P, 大容量ファイルの転送大容量ファイルの転送

● 匿名匿名WebWebFreenet: Freenet: 完全匿名を目指した完全匿名を目指したWebWeb基盤基盤, , 検閲への抵抗検閲への抵抗新月新月: : 匿名掲示板匿名掲示板

● コミュニケーションソフトコミュニケーションソフトSkype, Windows Live! Messenger, ...Skype, Windows Live! Messenger, ...

Page 8: データの利用可能性を高めるためのネットワークプロトコル

8

Winny ProtocolWinny Protocol

● 実験・利用は自己責任で実験・利用は自己責任で!!(Winny(Winnyを媒介とするウイルスで情報漏洩事件が多数発生を媒介とするウイルスで情報漏洩事件が多数発生))

● 合法なファイルの共有のみの利用を合法なファイルの共有のみの利用を

● 京都大学の学内京都大学の学内PCPCではでは((無届けでは原則無届けでは原則))利用禁止利用禁止「京都大学情報環境機構 「京都大学情報環境機構 KUINSKUINS運用委員会」運用委員会」

((http://www.kuins.kyoto-u.ac.jp))

「「P2PP2Pファイル交換ソフトの利用について」を参照ファイル交換ソフトの利用について」を参照

● 参考参考::『『WinnyWinnyの技術』金子勇著の技術』金子勇著((アスキーアスキー))

Page 9: データの利用可能性を高めるためのネットワークプロトコル

9

Connect to Winny networkConnect to Winny network

0. 0. ((初回のみ初回のみ))外部の外部のWebWebサイトよりノードリストを登録サイトよりノードリストを登録1. 1. 登録されたノードに接続登録されたノードに接続2. 2. 接続したノードから別のノードの情報を取得接続したノードから別のノードの情報を取得3. 3. 取得したノードの情報を登録取得したノードの情報を登録4. 4. 1.1.へ戻るへ戻る Winny network

Page 10: データの利用可能性を高めるためのネットワークプロトコル

10

Connect to Winny networkConnect to Winny network

0. 0. ((初回のみ初回のみ))外部の外部のWebWebサイトよりノードリストを登録サイトよりノードリストを登録1. 1. 登録されたノードに接続登録されたノードに接続2. 2. 接続したノードから別のノードの情報を取得接続したノードから別のノードの情報を取得3. 3. 取得したノードの情報を登録取得したノードの情報を登録4. 4. 1.1.へ戻るへ戻る Winny network

Page 11: データの利用可能性を高めるためのネットワークプロトコル

11

Connect to Winny networkConnect to Winny network

0. 0. ((初回のみ初回のみ))外部の外部のWebWebサイトよりノードリストを登録サイトよりノードリストを登録1. 1. 登録されたノードに接続登録されたノードに接続2. 2. 接続したノードから別のノードの情報を取得接続したノードから別のノードの情報を取得3. 3. 取得したノードの情報を登録取得したノードの情報を登録4. 4. 1.1.へ戻るへ戻る Winny network

Page 12: データの利用可能性を高めるためのネットワークプロトコル

12

Share file indexShare file index

● 検索処理を一括して行う中央サーバは存在しない検索処理を一括して行う中央サーバは存在しない-> -> それぞれのノードが自前で検索処理を行うそれぞれのノードが自前で検索処理を行う

● 接続しているノード同士でインデックス情報を定期的に交換接続しているノード同士でインデックス情報を定期的に交換-> -> ファイル検索を効率化ファイル検索を効率化

● WinnyWinnyは古典的なバケツリレーで検索は古典的なバケツリレーで検索※※最近は分散ハッシュテーブル最近は分散ハッシュテーブル(DHT)(DHT)を実装することが多いを実装することが多い

filename hash node

Winny2b71.zip 5a53948bee152be5d92935 @713af4d025ca62e44

自作ポエム.txt 870ba0fb2430f6d4cf1a0a @3ec811ff42372b

ネコの写真.jpg 9bbb7eeb9744d0d8320f7b @d48cad6d0b79927

... ... ...

Example of file index

Page 13: データの利用可能性を高めるためのネットワークプロトコル

13

Find and download fileFind and download file

0. 0. 検索クエリを作成し、接続しているノードに渡す検索クエリを作成し、接続しているノードに渡す1. 1. 検索クエリを受け取ったノードは、検索クエリを受け取ったノードは、自身のインデックスに自身のインデックスに探されているファイルが存在するか照会探されているファイルが存在するか照会

2. 2. ファイルがインデックスにファイルがインデックスにあれば、ファイルを持っているあれば、ファイルを持っているノードを検索クエリに記録ノードを検索クエリに記録

3. 3. countercounterがが66未満未満-> counter-> counterの値を増やして検索クエリを他のノードに渡すの値を増やして検索クエリを他のノードに渡すcountercounterがが66-> -> 検索クエリを送り返す検索クエリを送り返す

4. 4. 戻ってきた検索クエリにノードが記録されていれば、戻ってきた検索クエリにノードが記録されていれば、そのノードに接続し、ファイルをダウンロードそのノードに接続し、ファイルをダウンロード

Page 14: データの利用可能性を高めるためのネットワークプロトコル

14

Winny network

I want to get ”butterfly.jpg”.If you know who have this file, please tell me their name:Name: ________________________________________Name: ________________________________________Name: ________________________________________

Counter: 0

Find and download fileFind and download file

Query:

a

b

c

d

e

f

g

h

Page 15: データの利用可能性を高めるためのネットワークプロトコル

15

Winny network

I want to get ”butterfly.jpg”.If you know who have this file, please tell me their name:Name: ________________________________________Name: ________________________________________Name: ________________________________________

Counter: 0

Find and download fileFind and download file

Query:

a

b

c

d

e

f

g

h

Page 16: データの利用可能性を高めるためのネットワークプロトコル

16

Winny network

I want to get ”butterfly.jpg”.If you know who have this file, please tell me their name:Name: ________________________________________Name: ________________________________________Name: ________________________________________

Counter: 1

Find and download fileFind and download file

Query:

a

b: I don't know...

c: I don't know...

d: I don't know...

e

f

g

h

Page 17: データの利用可能性を高めるためのネットワークプロトコル

17

Winny network

I want to get ”butterfly.jpg”.If you know who have this file, please tell me their name:Name: _h______________________________________Name: ________________________________________Name: ________________________________________

Counter: 2

Find and download fileFind and download file

Query:

a

b

c

d

e: I don't know...

f: I don't know...

g: I know!

h

Page 18: データの利用可能性を高めるためのネットワークプロトコル

18

Winny network

I want to get ”butterfly.jpg”.If you know who have this file, please tell me their name:Name: _h______________________________________Name: ________________________________________Name: ________________________________________

Counter: 2

Find and download fileFind and download file

Query:

a

b

c

d

e

f

g

h

Connect!

Transfer file!

Page 19: データの利用可能性を高めるためのネットワークプロトコル

19

Winny ProtocolWinny Protocol

● 実際はもっとさまざまな機構が存在実際はもっとさまざまな機構が存在

● クラスタリングクラスタリング検索を効率化するために、検索キーによりノードの嗜好を判検索を効率化するために、検索キーによりノードの嗜好を判別し、別し、WinnyWinnyネットワーク上のネットワーク上の((仮想的な仮想的な))位置を決定位置を決定

● 上流上流//下流ノード下流ノード高速なノードにインデックスを集積することで検索を効率化高速なノードにインデックスを集積することで検索を効率化

● 中継ダウンロード中継ダウンロードファイル転送の際に中継ノードをかますことでファイルをファイル転送の際に中継ノードをかますことでファイルをネットワーク上に拡散させ、転送速度を向上ネットワーク上に拡散させ、転送速度を向上

● ......

Page 20: データの利用可能性を高めるためのネットワークプロトコル

20

Hypertext Sharing Protocol(HTSP)Hypertext Sharing Protocol(HTSP)

● HTTPHTTPを補完するを補完する((架空の架空の))ファイル共有プロトコルファイル共有プロトコル● WinnyWinnyのプロトコルを基に、のプロトコルを基に、URLURLに対応するファイルを共有に対応するファイルを共有

● HTTPHTTPとの統合を重視し、との統合を重視し、URLURLを検索キーとするを検索キーとする-> URL-> URLに対応するファイルを持つノードを検索に対応するファイルを持つノードを検索

● ファイルはメタデータを付加した形でネットワーク上に公開ファイルはメタデータを付加した形でネットワーク上に公開-> -> インデックスとして拡散するのはメタデータの部分インデックスとして拡散するのはメタデータの部分

http://www.publicdomain.org/butterfly.jpg

Raw dataMetadata

(URL,hash,date,...)

Page 21: データの利用可能性を高めるためのネットワークプロトコル

21

Transferred data is the file of URL, ...really?Transferred data is the file of URL, ...really?

● URLURLを偽装するだけならそう難しくないを偽装するだけならそう難しくない● 入手したいファイルについて入手したいファイルについて事前に知っているのは事前に知っているのはURLURLのみのみ● ファイルハッシュを知っていれば検証は簡単ファイルハッシュを知っていれば検証は簡単

-> -> しかし、知らない場合の方が圧倒的に多いしかし、知らない場合の方が圧倒的に多い

● 偽ファイルがまかり通ってしまえば、偽ファイルがまかり通ってしまえば、HTSPHTSPの信用性・有用性は低下 の信用性・有用性は低下 -> -> 実用的ではない実用的ではない

● 公開者を何らかの形で検証公開者を何らかの形で検証できれば、ファイルを信頼できるできれば、ファイルを信頼できる-> -> 電子署名電子署名

Page 22: データの利用可能性を高めるためのネットワークプロトコル

22

Digital SignatureDigital Signature

● 公開鍵暗号を応用した仕組み公開鍵暗号を応用した仕組み● 代表的な公開鍵暗号代表的な公開鍵暗号: RSA: RSA暗号暗号, DSA, DSA暗号暗号, El-Gamal, El-Gamal暗号暗号

● 公開鍵暗号 公開鍵暗号 <-> <-> 共通鍵暗号共通鍵暗号((パスワードでの暗号化パスワードでの暗号化))秘密鍵と公開鍵の秘密鍵と公開鍵の二つの鍵二つの鍵が存在が存在

● 電子署名について考える場合、電子署名について考える場合、 秘密鍵  秘密鍵 -> -> 南京錠南京錠 公開鍵  公開鍵 -> -> 南京錠に対応する鍵南京錠に対応する鍵と考えると分かりやすいと考えると分かりやすい

Secret key

Public key

Page 23: データの利用可能性を高めるためのネットワークプロトコル

23

Digital SignatureDigital Signature

1. 1. AliceAliceは事前に南京錠とそれに対応する鍵を生成し、は事前に南京錠とそれに対応する鍵を生成し、鍵鍵((公開鍵公開鍵))ををWebWebサイトなどで公開しておくサイトなどで公開しておく

2. 2. AliceAliceががBobBobに手紙を送る場合、に手紙を送る場合、手紙を南京錠手紙を南京錠((秘密鍵秘密鍵))でロックするでロックする

3. 3. 手紙を貰った手紙を貰ったBobBobは、公開されているは、公開されているAliceAliceの鍵を使って、の鍵を使って、手紙のロックを解除する手紙のロックを解除する

4. 4. 解除できれば、ロックは解除できれば、ロックはAliceAliceの南京錠でなされたと分かるの南京錠でなされたと分かる

-> -> 公開鍵が公開鍵がAliceAliceのものであることを保証するには?のものであることを保証するには?

Locked by secret key

http://www.publicdomain.org/butterfly.jpg

Raw dataMetadata

(URL,hash,date,...)

Page 24: データの利用可能性を高めるためのネットワークプロトコル

24

Digital SignatureDigital Signature

公開鍵の信頼性を示す方法公開鍵の信頼性を示す方法::

● 鍵の作成者が自身の鍵の作成者が自身のWebWebサイトで公開鍵を公開サイトで公開鍵を公開-> Web-> Webサイトが改竄されていたらサイトが改竄されていたら??-> Web-> Webサイトがダウンしていたらサイトがダウンしていたら??

● 第三者が信頼性を保証第三者が信頼性を保証-> -> 公開鍵基盤公開鍵基盤(Public Key Infrastructure, PKI)(Public Key Infrastructure, PKI)-> -> 信頼の輪信頼の輪(Web-of-Trust)(Web-of-Trust)

Page 25: データの利用可能性を高めるためのネットワークプロトコル

25

Public Key InfrastructurePublic Key Infrastructure

● 信頼できる第三者機関信頼できる第三者機関((認証局認証局))が公開鍵にお墨付きを与えるが公開鍵にお墨付きを与えるex. VeriSign: ex. VeriSign: インターネット上で最大の認証局インターネット上で最大の認証局              ((http://www.verisign.co.jp ) )

● SSL(HTTPS)SSL(HTTPS)などで採用などで採用● 公開鍵の公開鍵の信頼度はかなり高い信頼度はかなり高い● 「お墨付き」を貰うにはそれなりの「お墨付き」を貰うにはそれなりの審査費用と時間が必要審査費用と時間が必要

((無料で認証してくれる認証局もあるが無料で認証してくれる認証局もあるが...)...)

Page 26: データの利用可能性を高めるためのネットワークプロトコル

26

Web-of-TrustWeb-of-Trust

● 公開鍵に第三者の署名を付加公開鍵に第三者の署名を付加((連名、連帯保証人のイメージ連名、連帯保証人のイメージ))● PGPPGPで採用で採用● 「信頼できる人の署名がある人は信頼できる人」の輪「信頼できる人の署名がある人は信頼できる人」の輪● 公開鍵の信頼度は不定公開鍵の信頼度は不定

-> -> 連名の署名者はどれだけ信頼できるか連名の署名者はどれだけ信頼できるか??-> -> 「カレシの元カノの元カレの元カノの「カレシの元カノの元カレの元カノの......」信頼できる」信頼できる??

● 費用、手間などが少なく、費用、手間などが少なく、手軽に実現可能手軽に実現可能-> -> 知り合いを誰か一人見つけてくれば良い知り合いを誰か一人見つけてくれば良い

● PKI, PKI, 信頼の輪ともに一長一短信頼の輪ともに一長一短-> -> 信頼性と手軽さのトレードオフ信頼性と手軽さのトレードオフ

Page 27: データの利用可能性を高めるためのネットワークプロトコル

27

Implementation of WinnyImplementation of Winny

● WinnyWinnyでは「捏造警告」を実装では「捏造警告」を実装● ノードの「無視条件」に含まれているファイルのノードの「無視条件」に含まれているファイルの

インデックスに警告を付加インデックスに警告を付加● インデックスの拡散の際には、警告を付加したまま拡散インデックスの拡散の際には、警告を付加したまま拡散

● 警告付きファイルが本当に捏造かは不明警告付きファイルが本当に捏造かは不明-> -> 悪戯で警告が付加されただけの可能性悪戯で警告が付加されただけの可能性-> -> ある人にとっては無駄でも、別の人には有益かもある人にとっては無駄でも、別の人には有益かも

● 警告付きファイルをダウンロードする場合には警告を解除警告付きファイルをダウンロードする場合には警告を解除-> -> 悪戯な警告付加への対抗策悪戯な警告付加への対抗策

● 捏造警告だけではファイルの正当性保証は不可能捏造警告だけではファイルの正当性保証は不可能

Page 28: データの利用可能性を高めるためのネットワークプロトコル

28

Who permit you to publish the file?Who permit you to publish the file?

● ファイルの作成者の意志と無関係にファイルの作成者の意志と無関係にHTSPHTSPに公開してよいかに公開してよいか??

● ホワイトリスト方式ホワイトリスト方式:: ファイル作成者が許諾したもののみ ファイル作成者が許諾したもののみHTSPHTSPで公開可能にで公開可能に

● ブラックリスト方式ブラックリスト方式:: ファイル作成者が禁止したもの以外は公開可能に ファイル作成者が禁止したもの以外は公開可能に

● 許諾不要方式許諾不要方式:: どんなファイルでも どんなファイルでもHTSPHTSPで公開可能にで公開可能に

● 権利者保護とデータ保護のトレードオフ権利者保護とデータ保護のトレードオフ

Page 29: データの利用可能性を高めるためのネットワークプロトコル

29

ConclusionConclusion

● P2PP2PベースでベースでHTTPHTTP上のファイルを共有上のファイルを共有-> URL-> URLでファイルを識別でファイルを識別

● 課題課題: : ファイルが本物であることをいかに示すかファイルが本物であることをいかに示すか-> -> 電子署名電子署名(PKI, (PKI, 信頼の輪信頼の輪), ), 捏造警告捏造警告-> trade-off: -> trade-off: 信頼性 信頼性 vs vs 手軽さ手軽さ

● 課題課題: HTSP: HTSPへファイルを放流する許諾を誰が与えるかへファイルを放流する許諾を誰が与えるか-> -> ホワイトリストホワイトリスト, , ブラックリストブラックリスト, , 許諾不要許諾不要-> trade-off: -> trade-off: 権利者保護 権利者保護 vs vs データ保護データ保護

ご清聴ありがとうございました。ご清聴ありがとうございました。

­ ­ fin ­ ­