富士通FMVのテレビCMで、最後に「地底人の秘密」と入力して検索してみせるシーンが出てくるものがある。こうした手法は以前から他の会社のCMでも商標名を入力させるなどしばしば見かけるようになっていた。
しかし、本物のキャンペーンサイトが検索のトップに出てくるとは限らない。「ある日突然、なりすましサイトがトップに出る」ということも起こり得る。(フィッシング詐欺など。)
トップを奪われたとき、それを検索サイトに苦情を言って削除させるというのは甚だ筋違いだし、ドメイン名のサイバースクワッティング紛争と違って、単なるページの内容について文句を言うことはできないだろう*1。
消費者は検索結果を安易に信じたりせず、たとえ画面が本物っぽい内容でも、どこのドメイン名のページなのか常にアドレス(URL)の確認を欠かさないようにしないといけない。
しかし携帯電話ではブラウザにアドレスバーがない。auの場合ではアドレス(URL)を確認する手段さえない。携帯電話ユーザ向けにこうしたCM手法を使うとしたら、さらに危険性が高いといえる*2。
YouTubeでキャンディーズの映像の一つを視聴して衝撃を受けた*1。当時の私は小学3年から5年生。物心つく直前だった。みんなで春一番を歌いながら下校した記憶くらいしかない。中高校生になってから「懐かし映像」としてテレビで見たときには古臭いオバさんたちにしか見えなかった。それが今になって見たこの映像は新鮮だった。今風の言葉でいえばようするにエロい。同じ曲を3種類の衣装で歌った姿を編集で合成した映像だが、これは市販されているのだろうか。近い将来にまた見たくなりそうだが、そのときにはもう見つからないかもしれない。これは購入しておきたいと、amazonを探してみたが売られていないようだ。
4月19日の朝日新聞朝刊13面の記事に対して、次のような反応があった。
村井純先生と高木浩光さんの二人がコメントを寄せていたので、とても興味深く読んだ。
(中略)
村井氏のコメントの内容は、今までにも他の媒体で見聞きしたのと変わらない。
でも高木氏ってこんな意見の人だった?(中略)
高木氏を見損なった、というのが読んだ第一印象。
しかし、どうやら記事としては村井氏と高木氏の意見を対極に持っていきたいようなので、これが本当に高木氏の言ったことそのままなのか疑問が残る。
ちょっと今日は切羽詰っているので読めないが、明日あたり高木氏のサイトを見てみようと思う。
昨日の記事に書いたとおり、高木氏の真意を知るべく
「論座」2006年5月号
高木浩光@自宅の日記
を読んだので、感想。結論から言うと、やっぱり新聞から受けた印象は編集によるものらしい。
高木氏の日記の内容ならば素直に受け入れられる。(論座だけだと、ちょっと…という感じだし。)(略)
この方は、朝日新聞朝刊や論座に掲載された私のインタビュー記事に、「朝日のバイアス」がかかっていると感じたようだ。その朝日新聞朝刊の記事の内容は次の通りである。
(転載許諾期間終了)
ソフト自体が危険すぎる
(転載許諾期間終了)
朝日新聞2006年4月19日朝刊13面より
朝日新聞社知的財産センターの許諾のもと転載(承諾書番号20061009)朝日新聞社に無断で転載することを禁止する
この内容は私の従来からの主張と完全に一致しており、私の主張として何ら間違いがない*2。
上の女性は、「高木氏ってこんな意見の人だった?」と思うくらいなのだから、どうやら普段の私の発言をいくらか見聞きしてご存知の様子だが、そういう人がなぜ、この主張を文章どおりに理解することを拒絶してしまうのだろうか。
Winnyが広く普及する直前だった2002年を振り返ると、「ファイル丸見え」が原因の個人情報流出事件が多発していた時期である*3。Webサイトのアンケート画面などに入力した個人情報が、「data.csv」などのファイルに追記式に蓄積され、それが「http://example.com/cgi-bin/data.csv」などのURLで誰にも閲覧できる状態になっていたという事故だ。サイトの杜撰な管理の実態は、2ちゃんねる掲示板で暴露される(丸見えになっているURLが掲示板に書き込まれる)ことによって表沙汰となり、繰り返し報道されたことで対策が進むようになった。当然ながら、掲示板に暴露する行為を批判する声もいくらか出ていた。掲示板にはマスコミを含めて多くのウォッチャーがいて、暴露されるとすぐに当該ファイルへのアクセスが殺到していた。そのため、「暴露しなければ漏洩もしないのに」という声も出てくるわけだが、当時はまだIPAの脆弱性届出窓口はなく、丸見えの事実を発見した人は適切に行動をとることが難しい面もあった。
当時、掲示板への暴露から数日以内にサイト管理者が当該ファイルを削除し、削除が確認された後にマスコミ報道という手順が確立していた。そのため、ニュースを聞いて後から掲示板にやってきた人たちが、「ファイルをアップロードしてくれ」と乞い求めるということが起きていた。おそらく当該ファイルをダウンロードした人は数百人に及んでいたであろうが、誰一人それをアップロードするようなことはなかった*4。アップロードすると賠償責任を負うリスクがあるからということもあろうが、やはり、ウォッチャー達の大半は、漏洩ファイルを流通させたくてそこに集まっているわけではなかったのだろう。
「丸見えURLを暴露しなければ実態が明らかにならず問題が解決しないが、暴露すれば被害がより大きくなる」というジレンマは、再アップロードはしないというモラルの上でどうにか妥当なバランスを保っていたといえる。
ところが、そのバランスをブチ壊したのがWinnyだった。当時ちょうどWinnyの実運用が軌道に乗り始めていたころで、Winnyならば誰が「再アップロード」したかバレないと考えた不届き者が、ある事故の漏洩ファイルをWinnyに流すという事件が起きた。
そしてそれから1年と数か月後、京都府警の巡査が捜査書類をWinnyネットワークに誤って流すという事故と北海道警の巡査が捜査書類をWinnyネットワークに誤って流すという事故が起きた。このとき、従来のような「削除が確認された後にマスコミ報道という手順」はとられなかった。なぜなら、「Winnyネットワークに流れたファイルは消えない」ということが関係者に既に理解されていたからである*5。削除が確認されるまで報道を控えることは、Winnyへの流出事件においては、事実の封印を意味してしまう(のでそうするわけにはいかない)と考えられた。そして人々のモラルはしだいに麻痺していくこととなり、現在の惨状が続いている。
情報漏洩事故は過去も未来もいくらかの確率で起き続けるであろう。Winnyは、事故が起きたときの被害拡大の収拾を決定的に困難にするという変革をもたらしてしまった。だから「ソフト自体が危険すぎる」である。情報セキュリティの技術を語るブロガーは増えているが、このことを理解する気もない奴が情報セキュリティを語るなどというのは、目的なき自己目的化した技術論であり、技術的優越性を楽しむ偽善でしかない。
無断リンク禁止をうたう人は2つに分けられる。何も考えなしに書いている人と、目的を持って書いている人だ。一時期は官公庁とその関係機関に多く見られたこの宣言は、自力で物を考えることをしない事務員が、横並びで他所の省庁の記述を真似るか、上位官庁の記述を正確に受け継ぐことで、感染症のごとく広がっていった。官公庁にこうした宣言があると、一般の人もそのような宣言をするのが妥当であるかのように誤解するであろうことから、宣言すること自体が批判の的となった。
こうした宣言が批判されなければならないのは、一般の人が目的を持って無断リンク禁止を宣言することに有害性があるからである。無断リンクを巡って起きた騒動を振り返ると、次のような流れが典型であった。ある人が開設していたWebサイトは、当初はごく少数の人が訪れるだけで、平穏な日々が続いていた。そこにある日、著名なサイトからリンクされ、大量の人々が閲覧にやってきた。当該サイトには倫理上問題のある記述があり、訪れた人々に批判されることとなった。開設者は批判されることに耐えられず、サイトを閉鎖してしまう。こうした事態を避けようとして、「当サイトは無断リンク禁止です」と主張する人たちが出てくる。著名なサイトからリンクされることを拒否することで小規模なコミュニティを維持し、批判されずに安住できる場を作りたいというわけだ。批判されたくないと考えるような人が、批判されないであろう場を得ると、しばしば、批判されるべきWebコンテンツを書いてしまう。犯罪行為を自慢する内容や、他人の著作権を侵害するコンテンツや、他人の名誉を毀損する内容などである。
公開されたWebページを作るということは、全世界に向けて発信できるようにする(公衆送信可能化する)ことであるにもかかわらず、それを望まず、小規模なコミュニティに限定した公開を望む人たちがいて、「無断リンク禁止」と宣言することによってそれを実現できたかのような気分になっている人たちがいる。
そうした気分で勝手気ままな行動をする人たちを「無断リンク禁止厨」と呼ぶ。(「厨」のニュアンスについては、「ぱど厨」などを参照。)
無断リンク禁止でそれを実現できたと思うのは単なる勘違いであり、そのような勘違いによって不幸な事態が起きるのを避けようと、ネットの先人達は、「そうしたことをしたければ、アクセス制限をかけるしかない」と諭してきた。その裏返しが「リンクの自由」という考え方であろう。リンクするのは自由であることを前提として、リンクされたくないような場合はアクセス自体に制限をかける(識別符号とアクセス制御機能によるアクセス制限をかける)という、常識を育んでいくほかないのである。
Winnyの動作原理とWinny利用者の感覚は、無断リンク禁止宣言されたWebサイトとその開設者の感覚に似ている。
従来、Winnyで公開されているコンテンツに「リンク」を張って人々に紹介することは簡単ではなかった。「こんなものがある」という事実を確認するには、自ら「Winnyコミュニティ」に入り込み、紹介相手もそこに誘い込んで、一緒になってやってみるしかなかった。
このことによって、Winny利用者達はどんなに勝手気ままな行動をとっても、批判されるのを回避できてきたといえる。つまり、Webではなかなか思うように実現できなかった、「無断リンク禁止のユートピア」が現実的に実現された状態にあって、それに安住して、心置きなく違法行為を満喫してきたのであろう。Winnyネットーワークは、無断リンク禁止厨が落ち延びたファンタジーワールドだった。
だが実際には、Winnyにおいても、無断リンクが禁止できているわけではない。日経BP社の日経NETWORK誌の技術解説記事「Winnyの通信解読に挑戦」や、金子勇氏の著書「Winnyの技術」にあるとおり、WinnyプロトコルでWinnyに接続することは、Winny以外のプログラムでも誰にでも可能なものである。これまでたまたまそれを積極的にやってみせる人がいなかっただけだ。
Webにおいて、無断リンク禁止厨たちが、無断リンクした人に対して「不正アクセスだ」と抗議することがある。不正アクセス禁止法3条ないし4条に違反しているというのである。彼らの主張では、「隠しページ」のURLが「識別符号」だという。隠しページのURLを第三者にばらすことが、不正アクセス禁止法4条
第四条 何人も、アクセス制御機能に係る他人の識別符号を、その識別符号がどの特定電子計算機の特定利用に係るものであるかを明らかにして、又はこれを知っている者の求めに応じて、当該アクセス制御機能に係るアクセス管理者及び当該識別符号に係る利用権者以外の者に提供してはならない。ただし(略)
に抵触するという主張だ。このような主張は一般には通用していない。
同様のことは、「ファイル丸見え」の個人情報流出事故を起こしたサイト運営者が自己の責任を免れようとして、主張することもあった。どこからもリンクされていない(つもり)というだけで実際には丸見えになっているファイルについて、勝手に(自由に)アクセスされたことを「不正アクセスされた」というのである。そうした主張は警視庁によって否定されてきた経緯がある。
原哲也警視庁ハイテク犯罪対策総合センター所長の説明は明快だ。一連の流出情報はサーバーの公開部分に置かれ、誰でも見られた。最低限の防御もしていないケースが多く、企業の相談で「法的に不正アクセスと判断できるものはない」という。
相次ぐ個人情報流出“お寒い”企業の危機管理 警視庁『道に置くのと同じ』, 中日新聞2002年7月4日朝刊
やはり、勝手にアクセスされないことを実現するには、不正アクセス禁止法に定められたとおり、識別符号(2条2項)を用いたアクセス制御機能(2条3項)による利用の制限をかけるしかないのである。
識別符号によって、不特定でない少数の人(知人など)にだけアクセスを許可する制限をかけたシステムを用い、その中で著作物を共有したとしても、著作権侵害に問われないことはあるだろう(私的な使用の範囲で)。
しかし、識別符号が誰でも取得できるようになっていれば、それは不特定の者に公開していることになるので、著作権侵害の責任を問われることになるし、識別符号が管理者の意思によって公開されているようなときには、もはやそれは「識別符号」にはあたらない(また、それによる利用の制限もされていないと解される)というのが警察庁の見解となっている。
識別符号は、「当該利用権者等を他の利用権者等と区別して識別することができるように」付されるものでなければならない。したがって、識別符号であるためには、複数の利用権者等に同一の符号が付されないようにするとともに、どの利用権者等に付されたものであるかが分かるように付されていることが必要となる。
逐条 不正アクセス行為の禁止等に関する法律, 不正アクセス対策法制研究会編著, 立花書房, p.40
識別符号又は識別符号の一部であるパスワードがハッカー(原文まま)によりホームページで公開されるなどして第三者に知られてしまっている場合もこれが識別符号であることに変わりがない。ただし、このような状態をアクセス管理者があえて放置している場合には、もはや「アクセス管理者によってその内容をみだりに第三者に知らせてはならないものとされている」とは言えないと解されることがあり得る。
逐条 不正アクセス行為の禁止等に関する法律, 不正アクセス対策法制研究会編著, 立花書房, p.44
識別符号であるID・パスワードがハッカー(原文まま)によりホームページで公開されて第三者に知られてしまっている場合など、利用権者等でない第三者が当該識別符号の入力による特定利用ができる状態があったとしても、アクセス制御機能により特定利用が制限されていることに変わりはない(略)。ただし、ID・パスワードが広く知られてしまっている状態をアクセス管理者があえて放置していて、誰でもそのID・パスワードを用いて特定利用をすることができるようになっている場合には、当該特定利用については、アクセス制御機能による制限がないと言わざるを得ないと解されよう。
逐条 不正アクセス行為の禁止等に関する法律, 不正アクセス対策法制研究会編著, 立花書房, p.61
こうした常識はWebだけでなく、昔からあるLAN用のファイル共有システムにおいても共通のものだったし、FTPサイトを用いたものや、近年のWAN用のファイル共有システム(いわゆる「P2P型」)であっても普遍的なものであろう。
勝手気ままなことをしたければアクセス制限をかけるべきであるし、アクセス制限が事実上不特定多数にアクセスを許可するものになっているならば、もはや勝手気ままなことは許されない。そして、勝手気ままな行為が行われている事実を確認するために、不特定多数が利用可能になっている利用をすることは、許されなくてはならない。
こうしてみると、不正アクセス禁止法はじつに常識にマッチした構成となっており、この法律で規定された禁止行為はやってはいけないが、この法律で規定された行 為に該当しなければ、それは自由であると考えてよいのである。
ネットの先人たちが、無断リンク禁止厨たちに「禁止と宣言しても禁止状態になっていないよ」「アクセス制限をかけるしかないんだよ」と諭してきたのと同様に、Winnyユーザ達にも同様の現実を知らせてあげるべきだろう。おそらく、大半のWinnyユーザたちは、自分のパソコンが公衆送信可能化している事実(Winnyの仕組み)を知らないでいる。
そこで、Webブラウザにインストールして使う、Winnyプロトコルのプロトコルハンドラを作って自由に利用してはどうだろうか。Webブラウザはなにも http:// しか使えないわけではなく、ftp:// で始まるURLも処理きるし、他にもいろいろサポートされている。プロトコルハンドラをインストールすることで、誰でも自由にプロトコルを追加できるようになっている。
利用イメージは次の図のような感じだ。
この想像図では、61.117.156.245というIPアドレスのコンピュータのポート7743で公衆送信可能化されているファイルの一覧表が表示されている。ファイル名のリンクをクリックすると、Winnyで「ハッシュ」と呼ばれている文字列で当該ファイルを指定して、そのノードからダウンロードするようになっている。
Winnyユーザが、自分のIPアドレスにこうやってアクセスしてみることで、自分が人からどのように見えているのかを直感的に理解することができるだろう。
また、個人情報を漏らされてしまった被害者が、自分の個人情報が公開されているノードにアクセスして、その事実を確認するのにも使用できる。
*1 そんなものを見てもどうせつまらないに違いないと思っていたので。
*2 ただし、瑣末な部分だが、「完全に削除することは不可能で」の部分は「削除することは不可能で」とした方がよかった。
*3 たとえば次などの報道。 東京読売新聞2002年5月27日朝刊「エステ『TBC』経営会社、3万人分の情報流出」、 東京読売新聞2002年5月28日朝刊「YKK関連会社、個人情報4万5000件漏えい ネットで7時間公表」、朝日新聞2002年7月3日朝刊「アビバの個人情報2093人分流出【名古屋】」
*4 1件くらいあったような気もするが。
*5 このとき北海道警は当初、「該当Webサイトの管理人を特定できておらず、流出したデータの削除はできていない」「管理人との接触を急ぐ一方で、ISPに対しても該当データを閲覧できないような措置を依頼している」(INTERNET Watchの記事より)などと、頓珍漢なことを発表していた。
前回の日記で、「Winny可視化のため、WebブラウザにWinnyプロトコルハンドラを」ということを書いた。たとえば「winnytp://61.117.156.245:7743/」というURLでアクセスすると、そのコンピュータのポートで公衆送信可能化されているファイルの一覧表が表示されるという仕組みだ。
このような形態のアクセスについて、「不正アクセス禁止法の不正アクセス行為にあたるのではないか」といった声が出るのではないかと予想したのだったが、全く出てこなかった。出てきたら反論しようと予定していたのに残念だ。
というわけで、結論はもうわかっている(不正アクセス行為には該当しない)にせよ、もし不正アクセス行為と見なそうとしたらどのような根拠が考えられるか、根拠を募集したい。
タイミングのよいことに、11日の日記の「Winny可視化のため、WebブラウザにWinnyプロトコルハンドラを」に対して、「高木版Winnyプロトコルハンドラは妙だ」という反応があった。
それを言うなら winnytp://a272e2d2e7a6844d97ab5fd9619be1d6 というURIで、ネットワークのどこかにある a272e2d2e7a6844d97ab5fd9619be1d6 というハッシュのファイルを指すのが自然なんじゃないかと。
高木版Winnyプロトコルハンドラは妙だ, blog.fuktommy.com, 2006年6月25日
べつにそれに限定される理由はない。両方があり得るというだけのことだ。 URL (Uniform Resource Locator) として、場所を指定してリソースを指定する方法「winnytp://HOSTNAME:PORT/[FILE_ID]」もあれば、 URN (Uniform Resource Name) として、場所に依存しない形でリソースを指定する方法「winny:FILE_ID」もあり得るという理解でよい。*1
私は単に、後者の実装には興味がない。
実装の面からいうとWinnyプロトコルには自分の公開ファイルの一覧を出力する機能はなかったと思うんですけど。 Apacheでいえば Options -Indexes と設定しているようなもんでしょ。ということは winnytp://192.168.2.1:7743/foo.jpg はありえても winnytp://192.168.2.1:7743/ はないんじゃないですか。
高木版Winnyプロトコルハンドラは妙だ, blog.fuktommy.com, 2006年6月25日
べつに全ファイルが表示される必要はない。そのサイトから受信したコマンド13から、そのサイトについてのエントリを抽出する実装でよいのであって、「Options -Indexes」されているわけじゃない。
じつは言い出した当初、それができるかどうかいささか不確かに感じていた。そこで、ちょうど昨日から、実際に作って試していたところだった。
Javaのjava.net.URLConnection用のストリームハンドラを軽く書いてみた。使い方は次のような感じになる。Javaで書いたため一般のWebブラウザに組み込むことはできそうにないが(HotJavaにならできるけども)、ここではテキストベースのHTMLブラウザをJavaで書くケースを想定している。(ダウンロード機能はまだ書いていないので「[FILE_ID]」部分は指定しても無視される。)
import java.net.URL; import java.io.*; public class Nynx { static final String usage = "Usage: java Nynx url"; public static void main(String[] args) { if (args.length != 1) { System.err.println(usage); System.exit(1); } String url = args[0]; URL.setURLStreamHandlerFactory(new WinnytpURLStreamHandlerFactory()); // ハンドラの組み込み try { java.net.URLConnection uc = new URL(url).openConnection(); InputStream is = uc.getInputStream(); BufferedReader buf = new BufferedReader(new InputStreamReader(is)); while (true) { String line = buf.readLine(); if (line == null) break; System.out.println(line); } } catch (IOException e) { System.err.println(e.toString()); } } } class WinnytpURLStreamHandlerFactory implements java.net.URLStreamHandlerFactory { public java.net.URLStreamHandler createURLStreamHandler(String protocol) { if (protocol.equals("winnytp")) { return new WinnytpURLStreamHandler(); } else { return null; } } } class WinnytpURLStreamHandler extends java.net.URLStreamHandler {...} class WinnytpURLConnection extends java.net.URLConnection {...}
実行してみると次のようになる。図1は実装途中の確認テストで実行した際の様子で、受信したコマンド13のエントリを削らずに表示した様子だ。
ここから、HOST_NAME部分がアクセス先サイトと一致するエントリ(図1の矢印部分)だけを残して表示すればよく、実行すると図2のようになった。(リンクのhref属性は、相対URLになるので「winnytp://HOSTNAME:PORT/」部分を省略している。)
このとき、こちらからサーバ(Winnyノード)へは何らコマンドもデータも送信していない(Winnyプロトコル冒頭の暗号キーおよびコマンド0〜3も送っていない)。実装の最初のテストでそのことに気づいたのだが、単にこちらから TCP接続しただけで、応答ストリームにコマンド13などを返してくるようだ。受信したデータをWinnyプロトコルにしたがってデコードしただけで、このような表示ができた。
昨日(土曜日)の夕方から書き始めたところ、今日(日曜日)の朝にはこの程度に動くものに仕上がった。このことからしても、今や誰でも、公開されている資料をもとにこうしたプログラムを作成できる状況にあることがわかる。実際、5月15日のCMU日本校のカンファレンスの席でも、会場からの質問で「(情報漏洩対策として)うちでも作っている」という声が出ていた。
Winnyについてこれまでに考えを記した日記:
*1 そのためわざわざ「tp」を付けて区別しておいた。