常識サーバ
以下の方法はうまくいかなかったので常識サーバの逆襲に移動します (2018/8/25)
(2018/8/15)
ボットによる自動ユーザ登録などを防ぐためにCAPTCHAというシステムがよく利用されていた。たとえば人間ならば下図を「smwm」と読むことができるがコンピュータが読むことは難しいので、読めた場合だけユーザ登録できるようにしておけば人間だけがユーザ登録できるというわけである。
CAPTCHAの例
CAPTCHAはこういう用途にある程度有効であったが、歪んだ文字を読んで入力するのはあまり楽しくない。最近は文字を読まなくても人間判定してくれるGoogleのreCAPTCHAというシステムがよく使われており、原理はよくわからないが歪んだ文字を読まなくても人間判定してくれるらしい。
普通のボット除けには素直にreCAPTCHAを使えば良いのだが、Googleが提供するものをそのまま使うのも面白くないので、「常識による人間判定」というものを考えてみた。常識を知っていれば人間だと判定するわけである。「砂漠で亀をひっくり返すとどうなる?」みたいなものである。
最近は優れたAIが有るので人間だけが知っている常識問題を作るのは難しいが、ボット攻撃者が複雑なAIを使って頑張るとも思えないので、ボットにとってはそこそこ難しいが人間は簡単に回答できる問題を出す「常識サーバ」を作ってみた。
常識サーバにアクセスするとたとえば以下のようなJSONが返る。
["炭水化■","7d8e2314e8096af6b19b78ab4fb967cd"]
この「■」はもちろん「物」であり、そのMD5値が
7d8e2314e8096af6b19b78ab4fb967cd
である。ユーザには「炭水化■」という文字列が提示されて■の部分を回答するが、ユーザの回答のMD5値と上のMD5値が一致すれば正答なので、ボットではなく人間が操作したと判断する。 「炭水化■」から「物」を計算できるシステムがあれば常識認証システムを欺くのは簡単であり、実際この程度の計算ができるシステムを作るのも簡単だと思うが、このような常識認証システムのためにわざわざ攻撃システムを作る人も少ないだろうから、簡易人間判定としては使えるだろうと思っている。
#ブログ 2018/8/15