coinhiveについて意見書なるものが求められてると聞き、ちょろりと書こうと思ったのだが、技術者と呼ぶにはロートルなので公開する。それは変じゃねってあったらコメントつけてください。・・・ロートル。英語かとおもったら老頭児、中国語なんだね。らぉとぅ儿か。びっくりだ。
私は誰か
2000年初頭、新卒から技術職が50~100名程度のちいさなソフトウエア開発会社にプログラマー技術職として勤めていた。スペシャリストや部長職などを経て、子会社の役員CTOなどもやったが、ご多分に漏れずSIerと呼ばれるシステム開発業界隈から身を遠ざけ、緩く喫茶や小売業をまったりやる個人起業をし十数年になる。
技術職であった期間より、もはや商店街で部長をやっている期間のほうが長くなり、プログラマーとしては疑問符がつくようになってしまったが、おかげさまでICT界隈の技術には理解がない人達へ説明をする能力は得ることができた。
自分で手を動かし、ある程度のソフトウエアは設計から実装まで仕上げることができたが、前線からは離れているので先端技術者としてのスペシャリティはない。だが、プログラマーが集まるコミュニティの運営をしているので技術者の声は今でも聞くし、三鷹市界隈のICT事業者をあつめた協会の理事もやっているので経営者の声も聞く。ついでに言うと三鷹市の情報推進の委員などもしているので行政の意見も聞く機会があり広範囲に情報は得ているほうだと思う。
そのような観点からcoinhive騒動についての意見を申し上げたい。
なお、これからの意見は会社や組織を代表するものではなく、あくまで個人の意見である。おさだまり文言。
論点項目
・行為の主体
・刑法としての解釈
・coinhiveの評価と程度の問題
行為の主体
商店主にプログラミング言語を説明しようとしたら、ぴ~ひょろろというFAXが発する音のようなものを発声するのだと言う人が居たが、これを読まれる方は、そのような層よりはパソコンなどの操作について馴染みがあるものとして話しをすすめる。
プログラミングとは、簡単に言えばコンピューターが動作するにあたり、どのように挙動するかの指示を列挙した指示書のようなものである。
指示の中で別の指示書を呼び出したりするのが最近のプログラムでは常なので、そのため連鎖反応のように自動で実行されているように見えるものもあるが、あくまで実行の主体者は辿れば最初にそれを実行した者に行き着く。
正常系であれば実行者が居て、それを実行可能な環境が揃うことで実行結果を得ることができる。
異常系であれば機械などハードウエアの異常が不随意に発生したもの、または製作者も意図していなかった挙動、実行者の意図を欺いて実行されるものなどが考えられる。
多くの人が無自覚におこなっているホームページ閲覧という仕組みの正常系を技術的に考えてみると、閲覧者はまずホームページを保管しているサーバーへ閲覧したいという要望(リクエスト)を投げる。サーバー側はそれを許可し閲覧者にアクセスさせる。閲覧者はそれを自身のパソコンなどに持ち帰り自身のマシンで指示書を翻訳し実行し、閲覧を行う。
ホームページの提供者は閲覧者がいつ来てもよいように、家(サーバー)の鍵(ポート)をあけて待機状態(リッスン)にしておき、ときにはそのリクエストに応じてサーバー側で演算して実行結果として渡してあげる必要がある。最初に問い合わせをし閲覧許可の要望を投げるのも、それを実行するのも行為の主体は閲覧者である。閲覧者の指示を契機にしておこなわれる。
刑法としての解釈
いわゆるコンピュータ・ウイルスに関する罪(不正指令電磁的記録作成等)についてであるが、coinhiveはこの定義からは外れるものと考える。実行形態を見ても実行結果をみてもそもそもコンピューターウイルスの定義に当てはまらない。
coinhiveなどを利用し、ホームページ提供者でもない第三者が他者のホームページを書き換えマイニングスクリプトを設置したり、閲覧者がリクエストもしてないのに保存させたり実行させたり、なにかを騙り詐謀しユーザーにマイニングをさせるマルウエアやウイルスは存在する。しかし、それらのものと今回のWEBデザイナーがWEBサイトの部品としてcoinhiveを設置したものは手続き的にも技術的にも明確に区別できる。
今回の場合、ホームページ提供者が設置したものを閲覧者がリクエストして、それに応じてファイルへのアクセスを許可したものであり、またそれを実行したのも閲覧者である。
閲覧者はそのホームページのURLにアクセスすることで構成する索引(インデックスファイル)を取得し、その索引から閲覧するために個々のファイルを取得する。閲覧者の意図はホームページ全体を完全な形で閲覧することを前提としており、その意図に添った動作を行っているといえる。
プログラムや提供されるホームページを著者の著作物だと考えれば、著作者人格権うち同一性保持権は適応されて然るべきであろう。公衆送信権をサーバーに委譲しているに過ぎない。
もし、閲覧者の意図がホームページの完全な状態の実行ではなく、作者が意図しない形で閲覧をしたいのであれば、その閲覧者の意図に沿ってHTTPリクエストを逐次段階的に処理していく必要がある。TCP/IPのプロトコル(決まりごと)はそれを可能にしているが、手順が煩雑になるために、閲覧実行時(ブラウジング)に実行権限を委譲することでブラウザーがリクエストと応答をまとめて代理処理されている。
一般的なホームページ閲覧ソフト(ブラウザー)はjavascriptの実行を許可しない設定に切り替えることができるし、httpプロトコルをブラウザ任せにしなければ、その取捨選択をおこなう機会は失われていない。
インターネットを構築する技術仕様はRFCで公開されており、それに則ったやりとりの範囲でおこなわれる。しかも今回の件は、ブラウザが許可した範囲内でしか動けないJavaScriptの話しである。ページを立ち去れば終了するのだ。
仕様上そのようにはなっていないので、閲覧者側に気がつく機会は提供されなかったものとは言うことはできない。その機会をブラウザに権限委譲することで煩わしさから逃れているのだ。現代において一般的なホームページ上でも数えられぬほどのJavaScriptが動いている。もし、chormeブラウザを使っているならF12ボタンを押せば、現在どのようなファイルを取得して実行していて、ネットワークの状態などを検証することは容易に確認することができるだろう。確認してみるといい。そのうちいくつが閲覧者の意図に沿ったものだろうか?ホームページ設置者すら意図していないものもあるかもしれない。
coinhiveの実行はホームページの閲覧には不必要な挙動であり、正当な理由のないものとの意見、解釈もあるだろう。だが、ホームページ提供者の意図を閲覧者が定義することはできない。製作者が意図する完全な状態はcoinhiveを含むものとする著作者意図を閲覧者側の閲覧したいものの意図に沿わないから不正な電磁的記録であるとしてしまう危険性を今一度考慮する必要がある。
著作物と閲覧者が異なる人物である場合、閲覧者の意図を過不足なく斟酌して、著作者が著作物を用意することはできない。閲覧者の意図によって、その内容が不正指令電磁的記録になるのであれば、その影響範囲は現行のインターネット上の仕組みの根幹にも影響する。
インターネット初期の頃、ホームページを開くと自動で音楽が流れるようなサイトも多くあった。現在の流行りはサイトを閲覧するために動画広告を強制的に視聴させるようなホームページも多い。
これらの動画を流すために、見えないところで広告をより効率的に見せるためのトラッカー、アクセス解析などが動いている。情報を取得しユーザー上のマシンリソースを使用している。coinhiveと、広告などとの違いを社会的コンセンサスという不確かな定義のものの上に置いてしまうと、技術的にはそれらを区別することはできなくなるだろう。 欧州のGDPRのおかげでcookieなどはオプトイン形式になり可視化されつつあるが、 認識されていないだけで見えていない広告関連の仕組みは実に多い。ユーザーには一見認識することができない非常に多くの構造体が目に見える仕組みを支えている。
ホームページ提供者が閲覧者のマシン演算力をより多く必要とする部品を設置することにマナーとしては諸説紛々あるやもしれないが、これをもってコンピュータウイルスの定義を当てはめるのは定義を拡大しすぎである。
coinhiveの評価と程度の問題
ホームページの維持管理のためには、閲覧者が24時間いつきてもいいように電気をつけて待っている必要がある。経済的利益の確保はホームページ更新の動機になるばかりでなく必要な経費であり正当な理由の範囲内として考えることができる。 というより設置者が得られる利益も、閲覧者に見込まれる不利益もはたして公の議論にあたいするほど影響があるほどボリュームがあるものとは考えられない。いったいいくらの経済被害がこれによって生じうるのか。捜査や公判維持にいくらの経費をかけているのか。
coinhiveが問題となったのは、おそらくは、ホームページ改ざんなどで他人のホームページにそれらを埋め込むウイルスが流行ったことによりウイルス対策プログラムのパターンファイルに登録されたことをきっかけにウイルスと誤認されたことをきっかけにしているにすぎないように思う。また、仮想通貨のマイニングといういかがわしさが拍車をかけているのだろう。
だが、いちWEBデザイナーがホームページの部品として設置できる程度のものに、刑法犯に問うべきような過失や未必の故意がありえるだろうか?
いったい閲覧者に幾らの経済的損失を与え、幾らの不当な利益を得たというのだろうか? ホームページ閲覧中の滞在時間、javascriptがブラウザ上の割り当てたメモリ内とCPUの優先順序で動ける範囲で消費できる電気料金?数円、よくって数十円、どんなにがんばっても数百円もいかないだろう。見込める利益も予見の範囲、たかが知れている。
coinhiveで逮捕されたと話題になった当時、評価のため、オーストラリアのユニセフが設置したcoinhiveにアクセスしたり、通常のサイトと閲覧比較をしてCPU利用率などを比べてみたことがある。
下記は、量販品のメーカー製パソコンでCPU50%でcoinhiveを回したときのCPU可動遷移率だ。
次の画像は動画が再生される毎日新聞社のニュースページのCPU可動遷移率。
CPU稼働率の上限を制御できる分、coinhiveのほうがまだ閲覧者のPCには優しい。 電気泥棒だなどと非難する声もあるが、動画広告は閲覧者の時間泥棒である。通信帯域も食うことから、中継機の電気も食うし、その後のハードディスクの保存量も食う。 個人的にはホームページ閲覧の滞在時間なども勘案すればCPU利用率を2-30%ぐらいに絞ってくれるのならば動画広告より歓迎すべき未来のようにも思える。
画面のはじっこでチラチラ変な動画がぴょこぴょこしていたり、得ようとしている情報とは関係ないPR情報が記事に割り込んでくるのは苦痛なので、こういう収益化手段の遷移は歓迎したい。
たしかに仮想通貨マイニングはうさんくさい。coinhiveも終了した。だが、分散コンピューティングは将来は公益に資する可能性が大きくある。
いま人類を悩ませている新型コロナウイルス(COVID-19)。この解析に分散コンピューティングのFolding@homeプロジェクトが動きはじめている。
だがどうだろう、もし誰かが、これらをブラウザ上でも動くようにするプログラムを書いて、ホームページ上に置くことでこれらの解析に貢献できるものを作ったら? 日本では設置した人も、設置できるコードを書いた人も刑事罰の対象として逮捕されてしまうのだろうか。もしされないのであればその違いはなんであろうか。罪刑は法律が規定する範囲で運用されるべきもので、刑法犯については特に慎重に検討願いたい。
その他引用とか参考とか
BOINC is used by many volunteer computing projects.
boinc.berkeley.edu/projects.php
【寄稿】コインハイブ事件 意見書ご協力のお願い
www.hacker.or.jp/coinhiveopinion/
違法マイニングとされたcoinhiveの法と技術のはなし
kuippa.com/blog/%e9%81%95%e6%b3%95%e3%83%9e%e3%82%a4%e3%83%8b%e3%83%b3%e3%82%b0%e3%81%a8%e3%81%95%e3%82%8c%e3%81%9fcoinhive%e3%81%ae%e6%b3%95%e3%81%a8%e6%8a%80%e8%a1%93%e3%81%ae%e3%81%af%e3%81%aa%e3%81%97/
新型コロナウイルスの解析、分散コンピューティングで誰でも参加できるように 「Folding@home」が対応
www.itmedia.co.jp/news/articles/2003/15/news015.html