あら? この場合はどうなるのかしら?

さて。やっぱりポイントになるのは「アクセス制御機能」の部分なのよね。
敬愛する高木先生も同じような事をお書きになってらっしゃるんですけれども。ここはとても重要だと思うので、繰り返しここで書かせていただきたく思いますわ。
そうねぇ。例えばCGIで認証Pageがあるとするわ。大抵、index.htmlは「誰でも見れる」状態で、特定のディレクトリ以降とかが「会員専用」とかって感じだと思うの。
つまりここで「正当なIDとパスワードを用いて」会員専用Pageにアクセスするのは合法なんですけれども、例えば「他人のIDとパスワードを本人や管理人の承諾なしに入手して会員専用Pageに"そのIDとパスワードを使って"アクセスする」ってのはきっちりと違法だわ。
例えばFTPで、anonymousでは"ない"、ちゃんと認証が必要な領域のデータを「認証をかいくぐって」getしたりしたら、やっぱりいけないと思うの。っていうか、かいくぐられたら「IDとかパスワードとか」設定した意味がないわよね?


ここまではよろしくってかしら?


ではここで質問よ。Webって、大抵FTPでUpするわよね?
とあるPageのindex.htmlがあるとするわ。そこのindex.htmlは、当然FTPでUpするものなんですの。FTPでアクセスする際には当然のことながらIDとパスワードが必要よ。つまりindex.htmlってのは「アクセス制御されている」ものであり、index.htmlを取得して中身を閲覧するっていうのは「アクセス制御機能によって制限されている利用」になるわ。
一方で、HTTP経由でアクセスするときって、index.htmlは「誰でも見れる」ようになっているものよね? つまりHTTPでアクセスする場合には「アクセス制御」されていないものになるわ。だから、index.htmlを取得して中身を閲覧するっていうのは「アクセス制御機能によって制限されていない利用」になるわ。
ではここで問題よ。
「index.htmlを取得して中身を閲覧する」行為は「アクセス制限されているもの」かしら?「されていない」ものかしら?


ええ、そうね。あたしもそう思うわ。「FTP経由でのアクセスなら制限されていて、HTTP経由でのアクセスなら制限されていない」。技術者の感覚的にはこんな感じよね?
まずここで問題がひとつあるの。法律の条文によれば、アクセス制御機能ってのは「特定電子計算機に付加されている機能」なの*1。そうして、特定電子計算機ってのは「ハードウェア」単位であるという司法判断が現在なされているわ。つまり「プロトコルレベルで切り分けちゃ駄目」なの。飽く迄「筐体単位」での判定をしなくてはいけないの。
ではもう一度同じ質問よ。
「index.htmlを取得して中身を閲覧する」行為は「アクセス制限されているもの」かしら?「されていない」ものかしら?
答えは「制限されているもの」よ。だって「アクセス制限がなされている」部分があるんですもの。それは当該特定電子計算機に「アクセス制御機能がある」ってことでしょ? だから、制限されているものになるのよ。
つまりこれをもう少し極端に見ると「HTTPでのアクセスはたいていの場合において不正アクセスである」ってことになってしまうの*2。だって「FTPでアクセス制限されている」コンテンツに対して「アクセス制御機能を有する特定電子計算機に電気通信回線を通じて当該アクセス制御機能による特定利用の制限を免れることができる情報(識別符号であるものを除く。)又は指令を入力して当該特定電子計算機を作動させ、その制限されている特定利用をし得る状態」にして閲覧しているんですもの。
そうねぇ。多分、法的に「正しい」閲覧の仕方は

  • URLのhttpという部分をftpに置き換える
  • アクセス管理者によって正しく発行された識別符号を用いてアクセス制御機能の一部を解除する
  • コンテンツを適宜取得して閲覧する

って感じになるのかしらね?


じゃぁ次に行ってみるわね。
例えば、とある人のURLでこんな感じがあったとするわ。
http://www.lucrezia.com/~foo/
いかにも「どこかの個人サイトのURL」よね?*3
あたしはよく「あら? 見かけないドメインだわ。これってどんな会社さんなのかしら?」って思うの。技術者の習性なのかしらね?
だから、あたしは上のURLをこんな風に書き換えることがよくあるの。
http://www.lucrezia.com/
ほら。これで、その会社(十中八九、レンタルサーバとかその類のはずなのよね)のTopPageが閲覧できるわ。これって普通の行為よね? 別に違法性があるわけじゃないわよね?


ところが。不正アクセスだっていえる可能性がある状況が、実は存在するの。

  • 該当の会社は「index.htmlを見せたくない」って考えてる

場合よ。
もうちょっと細かく書いてみるわ。

  • 該当の会社は「index.htmlを見せたくない」って考えてる
  • したがって「index.html」へのリンクはどこにもない
  • 該当ファイルは「FTPレベルで」アクセス制御機能が備わっている
  • URLを改竄するのは「アクセス制御機能を有する特定電子計算機に電気通信回線を通じて当該アクセス制御機能による特定利用の制限を免れることができる情報(識別符号であるものを除く。)又は指令を入力して当該特定電子計算機を作動させ、その制限されている特定利用をし得る状態にさせる行為」に相当する

ほら。これで「URLの一部を削ってTopのindex.htmlを閲覧する」ことが「不正アクセス禁止法」の違反につながってしまうの。
…怖いわぁ。ちゃんと理屈が通ってるあたりが。


さらにもうひとつ、別のお話よ。
そうねぇ。通常の「ログインPage」を連想してみて頂戴。あたしは、こんなユーザ情報を持っているの。
ID lucrezia
パスワード pass';01
この情報でログインしてみようとして…あたしはIDを打ち間違えてしまったの。そうねぇ。例えば「lucrez」って入れてしまったとするわ。そうして困ったことに、lucrezさんっていう「あたしではないユーザさんは」存在いていたの。ただ、パスワードはあたしとは違うの。だから普通にユーザ認証ではじかれる…はずよね? 本来なら。
ところが、なぜかログインできてしまったの。しかもよりにもよってlucrezさんとして。


とってもタコいプログラムをすれば、こういう状況も可能だわ。そうねぇ。一例をあげてみせようかしら? とりあえずPerlをイメージしてみるわ。


$id = CGIからの情報取得('id');
$pass = CGIからの情報取得('pass');

$sql = "SELECT count(*) FROM user_table WHERE password='$pass' and id='$id';";

$ret = DBへのアクセス&実行($sql);
if ("0" eq $ret) {
認証失敗だわ
認証エラーPageを出力するのよ!!();
exit(0);
}
# 認証成功だわ。以降、$idのユーザとして処理するわよ

…さて。このプログラムに今回の入力データを掛け合わせてSQL文を作ってみるわ。
SELECT count(*) FROM user_table WHERE password='pass';01' and id='lucrez';
…このSQLって、結局
SELECT count(*) FROM user_table WHERE password='pass';
なのよね。つまり「どっかの誰かがpassっていうパスワードを設定していれば」count(*)は1以上になってしまうの。…簡単に「他人のIDで」ログインができてしまうわ。


ええもちろん、このプログラムが「信じられないくらい愚かなプログラムである」ことはわかりますわ。でも、世間にこれと同じレベルの愚かなプログラムが転がってないって、どうやったら言い切れるっていうのかしら?
じゃぁ質問よ。
こんなタコい認証プログラムを作っているサイトを利用したおかげで「間違えて」ログインしてしまったあたしは。それに気づいた瞬間にあわててログアウトしたとして、それでもなお不正アクセスをしたことになってしまうのかしら?


お次はコメント欄経由でいただいた例題よ。
「他人のパスワードを使うことを意図せずにしちゃった、もしくは『させられちゃう』ケースがあると思うのですが....例えば http://foo.nippon/login.pl?userid=EPP&password=openthenext みたいなURLを踏んだ場合(この例えはちと極端ですが)、サーバー側のログでは「その行為が意図的に行われたものか、意図的でないものか」を判断する材料ってHTTP-REFFER位しかなさそうです。で、仮にログから「その行為が意図的に行われたものか、意図的でないものか」が判別できなかった場合、これを証明する義務は誰に発生するんでしょう?そして、そもそも証明は可能なんでしょうか?」
そうねぇ。完全に「法律文書の読み方の問題」になってきそうなんですけれども。
素人目のあたしの見る限りだと「させられちゃったやつが全部の罪をかぶる」可能性が高いと思っているの。
まず不正アクセスの定義をもう一度見てみるわ。二条の「その制限されている特定利用をし得る状態にさせる行為」が多分焦点になると思うのよね、議論の。直接的に「特定利用をし得る状態にさせる行為」は、そのURLを「サーバにリクエストした人間」だわ。だから、まずこの時点で「させられちゃった側」にポイントが一点加算されると思うの。
あとは「故意か過失か」の判断なんですけれども…これってどうなのかしら? 単純に技術者的に考えると「証明は難しい」と思うのよね。そうねぇ…「REFERERが残っていて、そのREFERERの指示先が"間違いなくクラックされていないPageであると先方から保証をもらえる"状態で」なお「REFERER偽装の可能性」が残ってしまうわ。そういった全てをクリアできる状況って、果たして現実的なのかしら? だから、あたしは「無理」だとは言わないにしても、限りなく「難しい」って思ってるわ。故意ではない証明って。これで、引き分けか、ないしは「させられちゃった側」に+一点のポイント加算が発生するわね。
で、証明する「義務が」どこにあるかは難しいわ。ただ現実を見据えたときに「証明する必要があって動く必要がある」唯一の人間は「ふまされた人」よね。それ以外の人は、ぶっちゃけ「濡れ衣でいいからふまされた人を有罪扱いしたほうが色々と楽だし便利」だと思うんですもの。この辺で、下手したら「させられちゃった側」にポイントが数点ほど加算されかねないわ?
トータルでポイントを考えると…高い確率で「ふまされた人」の判定負けよね? 今回のケースって。
結局のところ、あんまりにも「技術とか現実とかを無視している」としか思えない法律なの。だから「ほかの要素でどうとでもなる」ように運用できる曖昧な見方しかできないわ。これって「融通が利いて状況に即した判断ができる」って言うのかしら? それとも「面倒な社会戦的力関係で法律や善悪とは違う基準から判断ができる」って言うのかしら?


ちょっと長々と書いてみたわ。もちろん「これからよりよくなっていく」法律であって欲しいと、それは切実に願っておりますの。
ただ…現状を見ている限りでは「闇よりもなお暗い」なかで、蛍火ほどの光すらも感じることができないでいるの。
これから先、いったいこの法律は、「不正アクセス」というものは、セキュリティは。どんな迷走を続けていくことになるのかしら?

*1: http://japan.cnet.com/special/story/0,2000050158,20082170,00.htm よりの引用よ。「レンタルしていた物理的な機器である本件サーバが特定電子計算機であり、これを基準にアクセス制御機能の有無を判断することは文理上当然である。他方、その有無をプロトコル単位で判断すべき文理上の根拠は何ら存在しない」

*2:FTPでその領域が"anonymousで誰でもアクセスできる"可能性があるから「必ず」ではなくって「たいていの場合のいて」なのよ?

*3:ドメイン名への苦情は受け付けないわ(笑