- 1 名前:login:Penguin mailto:sage [03/06/22 19:40 ID:zhqumg4k]
- 今までのP2Pファイル共有ソフトに負けない機能、手軽さ、匿名性を備えた
全く新しいWWWベースのファイル共有ソフトを作るプロジェクトです。 -------------------- 535 ◆HO0OFh2RXI 氏による最初の発言 -------------------- 03/04/30 23:19 pc.2ch.net/test/read.cgi/linux/1024473956/535 > みんなでデーモンとして動くようなLinux版Winnyつくらない? > デーモンとして動かなくてもコンソールで使えればいいです。 > どうでしょうか?自分は、Linux C(C++)プログラマーです。 前スレ Linny開発プロジェクト pc.2ch.net/test/read.cgi/linux/1053087824/ Project Page linny.sourceforge.jp/ 議論用Wiki linny.sourceforge.jp/wiki/ ※プロジェクト参加希望の方は535氏<burner@users.sourceforge.jp>まで連絡してください。 また、本格的に参加する場合はSourceForge.jpのアカウントを取得してください。
- 454 名前:login:Penguin mailto:sage [2005/07/10(日) 17:39:23 ID:m7iyk48S]
- >425
ソンナメンドクサソウナモンダレガツカウ? って言いたい所だが、オープンソースってのに既に問題があるんじゃないの? プロトコル名に「LINNY」ってのも、どうなんだ? オープン仕様、オープンソースならば、Windowsでもいいわけだが・・・ プロトコル名は、「Anonymous Winny」をもじって、「ANONY」に一票。
- 455 名前:login:Penguin mailto:sage [2005/07/10(日) 18:24:15 ID:hZ/9wEx5]
- 「ONANY」
- 456 名前:login:Penguin mailto:sage [2005/07/10(日) 23:06:13 ID:pnHySe/b]
- まともなファイルすら取得できなさそう。もしかしたらfreenet以下かもね。
- 457 名前:login:Penguin mailto:sage [2005/07/10(日) 23:14:38 ID:kOFHOXTv]
- 鍵の長さって、現時点で論じるべきことなのかと思うがね。
- 458 名前:login:Penguin mailto:sage [2005/07/10(日) 23:22:09 ID:SZNYDAl1]
- 最初は無暗号で徐々に暗号化を実装とかは?
- 459 名前:login:Penguin mailto:sage [2005/07/10(日) 23:23:12 ID:rhhJYpWd]
- で、コード書くやつはいるのか
- 460 名前:login:Penguin mailto:sage [2005/07/10(日) 23:31:36 ID:kOFHOXTv]
- リスクを背負う事無く安全に流通させる経路さえあれば誰か書くんじゃない?
- 461 名前:425 mailto:sage [2005/07/11(月) 01:33:11 ID:MZK+5YtJ]
- >>456
>まともなファイルすら取得できなさそう。もしかしたらfreenet以下かもね。 やっぱり、そう思います? やはり、「匿名性」と「セキュリティ」と言う相反するものを同居させるには かなりムリがでてきますね。 この世界、あまりにOSIモデルのように、厳密で繁雑なシステムは 嫌われるので、もう少し簡略化したプロトコルが必要。 簡略化をする方法の1つは、連想鍵と言う概念を無くす方法です。 つまり、 キーファイルに暗号化ファイルのハッシュ値を直接貼り付けておき、 そのハッシュ値を元に、暗号化ファイルを探す方法 詳細は抜きにして、メリット・デメリットについて。 メリット 検索は高速。仕組みは簡単なので、暗号化ファイルの改ざん対策が容易 デメリット 「暗号化ファイル」から「キーファイル」が、解かってしまう。 つまり、キーファイルがなくても、ハードディスクを没収されると、P2Pネット内から キーファイルを落として、復号されてしまう危険性がある 「キーファイル」検索条件に制限をかけるなどの対策を取れば、ある程度OK? プロトコル名は、>>454にあやかって「Simple ANonymous winNY」を もじって「SANNY」なんてのを考えてみる。
- 462 名前:login:Penguin mailto:sage [2005/07/11(月) 16:32:40 ID:/TB8jfv9]
- 階層がわかりにくい…だれか図示してくれ…
何に対しての匿名性を確保して、何に対しての改変耐性を確保する予定なのかを 示してもらえると、もう少しわかりやすくなるかも。 連想鍵で1階層噛ましているの理由がよくわからん。 正規の検索かければ誰でも復号できるんでしょ? 攻撃側に対する耐性になってないと思う。
- 463 名前:425 mailto:sage [2005/07/11(月) 22:29:31 ID:iaGb8hb0]
- >>462
>何に対しての匿名性を確保して 「誰」が「何のファイル」を、落としているかを「誰」にも分からなくし、 「誰」が「何のファイル」を、上げているのかを「誰」にも分からなくする。 「暗号化ファイル」単体では、何のファイルで何がかかれているか、 まったく不明にするコトで、完全な匿名性を実現しようとしたもの。 要は、国が本気で動いても、よく言われる「匿名の度合い」での、 「疑いの域を出ない」(Level 5)を実現しようとしたもの。 勿論、「言論の自由」のために(w >何に対しての改変耐性を確保する予定なのか 運用しだすと、よくありそうなのは、「暗号化ファイル」を落としてみると どこぞの会社の宣伝だったとか、と言う「騙し」ファイルの蔓延 キーファイルだけ作りまくる輩・・・など
- 464 名前:425 mailto:sage [2005/07/11(月) 22:33:50 ID:iaGb8hb0]
- >連想鍵で1階層噛ましているの理由がよくわからん。
何故こんなに煩雑なものになったのかと言うと、 キーファイル ⇒ 暗号化ファイル は、分かっても、 暗号化ファイル ⇒ キーファイル は、絶対に分からなくする。 つまり、「キーファイル」と「暗号化ファイル」は、「同じデータ」を持ってはいけない。 という、前提条件があるからです。 具体的に言うと、壊れていたり、改ざんされている暗号化ファイルを ネットワーク内で、蔓延させないためには、 暗号化ファイルを キャッシュしたノードは、毎回、暗号化ファイルのハッシュを 行い、その値を公開する。 そして、検索者はそのハッシュ値を元に暗号化ファイルを検索し、 落とすと、壊れたり、改ざんされている暗号化ファイルは、 それ以上、蔓延することは無く消えていく。 これは、Freenetで実装されている技術です(ただし、暗号化はされていない)。 じゃあ、キーファイルに、「暗号化ファイルのハッシュ」を 直接貼り付けると、どう言う事が起こるでしょうか? 暗号化ファイルのハッシュ値は、暗号化ファイルから直ぐに分かってしまい、結果、 「キーファイル」と「暗号化ファイル」は、「同じデータ」を持ってしまっている。 で、こんなのになったワケ。 よく見ていただくと分かると思うが、「キーファイル」と「暗号化ファイル」は「同じデータ」を 一つも持っていません。(持っていますが、暗号化されていて分かりません) ま、はっきり言って、私も、まともに動くとは思えない。(システム全体が重過ぎる もう少し、使い勝手のいい、安易なものの方がいい。
- 465 名前:login:Penguin mailto:sage [2005/07/11(月) 22:53:31 ID:/qz9fPP7]
- ttp://s2net.s41.xrea.com/
アイデアだけはいっぱい出ているし、国内外問わず研究論文もたくさんある。 問題なのは規模が大きくなったときに(検索,転送効率等が)破綻せずに動くかと いうこともあるし いくら理論が優れていても導入がめんどくさいとかUIがコマンドラインしか使えない だったら誰も使わないだろう
- 466 名前:login:Penguin mailto:sage [2005/07/11(月) 23:20:09 ID:wBE6vaKT]
- > いくら理論が優れていても導入がめんどくさいとかUIがコマンドラインしか使えない
> だったら誰も使わないだろう そこはオープンソースなんだから、UI は誰かが作ってくれるだろう。 通信部分は Winny の時に散々ループしてた dll なり so なりにすればいいじゃん。
- 467 名前:425 mailto:sage [2005/07/12(火) 02:03:25 ID:cTi5k0J7]
- >>465
>問題なのは規模が大きくなったときに(検索,転送効率等が)破綻せずに動くかと 確かにいえる。ノードは、全て信用できるものであれば、簡単でしょうけど 規模が大きくなれば、なるほど信用性は薄くなる。 Winnyでも、ウイルス流れたしね。
- 468 名前:login:Penguin mailto:sage [2005/07/12(火) 11:11:49 ID:nQBkc+7e]
- > Winnyでも、ウイルス流れたしね。
どんなウィルス?
- 469 名前:login:Penguin mailto:sage [2005/07/12(火) 13:43:43 ID:nQBkc+7e]
- ん?
> ヤバイと、思ったときは即座に、そのパーミッションをフォーマット・・・ なんだこれ。
- 470 名前:login:Penguin mailto:sage [2005/07/12(火) 14:16:23 ID:5JN9Gt1s]
- >>463
>「誰」が「何のファイル」を、落としているかを「誰」にも分からなくし、 >「誰」が「何のファイル」を、上げているのかを「誰」にも分からなくする。 「意図してダウンロードを開始した、末端ノード」に対しては、 「あるファイル(の暗号化されたもの)」であることはわかるのでは。 「意図して最初にシステムに投入した、末端ノード」に対しても 同様ではないか。 その情報がどこまで伝播してしまうか、で。 隣から見た場合、意図してダウンロードを始めたか否かで 「知っているかどうか」を知ることができるのは危険かなと。 >どこぞの会社の宣伝だったとか、と言う「騙し」ファイルの蔓延 「人間の認識するファイルの情報」と、「データそれ自体」が一致しているかどうかは 実際にファイルを展開できたノードにしか判定できない。 その情報を伝播させて大丈夫かな。 それとは別に、システムで検知できる改変(チェックサムが違うとか)は これだと弾けそうだけど。
- 471 名前:425 mailto:sage [2005/07/13(水) 00:34:25 ID:dIg+n2Qr]
- >「意図してダウンロードを開始した、末端ノード」に対しては、
>〜中略〜「知っているかどうか」を知ることができるのは危険かなと。 言っている意味が、分かりにくいので、良ければ、具体例を上げて その危険性を、教えて欲しえてくれませんか?。 >「人間の認識するファイルの情報」と、「データそれ自体」が一致しているかどうかは >実際にファイルを展開できたノードにしか判定できない。 キーファイルが、「信用」出来る場合を考えてみますと、 ハッシュ値、つまり「メッセージダイジェスト」は、データ情報の特徴を圧縮したもので、同じデータを ハッシュにかければ、同じ値になるが、1バイトでも違うと、まったく違う値になります。 要は、ハッシュ値が一緒であればファイル内容も同じ(厳密に言うと、非常に低い確率で違う場合もあり) であると言うことです。 つまり、ハッシュ値を元に検索を行えば、改ざんや破壊が起こっていないファイルを 探す事がで来ます。 そして、改ざんや破壊が起こったファイルは、参照される事無くいつしか消えていきます。
- 472 名前:470 mailto:sage [2005/07/13(水) 03:23:59 ID:MNJFxM92]
- >>471
ちゃんと理解できてないんで、誤解してると思うけど。 例えば、このスレの過去ログをネットワークに投入したいとする。 投入する1次upノードは、当然内容を知っているはず。 ネットワークから、このスレの過去ログをダウンロードしようとしたノードは、 (その情報が確かなら)そのデータは過去ログであることを知っているはず。 隣接ノードに、1次upノードであること、またはダウン要求ノードであることが (ダウン要求の内容(この場合は過去ログであること)も含めて)ばれてしまうことは、 例えどんな暗号化がされていようとも、内容を知った上で送受信しているという事になる。 これは、このスレの過去ログが発禁扱いになっていて、政府が監視中であるなら 危険なことだと思う。言論の自由を目指すんだしw ダウン要求の内容がばれてしまうことは、ある要求をシステムでの要求に変えることと等価である。 あるファイルが落とせるってことは、投入側と取得側でなんらかの同意がいるってことでしょ。 取得するのと同じやり方で、取得方法だけ持っておいて、ネットワークを流れる要求を 監視されたらやばいんでないの、という意味。 当然中継ノードなら、内容は知らずに、P2Pネットワークとしての責務として ただ踏み台にされただけだから、(現時点の世界では)こういう心配はしなくていいのでは、と。
- 473 名前:470 mailto:sage [2005/07/13(水) 03:32:35 ID:MNJFxM92]
- >後段
キーファイルが信頼できるかどうかがそもそもやばいんで内科医ということ。 プロトコル的に、データが改変損傷してないのは保障するとして、 例でいうところの、このスレの過去ログではなく、Winny本スレの過去ログがおちてくる場合 そのキーファイルやら暗号化データはどうするのってこと。 そういうことする香具師はたくさんいるし、ミスってそうなることもあるよ。 内容知っている人にしかネットワークの暗号データは評価できないんだけど、どうやって排除すべきか。 内容が合ってるかどうかを流すことのできるノードも、情報を知っていることになって監視対象入りかも。 そういうことも含めて、誰が何の情報を知っていて、何の情報を知っていることになっていて 隠すべきものは何かな、と考えてたらよくわからなくなってしまって聞いたんだけど。
- 474 名前:425 mailto:sage [2005/07/13(水) 15:46:02 ID:OdrjvaIG]
- このシステムは、Winnyと言うより、Freenet的だったので、
さまざまな部分で、効率が悪い。 今度は、Winnyベースの高速な匿名性ファイル共有で、特にファイル提供者の 匿名性が非常に高い物を思いついたので、まとまり次第うpします。 (キーファイルと暗号化ファイルに分けるという点は変わりません。) >>472 このシステムにおいて、Freenetのような、アップデートの概念はありません。 あるのは、「検索」と「ダウンロード」だけです。 まず、「あるファイル」を自分の公開領域に置き、その存在をネットワークに知らせます、 知らせる、といっても、「ここにあるよ」と言ったら、匿名性もへったくれもないので、 ネットワークに、そのファイルの「検索クエリ」を送信します。 そして、その検索クエリは、高い確率で自分のノードに戻ってきます。 その時、自分自身で返事を返してやれば、誰にも悟られずに、そのファイルを ネットワークのクラスタに追加できます。 しかし、キーファイルのような軽いファイルであれば問題ないが、重いファイルの場合、 Freenet同様問題がでてくるので、根本的な見直しが必要
- 475 名前:425 mailto:sage [2005/07/13(水) 15:54:48 ID:OdrjvaIG]
- >>473
まぁ、人間ミスするのでそれは、大した問題ではないと思う(笑 そう言うのは、排除する必要もないんじゃ? 問題になってくるのは、例えば『ダイエット本』で検索した時、『ダイエット本』に 関係するキーファイルが落とされます。 しかし、『ダイエット本』と書きながら、暗号化ファイルを落として復号してみたら、 何故か『サラ金の広告』だった場合は問題です。 このための公開鍵です。要は、公開鍵はIDです。信用できないIDは、信用しなければいいだけです。 (その公開鍵であれば、無条件で消す) そして、このような信用できない公開鍵があれば、信用できる公開鍵も存在するはずです。 公開鍵は、一種のIDです。ならば、信用性のある公開鍵の「なりかわり」の心配はないか? それは、公開鍵に対する秘密鍵が分からない限り、不可能です。
- 476 名前:login:Penguin mailto:sage [2005/07/13(水) 18:17:25 ID:4rsiUBe0]
- で、いつごろまで屁理屈こねくりまわすの?
- 477 名前:login:Penguin mailto:sage [2005/07/13(水) 18:28:32 ID:+oLOISW/]
- おまえがしびれを切らして愚痴るまで。
つまりあともう少しだな。
- 478 名前:login:Penguin mailto:sage [2005/07/13(水) 20:32:46 ID:MNJFxM92]
- >>474
Freenetよか遅いのは考える意味がないw この案はこの辺りが潮時か… >「検索クエリ」 この送受信を傍受されたらどうするのって言ってるんだが。 >公開鍵 信用できる鍵にあたるまでがんばれってか。 攻撃側は信用できない鍵をばら撒くんだから、どうやって区別するんだと。 >>445 で指摘されてるように、固定は危険だし。
- 479 名前:login:Penguin mailto:sage [2005/07/13(水) 20:59:14 ID:4rsiUBe0]
- >>477
すでに愚痴ってるわけだが。
- 480 名前:425 mailto:sage [2005/07/14(木) 16:51:28 ID:5jVfH12S]
- >>478
>Freenetよか遅いのは考える意味がないw 私もそう思います。ですが、キーファイルの通信は非常に軽いので そのあたりで使えると思っています。 >この案はこの辺りが潮時か… 一応、暗号化ファイルの通信を独立させた、次の案があるので、 もう、暫く付き合っていただけませんか? >この送受信を傍受されたらどうするのって言ってるんだが。 通信を暗号化したレイヤでトンネリング(SSLっぽいの)すれば、外部からのチャプチャリングは、 シャットアウトできます。 内部ノードは、自分の上位ノードと下位ノードのことしか、分からないので、 どのような経路を辿って「検索クエリ」が来たのかは、一切分かりません。
- 481 名前:425 mailto:sage [2005/07/14(木) 16:52:55 ID:5jVfH12S]
- ・・・続き
>信用できる鍵にあたるまでがんばれってか。 むしろ、信用できる鍵の方が多くなると私は考えています。 RSA2048bit公開鍵の鍵セットを作るには、どんなに強力なマシンでも かなり時間を喰らうのにくらべ、「除外(一切受け付けない)」のは一瞬で終わる。 「攻撃者」が、鍵セットを作り続けたとしても、どっちが不利かといえば、 圧倒的に「攻撃者」が不利。 かといって、「攻撃者」は、「他の公開鍵」に成り代わろうとしても、 相手の「秘密鍵」を、知らなければいけない。 その「攻撃者」が、RSA2048bitをクラックできるとしたら、ネットバンキングは とっくの昔に破綻しています。 ならば、そんな馬鹿な事を実際にする香具師は、殆ど現れないはずです。
- 482 名前:425 mailto:sage [2005/07/14(木) 16:54:57 ID:5jVfH12S]
- >攻撃側は信用できない鍵をばら撒くんだから、どうやって区別するんだと。
上記の理由で、「なりかわり」は、理論上できません。 となれば、「同じ鍵」であれば「同一人物」です。 要は、「あなたは、何を基準に『人』を信用しますか?」ということです。 少なくとも、3回連続で、暗号化ファイルが存在しない悪質なキーファイルの鍵は 「信用できない」 5回連続で、きちんとした暗号化ファイルが存在するキーファイルの鍵は、ある程度は、 「信用できる」 って、ことです。 上記のような簡単な判断は、アプリ側に任せていいと思います。 あと、公開鍵の情報を保存しておく必要もあります。 >>445 で指摘されてるように、固定は危険だし。 外部からの、キャブチャリングは暗号化してしまえば、不可能です。 内部ノードは、上位ノードと下位ノードの事しか知りません。 その状況で、「公開鍵」の発信元を調べるのは、非常に困難を極めます。 「公開鍵」の発信元を調べるスピードよりも、ファイルが拡がるスピードの方が 圧倒的に速いからです。 一旦ファイルが拡がってしまえば、誰が発信元かなんて、絶対に分かりません。
- 483 名前:login:Penguin mailto:sage [2005/07/14(木) 17:31:19 ID:D9NFH06e]
- で、何%までできた?。机上の空論もいいけど、コード書いて実装できなきゃ
意味ないぞw
- 484 名前:login:Penguin mailto:sage [2005/07/14(木) 17:39:02 ID:TU8gjza9]
- よし、使用言語はObj-Cで決まり。
- 485 名前:login:Penguin mailto:sage [2005/07/14(木) 18:27:54 ID:+fLeQjmb]
- >>482
> 少なくとも、3回連続で、暗号化ファイルが存在しない悪質なキーファイルの鍵は > 「信用できない」 これだと単純すぎると思う。 暗号化ファイルはちゃんと存在するけど、内容が期待したのと違うっていうような攻撃が来るんじゃないかな。 こういう攻撃だと、除外する側は暗号化ファイルを受信して、内容を調べて判断しなきゃいけない。 鍵を作る手間に比べて、受信した内容を確認・判断する手間って、むしろ大きいんじゃないかな。 期待通りのファイルかどうかを判断するのは、自動化が難しい問題だろうし。
- 486 名前:login:Penguin mailto:sage [2005/07/14(木) 20:11:14 ID:PKmLnshm]
- 実際にコード書いて検証すればいいだけだのに、
どうして机上の空論を書くのに精を出しているのだろう。
- 487 名前:login:Penguin mailto:sage [2005/07/14(木) 21:13:19 ID:E+/HEPIn]
- しびれを切らして愚痴りだした香具師がいるなw
机上の空論、大いに結構。
- 488 名前:login:Penguin mailto:sage [2005/07/14(木) 21:20:30 ID:PKmLnshm]
- はて。
476 :login:Penguin :sage :2005/07/13(水) 18:17:25 (p)ID:4rsiUBe0(2) で、いつごろまで屁理屈こねくりまわすの? 477 :login:Penguin :sage :2005/07/13(水) 18:28:32 ID:+oLOISW/ おまえがしびれを切らして愚痴るまで。 つまりあともう少しだな。
- 489 名前:login:Penguin mailto:sage [2005/07/14(木) 21:35:52 ID:ey7oBSjc]
- 425は机上の空論の妄想野郎。
>>433で本人が認めてるし。こいつ自身は実装やる能力がない。 そんな、脳ナシに標準化なんか出来るか。Freenetに任せとけ。
- 490 名前:login:Penguin mailto:sage [2005/07/14(木) 23:14:16 ID:HLeFWI2x]
- わからんかなぁ
ほら、あれと同じ雰囲気を楽しむスレなんだよここは。 居酒屋や串焼き屋でだ、仲間内で出来もしない事を熱く議論することがあるだろ。 そういう空気が好きなんだよ俺等
- 491 名前:login:Penguin mailto:sage [2005/07/14(木) 23:26:53 ID:PKmLnshm]
- 釣り堀スレか。
- 492 名前:きたろう mailto:sage [2005/07/14(木) 23:38:17 ID:3X5YI5cJ]
- 常に欲求不満でイライラしている。
自分の能力に劣等感を持っている。 出る杭は徹底的に叩かないと気が済まない。 そんなネガティブな感情に流されてる暇人の存在を感じます、父さん!
- 493 名前:login:Penguin mailto:sage [2005/07/16(土) 03:35:55 ID:qxGyOozH]
- >>486
実際に手を動かせるくらいできてればこんなところで考える前に ダウソで"ちょっとまちなー"ができるって。 システムが中途半端だとコーディングする意味ないし。 >>480 >通信の傍受 外部からの、ではなく、内部からのってこと。 つまり(正規の動作をある程度行う)スパイノードの存在は大丈夫かなと思って。 >どのような経路を辿って「検索クエリ」が来たのかは、一切分かりません。 検索システムがどのように予定されてるのかはわからないけど。 例えばクエリが帰ってくるようにリターンアドレスを入れておくような実装だと、 「誰が」リクエストを出したのかがばれてしまう、というような情報漏れを心配している。 >一旦ファイルが拡がってしまえば、誰が発信元かなんて、絶対に分かりません。 1次Upノードが特に危険だと思うんだが。 Shareとかは強制拡散してるみたいだし、Freenetとかはバッファにプッシュして 所持ノードの概念がなくなるみたいだし、いろいろ工夫してると思う。 Winnyは、何もしない、という戦略をとったが。
- 494 名前:425 mailto:sage [2005/07/16(土) 23:10:58 ID:jAChWphq]
- 新案をコトコト煮詰めています。
暗号化ファイルは、StaticNATを使った面白いネットワーク偽装を 考えています。 >>493 キーファイルの共有は、完全なFreenetスタイルを考えています。 つまり探索とかもいっしょ、大量のノードが協力しない限り、 要求者を求めるのは難しい。 >1次Upノードが特に危険だと思うんだが。 「自分自身」で「自分自身しか持っていないファイル」を探索するクエリを、 隣のノードに送信すると、どうなると思います? Freenetでは、経路上に多くのループが発生します。 つまり、必ず探索クエリは、自分自身に戻ってきます。 そこで、アップロードしながらダウンロードしたらどうなるでしょうか? 自分の下位ノードは、自分がそのファイルを中継しているか、アップしている かは分かっても、誰がその要求を出しているのか分かりません。 逆に、上位ノードは、自分がそのファイルを中継しているか、要求している かはわかっても、そのファイルが何処から流れてきているのかわかりません。 そして、途中経路では「複製」が出来ます。 つまり、1次Upノードは、誰にも悟られる事なくネットワーク上にファイルの 複製を作れます。 つまり、これで誰が1次Upノードかは謎になる。
- 495 名前:login:Penguin mailto:sage [2005/07/17(日) 00:28:28 ID:iMIptb/B]
- ほんとにできてるの?何%くらい
- 496 名前:login:Penguin mailto:sage [2005/07/17(日) 01:26:26 ID:ksRYqrdf]
- >>495
>>489
- 497 名前:login:Penguin mailto:sage [2005/07/17(日) 09:10:57 ID:3e1zqbRW]
- >>495-496
早漏は損だよ
- 498 名前:login:Penguin mailto:sage [2005/07/17(日) 17:36:40 ID:hmmV4Rhb]
- >>494
>1次Upノード保護 経路のループを利用して自己偽装Down要求ってことですな。 >Freenetでは、経路上に多くのループが発生します。 >つまり、必ず探索クエリは、自分自身に戻ってきます。 このループはある程度大きくないと効果が期待できないと思うんですが、 あまり大きいと、中継転送による速度の低下が心配されると思いますが バランスとかはどうなるでしょうか。 確実にクエリが戻ってくることは期待して大丈夫ですかね。 繋ぎ変えがおこるネットワークならば、ループが切れたりしないかな。 >ネットワーク偽装 期待してます。よろ。
- 499 名前:425 mailto:sage [2005/07/18(月) 18:56:18 ID:juv970X8]
- 「HannyNet(Hashing anonymous winny Network)」案
ちょっとは、まとまった思うので書いてみる。 「HoneyNet」(行動の一部始終を監視できるように設計されたネットワーク)の 真逆を逝っているので、何となくつけてみたくなった。 匿名性の重要度 ファイル提供者 >> ファイル要求者 ファイル提供者の匿名性は最優先される。 なぜなら、「提供する者」がいなくなれば、 「共有」は存在しえないからである。 つまり、ファイルを提供すればするほど、匿名性の保障に優位に立つことができて、逆に、 吸いとるだけの輩は、匿名性を保障しないようにシステム全体が推移するような仕組みが 望ましい。
- 500 名前:425 mailto:sage [2005/07/18(月) 18:57:13 ID:juv970X8]
- ファイル構成
1.キーファイル(テキスト形式) 1-0)キーワード情報 クラスタ化に必要な自然言語パターン 1-1)暗号化ファイル共通鍵 読んで字の如く、暗号化ファイルの共通鍵。 1-2)暗号化ハッシュコード 2-1)のハッシュコードを、1-3)の秘密鍵で、暗号化したもの。 (べつに、1-1)で暗号化しても問題ない。) 意味がないように思えるが、非常に意味がある。 暗号を解かなければ、暗号化ファイルのハッシュコードは分からない。 つまり、「暗号化ファイル」から「キーファイル」は分からない。 1-3)IP/ポート交換ワンタイム公開鍵(RSA 128bit) IPとポート番号を申請するときに使う。 詳しくは、後述。
- 501 名前:425 mailto:sage [2005/07/18(月) 18:58:06 ID:juv970X8]
- 1-4)公開鍵(RSA 2048bit)
1-5)の公開鍵。 1-5)電子署名 1)〜4)の電子署名。こうした方が、たぶん都合がいい。 1-6)1-4)のハッシュコード ノードにキャッシュされる度、随時上書きされる。 キーファイルの検索では、同時に公開鍵の参照も許しているが、 256バイトのデータを毎回参照していたのでは、ノードに対する 負担が大きい。 そこで、ハッシュを用いて大まかに検索して送信する。そして、 最終的な判断は、検索クエリを出したノード自体に委譲する。 ここで、使うハッシュ関数は、MD5やMD4のように厳密なものではなく 計算量が、非常に軽いものが望ましい。固定ビット長なので、上手い 方法があるはずです。
- 502 名前:425 mailto:sage [2005/07/18(月) 18:59:12 ID:juv970X8]
- 2.暗号化ファイル(バイナリ形式)
2-1)ハッシュコード 2-2),2-3)のファイルの内容をハッシュにかけた値(MD5) 要は、ファイル名。 ノードにキャッシュされる度、随時上書きされる。 2-2)データフィールド 暗号化された、データが入っています。 2-3)IP/ポート交換ワンタイム秘密鍵(RSA 128bit) ファイル最後尾から、128bitが1-3)に対する秘密鍵になっている。 詳しくは、後述。
- 503 名前:425 mailto:sage [2005/07/18(月) 19:00:32 ID:juv970X8]
- 3.通信ポート
3-1)管理ポート(TCP) ポート番号: インストール時に決定 主に、キーファイルの検索/受け渡しをする。 暗号化ファイルのプロキシ要求(後述)や、NAT要求(後述)もこのポートで行う。 この通信は、暗号化される。 要は、コマンドもファイルも一緒に送り、暗号化の手間を軽減する。 処理の優先度は、 NAT要求 > 検索クエリ > キーファイルの送受信 > プロキシ要求 3-2)暗号化ファイル検索ポート(UDP) ポート番号: インストール時に決定 3-1)の通信でコネクションが張られていないIPからの要求は、 全て遮断することとする(応答は受け入れる)。 この通信は暗号化されない。
- 504 名前:425 mailto:sage [2005/07/18(月) 19:01:18 ID:juv970X8]
- 3-3)暗号化ファイル転送ポート(TCP)
ポート番号:随時決定 特に説明ナシ。この通信も暗号化されない。 3-4)ICMPエコー要求(ICMP) イワユル、「ping」コマンドで、セキュリティ上は切っておいた方が望ましいが、 相手のマシンが、起動しているかどうかを調べるのに最も楽な方法。 TCPコネクションを確立させる前にpingを送れば、余計なSYNパケットを出さなくてすむ。
- 505 名前:425 mailto:sage [2005/07/18(月) 19:02:07 ID:juv970X8]
- コマンド・パケットフォーマットなど
今の段階では適当。とりあえず、決まっている物から (所詮、暇人の考える程度の事ですから) 4.暗号化ファイル検索パケット(UDP通信) 4-1)余命(8bit) そのパケットのが後、どれ位生きれるのかを示す。1つノードを通過すると、 年をとって余命が減るかもしれない。また、減らないかもしれないし、 一気に老けてしまうかもしれない(要は適当に決まる)。 勿論、0になった地点で死にます。 4-2)乱数(24bit) 通信を区別するために、適当な乱数を設ける。 4-3)ハッシュコード(128bit) 暗号化ファイルのハッシュ値
- 506 名前:425 mailto:sage [2005/07/18(月) 19:03:03 ID:juv970X8]
- 4-4)暗号化IP/返信ポート(128bit)
要求ノードのIPと返信ポートを1-3)で暗号化したもの。 暗号化ファイル、つまり、1-3)の秘密鍵である2-3)を所持している者だけが分かる。 暗号化ファイルを所持していたとしても、キーファイルを所持していなかった場合、 ファイルの内容は分かりません。 128bitRSA暗号なので、公開鍵が分かれば、本気になれば解ける程度の強度。 つまり、キーファイルから暗号が解けるかもしれない。 ですが、キーファイルがあればの話しですし、公開鍵も不明な状態で解けるほど 軟な暗号じゃありません。 キーファイルあっても、ハッシュコードから、直接キーファイルは分からないので ないも同然。 勿論、所持しているキーファイルの1-2)暗号化ハッシュコードを復号していた場合なら、 公開鍵は、分かってしまいます。 しかし、匿名性の本質は、暗号化の強度では決まりません。 つまり、要求ノードが「ファイル要求者」だとは、限らないということです。
- 507 名前:425 mailto:sage [2005/07/18(月) 19:06:51 ID:sTNmNfe5]
- 5.プロキシ要求コマンド 必要引数
5-1)ハッシュコード 暗号化ファイルのハッシュ値 5-2)IP/ポート交換ワンタイム公開鍵(RSA 128bit) キーファイルの1-3)と同じ NAT要求コマンド ポート貸与要求、延長要求、開放要求の3つがあるが、詳しくは後述する。 6.通信体系 6-1)留意点 仕様的に、NAPTユーザーは、使用不可能になる。 まぁ、人(会社、学校)の回線を使って、P2Pするな。 自己責任でせんかい! って、意味もあります。(どっちにしろコイツ等、吸い取り専門ですし) 6-2)キーファイル通信 キーファイルの通信は、Freenet的で、ノード間の通信は暗号化されます。 Freenetとの違いは、検索が「自然言語」である事。 「自然言語+公開鍵(のハッシュ)」の検索も可。 Freenetは、小さいファイルを扱うには、非常に優れています。
- 508 名前:425 mailto:sage [2005/07/18(月) 19:08:34 ID:sTNmNfe5]
- 6-3)暗号化ファイル通信(基本検索、基本通信)
暗号化ファイル通信の通信は、「基本通信」、「プロキシ通信」、「NAT通信」に分かれます。 まずは、基本となる「基本通信」について説明します。 基本通信は、完全な「直接通信」です。この段階では、通信が行われる2つのノード間では 匿名性もへったくれもありません。ですが、「2つのノード」以外には、通信している事は 悟られません。勿論、「2つのノード」のどちらかに悪意がある場合は別になります。 この段階では、匿名性はないに等しいことになります。 検索は、UDPポートを使った、一斉広報による検索方式です。 トラフィックが無駄に膨れ上がる恐れがありますが、上手くいけば高速な回答が予測できます。 検索方法は、まずファイル要求ノードが、現在接続されている全てのノードに検索パケットを送信する。 検索パケットを、受け取ったノードは、自分の公開領域の中から、暗号化ファイルを探します。 暗号化ファイルが存在すれば、暗号化ファイルに埋め込まれている2-3)IP/ポート交換ワンタイム秘密鍵で復号します。 復号すれば、IPと返信ポートとが分かるので、自分のIPと接続を許すポートを付加した応答パケットを『直接』送ります。 「自分のIPと接続を許すポート」は、中間ノードを通らないので暗号化する必要性はないのですが、応答パケットと、 検索パケットの区別を外部から難しくするために、あえて2-3)IP/ポート交換ワンタイム秘密鍵で暗号化して送ります。
- 509 名前:425 mailto:sage [2005/07/18(月) 19:09:17 ID:sTNmNfe5]
- これで、要求ノードは、ファイルの存在場所を知る事ができます。匿名性はないに等しいのですが、これが基本となります。
暗号化ファイルを探しなければ、余命を更新して、現在接続されている全てのノードに検索パケットを 送信する(ただし、送信元ノードには送らない) 余命をいくつ減らすかを乱数でランダムに決めますが、余命によって重み付けが変わってきます。 (この例は、適当で極端な例です) 余命 1: 7割の確率で1減らす。3割の確率で減らさない。 余命 2: 5割の確率で1減らす。2割の確率で2減らす。3割の確率で減らさない。 余命 3: 5:2:1:2 = 1減らす:2減らす:3減らす:減らさない 余命 4: 4:2:2:1:1 = 1減らす:2減らす:3減らす:4減らす:減らさない 余命 5: 4:2:2:1:1:0 = 1減らす:2減らす:3減らす:4減らす:5減らす:減らさない 検索パケットは、余命が0になった地点で消滅します。 検索パケットの余命は、第1回一斉広報は、「1」。第2回一斉広報は、「2」と段々深くなっていきます。 どの程度の深さまで、探せば良いのかは数学的モデルを立ててやる必要があるかもしれない。
- 510 名前:425 mailto:sage [2005/07/18(月) 19:10:02 ID:sTNmNfe5]
- 6-4)暗号化ファイル通信(プロキシ通信)
普通のプロキシ通信ですが、プロキシの選び方はまったくの「デタラメ」です。 まず、接続されているノードの中から適当に、「プロキシ要求コマンド」を送信します。 プロキシ要求コマンドには、5-1)『ハッシュコード』と、5-2)『IP/ポート交換ワンタイム公開鍵』が 含まれます。 プロキシ要求コマンドを受け取ったノードは、9割の確率で、6-3)「基本検索、基本通信」に移行し、 ファイルを中継します。 のこり、1割の確率で、そのノードは、さらに接続されているノードの中から適当に、 「プロキシ要求コマンド」を送信します。 90%以下の確率で、 要求ノード === 中継ノード === 提供ノード 99%以下の確率で、上のパターンか、 要求ノード === 中継ノード === 中継ノード === 提供ノード つまり、誰が始めに「プロキシ要求コマンド」を出したかを、分かりにくくするのが目的。 中継ノードは、中継ファイルをキャッシュするが、中間ノードの役割は要求者に対するフィルタです。 ですから、キャッシュの消去は個人の自由です。 キャッシュを消去しなっかった場合、6-3)「基本検索、基本通信」で引っかかって、提供ノードに なってくれます。
- 511 名前:425 mailto:sage [2005/07/18(月) 19:10:51 ID:sTNmNfe5]
- 6-4)暗号化ファイル通信(プロキシ通信)
普通のプロキシ通信ですが、プロキシの選び方はまったくの「デタラメ」です。 まず、接続されているノードの中から適当に、「プロキシ要求コマンド」を送信します。 プロキシ要求コマンドには、5-1)『ハッシュコード』と、5-2)『IP/ポート交換ワンタイム公開鍵』が 含まれます。 プロキシ要求コマンドを受け取ったノードは、9割の確率で、6-3)「基本検索、基本通信」に移行し、 ファイルを中継します。 のこり、1割の確率で、そのノードは、さらに接続されているノードの中から適当に、 「プロキシ要求コマンド」を送信します。 90%以下の確率で、 要求ノード === 中継ノード === 提供ノード 99%以下の確率で、上のパターンか、 要求ノード === 中継ノード === 中継ノード === 提供ノード つまり、誰が始めに「プロキシ要求コマンド」を出したかを、分かりにくくするのが目的。 中継ノードは、中継ファイルをキャッシュするが、中間ノードの役割は要求者に対するフィルタです。 ですから、キャッシュの消去は個人の自由です。 キャッシュを消去しなっかった場合、6-3)「基本検索、基本通信」で引っかかって、提供ノードに なってくれます。
- 512 名前:425 mailto:sage [2005/07/18(月) 19:13:05 ID:NWEvQOcw]
- 6-5)暗号化ファイル通信(NAT通信)
(説明は、大雑把です) 今回の目玉である「提供ノード」の匿名性を上げる目的で考えたもので、提供ノードに必須な機能です。 これは、StaticNATをネットワーク偽装です。StaticNATとは、NATテーブルを元に、自分のあるポートに アクセスしたパケットを、別のIPに書き換えて、転送する技術です。 LAN内のプライベートIPが割り振られたWWWサーバーなどに、外部からアクセスするために使われます。 それらを駆使して、要求ノードAは、Bと通信していると思い込んでいるが、実はCと「直接通信」している。 と言う、なんとも「あやふや」な事ができます。 原理は、こう言うことです。 まず事前に、ノードC(192.168.1.32/24)は周りのノードに適当に「ポート貸与要求」を出します。 ノードB(172.168.5.123/24)に「ポート貸与要求」が来ると、空いているポートをランダムに選びます。 ここでは、「4747」とします。これをノードCに通知します。
- 513 名前:425 mailto:sage [2005/07/18(月) 19:13:45 ID:NWEvQOcw]
- 貸与要求したノードCも、「4747」が開いていれば、「OK」を返し、開いていなければ、
同じ動作を繰り返します(普通、開いています。) ノードBは、「4747 ⇒ ノードC(192.168.1.32/24)」と言う情報をNATテーブルに書き込みます。 さらに、「192.168.1.32 ⇒ 172.168.5.254」とルーティング情報を書き加える。 (なお、172.168.5.254は、ノードB(172.168.5.123/24)のデフォルトゲートウェイ) これで、「4747」にアクセスされたパケットは、無条件で、ノードBに送られます。 (出来なかったら、仮想ネットワークカードを作ってやる必要があります。) しかし、このままでは不正利用を招くので、ノードBには、TCPのPSHパケットと、UDPパケットは 転送しないよう設定します。 これで、ノードBの設定はおわりです。
- 514 名前:425 mailto:sage [2005/07/18(月) 19:14:32 ID:NWEvQOcw]
- ノードCは、ノードBと「同じIP」を持つ、仮想ネットワークカード「X(172.168.5.123/24)」を作成します。
物理ネットワークカードから、「4747」にアクセスされたパケットを、仮想ネットワークカード「X」に 送るために、「4747 ⇒ X(172.168.5.123/24)」と言う情報をNATテーブルに書き込んみます。 これで、物理ネットワークカードから、「4747」にアクセスしたパケットは、無条件で全て、 仮想ネットワークカード「X」に送られます。 これで全ての下準備は、完了しました。 ノードCに検索パケットが届いて、調べてみるとその暗号化ファイルを発見。 復号してみると、ノードA(10.1.1.2/24)から届いた物である事が分かった。 ここで、「10.1.1.2 ⇒ 192.168.1.254」とルーティング情報を書き加える。 仮想ネットワークカード「X(172.168.5.123/24)」から、応答パケットを送信。 ノードAは、172.168.5.123(ノードBと見せかけた「X」)が、「4747」の接続を許可したしてくれたと知る。 ノードAは、172.168.5.123(ノードB)の「4747」に、SYNパケットを送る。 ノードBは、192.168.1.32(ノードC)の「4747」に、SYNパケットを転送。 ノードCは、172.168.5.123( 「X」)の「4747」に、SYNパケットを転送。 「X」 は、10.1.1.2(ノードA)の送信元ポートに、ACK,SYNパケットを転送。 (以下省略) どうなっているかを図で説明すると、 ノードB ------------------------------┐ ↑ l l | l ↓ ノードA <---------- 仮想カード ← ノードC
- 515 名前:425 mailto:sage [2005/07/18(月) 19:16:58 ID:NWEvQOcw]
- つまり、ノードA からの通信は、A→B→Cとなるが、ノードCからの通信は、C→Bとなる。
こうすると、何がいいのかと言うと (1) 高速転送 ノードA からの通信量より、ノードCからの通信量はの方が遥かに多い。 そのため、直接通信と変わらない速度が期待できる。 (2) ファイル提供者の匿名性が高い(最重要) ファイル提供者の匿名性について考えてみると、 *ノードAは、『あるファイル』を、ノードBから落としているようにしか見えない。 *ノードBは、「ノードC」と「ノードA」が通信している事は分かるが、「ノードC」が、 「ノードA」に、『どういうファイル』を送っているかは、ノードBを中継しないので、 『物理的』に、わからない。 しかし、ノードAが「ファイル要求者」の場合、ノードCからは、モロで見えているので、 完全な通信モデル図はこうなる。 NATノード ----------------------------------┐ ↑ l l | l ↓ 要求ノード === 中継ノード <---------- 仮想カード ← 提供ノード つまり、最終的には、Winnyと同程度のスピードで、クラスタ化はされないので 少々、使い勝手は悪い物になると思われます(前ほどではないが)。
- 516 名前:425 mailto:sage [2005/07/18(月) 19:18:16 ID:NWEvQOcw]
- 新手のアラシさんみたいな量になってしまった(笑
- 517 名前:525 mailto:sage [2005/07/18(月) 20:26:26 ID:UC0vJmtQ]
- なんだかよう分からんが期待しとるよ
- 518 名前:login:Penguin mailto:sage [2005/07/18(月) 22:52:22 ID:g7t80EI+]
- >>517
>>490
- 519 名前:login:Penguin mailto:sage [2005/07/19(火) 03:08:32 ID:K55Dj3jz]
- ざっとしか読んでないんで間違ってたら訂正よろ。
重要な点をまとめると 1)キーファイルにワンタイムRSA公開鍵、暗号化本体ファイルにワンタイムRSA秘密鍵を仕込んでおく。 ある暗号化本体ファイルを要求するノードは、返答先をキーファイルの公開鍵で暗号化する。 暗号化本体ファイルを持っているノードのみが、これを復号して通信できる。返答の中の保持ノードの アクセス先は秘密鍵で暗号化され、キーファイルを持っているノードのみ復号できる。 2)キーファイルから、暗号化本体ファイルを落としたいノードは、自分のIPアドレスとポートを ワンタイム公開鍵で暗号化し、ブロードキャストする。この本体検索要求は、TTLを仕込んでおき 転送されているうちにある程度で破棄されるようにする。 応答があれば、復号した所持ノード情報を元に直接ダウンロードする。 3)もしくは、暗号化本体ファイルのハッシュと、ワンタイム公開鍵を、隣接ノードにプロクシ転送要求をかける。 要求されたノードは、適切な確率で再転送か、2)で示したダウンロードを実行する。 4)自分のIPアドレスとあるポートを、他のノードに貸し出すこともできる。 この場合、貸し出したポートへの通信はすべて転送される。
- 520 名前:login:Penguin mailto:sage [2005/07/19(火) 03:15:47 ID:K55Dj3jz]
- ごめん。正直NATの説明がよくわからなかった。
これって実装の手間を考えたら、効果ってそんなにあるの? NATに応じなくてもネットワーク的にペナルティないんだったら俺なら応じてやんない。 プロクシ転送要求に応じれば、自分のHDDと帯域は使われるかもしれない。 けれども、自分の出した要求が、他の人の要求の結果だという言い訳ができるし、 ひょっとしたらお宝ファイルかもという期待がある。 転送の中身見れないなら、踏み台になる意味ないじゃん。 >>500 暗号化ファイルのハッシュがわかんないと落とせないんだったら キーファイルに書いてないと、人間言語からの検索が不可能になるのでは。
- 521 名前:425 mailto:sage [2005/07/19(火) 21:40:31 ID:mMosH/WX]
- >>519
スマソ。大体、そんな感じです。 >>520 >ごめん。正直NATの説明がよくわからなかった。 くわしくは、「StaticNAT」か「ポートフォワーディング」でぐぐってください。 >これって実装の手間を考えたら、効果ってそんなにあるの? 私もプログラマじゃないので詳しい事は言えないが、Linuxで実装するなら、 そこまで難しくないと考えられる。 ここに書いていることは、Linuxカーネルが提供するサービスを サーバOSならば当然持っている機能を組み合わせただけです。 つまり、適当にOS呼び出して使うだけでOK(のはず) 逆に、Windowsでは、面倒かも。
- 522 名前:425 mailto:sage [2005/07/19(火) 21:45:21 ID:mMosH/WX]
- 続き・・・
>NATに応じなくてもネットワーク的にペナルティないんだったら俺なら応じてやんない。 べつに、大して重い処理じゃないし、単に転送するだけし、主にACKパケットを 中継するだけなので、帯域を犯される心配もない。ISDNでもOK(笑 ペナルティではなく、応じてくれた相手に対して報酬になるようした方が よいのでしょうけど、今は詳しくは考えていません。 >プロクシ転送要求に応じれば、自分のHDDと帯域は使われるかもしれない。 >けれども、自分の出した要求が、他の人の要求の結果だという言い訳ができるし、 >ひょっとしたらお宝ファイルかもという期待がある。 >転送の中身見れないなら、踏み台になる意味ないじゃん。 はっきり言って、中継ノードにされることは『踏み台』にされるだけで、 何のメリットもない (積極的にファイル供給者になると少し変わってくるが、そのことは、また今度) お宝ファイルがあったとしても、それに対応するキーファイルが見つかる 可能性は、この仕様では薄い。 別に、『踏み台』になるかならないかは、そのノードの自由だと考えています。 ですが、『踏み台』に成らないノードに対して、誰が『踏み台』になろうと思います? 結果、そういうノードは、孤立していきます。 別にプロキシ無しでも通信可能ですし、『言論の自由』を求めない方には丁度いいのかも(w
- 523 名前:425 mailto:sage [2005/07/19(火) 21:47:03 ID:mMosH/WX]
- 続き・・・
>>500 >暗号化ファイルのハッシュがわかんないと落とせないんだったら >キーファイルに書いてないと、人間言語からの検索が不可能になるのでは。 1-0)キーワード情報 クラスタ化に必要な自然言語パターン ↑これのことですか? これには、色々なキーワードを、URLエンコードされた形で入れておきます。 キーワードは、アップ時に「ジャンル」と「ファイル名」のような物を要求し、 適当にアプリ側で文法解析させて、キーワード情報として入れておきます。 これで、キーファイルを「自然言語」で検索して、キーファイルに付いている ハッシュの暗号化を、これもまたキーファイルに付いている鍵で復号して、 そのハッシュ値で、暗号化ファイルを検索します。
- 524 名前:425 mailto:sage [2005/07/19(火) 21:50:39 ID:mMosH/WX]
- 訂正: クラスタ化 → 検索
結構、書き貯めしていたので、なぜこんな間違いを書いたのかは まったく記憶にない。
- 525 名前:login:Penguin mailto:sage [2005/07/20(水) 00:28:12 ID:IaDxISng]
- >>523
読み間違えてました。 キーファイルから暗号化本体ファイルへのリンクとなるハッシュは、ワンタイムRSA秘密鍵で 暗号化されてるのね。キーファイルに公開鍵が含まれるから解けると。 >暗号を解かなければ、暗号化ファイルのハッシュコードは分からない。 >つまり、「暗号化ファイル」から「キーファイル」は分からない。 ってどういう意味?暗号化ファイルを持っていれば、公開者RSA 1-4) 1-5)を除いて キーファイルは生成できるんじゃ。 >>521 StaticNATについては、PCユーザは火壁の内側なユーザがかなりの数いると思うんだけど、 プログラムから、火壁に対して設定しなければならなくなるんだけど(で理解あってるよね) めんどくさそうと。 プロトコル独自の踏み台、つまり中継転送についてはプログラムの自由だと思うけど、 インターネットとしてのポートフォワーディングを行うとなると、セキュリティ面が心配。 そこまでの実装上の配慮を考えても、導入しなければならない機能なのか、 他で代替可能でないのかについて、ちょっとよくわからなかった。
- 526 名前:login:Penguin mailto:sage [2005/07/20(水) 00:30:31 ID:IaDxISng]
- ちなみに。
RSA公開鍵ペアを誰かがこっそり書き換えて中間者攻撃されたらどうします(・∀・)ニヤニヤ 信用を集めてから悪さしたり、結構攻撃に弱そうな気がしたんだけど大丈夫かな。
- 527 名前:login:Penguin mailto:sage [2005/07/20(水) 00:38:55 ID:zmMtfR5C]
- NAT は Skype とかが使ってる UDP なんちゃらで解決しないのか?
- 528 名前:425 mailto:sage [2005/07/20(水) 21:48:47 ID:d8u1kb3S]
- >>525
>>暗号を解かなければ、暗号化ファイルのハッシュコードは分からない。 >>つまり、「暗号化ファイル」から「キーファイル」は分からない。 >ってどういう意味?暗号化ファイルを持っていれば、公開者RSA 1-4) 1-5)を除いて >キーファイルは生成できるんじゃ。 暗号化ファイル自体は、500>>の 1-1)暗号化ファイル共通鍵 読んで字の如く、暗号化ファイルの共通鍵。 によって暗号化されており、キーファイルがなければ解読不可能です。 >>つまり、「暗号化ファイル」から「キーファイル」は分からない。 これについては、分かりやすいモデルで説明しますと、こう言うことです。 (実際は、ちょっと違います)
- 529 名前:425 mailto:sage [2005/07/20(水) 21:51:17 ID:d8u1kb3S]
- キーファイルA 523*769
キーファイルB 617*857 キーファイルC 677*787 キーファイルD 727*643 キーファイルE 809*661 キーファイルF 563*619 キーファイルG 467*647 キーファイルH 503*991 暗号化ファイルA 534749 暗号化ファイルB 498473 暗号化ファイルC 402187 キーファイルの右に書いているのが、「暗号化ハッシュコード」で 暗号化ファイルの右に書いているのが、「ハッシュコード」です。 キーファイルから、暗号化ファイルを見つけるには、 キーファイルAの「暗号化ハッシュコード」は、「523*769」 523*769 = 402187 なので、「キーファイルA」の暗号化ファイルは「暗号化ファイルC」だと 簡単に分かります。 暗号化ファイルAに対する、キーファイルはどれでしょうか?(制限時間30秒) 普通、ムリですよね? つまり、「キーファイル」から「暗号化ファイル」は分かっても、 「暗号化ファイル」から「キーファイル」は分からない。
- 530 名前:425 mailto:sage [2005/07/20(水) 22:38:29 ID:X6ELMDVA]
- >StaticNATについては、PCユーザは火壁の内側なユーザがかなりの数いると思うんだけど、
>プログラムから、火壁に対して設定しなければならなくなるんだけど(で理解あってるよね) >めんどくさそうと。 まず、P2Pやるなら市販のパーソナルFWは消しときましょう。 (つうか、linux用のパーソナルFWってあるのか?) つまり、使ってないポートは、全部斬って置いて、使うポートは、アプリ(デーモン)自体が、 アクセス制限かけないといけません。(httpdとかsendmailとかも、全部そうなってます。) パーソナルFWは、全自動で使ってないポートは、全部斬ってくれるだけで、 他は大した事はやってくれません(FWとウイルス対策ソフトは基本的に違うモノです)。 つまり、P2Pといっても『サーバ』なので外からの、アクセスを許すことになるので、 必ず、それ相応のリスクは必ず伴います(Winnyのウイルスとか)。 まぁ、デーモンの起動ユーザをプロセスごとに複数の一般ユーザ分ければ、 実質的な被害は、あまり出ないでしょうけど。
- 531 名前:425 mailto:sage [2005/07/20(水) 22:39:39 ID:X6ELMDVA]
- >プロトコル独自の踏み台、つまり中継転送についてはプログラムの自由だと思うけど、
>インターネットとしてのポートフォワーディングを行うとなると、セキュリティ面が心配。 >そこまでの実装上の配慮を考えても、導入しなければならない機能なのか、 >他で代替可能でないのかについて、ちょっとよくわからなかった。 結論から言うと、プロキシの方が、セキュリティ面をしっかり考えなければならない。 「ポートフォワード」で、セキュリティが懸念されるのは、ネットワークの内側(LAN内)に ネットワークの外側(インターネット)からアクセスがあるからです。 これでは、FWを付けても、その穴から突破されれば、無防備なLAN内のPCに簡単に アクセスされてしまいます。 一方、P2Pは、「自分」と「その他」の概念しかなく、BがCに「ポートフォワード」して、 AがCにアクセスした所で、セキュリティー的には、AがCに直接アクセスするのと変わりません。 Bは、単なるルータにすぎません。 しかし、プロキシの場合、デーモンつまり、アプリ自身が提供するサービスなので、 アプリ自体に、バグがある場合、速攻で攻撃対象になります。
- 532 名前:425 mailto:sage [2005/07/20(水) 23:16:59 ID:fW484GcX]
- >ちなみに。
>RSA公開鍵ペアを誰かがこっそり書き換えて中間者攻撃されたらどうします(・∀・)ニヤニヤ 「RSA公開鍵ペア」はIPを交換する鍵ですよね? 「書き換える」ためには、「キーファイル」と「暗号化ファイル」の双方を所持していかないと、 書き換えられません、さらに、書き換えた「キーファイル」と「暗号化ファイル」を流通させないと いけません。 とても、面倒で時間がかかります。そんな事しなくても「キーファイル」と「暗号化ファイル」を もっていれば、どこの「中間ノード」と思われるノードが、「どんな」ファイルを 欲しているかは分かります。 じゃあ、何故「中間ノード」を攻撃するのか? 単にクラックが目的であれば、中間ノードなど 関係無しに、当たりかまわず攻撃しまくればいい。 つまり、結論としては、単なる「クラッカー対策」 クラッカー対策は、全てに通じるもので、P2Pに限った問題ではありません。 (それが難しいのですけどね。)
- 533 名前:425 mailto:sage [2005/07/20(水) 23:18:49 ID:fW484GcX]
- >信用を集めてから悪さしたり、結構攻撃に弱そうな気がしたんだけど大丈夫かな。
信用を集めてから、粗悪なファイルを流すということですか? 攻撃にしては、時間がかかりすぎると考えられるし、さらに信用を集めるための ファイルは、何処から持ってくるのかという問題がある。 さらに、匿名性自体を犯す攻撃じゃありません。 結局、得するのは信用を集めている間に、ファイルを得た人々だけです。
- 534 名前:425 mailto:sage [2005/07/20(水) 23:39:06 ID:BeHtAV13]
- >>527
>NAT は Skype とかが使ってる UDP なんちゃらで解決しないのか? UDP hole punching のことですね。 私も、あまり知らないんで詳しい事はいえませんが、 これは、あるサーバーが、IPとポートを貸し出し、通信を ネットワークレベルで仲介してくれる技術です。 まぁ、これをP2Pと呼べるのか?という疑問もありますし、 匿名性の概念はありません(と思う) さらにいえば、現在の仕様では、NATの中は通してもらえません。
- 535 名前:login:Penguin mailto:sage [2005/07/21(木) 02:58:11 ID:z2CP8IVj]
- >>532
中間者は、自分用のRSA鍵ペア(ポート用とファイル用)を作っておき、キーファイルの伝播の際に 1-3) 1-4)を自分用のものにすりかえて、1-2) 1-5)をあわせておく。 暗号化ファイル検索要求が来れば、おもむろに自分の秘密鍵で検索をかけたノードを復号できる。 この書き換えは、もともとのキーファイルを持っているだけでよく、 (中身を知る必要がなければ)暗号化ファイルは必要ない。 システム的に排除できる可能性は、1-4)の公開鍵が実績があるかどうかでキーの信頼度を 決めることだろうけど、簡単に信頼度を集められるようにすると、少し正常動作をしてあとは釣り人に なればいいだけだし、あまり難しくすると長い間同じ鍵を使わなくてはならなくなるのでノードの特定に 繋がったりしそう。 完全に書き換える必要はない。単に、キーファイルが「それっぽい」だけでいいんだから。 せっかくRSAで検索送信者保護をしても間に入られたら意味ないなとふと思っただけだけ。 要求の転送で隠せるからある程度はいいけど、Winnyと同程度になっちゃうな。
- 536 名前:login:Penguin mailto:sage [2005/07/21(木) 03:05:45 ID:iQmD7UoW]
- データ本体のキャッシュの寿命の方はどうなってんの?
完全なるクラスタになっていないかぎり、キャッシュ中のデータのほとんどが要、不要がわからないデータなわけだろ? 要不要が即わかるほどキーファイルが流通するネットワークなら、 わざわざデータファイルのメタデータを隠蔽する意味が不明だし。 転送機能なんてほぼ意味ないよ。 となりがキャッシュをはじめから持ってるのと、いまからキャッシュにし始めるということと、どう違うわけ?クラスタ化されていない状態なら、無駄なキャッシュが増えるだけ。 いかれたパケットを送出するのに、root権限が必要なのだが、それはどうでもいいの? っつーか、ノード数、ファイルサイズ、ファイル数、各ノードのキャッシュ容量とかどの程度のものを考えてるのかね。
- 537 名前:login:Penguin mailto:sage [2005/07/21(木) 03:20:49 ID:z2CP8IVj]
- >>531
A->B->Cのポートフォワードがおこっているということは、CがBに依頼したということでOK? この状況で、B->Cのポートフォワードが悪用されたらBはインターネット的に責任をまぬかれるのか、 ということを心配したんだけど。 Cに依頼されたので、Cが落とされるようなパケットが転送されたとしても、依頼したCが悪いんです。 で問題ないか。 もしBが悪意のノードで暇人で、来たパケットを転送する前にごにょごにょ書き換えて送ったとしても Cは依頼する前にBの悪意を見抜けなかったから泣いて下さい、でシステム的にはOKか。 パケット転送はファイルの転送のみに使用して、コネクションを管理するポートには使わなければ 致命的にはならないね。
- 538 名前:login:Penguin mailto:sage [2005/07/21(木) 13:39:18 ID:+geUQqPb]
- (´-`).。oO(今度こそモノになるかな)
- 539 名前:login:Penguin mailto:sage [2005/07/21(木) 14:28:00 ID:RTcoM3Vh]
- linux普及のためにOOoに匹敵するプロジェクト
完成を期待します。
- 540 名前:login:Penguin mailto:sage [2005/07/22(金) 21:09:49 ID:ySzGffYS]
- ネタ切れか
- 541 名前:login:Penguin mailto:sage [2005/07/22(金) 21:11:58 ID:tBkDAb44]
- 誰か僕にネットワークプログラミングのやり方を教えてください。
- 542 名前:login:Penguin mailto:sage [2005/07/22(金) 23:31:16 ID:eHH1w66m]
- しばらく見ない間に随分賑やかになっとるなぁ
少し読んでみたのが実際に動き出した時、これがどの程度動くのか、わしにゃ分からん。 >>502 2-3)IP/ポート交換ワンタイム秘密鍵(RSA 128bit) ファイル最後尾から、128bitが1-3)に対する秘密鍵になっている。 詳しくは、後述。 「ファイル最後尾」に意味はまったくない。 キーファイルの公開鍵でIPを暗号化して、暗号化ファイルの所有者だけに分かるように渡すんでしょ? ファイルの先頭につけると秘密鍵だけを抜き取られてしまうと考えたんだと思うけど、 レジューム機能を実装させると、まったく意味がないような気するがどうなの? まぁ、批判は簡単なので暗号化ファイルを全部落とさないと、秘密鍵が分からない仕様を考えてみた。 要は、ハッシュコード生成を少し変え、秘密鍵に非常に軽量な暗号をかける。
- 543 名前:login:Penguin mailto:sage [2005/07/22(金) 23:34:12 ID:eHH1w66m]
- 2.暗号化ファイル(バイナリ形式)
2-1)ハッシュコード (変更) 2-4)をハッシュにかけた値(MD5) を、さらに2-3)を連結させて 再度、ハッシュにかけた値(MD5) ノードにキャッシュされる度、随時上書きされる。 2-2)IP/ポート交換ワンタイム秘密鍵 ノードで毎回、計算される。 計算方法は、2-4)をハッシュにかけた値(MD5)と2-3)の XORをとった値が、IP/ポート交換ワンタイム秘密鍵となる。 2-4)をハッシュにかけた値(MD5)は、2-1)を生成する際に計算したものを 利用できるので、計算量としては大した事はない。 これは、ファイルとは直接関係ないトランザクションデータとして扱われる。 2-3)XOR_IP/ポート交換ワンタイム秘密鍵(RSA 128bit) (変更) 「ファイル先頭」から128bit。 単に、2-4)をハッシュにかけた値(MD5)とIP/ポート交換ワンタイム秘密鍵のXORをとった値。もう一度、2-4)をハッシュにかけた値(MD5)でXORをとると元に戻る。つまり、完全な2-4)がない限り2-3)から2-2)は分からないってコト。 非常に単純な方法だが、手強いはずだ(w 2-4)データフィールド 暗号化された、データが入っています。 ま、わしにゃ、こんな事ぐらいしか思い浮かばんが、ガンバっとくれい。
- 544 名前:login:Penguin mailto:sage [2005/07/23(土) 00:07:29 ID:vcii9dn+]
- 乗りかかった船なので、私的に、明かに的外れだと思われる質問に勝手に答えてみる。
>>537 >>513 しかし、このままでは不正利用を招くので、ノードBには、TCPのPSHパケットと、UDPパケットは 転送しないよう設定します。 要は、ノードBからは、TCPのコントロールパケットしか飛んで来ないわけだ。 つまり、ACKパケットを、RSTパケットに変えて送った所で、通信が切断されるだけ。 そんな事を、するだけであれば単に中継しなければいい(中継すると契約しといて実はしない)。 しかも、書き換えて攻撃するなど、ややこしい。セキュリティ的には直接攻撃されているのと 変わらん。やる意味がない。攻撃といっても、単に一方的にファイルを送りつけるだけのポートに できる事って何がある? さらにいえば、どちらかと言えば、悪意あるノードがノードBを踏み台に攻撃する方が 多いと考えられる。だから、上記の>>513のような一文が加えられているのだと思う。 あってるよね? > 425 つうか、今この質問に答えていて思ったのだが、レジュームの実装って難しいんじゃねぇのか?
- 545 名前:login:Penguin mailto:sage [2005/07/23(土) 11:32:29 ID:jtlytnMJ]
- た
し ま り い ま て っ が 上 り 盛
- 546 名前:425 mailto:sage [2005/07/24(日) 23:41:51 ID:hPPfaUHc]
- 私用PCが・・・クラッシュしちまった_| ̄|○
さらに、夏風邪をこじらして寝込んでしまった。 気を取り直していきましょう。 なんか、活気付いてきましたね。どんどん、意見交換して行きましょう(w ここで提示しているのは、単なる案ですから、ここをこういう風にした方がいい って意見は、特に大歓迎です。 >>534 自己レスです。UDP hole punching について、私の中で勘違いがあったので、書き直しておきます。 「UDP hole punching」は、IPマスカレード(NAPT)によって書き換えられた、送り元ポート番号,IPアドレスを 親サーバ上で交換し合い、UDPで通信する仕組みです。上手いこと、システムを騙した通信で面白い。 ですが、必ず、交換し合う親サーバが必要なのと、親サーバが十分信用できないとセキュリィティが守れません。 あと、匿名性の概念もまったくありません。 しかも、そのUDPパケットがFWで弾かれることが多いので、実質的に使える機会は非常に少なかったりします。
- 547 名前:425 mailto:sage [2005/07/24(日) 23:45:22 ID:hPPfaUHc]
- >>535
>中間者は、自分用のRSA鍵ペア(ポート用とファイル用)を作っておき、 『鍵ペア』って、そう言う意味だったんですね。 私自身は、1-4)とノードの関係は、現実世界で余ほど目に余る行動を取らない限り、 バレる事はまずあり得ないと、考えています。 仮にバレたところで、1-4)は、『情報の保障』をしている一文であって、 ファイル提供者かどうかを、定めている一文ではありません。
- 548 名前:425 mailto:sage [2005/07/24(日) 23:46:38 ID:hPPfaUHc]
- >キーファイルの伝播の際に 1-3) 1-4)を自分用のものにすりかえて、1-2) 1-5)をあわせておく。
「匿名性」や「セキュリティ」を犯す攻撃にはなりえないと考えられます。 理由は以下の通り。 1)暗号化ファイルが見つからない → 公開鍵の評価が下がる。 『1-3)IP/ポート交換ワンタイム公開鍵』を 入れ替えてしまうので、暗号化ファイルにある 『2-3)IP/ポート交換ワンタイム秘密鍵』で、復号不可能になる。 つまり、検索パケットを送ったノードに応答パケットを返せないので、暗号化ファイルが見つからない よって、公開鍵の評価が下がる。 つまり、相当の信用を得ていない限り、直ぐに「信用できない公開鍵」 として学習され、攻撃ノードは、今後その鍵での攻撃は不可能になる。 2)中間ノードのIP/ポート番号が分かった所で、「匿名性」は犯されない。 中間ノードが、一斉広報で検索をかける際、攻撃者に、そのパケットが届き、 自分が摩り替えた鍵の秘密鍵で復号して、IP/ポート番号が分かった所で、 中間ノードと思われるノードの「IP/ポート番号」が分かったに過ぎない。 さらに、1)の理由で、それが長い間続くわけではない。 中間ノードが分かった所で、長期間に及ぶ大規模な調査がない限り「匿名性」は犯されません。
- 549 名前:425 mailto:sage [2005/07/24(日) 23:49:53 ID:hPPfaUHc]
- >>536
>データ本体のキャッシュの寿命の方はどうなってんの? 静的関係のキャッシュに過ぎないので、寿命の概念はまったくありません。 いつでもいい、好きな時に消していいし、消さなくてもいい。 ハードディスクの資源は有限なので、その辺は、適当に設定する。 >要不要が即わかるほどキーファイルが流通するネットワークなら、 >わざわざデータファイルのメタデータを隠蔽する意味が不明だし。 キーファイルが、いくら流通した所で、要か不要かは、データファイルのメタデータ つまり、キーファイルの暗号化ハッシュコードを復号してみないと分からないと思ういますが? >>535のような、もう少し具体的な説明をしてもらえませんか? >となりがキャッシュをはじめから持ってるのと、いまからキャッシュにし始めるということと、 >どう違うわけ? 一応、当り前のことだと思って書きませんでしたが、プロキシ要求を受けたノードは とりあえず、自分のキャッシュを探し、あれば、それをそのまま返します。 つまり、違いありません。
- 550 名前:425 mailto:sage [2005/07/24(日) 23:55:29 ID:hPPfaUHc]
- >クラスタ化されていない状態なら、無駄なキャッシュが増えるだけ。
暗号化ファイルのレベルでは、クラスタ化はありませんが、キーファイルのレベルでは存在します。 どう、言うことかといいますと、プロキシ要求は、3-1)で起こります。 さらに、検索パケットは、3-1)のポートが開いている相手にのみ送るので、 結果として、暗号化ファイルはキーファイルの通信によって、形成されたクラスタの周りを うろちょろするだけです。 カッコよく言えば、暗号化ファイルは、キーファイルのクラスタを継承します。 この辺はまた詳しく話します。 >いかれたパケットを送出するのに、root権限が必要なのだが、それはどうでもいいの? その辺が、UNIX系の鬱陶しいところですよね。適当にエージェントを挟むなり、すれば root権限まで取られる事はないのかな。 P2P専用として使うのなら、落ちたって大した事はない思っていたりする。 >っつーか、ノード数、ファイルサイズ、ファイル数、各ノードのキャッシュ容量とかどの程度のものを考えてるのかね。 ネックとなるのは、キーファイルの通信になります。この辺の仕様を、はっきり決めない事には、分かりません。 現在分かっているのは、各ノードの暗号化ファイルのキャッシュ容量は、まったく自由です。 Freenetを「公開鍵暗号方式」と例えるならば、HannyNetは、「ハイブリッド暗号方式」を徹底的に目指してみたい。
- 551 名前:login:Penguin mailto:sage [2005/07/25(月) 02:43:41 ID:HNMfL4hb]
- キーファイルをみても要不要かわからないってことは、
キーファイルにはファイル名もキーワードもはいってないってことか? それじゃあ、どうやって検索とかクラスタ化するわけ? どうにしろ、キャッシュされることを考えていないってのは全く持って意味不明。 流通の効率を全く考えてないって言ってるのと同等じゃないか。
- 552 名前:login:Penguin mailto:sage [2005/07/25(月) 15:52:46 ID:DS/oy6EW]
- HannyNet(仮)とやらは参加ノード全てがハイレベルクラッカーなわけ?
相手のPCを攻撃しながらファイル共有でもしているのかw 膨大なクエリでネットワークが埋め尽くされ、キーロスト多発 マルチソースDLどころかレジュームすらまともにできずにゴミキャッシュが 増えるだけの予感
- 553 名前:login:Penguin mailto:sage [2005/07/26(火) 07:56:10 ID:LfvsKzx0]
- 横レスですが
>>551 キーファイルを見ても要不要がわからない、というのは、 実体のファイルを落とすまで本当のファイルとしては何かわからないというのと同義でしょう。 WinnyでもWebでも本質的には同じことで、codecがないから再生できないっていう状況も あるから、ネットワークのシステム自体が判定することは無理でしょう。 で、この仕様だと自然言語からキーファイルをFreenet的に検索するみたいなんで (自然言語→キーファイルは暗号化されていない)クラスタ化は可能かと。 キーファイルの流通に関しては結構やばそうな感じはするけど。 WinnyでもキーにTTLみたいなのを持たせて、あんまりクラスタ距離的に遠くまでは キーが流通しにくくしてダウンロード枠を確保してたみたいだけど。 >>548 どんな感じのキー流通になるかはあまり言及がないのであれだけど。 535攻撃は、キーファイルの配布速度と範囲によって有効だとは思う。 「信頼できる配布公開鍵(1-5)」の情報が伝わらない(基本的には自分で試してみるしかない) わけで、ダウンロード枠待ちor失敗と、攻撃を受けていること、をすぐには見分けられないかも。 中間者がIPアドレスを知ったところで、Winnyと同程度までしか匿名性は落ちないけど いろいろしてる割にしょぼくなるな…と思ってしまった。 ちょっとしたダウンロード妨害の嫌がらせ攻撃としても有効だと思うし。
- 554 名前:login:Penguin [2005/07/26(火) 19:00:18 ID:8pmsTF99]
- テスターやりますよ。期待age
|

|