アンカテ このページをアンテナに追加 RSSフィード

2006-04-20

Winnyの「要求仕様」と「設計」と「実装」

(4/21 追記)

Winnyには、実装上の大きな問題があるという報告があります。Winnyユーザの方は、こちらをすぐ見てください→アンカテ(Uncategorizable Blog) - Winnyに実装上の欠陥あり!

(追記終わり)

私はこの場で何度も書いているが,ソフトウェア品質で大事なことは「バグがない」ことではなく「逸脱(Deviation)がない」ことである。製造上の欠陥(バグを含む)は設計からの逸脱なので比較的発見しやすい。設計上の欠陥は要求からの逸脱と言えるわけだが,この判定はちょっと難しい。

辺境から戯れ言 − 2つの欠陥

これを補助線にして、「要求仕様」「設計」「実装」の3レベルでWinnyの問題を考えてみた。そうすると、バグ有りWinnyとバグ無しWinnyはやはり区別すべきだと思うで私が高木さんに主張していたことが明確になってくる。若干繰り返しになる部分もあるが、この枠組みで書き直してみたい。


Winnyの実装

現在の所、Winnyにバッファーオーバーフロー等の実装上の大きな問題点が発見されてないことは、もっと強調されていい事実だと思う。

mottonさんや高木さんが言うようにWinnyの設計には問題があるとしても、Winnyの実装が良くできていることは、それと独立のことであり、両者を混同することは良くない。むしろ、「頑強な実装のために、問題のある設計思想のプログラムが当初想定した範囲を越えて広く流通しており、「頑強な実装」はWinnyの問題点の重要な構成要素である」と主張すべきだろう。

暴露ウィルスの猛威が、Winnyの実装上の欠陥から発生しているかのように誤解させることは、事実に反している。マスコミの報道は一般向けの説明なので、技術的な正確性には限界があるが、限界の範囲内で最善を尽くしているとは言えないだろう。技術的な問題で、事実と反する見方が広まることは、副作用をもたらすことが多い。「Winnyは欠陥プログラム」という漠然とした理解が広まることで、Winnyには既に実装上の問題が多く存在しているような認識が広まっているように思われるが、このあいまいな認識によって、Winnyを利用する破壊的なワームが出現した時の対処が遅れることが懸念される。

広く流通している通信プログラムに実装上の欠陥が見つかった場合、その脆弱性から予想できない大きな被害が広がる可能性がある。これは、そのプログラムの種類や設計の善し悪しに関係なく常に言えることであるが、Winnyの場合は、次の理由から、破壊的ワームが発生した時の被害がさらに大きくなるのではないかと私は予想している。

  1. 一般にP2Pアプリケーションは、通信の形態、経路が複雑なため、クライアントサーバ型と比較して被害の把握や外からの対策が難しい
  2. 開発者がプログラムの修正を禁じられている
  3. 破壊的ワームは暴露ウィルスの変種であるという受け取り方をして、多くのユーザが必要な対策をせず使用を続ける可能性がある
  4. 広い分野で多くの論議を呼び起こしているプログラムである為、事実と意見が混同されやすく、適切な情報が行きわたらない

この問題については、高木さんはスルーしているように思えるが、この後に述べる、設計、仕様レベルの問題と切り離して再考していただくようにお願いしたい。

Winnyの設計

Winnyについて議論する場合に、実装と設計を区別するのと同様に、設計レベルでの問題は、次の二つに分けて論じることが必要だと思う。

  1. 要求仕様レベルの問題、つまりWinnyというプログラムの目的から必然的に発生する問題
  2. 辺境から戯れ言の荒川氏が言う所の「逸脱」、すなわち、要求仕様を満たさない設計

要求仕様からの逸脱は、技術的に一意の答えが出やすい問題であるが、要求仕様そのものの是非は、技術的な文脈を越える視点が必要とされるからである。

高木浩光@自宅の日記 - Winnyネットワーク崩壊への最終シナリオの「 Winnyを規制するISPは、Winnyトラフィック中の無駄割合を調査するべき」という部分は、この意味では通信プログラムが当然満たすべき暗黙の要求仕様からの「逸脱」、すなわち純粋に設計上の問題ととらえることができる。

  • ネットワーク回線を有益に使うためのトラフィック調整が考慮されていない点
  • ユーザが使用しない無駄なデータを非常に大量に送信している点

この二つの問題については、Winnyの要求仕様、つまり目的を認めたとしても、Winnyの欠陥と考えるべき問題点であると思う。私としては、このような純粋に設計レベルに属する問題については、高木氏の主張に異論はない。

Winnyの目的

これらのエントリーで、高木さんは、Winnyの動作からその要求仕様、開発目的を逆算して、その仕様そのものを批判されている。

これにより、「これは他の人には見せるべきでない」と良心の働くような真に悪質な映像であっても、「これ以上拡散することは避けられるべきだ」という倫理観を持つ人でさえ、自分だけは見ておきたい(見てみたい、自分だけは見てもよいだろう、見てみないと本当に悪質かどうかわからない、見ておく必要がある)と行動することによって、当人の倫理観とは無関係に侵害規模を拡大させていく。

「高木浩光@茨城県つくば市の日記」跡地

Winnyネットワークに放流されたファイルは、チェーンメールと異なり、人手を介さず自動で広がる。転送するかしないかの判断を人が行わないため、チェーンメールなら人々の良心によってかかるはずのブレーキが、Winnyではかからない。そのような性質のWinnyネットワークは存在自体が危険である。

高木浩光@自宅の日記 - 次は「汝のcacheを開いて鏡に映して見よ」と国民に呼びかけてはどうか

これは、設計レベルの問題とは別のレベルの問題であり、私への批判もこの文脈の延長線上にあるように思える。

この種の「識者」達にとっては、Winny礼賛に導く新しい「理論」をどれだけ唱えられるかが思想エリートとしてのテーゼなのだろう。

高木浩光@自宅の日記 - Winnyネットワーク崩壊への最終シナリオ, Winnyを規制するISPは、Winnyトラフィック中の無駄割合を調査するべき

現在の作者のスタンスは、Winnyは技術的な試験のために作り配布したもので、その技術は発展途上のものだった(「そのため意図せず著作権侵害の蔓延を許してしまった」ということか?)ということになっている。だからその意味でもむしろ、現在のWinnyには欠陥があるということに「しなくてはならない」のだ。いまさら「Winnyはすばらしい」などと言い続けようとしている連中は、頭のネジが緩んでいることに気づくべきである。

高木浩光@自宅の日記 - Winnyネットワーク崩壊への最終シナリオ, Winnyを規制するISPは、Winnyトラフィック中の無駄割合を調査するべき

Winnyネットワークは、FreenetTorと同じような「追跡可能性を切る」システムである。つまり、通信における発信者の特定をできなくさせるシステムである。それが第一の開発目的であるとは言えないが、Winnyの要求仕様の中に「追跡可能性を切る」という要素は含まれていると思う。

「追跡可能性を切る」システムには高木さんが言うように多くの副作用がある。しかし、それ以上に守るべき価値があると私は考えている。

「追跡可能性を切る」ということは、技術的に保証された匿名性を確保することで、人の悪意を解放することでもある。だから、それを危険な思想とみなす人がいることも理解できる。しかし、それをなし崩し的に否定することは、将来に大きな禍根を残すと思う。特に、Winny問題に現れている問題点は大きい。

「追跡可能性を切る」社会システムの構想を発表することは違法ではない。これは言論の自由として万人に保証された権利である。コンピュータネットワークを基盤として、そのような社会システムの構想を発表することも問題ないはずだ。では、そのネットワークの実現可能性を詳細に検討して、それを「仕様」として発表することはどうなのか。その「仕様」に基づきすぐにプログラムコードに置き換えられる「詳細仕様」を発表したら?それをソースコードとして書下したら?それをコンパイルしたら。それを閉じたLANの中で実行したら?それをインターネットで公開したら?ネットで公開してテストユーザを募集したら?一般公開したら?ユーザの要望を受けてシステムを改良したら?あるいは、開発プロセスそのものを「アジャイル」つまり試験的な実装を先行させる形で実施したら?

このようなプロセスの中で、「著作権侵害」が発生したとしたら、どこからが「著作権侵害幇助」に該当する行為になるのだろうか?

Winnyでは、技術的にはネットワークの効率的で安定した運用に力点があったので、「言論の自由」より「コンテンツの自由で豊かな流通」に重点があったと思う。しかし、デジタル証券を含めて、全く違う形のコンテンツ流通方式を模索していたことは間違いない。また、具体的な問題が発生した時に対応する準備も能力もあったのに、逮捕されてしまったのである。

だから、私としては次のことを強く主張したいと思っている。

  • 「追跡可能性を切る」システムの価値
  • 言論の自由と技術的な問題における慎重な法運用の必要性
  • 法的な意味で現行法規に対して順法であることと、政治的な行為の正統性を分けて考えることの重要性

Winnyの「要求仕様」は、これにからむ問題がたくさん含まれている。だから、設計レベルの問題とは分離して論ずるべきだと思うし、それは多くの場合、Winnyネットワークをできる限り残すべきだという主張になるだろう。

高木さんは、「追跡可能性を切る」ことが人の悪意を解放することを重く見て、社会の治安維持を重視しておられるのだと思う。それは一つの見識であり、それを主張されることを私はもちろん否定しない。ただ、その立場は私と逆であって、当然、私と高木さんの「要求仕様」レベルの見解は一致しないだろう。そうなるのは、私が、何らかの不当な目的で設計レベルの問題を故意に無視しているからではない。

ばんばん 2006/04/20 21:08 http://openblog.meblog.biz/article/12924.html
ここに答えがあります

杏 2006/04/20 23:31 ひろみちゅタンは、「著作権法違反(幇助)だからWinnyはけしからん」と言ってるわけじゃないと思うよ。
「情報処理学会のような既存の団体が倫理綱領を作れば、当然、現行法遵守となるだろうが、そうした観念にとらわれない新しい団体であるならば、違った形の定義を出せるはずだ。」
って書いてるじゃん。裏返せば、現行法上は合法だって言ってるんだよ。合法だけど、倫理に反するからISPで規制しましょう、ってことでしょう。
(ま、ひろみちゅタンは立場上、合法です!とおおっぴらに言って京都府警の鼻をぶっつぶすようなまねはしにくいだろうから、裏返さないとわからない書き方をしている点は温かく理解してあげましょう)

名無し名無し 2006/04/21 01:09 「Winnyは悪意を解放する」というのは、ひろみちゅの主張では無いのでは?「Winnyが提供する、悪意無き人が、他の悪意ある人の悪意ある行為に、無自覚に加担する仕組み」が問題だと言っているのでは?

通りすがり通りすがり 2006/04/21 07:02 よくわかりませんが、つまり、
Winnyの要求仕様=「著作権侵害を恙無く可能にすること」で、仕様通りで欠陥がない
ということですか?
金子氏を有罪にしたいのですか貴様は。

mottonmotton 2006/04/21 13:49 暴露ウィルスの猛威は、Winny の要求仕様(設計思想)の問題(脆弱性)
から発生しています。

少し乱暴ですが、銃に例えてみると、
Winny は破壊力抜群(=強力な流通機能がある)だけれども
安全装置のない(=Webサーバのような監視ツールなどない)
銃に弾を装填した(=個人情報のある PC で動作している)
状態です。かつ多くの所持者は
ライセンスを持たず(=セキュリティのスキルがない)
引き金がどこにあるかすら知っていない(=悪意あるプログラム
の実行と Winny から情報が流出することの因果関係を知らない)。
そのため、犠牲者は続出している。
でも、この銃は絶対に暴発しないし(=実装は完璧)、治安が悪いので
保身用として有用だ(=「情報の非可逆的暴露装置」として有用だ)。
さて、この銃をどうしますか?

また、Winny の頑強な実装が拠って立つところの、ソースやプロトコル
がクローズドであること、これもダウンロード専用を排除して
Winnyネットワークを大きくしたいという設計思想から発生していて、
作者しか改良できないなどという広く流通している通信プログラムに
あるまじき状態を生んでいます。逮捕されたから何も出来ないなんて
ありえないほどの脆弱性ではないでしょうか。
もし、作者がバックドア入りの Winny を配付したら(配付させられたら)
一夜にして Winny ネットワークをそのデータの入った PC もろとも
壊滅させることが可能ですが、これで非可逆的と言えますでしょうか。

P2P には期待しているのですが、最低でもオープンであることと
ユーザが自分の行為を理解できる仕様であることを要求したいと思います。
社会が求めるのはシステムとしての「頑強さ」であって、それは
設計思想で実装されるべきです。システムの部品としての単体のソフト
の「頑強さ」はその一部にしか過ぎません。

通りすがり2通りすがり2 2006/04/21 17:53 > motton 『暴露ウィルスの猛威は、Winny の要求仕様(設計思想)の問題(脆弱性)から発生しています。

Winnyのような要求仕様に問題のあるソフトウェアを動作させることの出来るWindowsには要求仕様に問題があるってことでOK?

通りすがり2通りすがり2 2006/04/21 17:58 Winnyのような要求仕様に問題のあるソフトウェアが通信することが出来るインターネットには要求仕様に問題があるってことでOK?

倫理的に問題があると思う気持ちは分からないでもないですが、それを根拠にしたWinny否定はなんかロジックがおかしいことが多いねぇ。

通りすがり通りすがり 2006/04/21 18:03 >Windowsには要求仕様に問題があるってことでOK?
>インターネットには要求仕様に問題があるってことでOK?

お前馬鹿だろ。essaもさすがにこの手の主張は馬鹿としか言いようがないと認めると思うよ。

通りすがり2通りすがり2 2006/04/21 21:43 ああ、そうですか。ではその例えとWinny問題の本質的な違いを指摘してみてくれよ。
お前には答えられないだろうがな。

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。