(57)【特許請求の範囲】
【請求項１】
認証システムであって、
ユーザ毎に、少なくとも１つの変数セルを含む乱数表を記憶する記憶部と、
ユーザ端末から送信された取引要求を受信し、当該取引要求で指定されたユーザに対応する乱数表を前記記憶部から読み出し、読み出した乱数表の複数のセルの中から、前記変数セルを少なくとも１つ含む所定数の認証セルを抽出するセル抽出部と、
前記取引要求に含まれる取引情報に基づいてチャレンジコードを生成し、前記チャレンジコードを前記各変数セルに振り分けて、各変数セルの値を設定する設定部と、
前記所定数の認証セルの位置情報と、前記設定部が設定した各変数セルに対応する値とを、前記ユーザ端末に送信する送信部と、
変数セルの認証セルについては前記設定部が設定した値を用い、変数セル以外の認証セルについては前記乱数表に設定された値を用いて、第１のパスワードを生成し、前記第１のパスワードと前記ユーザ端末から送信された第２のパスワードとが一致するか否かを認証する認証部と、を備えること
を特徴とする認証システム。
【請求項２】
請求項１記載の認証システムであって、
前記乱数表の各変数セルには、画像が設定されること
を特徴とする認証システム。
【請求項３】
請求項１または２記載の認証システムであって、
前記設定部は、前記取引情報である振込先口座番号と取引金額とを用いて、前記チャレンジコードを生成すること
を特徴とする認証システム。
【請求項４】
請求項１から３のいずれか１項に記載の認証システムであって、
前記送信部は、前記セル抽出部が抽出したセルの位置情報と、前記設定部が設定した各変数セルに対応する値とを、異なる通信経路で送信すること
を特徴とする認証システム。
【請求項５】
認証システムが行う認証方法であって、
ユーザ端末から送信された取引要求を受信し、当該取引要求で指定されたユーザに対応する乱数表を、ユーザ毎に少なくとも１つの変数セルを含む乱数表を記憶する記憶部から読み出し、読み出した乱数表の複数のセルの中から、前記変数セルを少なくとも１つ含む所定数の認証セルを抽出するセル抽出ステップと、
前記取引要求に含まれる取引情報に基づいてチャレンジコードを生成し、前記チャレンジコードを前記各変数セルに振り分けて、各変数セルの値を設定する設定ステップと、
前記所定数の認証セルの位置情報と、前記設定ステップで設定した各変数セルに対応する値とを、前記ユーザ端末に送信する送信ステップと、
変数セルの認証セルについては前記設定ステップで設定した値を用い、変数セル以外の認証セルについては前記乱数表に設定された値を用いて、第１のパスワードを生成し、前記第１のパスワードと前記ユーザ端末から送信された第２のパスワードとが一致するか否かを認証する認証ステップと、を行うこと
を特徴とする認証方法。
【請求項６】
請求項５記載の認証方法であって、
前記乱数表の各変数セルには、画像が設定されること
を特徴とする認証方法。
【請求項７】
請求項５または６記載の認証方法であって、
前記設定ステップは、前記取引情報である振込先口座番号と取引金額とを用いて、前記チャレンジコードを生成すること
を特徴とする認証方法。
【請求項８】
請求項５から７のいずれか１項に記載の認証方法であって、
前記送信ステップは、前記セル抽出ステップが抽出したセルの位置情報と、前記設定ステップが設定した各変数セルに対応する値とを、異なる通信経路で送信すること
を特徴とする認証方法。
【請求項９】
認証システムが実行する認証プログラムであって、
前記認証システムに、
ユーザ端末から送信された取引要求を受信し、当該取引要求で指定されたユーザに対応する乱数表を、ユーザ毎に少なくとも１つの変数セルを含む乱数表を記憶する記憶部から読み出し、読み出した乱数表の複数のセルの中から、前記変数セルを少なくとも１つ含む所定数の認証セルを抽出するセル抽出ステップ、
前記取引要求に含まれる取引情報に基づいてチャレンジコードを生成し、前記チャレンジコードを前記各変数セルに振り分けて、各変数セルの値を設定する設定ステップ、
前記所定数の認証セルの位置情報と、前記設定ステップで設定した各変数セルに対応する値とを、前記ユーザ端末に送信する送信ステップ、および、
変数セルの認証セルについては前記設定ステップで設定した値を用い、変数セル以外の認証セルについては前記乱数表に設定された値を用いて、第１のパスワードを生成し、前記第１のパスワードと前記ユーザ端末から送信された第２のパスワードとが一致するか否かを認証する認証ステップを実行させること
を特徴とする認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介したサービスにおける認証技術に関する。
【背景技術】
【０００２】
近年、フィッシング詐欺に代表される、インターネット上でのユーザＩＤ、パスワードなどの詐取・盗難（identity theft）が問題となっている。そのため、より高いセキュリティを確保し、ユーザの正当性を認証する技術が求められている。例えば、特許文献１には、ワンタイムパスワードを用いて、ユーザ認証を行う認証システムが記載されている。
【０００３】
また、ユーザ毎に異なる乱数表を配布し、乱数表上の所定の位置の数字をサーバに送信することで、認証を行う乱数表認証が行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2011−204169号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の乱数表認証では、サーバ側では、ランダムに抽出した乱数表上の位置をユーザに通知し、ユーザは、乱数表の通知された位置の数字をサーバに送信する。乱数表認証では、ユーザに通知される乱数表上の位置は認証の度に変わるため、一般的なユーザＩＤおよびパスワードの認証に比べて、認証は強化される。しかしながら、従来の乱数表認証では、攻撃者がネットワークを監視すること、または、フィッシング詐欺などにより、乱数表が推定されてしまうリスクがある。
【０００６】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、乱数表を用いた認証において、より高いセキュリティを確保することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、認証システムであって、ユーザ毎に、少なくとも１つの変数セルを含む乱数表を記憶する記憶部と、ユーザ端末から送信された取引要求を受信し、当該取引要求で指定されたユーザに対応する乱数表を前記記憶部から読み出し、読み出した乱数表の複数のセルの中から、前記変数セルを少なくとも１つ含む所定数の認証セルを抽出するセル抽出部と、前記取引要求に含まれる取引情報に基づいてチャレンジコードを生成し、前記チャレンジコードを前記各変数セルに振り分けて、各変数セルの値を設定する設定部と、前記所定数の認証セルの位置情報と、前記設定部が設定した各変数セルに対応する値とを、前記ユーザ端末に送信する送信部と、変数セルの認証セルについては前記設定部が設定した値を用い、変数セル以外の認証セルについては前記乱数表に設定された値を用いて、第１のパスワードを生成し、前記第１のパスワードと前記ユーザ端末から送信された第２のパスワードとが一致するか否かを認証する認証部と、を備える。
【０００８】
本発明は、認証システムが行う認証方法であって、ユーザ端末から送信された取引要求を受信し、当該取引要求で指定されたユーザに対応する乱数表を、ユーザ毎に少なくとも１つの変数セルを含む乱数表を記憶する記憶部から読み出し、読み出した乱数表の複数のセルの中から、前記変数セルを少なくとも１つ含む所定数の認証セルを抽出するセル抽出ステップと、前記取引要求に含まれる取引情報に基づいてチャレンジコードを生成し、前記チャレンジコードを前記各変数セルに振り分けて、各変数セルの値を設定する設定ステップと、前記所定数の認証セルの位置情報と、前記設定ステップで設定した各変数セルに対応する値とを、前記ユーザ端末に送信する送信ステップと、変数セルの認証セルについては前記設定ステップで設定した値を用い、変数セル以外の認証セルについては前記乱数表に設定された値を用いて、第１のパスワードを生成し、前記第１のパスワードと前記ユーザ端末から送信された第２のパスワードとが一致するか否かを認証する認証ステップと、を行う。
【０００９】
本発明は、認証システムが実行する認証プログラムであって、前記認証システムに、ユーザ端末から送信された取引要求を受信し、当該取引要求で指定されたユーザに対応する乱数表を、ユーザ毎に少なくとも１つの変数セルを含む乱数表を記憶する記憶部から読み出し、読み出した乱数表の複数のセルの中から、前記変数セルを少なくとも１つ含む所定数の認証セルを抽出するセル抽出ステップ、前記取引要求に含まれる取引情報に基づいてチャレンジコードを生成し、前記チャレンジコードを前記各変数セルに振り分けて、各変数セルの値を設定する設定ステップ、前記所定数の認証セルの位置情報と、前記設定ステップで設定した各変数セルに対応する値とを、前記ユーザ端末に送信する送信ステップ、および、変数セルの認証セルについては前記設定ステップで設定した値を用い、変数セル以外の認証セルについては前記乱数表に設定された値を用いて、第１のパスワードを生成し、前記第１のパスワードと前記ユーザ端末から送信された第２のパスワードとが一致するか否かを認証する認証ステップを実行させる。
【発明の効果】
【００１０】
本発明では、乱数表を用いた認証において、より高いセキュリティを確保することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態が適用された認証システムの全体構成図である。
【図２】乱数表を説明するための図である。
【図３】第１の実施形態の認証処理を示すシーケンス図である。
【図４】本発明の第２の実施形態が適用された認証システムの全体構成図である。
【図５】第２の実施形態の認証処理を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について説明する。
【００１３】
＜第１の実施形態＞
図１は、本発明の第１の実施形態が適用された認証システムの全体構成図である。図示する認証システムは、ユーザが使用するユーザ端末１と、認証サーバ２とを有する。ユーザ端末１は、インターネットなどのネットワーク９を介して認証サーバ２と接続される。
【００１４】
本実施形態のユーザは、認証サーバ２が提供する認証システムを利用可能なユーザであって、あらかじめ認証サーバ２が発行する当該ユーザ固有の乱数表を取得しているものとする。そして、ユーザは、乱数表を用いてパスワードを生成し、ユーザ端末１を介して認証サーバ２に送信する。ユーザ端末１には、例えばＰＣ、スマートフォン、タブレット、携帯電話などを用いることができる。
【００１５】
認証サーバ２（認証システム）は、認証サービスを提供する装置である。図示する認証サーバ２は、セル抽出部２１と、設定部２２と、送信部２３と、認証部２４と、取引処理部２５と、乱数表記憶部２６とを有する。
【００１６】
セル抽出部２１は、ユーザ端末１から送信された取引要求を受信し、当該取引要求で指定されたユーザに対応する乱数表を乱数表記憶部２６から読み出し、読み出した乱数表の複数のセルの中から、変数セルを少なくとも１つ含む所定数の認証セルを抽出する。設定部２２は、取引要求に含まれる取引情報に基づいてチャレンジコードを生成し、当該チャレンジコードを乱数表の各変数セルに振り分けて、各変数セルの値を設定する。
【００１７】
送信部２３は、所定数の認証セルの位置情報と、設定部２２が設定した各変数セルに対応する値とを、ユーザ端末１に送信する。認証部２４は、変数セルの認証セルについては設定部２２が設定した値を用い、変数セル以外の認証セルについては乱数表に設定された値を用いて、第１のパスワードを生成し、第１のパスワードとユーザ端末１から送信された第２のパスワードとが一致するか否かを認証する。乱数表記憶部２６には、ユーザ毎に、少なくとも１つの変数セルを含む乱数表が記憶される。
【００１８】
上記説明した、ユーザ端末１および認証サーバは、例えば、ＣＰＵと、メモリと、ハードディスク等の外部記憶装置などを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた所定のプログラムを実行することにより、各装置の各機能が実現される。例えば、ユーザ端末１および認証サーバ２の各機能は、ユーザ端末１用のプログラムの場合はユーザ端末１のＣＰＵが、そして、認証サーバ２用のプログラムの場合は認証サーバ２のＣＰＵが、それぞれ実行することにより実現される。
【００１９】
また、ユーザ端末１および認証サーバ２用のプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【００２０】
図２は、本実施形態の乱数表の一例を示す図である。乱数表を用いた認証は、ユーザ毎に固有の乱数表を発行・配布し、ランダムに指定されるセルの文字（数字など）を入力することで、認証を行うものである。
【００２１】
図示する乱数表は、行（Ａ−Ｄ）と列（１−４）とで構成されたマトリクスであって、列と行とで指定可能な複数のセルを有する。本実施形態の乱数表は、固定セルと、変数セルの２種類のセルを有する。固定セルの各セルには、数値、英字、平仮名、カタカナなどの文字がランダムに設定されている。変数セルには、図示するような図形、模様、色、写真、絵などの文字以外の画像が設定される。本実施形態の乱数表は、少なくとも１つの変数セルを有するものとする。
【００２２】
変数セルの値は、取引データに基づいて生成されるチャレンジコードに応じて、値が変化する変数として利用する。すなわち、変数セルの値は、取引データによって値が変わる変数である。
【００２３】
乱数表は、プラスチックまたは紙などの乱数表カードを郵便や宅配便でユーザに配送してもよく、あるいは、ユーザがユーザ端末１を用いて認証サーバ２から乱数表データを取得し、ユーザ端末１のメモリなどの記憶部に記憶しておくこととしてもよい。
【００２４】
次に、本実施形態の処理について説明する。
【００２５】
図３は、本実施形態における乱数表を用いた認証処理を示すシーケンス図である。なお、ここでは、認証処理として、金融機関が提供するネットバンキングサービスの振込処理を例として説明するが、本発明はこれに限定されるものではない。例えば、ポイント移行、送金サービス、決済サービスなど、ネットバンキングサービス以外の様々なサービスにも適用することができる。
【００２６】
ユーザ端末１（ブラウザ）は、ユーザの指示を受け付けて認証サーバ２にアクセスし、ユーザが入力した取引データとユーザＩＤと含む取引要求を認証サーバ２に送信する（Ｓ１１）。図示する例では、取引データ（取引情報）として、振込先口座番号と、取引金額とを用いるものとする。なお、取引データとしては、これ以外に、例えば、取引種別、金融機関コード等があってもよい。
【００２７】
認証サーバ２のセル抽出部２１は、ユーザ端末１から送信された取引要求を受信し、当該取引要求で指定されたユーザＩＤに対応する乱数表３１を乱数表記憶部２６から読み出す（Ｓ１２）。なお、ユーザは、セル抽出部２１が乱数表記憶部２６から読み出した乱数表３１と同じ乱数表３１をあらかじめ保持している。
【００２８】
そして、セル抽出部２１は、読み出した乱数表３１の複数のセルの中から、変数セルを少なくとも１つ含む所定数の認証セルを抽出する（Ｓ１３）。また、セル抽出部２１は、抽出した各認証セルに、順番を設定する。図示する認証セル情報３２の例では、セル抽出部２１は、Ａ行４列の１番目のセル（１）と、Ｂ行２列の２番目のセル（２）と、Ｄ行４列の３番目のセル（３）と、Ｃ行２列の４番目のセル（４）の４つのセルを、認証セルとして抽出する。また、図示する乱数表３１では、セル（２）およびセル（４）が変数セルで、残りのセル（１）およびセル（３）が固定セルである。
【００２９】
なお、変数セルを少なくとも１つ含む所定数の認証セルを抽出については、例えば、以下のような方法が考えられる。すなわち、セル抽出部２１は、乱数表から所定数のセルを抽出後、Ｓ１２で読み出した乱数表を参照して、抽出したセルの中に少なくとも１つの変数セルが含まれているか否かを判別し、少なくとも１つの変数セルが含まれている場合は、当該抽出したセルを認証セルとして決定する。一方、抽出したセルの中に変数セルが１つも含まれていない場合は、少なくとも１つの変数セルが含まれるまで、所定数のセルを乱数表から抽出する処理を繰り返し行う。この方法に限定されず、これ以外の方法で、変数セルを少なくとも１つ含む所定数の認証セルを抽出してもよい。
【００３０】
そして、認証サーバ２の設定部２２は、Ｓ１１で受信した取引要求に含まれる取引データに基づいてチャレンジコードを生成し、当該チャレンジコードを乱数表の各変数セルに振り分けて、各変数セルの値を設定する（Ｓ１４）。本実施形態では、設定部２２は、取引データの振込先口座番号と取引金額とを用いて（具体的には、取引データの振込先口座番号の下ｎ桁と、取引金額の上ｍ桁とを組み合わせて）、チャレンジコードを生成する。図示する例では、振込先口座番号（23431545）の下６桁（431545）と、取引金額（250,000）の上２ケタ（25）とを組み合わせた「43154525」をチャレンジコードとする。
【００３１】
そして、設定部２２は、チャレンジコード（43154525）を、乱数表の各変数セルに振り分ける。図示する変数セルと値（変数）の対応表３３では、各変数セルに対してチャレンジコードを２桁ずつ（「43」、「15」、「45」、「25」）割り当てる。なお、各変数セルに割り当てる値は、トランザクション（ここでは、取引データ）に紐づくものであれば、何桁の数字でもよく、また、数値以外のもの（例えば、英字、仮名などの文字）であってもよい。
【００３２】
そして、認証サーバ２の送信部２３は、所定数の認証セルの位置情報と、設定部２２が設定した各変数セルに対応する値とを、ユーザ端末１に送信する（Ｓ１５）。本実施形態では、複数の認証セルの位置情報とその順番とを示す認証セル情報３２と、変数セルと値の対応表３３と、パスワード入力欄とを含むパスワード入力画面３４を、ユーザ端末１に送信する。また、送信部２３は、ユーザ端末１に送信したパスワード入力画面３４の情報を、ユーザＩＤと対応付けて、図示しない記憶部に記憶しておく。
【００３３】
なお、送信部２３は、認証セル情報３２と、対応表３３とを、異なる通信経路で送信する、または、別々に送信することとしてもよい。例えば、送信部２３は、認証セル情報３２を第１のユーザ端末（例えば、ＰＣブラウザなど）に送信し、対応表３３を第２のユーザ端末（例えば、スマートフォンなど）にメール送信して、認証セル情報３２と対応表３３とを異なる通信経路でユーザに送信することが考えられる。
【００３４】
また、送信部２３は、認証セル情報３２と対応表３３とを１つのパスワード入力画面で同時にユーザ端末１に送信せず、例えば、認証セル情報３２を送信した後に、対応表３３を送信するなどして、異なるタイミングで別々に送信することとしてもよい。このように、異なる通信経路または別々に送信することで、悪意のある第３者にパスワードの生成に必要な情報が漏えいしてしまうリスクを低減し、より高いセキュリティを実現することができる。
【００３５】
また、認証セル情報３２および対応表３３は、口座開設時などの初回においては、郵送または宅配便などにより紙媒体でユーザに通知することも考えられる。
【００３６】
また、パスワード入力画面３４には、Ｓ１１で送信された取引要求に含まれる振込先口座番号および取引金額を設定することとしてもよい。これにより、ユーザは、振込先口座番号および取引金額を確認することができる。
【００３７】
ユーザ端末１は、認証サーバ２から受信したパスワード入力画面３４をディスプレイに表示し、ユーザに提示する。ユーザは、あらかじめ保持している乱数表３１を参照して、パスワード（ワンタイムパスワード）を生成する。
【００３８】
本実施形態では、乱数表を用いたトランザクション署名による認証方法を用いる。具体的には、乱数表における複数の認証セルと順番とが指定され、ユーザが認証セルに対応する値を入力することで認証が行われる。変数セルには、値が設定されていないため、取引要求（トランザクション）が行われる度に、各変数セルに対する値（変数）を対応表３３で提示する。なお、変数セルの値は、取引要求に紐づくチャレンジコードに対応するものであり、取引要求に含まれる取引データによって値が変動する。そして、各変数セルに割り当てられたチャレンジコードと、変数セルを含む乱数表とを同時に保持するユーザ本人のみが、正しいパスワードを生成できることにより、トランザクション署名を実現する。
【００３９】
ユーザは、保持する乱数表３１を参照し、認証セル情報３２で指定された各認証セルに対応する値を、認証セルの順番に従って、パスワード入力画面３４のパスワード入力欄に入力する。固定セルの認証セルについては乱数表３１に設定された値を用い、変数セルの認証セルについては対応表３３に設定された対応する変数セルの値を用いる。
【００４０】
図示する例では、ユーザは、１番目の固定セル（１）については乱数表３１に設定された「98」を、２番目の変数セル（２）については対応表３３の「15」を、３番目の固定セル（３）については乱数表３１に設定された「15」を、４番目の変数セル（４）については対応表３３の「45」を、パスワード入力欄に入力する。
【００４１】
ユーザ端末１は、ユーザが入力したパスワード「98151545」をユーザＩＤとともに、認証サーバ２に送信する（Ｓ１７）。
【００４２】
認証サーバ２の認証部２４は、ユーザ端末１から送信されたパスワードが正しいか否かを認証する（Ｓ１８）。具体的には、認証部２４は、Ｓ１５で図示しない記憶部に記憶したパスワード入力画面３４の情報および当該ユーザＩＤの乱数表３１を用いてパスワード（第１のパスワード）を生成し、当該パスワードとユーザ端末１から送信されたパスワード（第２のパスワード）とが一致するか否かを認証する。具体的には、認証部２４は、ユーザがパスワード入力欄に入力したパスワードの生成方法と同様に、固定セルの認証セルについては乱数表３１に設定された値を用い、変数セルの認証セルについては対応表３３に設定された対応する変数セルの値を用いて、パスワード（第１のパスワード）を生成する。
【００４３】
そして、ユーザ端末１から送信されたパスワードが正しい場合（すなわち、第１のパスワードと第２のパスワードとが一致する場合）、認証サーバ２の取引処理部２５は、Ｓ１１で受信した取引要求で指定された取引データの処理を行い（Ｓ１９）、処理結果をユーザ端末１に送信する（Ｓ２０）。
【００４４】
一方、ユーザ端末１から送信されたパスワードが正しくない場合（すなわち、第１のパスワードと第２のパスワードとが一致しない場合）、認証部２４は、認証に失敗した旨のエラーをユーザ端末１に送信する。
【００４５】
以上説明した第１の実施形態では、乱数表の変数セルに、取引要求（トランザクション）の度に変わるチャレンジコードを対応付けることによって、乱数表を保持すユーザの本人確認性と、トランザクション署名とを組み合わせ、乱数表を用いた認証において、より高いセキュリティを確保することができる。
【００４６】
また、本実施形態では、乱数表の変数セルに、図形、模様、色、写真、絵などの画像を設定する。キーボードから安易に入力できない、また、形容も難しい独特な図形などを、ランダムに組み合わせた変数セルを、各ユーザ固有の乱数表に設定することで、乱数表の数字を入力させるフィッシング詐欺に対抗することができる。すなわち、仮に、悪意のある第三者がフィッシング詐欺を試みたとしても、変数セルにどのようなパターンの画像があるか全パターンを入手することは容易ではなく、フィッシング詐欺にあったユーザも変数セルの画像を入力する術がないため、フィッシング詐欺が成立しにくい。
【００４７】
また、変数セルに画像を設定することで、チャレンジ偽装型マルウェアへの防御（耐性）を強化することができる。
【００４８】
また、本実施形態では、認証セルの位置情報を示す認証セル情報３２と、変数セルと値の対応表３３とを、異なる通信経路で送信する。例えば、認証セル情報３２をＰＣ（第１のユーザ端末）に送信し、対応表３３をスマートフォン（第２のユーザ端末）に携帯メールで送信するなど異なる経路で送信することで、ＰＣブラウザには変数セルの画像が一切露呈しないため、悪意のある第三者による画像パターンの収集を困難にすることができる。また、２経路認証により、高い認証強度を得ることができ、チャレンジ偽装型マルウェアへの防御（耐性）を強化することができる。
【００４９】
＜第２の実施形態＞
次に、本実施形態の第２の実施形態について説明する。
【００５０】
図４は、本発明の第２の実施形態が適用された認証システムの全体構成図である。本実施形態は、第１の実施形態で説明した乱数表によるトランザクション署名を用いた認証システムの変形例である。
【００５１】
図示する認証システムは、ユーザが使用するユーザ端末１と、ネットバンキングサーバ４（アプリケーション装置）と、第１認証サーバ５と、第２認証サーバ６とを有する。ユーザ端末１は、インターネットなどのネットワーク９を介してネットバンキングサーバ４および第１認証サーバ５と接続される。第２認証サーバ６は、図示しないネットワークを介してネットバンキングサーバ４および第１認証サーバ５と接続される。
【００５２】
なお、本実施形態では、金融機関が提供するネットバンキングサービスにおける認証システムを例として以下に説明するが、本発明はこれに限定されるものではなく、ネットバンキングサービス以外の様々なサービスにも適用することができる。
【００５３】
本実施形態のユーザは、ネットバンキングサーバ４が提供するネットバンキングサービスを利用可能なユーザであって、あらかじめネットバンキングサーバ４に登録し、第１の実施形態で説明した乱数表（図２参照）を取得しているものとする。ユーザ端末１には、例えばＰＣ、スマートフォン、タブレットなどを用いることができる。
【００５４】
ネットバンキングサーバ４は、銀行などの金融機関が運用するサーバであって、ネットバンキングサービスをネットワーク９を介してユーザ端末１に提供する。図示するネットバンキングサーバ４は、要求受付部４１と、取引処理部４２と、記憶部４３と、乱数表記憶部４４とを備える。
【００５５】
要求受付部４１は、ユーザ端末１からの要求を受け付けて、パスワード入力画面をユーザ端末１に送信する。取引処理部４２は、第２認証サーバ６から認証成功の認証結果を受信した場合、取引処理（口座振込、預金の残高照会、入出金照会など）を実行する。記憶部４３には、ユーザ端末１から送信された取引データが記憶される。乱数表記憶部４４には、ユーザ毎に、少なくとも１つの変数セルを含む乱数表が記憶される。
【００５６】
第１認証サーバ５は、ユーザ端末１が直接アクセスするフロントエンドサーバである。図示する第１認証サーバ５は、取引データ取得部５１と、送信部５２と、記憶部５３とを備える。取引データ取得部５１は、ユーザが使用するユーザ端末１に表示されたパスワード入力画面の取引データとチャレンジコードとを取得し、記憶部５３に記憶する。送信部５２は、取引データおよびチャレンジコードを第２認証サーバ６に送信する。
【００５７】
第２認証サーバ６は、第１認証サーバ５またはネットバンキングサーバ４からの要求を受け付けて、処理を実行するバックエンドサーバである。図示する第２認証サーバ６は、認証部６１と、認証記憶部６２とを備える。
【００５８】
認証部６１は、第１認証サーバ５が送信した取引データからチャレンジコードを取得し、当該チャレンジコードに基づいて第１のパスワードを生成するとともに、第１認証サーバが送信したチャレンジコードに基づいて第２のパスワードを生成する。そして、認証部６１は、第１のパスワードと、第２のパスワードとが一致するか否かを認証し、認証結果をネットバンキングサーバ４に送信する。認証記憶部６２には、ユーザＩＤと、取引データと、チャレンジコードと、パスワードとが対応付けて記憶される。
【００５９】
上記説明した、ネットバンキングサーバ４、第１認証サーバ５、および第２認証サーバ６のいずれも、例えば、ＣＰＵと、メモリと、ＨＤＤ等の外部記憶装置などを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、ＣＰＵがメモリ上にロードされた所定のプログラムを実行することにより、各装置の各機能が実現される。例えば、ネットバンキングサーバ４、第１認証サーバ５および第２認証サーバ６の各機能は、ネットバンキングサーバ４用のプログラムの場合はネットバンキングサーバ４のＣＰＵが、そして、第１認証サーバ５用のプログラムの場合は第１認証サーバ５のＣＰＵが、そして、第２認証サーバ６用のプログラムの場合は第２認証サーバ６のＣＰＵがそれぞれ実行することにより実現される。
【００６０】
また、ネットバンキングサーバ４用のプログラム、第１認証サーバ５用のプログラム、および第２認証サーバ６用のプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【００６１】
以下に本実施形態の処理について説明する。
【００６２】
図５は、本実施形態のネットバンキング処理を示すシーケンス図である。ここでは、ネットバンキング処理として、振込処理（送金処理）を例として説明する。
【００６３】
ユーザ端末１は、ユーザの指示を受け付けてネットバンキングサーバ４にアクセスし、ネットバンキングサーバ４から送信された取引データの入力画面を表示し、ユーザが入力した取引データを受け付ける（Ｓ４１）。図示する入力画面では、取引データとして、振込先口座番号と、取引金額とを用いるものとする。
【００６４】
そして、ユーザ端末１は、ユーザの指示を受け付けて、取引データとユーザＩＤとを含む取引要求（ここでは、振込要求）を、ネットバンキングサーバ４に送信する（Ｓ４２）。このとき、ユーザ端末１がマルウェア（ウィルス、ワームなど悪意のあるプログラム）に感染しているなどにより、入力画面に入力された取引データが改ざんされてしまい、ユーザが入力した取引データとは違う別の取引データがネットバンキングサーバ４に送信されてしまうリスクがある。ここでは、ユーザ端末１はマルウェアに感染しており、マルウェアより書き換えられた取引データが、ユーザ端末１からネットバンキングサーバ４に送信されるものとする（Ｓ４２）。
【００６５】
ネットバンキングサーバ４の要求受付部４１は、ユーザ端末１から送信された取引データと、ユーザＩＤとを受信し、取引データからチャレンジコードを取得する。チャレンジコードは、ここでは、取引データの振込先口座番号の最後のｎ桁と、取引金額の最初のｍ桁とを組み合わせたコードを、チャレンジコードとして生成する。示する例では、改ざんされた振込先口座番号56760962の最後の６桁「760962」と、改ざんされた取引金額「235,300」の最初の２桁「23」とを組み合わせた「76096223」）をチャレンジコードとする。そして、要求受付部４１は、受信したユーザＩＤおよび取引データと、取引データから取得したチャレンジコードとを対応付けて記憶部４３に記憶する（Ｓ４３）。
【００６６】
そして、要求受付部４１は、ユーザに取引データを確認させるとともに、パスワードを入力させるためのパスワード入力画面を、ユーザ端末１に送信する（Ｓ４４）。
【００６７】
ユーザ端末１は、ネットバンキングサーバ４から送信されたパスワード入力画面をディスプレイに表示する（Ｓ４５）。図示するパスワード入力画面は、第１の実施形態のパスワード入力画面３４（図３参照）と同様であって、取引データ（振込先口座番号、取引金額）と、複数の認証セルの位置情報とその順番とを示す認証セル情報と、変数セルと値の対応表と、パスワードを入力する入力欄とが表示されている。ここでは、マルウェアは、Ｓ４２で書き換えた取引データを、再度、ユーザがＳ４１で入力された取引データに書き換えて、ユーザ端末１のディスプレイに表示するものとする。
【００６８】
ユーザは、表示されたパスワード入力画面の取引データが、自分の意図した正しい内容となっているか否かを確認する。正しい場合、ユーザは、パスワード入力画面の認証セル情報および対応表と、あらかじめ保持していた乱数表とを用いてパスワードを取得する（Ｓ４６）。パスワードの取得方法は、第１の実施形態と同様であるため、ここでは説明を省略する。図示する例では、ユーザは「98091562」のパスワードを取得し、当該パスワードをユーザ端末１のパスワード入力画面に入力する（Ｓ４７）。
【００６９】
ユーザ端末１は、パスワード入力画面に設定されたパスワードと、取引データと、当該画面に埋め込まれたユーザＩＤとを含む取引実行要求をネットバンキングサーバ４に送信する（Ｓ４８）。このとき、ユーザ端末１がマルウェアに感染しているなどにより、取引データが改ざんされ、改ざんされた取引データがネットバンキングサーバ４に送信されてしまう場合がある。
【００７０】
また、本実施形態では、Ｓ４５のパスワード入力画面には、当該画面に入力された取引データおよびチャレンジコードを取得するためのプログラム（例えば、Javascriptなど）と、ユーザＩＤとが埋め込まれているものとする。当該プログラムが実行されることにより、第１認証サーバ５の取引データ取得部５１は、パスワード入力画面に表示された取引データおよびチャレンジコードを取得する（Ｓ５０）。すなわち、パスワード入力画面に表示された取引データおよびチャレンジコードが第１認証サーバ５に送信される。なお、取引データ取得部５１は、パスワード入力画面の対応表に設定された各変数を連結した値（図示する例では、「76096223」）をチャレンジコードとして取得する。このとき、取引データ取得部５１は、パスワード入力画面に埋め込まれたユーザＩＤも合わせて取得する。
【００７１】
そして、取引データ取得部５１は、取引データと、チャレンジコードと、ユーザＩＤとを記憶部５３に記憶する（Ｓ５１）。そして、第１認証サーバ５の送信部５２は、取引データとチャレンジコードとユーザＩＤとを第２認証サーバ６に送信する（Ｓ５２）。
【００７２】
第２認証サーバ６の認証部６１は、第１認証サーバ５から送信された取引データとチャレンジコードとユーザＩＤとを認証記憶部６２に記憶する（Ｓ５３）。そして、認証部６１は、認証記憶部６２に記憶した取引データからチャレンジコードを生成し、当該チャレンジコードに基づいてパスワード（第１のパスワード）を生成する（Ｓ５４）。
【００７３】
ここでは、取引データの振込先口座番号の最後のｎ桁と、取引金額の最初のｍ桁とを組み合わせたコードをチャレンジコードとして生成し、乱数表の各変数セルに振り分ける。図示する例では、振込先口座番号23431545の最後の６桁「431545」と、取引金額「250000」の最初の２桁「25」とを組み合わせた「43154525」をチャレンジコードとし、当該チャレンジコードを乱数表の各変数セルに振り分け、対応表を生成する。
【００７４】
そして、認証部６１は、チャレンジコードを振り分けた対応表と、Ｓ４４で送信したパスワード入力画面の認証セル情報と、当該ユーザＩＤの乱数表とを用いてパスワードを生成する。ここでは、パスワード「9815154」が生成される。なお、認証部６１は、パスワード入力画面および乱数表については、ネットバンキングサーバ４から取得する。そして、認証部６１は、生成したパスワードを、Ｓ５３で記憶したユーザＩＤおよび取引データと対応付けて認証記憶部６２に記憶する。
【００７５】
また、認証部６１は、Ｓ５２で第１認証サーバ５から送信され、認証記憶部６２に記憶したチャレンジコード（図示する例では、「76096223」）を各認証セルに振り分けた対応表と、Ｓ４４で送信したパスワード入力画面の認証セル情報と、当該ユーザＩＤの乱数表とを用いてパスワード（第２のパスワード）を生成する（Ｓ５５）。ここでは、パスワード「98091562」が生成される。
【００７６】
そして、認証部６１は、Ｓ５４で生成した第１のパスワードと、Ｓ５５で生成した第２パスワードとを照合し、一致するか否かを認証する（Ｓ５６）。そして、認証部６１は、認証結果（成功、失敗）をネットバンキングサーバ４に送信する（Ｓ５７）。
【００７７】
パスワードが一致する場合は、認証部６１は、Ｓ４２、Ｓ４４で、マルウェアにより取引データの改ざんが行われていないと判別し、認証に成功した旨の認証結果をネットバンキングサーバ４に送信する。一方、パスワードが一致しない場合は、認証部６１は、Ｓ４２およびＳ４４のいずれかで、マルウェアにより取引データの改ざんが行われたと判別し、認証に失敗した旨の認証結果をネットバンキングサーバ４に送信する。図示する例では、第１のパスワードと、第２のパスワードとは一致しない。
【００７８】
ネットバンキングサーバ４の取引処理部４２は、認証結果に応じて所定の処理を行い（Ｓ５８）、処理に応じた画面をユーザ端末１に送信する（Ｓ５９）。すなわち、第２認証サーバ６の認証結果が成功の場合、取引処理部４２は、Ｓ４３で記憶部４３に記憶された取引データを用いて振込処理などの取引処理を実行し、実行結果をユーザ端末１に送信する。
【００７９】
なお、第２認証サーバ６は、認証結果が成功の場合、一致したパスワードもネットバンキングサーバ４に送信し、ネットバンキングサーバ４の取引処理部４２は、ユーザ端末１から受信したパスワードと、第２認証サーバ６から成功の認証結果とともに受信したパスワードとを照合し、一致する場合にのみ取引処理を実行することとしてもよい。
【００８０】
一方、認証結果が失敗の場合、取引処理部４２は、取引処理を中止し、警告メッセージ（例えば、「ただいま、振込停止中です。マルウェアの感染の疑いがあります。」など）をユーザ端末１に送信する。
【００８１】
ユーザ端末１は、ネットバンキングサーバ４から送信された画面をディスプレイに表示する（Ｓ６０）。
【００８２】
以上説明した本実施形態では、ネットワーク経路上に介在する中間者攻撃を防御し、より高いセキュリティを確保することができる。すなわち、本実施形態では、第１認証サーバ５が送信した取引データからチャレンジコードを取得し、当該チャレンジコードに基づいて第１のパスワードを生成するとともに、第１認証サーバ５が送信したチャレンジコードに基づいて第２のパスワードを生成し、第１のパスワードと第２のパスワードとが一致するかを判別し、一致する場合に取引処理を継続し、一致しない場合は処理を中止する。
【００８３】
パスワード入力画面に表示される取引データは、ユーザに確認させるためのデータである。このため、マルウェアは、Ｓ４１の入力画面に入力された取引データを改ざんしてネットバンキングサーバ４に送信したとしても、Ｓ４５のパスワード入力画面では改ざんした取引データを元の取引データに再度改ざんして、正しい取引データに戻す。一方、チャレンジコードについては、その生成ロジックをマルウェアが理解していなければ、取引データに基づいた正しいチャレンジコードに改ざんすることはできない。そのため、本実施形態では、パスワード入力画面に表示された正しい取引データに基づいて生成されるパスワードと、チャレンジコードに基づいて生成されるパスワードとが不一致になった場合に、マルウェアによる改ざんを検知して処理を中断することができるため、中間者攻撃による被害を未然に防ぐことができる。
【００８４】
なお、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、第１の実施形態の認証サーバ２、および、第２の実施形態の第１認証サーバ５および第２認証サーバ６は、複数のネットバンキングサーバ４が共同利用するものであってもよい。すなわち、これらのサーバ２、４、５は、ＡＳＰ（Application Service Provider）であって、複数のネットバンキングサーバ４にユーザ認証機能を提供するものであってもよい。
【００８５】
また、上記実施形態では、ネットバンキングサービスの認証システムについて説明したが、本発明はこれに限定されず、例えば、オンライントレード、オンラインショッピングなどの他の取引サービスに適用することができる。
【符号の説明】
【００８６】
１  ：ユーザ端末
２  ：認証サーバ
２１：セル抽出部
２２：設定部
２３：送信部
２４：認証部
２５：取引処理部
２６：乱数表記憶部
４  ：ネットバンキングサーバ
４１：要求受付部
４２：取引処理部
４３：記憶部
５  ：第１認証サーバ
５１：取引データ取得部
５２：送信部
５３：記憶部
６  ：第２認証サーバ
６１：認証部
６２：認証記憶部
９  ：ネットワーク
【図１】
0006322549.tif 000002
【図２】
0006322549.tif 000003
【図３】
0006322549.tif 000004
【図４】
0006322549.tif 000005
【図５】
0006322549.tif 000006