なぜ
先日、サイト上へCoinhiveが提供する仮想通貨マイニングスプリクトを埋め込んでいたユーザが摘発され、家宅捜索や罰金刑に処されるという事例がありました。
Coinhiveの違法性や警察のやり口(家宅捜索・差し押さえの妥当性や不正指令電磁的記録取得・保管罪の適用など)については現在様々なところで議論されています。
詳しいことは実際に摘発された方のブログ記事(仮想通貨マイニング(Coinhive)で家宅捜索を受けた話)を読んでいただくのが早いかと思います。
- 自分も最初は○○○県警のド無能エピソードかと思ってたけど、他県でも同時期に摘発があったらしいので言うのはやめた
自分はこういった類のサービスを利用していないので調べた限りなのですが、CoinhiveはJavaScriptによりブラウザ上で閲覧者の端末のマシンパワーを用いて仮想通貨のマイニングを行うものであるようです。
6月14日時点での警察発表資料によると、『自身が運営するウェブサイトに設置する場合であっても、マイニングツールを設置していることを閲覧者に対して明示せずにマイニングツールを設置した場合、犯罪になる可能性があります。』とのことで、「マイニングツールを設置していることを閲覧者に対して明示せず」という部分が重要であるように読み取れます。
確かに閲覧者に対して開示せずにバックグラウンドで意図しない計算をさせて利益を生むのは、少なくとも倫理的には問題がありそうです。
- 「可能性がある」という文言で警告もなしに罰金10万円+恫喝+PCデータ全消去されたらたまったもんではないが
マイニングツールの設置を閲覧者に明示せずに設置した場合、犯罪になる可能性があります。また、マイニングツールが設置されたウェブサイトにアクセスすると、パソコンの動作が遅くなることがあります。ご注意ください。https://t.co/GLl7GSzKqo— 警察庁 (@NPA_KOHO) 2018年6月14日
ただ、CoinhiveはあくまでJavaScript APIであり、別に何をインストールしたわけでも(=ネイティブ実行したわけでも)データを収集したわけでもないのが引っかかるところです。
JSは基本的にシングルスレッドかつWebGLやWebCL等の外部APIを使わないとアクセラレータにもアクセスできないので、せいぜいスマホがアチアチになったり最悪でもブラウザが落ちるぐらいで済むかと思います。
- WebWorkerみたいなのを使えばマルチスレッドで動作するものの、少なくともCoinhive内では並列処理はしてないっぽい?
ましてサイトにアクセスさえしなければ何も起きないので、僕が先日踏んだ大音量中国語再生クソスパムウェアよりも1000000倍マシです。
なんなら広告がゴリゴリ貼られた行動履歴収集サイトのほうがメモリ負荷もかかるし悪質である可能性もあると思います。
- 実際に負荷を計測したわけではないので「可能性がある」に留める
広告に関しては、恐らくこのご時世なら広告ブロックアドインによって広告を削っている人も多いと思います。
しかし、それをクライアント側で対処しなければならないのは上記と矛盾しているように感じてしまいます。
詭弁を言うと広告だって「広告です」とは明示していない場合が多いですし、閲覧者からすれば「訪問したサイトに意図しない広告(と明示されていない何か)が貼ってあって、端末のリソースを使ってロードしたことにより勝手にサイトオーナーに利益が発生した」とも言えるわけで、画面表示の有無以外はマイニングAPIと何が違うのか。
いまのところ自分の中では広告サービスとマイニングAPIの決定的な差異を説明できないので、ユーザ側に広告表示の許可を取ることにしました。
近日中にコードを公開します
JSの動く環境だったらPC・スマホ共に表示されてるかと思います。
今のところAdSenseしか対応していませんが、そのうちAmazonにも適用します。
それで広告APIが違法化したりGPUを持ってるだけで逮捕されるようなディストピアが訪れる前にはライブラリとして公開できればと考えています。
AD-Acceptance script made by Medetai.
0 件のコメント:
コメントを投稿