(57)【要約】【課題】自動プログラムによる解析が困難、かつボット等の総当たり攻撃による偶然突破を防ぐことができるランダムドットパターンＣＡＰＴＣＨＡを提供する。【解決手段】ランダムドットパターンからなる基礎レイヤーと、ランダムな文字列からなるレイヤーと、ランダムドットパターンからなる第１の前景レイヤーと、前記第１の前景レイヤーとは異なるランダムドットパターンからなる第２の前景レイヤーを重ね、各レイヤーが夫々別方向に移動する動画をフレーム画像として表示し、ユーザに解答させる。ユーザが人間あれば、文字列を認識することができるため、人間とボットを確実に区別できる。【選択図】図１
2020086534.tif 000002
【特許請求の範囲】
【請求項１】
ランダムドットパターンが表示された基礎レイヤーと、ランダムな文字列が表示されたレイヤーと、前記基礎レイヤーとは異なるランダムドットパターンが表示された０以上の任意の数の前景レイヤーを重ね、各レイヤーが夫々別方向に移動する動画をフレーム画像として表示することを特徴とするランダムドットパターンＣＡＰＴＣＨＡ。
【請求項２】
前記０以上の任意の数の前景レイヤーが互いに異なるランダムドットパターンを表示していることを特徴とする請求項１に記載のランダムドットパターンＣＡＰＴＣＨＡ。
【請求項３】
ネットワークを介してユーザが人間かどうかを判定する方法であって、ランダムドットパターンが表示された基礎レイヤー、該基礎レイヤーとは異なるランダムドットパターンが表示された0以上の任意の数の前景レイヤーを生成する段階と、文字列からなるレイヤーを生成する段階と、
前記基礎レイヤー、前記文字列からなるレイヤー、前記0以上の任意の数の前景レイヤーを重ね、各レイヤーが夫々別方向に移動する動画をフレーム画像として表示する段階を備え、
前記フレーム画像の文字列を解答させることを特徴とするランダムドットパターンＣＡＰＴＣＨＡを用いたアクセス認証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサービスに対する自動プログラムを用いた不正行為を防止するＣＡＰＴＣＨＡ技術に関するものである。
【背景技術】
【０００２】
近年、ボットと呼ばれる自動プログラムを用い、Ｗｅｂサービスからメールアドレスを大量取得してそれらにＳＰＡＭメールを送信する、もしくはＷｅｂサービスにアクセスするアカウントやパスワードを取得してユーザになりすましてアクセスするなど、いわゆるスパムボット等による不正行為が問題視されている。
【０００３】
このような問題を防止するために、ＣＡＰＴＣＨＡ（Ｃｏｍ−ｐｌｅｔｅｌｙ   Ａｕｔｏｍａｔｅｄ  Ｐｕｂｌｉｃ  Ｔｕｒｉｎｇｔｅｓｔ  ｔｏ  ｔｅｌｌ  Ｃｏｍｐｕｔｅｒｓ  ａｎｄ  Ｈｕｍａｎｓ  Ａｐａｒｔ）と呼ばれ、人間と自動プログラムを識別する方式が開発されている。ＣＡＰＴＣＨＡは、チャレンジ／レスポンス型テストの一種で、人間には容易に解答できるものの自動プログラムでは解答が困難な問題をユーザに出題し、正解した場合にユーザを人間と識別する技術である。
【０００４】
多くのＷｅｂサービス提供サイトでは、マルウェアによる攻撃を防ぐ手段として文字列ＣＡＰＴＣＨＡや画像ＣＡＰＴＣＨＡ(図５参照) が多く採用されている。文字列ＣＡＰＴＣＨＡには、Ｇｉｍｐｙ［７］、ＥＺ−Ｇｉｍｐｙ［７］、ｒ−Ｇｉｍｐｙ［８］、ｒｅＣＡＰＴＣＨＡ［９］など種々の方式が提案されている。Ｇｉｍｐｙは、例えば異なる単語を重複させて１セットとして画像の中に５セット表示させ、複数表示された単語の中から３つを解答させる文字列ＣＡＰＴＣＨＡである。ＥＺ−Ｇｉｍｐｙ及びｒ−Ｇｉｍｐｙは、このＧｉｍｐｙを単純化させたもので、１つの単語或いはアルファベットと数字をランダムに並べた文字列の画像を歪ませて表示し、その解答をテキストボックスに入力させる文字列ＣＡＰＴＣＨＡである。ｒｅＣＡＰＴＣＨＡは、新聞紙の記事や本の電子書籍化を行う際にＯＣＲソフトウェアが読み取れなかった文字画像を認証手順の一部に導入し、人間（ユーザ）に解読させて電子書籍化とセキュリティの両方に利用する文字列ＣＡＰＴＣＨＡである。文字列ＣＡＰＴＣＨＡのメリットとして、Ｗｅｂサイトへの取り入れ易さと、ボットによる総当たり攻撃に高い耐性を有する点が挙げられる。
【０００５】
しかしながら、近年のＯＣＲ（光学文字認識）技術や機械学習（ＡＩ）技術の向上により、従来の文字列ＣＡＰＴＣＨＡは、容易に突破され易くなるため、より高度なＣＡＰＴＣＨＡが求められている。そこで、無意味な情報の中からその都度生成した意味を利用する手法が非特許文献１により提案されている。より詳しくは、無意味な情報としてランダムドットの背景を用い、その背景上をランダムドットから構成される正解パターンを１フレーム毎に移動させる手法である。この手法は、図６に示すように、ランダムドットの背景上をランダムドットから構成される正解パターンが１から２へ移動する出題動画をユーザが視認した後、正解パターンと思われる座標を入力する操作を行うことで正誤判定を行い、正しい座標が入力されていれば人間とみなすものである。
【０００６】
ゲシュタルト心理学における「共通運命の法則」によれば、人間の脳は、同時に発生し同じような経緯で変化している複数のものをひとまとまりのものとして認識する機能を備えていることが知られている。すなわち、人間であれば、図２中の１から２へ移動するランダムドットを、一つのまとまりとして認識可能で、人間こそがランダムドット背景から正解パターンを容易に認知して選択可能であり、人間とボットの区別を行うことができる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】グエンスアンギア，外５名，「ＳＮＯＷ  ＮＯＩＳＥ  ＣＡＰＴＣＨＡ：無意味な情報を利用した動画ＣＡＰＴＣＨＡの提案」，研究報告コンピュータセキュリティ，２０１４−ＣＳＥＣ−６４，２９号，２０１４年２月発行
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、非特許文献１に記載されたＣＡＰＴＣＨＡは、自動プログラムにより、動画から複数の静止画フレームを抽出し、それらの静止画フレームの差分を利用して正解パターンの位置や形状を解析できるという脆弱性があった。また、出題動画と同じウインドウ中に正解パターンの領域が存在するため、ボットを利用した総当たり攻撃による偶然突破が懸念される。
【０００９】
本発明は、上記の課題に鑑みなされたものであり、自動プログラムによる解析が困難、かつ総当たり攻撃による偶然突破を防ぐことができる、人間の持つ移動物体の認識能力を活用したランダムドットパターンＣＡＰＴＣＨＡを提供することを目的とする。
【課題を解決するための手段】
【００１０】
このため本発明のＣＡＰＴＣＨＡは、ランダムドットパターンが表示された基礎レイヤーと、ランダムな文字列が表示されたレイヤーと、前記基礎レイヤーとは異なるランダムドットパターンが表示された０以上の任意の数の前景レイヤーを重ね、各レイヤーが夫々別方向に移動する動画をフレーム画像として表示することを第一の特徴とする。
【００１１】
また、前記０以上の任意の数の前景レイヤーが互いに異なるランダムドットパターンを表示していることを第二の特徴とする。
【００１２】
そして本発明のランダムドットパターンＣＡＰＴＣＨＡを用いたアクセス認証方法は、ネットワークを介してユーザが人間かどうかを判定する方法であって、ランダムドットパターンが表示された基礎レイヤー、該基礎レイヤーとは異なるランダムドットパターンが表示された０以上の任意の数の前景レイヤーを生成する段階と、文字列からなるレイヤーを生成する段階と、前記基礎レイヤー、前記文字列からなるレイヤー、前記０以上の任意の数の前景レイヤーを重ね、各レイヤーが夫々別方向に移動する動画をフレーム画像として表示する段階を備え、前記フレーム画像の文字列を解答させることを特徴とする。
【発明の効果】
【００１３】
本発明は、以下の優れた効果を有する。
（１）本発明は、Ｗｅｂサービスに用いられるユーザ認証技術の分野に広く対応することができる。
（２）ユーザの操作負担は少ないうえに、ボット等の機械的ログインプログラムによる機械的な認証要求を拒否することができる。
（３）人間の持つ移動物体の認識能力を利用するため、人間とボットを確実に区別でき、ひいては提供されるＷｅｂサービスの安全性と信頼性の向上を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明におけるランダムドットパターンＣＡＰＴＣＨＡのコンセプトを示す図である。
【図２】本発明におけるランダムドットパターンＣＡＰＴＣＨＡのレイヤー構造と各レイヤーにおけるランダムドットの動きを示す図である。
【図３】本発明におけるランダムドットパターンＣＡＰＴＣＨＡの認証手順を示すフローチャートである。
【図４】本発明におけるランダムドットパターンＣＡＰＴＣＨＡのオプティカルフローに対する耐性検証を示す図である。
【図５】従来の文字列ＣＡＰＴＣＨＡと画像ＣＡＰＴＣＨＡを示す図である。
【図６】従来のＳＮＯＷ  ＮＯＩＳＥ  ＣＡＰＴＣＨＡを示す図である。
【図７】本発明の実施例に係る認証システムをネットワーク化システムに搭載した一例を示す説明図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明におけるランダムドットパターンＣＡＰＴＣＨＡの実施の形態について説明する。本発明におけるランダムドットパターンＣＡＰＴＣＨＡは、無意味な情報の中からその都度生成した意味を利用するというアプローチを基に、文字列ＣＡＰＴＣＨＡをベースとした設計を行い、ランダムドット上に浮かび上がる文字列を判読できるか否かでユーザが人間かボットかを判断するものである。
【００１６】
図１は、本発明におけるランダムドットパターンＣＡＰＴＣＨＡのコンセプトを示す図で、ＣＡＰＴＣＨＡの１フレームを切り取ったものである。ここで、図１中のスタート位置とは、ＣＡＰＴＣＨＡが開始され、文字が表示され始める位置、現在位置とは、フレーム抜き取り時に表示される文字列の位置をいう。また図１中の白波線は、表示される文字列が移動する軌跡を表したものである。図１に示すように、ランダムドットパターンの背景上で白抜きの文字列を移動させるだけでは、幾フレームかを抽出し、それらの差分を利用することで文字列を容易に判読することができ、不正行為を防止することができない。
【００１７】
そこで、本発明においては、基礎レイヤーとなる背景と文字列が表示されたレイヤーに透過したランダムドットパターンの前景を重ねて表示し、妨害オブジェクトとしての役割を担わせることで、表示される文字列の難読化を図った。ＣＡＰＴＣＨＡの開発言語は、ＪａｖａＳｃｒｉｐｔ（登録商標）を利用したが、とくに限定するものではなく、多数のプログラミング言語、例えば、Ｃ、Ｃ＋＋、Ｃ＃、Ｏｂｊｅｃｔｉｖｅ  Ｃ、Ｊａｖａ（登録商標）、Ｐｅｒｌ、ＰＨＰ、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、Ｐｙｔｈｏｎ（登録商標）、Ｒｕｂｙ、Ｄｅｌｐｈｉ（登録商標）、Ｆｌａｓｈ（登録商標）、または他のプログラミング言語などのいずれか１つが利用され得る。
【００１８】
ランダムドットパターンは、画素を２分の１の確率で黒か白のドットで埋め尽くしたものであり、明色時（Ｒ，Ｇ，Ｂ）＝（２５５，２５５，２５５）、暗色時（Ｒ，Ｇ，Ｂ）＝（０，０，０）の２色どちらかに画素がランダムとなるよう構成した。ＣＡＰＴＣＨＡは、ＨＴＭＬ５のｃａｎｖａｓ要素として描画する方法を取り、図２（Ａ）に示すように、背景となるランダムドットパターンの基礎レイヤー１１を最背面として、表示する文字列のレイヤー１２、妨害用の透過したランダムドットパターンの前景レイヤー１３を任意のｎ枚重ねて描画している。図２（Ｂ）に示すように、例えば前景レイヤー１３を２枚重ねた場合は、前景レイヤー１３ａ，１３ｂの透過度は、０．４とし、互いのレイヤーは、ランダムドットパターンが異なる方向に移動するよう構成した。文字列のレイヤー１２が適度に認識できれば良いため、必ずしも前景レイヤー１３を設ける必要はなく、また透過度の高い（もしくは初期値＝０となる）前景レイヤー１３を複数枚重ねても良い。したがって、前景レイヤー１３の枚数は限定されるものではなく、前景レイヤー１３は、０以上の任意の枚数であれば良い。
【００１９】
次いで、本発明におけるランダムドットパターンＣＡＰＴＣＨＡを用いた認証手順について説明する。認証手順は、図３に示すように、ＣＡＰＴＣＨＡプログラムが動作を開始（Ｓ１）すると、背景用のランダムドットパターン、表示される文字列用のランダムドットパターン、妨害用の２種類のランダムドットパターンが夫々生成（Ｓ２）され、任意の文字を組み合わせた文字列が作成（Ｓ３）される。生成されたランダムドットと文字列は、夫々が図２に示す各レイヤー１１，１２，１３ａ，１３ｂ上に展開され、各レイヤー及び文字列が別方向に移動する動画をユーザにフレーム画像として表示（Ｓ４）する。ユーザが表示されている文字列をあらかじめ指定されたテキストボックスに入力（Ｓ５）し、解答送信用のボタンをクリックすることで解答した後、ユーザが入力した文字列と表示されている文字列が完全に一致している否かを判定（Ｓ６）し、終了（Ｓ７）となる。
【００２０】
ランダムドットパターンを用いて文字列や背景を生成し、図２に示す基礎レイヤー１１と文字列のレイヤー１２のみとすることで、フレーム画像中の１フレームを静止画として切り取ったとしても、ランダムドットパターン柄の文字列が、ランダムドットパターン柄の背景に紛れて認識できず、フレーム画像のみから正解となる文字列を抽出することができなくなる。しかしながらこの場合、２フレームを抽出し、その差分を利用することでレイヤー１２上の文字列を発見する手法や、オプティカルフローと呼ばれ、画素単位の物体の動きをベクトルで表し、表示される文字列の動きを追跡することで文字の形を抽出する手法を用い、これらの手法により抽出した文字列の形にＯＣＲを適用することで、自動プログラムによる文字の判読が可能となり、ボットによる総当たり攻撃に高い耐性を有するとは言い難い。
【００２１】
そこで、本発明においては、背景や表示される文字列とは異なるパターンのランダムドットパターンで前景レイヤーを生成し、背景や表示される文字列と重ねて表示して前景レイヤーを妨害オブジェクトとして機能させることで、前記した攻撃手法では判読できないよう構成した。前景レイヤーの機能性を確かめるため、妨害用の前景レイヤーを加える前と後でオプティカルフローによる文字の解読が可能か否かを検証した。前景レイヤーを加える前にオプティカルフローを適用したものが図４（Ａ）であり、前景レイヤーを加えた後にオプティカルフローを適用したものが図４（Ｂ）である。図４（Ａ）に示す楕円で囲む位置には、文字の位置が特定できてしまい、文字を判読される可能性がある。一方、図４（Ｂ）では、文字の位置を特定することすらできなくなった。よって、本発明におけるランダムドットパターンＣＡＰＴＣＨＡが、オプティカルフローを用いた攻撃に高い耐性を有することが示された。
【００２２】
＜評価実験＞
本発明におけるランダムドットパターンＣＡＰＴＣＨＡがユーザにとって解答可能なものであるかなど実用性について検証した。概略は、被験者２０名にＣＡＰＴＣＨＡを１０回解答してもらい、正答率や所要時間の測定を行った後、アンケート調査を行い、ＳＵＳ（Ｓｙｓｔｅｍ  Ｕｓａｂｉｌｉｔｙ  Ｓｃａｌｅ）を用いて評価した。
【００２３】
被験者は、学生２０名で、一通りの操作手順を説明した。操作手順としては、出題動画中に表示される文字列を判読してもらい、指定のテキストボックスに入力後、解答送信ボタンをクリックするよう指示した。被験者が解答する出題動画は、出題動画ごとにランダムドットパターン及び文字列を自動生成したものを使用した。所要時間は、出題動画が表示されてから解答送信ボタンをクリックするまでの時間を記録した。また、アンケート調査の項目は下記の１０項目とした。
（１）このＣＡＰＴＣＨＡをしばしば利用したいと思う。
（２）このＣＡＰＴＣＨＡを利用するには説明が必要となるほど複雑であると感じた。
（３）このＣＡＰＴＣＨＡは容易に使いこなす事ができると思った。
（４）このＣＡＰＴＣＨＡを利用するのに専門家のサポートが必要だと感じる。
（５）このＣＡＰＴＣＨＡにあるコンテンツやナビゲーションは十分に統一感があると感じた。
（６）このＣＡＰＴＣＨＡでは一貫性がないところが多々あったと感じた。
（７）たいていの人は、このＣＡＰＴＣＨＡの利用方法をすぐに理解すると思う。
（８）このＣＡＰＴＣＨＡはとても操作しづらいと感じた。
（９）このＣＡＰＴＣＨＡを利用できる自信がある。
（１０）このＣＡＰＴＣＨＡを利用し始める前に知っておくべきことが多くあると思う。
アンケート調査の奇数項目は、ポジティブな内容の質問、偶数項目はネガティブな内容の質問となっており、項目ごとに０から４の５段階のスコアで回答してもらった。
【００２４】
ＳＵＳの集計方法は、下記の方法により集計しスコアを求めた。
＜集計方法＞
アンケート項目１０項目について、奇数項目はスコアから１を引き、偶数項目は５からスコアを引く処理を行い、算出した数値を合計して２．５倍し、０から１００のスケールへ変換する。各項目のスコアをＮ１からＮ１０とすると、合計スコアＳは下記式で表した。
【００２５】
【数１】
2020086534.tif 000003
ＳＵＳは、平均スコアが６８とされており、スコアが高いほどシステムとして良好な評価とされる。ユーザビリティに優れた上位１０％に入るには、８０．３を超えるスコアが必要とされている。
【００２６】
検証において実行環境は、下記の通りである。
ＯＳ：Ｗｉｎｄｏｗｓ（登録商標）１０（６４ｂｉｔ）
ＣＰＵ：Ｉｎｔｅｌ（Ｒ）Ｃｏｒｅ（ＴＭ）ｉ７−４７７０Ｓ  ＣＰＵ＠３．１０ＧＨｚ
メモリ：８ＧＢ
解像度：１，９２０×１，２００
【００２７】
＜実験結果＞
被験者２０名が１０回ずつ、本発明に係るＣＡＰＴＣＨＡを解答し、合計２００個のデータから得られた平均正答率、平均所要時間、最大所要時間、最小所要時間とともに、ＳＵＳによるユーザビリティ評価の平均スコアを表１に示す。
【表１】
2020086534.tif 000004
被験者２０名、計２００回の解答において、５回が不正解と判定されたものの、平均正答率は９７．５％と高い正答率を得ている。その主な理由は、表示された文字をそれと似た文字（例えば、「ｉ」と「ｌ」など）と読み間違えて回答を送信したためであった。尚、正答率や所要時間は、表示された文字列の文字数、動き方やスピード、ランダムドットパターンのサイズなどパラメータに依存するものと考えられる。
＜ユーザビリティ評価＞
表１に示すように、アンケート調査の平均ＳＵＳスコアは８９で、上述した優れたユーザビリティを示すスコア８０．３を超える結果となった。したがって、本発明によるＣＡＰＴＣＨＡは、実用的であると言える。
【００２８】
＜実施例＞
図７は、本発明によるＣＡＰＴＣＨＡをネットワーク化システムに搭載した一例を示すものである。図７に示すように、少なくとも１つのサーバ２１と、ネットワーク２２と、少なくとも１つの入力端末２３から構成されている。サーバ２１は、上述した認証サービスを提供するものであり、とくに限定されるものではなく、任意のコンピューティングデバイスおよびそのコンポーネント、またはそのいずれかであっても良い。サーバ２１のコンピューティングデバイスのハードウェア構成は、既知であるため、その詳細な説明は省略する。サーバ２１は、図７に示すように、ランダムな文字列やランダムドットパターンの背景を生成し、ユーザに表示する表示制御部２１１と、ユーザが入力した解答を受け付け可能な入力受付部２１２と、ユーザが入力した文字列と表示されている文字列が完全に一致している否かを判定する判定部２１３を備えている。
【００２９】
ネットワーク２２は、サーバ２１と入力端末２３を、有線又は無線方式により通信可能に接続するものであり、例えば、インターネット、イントラネット、広域ネットワーク、パーソナルネットワーク等が挙げられ、そのいずれかであれば良い。
【００３０】
入力端末２３は、ユーザが所有するコンピューティングデバイスであり、例えば、パーソナルコンピュータや、携帯電話機、ＰＤＡ、フィーチャーフォン、スマートフォン、タブレットコンピュータ及びその他のインテリジェントデバイスが該当するが、これらに限られるものではない。
【００３１】
なお、本発明においてランダムドットパターンは、画素を２分の１の確率で黒か白のドットで埋め尽くしたものを作成したが、例えばコントラストが明瞭となる異なる色（またはＲＧＢ値）の組合せでランダムドットパターンを形成しても良く、ランダムドットパターンの色は限定されるものではない。
【符号の説明】
【００３２】
１１      基礎レイヤー
１２      文字列のレイヤー
１３      前景レイヤー
２１      サーバ
２２      ネットワーク
２３      入力端末
２１１    表示制御部
２１２    入力受付部
２１３    判定部
【図１】
2020086534.tif 000005
【図２】
2020086534.tif 000006
【図３】
2020086534.tif 000007
【図４】
2020086534.tif 000008
【図５】
2020086534.tif 000009
【図６】
2020086534.tif 000010
【図７】
2020086534.tif 000011