JP2016091289A - 認証プログラム、認証方法、及び認証装置 - Google Patents

認証プログラム、認証方法、及び認証装置 Download PDF

Info

Publication number
JP2016091289A
JP2016091289A JP2014224875A JP2014224875A JP2016091289A JP 2016091289 A JP2016091289 A JP 2016091289A JP 2014224875 A JP2014224875 A JP 2014224875A JP 2014224875 A JP2014224875 A JP 2014224875A JP 2016091289 A JP2016091289 A JP 2016091289A
Authority
JP
Japan
Prior art keywords
image
authentication
character string
images
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014224875A
Other languages
English (en)
Other versions
JP6330625B2 (ja
Inventor
幸輝 澤村
Koki Sawamura
幸輝 澤村
西尾 仁
Hitoshi Nishio
仁 西尾
伸悟 有長
Shingo Arinaga
伸悟 有長
俊数 榎本
Toshikazu Enomoto
俊数 榎本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014224875A priority Critical patent/JP6330625B2/ja
Publication of JP2016091289A publication Critical patent/JP2016091289A/ja
Application granted granted Critical
Publication of JP6330625B2 publication Critical patent/JP6330625B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

【課題】特定の人間以外のアクセス元による認証の困難性を高めること。
【解決手段】アクセス元の認証を行う際、画像PCTと文字列STRとを対応付けて記憶する記憶手段30から読み出した複数の画像PCTを表示手段11に選択可能に表示させる表示制御部21と、表示された複数の画像PCTに対する選択を受け付ける受け付け部22と、複数の画像PCTに対する選択の順序が、選択された画像PCTと対応付けられた文字列STRの最後尾から所定文字数分の文字と、選択された画像PCTの次に選択された画像PCTと対応付けられた文字列STRの先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する判定部23とを有する、認証装置20が提供される。
【選択図】図1

Description

本発明は、認証プログラム、認証方法、及び認証装置に関する。
ネットワークに接続されたコンピュータに対する不正アクセスの防止や秘匿性の高いデータへの不正アクセスの防止などを目的として広く認証システムが利用されている。認証システムが利用する認証方式の1つとしてチャレンジレスポンス型テスト(以下、CRテスト)がある。CRテストは、ユーザから認証要求を受けた認証システムがユーザに問題を出題し(チャレンジ)、ユーザの解答(レスポンス)が正しい場合に認証システムへのアクセスを承認(認証成功)するという仕組みである。
CRテストの1つにCAPTCHAと呼ばれる方式がある。現在広く利用されているCAPTCHAは、文字列を歪ませ、背景を迷彩色にした画像をユーザに提示し、その文字列をユーザに入力させ、入力された文字列が正しい場合に認証成功と判定する。歪んだ文字列が迷彩色の背景に紛れて表示されるため、その文字列をコンピュータプログラムが自動的に読み取ることは難しい。そのため、人間に代わって作業を行うコンピュータプログラム(以下、ボット)を利用して繰り返し認証システムへアクセスする攻撃(例えば、アカウントの大量取得など)を防止することができる。
特開2009−175988号公報
CAPTCHAを用いた認証技術の改良も日々行われているが、一方でボットの性能も向上している。高性能なボットに対抗するために文字列の歪みを大きくし、背景を複雑化する対策がとられた結果、人間にとっても文字列の判読が困難なものとなり、正しく文字列を入力することができずに何度も認証に失敗することがある。他方、賃金の安い地域の労働者を多数雇用して人海戦術で認証システムに攻撃する方式(リレーアタック)も問題化しており、人間が認識可能な範囲で文字列の歪みや背景の複雑さを大きくするだけでは攻撃耐性が向上しにくい。
そこで、1つの側面によれば、本発明の目的は、特定の人間以外のアクセス元による認証の困難性を高めた認証プログラム、認証方法、及び認証装置を提供することにある。
本開示の1つの側面によれば、コンピュータに、アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、表示した複数の画像に対する選択を受け付け、複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する処理を実行させることを特徴とする、認証プログラムが提供される。
また、本開示の他の1つの側面によれば、コンピュータが、アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、表示した複数の画像に対する選択を受け付け、複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する処理を実行することを特徴とする、認証方法が提供される。
また、本開示の他の1つの側面によれば、アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示させる表示制御部と、表示された複数の画像に対する選択を受け付ける受け付け部と、複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する判定部とを有することを特徴とする、認証装置が提供される。
本発明によれば、特定の人間以外のアクセス元による認証の困難性を高めることができる。
第1実施形態に係る認証システムの一例を示した図である。 第2実施形態に係る認証システムの一例を示した図である。 第2実施形態に係る端末装置のハードウェアの一例を示した図である。 チャレンジレスポンス方式の認証処理の一例を示したシーケンス図である。 第2実施形態に係る端末装置の機能の一例を示したブロック図である。 第2実施形態に係る認証サーバの機能の一例を示したブロック図である。 第2実施形態に係る文字データベースの一例を示した図である。 第2実施形態に係る画像データベースの一例を示した図である。 第2実施形態に係る認証操作(画像を順番に選択)の一例を示した図である。 第2実施形態に係る認証操作(画像を解答欄に移動)の一例を示した図である。 第2実施形態に係る問題の作成処理(文字列IDリストの作成)の一例を示した図である。 第2実施形態に係る問題の作成処理(画像データの選択)の一例を示した図である。 第2実施形態に係る端末装置の動作の一例を示したフロー図である。 第2実施形態に係る移動軌跡のずれ量について説明するための図である。 第2実施形態に係る認証サーバの動作(全体)の一例を示したフロー図である。 第2実施形態に係る認証サーバの動作(問題作成)の一例を示したフロー図である。 第2実施形態の一変形例(変形例#1:2文字しりとり)に係る文字データベースの一例を示した図である。 第2実施形態の一変形例(変形例#2:最初の画像の指定なし)に係る端末装置の動作の一例を示したフロー図である。 第2実施形態の一変形例(変形例#2:最初の画像の指定なし)に係る認証サーバの動作(全体)の一例を示したフロー図である。 第2実施形態の一変形例(変形例#3:利用しない画像の表示)に係る問題表示の一例を示した図である。
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
<1.第1実施形態>
図1を参照しながら、第1実施形態について説明する。図1は、第1実施形態に係る認証システムの一例を示した図である。第1実施形態は、所謂「しりとり」を利用して認証を行う認証システムに関する。この認証システムは、画像に含まれる物体の名前を適切に並べると「しりとり」になるように複数の画像を選択して、該複数の画像をユーザに提示し、ユーザが正しく画像を並べることができた場合に認証成功と判定する。
第1実施形態に係る認証システムは、端末装置10、認証装置20、及び記憶手段30を含む。
端末装置10及び認証装置20は、例えば、パーソナルコンピュータやサーバ装置、或いは、スマートフォンやタブレット端末などのコンピュータである。記憶手段30は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの記憶装置である。また、記憶手段30は、複数の記憶装置を組み合わせたRAID(Redundant Array of Inexpensive Disks)装置やNAS(Network Attached Storage)装置などのストレージ装置であってもよい。
端末装置10は、表示手段11を有し、ネットワークNWを介して認証装置20と通信できる。ネットワークNWは、例えば、有線又は無線の通信回線、或いは、これらを組み合わせた通信回線により形成された通信網である。表示手段11は、例えば、LCD(Liquid Crystal Display)やELD(Electro-Luminescence Display)などのディスプレイ装置である。認証装置20は、記憶手段30に接続され、記憶手段30に格納されているデータを読み出すことや、記憶手段30にデータを書き込むことができる。記憶手段30は、認証装置20に内蔵されていてもよい。
認証装置20は、表示制御部21、受け付け部22、及び判定部23を有する。また、認証装置20は、RAM(Random Access Memory)などの揮発性記憶装置、或いは、HDDやフラッシュメモリなどの不揮発性記憶装置を有していてもよい。
表示制御部21、受け付け部22、及び判定部23は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。但し、表示制御部21、受け付け部22、及び判定部23は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路であってもよい。例えば、表示制御部21、受け付け部22、及び判定部23は、上記の不揮発性記憶装置や記憶手段30などのメモリに記憶されたプログラムを実行する。
図1に示すように、記憶手段30は、画像PCTと文字列STRとを対応付けて記憶する。図1には、画像PCTとして3つの画像Pic#1〜Pic#3が例示されている。Pic#1はカメラの画像である。Pic#2はイスの画像である。Pic#3はスイカの画像である。この場合、Pic#1に対応する文字列STRは「カメラ」である。同様に、Pic#2に対応する文字列STRは「イス」であり、Pic#3に対応する文字列STRは「スイカ」である。
記憶手段30は、例えば、文字列STRの先頭に位置する部分文字列(以下、先頭部分列)と末尾に位置する部分文字列(以下、末尾部分列)の組を画像PCTに対応付けて記憶してもよい。ここで言う部分文字列とは、所定文字数分の文字のことである。図1の例では所定文字数が1文字に設定されているが、所定文字数は2文字以上に設定されていてもよい。図1の例において、例えば、記憶手段30は、Pic#1に対応付けて文字列「カメラ」の先頭部分列「カ」と末尾部分列「ラ」の組(カ、ラ)を記憶してもよい。Pic#2、#3についても同様である。
表示制御部21は、認証装置20がアクセス元(例えば、端末装置10のユーザ)の認証を行う際、記憶手段30から読み出した複数の画像PCTを表示手段11に選択可能に表示させる。例えば、表示制御部21は、記憶手段30からPic#1〜#3を読み出し、読み出したPic#1〜#3を端末装置10に送信し、表示手段11(例えば、Webブラウザや専用ソフトウェアの表示領域)に表示させる。このとき、表示制御部21は、表示手段11に表示されたPic#1〜#3をユーザが選択できるようにする。
Pic#1〜#3は、Pic#2、Pic#3、Pic#1の順に並べると、対応する文字列が「イス」、「スイカ」、「カメラ」の順となり「しりとり」が成立する。一の文字列STRと他の文字列STRとの間で「しりとり」が成立するかどうかは、一の文字列STRの末尾部分列と、他の文字列STRの先頭部分列とが一致するかどうかで判断される(「しりとり」の論理)。そのため、表示制御部21は、各文字列STRの先頭部分列及び末尾部分列を参照して、上記「しりとり」が成立する文字列STRの組を選択し、選択した画像PCTの組み合わせを表示手段11に表示させる。
受け付け部22は、表示された複数の画像PCTに対する選択を受け付ける。例えば、受け付け部22は、ユーザがPic#1〜#3を選択した順序に関する情報を端末装置10から取得する。図1の例では、最初にPic#2が選択され、次いでPic#3が選択され、次いでPic#1が選択されている。この場合、受け付け部22は、順序に関する情報(Pic#2→Pic#3→Pic#1)を端末装置10から取得する。
なお、図中の符号Hは、ユーザがPic#1〜#3を選択するための操作体を表す。タッチパネルやタッチパッドによる操作の場合には操作体として人間の指やスタイラスペンなどが利用されうる。一方、マウスなどの入力インターフェースによる操作の場合には操作体として表示手段11上に表示されるポインタなどが利用されうる。
判定部23は、複数の画像PCTに対する選択の順序が「しりとり」になっている場合に認証成功と判定する。つまり、判定部23は、選択された画像PCTと対応付けられた文字列STRの最後尾から所定文字数分の文字と、選択された画像PCTの次に選択された画像PCTと対応付けられた文字列STRの先頭から所定文字数分の文字とが一致するか順次判定する。そして、判定部23は、選択された複数の画像PCTに対する選択の順序について、該判定でいずれも一致すると判定された場合に認証成功と判定する。
例えば、判定部23は、選択されたPic#2に対応する末尾部分列「ス」と、Pic#2の次に選択されたPic#3に対応する先頭部分列「ス」とが一致するか判定する。次に、判定部23は、Pic#3に対応する末尾部分列「カ」と、Pic#3の次に選択されたPic#1の先頭部分列「カ」とが一致するか判定する。この場合、いずれも一致するため、判定部23は、選択の順序が「しりとり」(イス→スイカ→カメラ)になっていると判断し、認証成功と判定する。
歪ませた文字列を複雑な背景上に表示してユーザに読み取らせ、その文字列を入力させて認証を行う方式(以下、通常方式)のCAPTCHAは、その性質上、攻撃耐性を高めると文字列の視認性が低下する。一方、第1実施形態に係る認証システムは、攻撃耐性の根拠を「しりとり」の論理に求め、表示内容の複雑さを根拠としていない。よって、第1実施形態に係る認証システムによれば、表示内容の視認性を確保し、入力操作の容易性を維持しながら攻撃耐性を向上することができる。
そもそも「しりとり」は言語に依存する。例えば、偶然の場合を除いて、日本語では「しりとり」が成立するが、英語では「しりとり」が成立しないことがほとんどである。そのため、同じ画像PCTの組が表示されたとしても、日本語圏の人間には容易に「しりとり」となる順番で画像PCTを選択できるが、英語圏の人間には「しりとり」となる順番で画像PCTを選択することは難しい。つまり、第1実施形態に係る認証システムによれば、特定の言語圏以外の人間に対して攻撃耐性を向上することができる。
第1実施形態に係る認証システムにおいて攻撃耐性をさらに向上させる変形例の1つとして、「しりとり」に使われない画像PCTを追加的に表示させる方法が考えられる。
例えば、図1の例において、「クルマ」の画像Pic#4(非図示)を表示したとしても、Pic#4は、Pic#1〜#3について成立する「しりとり」には使われない。画像PCTが「しりとり」に使われるかは、「しりとり」が容易に解ける人間にとって容易に判断できる。一方、表示される画像PCTの数が増加すれば、画像PCTを順に選択する「順列」の数が増加するため、画像PCTの選択順序を総当たり的に試すボットにとって難易度が増加する。つまり、攻撃耐性がさらに向上する。
他方、第1実施形態に係る認証システムにおいて入力操作の容易性を高める変形例の1つとして、最初に選択する画像PCTを予め表示する方法が考えられる。
例えば、最初に選択する画像PCTに「1」などの数字を表示する方法や、その画像PCTを選択不能な状態で表示した上で強調表示する方法などが考えられる。ユーザは、最初の画像PCTが予め選択されていることで「しりとり」を素早く行うことができる。また、「しりとり」に使われない画像PCTを追加的に表示させる上記方法と組み合わせることで、攻撃耐性と入力操作の容易性とのバランスを調整することもできる。
また、第1実施形態に係る認証システムにおいて攻撃耐性をさらに向上させる変形例の1つとして、先頭部分列と末尾部分列の組が同じ複数の画像PCTを用意し、認証を行う度に使う画像PCTをランダムに変更する方法が考えられる。
例えば、文字列「カメラ」の先頭部分列と末尾部分列の組は(カ、ラ)であるが、文字列「カステラ」の先頭部分列と末尾部分列の組も(カ、ラ)である。つまり、2つの文字列「カメラ」及び「カステラ」は、ある「しりとり」に一方が利用できれば、その「しりとり」に他方も利用できる。そのため、図1の例において、Pic#1の代わりに「カステラ」の画像PCTを表示しても、認証装置20は、同じ論理で認証の成否を判定できる。先頭部分列と末尾部分列の組が同じ複数の文字列STR及び画像PCTを対応付けて記憶手段30に格納しておけば、該変形例に係る方法が容易になる。
上記の方法を適用すると、同じ「しりとり」に対し、画像PCTの組み合わせに複数のバリエーションをもたせることができ、たまたま認証が成功した画像PCTの組み合わせを記憶して再度利用するような攻撃に対して耐性を強化することができる。また、画像PCTの組み合わせにバリエーションをもたせても、先頭部分列と末尾部分列の組に基づく「しりとり」の論理自体は変わらないため、認証装置20が行う主な処理に変更を加えずに上記の方法を適用できるという利点もある。
以上、第1実施形態について説明した。
<2.第2実施形態>
次に、第2実施形態について説明する。第2実施形態は、「しりとり」を利用して認証を行う認証システムに関する。この認証システムは、画像に含まれる物体の名前を適切に並べると「しりとり」になるように複数の画像を選択して、該複数の画像をユーザに提示し、ユーザが正しく画像を並べることができた場合に認証成功と判定する。
[2−1.認証システム]
図2は、第2実施形態に係る認証システムの一例を示した図である。
図2に示すように、第2実施形態に係る認証システムは、端末装置100、及び認証サーバ200を含む。端末装置100は、例えば、パーソナルコンピュータ、タブレット端末、スマートフォンなどのコンピュータである。認証サーバ200は、例えば、サーバ装置などのコンピュータである。端末装置100は、ネットワークを介して認証サーバ200と通信できる。ネットワークは、例えば、有線又は無線の通信回線、或いは、これらを組み合わせた通信回線により形成された通信網である。
以下、上記の認証システムにおけるアクセス元(端末装置100のユーザ)の認証を例に説明するが、第2実施形態に係る技術は、1台のコンピュータに対するログイン認証や、特定の処理に対する認証などへも応用可能である。こうした応用についても当然に第2実施形態の技術的範囲に属する。
[2−2.ハードウェア]
図3は、第2実施形態に係る端末装置のハードウェアの一例を示した図である。端末装置100は、第2実施形態に係る端末装置の一例である。
端末装置100が有する機能は、例えば、図3に示すハードウェア資源を用いて実現することが可能である。つまり、端末装置100が有する機能は、コンピュータプログラムを用いて図3に示すハードウェアを制御することにより実現される。
図3に示すように、このハードウェアは、主に、CPU902と、ROM(Read Only Memory)904と、RAM906と、ホストバス908と、ブリッジ910とを有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926とを有する。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
これらの要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
出力部918としては、例えば、CRT(Cathode Ray Tube)、LCD、PDP(Plasma Display Panel)、又はELDなどのディスプレイ装置が用いられる。また、出力部918として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部918は、情報を視覚的又は聴覚的に出力することが可能な装置である。
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、HDDなどの磁気記憶デバイスが用いられる。また、記憶部920として、SSDやRAMディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
ドライブ922は、着脱可能な記録媒体であるリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
接続ポート924は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS−232Cポート、又は光オーディオ端子など、外部接続機器930を接続するためのポートである。外部接続機器930としては、例えば、プリンタやカメラなどが用いられる。
通信部926は、ネットワーク932に接続するための通信デバイスである。通信部926としては、例えば、有線又は無線LAN(Local Area Network)用の通信回路、WUSB(Wireless USB)用の通信回路、光通信用の通信回路やルータ、ADSL(Asymmetric Digital Subscriber Line)用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークであり、例えば、インターネット、LAN、放送網、衛星通信回線などを含む。
以上、端末装置100のハードウェアについて説明したが、認証サーバ200が有する機能も図3に例示したハードウェアによって実現できる。そのため、認証サーバ200のハードウェアについては説明を省略する。
[2−3.認証処理の例]
第2実施形態に係る認証処理は、チャレンジレスポンス方式の認証処理を基本とする。そこで、チャレンジレスポンス方式の認証処理について、その概要を説明する。図4は、チャレンジレスポンス方式の認証処理の一例を示したシーケンス図である。
(S101)端末装置100は、認証処理の実行開始を要求するメッセージ(認証要求)を認証サーバ200に送信する。
(S102、S103)認証サーバ200は、受信した認証要求に応じてチャレンジデータを生成する。第2実施形態の場合、チャレンジデータは、ユーザに解答させる問題を示すデータである。認証サーバ200は、生成したチャレンジデータを端末装置100に送信する。つまり、認証サーバ200は、ユーザに問題を出題する。
(S104、S105)端末装置100は、受信したチャレンジデータに応じたレスポンスデータの入力を受け付ける。レスポンスデータは、チャレンジデータが示す問題に対する解答を示すデータである。端末装置100は、入力されたレスポンスデータを認証サーバ200に送信する。つまり、ユーザは、端末装置100を介して認証サーバ200の問い合わせに回答する。
(S106、S107)認証サーバ200は、レスポンスデータが示す解答の正誤を判定する。正解の場合、認証サーバ200は、認証結果(認証成功)を端末装置100に送信し、認証成功時の処理(例えば、アカウント発行やアクセス許可など)を実行する。一方、不正解の場合、認証サーバ200は、認証結果(認証失敗)を端末装置100に送信し、一連の認証処理を終了するか、再度S102以降の処理を実行する。
上記のように、認証サーバ200が端末装置100に対してチャレンジデータを送り、チャレンジデータに対する処理を端末装置100側で実行し、その処理結果をレスポンスデータとして認証サーバ200に返す方式を広くチャレンジレスポンス方式と言う。チャレンジレスポンス方式はチャレンジデータを毎回変更することができるため、レスポンスデータが盗聴されても、そのレスポンスデータを利用した不正な認証が成功する可能性が低く、盗聴に対する耐性が高いことが利点として挙げられる。
第2実施形態に係る認証処理は、さらに、ユーザに出題する問題を工夫し、人間なら簡単に正答できるが、コンピュータには正答が難しい問題をチャレンジとして利用する。但し、第2実施形態に係る認証処理は、人間なら誰でも簡単に正答できるわけではなく、特定の人間には簡単に正答できるが、それ以外の人間には正答することが難しい問題をチャレンジとして利用する。以下、第2実施形態に係る問題の生成方法、及びこれを利用した認証処理などについて、さらに説明する。
[2−4.端末装置の機能]
ここで、端末装置100の機能について説明する。図5は、第2実施形態に係る端末装置の機能の一例を示したブロック図である。
端末装置100は、入力部101、通信処理部102、及び表示部103を有する。
入力部101の機能は、上述した入力部916などを用いて実現できる。通信処理部102の機能は、上述した接続ポート924や通信部926などを用いて実現できる。表示部103の機能は、上述した出力部918などを用いて実現できる。また、端末装置100の制御やデータの保持などは、CPU902、RAM906、及び記憶部920などを用いて実現できる。
入力部101は、ユーザの入力を受け付ける。例えば、ユーザは、入力部101を介して、認証サーバ200へのアクセスを開始する指示を入力する。アクセス開始の指示の入力を受け付けた入力部101は、認証要求の送信命令を通信処理部102に入力する。認証要求に送信命令が入力された通信処理部102は、認証サーバ200に認証要求を送信する。通信処理部102は、認証要求に応じて認証サーバ200が送信したチャレンジデータを受信し、表示部103に入力する。
表示部103は、通信処理部102から入力されたチャレンジデータが示す問題を表示する。後述するように、第2実施形態に係るチャレンジデータは複数の画像データ及び各画像データに対応する画像IDを含む。画像IDは、画像データをそれぞれ特定するための識別情報である。チャレンジデータが示す問題は、複数の画像を「しりとり」順に並べることである。表示部103は、問題として、チャレンジデータに含まれる画像データを用いて画像を選択可能に表示する。また、入力部101は、各画像に対する選択操作を検知し、選択順を通信処理部102に入力する。
通信処理部102は、入力部101を介してユーザの入力操作を検知した場合や全ての画像が選択された場合に選択操作の完了と判定する。選択操作が完了した場合、通信処理部102は、レスポンスデータとして、画像の選択順序(例えば、画像IDと選択順序とを対応付けた情報)を認証サーバ200に送信する。
[2−5.認証サーバの機能]
次に、認証サーバ200の機能について説明する。図6は、第2実施形態に係る認証サーバの機能の一例を示したブロック図である。
認証サーバ200は、記憶部201、通信処理部202、問題作成部203、正誤判定部204、及び認証処理部205を有する。
記憶部201の機能は、上述したRAM906や記憶部920などを用いて実現できる。通信処理部202の機能は、上述した接続ポート924や通信部926などを用いて実現できる。問題作成部203、正誤判定部204、及び認証処理部205の機能は、上述したCPU902などを用いて実現できる。
記憶部201は、文字データベース201a及び画像データベース201bを有する。文字データベース201aは、チャレンジデータとして端末装置100に送信する問題に用いる文字列の情報が登録されたデータベースである。画像データベース201bは、当該問題に用いる画像データに関する情報が、文字データベース201aの文字列に対応付けて登録されたデータベースである。
図7は、第2実施形態に係る文字データベースの一例を示した図である。
図7に示すように、文字データベース201aには、文字列の情報として、文字列の先頭部分列と末尾部分列の組と、文字列IDとが対応付けて登録される。つまり、文字列IDは、対応する先頭部分列と末尾部分列とを有する任意の文字列を識別するための識別情報である。例えば、先頭部分列「あ」及び末尾部分列「い」に対応する文字列ID「0002」は、文字列「あさい」、「あこやがい」など、「あ」で始まり「い」で終わる任意の文字列に対応する。
図8は、第2実施形態に係る画像データベースの一例を示した図である。
図8に示すように、画像データベース201bには、画像データに関する情報として、画像データ自体と、画像データを特定する画像IDと、文字列IDとが対応付けて登録される。画像データベース201bに登録される文字列IDは、対応する画像データの画像に含まれる物体の名称を示す文字列に対応するものである。
例えば、「いす」の画像の画像データ(画像ID=P01)には、先頭部分列「い」と末尾部分列「す」の組に対応する文字列IDが対応付けられる。そのため、「カステラ」(画像ID=P02)と「カメラ」(画像ID=P03)のように、同じ先頭部分列と末尾部分列の組に対応する複数の画像データがある場合、複数の画像データに同じ文字列IDが対応付けられる。なお、画像ID「P04」は「スイカ」の画像の画像データに対応付けられている。
再び図6を参照する。通信処理部202は、端末装置100から認証要求を受信し、認証要求に応じて問題作成部203にチャレンジデータとなる問題の作成を要求する。
上記の要求を受けた問題作成部203は、文字データベース201aを参照し、対応する先頭部分列と末尾部分列との組について「しりとり」が成立する文字列IDの組み合わせを抽出する。問題作成部203が抽出する文字列IDの数(例えば、3以上)は予め設定されているものとする。また、問題作成部203は、画像データベース201bを参照し、抽出した文字列IDに対応する画像IDをそれぞれ1つずつ選択する。
問題作成部203は、文字列ID毎に選択した画像IDに対応する画像データを画像データベース201bから取得し、問題として、取得した画像データと画像IDとを通信処理部202に入力する。通信処理部202は、問題作成部203から問題として入力された画像データ及び画像IDをチャレンジデータとして端末装置100に送信する。また、問題作成部203は、「しりとり」が成立するように画像IDを並べる並び順の情報(以下、順序情報)を生成し、順序情報を正誤判定部204に入力する。
通信処理部202は、上記問題に対する解答を含むレスポンスデータを端末装置100から受信する。そして、通信処理部202は、受信したレスポンスデータに含まれる解答を正誤判定部204に入力する。解答は、ユーザが画像を選択した順序を示す情報(以下、選択情報)である。選択情報は、画像IDと選択順とを対応付けた情報である。
正誤判定部204は、通信処理部202から入力された選択情報が示す順序と、問題作成部203から入力された順序情報が示す並び順とが一致するか否かを判定する。両者が一致する場合、正誤判定部204は、解答が正解であると判定し、認証成功を示す判定結果を認証処理部205に入力する。一方、両者が一致しない場合、正誤判定部204は、解答が不正解であると判定し、認証失敗を示す判定結果を問題作成部203に入力する。
認証処理部205は、認証成功後に実行するように予め設定された処理を実行する。例えば、認証処理部205は、正誤判定部204から認証結果が入力された場合に、端末装置100に対してアカウントを発行するなどの処理を実行し、アクセス元のユーザに対してアクセスの許可を与える。
一方、認証失敗を示す判定結果が入力された問題作成部203は、新たに問題を作成し、通信処理部202を介して端末装置100に再びチャレンジデータを送信する。また、問題作成部203は、同じアクセス元に対してチャレンジデータを送信した回数をカウントし、カウント数が予め設定した回数(例えば、5回)より大きい場合、新たな問題を作成せず、同じアクセス元による認証要求を拒否してもよい。認証失敗を繰り返すアクセス元による認証を遮断することで、ボットなどによる不正な認証を効果的に回避することができる。
[2−6.認証操作の例]
次に、端末装置100を利用してユーザが行う認証操作の例について述べる。ここで例示する認証操作のインターフェースは一例であり、表示部103に選択可能に表示された各画像に対する選択順序を特定できる任意のものに第2実施形態の技術を適用することができる。以下の説明は、図7に例示した文字データベース201a、及び図8に例示した画像データベース201bの内容(P01、P03、P04)をもとに行う。
(画像を順番に選択する方式)
表示部103に表示された複数の画像をユーザが順番に選択する操作方法を例示する。図9は、第2実施形態に係る認証操作(画像を順番に選択)の一例を示した図である。
認証の際、表示部103には、問題を解くためのルール(つまり、「しりとり」順で選択すること。)と共に複数の画像が表示される(図9(A)参照)。最初に選択する画像(最初から選択済みとしてもよい。)が指定されていてもよい。この例では、1番目に選択する画像が、順序を表す順序表示によって指定されている。
ユーザは、1番目の画像に対応する文字列との間で、「しりとり」となる文字列に対応する画像を2番目の画像として選択する(図9(B)参照)。2番目の画像が選択されると、表示部103には、2番目に選択されたことを表す順序表示が表示される。同様に、ユーザは3番目の画像を選択する(図9(C)参照)。
最後の画像(この例では3番目の画像)が選択されると、表示部103には、選択結果を確定させ、その選択結果をレスポンスデータとして認証サーバ200に送信するための送信ボタンが表示される。送信ボタンが押下されると、レスポンスデータが端末装置100から認証サーバ200へと送信される。
図9に例示した方法によれば、画像を順次選択するだけで入力ができるため、入力操作が容易になる。通常方式のCAPTCHAの場合には文字を入力する操作が生じ、タッチパネルなどを利用する場合にソフトウェアキーボードを表示するなどの不便があったが、上記方法によれば、操作手順が少なく、直感的な操作が可能になるため、入力操作の容易性が高まる。
(画像を解答欄に移動する方式)
次に、表示部103に表示された複数の画像をユーザが解答欄に移動する操作方法を例示する。図10は、第2実施形態に係る認証操作(画像を解答欄に移動)の一例を示した図である。図10の例は、選択順序に対応する複数の解答欄を設け、ユーザが各解答欄に画像をドラッグ操作することで解答する方式を示している。
図9の場合と同様、表示部103には、選択対象となる複数の画像がルールと共に表示されている(図10(A)参照)。この例では、1番目に選択する画像が予め指定されており、最初から1番目の順序に対応する解答欄に入力されている。そこで、ユーザは、1番目の画像に対応する文字列との間で、「しりとり」となる文字列に対応する画像を2番目の順序に対応する解答欄にドラッグする(図10(B)参照)。同様に、ユーザは3番目の画像を解答欄にドラッグする(図10(C)参照)。
全ての画像(この例では3つの画像)が解答欄にドラッグされると、表示部103には、選択結果を確定させ、その選択結果をレスポンスデータとして認証サーバ200に送信するための送信ボタンが表示される。送信ボタンが押下されると、レスポンスデータが端末装置100から認証サーバ200へと送信される。
図10に例示した方法の場合も図9の例と同様、画像をドラッグするだけで入力ができるため、入力操作が容易になる。通常方式のCAPTCHAの場合には文字を入力する操作が生じ、タッチパネルなどを利用する場合にソフトウェアキーボードを表示するなどの不便があったが、上記方法によれば、操作手順が少なく、直感的な操作が可能になるため、入力操作の容易性が高まる。
[2−7.問題の作成処理]
次に、問題作成部203による問題の作成処理について、さらに説明する。問題の作成処理は、「しりとり」となるように文字列IDの組み合わせを抽出してリスト化する処理(文字列IDリストの作成)と、抽出された各文字列IDについて問題として利用する画像データを選択する処理とを含む。
(文字列IDリストの作成)
まず、文字列IDリスト(問題に用いる文字列IDのリスト)の作成について述べる。図11は、第2実施形態に係る問題の作成処理(文字列IDリストの作成)の一例を示した図である。
問題作成部203は、図11(A)のように、文字データベース201aの中から、「しりとり」の1番目に用いる文字列IDをランダムに選択する。そして、問題作成部203は、選択した文字列IDに対応する先頭部分列と同じ文字列を末尾部分列とする文字列IDを選択禁止にする(選択禁止設定)。
上記の選択禁止設定を行うことで、「しりとり」となる画像の並び順が一意に決まらなくなることを回避することができる。例えば、3つの文字列「トマト」、「トンボ」、「ボート」は、(1)「トンボ」→「ボート」→「トマト」、及び(2)「ボート」→「トマト」→「トンボ」の2通りの「しりとり」が成り立つ。そのため、最初に選択する画像を予め指定しない場合には正答が2つになる。2つの正答を許容すると正解する確率が2倍になるため、上記の選択禁止設定を行う方法の方が攻撃耐性が高い。
1番目の文字列IDを選択した問題作成部203は、図11(B)のように、1番目の文字列IDに対応する末尾部分列と同じ文字列を末尾部分列とする文字列IDをランダムに選択する。このとき、問題作成部203は、選択禁止に設定した文字列IDを選択しない。そして、問題作成部203は、選択した文字列IDに対応する先頭部分列と同じ文字列を末尾部分列とする文字列IDを選択禁止にする。
2番目の文字列IDを選択した問題作成部203は、図11(C)のように、2番目の文字列IDに対応する末尾部分列と同じ文字列を末尾部分列とする文字列IDをランダムに選択する。このとき、問題作成部203は、選択禁止に設定した文字列IDを選択しない。そして、問題作成部203は、選択した各文字列IDを文字列IDリストに登録し、各文字列IDと選択した順番とを対応付ける。
図11の例は3つの文字列IDを選択する場合を示しているが、4つ以上の文字列IDを選択する場合も同様である。また、文字列IDリストに文字列IDを登録するタイミングは、各文字列IDをそれぞれ選択したタイミングであってもよい。
(画像データの選択)
次に、画像データの選択について述べる。図12は、第2実施形態に係る問題の作成処理(画像データの選択)の一例を示した図である。
文字列IDリストを作成した問題作成部203は、図12に示すように、画像データベース201bから各文字列IDに対応する画像IDを探索する。検出された画像IDが1つの場合、問題作成部203は、検出された画像IDに対応する画像データを問題に利用する。一方、複数の画像IDが検出された場合、問題作成部203は、1つの画像IDをランダムに選択する。このとき、問題作成部203は、同じ文字列IDに対応する複数の画像IDの選択回数が平均化されるように画像IDを選択してもよい。
図12の例では、先頭部分列「か」と末尾部分列「ら」の組に対応する文字列ID「0264」に、「カステラ」の画像の画像データ(画像ID=P02)と「カメラ」の画像の画像データ(画像ID=P03)とが対応付けられている。この場合、問題作成部203は、文字列ID「0264」に対応する画像データとして、いずれか一方の画像データ(例えば、画像IDがP03の画像データ)を選択する。また、問題作成部203は、文字列IDリストを参照し、選択した画像IDと、その画像IDの選択に用いた文字列IDに対応する順番とを対応付けて順序情報を生成する。
上記の方法により問題作成部203が選択した画像データの集合は問題として利用され、チャレンジデータに含めて端末装置100に送信される。
[2−8.処理の流れ]
次に、端末装置100及び認証サーバ200が実行する処理の流れについて説明する。以下の説明は、図10に例示した認証操作のインターフェースを前提とする。
(端末装置の動作)
まず、端末装置100の動作に係る処理の流れについて説明する。
図13は、第2実施形態に係る端末装置の動作の一例を示したフロー図である。
(S201)ユーザは、入力部101を利用して認証開始の操作を行う。この操作に応じて通信処理部102は、認証の実施を求める認証要求を認証サーバ200に送信する。
(S202)通信処理部102は、認証要求に応じて認証サーバ200から送信されたチャレンジデータを受信する。チャレンジデータには、ユーザに出題する問題として用いる複数の画像データと各画像データに対応する画像IDとが含まれる。
(S203)表示部103は、問題として、チャレンジデータに含まれる複数の画像データを用いて複数の画像を選択可能に表示する。このとき、表示部103は、画像を「しりとり」順に並べるように促すメッセージを表示する(ルールの表示)。また、表示部103は、画像のドラッグ先となる解答欄を表示する。入力部101は、解答欄への画像の移動を監視する。
(S204)入力部101は、各画像をドラッグする際の操作体(指やスタイラスなど)の移動軌跡を監視する。つまり、入力部101は、ドラッグ対象の画像が操作体により選択されてから、画像が解答欄に達するまでの操作体(又は画像)の移動軌跡を検出し、検出した移動軌跡の情報を保持する。そして、入力部101は、図14に示すような方法で、検出した移動軌跡と、予め設定された基準線とのずれ量を計算する。
図14は、第2実施形態に係る移動軌跡のずれ量について説明するための図である。
基準線は、例えば、ドラッグ対象の画像と解答欄とを結ぶ直線である。また、ずれ量は、例えば、基準線と移動軌跡とで囲まれた領域の面積である。図14の例では、基準線と移動軌跡との間に複数の領域A1、A2、…、A6がある。この場合、入力部101は、領域A1、A2、…、A6の面積を計算し、計算した面積をずれ量として保持する。このとき、入力部101は、基準線の長さをずれ量に対応付けて保持する。
(S205)入力部101は、すべての解答が得られたか(解答欄が埋まったか)を判定する。すべての解答が得られた場合、処理はS206へと進む。一方、すべての解答が得られていない場合、処理はS204へと進む。
(S206)入力部101は、解答欄にドラッグされた画像毎に計算したずれ量から、単位移動距離あたりのずれ量(平均ずれ量)を計算する。つまり、入力部101は、計算したずれ量の合計値を基準線の合計長さで割って平均ずれ量を計算する。
ずれ量は、画像の表示位置と解答欄との距離に依存する。そのため、同じ画像の組み合わせを利用する場合でも、画像の表示位置をランダムに決める場合にはずれ量が毎回変化する。しかし、上記のように基準線の長さで平均することによって当該変化を抑制することができる。但し、画像の表示位置に関するずれ量の変化を誤差として許容できる場合、入力部101は、1画像毎のずれ量を計算し、そのずれ量を平均ずれ量としてもよい。
(S207)通信処理部102は、解答として、各解答欄にドラッグされた画像の画像ID及び画像の並び順をレスポンスデータに含めて認証サーバ200に送信する。
(S208)通信処理部102は、S206で計算した平均ずれ量を操作データとして認証サーバ200に送信する。なお、通信処理部102は、操作データをレスポンスデータに含めて認証サーバ200に送信してもよい。S208の処理が完了すると、図13に示した一連の処理は終了する。
(認証サーバの動作)
次に、認証サーバ200の動作に係る処理の流れについて説明する。
図15は、第2実施形態に係る認証サーバの動作(全体)の一例を示したフロー図である。
(S211)通信処理部202は、端末装置100から認証要求を受信する。
(S212)問題作成部203は、ユーザに解答させる問題を作成する。
問題作成部203は、文字データベース201aを参照し、対応する先頭部分列と末尾部分列とが「しりとり」となるように文字列IDの組み合わせを選択する。また、問題作成部203は、画像データベース201bを参照し、選択した各文字列IDに対応する画像データ及び画像IDを選択する。そして、問題作成部203は、上記「しりとり」をなすように並べた文字列IDの並び順で、画像IDと並び順とを対応付けた順序情報と、選択した複数の画像データとを問題として利用する。
(S213)通信処理部202は、問題作成部203が作成した問題を含むチャレンジデータを端末装置100に送信する(出題)。チャレンジデータには、複数の画像データ及び各画像データに対応する画像IDが含まれる。
(S214)通信処理部202は、端末装置100からレスポンスデータを受信する(回答)。レスポンスデータには、画像IDと選択順とを対応付けた選択情報が含まれる。
(S215)通信処理部202は、移動軌跡と基準線とのずれ量に関する操作データを端末装置100から受信する。
(S216)正誤判定部204は、順序情報が示す並び順と、選択情報が示す選択順とが一致するか否かを判定する。両者が一致する場合、正誤判定部204は、解答が正しいと判定する。一方、両者が一致しない場合、正誤判定部204は、解答が正しくないと判定する。解答が正しい場合、処理はS217へと進む。一方、解答が正しくない場合、処理はS212へと進む。
(S217)正誤判定部204は、操作データが示す平均ずれ量が閾値ThTrより大きいか否かを判定する。閾値ThTrは予め設定された値である。例えば、閾値ThTrは、複数の人間にドラッグ操作をさせて得た平均ずれ量の下限値(許容可能な誤差分のマージンを加味してもよい。)に設定される。平均ずれ量が閾値ThTrより大きい場合、処理はS218へと進む。一方、平均ずれ量が閾値ThTrより大きくない場合、処理はS212へと進む。
上記の判定は、人間による操作であるか、ボットによる操作であるかを判別する処理である。ボットの場合、画像の表示位置から解答欄の位置へと画像を移動する際に、ドラッグ操作が規則的(例えば、直線的)になることが予想される。逆に、人間の場合、規則的に操作しようとしても規則性(例えば、直線との一致)に乱れが生じる。つまり、ボットの場合には平均ずれ量が小さくなり、人間の場合には平均ずれ量が大きくなる。よって、上記の判定を行えば、ボットと人間との違いを判別することができる。
(S218)認証処理部205は、認証成功時の処理を実行する。例えば、認証処理部205は、端末装置100に対して認証成功を通知し、アカウントを発行してアクセスを許可する。S218の処理が完了すると、図15に示した一連の処理は終了する。
ここで、S212の処理について、さらに説明する。
図16は、第2実施形態に係る認証サーバの動作(問題作成)の一例を示したフロー図である。
(S221)問題作成部203は、文字データベース201aからランダムに文字列IDを1つ選択する(最初の文字列の選択)。
(S222)問題作成部203は、直前に選択した文字列IDの先頭部分列と同じ文字列の末尾部分列をもつ全ての文字列IDの選択を禁止する。
(S223)問題作成部203は、直前に選択した文字列IDの末尾部分列と同じ文字列の先頭部分列をもつ文字列IDをランダムに1つ選択する。このとき、文字データベース201aの中で選択が禁止されている文字列IDがある場合、問題作成部203は、禁止されていない文字列IDの中から文字列IDをランダムに1つ選択する。
(S224)問題作成部203は、所定数の文字列IDを選択し終えたか否かを判定する。所定数は、例えば、3以上の整数である。所定数の文字列IDを選択し終えている場合、処理はS225へと進む。一方、所定数の文字列IDを選択し終えていない場合、処理はS222へと進む。
(S225)問題作成部203は、選択した文字列IDをリスト化して文字列IDリストを作成する。文字列IDリストは、問題作成部203が選択した各文字列IDと、各文字列IDが選択された順番とが対応付けて登録されるリスト情報である。
(S226)問題作成部203は、画像データベース201bを参照し、文字列IDリストに登録された各文字列IDに対応する画像IDを1つずつ抽出する。1つの文字列IDに対して複数の画像IDが存在する場合、問題作成部203は、1つの画像IDをランダムに抽出する。また、問題作成部203は、抽出した画像IDに対応する画像データを画像データベース201bから抽出する。
(S227)問題作成部203は、S226で抽出した複数の画像IDと、各画像IDに対応する画像データとを問題として設定し、レスポンスデータに含める。S226の処理が完了すると、図16に示した一連の処理は終了する。
[2−9.変形例#1:2文字しりとり]
ここで、第2実施形態の一変形例(変形例#1)について説明する。
これまで、先頭部分列及び末尾部分列の文字数を1とする「しりとり」を例に説明を進めてきたが、文字数を2以上とする「しりとり」も実現可能である。つまり、m=1、2、3、…、M−1(Mは所定数)について、m番目の文字列のN文字(N≧2)の末尾部分列と、m+1番目の文字列のN文字の先頭部分列とが同じとなるM個の文字列は、N文字の「しりとり」となる。例えば、3つの文字列「よこはま」「はままつ」「まつもと」は、文字列「はま」「まつ」を介して2文字の「しりとり」をなす。
変形例#1は、N文字の「しりとり」に対して上述した第2実施形態に係る技術を適用するための変形に関する。主な変形部分は、文字データベース201aに登録される先頭部分列と末尾部分列の組にある。図17は、第2実施形態の一変形例(変形例#1:2文字しりとり)に係る文字データベースの一例を示した図である。Nが2の場合、文字データベース201aは、図17のように変形される。つまり、2文字を組み合わせた先頭部分列と末尾部分列の組が文字列IDに対応付けて文字データベース201aに登録される。文字数が3以上の「しりとり」に変形する場合も同様である。
[2−10.変形例#2:最初の画像の指定なし]
次に、第2実施形態の他の変形例(変形例#2)について説明する。
上記の説明の中で、「しりとり」の最初の文字列に対応する画像を指定する方法、及び該画像を指定しない方法について述べた。変形例#2は、最初の文字列に対応する画像を指定しない方法を採用する場合において、該画像が選択されるまでの時間(以下、解答時間)を利用して、アクセス元が人間であるか、ボットであるかを判別する仕組みを追加する変形に関する。さらに、変形例#2は、平均ずれ量の判定について、高性能なボットによる高度な攻撃に対処する仕組みを追加する変形を含む。変形例#2により攻撃耐性をさらに高めることができる。
(端末装置の動作)
変形例#2における端末装置100の動作に係る処理の流れについて説明する。
図18は、第2実施形態の一変形例(変形例#2:最初の画像の指定なし)に係る端末装置の動作の一例を示したフロー図である。
(S301)ユーザは、入力部101を利用して認証開始の操作を行う。この操作に応じて通信処理部102は、認証の実施を求める認証要求を認証サーバ200に送信する。
(S302)通信処理部102は、認証要求に応じて認証サーバ200から送信されたチャレンジデータを受信する。チャレンジデータには、ユーザに出題する問題として用いる複数の画像データと各画像データに対応する画像IDとが含まれる。
(S303)表示部103は、問題として、チャレンジデータに含まれる複数の画像データを用いて複数の画像を選択可能に表示する。このとき、表示部103は、画像を「しりとり」順に並べるように促すメッセージを表示する(ルールの表示)。また、表示部103は、画像のドラッグ先となる解答欄を表示する。入力部101は、解答欄への画像の移動を監視する。また、入力部101は、表示部103が問題を表示されたタイミングで解答時間の計時を開始する。
(S304)入力部101は、最初の解答が得られたか否かを判定する。つまり、入力部101は、「しりとり」の最初の文字列に対応する画像が解答欄にドラッグされたか否かを監視し、解答欄に画像がドラッグされた場合に最初の解答が得られたと判定する。最初の解答が得られた場合、処理はS305へと進む。一方、最初の解答が得られていない場合、S304の処理が繰り返されて入力部101による監視が継続される。
(S305)入力部101は、最初の解答が得られたタイミングで解答時間の計時を終了し、計時の開始から終了までの時間(解答時間)を計算する。
(S306)入力部101は、各画像をドラッグする際の操作体(指やスタイラスなど)の移動軌跡を監視する。つまり、入力部101は、ドラッグ対象の画像が操作体により選択されてから、画像が解答欄に達するまでの操作体(又は画像)の移動軌跡を検出し、検出した移動軌跡の情報を保持する。そして、入力部101は、図14に示したような方法で、検出した移動軌跡と、予め設定された基準線とのずれ量を計算する。
図18の例では移動軌跡の監視が最初の解答後に開始されているが、入力部101は、最初の解答時の移動軌跡も監視し、その移動軌跡についてずれ量を計算してもよい。この場合、移動軌跡の監視はS303で問題を表示した後に開始される。
(S307)入力部101は、すべての解答が得られたか(解答欄が埋まったか)を判定する。すべての解答が得られた場合、処理はS308へと進む。一方、すべての解答が得られていない場合、処理はS306へと進む。
(S308)入力部101は、解答欄にドラッグされた画像毎に計算したずれ量から、単位移動距離あたりのずれ量(平均ずれ量)を計算する。但し、画像の表示位置に関するずれ量の変化を誤差として許容できる場合、入力部101は、1画像毎のずれ量を計算し、そのずれ量を平均ずれ量としてもよい。
(S309)通信処理部102は、解答として、各解答欄にドラッグされた画像の画像ID及び画像の並び順をレスポンスデータに含めて認証サーバ200に送信する。
(S310)通信処理部102は、S305で計算した解答時間とS308で計算した平均ずれ量とを操作データとして認証サーバ200に送信する。なお、通信処理部102は、操作データをレスポンスデータに含めて認証サーバ200に送信してもよい。S310の処理が完了すると、図18に示した一連の処理は終了する。
(認証サーバの動作)
次に、変形例#2における認証サーバ200の動作に係る処理の流れについて説明する。
図19は、第2実施形態の一変形例(変形例#2:最初の画像の指定なし)に係る認証サーバの動作(全体)の一例を示したフロー図である。
(S311)通信処理部202は、端末装置100から認証要求を受信する。
(S312)問題作成部203は、ユーザに解答させる問題を作成する。
問題作成部203は、文字データベース201aを参照し、対応する先頭部分列と末尾部分列とが「しりとり」となるように文字列IDの組み合わせを選択する。また、問題作成部203は、画像データベース201bを参照し、選択した各文字列IDに対応する画像データ及び画像IDを選択する。そして、問題作成部203は、上記「しりとり」をなすように並べた文字列IDの並び順で、画像IDと並び順とを対応付けた順序情報と、選択した複数の画像データとを問題として利用する。
(S313)通信処理部202は、問題作成部203が作成した問題を含むチャレンジデータを端末装置100に送信する(出題)。チャレンジデータには、複数の画像データ及び各画像データに対応する画像IDが含まれる。
(S314)通信処理部202は、端末装置100からレスポンスデータを受信する(回答)。レスポンスデータには、画像IDと選択順とを対応付けた選択情報が含まれる。
(S315)通信処理部202は、解答時間及び平均ずれ量の情報を含む操作データを端末装置100から受信する。
(S316)正誤判定部204は、順序情報が示す並び順と、選択情報が示す選択順とが一致するか否かを判定する。両者が一致する場合、正誤判定部204は、解答が正しいと判定する。一方、両者が一致しない場合、正誤判定部204は、解答が正しくないと判定する。解答が正しい場合、処理はS317へと進む。一方、解答が正しくない場合、処理はS312へと進む。
(S317)正誤判定部204は、操作データが示す平均ずれ量が閾値ThTrより大きいか否かを判定する。閾値ThTrは予め設定された値である。例えば、閾値ThTrは、複数の人間にドラッグ操作をさせて得た平均ずれ量の下限値(許容可能な誤差分のマージンを加味してもよい。)に設定される。平均ずれ量が閾値ThTrより大きい場合、処理はS318へと進む。一方、平均ずれ量が閾値ThTrより大きくない場合、処理はS312へと進む。
(S318)正誤判定部204は、操作データが示す平均ずれ量が閾値ThOvより小さいか否かを判定する。閾値ThOvは予め設定された値である。例えば、閾値ThOvは、複数の人間にドラッグ操作をさせて得た平均ずれ量の上限値(許容可能な誤差分のマージンを加味してもよい。)に設定される。平均ずれ量が閾値ThOvより小さい場合、処理はS319へと進む。一方、平均ずれ量が閾値ThOvより小さくない場合、処理はS312へと進む。
高性能なボットは、人間の動きを模擬するように設計されている可能性がある。つまり、人間は完全に基準線に沿った規則的な動きで画像を移動させることができない点を考慮し、移動軌跡を曲線的にして基準線からずらすようにボットが設計される可能性が予測できる。他方、人間が行う操作によって生じる移動軌跡と基準線とのずれは、人間が意識して生じさせているわけではないから、それほど大きくはならない。そのため、平均ずれ量が大きくなるような動きは、ボットによるものと判別してもよいことが多い。よって、S318の判定を設けることで、ボットによる攻撃を排除できる可能性が高まる。
(S319)正誤判定部204は、操作データが示す解答時間が閾値ThFAより大きいか否かを判定する。閾値ThFAは予め設定された値である。例えば、閾値ThFAは、複数の人間に複数の問題を出題し、「しりとり」の最初の文字列に対応する画像を解答するまでに要した時間の下限値(許容可能な誤差分のマージンを加味してもよい。)に設定される。解答時間が閾値ThFAより大きい場合、処理はS320へと進む。一方、解答時間が閾値ThFAより大きくない場合、処理はS312へと進む。
上記の判定も、人間による操作であるか、ボットによる操作であるかを判別する処理である。人間の場合には最初の画像をどれにするかを考える時間が生じるが、ボットの場合には最初の画像がどれになるかを考えずに即座に画像を選択することが予想される。そのため、最初の画像の解答が得られるまでの時間が短い場合、ボットによる操作であると判別することができる。よって、上記の判定を行えば、ボットと人間との違いを判別することができる。
(S320)認証処理部205は、認証成功時の処理を実行する。例えば、認証処理部205は、端末装置100に対して認証成功を通知し、アカウントを発行してアクセスを許可する。S320の処理が完了すると、図19に示した一連の処理は終了する。
(その他)
上記の例では、平均ずれ量の大きさに注目してボットによる操作と人間による操作とを判別する仕組みを紹介したが、画像毎の平均ずれ量に注目して当該判別を行う仕組みも他の変形例として考えられる。
例えば、ボットの動きが規則的であることに注目し、画像毎の平均ずれ量のばらつき(例えば、差分平均や分散値など)が許容値より小さい場合にボットによる操作であると判定する仕組みが考えられる。許容値は、例えば、複数の問題について人間が行った操作により測定された平均ずれ量のばらつきの下限値(許容可能な誤差分のマージンを加味してもよい。)に設定される。この仕組みをS318の処理に代えて、或いは、S318の処理に併せて実行すれば、さらに攻撃耐性が高まる。
また、上記の例では、最初の画像に対する解答時間の長さに注目してボットによる操作と人間による操作とを判別する仕組みを紹介したが、人間は各画像の解答時に思考時間が生じるため、この思考時間の長さに注目して上記判別を実現する方法も考えられる。例えば、全ての解答を得るまでに要した時間から1問あたりの解答時間を計算し、計算した解答時間を閾値判定することでボットによる操作を判定する方法が考えられる。この方法で用いる閾値も実験的に得られた解答時間の下限値などに設定すればよい。
[2−11.利用しない画像の表示]
次に、第2実施形態のさらに他の変形例(変形例#3)について説明する。
これまで、表示部103に表示された全ての画像が問題の解答として利用される例を想定して説明を進めてきたが、問題の解答として利用しない画像を表示部103に表示するように変形することもできる。例えば、3つの文字列「イス」「スイカ」「カメラ」に対応する3つの画像が問題の解答である場合に、その解答にならない「クルマ」の画像を表示部103に表示する変形が可能である(図20参照)。
図20は、第2実施形態の一変形例(変形例#3:利用しない画像の表示)に係る問題表示の一例を示した図である。
選択肢となる画像の数がL、解答欄の数がKである場合、偶然に正解する確率Prは、下記の式(1)で与えられる。
Figure 2016091289
例えば、解答欄の数Kが5であり、全ての画像が解答に利用される場合(つまり、K=5、L=5の場合)、確率Prは1/120となる。また、解答に利用されない画像を3枚追加した場合(つまり、K=5、L=8)の場合、確率Prは1/6720となる。
解答に利用されない画像を見分けることは人間には容易であるため、人間にとっては確率Prの差ほどは難易度が上がらない。一方、全ての画像の組み合わせを試す総当たり方式で正答を求めるボットの場合、正答率は確率Prに比例する。そのため、解答に利用されない画像の追加は、ボットにとっての難易度を大きく高めることができる。よって、変形例#3の工夫を追加することで、人間にとっての解答容易性を大きく損なうことなく、ボットによる攻撃への耐性を高めることができる。
以上、第2実施形態について説明した。
上記説明では、日本語のひらがな(カタカナ)に基づく「しりとり」を前提としたが、英語のアルファベットに基づく「しりとり」、あるいは他の言語に基づく「しりとり」を利用して上述した認証システムを構築することも可能である。文字データベース201aの先頭部分列及び末尾部分列を変形し、画像データベース201bの対応付けを変形すれば、言語の変化にもさらに対応できる。3文字以上の「しりとり」への応用も同様である。このような変形例も当然に第2実施形態の技術的範囲に属する。
<3.付記>
以上説明した実施形態に関し、さらに以下の付記を開示する。
(付記1) コンピュータに、
アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、
表示した前記複数の画像に対する選択を受け付け、
前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する
処理を実行させることを特徴とする、認証プログラム。
(付記2) 前記選択は、前記画像を表示位置から所定位置へと移動する操作を含み、
前記コンピュータに、
前記移動の操作に規則性がある場合には認証失敗と判定する処理を実行させる
ことを特徴とする、付記1に記載の認証プログラム。
(付記3) 前記コンピュータに、
前記表示手段に表示された画像を最初に選択するまでの時間が所定時間より短い場合には認証失敗と判定する処理を実行させる
ことを特徴とする、付記1又は2に記載の認証プログラム。
(付記4) 前記コンピュータに、
選択可能な画像数よりも多い数の前記画像を前記表示手段に表示する処理を実行させる
ことを特徴とする、付記1〜3のいずれかに記載の認証プログラム。
(付記5) 前記所定文字数は1である
ことを特徴とする、付記1〜4のいずれかに記載の認証プログラム。
(付記6) 前記コンピュータに、
最初に選択する画像を特定するための情報を表示する処理を実行させる
ことを特徴とする、付記1〜5のいずれかに記載の認証プログラム。
(付記7) 前記コンピュータに、
前記選択の際に検出された移動軌跡が、前記表示位置と前記所定位置とを結ぶ直線である場合に規則性があると判定する処理を実行させる
ことを特徴とする、付記2に記載の認証プログラム。
(付記8) 前記コンピュータに、
前記選択の際に検出された前記移動軌跡と前記直線との差を表すずれ量が所定量より大きい場合には認証失敗と判定する処理を実行させる
ことを特徴とする、付記7に記載の認証プログラム。
(付記9) 前記ずれ量は、前記移動軌跡と前記直線とで囲まれた領域の総面積である
ことを特徴とする、付記8に記載の認証プログラム。
(付記10) コンピュータが、
アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、
表示した前記複数の画像に対する選択を受け付け、
前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する
処理を実行することを特徴とする、認証方法。
(付記11) アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示させる表示制御部と、
表示された前記複数の画像に対する選択を受け付ける受け付け部と、
前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する判定部と
を有することを特徴とする、認証装置。
(付記12) 付記1〜9のいずれかに記載の認証プログラムが格納された、コンピュータにより読み取り可能な記録媒体。
10 端末装置
11 表示手段
20 認証装置
21 表示制御部
22 受け付け部
23 判定部
30 記憶手段
NW ネットワーク
H 操作体
PCT 画像
STR 文字列

Claims (7)

  1. コンピュータに、
    アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、
    表示した前記複数の画像に対する選択を受け付け、
    前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する
    処理を実行させることを特徴とする、認証プログラム。
  2. 前記選択は、前記画像を表示位置から所定位置へと移動する操作を含み、
    前記コンピュータに、
    前記移動の操作に規則性がある場合には認証失敗と判定する処理を実行させる
    ことを特徴とする、請求項1に記載の認証プログラム。
  3. 前記コンピュータに、
    前記表示手段に表示された画像を最初に選択するまでの時間が所定時間より短い場合には認証失敗と判定する処理を実行させる
    ことを特徴とする、請求項1又は2に記載の認証プログラム。
  4. 前記コンピュータに、
    選択可能な画像数よりも多い数の前記画像を前記表示手段に表示する処理を実行させる
    ことを特徴とする、請求項1〜3のいずれか1項に記載の認証プログラム。
  5. 前記所定文字数は1である
    ことを特徴とする、請求項1〜4のいずれか1項に記載の認証プログラム。
  6. コンピュータが、
    アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、
    表示した前記複数の画像に対する選択を受け付け、
    前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する
    処理を実行することを特徴とする、認証方法。
  7. アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示させる表示制御部と、
    表示された前記複数の画像に対する選択を受け付ける受け付け部と、
    前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する判定部と
    を有することを特徴とする、認証装置。
JP2014224875A 2014-11-05 2014-11-05 認証プログラム、認証方法、及び認証装置 Active JP6330625B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014224875A JP6330625B2 (ja) 2014-11-05 2014-11-05 認証プログラム、認証方法、及び認証装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014224875A JP6330625B2 (ja) 2014-11-05 2014-11-05 認証プログラム、認証方法、及び認証装置

Publications (2)

Publication Number Publication Date
JP2016091289A true JP2016091289A (ja) 2016-05-23
JP6330625B2 JP6330625B2 (ja) 2018-05-30

Family

ID=56016924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014224875A Active JP6330625B2 (ja) 2014-11-05 2014-11-05 認証プログラム、認証方法、及び認証装置

Country Status (1)

Country Link
JP (1) JP6330625B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018077752A (ja) * 2016-11-11 2018-05-17 ヤフー株式会社 不正対策システム、および不正対策方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002023614A (ja) * 2000-07-06 2002-01-23 Nippon Signal Co Ltd:The 単語連想競技方式
JP2010067096A (ja) * 2008-09-11 2010-03-25 Ricoh Co Ltd 認証装置、認証方法、情報処理プログラム及び記録媒体
US8392975B1 (en) * 2008-05-29 2013-03-05 Google Inc. Method and system for image-based user authentication
JP2014038372A (ja) * 2012-08-10 2014-02-27 Sharp Corp 認証サーバ、認証システム、および認証方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002023614A (ja) * 2000-07-06 2002-01-23 Nippon Signal Co Ltd:The 単語連想競技方式
US8392975B1 (en) * 2008-05-29 2013-03-05 Google Inc. Method and system for image-based user authentication
JP2010067096A (ja) * 2008-09-11 2010-03-25 Ricoh Co Ltd 認証装置、認証方法、情報処理プログラム及び記録媒体
JP2014038372A (ja) * 2012-08-10 2014-02-27 Sharp Corp 認証サーバ、認証システム、および認証方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
可児潤也他: "4コマ漫画CAPTCHA", 情報処理学会 論文誌(ジャーナル) VOL.54 NO.9 [ONLINE], vol. 第54巻,第9号, JPN6018010769, September 2013 (2013-09-01), JP, pages 2232 - 2243, ISSN: 0003765897 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018077752A (ja) * 2016-11-11 2018-05-17 ヤフー株式会社 不正対策システム、および不正対策方法

Also Published As

Publication number Publication date
JP6330625B2 (ja) 2018-05-30

Similar Documents

Publication Publication Date Title
US10657243B2 (en) Variation analysis-based public turing test to tell computers and humans apart
US9922188B2 (en) Method and system of providing a picture password for relatively smaller displays
JP5969012B2 (ja) 画像ジェスチャー認証
EP3149645B1 (en) Device for entering graphical password on small displays with cursor offset
WO2019184122A1 (zh) 一种登录验证方法、装置、终端设备及存储介质
US20140173713A1 (en) Verification Code Generation and Verification Method and Apparatus
US10448247B2 (en) Method and apparatus for information verification
US9300659B2 (en) Method and system of providing a picture password for relatively smaller displays
US8549314B2 (en) Password generation methods and systems
WO2014089969A1 (zh) 一种验证码的生成验证方法、装置
US9304655B2 (en) Graphical user interface (GUI) that receives directional input to change face for receiving passcode
US20140157382A1 (en) Observable authentication methods and apparatus
EP3114601B1 (en) Access control for a resource
Guerar et al. Invisible CAPPCHA: A usable mechanism to distinguish between malware and humans on the mobile IoT
US20170132404A1 (en) 3D Pass-Go
US20160180073A1 (en) Captcha processing method and device, terminal and server
US20140282973A1 (en) Systems and methods for securely transferring authentication information between a user and an electronic resource
Alnfiai et al. BraillePassword: accessible web authentication technique on touchscreen devices
Zhao et al. An empirical study of touch-based authentication methods on smartwatches
Khamis et al. Passquerade: Improving error correction of text passwords on mobile devices by using graphic filters for password masking
JP6330625B2 (ja) 認証プログラム、認証方法、及び認証装置
JP5981663B2 (ja) 情報処理装置、情報処理方法、プログラム、記憶媒体及びパスワード入力装置
US11714891B1 (en) Frictionless authentication for logging on a computer service
JP2011154445A (ja) 認証装置、認証方法、および認証プログラム
CN111259369A (zh) 一种人机身份验证方法和系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180319

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180409

R150 Certificate of patent or registration of utility model

Ref document number: 6330625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150