IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人 宮崎大学の特許一覧

特許7227444ランダムドットパターンCAPTCHAを用いたアクセス認証方法
<>
  • 特許-ランダムドットパターンCAPTCHAを用いたアクセス認証方法 図1
  • 特許-ランダムドットパターンCAPTCHAを用いたアクセス認証方法 図2
  • 特許-ランダムドットパターンCAPTCHAを用いたアクセス認証方法 図3
  • 特許-ランダムドットパターンCAPTCHAを用いたアクセス認証方法 図4
  • 特許-ランダムドットパターンCAPTCHAを用いたアクセス認証方法 図5
  • 特許-ランダムドットパターンCAPTCHAを用いたアクセス認証方法 図6
  • 特許-ランダムドットパターンCAPTCHAを用いたアクセス認証方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-14
(45)【発行日】2023-02-22
(54)【発明の名称】ランダムドットパターンCAPTCHAを用いたアクセス認証方法
(51)【国際特許分類】
   G06F 21/30 20130101AFI20230215BHJP
【FI】
G06F21/30
【請求項の数】 1
(21)【出願番号】P 2018214929
(22)【出願日】2018-11-15
(65)【公開番号】P2020086534
(43)【公開日】2020-06-04
【審査請求日】2021-10-15
(73)【特許権者】
【識別番号】504224153
【氏名又は名称】国立大学法人 宮崎大学
(74)【代理人】
【識別番号】240000039
【弁護士】
【氏名又は名称】弁護士法人 衞藤法律特許事務所
(72)【発明者】
【氏名】岡崎 直宣
(72)【発明者】
【氏名】油田 健太郎
(72)【発明者】
【氏名】山場 久昭
(72)【発明者】
【氏名】市元 祐弥
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2008-262549(JP,A)
【文献】特開2008-052727(JP,A)
【文献】特開2011-013973(JP,A)
【文献】特開2016-126526(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/30
(57)【特許請求の範囲】
【請求項1】
ネットワークを介してユーザが人間かどうかを判定する方法であって、ランダムドットパターンが表示された基礎レイヤー、該基礎レイヤーとは異なるランダムドットパターンが表示された少なくとも1つの前景レイヤーを生成する段階と、ランダムな文字列が表示されたレイヤーを生成する段階と、
前記基礎レイヤー、前記文字列が表示されたレイヤー、前記前景レイヤーを重ね、各レイヤーが夫々のレイヤーに表示されたランダムドットパターンの異なる方向に移動する動画をフレーム画像として表示する段階を備え、
前記フレーム画像の文字列を解答させることを特徴とするランダムドットパターンCAPTCHAを用いたアクセス認証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Webサービスに対する自動プログラムを用いた不正行為を防止するCAPTCHA技術に関するものである。
【背景技術】
【0002】
近年、ボットと呼ばれる自動プログラムを用い、Webサービスからメールアドレスを大量取得してそれらにSPAMメールを送信する、もしくはWebサービスにアクセスするアカウントやパスワードを取得してユーザになりすましてアクセスするなど、いわゆるスパムボット等による不正行為が問題視されている。
【0003】
このような問題を防止するために、CAPTCHA(Com-pletely Automated Public Turingtest to tell Computers and Humans Apart)と呼ばれ、人間と自動プログラムを識別する方式が開発されている。CAPTCHAは、チャレンジ/レスポンス型テストの一種で、人間には容易に解答できるものの自動プログラムでは解答が困難な問題をユーザに出題し、正解した場合にユーザを人間と識別する技術である。
【0004】
多くのWebサービス提供サイトでは、マルウェアによる攻撃を防ぐ手段として文字列CAPTCHAや画像CAPTCHA(図5参照) が多く採用されている。文字列CAPTCHAには、Gimpy[7]、EZ-Gimpy[7]、r-Gimpy[8]、reCAPTCHA[9]など種々の方式が提案されている。Gimpyは、例えば異なる単語を重複させて1セットとして画像の中に5セット表示させ、複数表示された単語の中から3つを解答させる文字列CAPTCHAである。EZ-Gimpy及びr-Gimpyは、このGimpyを単純化させたもので、1つの単語或いはアルファベットと数字をランダムに並べた文字列の画像を歪ませて表示し、その解答をテキストボックスに入力させる文字列CAPTCHAである。reCAPTCHAは、新聞紙の記事や本の電子書籍化を行う際にOCRソフトウェアが読み取れなかった文字画像を認証手順の一部に導入し、人間(ユーザ)に解読させて電子書籍化とセキュリティの両方に利用する文字列CAPTCHAである。文字列CAPTCHAのメリットとして、Webサイトへの取り入れ易さと、ボットによる総当たり攻撃に高い耐性を有する点が挙げられる。
【0005】
しかしながら、近年のOCR(光学文字認識)技術や機械学習(AI)技術の向上により、従来の文字列CAPTCHAは、容易に突破され易くなるため、より高度なCAPTCHAが求められている。そこで、無意味な情報の中からその都度生成した意味を利用する手法が非特許文献1により提案されている。より詳しくは、無意味な情報としてランダムドットの背景を用い、その背景上をランダムドットから構成される正解パターンを1フレーム毎に移動させる手法である。この手法は、図6に示すように、ランダムドットの背景上をランダムドットから構成される正解パターンが1から2へ移動する出題動画をユーザが視認した後、正解パターンと思われる座標を入力する操作を行うことで正誤判定を行い、正しい座標が入力されていれば人間とみなすものである。
【0006】
ゲシュタルト心理学における「共通運命の法則」によれば、人間の脳は、同時に発生し同じような経緯で変化している複数のものをひとまとまりのものとして認識する機能を備えていることが知られている。すなわち、人間であれば、図2中の1から2へ移動するランダムドットを、一つのまとまりとして認識可能で、人間こそがランダムドット背景から正解パターンを容易に認知して選択可能であり、人間とボットの区別を行うことができる。
【先行技術文献】
【非特許文献】
【0007】
【文献】グエンスアンギア,外5名,「SNOW NOISE CAPTCHA:無意味な情報を利用した動画CAPTCHAの提案」,研究報告コンピュータセキュリティ,2014-CSEC-64,29号,2014年2月発行
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献1に記載されたCAPTCHAは、自動プログラムにより、動画から複数の静止画フレームを抽出し、それらの静止画フレームの差分を利用して正解パターンの位置や形状を解析できるという脆弱性があった。また、出題動画と同じウインドウ中に正解パターンの領域が存在するため、ボットを利用した総当たり攻撃による偶然突破が懸念される。
【0009】
本発明は、上記の課題に鑑みなされたものであり、自動プログラムによる解析が困難、かつ総当たり攻撃による偶然突破を防ぐことができる、人間の持つ移動物体の認識能力を活用したランダムドットパターンCAPTCHAを提供することを目的とする。
【課題を解決するための手段】
【0010】
このため本発明のCAPTCHAは、ランダムドットパターンが表示された基礎レイヤーと、ランダムな文字列が表示されたレイヤーと、前記基礎レイヤーとは異なるランダムドットパターンが表示された0以上の任意の数の前景レイヤーを重ね、各レイヤーが夫々別方向に移動する動画をフレーム画像として表示することを第一の特徴とする。
【0011】
また、前記0以上の任意の数の前景レイヤーが互いに異なるランダムドットパターンを表示していることを第二の特徴とする。
【0012】
そして本発明のランダムドットパターンCAPTCHAを用いたアクセス認証方法は、ネットワークを介してユーザが人間かどうかを判定する方法であって、ランダムドットパターンが表示された基礎レイヤー、該基礎レイヤーとは異なるランダムドットパターンが表示された0以上の任意の数の前景レイヤーを生成する段階と、文字列からなるレイヤーを生成する段階と、前記基礎レイヤー、前記文字列からなるレイヤー、前記0以上の任意の数の前景レイヤーを重ね、各レイヤーが夫々別方向に移動する動画をフレーム画像として表示する段階を備え、前記フレーム画像の文字列を解答させることを特徴とする。
【発明の効果】
【0013】
本発明は、以下の優れた効果を有する。
(1)本発明は、Webサービスに用いられるユーザ認証技術の分野に広く対応することができる。
(2)ユーザの操作負担は少ないうえに、ボット等の機械的ログインプログラムによる機械的な認証要求を拒否することができる。
(3)人間の持つ移動物体の認識能力を利用するため、人間とボットを確実に区別でき、ひいては提供されるWebサービスの安全性と信頼性の向上を図ることができる。
【図面の簡単な説明】
【0014】
図1】本発明におけるランダムドットパターンCAPTCHAのコンセプトを示す図である。
図2】本発明におけるランダムドットパターンCAPTCHAのレイヤー構造と各レイヤーにおけるランダムドットの動きを示す図である。
図3】本発明におけるランダムドットパターンCAPTCHAの認証手順を示すフローチャートである。
図4】本発明におけるランダムドットパターンCAPTCHAのオプティカルフローに対する耐性検証を示す図である。
図5】従来の文字列CAPTCHAと画像CAPTCHAを示す図である。
図6】従来のSNOW NOISE CAPTCHAを示す図である。
図7】本発明の実施例に係る認証システムをネットワーク化システムに搭載した一例を示す説明図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明におけるランダムドットパターンCAPTCHAの実施の形態について説明する。本発明におけるランダムドットパターンCAPTCHAは、無意味な情報の中からその都度生成した意味を利用するというアプローチを基に、文字列CAPTCHAをベースとした設計を行い、ランダムドット上に浮かび上がる文字列を判読できるか否かでユーザが人間かボットかを判断するものである。
【0016】
図1は、本発明におけるランダムドットパターンCAPTCHAのコンセプトを示す図で、CAPTCHAの1フレームを切り取ったものである。ここで、図1中のスタート位置とは、CAPTCHAが開始され、文字が表示され始める位置、現在位置とは、フレーム抜き取り時に表示される文字列の位置をいう。また図1中の白波線は、表示される文字列が移動する軌跡を表したものである。図1に示すように、ランダムドットパターンの背景上で白抜きの文字列を移動させるだけでは、幾フレームかを抽出し、それらの差分を利用することで文字列を容易に判読することができ、不正行為を防止することができない。
【0017】
そこで、本発明においては、基礎レイヤーとなる背景と文字列が表示されたレイヤーに透過したランダムドットパターンの前景を重ねて表示し、妨害オブジェクトとしての役割を担わせることで、表示される文字列の難読化を図った。CAPTCHAの開発言語は、JavaScript(登録商標)を利用したが、とくに限定するものではなく、多数のプログラミング言語、例えば、C、C++、C#、Objective C、Java(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Delphi(登録商標)、Flash(登録商標)、または他のプログラミング言語などのいずれか1つが利用され得る。
【0018】
ランダムドットパターンは、画素を2分の1の確率で黒か白のドットで埋め尽くしたものであり、明色時(R,G,B)=(255,255,255)、暗色時(R,G,B)=(0,0,0)の2色どちらかに画素がランダムとなるよう構成した。CAPTCHAは、HTML5のcanvas要素として描画する方法を取り、図2(A)に示すように、背景となるランダムドットパターンの基礎レイヤー11を最背面として、表示する文字列のレイヤー12、妨害用の透過したランダムドットパターンの前景レイヤー13を任意のn枚重ねて描画している。図2(B)に示すように、例えば前景レイヤー13を2枚重ねた場合は、前景レイヤー13a,13bの透過度は、0.4とし、互いのレイヤーは、ランダムドットパターンが異なる方向に移動するよう構成した。文字列のレイヤー12が適度に認識できれば良いため、必ずしも前景レイヤー13を設ける必要はなく、また透過度の高い(もしくは初期値=0となる)前景レイヤー13を複数枚重ねても良い。したがって、前景レイヤー13の枚数は限定されるものではなく、前景レイヤー13は、0以上の任意の枚数であれば良い。
【0019】
次いで、本発明におけるランダムドットパターンCAPTCHAを用いた認証手順について説明する。認証手順は、図3に示すように、CAPTCHAプログラムが動作を開始(S1)すると、背景用のランダムドットパターン、表示される文字列用のランダムドットパターン、妨害用の2種類のランダムドットパターンが夫々生成(S2)され、任意の文字を組み合わせた文字列が作成(S3)される。生成されたランダムドットと文字列は、夫々が図2に示す各レイヤー11,12,13a,13b上に展開され、各レイヤー及び文字列が別方向に移動する動画をユーザにフレーム画像として表示(S4)する。ユーザが表示されている文字列をあらかじめ指定されたテキストボックスに入力(S5)し、解答送信用のボタンをクリックすることで解答した後、ユーザが入力した文字列と表示されている文字列が完全に一致している否かを判定(S6)し、終了(S7)となる。
【0020】
ランダムドットパターンを用いて文字列や背景を生成し、図2に示す基礎レイヤー11と文字列のレイヤー12のみとすることで、フレーム画像中の1フレームを静止画として切り取ったとしても、ランダムドットパターン柄の文字列が、ランダムドットパターン柄の背景に紛れて認識できず、フレーム画像のみから正解となる文字列を抽出することができなくなる。しかしながらこの場合、2フレームを抽出し、その差分を利用することでレイヤー12上の文字列を発見する手法や、オプティカルフローと呼ばれ、画素単位の物体の動きをベクトルで表し、表示される文字列の動きを追跡することで文字の形を抽出する手法を用い、これらの手法により抽出した文字列の形にOCRを適用することで、自動プログラムによる文字の判読が可能となり、ボットによる総当たり攻撃に高い耐性を有するとは言い難い。
【0021】
そこで、本発明においては、背景や表示される文字列とは異なるパターンのランダムドットパターンで前景レイヤーを生成し、背景や表示される文字列と重ねて表示して前景レイヤーを妨害オブジェクトとして機能させることで、前記した攻撃手法では判読できないよう構成した。前景レイヤーの機能性を確かめるため、妨害用の前景レイヤーを加える前と後でオプティカルフローによる文字の解読が可能か否かを検証した。前景レイヤーを加える前にオプティカルフローを適用したものが図4(A)であり、前景レイヤーを加えた後にオプティカルフローを適用したものが図4(B)である。図4(A)に示す楕円で囲む位置には、文字の位置が特定できてしまい、文字を判読される可能性がある。一方、図4(B)では、文字の位置を特定することすらできなくなった。よって、本発明におけるランダムドットパターンCAPTCHAが、オプティカルフローを用いた攻撃に高い耐性を有することが示された。
【0022】
<評価実験>
本発明におけるランダムドットパターンCAPTCHAがユーザにとって解答可能なものであるかなど実用性について検証した。概略は、被験者20名にCAPTCHAを10回解答してもらい、正答率や所要時間の測定を行った後、アンケート調査を行い、SUS(System Usability Scale)を用いて評価した。
【0023】
被験者は、学生20名で、一通りの操作手順を説明した。操作手順としては、出題動画中に表示される文字列を判読してもらい、指定のテキストボックスに入力後、解答送信ボタンをクリックするよう指示した。被験者が解答する出題動画は、出題動画ごとにランダムドットパターン及び文字列を自動生成したものを使用した。所要時間は、出題動画が表示されてから解答送信ボタンをクリックするまでの時間を記録した。また、アンケート調査の項目は下記の10項目とした。
(1)このCAPTCHAをしばしば利用したいと思う。
(2)このCAPTCHAを利用するには説明が必要となるほど複雑であると感じた。
(3)このCAPTCHAは容易に使いこなす事ができると思った。
(4)このCAPTCHAを利用するのに専門家のサポートが必要だと感じる。
(5)このCAPTCHAにあるコンテンツやナビゲーションは十分に統一感があると感じた。
(6)このCAPTCHAでは一貫性がないところが多々あったと感じた。
(7)たいていの人は、このCAPTCHAの利用方法をすぐに理解すると思う。
(8)このCAPTCHAはとても操作しづらいと感じた。
(9)このCAPTCHAを利用できる自信がある。
(10)このCAPTCHAを利用し始める前に知っておくべきことが多くあると思う。
アンケート調査の奇数項目は、ポジティブな内容の質問、偶数項目はネガティブな内容の質問となっており、項目ごとに0から4の5段階のスコアで回答してもらった。
【0024】
SUSの集計方法は、下記の方法により集計しスコアを求めた。
<集計方法>
アンケート項目10項目について、奇数項目はスコアから1を引き、偶数項目は5からスコアを引く処理を行い、算出した数値を合計して2.5倍し、0から100のスケールへ変換する。各項目のスコアをN1からN10とすると、合計スコアSは下記式で表した。
【0025】
【数1】
SUSは、平均スコアが68とされており、スコアが高いほどシステムとして良好な評価とされる。ユーザビリティに優れた上位10%に入るには、80.3を超えるスコアが必要とされている。
【0026】
検証において実行環境は、下記の通りである。
OS:Windows(登録商標)10(64bit)
CPU:Intel(R)Core(TM)i7-4770S CPU@3.10GHz
メモリ:8GB
解像度:1,920×1,200
【0027】
<実験結果>
被験者20名が10回ずつ、本発明に係るCAPTCHAを解答し、合計200個のデータから得られた平均正答率、平均所要時間、最大所要時間、最小所要時間とともに、SUSによるユーザビリティ評価の平均スコアを表1に示す。
【表1】
被験者20名、計200回の解答において、5回が不正解と判定されたものの、平均正答率は97.5%と高い正答率を得ている。その主な理由は、表示された文字をそれと似た文字(例えば、「i」と「l」など)と読み間違えて回答を送信したためであった。尚、正答率や所要時間は、表示された文字列の文字数、動き方やスピード、ランダムドットパターンのサイズなどパラメータに依存するものと考えられる。
<ユーザビリティ評価>
表1に示すように、アンケート調査の平均SUSスコアは89で、上述した優れたユーザビリティを示すスコア80.3を超える結果となった。したがって、本発明によるCAPTCHAは、実用的であると言える。
【0028】
<実施例>
図7は、本発明によるCAPTCHAをネットワーク化システムに搭載した一例を示すものである。図7に示すように、少なくとも1つのサーバ21と、ネットワーク22と、少なくとも1つの入力端末23から構成されている。サーバ21は、上述した認証サービスを提供するものであり、とくに限定されるものではなく、任意のコンピューティングデバイスおよびそのコンポーネント、またはそのいずれかであっても良い。サーバ21のコンピューティングデバイスのハードウェア構成は、既知であるため、その詳細な説明は省略する。サーバ21は、図7に示すように、ランダムな文字列やランダムドットパターンの背景を生成し、ユーザに表示する表示制御部211と、ユーザが入力した解答を受け付け可能な入力受付部212と、ユーザが入力した文字列と表示されている文字列が完全に一致している否かを判定する判定部213を備えている。
【0029】
ネットワーク22は、サーバ21と入力端末23を、有線又は無線方式により通信可能に接続するものであり、例えば、インターネット、イントラネット、広域ネットワーク、パーソナルネットワーク等が挙げられ、そのいずれかであれば良い。
【0030】
入力端末23は、ユーザが所有するコンピューティングデバイスであり、例えば、パーソナルコンピュータや、携帯電話機、PDA、フィーチャーフォン、スマートフォン、タブレットコンピュータ及びその他のインテリジェントデバイスが該当するが、これらに限られるものではない。
【0031】
なお、本発明においてランダムドットパターンは、画素を2分の1の確率で黒か白のドットで埋め尽くしたものを作成したが、例えばコントラストが明瞭となる異なる色(またはRGB値)の組合せでランダムドットパターンを形成しても良く、ランダムドットパターンの色は限定されるものではない。
【符号の説明】
【0032】
11 基礎レイヤー
12 文字列のレイヤー
13 前景レイヤー
21 サーバ
22 ネットワーク
23 入力端末
211 表示制御部
212 入力受付部
213 判定部
図1
図2
図3
図4
図5
図6
図7