(57)【特許請求の範囲】
【請求項１】
コンピュータに、
アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、
表示した前記複数の画像に対する選択を受け付け、
前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する
処理を実行させることを特徴とする、認証プログラム。
【請求項２】
前記選択は、前記画像を表示位置から所定位置へと移動する操作を含み、
前記コンピュータに、
前記移動の操作に規則性がある場合には認証失敗と判定する処理を実行させる
ことを特徴とする、請求項１に記載の認証プログラム。
【請求項３】
前記コンピュータに、
前記表示手段に表示された画像を最初に選択するまでの時間が所定時間より短い場合には認証失敗と判定する処理を実行させる
ことを特徴とする、請求項１又は２に記載の認証プログラム。
【請求項４】
前記コンピュータに、
選択可能な画像数よりも多い数の前記画像を前記表示手段に表示する処理を実行させる
ことを特徴とする、請求項１〜３のいずれか１項に記載の認証プログラム。
【請求項５】
前記所定文字数は１である
ことを特徴とする、請求項１〜４のいずれか１項に記載の認証プログラム。
【請求項６】
コンピュータが、
アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、
表示した前記複数の画像に対する選択を受け付け、
前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する
処理を実行することを特徴とする、認証方法。
【請求項７】
アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示させる表示制御部と、
表示された前記複数の画像に対する選択を受け付ける受け付け部と、
前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する判定部と
を有することを特徴とする、認証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証プログラム、認証方法、及び認証装置に関する。
【背景技術】
【０００２】
ネットワークに接続されたコンピュータに対する不正アクセスの防止や秘匿性の高いデータへの不正アクセスの防止などを目的として広く認証システムが利用されている。認証システムが利用する認証方式の１つとしてチャレンジレスポンス型テスト（以下、ＣＲテスト）がある。ＣＲテストは、ユーザから認証要求を受けた認証システムがユーザに問題を出題し（チャレンジ）、ユーザの解答（レスポンス）が正しい場合に認証システムへのアクセスを承認（認証成功）するという仕組みである。
【０００３】
ＣＲテストの１つにＣＡＰＴＣＨＡと呼ばれる方式がある。現在広く利用されているＣＡＰＴＣＨＡは、文字列を歪ませ、背景を迷彩色にした画像をユーザに提示し、その文字列をユーザに入力させ、入力された文字列が正しい場合に認証成功と判定する。歪んだ文字列が迷彩色の背景に紛れて表示されるため、その文字列をコンピュータプログラムが自動的に読み取ることは難しい。そのため、人間に代わって作業を行うコンピュータプログラム（以下、ボット）を利用して繰り返し認証システムへアクセスする攻撃（例えば、アカウントの大量取得など）を防止することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１７５９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＣＡＰＴＣＨＡを用いた認証技術の改良も日々行われているが、一方でボットの性能も向上している。高性能なボットに対抗するために文字列の歪みを大きくし、背景を複雑化する対策がとられた結果、人間にとっても文字列の判読が困難なものとなり、正しく文字列を入力することができずに何度も認証に失敗することがある。他方、賃金の安い地域の労働者を多数雇用して人海戦術で認証システムに攻撃する方式（リレーアタック）も問題化しており、人間が認識可能な範囲で文字列の歪みや背景の複雑さを大きくするだけでは攻撃耐性が向上しにくい。
【０００６】
そこで、１つの側面によれば、本発明の目的は、特定の人間以外のアクセス元による認証の困難性を高めた認証プログラム、認証方法、及び認証装置を提供することにある。
【課題を解決するための手段】
【０００７】
本開示の１つの側面によれば、コンピュータに、アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、表示した複数の画像に対する選択を受け付け、複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する処理を実行させることを特徴とする、認証プログラムが提供される。
【０００８】
また、本開示の他の１つの側面によれば、コンピュータが、アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、表示した複数の画像に対する選択を受け付け、複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する処理を実行することを特徴とする、認証方法が提供される。
【０００９】
また、本開示の他の１つの側面によれば、アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示させる表示制御部と、表示された複数の画像に対する選択を受け付ける受け付け部と、複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する判定部とを有することを特徴とする、認証装置が提供される。
【発明の効果】
【００１０】
本発明によれば、特定の人間以外のアクセス元による認証の困難性を高めることができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る認証システムの一例を示した図である。
【図２】第２実施形態に係る認証システムの一例を示した図である。
【図３】第２実施形態に係る端末装置のハードウェアの一例を示した図である。
【図４】チャレンジレスポンス方式の認証処理の一例を示したシーケンス図である。
【図５】第２実施形態に係る端末装置の機能の一例を示したブロック図である。
【図６】第２実施形態に係る認証サーバの機能の一例を示したブロック図である。
【図７】第２実施形態に係る文字データベースの一例を示した図である。
【図８】第２実施形態に係る画像データベースの一例を示した図である。
【図９】第２実施形態に係る認証操作（画像を順番に選択）の一例を示した図である。
【図１０】第２実施形態に係る認証操作（画像を解答欄に移動）の一例を示した図である。
【図１１】第２実施形態に係る問題の作成処理（文字列ＩＤリストの作成）の一例を示した図である。
【図１２】第２実施形態に係る問題の作成処理（画像データの選択）の一例を示した図である。
【図１３】第２実施形態に係る端末装置の動作の一例を示したフロー図である。
【図１４】第２実施形態に係る移動軌跡のずれ量について説明するための図である。
【図１５】第２実施形態に係る認証サーバの動作（全体）の一例を示したフロー図である。
【図１６】第２実施形態に係る認証サーバの動作（問題作成）の一例を示したフロー図である。
【図１７】第２実施形態の一変形例（変形例＃１：２文字しりとり）に係る文字データベースの一例を示した図である。
【図１８】第２実施形態の一変形例（変形例＃２：最初の画像の指定なし）に係る端末装置の動作の一例を示したフロー図である。
【図１９】第２実施形態の一変形例（変形例＃２：最初の画像の指定なし）に係る認証サーバの動作（全体）の一例を示したフロー図である。
【図２０】第２実施形態の一変形例（変形例＃３：利用しない画像の表示）に係る問題表示の一例を示した図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１３】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。図１は、第１実施形態に係る認証システムの一例を示した図である。第１実施形態は、所謂「しりとり」を利用して認証を行う認証システムに関する。この認証システムは、画像に含まれる物体の名前を適切に並べると「しりとり」になるように複数の画像を選択して、該複数の画像をユーザに提示し、ユーザが正しく画像を並べることができた場合に認証成功と判定する。
【００１４】
第１実施形態に係る認証システムは、端末装置１０、認証装置２０、及び記憶手段３０を含む。
端末装置１０及び認証装置２０は、例えば、パーソナルコンピュータやサーバ装置、或いは、スマートフォンやタブレット端末などのコンピュータである。記憶手段３０は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの記憶装置である。また、記憶手段３０は、複数の記憶装置を組み合わせたＲＡＩＤ（Redundant Array of Inexpensive Disks）装置やＮＡＳ（Network Attached Storage）装置などのストレージ装置であってもよい。
【００１５】
端末装置１０は、表示手段１１を有し、ネットワークＮＷを介して認証装置２０と通信できる。ネットワークＮＷは、例えば、有線又は無線の通信回線、或いは、これらを組み合わせた通信回線により形成された通信網である。表示手段１１は、例えば、ＬＣＤ（Liquid Crystal Display）やＥＬＤ（Electro-Luminescence Display）などのディスプレイ装置である。認証装置２０は、記憶手段３０に接続され、記憶手段３０に格納されているデータを読み出すことや、記憶手段３０にデータを書き込むことができる。記憶手段３０は、認証装置２０に内蔵されていてもよい。
【００１６】
認証装置２０は、表示制御部２１、受け付け部２２、及び判定部２３を有する。また、認証装置２０は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置を有していてもよい。
【００１７】
表示制御部２１、受け付け部２２、及び判定部２３は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、表示制御部２１、受け付け部２２、及び判定部２３は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路であってもよい。例えば、表示制御部２１、受け付け部２２、及び判定部２３は、上記の不揮発性記憶装置や記憶手段３０などのメモリに記憶されたプログラムを実行する。
【００１８】
図１に示すように、記憶手段３０は、画像ＰＣＴと文字列ＳＴＲとを対応付けて記憶する。図１には、画像ＰＣＴとして３つの画像Ｐｉｃ＃１〜Ｐｉｃ＃３が例示されている。Ｐｉｃ＃１はカメラの画像である。Ｐｉｃ＃２はイスの画像である。Ｐｉｃ＃３はスイカの画像である。この場合、Ｐｉｃ＃１に対応する文字列ＳＴＲは「カメラ」である。同様に、Ｐｉｃ＃２に対応する文字列ＳＴＲは「イス」であり、Ｐｉｃ＃３に対応する文字列ＳＴＲは「スイカ」である。
【００１９】
記憶手段３０は、例えば、文字列ＳＴＲの先頭に位置する部分文字列（以下、先頭部分列）と末尾に位置する部分文字列（以下、末尾部分列）の組を画像ＰＣＴに対応付けて記憶してもよい。ここで言う部分文字列とは、所定文字数分の文字のことである。図１の例では所定文字数が１文字に設定されているが、所定文字数は２文字以上に設定されていてもよい。図１の例において、例えば、記憶手段３０は、Ｐｉｃ＃１に対応付けて文字列「カメラ」の先頭部分列「カ」と末尾部分列「ラ」の組（カ、ラ）を記憶してもよい。Ｐｉｃ＃２、＃３についても同様である。
【００２０】
表示制御部２１は、認証装置２０がアクセス元（例えば、端末装置１０のユーザ）の認証を行う際、記憶手段３０から読み出した複数の画像ＰＣＴを表示手段１１に選択可能に表示させる。例えば、表示制御部２１は、記憶手段３０からＰｉｃ＃１〜＃３を読み出し、読み出したＰｉｃ＃１〜＃３を端末装置１０に送信し、表示手段１１（例えば、Ｗｅｂブラウザや専用ソフトウェアの表示領域）に表示させる。このとき、表示制御部２１は、表示手段１１に表示されたＰｉｃ＃１〜＃３をユーザが選択できるようにする。
【００２１】
Ｐｉｃ＃１〜＃３は、Ｐｉｃ＃２、Ｐｉｃ＃３、Ｐｉｃ＃１の順に並べると、対応する文字列が「イス」、「スイカ」、「カメラ」の順となり「しりとり」が成立する。一の文字列ＳＴＲと他の文字列ＳＴＲとの間で「しりとり」が成立するかどうかは、一の文字列ＳＴＲの末尾部分列と、他の文字列ＳＴＲの先頭部分列とが一致するかどうかで判断される（「しりとり」の論理）。そのため、表示制御部２１は、各文字列ＳＴＲの先頭部分列及び末尾部分列を参照して、上記「しりとり」が成立する文字列ＳＴＲの組を選択し、選択した画像ＰＣＴの組み合わせを表示手段１１に表示させる。
【００２２】
受け付け部２２は、表示された複数の画像ＰＣＴに対する選択を受け付ける。例えば、受け付け部２２は、ユーザがＰｉｃ＃１〜＃３を選択した順序に関する情報を端末装置１０から取得する。図１の例では、最初にＰｉｃ＃２が選択され、次いでＰｉｃ＃３が選択され、次いでＰｉｃ＃１が選択されている。この場合、受け付け部２２は、順序に関する情報（Ｐｉｃ＃２→Ｐｉｃ＃３→Ｐｉｃ＃１）を端末装置１０から取得する。
【００２３】
なお、図中の符号Ｈは、ユーザがＰｉｃ＃１〜＃３を選択するための操作体を表す。タッチパネルやタッチパッドによる操作の場合には操作体として人間の指やスタイラスペンなどが利用されうる。一方、マウスなどの入力インターフェースによる操作の場合には操作体として表示手段１１上に表示されるポインタなどが利用されうる。
【００２４】
判定部２３は、複数の画像ＰＣＴに対する選択の順序が「しりとり」になっている場合に認証成功と判定する。つまり、判定部２３は、選択された画像ＰＣＴと対応付けられた文字列ＳＴＲの最後尾から所定文字数分の文字と、選択された画像ＰＣＴの次に選択された画像ＰＣＴと対応付けられた文字列ＳＴＲの先頭から所定文字数分の文字とが一致するか順次判定する。そして、判定部２３は、選択された複数の画像ＰＣＴに対する選択の順序について、該判定でいずれも一致すると判定された場合に認証成功と判定する。
【００２５】
例えば、判定部２３は、選択されたＰｉｃ＃２に対応する末尾部分列「ス」と、Ｐｉｃ＃２の次に選択されたＰｉｃ＃３に対応する先頭部分列「ス」とが一致するか判定する。次に、判定部２３は、Ｐｉｃ＃３に対応する末尾部分列「カ」と、Ｐｉｃ＃３の次に選択されたＰｉｃ＃１の先頭部分列「カ」とが一致するか判定する。この場合、いずれも一致するため、判定部２３は、選択の順序が「しりとり」（イス→スイカ→カメラ）になっていると判断し、認証成功と判定する。
【００２６】
歪ませた文字列を複雑な背景上に表示してユーザに読み取らせ、その文字列を入力させて認証を行う方式（以下、通常方式）のＣＡＰＴＣＨＡは、その性質上、攻撃耐性を高めると文字列の視認性が低下する。一方、第１実施形態に係る認証システムは、攻撃耐性の根拠を「しりとり」の論理に求め、表示内容の複雑さを根拠としていない。よって、第１実施形態に係る認証システムによれば、表示内容の視認性を確保し、入力操作の容易性を維持しながら攻撃耐性を向上することができる。
【００２７】
そもそも「しりとり」は言語に依存する。例えば、偶然の場合を除いて、日本語では「しりとり」が成立するが、英語では「しりとり」が成立しないことがほとんどである。そのため、同じ画像ＰＣＴの組が表示されたとしても、日本語圏の人間には容易に「しりとり」となる順番で画像ＰＣＴを選択できるが、英語圏の人間には「しりとり」となる順番で画像ＰＣＴを選択することは難しい。つまり、第１実施形態に係る認証システムによれば、特定の言語圏以外の人間に対して攻撃耐性を向上することができる。
【００２８】
第１実施形態に係る認証システムにおいて攻撃耐性をさらに向上させる変形例の１つとして、「しりとり」に使われない画像ＰＣＴを追加的に表示させる方法が考えられる。
例えば、図１の例において、「クルマ」の画像Ｐｉｃ＃４（非図示）を表示したとしても、Ｐｉｃ＃４は、Ｐｉｃ＃１〜＃３について成立する「しりとり」には使われない。画像ＰＣＴが「しりとり」に使われるかは、「しりとり」が容易に解ける人間にとって容易に判断できる。一方、表示される画像ＰＣＴの数が増加すれば、画像ＰＣＴを順に選択する「順列」の数が増加するため、画像ＰＣＴの選択順序を総当たり的に試すボットにとって難易度が増加する。つまり、攻撃耐性がさらに向上する。
【００２９】
他方、第１実施形態に係る認証システムにおいて入力操作の容易性を高める変形例の１つとして、最初に選択する画像ＰＣＴを予め表示する方法が考えられる。
例えば、最初に選択する画像ＰＣＴに「１」などの数字を表示する方法や、その画像ＰＣＴを選択不能な状態で表示した上で強調表示する方法などが考えられる。ユーザは、最初の画像ＰＣＴが予め選択されていることで「しりとり」を素早く行うことができる。また、「しりとり」に使われない画像ＰＣＴを追加的に表示させる上記方法と組み合わせることで、攻撃耐性と入力操作の容易性とのバランスを調整することもできる。
【００３０】
また、第１実施形態に係る認証システムにおいて攻撃耐性をさらに向上させる変形例の１つとして、先頭部分列と末尾部分列の組が同じ複数の画像ＰＣＴを用意し、認証を行う度に使う画像ＰＣＴをランダムに変更する方法が考えられる。
【００３１】
例えば、文字列「カメラ」の先頭部分列と末尾部分列の組は（カ、ラ）であるが、文字列「カステラ」の先頭部分列と末尾部分列の組も（カ、ラ）である。つまり、２つの文字列「カメラ」及び「カステラ」は、ある「しりとり」に一方が利用できれば、その「しりとり」に他方も利用できる。そのため、図１の例において、Ｐｉｃ＃１の代わりに「カステラ」の画像ＰＣＴを表示しても、認証装置２０は、同じ論理で認証の成否を判定できる。先頭部分列と末尾部分列の組が同じ複数の文字列ＳＴＲ及び画像ＰＣＴを対応付けて記憶手段３０に格納しておけば、該変形例に係る方法が容易になる。
【００３２】
上記の方法を適用すると、同じ「しりとり」に対し、画像ＰＣＴの組み合わせに複数のバリエーションをもたせることができ、たまたま認証が成功した画像ＰＣＴの組み合わせを記憶して再度利用するような攻撃に対して耐性を強化することができる。また、画像ＰＣＴの組み合わせにバリエーションをもたせても、先頭部分列と末尾部分列の組に基づく「しりとり」の論理自体は変わらないため、認証装置２０が行う主な処理に変更を加えずに上記の方法を適用できるという利点もある。
【００３３】
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。第２実施形態は、「しりとり」を利用して認証を行う認証システムに関する。この認証システムは、画像に含まれる物体の名前を適切に並べると「しりとり」になるように複数の画像を選択して、該複数の画像をユーザに提示し、ユーザが正しく画像を並べることができた場合に認証成功と判定する。
【００３４】
［２−１．認証システム］
図２は、第２実施形態に係る認証システムの一例を示した図である。
図２に示すように、第２実施形態に係る認証システムは、端末装置１００、及び認証サーバ２００を含む。端末装置１００は、例えば、パーソナルコンピュータ、タブレット端末、スマートフォンなどのコンピュータである。認証サーバ２００は、例えば、サーバ装置などのコンピュータである。端末装置１００は、ネットワークを介して認証サーバ２００と通信できる。ネットワークは、例えば、有線又は無線の通信回線、或いは、これらを組み合わせた通信回線により形成された通信網である。
【００３５】
以下、上記の認証システムにおけるアクセス元（端末装置１００のユーザ）の認証を例に説明するが、第２実施形態に係る技術は、１台のコンピュータに対するログイン認証や、特定の処理に対する認証などへも応用可能である。こうした応用についても当然に第２実施形態の技術的範囲に属する。
【００３６】
［２−２．ハードウェア］
図３は、第２実施形態に係る端末装置のハードウェアの一例を示した図である。端末装置１００は、第２実施形態に係る端末装置の一例である。
【００３７】
端末装置１００が有する機能は、例えば、図３に示すハードウェア資源を用いて実現することが可能である。つまり、端末装置１００が有する機能は、コンピュータプログラムを用いて図３に示すハードウェアを制御することにより実現される。
【００３８】
図３に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（Read Only Memory）９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０とを有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とを有する。
【００３９】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【００４０】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
【００４１】
出力部９１８としては、例えば、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ、ＰＤＰ（Plasma Display Panel）、又はＥＬＤなどのディスプレイ装置が用いられる。また、出力部９１８として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部９１８は、情報を視覚的又は聴覚的に出力することが可能な装置である。
【００４２】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ＨＤＤなどの磁気記憶デバイスが用いられる。また、記憶部９２０として、ＳＳＤやＲＡＭディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【００４３】
ドライブ９２２は、着脱可能な記録媒体であるリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
【００４４】
接続ポート９２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small Computer System Interface）、ＲＳ−２３２Ｃポート、又は光オーディオ端子など、外部接続機器９３０を接続するためのポートである。外部接続機器９３０としては、例えば、プリンタやカメラなどが用いられる。
【００４５】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスである。通信部９２６としては、例えば、有線又は無線ＬＡＮ（Local Area Network）用の通信回路、ＷＵＳＢ（Wireless USB）用の通信回路、光通信用の通信回路やルータ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークであり、例えば、インターネット、ＬＡＮ、放送網、衛星通信回線などを含む。
【００４６】
以上、端末装置１００のハードウェアについて説明したが、認証サーバ２００が有する機能も図３に例示したハードウェアによって実現できる。そのため、認証サーバ２００のハードウェアについては説明を省略する。
【００４７】
［２−３．認証処理の例］
第２実施形態に係る認証処理は、チャレンジレスポンス方式の認証処理を基本とする。そこで、チャレンジレスポンス方式の認証処理について、その概要を説明する。図４は、チャレンジレスポンス方式の認証処理の一例を示したシーケンス図である。
【００４８】
（Ｓ１０１）端末装置１００は、認証処理の実行開始を要求するメッセージ（認証要求）を認証サーバ２００に送信する。
（Ｓ１０２、Ｓ１０３）認証サーバ２００は、受信した認証要求に応じてチャレンジデータを生成する。第２実施形態の場合、チャレンジデータは、ユーザに解答させる問題を示すデータである。認証サーバ２００は、生成したチャレンジデータを端末装置１００に送信する。つまり、認証サーバ２００は、ユーザに問題を出題する。
【００４９】
（Ｓ１０４、Ｓ１０５）端末装置１００は、受信したチャレンジデータに応じたレスポンスデータの入力を受け付ける。レスポンスデータは、チャレンジデータが示す問題に対する解答を示すデータである。端末装置１００は、入力されたレスポンスデータを認証サーバ２００に送信する。つまり、ユーザは、端末装置１００を介して認証サーバ２００の問い合わせに回答する。
【００５０】
（Ｓ１０６、Ｓ１０７）認証サーバ２００は、レスポンスデータが示す解答の正誤を判定する。正解の場合、認証サーバ２００は、認証結果（認証成功）を端末装置１００に送信し、認証成功時の処理（例えば、アカウント発行やアクセス許可など）を実行する。一方、不正解の場合、認証サーバ２００は、認証結果（認証失敗）を端末装置１００に送信し、一連の認証処理を終了するか、再度Ｓ１０２以降の処理を実行する。
【００５１】
上記のように、認証サーバ２００が端末装置１００に対してチャレンジデータを送り、チャレンジデータに対する処理を端末装置１００側で実行し、その処理結果をレスポンスデータとして認証サーバ２００に返す方式を広くチャレンジレスポンス方式と言う。チャレンジレスポンス方式はチャレンジデータを毎回変更することができるため、レスポンスデータが盗聴されても、そのレスポンスデータを利用した不正な認証が成功する可能性が低く、盗聴に対する耐性が高いことが利点として挙げられる。
【００５２】
第２実施形態に係る認証処理は、さらに、ユーザに出題する問題を工夫し、人間なら簡単に正答できるが、コンピュータには正答が難しい問題をチャレンジとして利用する。但し、第２実施形態に係る認証処理は、人間なら誰でも簡単に正答できるわけではなく、特定の人間には簡単に正答できるが、それ以外の人間には正答することが難しい問題をチャレンジとして利用する。以下、第２実施形態に係る問題の生成方法、及びこれを利用した認証処理などについて、さらに説明する。
【００５３】
［２−４．端末装置の機能］
ここで、端末装置１００の機能について説明する。図５は、第２実施形態に係る端末装置の機能の一例を示したブロック図である。
【００５４】
端末装置１００は、入力部１０１、通信処理部１０２、及び表示部１０３を有する。
入力部１０１の機能は、上述した入力部９１６などを用いて実現できる。通信処理部１０２の機能は、上述した接続ポート９２４や通信部９２６などを用いて実現できる。表示部１０３の機能は、上述した出力部９１８などを用いて実現できる。また、端末装置１００の制御やデータの保持などは、ＣＰＵ９０２、ＲＡＭ９０６、及び記憶部９２０などを用いて実現できる。
【００５５】
入力部１０１は、ユーザの入力を受け付ける。例えば、ユーザは、入力部１０１を介して、認証サーバ２００へのアクセスを開始する指示を入力する。アクセス開始の指示の入力を受け付けた入力部１０１は、認証要求の送信命令を通信処理部１０２に入力する。認証要求に送信命令が入力された通信処理部１０２は、認証サーバ２００に認証要求を送信する。通信処理部１０２は、認証要求に応じて認証サーバ２００が送信したチャレンジデータを受信し、表示部１０３に入力する。
【００５６】
表示部１０３は、通信処理部１０２から入力されたチャレンジデータが示す問題を表示する。後述するように、第２実施形態に係るチャレンジデータは複数の画像データ及び各画像データに対応する画像ＩＤを含む。画像ＩＤは、画像データをそれぞれ特定するための識別情報である。チャレンジデータが示す問題は、複数の画像を「しりとり」順に並べることである。表示部１０３は、問題として、チャレンジデータに含まれる画像データを用いて画像を選択可能に表示する。また、入力部１０１は、各画像に対する選択操作を検知し、選択順を通信処理部１０２に入力する。
【００５７】
通信処理部１０２は、入力部１０１を介してユーザの入力操作を検知した場合や全ての画像が選択された場合に選択操作の完了と判定する。選択操作が完了した場合、通信処理部１０２は、レスポンスデータとして、画像の選択順序（例えば、画像ＩＤと選択順序とを対応付けた情報）を認証サーバ２００に送信する。
【００５８】
［２−５．認証サーバの機能］
次に、認証サーバ２００の機能について説明する。図６は、第２実施形態に係る認証サーバの機能の一例を示したブロック図である。
【００５９】
認証サーバ２００は、記憶部２０１、通信処理部２０２、問題作成部２０３、正誤判定部２０４、及び認証処理部２０５を有する。
記憶部２０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。通信処理部２０２の機能は、上述した接続ポート９２４や通信部９２６などを用いて実現できる。問題作成部２０３、正誤判定部２０４、及び認証処理部２０５の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００６０】
記憶部２０１は、文字データベース２０１ａ及び画像データベース２０１ｂを有する。文字データベース２０１ａは、チャレンジデータとして端末装置１００に送信する問題に用いる文字列の情報が登録されたデータベースである。画像データベース２０１ｂは、当該問題に用いる画像データに関する情報が、文字データベース２０１ａの文字列に対応付けて登録されたデータベースである。
【００６１】
図７は、第２実施形態に係る文字データベースの一例を示した図である。
図７に示すように、文字データベース２０１ａには、文字列の情報として、文字列の先頭部分列と末尾部分列の組と、文字列ＩＤとが対応付けて登録される。つまり、文字列ＩＤは、対応する先頭部分列と末尾部分列とを有する任意の文字列を識別するための識別情報である。例えば、先頭部分列「あ」及び末尾部分列「い」に対応する文字列ＩＤ「０００２」は、文字列「あさい」、「あこやがい」など、「あ」で始まり「い」で終わる任意の文字列に対応する。
【００６２】
図８は、第２実施形態に係る画像データベースの一例を示した図である。
図８に示すように、画像データベース２０１ｂには、画像データに関する情報として、画像データ自体と、画像データを特定する画像ＩＤと、文字列ＩＤとが対応付けて登録される。画像データベース２０１ｂに登録される文字列ＩＤは、対応する画像データの画像に含まれる物体の名称を示す文字列に対応するものである。
【００６３】
例えば、「いす」の画像の画像データ（画像ＩＤ＝Ｐ０１）には、先頭部分列「い」と末尾部分列「す」の組に対応する文字列ＩＤが対応付けられる。そのため、「カステラ」（画像ＩＤ＝Ｐ０２）と「カメラ」（画像ＩＤ＝Ｐ０３）のように、同じ先頭部分列と末尾部分列の組に対応する複数の画像データがある場合、複数の画像データに同じ文字列ＩＤが対応付けられる。なお、画像ＩＤ「Ｐ０４」は「スイカ」の画像の画像データに対応付けられている。
【００６４】
再び図６を参照する。通信処理部２０２は、端末装置１００から認証要求を受信し、認証要求に応じて問題作成部２０３にチャレンジデータとなる問題の作成を要求する。
上記の要求を受けた問題作成部２０３は、文字データベース２０１ａを参照し、対応する先頭部分列と末尾部分列との組について「しりとり」が成立する文字列ＩＤの組み合わせを抽出する。問題作成部２０３が抽出する文字列ＩＤの数（例えば、３以上）は予め設定されているものとする。また、問題作成部２０３は、画像データベース２０１ｂを参照し、抽出した文字列ＩＤに対応する画像ＩＤをそれぞれ１つずつ選択する。
【００６５】
問題作成部２０３は、文字列ＩＤ毎に選択した画像ＩＤに対応する画像データを画像データベース２０１ｂから取得し、問題として、取得した画像データと画像ＩＤとを通信処理部２０２に入力する。通信処理部２０２は、問題作成部２０３から問題として入力された画像データ及び画像ＩＤをチャレンジデータとして端末装置１００に送信する。また、問題作成部２０３は、「しりとり」が成立するように画像ＩＤを並べる並び順の情報（以下、順序情報）を生成し、順序情報を正誤判定部２０４に入力する。
【００６６】
通信処理部２０２は、上記問題に対する解答を含むレスポンスデータを端末装置１００から受信する。そして、通信処理部２０２は、受信したレスポンスデータに含まれる解答を正誤判定部２０４に入力する。解答は、ユーザが画像を選択した順序を示す情報（以下、選択情報）である。選択情報は、画像ＩＤと選択順とを対応付けた情報である。
【００６７】
正誤判定部２０４は、通信処理部２０２から入力された選択情報が示す順序と、問題作成部２０３から入力された順序情報が示す並び順とが一致するか否かを判定する。両者が一致する場合、正誤判定部２０４は、解答が正解であると判定し、認証成功を示す判定結果を認証処理部２０５に入力する。一方、両者が一致しない場合、正誤判定部２０４は、解答が不正解であると判定し、認証失敗を示す判定結果を問題作成部２０３に入力する。
【００６８】
認証処理部２０５は、認証成功後に実行するように予め設定された処理を実行する。例えば、認証処理部２０５は、正誤判定部２０４から認証結果が入力された場合に、端末装置１００に対してアカウントを発行するなどの処理を実行し、アクセス元のユーザに対してアクセスの許可を与える。
【００６９】
一方、認証失敗を示す判定結果が入力された問題作成部２０３は、新たに問題を作成し、通信処理部２０２を介して端末装置１００に再びチャレンジデータを送信する。また、問題作成部２０３は、同じアクセス元に対してチャレンジデータを送信した回数をカウントし、カウント数が予め設定した回数（例えば、５回）より大きい場合、新たな問題を作成せず、同じアクセス元による認証要求を拒否してもよい。認証失敗を繰り返すアクセス元による認証を遮断することで、ボットなどによる不正な認証を効果的に回避することができる。
【００７０】
［２−６．認証操作の例］
次に、端末装置１００を利用してユーザが行う認証操作の例について述べる。ここで例示する認証操作のインターフェースは一例であり、表示部１０３に選択可能に表示された各画像に対する選択順序を特定できる任意のものに第２実施形態の技術を適用することができる。以下の説明は、図７に例示した文字データベース２０１ａ、及び図８に例示した画像データベース２０１ｂの内容（Ｐ０１、Ｐ０３、Ｐ０４）をもとに行う。
【００７１】
（画像を順番に選択する方式）
表示部１０３に表示された複数の画像をユーザが順番に選択する操作方法を例示する。図９は、第２実施形態に係る認証操作（画像を順番に選択）の一例を示した図である。
【００７２】
認証の際、表示部１０３には、問題を解くためのルール（つまり、「しりとり」順で選択すること。）と共に複数の画像が表示される（図９（Ａ）参照）。最初に選択する画像（最初から選択済みとしてもよい。）が指定されていてもよい。この例では、１番目に選択する画像が、順序を表す順序表示によって指定されている。
【００７３】
ユーザは、１番目の画像に対応する文字列との間で、「しりとり」となる文字列に対応する画像を２番目の画像として選択する（図９（Ｂ）参照）。２番目の画像が選択されると、表示部１０３には、２番目に選択されたことを表す順序表示が表示される。同様に、ユーザは３番目の画像を選択する（図９（Ｃ）参照）。
【００７４】
最後の画像（この例では３番目の画像）が選択されると、表示部１０３には、選択結果を確定させ、その選択結果をレスポンスデータとして認証サーバ２００に送信するための送信ボタンが表示される。送信ボタンが押下されると、レスポンスデータが端末装置１００から認証サーバ２００へと送信される。
【００７５】
図９に例示した方法によれば、画像を順次選択するだけで入力ができるため、入力操作が容易になる。通常方式のＣＡＰＴＣＨＡの場合には文字を入力する操作が生じ、タッチパネルなどを利用する場合にソフトウェアキーボードを表示するなどの不便があったが、上記方法によれば、操作手順が少なく、直感的な操作が可能になるため、入力操作の容易性が高まる。
【００７６】
（画像を解答欄に移動する方式）
次に、表示部１０３に表示された複数の画像をユーザが解答欄に移動する操作方法を例示する。図１０は、第２実施形態に係る認証操作（画像を解答欄に移動）の一例を示した図である。図１０の例は、選択順序に対応する複数の解答欄を設け、ユーザが各解答欄に画像をドラッグ操作することで解答する方式を示している。
【００７７】
図９の場合と同様、表示部１０３には、選択対象となる複数の画像がルールと共に表示されている（図１０（Ａ）参照）。この例では、１番目に選択する画像が予め指定されており、最初から１番目の順序に対応する解答欄に入力されている。そこで、ユーザは、１番目の画像に対応する文字列との間で、「しりとり」となる文字列に対応する画像を２番目の順序に対応する解答欄にドラッグする（図１０（Ｂ）参照）。同様に、ユーザは３番目の画像を解答欄にドラッグする（図１０（Ｃ）参照）。
【００７８】
全ての画像（この例では３つの画像）が解答欄にドラッグされると、表示部１０３には、選択結果を確定させ、その選択結果をレスポンスデータとして認証サーバ２００に送信するための送信ボタンが表示される。送信ボタンが押下されると、レスポンスデータが端末装置１００から認証サーバ２００へと送信される。
【００７９】
図１０に例示した方法の場合も図９の例と同様、画像をドラッグするだけで入力ができるため、入力操作が容易になる。通常方式のＣＡＰＴＣＨＡの場合には文字を入力する操作が生じ、タッチパネルなどを利用する場合にソフトウェアキーボードを表示するなどの不便があったが、上記方法によれば、操作手順が少なく、直感的な操作が可能になるため、入力操作の容易性が高まる。
【００８０】
［２−７．問題の作成処理］
次に、問題作成部２０３による問題の作成処理について、さらに説明する。問題の作成処理は、「しりとり」となるように文字列ＩＤの組み合わせを抽出してリスト化する処理（文字列ＩＤリストの作成）と、抽出された各文字列ＩＤについて問題として利用する画像データを選択する処理とを含む。
【００８１】
（文字列ＩＤリストの作成）
まず、文字列ＩＤリスト（問題に用いる文字列ＩＤのリスト）の作成について述べる。図１１は、第２実施形態に係る問題の作成処理（文字列ＩＤリストの作成）の一例を示した図である。
【００８２】
問題作成部２０３は、図１１（Ａ）のように、文字データベース２０１ａの中から、「しりとり」の１番目に用いる文字列ＩＤをランダムに選択する。そして、問題作成部２０３は、選択した文字列ＩＤに対応する先頭部分列と同じ文字列を末尾部分列とする文字列ＩＤを選択禁止にする（選択禁止設定）。
【００８３】
上記の選択禁止設定を行うことで、「しりとり」となる画像の並び順が一意に決まらなくなることを回避することができる。例えば、３つの文字列「トマト」、「トンボ」、「ボート」は、（１）「トンボ」→「ボート」→「トマト」、及び（２）「ボート」→「トマト」→「トンボ」の２通りの「しりとり」が成り立つ。そのため、最初に選択する画像を予め指定しない場合には正答が２つになる。２つの正答を許容すると正解する確率が２倍になるため、上記の選択禁止設定を行う方法の方が攻撃耐性が高い。
【００８４】
１番目の文字列ＩＤを選択した問題作成部２０３は、図１１（Ｂ）のように、１番目の文字列ＩＤに対応する末尾部分列と同じ文字列を末尾部分列とする文字列ＩＤをランダムに選択する。このとき、問題作成部２０３は、選択禁止に設定した文字列ＩＤを選択しない。そして、問題作成部２０３は、選択した文字列ＩＤに対応する先頭部分列と同じ文字列を末尾部分列とする文字列ＩＤを選択禁止にする。
【００８５】
２番目の文字列ＩＤを選択した問題作成部２０３は、図１１（Ｃ）のように、２番目の文字列ＩＤに対応する末尾部分列と同じ文字列を末尾部分列とする文字列ＩＤをランダムに選択する。このとき、問題作成部２０３は、選択禁止に設定した文字列ＩＤを選択しない。そして、問題作成部２０３は、選択した各文字列ＩＤを文字列ＩＤリストに登録し、各文字列ＩＤと選択した順番とを対応付ける。
【００８６】
図１１の例は３つの文字列ＩＤを選択する場合を示しているが、４つ以上の文字列ＩＤを選択する場合も同様である。また、文字列ＩＤリストに文字列ＩＤを登録するタイミングは、各文字列ＩＤをそれぞれ選択したタイミングであってもよい。
【００８７】
（画像データの選択）
次に、画像データの選択について述べる。図１２は、第２実施形態に係る問題の作成処理（画像データの選択）の一例を示した図である。
【００８８】
文字列ＩＤリストを作成した問題作成部２０３は、図１２に示すように、画像データベース２０１ｂから各文字列ＩＤに対応する画像ＩＤを探索する。検出された画像ＩＤが１つの場合、問題作成部２０３は、検出された画像ＩＤに対応する画像データを問題に利用する。一方、複数の画像ＩＤが検出された場合、問題作成部２０３は、１つの画像ＩＤをランダムに選択する。このとき、問題作成部２０３は、同じ文字列ＩＤに対応する複数の画像ＩＤの選択回数が平均化されるように画像ＩＤを選択してもよい。
【００８９】
図１２の例では、先頭部分列「か」と末尾部分列「ら」の組に対応する文字列ＩＤ「０２６４」に、「カステラ」の画像の画像データ（画像ＩＤ＝Ｐ０２）と「カメラ」の画像の画像データ（画像ＩＤ＝Ｐ０３）とが対応付けられている。この場合、問題作成部２０３は、文字列ＩＤ「０２６４」に対応する画像データとして、いずれか一方の画像データ（例えば、画像ＩＤがＰ０３の画像データ）を選択する。また、問題作成部２０３は、文字列ＩＤリストを参照し、選択した画像ＩＤと、その画像ＩＤの選択に用いた文字列ＩＤに対応する順番とを対応付けて順序情報を生成する。
【００９０】
上記の方法により問題作成部２０３が選択した画像データの集合は問題として利用され、チャレンジデータに含めて端末装置１００に送信される。
［２−８．処理の流れ］
次に、端末装置１００及び認証サーバ２００が実行する処理の流れについて説明する。以下の説明は、図１０に例示した認証操作のインターフェースを前提とする。
【００９１】
（端末装置の動作）
まず、端末装置１００の動作に係る処理の流れについて説明する。
図１３は、第２実施形態に係る端末装置の動作の一例を示したフロー図である。
【００９２】
（Ｓ２０１）ユーザは、入力部１０１を利用して認証開始の操作を行う。この操作に応じて通信処理部１０２は、認証の実施を求める認証要求を認証サーバ２００に送信する。
（Ｓ２０２）通信処理部１０２は、認証要求に応じて認証サーバ２００から送信されたチャレンジデータを受信する。チャレンジデータには、ユーザに出題する問題として用いる複数の画像データと各画像データに対応する画像ＩＤとが含まれる。
【００９３】
（Ｓ２０３）表示部１０３は、問題として、チャレンジデータに含まれる複数の画像データを用いて複数の画像を選択可能に表示する。このとき、表示部１０３は、画像を「しりとり」順に並べるように促すメッセージを表示する（ルールの表示）。また、表示部１０３は、画像のドラッグ先となる解答欄を表示する。入力部１０１は、解答欄への画像の移動を監視する。
【００９４】
（Ｓ２０４）入力部１０１は、各画像をドラッグする際の操作体（指やスタイラスなど）の移動軌跡を監視する。つまり、入力部１０１は、ドラッグ対象の画像が操作体により選択されてから、画像が解答欄に達するまでの操作体（又は画像）の移動軌跡を検出し、検出した移動軌跡の情報を保持する。そして、入力部１０１は、図１４に示すような方法で、検出した移動軌跡と、予め設定された基準線とのずれ量を計算する。
【００９５】
図１４は、第２実施形態に係る移動軌跡のずれ量について説明するための図である。
基準線は、例えば、ドラッグ対象の画像と解答欄とを結ぶ直線である。また、ずれ量は、例えば、基準線と移動軌跡とで囲まれた領域の面積である。図１４の例では、基準線と移動軌跡との間に複数の領域Ａ１、Ａ２、…、Ａ６がある。この場合、入力部１０１は、領域Ａ１、Ａ２、…、Ａ６の面積を計算し、計算した面積をずれ量として保持する。このとき、入力部１０１は、基準線の長さをずれ量に対応付けて保持する。
【００９６】
（Ｓ２０５）入力部１０１は、すべての解答が得られたか（解答欄が埋まったか）を判定する。すべての解答が得られた場合、処理はＳ２０６へと進む。一方、すべての解答が得られていない場合、処理はＳ２０４へと進む。
【００９７】
（Ｓ２０６）入力部１０１は、解答欄にドラッグされた画像毎に計算したずれ量から、単位移動距離あたりのずれ量（平均ずれ量）を計算する。つまり、入力部１０１は、計算したずれ量の合計値を基準線の合計長さで割って平均ずれ量を計算する。
【００９８】
ずれ量は、画像の表示位置と解答欄との距離に依存する。そのため、同じ画像の組み合わせを利用する場合でも、画像の表示位置をランダムに決める場合にはずれ量が毎回変化する。しかし、上記のように基準線の長さで平均することによって当該変化を抑制することができる。但し、画像の表示位置に関するずれ量の変化を誤差として許容できる場合、入力部１０１は、１画像毎のずれ量を計算し、そのずれ量を平均ずれ量としてもよい。
【００９９】
（Ｓ２０７）通信処理部１０２は、解答として、各解答欄にドラッグされた画像の画像ＩＤ及び画像の並び順をレスポンスデータに含めて認証サーバ２００に送信する。
（Ｓ２０８）通信処理部１０２は、Ｓ２０６で計算した平均ずれ量を操作データとして認証サーバ２００に送信する。なお、通信処理部１０２は、操作データをレスポンスデータに含めて認証サーバ２００に送信してもよい。Ｓ２０８の処理が完了すると、図１３に示した一連の処理は終了する。
【０１００】
（認証サーバの動作）
次に、認証サーバ２００の動作に係る処理の流れについて説明する。
図１５は、第２実施形態に係る認証サーバの動作（全体）の一例を示したフロー図である。
【０１０１】
（Ｓ２１１）通信処理部２０２は、端末装置１００から認証要求を受信する。
（Ｓ２１２）問題作成部２０３は、ユーザに解答させる問題を作成する。
問題作成部２０３は、文字データベース２０１ａを参照し、対応する先頭部分列と末尾部分列とが「しりとり」となるように文字列ＩＤの組み合わせを選択する。また、問題作成部２０３は、画像データベース２０１ｂを参照し、選択した各文字列ＩＤに対応する画像データ及び画像ＩＤを選択する。そして、問題作成部２０３は、上記「しりとり」をなすように並べた文字列ＩＤの並び順で、画像ＩＤと並び順とを対応付けた順序情報と、選択した複数の画像データとを問題として利用する。
【０１０２】
（Ｓ２１３）通信処理部２０２は、問題作成部２０３が作成した問題を含むチャレンジデータを端末装置１００に送信する（出題）。チャレンジデータには、複数の画像データ及び各画像データに対応する画像ＩＤが含まれる。
【０１０３】
（Ｓ２１４）通信処理部２０２は、端末装置１００からレスポンスデータを受信する（回答）。レスポンスデータには、画像ＩＤと選択順とを対応付けた選択情報が含まれる。
（Ｓ２１５）通信処理部２０２は、移動軌跡と基準線とのずれ量に関する操作データを端末装置１００から受信する。
【０１０４】
（Ｓ２１６）正誤判定部２０４は、順序情報が示す並び順と、選択情報が示す選択順とが一致するか否かを判定する。両者が一致する場合、正誤判定部２０４は、解答が正しいと判定する。一方、両者が一致しない場合、正誤判定部２０４は、解答が正しくないと判定する。解答が正しい場合、処理はＳ２１７へと進む。一方、解答が正しくない場合、処理はＳ２１２へと進む。
【０１０５】
（Ｓ２１７）正誤判定部２０４は、操作データが示す平均ずれ量が閾値ＴｈＴｒより大きいか否かを判定する。閾値ＴｈＴｒは予め設定された値である。例えば、閾値ＴｈＴｒは、複数の人間にドラッグ操作をさせて得た平均ずれ量の下限値（許容可能な誤差分のマージンを加味してもよい。）に設定される。平均ずれ量が閾値ＴｈＴｒより大きい場合、処理はＳ２１８へと進む。一方、平均ずれ量が閾値ＴｈＴｒより大きくない場合、処理はＳ２１２へと進む。
【０１０６】
上記の判定は、人間による操作であるか、ボットによる操作であるかを判別する処理である。ボットの場合、画像の表示位置から解答欄の位置へと画像を移動する際に、ドラッグ操作が規則的（例えば、直線的）になることが予想される。逆に、人間の場合、規則的に操作しようとしても規則性（例えば、直線との一致）に乱れが生じる。つまり、ボットの場合には平均ずれ量が小さくなり、人間の場合には平均ずれ量が大きくなる。よって、上記の判定を行えば、ボットと人間との違いを判別することができる。
【０１０７】
（Ｓ２１８）認証処理部２０５は、認証成功時の処理を実行する。例えば、認証処理部２０５は、端末装置１００に対して認証成功を通知し、アカウントを発行してアクセスを許可する。Ｓ２１８の処理が完了すると、図１５に示した一連の処理は終了する。
【０１０８】
ここで、Ｓ２１２の処理について、さらに説明する。
図１６は、第２実施形態に係る認証サーバの動作（問題作成）の一例を示したフロー図である。
【０１０９】
（Ｓ２２１）問題作成部２０３は、文字データベース２０１ａからランダムに文字列ＩＤを１つ選択する（最初の文字列の選択）。
（Ｓ２２２）問題作成部２０３は、直前に選択した文字列ＩＤの先頭部分列と同じ文字列の末尾部分列をもつ全ての文字列ＩＤの選択を禁止する。
【０１１０】
（Ｓ２２３）問題作成部２０３は、直前に選択した文字列ＩＤの末尾部分列と同じ文字列の先頭部分列をもつ文字列ＩＤをランダムに１つ選択する。このとき、文字データベース２０１ａの中で選択が禁止されている文字列ＩＤがある場合、問題作成部２０３は、禁止されていない文字列ＩＤの中から文字列ＩＤをランダムに１つ選択する。
【０１１１】
（Ｓ２２４）問題作成部２０３は、所定数の文字列ＩＤを選択し終えたか否かを判定する。所定数は、例えば、３以上の整数である。所定数の文字列ＩＤを選択し終えている場合、処理はＳ２２５へと進む。一方、所定数の文字列ＩＤを選択し終えていない場合、処理はＳ２２２へと進む。
【０１１２】
（Ｓ２２５）問題作成部２０３は、選択した文字列ＩＤをリスト化して文字列ＩＤリストを作成する。文字列ＩＤリストは、問題作成部２０３が選択した各文字列ＩＤと、各文字列ＩＤが選択された順番とが対応付けて登録されるリスト情報である。
【０１１３】
（Ｓ２２６）問題作成部２０３は、画像データベース２０１ｂを参照し、文字列ＩＤリストに登録された各文字列ＩＤに対応する画像ＩＤを１つずつ抽出する。１つの文字列ＩＤに対して複数の画像ＩＤが存在する場合、問題作成部２０３は、１つの画像ＩＤをランダムに抽出する。また、問題作成部２０３は、抽出した画像ＩＤに対応する画像データを画像データベース２０１ｂから抽出する。
【０１１４】
（Ｓ２２７）問題作成部２０３は、Ｓ２２６で抽出した複数の画像ＩＤと、各画像ＩＤに対応する画像データとを問題として設定し、レスポンスデータに含める。Ｓ２２６の処理が完了すると、図１６に示した一連の処理は終了する。
【０１１５】
［２−９．変形例＃１：２文字しりとり］
ここで、第２実施形態の一変形例（変形例＃１）について説明する。
これまで、先頭部分列及び末尾部分列の文字数を１とする「しりとり」を例に説明を進めてきたが、文字数を２以上とする「しりとり」も実現可能である。つまり、ｍ＝１、２、３、…、Ｍ−１（Ｍは所定数）について、ｍ番目の文字列のＮ文字（Ｎ≧２）の末尾部分列と、ｍ＋１番目の文字列のＮ文字の先頭部分列とが同じとなるＭ個の文字列は、Ｎ文字の「しりとり」となる。例えば、３つの文字列「よこはま」「はままつ」「まつもと」は、文字列「はま」「まつ」を介して２文字の「しりとり」をなす。
【０１１６】
変形例＃１は、Ｎ文字の「しりとり」に対して上述した第２実施形態に係る技術を適用するための変形に関する。主な変形部分は、文字データベース２０１ａに登録される先頭部分列と末尾部分列の組にある。図１７は、第２実施形態の一変形例（変形例＃１：２文字しりとり）に係る文字データベースの一例を示した図である。Ｎが２の場合、文字データベース２０１ａは、図１７のように変形される。つまり、２文字を組み合わせた先頭部分列と末尾部分列の組が文字列ＩＤに対応付けて文字データベース２０１ａに登録される。文字数が３以上の「しりとり」に変形する場合も同様である。
【０１１７】
［２−１０．変形例＃２：最初の画像の指定なし］
次に、第２実施形態の他の変形例（変形例＃２）について説明する。
上記の説明の中で、「しりとり」の最初の文字列に対応する画像を指定する方法、及び該画像を指定しない方法について述べた。変形例＃２は、最初の文字列に対応する画像を指定しない方法を採用する場合において、該画像が選択されるまでの時間（以下、解答時間）を利用して、アクセス元が人間であるか、ボットであるかを判別する仕組みを追加する変形に関する。さらに、変形例＃２は、平均ずれ量の判定について、高性能なボットによる高度な攻撃に対処する仕組みを追加する変形を含む。変形例＃２により攻撃耐性をさらに高めることができる。
【０１１８】
（端末装置の動作）
変形例＃２における端末装置１００の動作に係る処理の流れについて説明する。
図１８は、第２実施形態の一変形例（変形例＃２：最初の画像の指定なし）に係る端末装置の動作の一例を示したフロー図である。
【０１１９】
（Ｓ３０１）ユーザは、入力部１０１を利用して認証開始の操作を行う。この操作に応じて通信処理部１０２は、認証の実施を求める認証要求を認証サーバ２００に送信する。
（Ｓ３０２）通信処理部１０２は、認証要求に応じて認証サーバ２００から送信されたチャレンジデータを受信する。チャレンジデータには、ユーザに出題する問題として用いる複数の画像データと各画像データに対応する画像ＩＤとが含まれる。
【０１２０】
（Ｓ３０３）表示部１０３は、問題として、チャレンジデータに含まれる複数の画像データを用いて複数の画像を選択可能に表示する。このとき、表示部１０３は、画像を「しりとり」順に並べるように促すメッセージを表示する（ルールの表示）。また、表示部１０３は、画像のドラッグ先となる解答欄を表示する。入力部１０１は、解答欄への画像の移動を監視する。また、入力部１０１は、表示部１０３が問題を表示されたタイミングで解答時間の計時を開始する。
【０１２１】
（Ｓ３０４）入力部１０１は、最初の解答が得られたか否かを判定する。つまり、入力部１０１は、「しりとり」の最初の文字列に対応する画像が解答欄にドラッグされたか否かを監視し、解答欄に画像がドラッグされた場合に最初の解答が得られたと判定する。最初の解答が得られた場合、処理はＳ３０５へと進む。一方、最初の解答が得られていない場合、Ｓ３０４の処理が繰り返されて入力部１０１による監視が継続される。
【０１２２】
（Ｓ３０５）入力部１０１は、最初の解答が得られたタイミングで解答時間の計時を終了し、計時の開始から終了までの時間（解答時間）を計算する。
（Ｓ３０６）入力部１０１は、各画像をドラッグする際の操作体（指やスタイラスなど）の移動軌跡を監視する。つまり、入力部１０１は、ドラッグ対象の画像が操作体により選択されてから、画像が解答欄に達するまでの操作体（又は画像）の移動軌跡を検出し、検出した移動軌跡の情報を保持する。そして、入力部１０１は、図１４に示したような方法で、検出した移動軌跡と、予め設定された基準線とのずれ量を計算する。
【０１２３】
図１８の例では移動軌跡の監視が最初の解答後に開始されているが、入力部１０１は、最初の解答時の移動軌跡も監視し、その移動軌跡についてずれ量を計算してもよい。この場合、移動軌跡の監視はＳ３０３で問題を表示した後に開始される。
【０１２４】
（Ｓ３０７）入力部１０１は、すべての解答が得られたか（解答欄が埋まったか）を判定する。すべての解答が得られた場合、処理はＳ３０８へと進む。一方、すべての解答が得られていない場合、処理はＳ３０６へと進む。
【０１２５】
（Ｓ３０８）入力部１０１は、解答欄にドラッグされた画像毎に計算したずれ量から、単位移動距離あたりのずれ量（平均ずれ量）を計算する。但し、画像の表示位置に関するずれ量の変化を誤差として許容できる場合、入力部１０１は、１画像毎のずれ量を計算し、そのずれ量を平均ずれ量としてもよい。
【０１２６】
（Ｓ３０９）通信処理部１０２は、解答として、各解答欄にドラッグされた画像の画像ＩＤ及び画像の並び順をレスポンスデータに含めて認証サーバ２００に送信する。
（Ｓ３１０）通信処理部１０２は、Ｓ３０５で計算した解答時間とＳ３０８で計算した平均ずれ量とを操作データとして認証サーバ２００に送信する。なお、通信処理部１０２は、操作データをレスポンスデータに含めて認証サーバ２００に送信してもよい。Ｓ３１０の処理が完了すると、図１８に示した一連の処理は終了する。
【０１２７】
（認証サーバの動作）
次に、変形例＃２における認証サーバ２００の動作に係る処理の流れについて説明する。
【０１２８】
図１９は、第２実施形態の一変形例（変形例＃２：最初の画像の指定なし）に係る認証サーバの動作（全体）の一例を示したフロー図である。
（Ｓ３１１）通信処理部２０２は、端末装置１００から認証要求を受信する。
【０１２９】
（Ｓ３１２）問題作成部２０３は、ユーザに解答させる問題を作成する。
問題作成部２０３は、文字データベース２０１ａを参照し、対応する先頭部分列と末尾部分列とが「しりとり」となるように文字列ＩＤの組み合わせを選択する。また、問題作成部２０３は、画像データベース２０１ｂを参照し、選択した各文字列ＩＤに対応する画像データ及び画像ＩＤを選択する。そして、問題作成部２０３は、上記「しりとり」をなすように並べた文字列ＩＤの並び順で、画像ＩＤと並び順とを対応付けた順序情報と、選択した複数の画像データとを問題として利用する。
【０１３０】
（Ｓ３１３）通信処理部２０２は、問題作成部２０３が作成した問題を含むチャレンジデータを端末装置１００に送信する（出題）。チャレンジデータには、複数の画像データ及び各画像データに対応する画像ＩＤが含まれる。
【０１３１】
（Ｓ３１４）通信処理部２０２は、端末装置１００からレスポンスデータを受信する（回答）。レスポンスデータには、画像ＩＤと選択順とを対応付けた選択情報が含まれる。
（Ｓ３１５）通信処理部２０２は、解答時間及び平均ずれ量の情報を含む操作データを端末装置１００から受信する。
【０１３２】
（Ｓ３１６）正誤判定部２０４は、順序情報が示す並び順と、選択情報が示す選択順とが一致するか否かを判定する。両者が一致する場合、正誤判定部２０４は、解答が正しいと判定する。一方、両者が一致しない場合、正誤判定部２０４は、解答が正しくないと判定する。解答が正しい場合、処理はＳ３１７へと進む。一方、解答が正しくない場合、処理はＳ３１２へと進む。
【０１３３】
（Ｓ３１７）正誤判定部２０４は、操作データが示す平均ずれ量が閾値ＴｈＴｒより大きいか否かを判定する。閾値ＴｈＴｒは予め設定された値である。例えば、閾値ＴｈＴｒは、複数の人間にドラッグ操作をさせて得た平均ずれ量の下限値（許容可能な誤差分のマージンを加味してもよい。）に設定される。平均ずれ量が閾値ＴｈＴｒより大きい場合、処理はＳ３１８へと進む。一方、平均ずれ量が閾値ＴｈＴｒより大きくない場合、処理はＳ３１２へと進む。
【０１３４】
（Ｓ３１８）正誤判定部２０４は、操作データが示す平均ずれ量が閾値ＴｈＯｖより小さいか否かを判定する。閾値ＴｈＯｖは予め設定された値である。例えば、閾値ＴｈＯｖは、複数の人間にドラッグ操作をさせて得た平均ずれ量の上限値（許容可能な誤差分のマージンを加味してもよい。）に設定される。平均ずれ量が閾値ＴｈＯｖより小さい場合、処理はＳ３１９へと進む。一方、平均ずれ量が閾値ＴｈＯｖより小さくない場合、処理はＳ３１２へと進む。
【０１３５】
高性能なボットは、人間の動きを模擬するように設計されている可能性がある。つまり、人間は完全に基準線に沿った規則的な動きで画像を移動させることができない点を考慮し、移動軌跡を曲線的にして基準線からずらすようにボットが設計される可能性が予測できる。他方、人間が行う操作によって生じる移動軌跡と基準線とのずれは、人間が意識して生じさせているわけではないから、それほど大きくはならない。そのため、平均ずれ量が大きくなるような動きは、ボットによるものと判別してもよいことが多い。よって、Ｓ３１８の判定を設けることで、ボットによる攻撃を排除できる可能性が高まる。
【０１３６】
（Ｓ３１９）正誤判定部２０４は、操作データが示す解答時間が閾値ＴｈＦＡより大きいか否かを判定する。閾値ＴｈＦＡは予め設定された値である。例えば、閾値ＴｈＦＡは、複数の人間に複数の問題を出題し、「しりとり」の最初の文字列に対応する画像を解答するまでに要した時間の下限値（許容可能な誤差分のマージンを加味してもよい。）に設定される。解答時間が閾値ＴｈＦＡより大きい場合、処理はＳ３２０へと進む。一方、解答時間が閾値ＴｈＦＡより大きくない場合、処理はＳ３１２へと進む。
【０１３７】
上記の判定も、人間による操作であるか、ボットによる操作であるかを判別する処理である。人間の場合には最初の画像をどれにするかを考える時間が生じるが、ボットの場合には最初の画像がどれになるかを考えずに即座に画像を選択することが予想される。そのため、最初の画像の解答が得られるまでの時間が短い場合、ボットによる操作であると判別することができる。よって、上記の判定を行えば、ボットと人間との違いを判別することができる。
【０１３８】
（Ｓ３２０）認証処理部２０５は、認証成功時の処理を実行する。例えば、認証処理部２０５は、端末装置１００に対して認証成功を通知し、アカウントを発行してアクセスを許可する。Ｓ３２０の処理が完了すると、図１９に示した一連の処理は終了する。
【０１３９】
（その他）
上記の例では、平均ずれ量の大きさに注目してボットによる操作と人間による操作とを判別する仕組みを紹介したが、画像毎の平均ずれ量に注目して当該判別を行う仕組みも他の変形例として考えられる。
【０１４０】
例えば、ボットの動きが規則的であることに注目し、画像毎の平均ずれ量のばらつき（例えば、差分平均や分散値など）が許容値より小さい場合にボットによる操作であると判定する仕組みが考えられる。許容値は、例えば、複数の問題について人間が行った操作により測定された平均ずれ量のばらつきの下限値（許容可能な誤差分のマージンを加味してもよい。）に設定される。この仕組みをＳ３１８の処理に代えて、或いは、Ｓ３１８の処理に併せて実行すれば、さらに攻撃耐性が高まる。
【０１４１】
また、上記の例では、最初の画像に対する解答時間の長さに注目してボットによる操作と人間による操作とを判別する仕組みを紹介したが、人間は各画像の解答時に思考時間が生じるため、この思考時間の長さに注目して上記判別を実現する方法も考えられる。例えば、全ての解答を得るまでに要した時間から１問あたりの解答時間を計算し、計算した解答時間を閾値判定することでボットによる操作を判定する方法が考えられる。この方法で用いる閾値も実験的に得られた解答時間の下限値などに設定すればよい。
【０１４２】
［２−１１．利用しない画像の表示］
次に、第２実施形態のさらに他の変形例（変形例＃３）について説明する。
これまで、表示部１０３に表示された全ての画像が問題の解答として利用される例を想定して説明を進めてきたが、問題の解答として利用しない画像を表示部１０３に表示するように変形することもできる。例えば、３つの文字列「イス」「スイカ」「カメラ」に対応する３つの画像が問題の解答である場合に、その解答にならない「クルマ」の画像を表示部１０３に表示する変形が可能である（図２０参照）。
【０１４３】
図２０は、第２実施形態の一変形例（変形例＃３：利用しない画像の表示）に係る問題表示の一例を示した図である。
選択肢となる画像の数がＬ、解答欄の数がＫである場合、偶然に正解する確率Ｐｒは、下記の式（１）で与えられる。
【０１４４】
【数１】
0006330625.tif 000002
【０１４５】
例えば、解答欄の数Ｋが５であり、全ての画像が解答に利用される場合（つまり、Ｋ＝５、Ｌ＝５の場合）、確率Ｐｒは１／１２０となる。また、解答に利用されない画像を３枚追加した場合（つまり、Ｋ＝５、Ｌ＝８）の場合、確率Ｐｒは１／６７２０となる。
【０１４６】
解答に利用されない画像を見分けることは人間には容易であるため、人間にとっては確率Ｐｒの差ほどは難易度が上がらない。一方、全ての画像の組み合わせを試す総当たり方式で正答を求めるボットの場合、正答率は確率Ｐｒに比例する。そのため、解答に利用されない画像の追加は、ボットにとっての難易度を大きく高めることができる。よって、変形例＃３の工夫を追加することで、人間にとっての解答容易性を大きく損なうことなく、ボットによる攻撃への耐性を高めることができる。
【０１４７】
以上、第２実施形態について説明した。
上記説明では、日本語のひらがな（カタカナ）に基づく「しりとり」を前提としたが、英語のアルファベットに基づく「しりとり」、あるいは他の言語に基づく「しりとり」を利用して上述した認証システムを構築することも可能である。文字データベース２０１ａの先頭部分列及び末尾部分列を変形し、画像データベース２０１ｂの対応付けを変形すれば、言語の変化にもさらに対応できる。３文字以上の「しりとり」への応用も同様である。このような変形例も当然に第２実施形態の技術的範囲に属する。
【０１４８】
＜３．付記＞
以上説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）  コンピュータに、
アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、
表示した前記複数の画像に対する選択を受け付け、
前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する
処理を実行させることを特徴とする、認証プログラム。
【０１４９】
（付記２）  前記選択は、前記画像を表示位置から所定位置へと移動する操作を含み、
前記コンピュータに、
前記移動の操作に規則性がある場合には認証失敗と判定する処理を実行させる
ことを特徴とする、付記１に記載の認証プログラム。
【０１５０】
（付記３）  前記コンピュータに、
前記表示手段に表示された画像を最初に選択するまでの時間が所定時間より短い場合には認証失敗と判定する処理を実行させる
ことを特徴とする、付記１又は２に記載の認証プログラム。
【０１５１】
（付記４）  前記コンピュータに、
選択可能な画像数よりも多い数の前記画像を前記表示手段に表示する処理を実行させる
ことを特徴とする、付記１〜３のいずれかに記載の認証プログラム。
【０１５２】
（付記５）  前記所定文字数は１である
ことを特徴とする、付記１〜４のいずれかに記載の認証プログラム。
（付記６）  前記コンピュータに、
最初に選択する画像を特定するための情報を表示する処理を実行させる
ことを特徴とする、付記１〜５のいずれかに記載の認証プログラム。
【０１５３】
（付記７）  前記コンピュータに、
前記選択の際に検出された移動軌跡が、前記表示位置と前記所定位置とを結ぶ直線である場合に規則性があると判定する処理を実行させる
ことを特徴とする、付記２に記載の認証プログラム。
【０１５４】
（付記８）  前記コンピュータに、
前記選択の際に検出された前記移動軌跡と前記直線との差を表すずれ量が所定量より大きい場合には認証失敗と判定する処理を実行させる
ことを特徴とする、付記７に記載の認証プログラム。
【０１５５】
（付記９）  前記ずれ量は、前記移動軌跡と前記直線とで囲まれた領域の総面積である
ことを特徴とする、付記８に記載の認証プログラム。
（付記１０）  コンピュータが、
アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示し、
表示した前記複数の画像に対する選択を受け付け、
前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する
処理を実行することを特徴とする、認証方法。
【０１５６】
（付記１１）  アクセス元の認証を行う際、画像と文字列とを対応付けて記憶する記憶手段から読み出した複数の画像を表示手段に選択可能に表示させる表示制御部と、
表示された前記複数の画像に対する選択を受け付ける受け付け部と、
前記複数の画像に対する選択の順序が、選択された画像と対応付けられた文字列の最後尾から所定文字数分の文字と、前記選択された画像の次に選択された画像と対応付けられた文字列の先頭から該所定文字数分の文字と、が一致する選択の順序である場合に、認証成功と判定する判定部と
を有することを特徴とする、認証装置。
【０１５７】
（付記１２）  付記１〜９のいずれかに記載の認証プログラムが格納された、コンピュータにより読み取り可能な記録媒体。
【符号の説明】
【０１５８】
１０  端末装置
１１  表示手段
２０  認証装置
２１  表示制御部
２２  受け付け部
２３  判定部
３０  記憶手段
ＮＷ  ネットワーク
Ｈ  操作体
ＰＣＴ  画像
ＳＴＲ  文字列
【図１】
0006330625.tif 000003
【図２】
0006330625.tif 000004
【図３】
0006330625.tif 000005
【図４】
0006330625.tif 000006
【図５】
0006330625.tif 000007
【図６】
0006330625.tif 000008
【図７】
0006330625.tif 000009
【図８】
0006330625.tif 000010
【図９】
0006330625.tif 000011
【図１０】
0006330625.tif 000012
【図１１】
0006330625.tif 000013
【図１２】
0006330625.tif 000014
【図１３】
0006330625.tif 000015
【図１４】
0006330625.tif 000016
【図１５】
0006330625.tif 000017
【図１６】
0006330625.tif 000018
【図１７】
0006330625.tif 000019
【図１８】
0006330625.tif 000020
【図１９】
0006330625.tif 000021
【図２０】
0006330625.tif 000022