(57)【要約】【課題】設備コストの増大を抑制し、かつ、安全性を高められる認証システム、認証方法及び認証プログラムを提供すること。【解決手段】認証システム１において、ユーザ端末１０は、認証サーバから受信したチャレンジ用の乱数及び第１の認証コードによりレスポンス値を生成した後、第２の認証コードにより暗号化レスポンス値を生成して認証サーバ２０へ送信する。認証サーバ２０は、暗号化レスポンス値を復号した第１の検証用レスポンス値と、乱数及び第１の認証コードにより生成した第２の検証用レスポンス値とを比較した認証結果をユーザ端末１０へ通知する。【選択図】図１
2013134530.tif 000002
【特許請求の範囲】
【請求項１】
端末からの要求に応じてサーバが前記端末のユーザを認証する認証システムであって、
前記端末は、
前記サーバに対して認証要求を送信する認証要求部と、
前記認証要求に応じて前記サーバから送信される乱数を受信する乱数受信部と、
前記乱数に対して、第１の認証コードを用いた所定の演算によりレスポンス値を生成する第１の演算部と、
前記レスポンス値に対して、第２の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化部と、
前記暗号化レスポンス値を、前記端末のユーザを識別するＩＤと共に、前記サーバへ送信するレスポンス送信部と、
前記サーバから、前記暗号化レスポンス値に基づく認証結果を受信する結果受信部と、を備え、
前記サーバは、
前記ＩＤに関連付けて、予め前記第１の認証コード及び前記第２の認証コードを記憶する記憶部と、
前記端末から前記認証要求を受信したことに応じて、前記乱数を生成する乱数生成部と、
前記乱数を前記端末へ送信する乱数送信部と、
前記端末から前記ＩＤ及び前記暗号化レスポンス値を受信したことに応じて、当該ＩＤに関連付けられている前記第１の認証コード及び前記第２の認証コードを前記記憶部から抽出する認証コード抽出部と、
前記暗号化レスポンス値に対して、前記第２の認証コードを用いた復号処理により第１の検証用レスポンス値を生成する復号部と、
前記乱数に対して、前記第１の認証コードを用いた前記所定の演算により第２の検証用レスポンス値を生成する第２の演算部と、
前記復号部により生成された前記第１の検証用レスポンス値と前記第２の演算部により生成された前記第２の検証用レスポンス値とが等しいか否かを判定する判定部と、
前記判定部により前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定部により前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信部と、を備える認証システム。
【請求項２】
前記サーバは、第１のサーバ及び第２のサーバで構成され、
前記第１のサーバは、
前記ＩＤに関連付けて、予め前記第１の認証コードを記憶する第１の記憶部と、
前記乱数生成部と、
前記乱数送信部と、
前記ＩＤ及び前記第１の検証用レスポンス値を受信したことに応じて、当該ＩＤに関連付けられている前記第１の認証コードを前記第１の記憶部から抽出する第１の認証コード抽出部と、
前記第２の演算部と、
前記判定部と、
前記結果送信部と、を備え、
前記第２のサーバは、
前記ＩＤに関連付けて、予め前記第２の認証コードを記憶する第２の記憶部と、
前記端末から前記ＩＤ及び前記暗号化レスポンス値を受信したことに応じて、当該ＩＤに関連付けられている前記第２の認証コードを前記第２の記憶部から抽出する第２の認証コード抽出部と、
前記復号部と、
前記復号部により生成された前記第１の検証用レスポンス値を、前記ＩＤと共に前記第１のサーバへ通知する通知部と、を備える請求項１に記載の認証システム。
【請求項３】
前記第２の認証コードは、複数設けられており、
前記暗号化部は、前記複数設けられている第２の認証コードを所定の順序で用いて暗号化処理を繰り返し実行し、
前記復号部は、前記複数設けられている第２の認証コードを前記所定の順序の逆順で用いて復号処理を繰り返し実行する請求項１又は請求項２に記載の認証システム。
【請求項４】
繰り返し実行される前記暗号化処理は、それぞれ異なる暗号化アルゴリズムが用いられる請求項３に記載の認証システム。
【請求項５】
端末からの要求に応じてサーバが前記端末のユーザを認証する認証方法であって、
前記サーバは、前記端末のユーザを識別するＩＤに関連付けて、予め第１の認証コード及び第２の認証コードを記憶する記憶部を備え、
前記端末が、前記サーバに対して認証要求を送信する認証要求ステップと、
前記サーバが、前記端末から前記認証要求を受信したことに応じて、乱数を生成する乱数生成ステップと、
前記サーバが、前記乱数を前記端末へ送信する乱数送信ステップと、
前記端末が、前記乱数を受信する乱数受信ステップと、
前記端末が、前記乱数に対して、前記第１の認証コードを用いた所定の演算によりレスポンス値を生成する第１の演算ステップと、
前記端末が、前記レスポンス値に対して、前記第２の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化ステップと、
前記端末が、前記暗号化レスポンス値を、前記ＩＤと共に、前記サーバへ送信するレスポンス送信ステップと、
前記サーバが、前記端末から前記ＩＤ及び前記暗号化レスポンス値を受信したことに応じて、当該ＩＤに関連付けられている前記第１の認証コード及び前記第２の認証コードを前記記憶部から抽出する認証コード抽出ステップと、
前記サーバが、前記暗号化レスポンス値に対して、前記第２の認証コードを用いた復号処理により第１の検証用レスポンス値を生成する復号ステップと、
前記サーバが、前記乱数に対して、前記第１の認証コードを用いた前記所定の演算により第２の検証用レスポンス値を生成する第２の演算ステップと、
前記サーバが、前記復号ステップにおいて生成された前記第１の検証用レスポンス値と前記第２の演算ステップにおいて生成された前記第２の検証用レスポンス値とが等しいか否かを判定する判定ステップと、
前記サーバが、前記判定ステップにおいて前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定ステップにおいて前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信ステップと、
前記端末が、前記サーバから認証結果を受信する結果受信ステップと、を含む認証方法。
【請求項６】
端末からの要求に応じてサーバに前記端末のユーザを認証させるための認証プログラムであって、
前記サーバは、前記端末のユーザを識別するＩＤに関連付けて、予め第１の認証コード及び第２の認証コードを記憶する記憶部を備え、
前記端末が、前記サーバに対して認証要求を送信する認証要求ステップと、
前記サーバが、前記端末から前記認証要求を受信したことに応じて、乱数を生成する乱数生成ステップと、
前記サーバが、前記乱数を前記端末へ送信する乱数送信ステップと、
前記端末が、前記乱数を受信する乱数受信ステップと、
前記端末が、前記乱数に対して、前記第１の認証コードを用いた所定の演算によりレスポンス値を生成する第１の演算ステップと、
前記端末が、前記レスポンス値に対して、前記第２の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化ステップと、
前記端末が、前記暗号化レスポンス値を、前記ＩＤと共に、前記サーバへ送信するレスポンス送信ステップと、
前記サーバが、前記端末から前記ＩＤ及び前記暗号化レスポンス値を受信したことに応じて、当該ＩＤに関連付けられている前記第１の認証コード及び前記第２の認証コードを前記記憶部から抽出する認証コード抽出ステップと、
前記サーバが、前記暗号化レスポンス値に対して、前記第２の認証コードを用いた復号処理により第１の検証用レスポンス値を生成する復号ステップと、
前記サーバが、前記乱数に対して、前記第１の認証コードを用いた前記所定の演算により第２の検証用レスポンス値を生成する第２の演算ステップと、
前記サーバが、前記復号ステップにおいて生成された前記第１の検証用レスポンス値と前記第２の演算ステップにおいて生成された前記第２の検証用レスポンス値とが等しいか否かを判定する判定ステップと、
前記サーバが、前記判定ステップにおいて前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定ステップにおいて前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信ステップと、
前記端末が、前記サーバから認証結果を受信する結果受信ステップと、を実行させるための認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信サービスにおける認証システム、認証方法及び認証プログラムに関する。
【背景技術】
【０００２】
従来、ユーザは、端末からネットワークを介して様々な通信サービスを利用することができる。このとき、他のユーザや端末等、契約で規定されていないエンティティでサービスが利用されることは、ユーザにとっては、なりすましや乗っ取りの観点で、サービス提供者にとっては、サービスの無断利用の観点で望ましくない。
【０００３】
そこで、ユーザが通信サービスを利用する際には、ユーザ又は端末の正当性を認証するための認証プロセスが実行されることが多い（例えば、特許文献１及び非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−３２３８７４号公報
【非特許文献】
【０００５】
【非特許文献１】ＰＰＰ  Ｃｈａｌｌｅｎｇｅ  Ｈａｎｄｓｈａｋｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ  （ＣＨＡＰ），  ＲＦＣ  １９９４
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、通信サービスにおける上述の認証プロセスでは、ユーザ又は端末等に対応する１つの認証コード（例えば、パスワード、生体情報、端末情報等）の正当性を認証する。したがって、さらに安全性を高めるために複数の認証コードによる認証を行う場合、認証プロセスを複数回行う必要がある。
【０００７】
しかしながら、通信機器は、通常、１回の認証プロセスのみに対応しているため、複数回の認証プロセスを行うプロトコルを組み込むためには、認証サーバの設置の他に通信機器の大幅な改修が必要となり、コストが増大する。
【０００８】
そこで、通信機器の改修を行わないためには、例えば、ユーザ認証と生体認証、又はユーザ認証と端末認証等、２種類の認証を行う場合、認証サーバは、一方の認証でユーザをログインさせた後、改めて他方の認証を行う。しかしながら、この場合、認証サーバは、２種類の認証が完了する前に、少なくとも一方のログインを認めているので、一方の認証を通過した時点で攻撃を許してしまうこととなり、セキュリティ強度が十分でなかった。
【０００９】
本発明は、設備コストの増大を抑制し、かつ、安全性を高められる認証システム、認証方法及び認証プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では、以下のような解決手段を提供する。
【００１１】
（１）端末からの要求に応じてサーバが前記端末のユーザを認証する認証システムであって、前記端末は、前記サーバに対して認証要求を送信する認証要求部と、前記認証要求に応じて前記サーバから送信される乱数を受信する乱数受信部と、前記乱数に対して、第１の認証コードを用いた所定の演算によりレスポンス値を生成する第１の演算部と、前記レスポンス値に対して、第２の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化部と、前記暗号化レスポンス値を、前記端末のユーザを識別するＩＤと共に、前記サーバへ送信するレスポンス送信部と、前記サーバから、前記暗号化レスポンス値に基づく認証結果を受信する結果受信部と、を備え、前記サーバは、前記ＩＤに関連付けて、予め前記第１の認証コード及び前記第２の認証コードを記憶する記憶部と、前記端末から前記認証要求を受信したことに応じて、前記乱数を生成する乱数生成部と、前記乱数を前記端末へ送信する乱数送信部と、前記端末から前記ＩＤ及び前記暗号化レスポンス値を受信したことに応じて、当該ＩＤに関連付けられている前記第１の認証コード及び前記第２の認証コードを前記記憶部から抽出する認証コード抽出部と、前記暗号化レスポンス値に対して、前記第２の認証コードを用いた復号処理により第１の検証用レスポンス値を生成する復号部と、前記乱数に対して、前記第１の認証コードを用いた前記所定の演算により第２の検証用レスポンス値を生成する第２の演算部と、前記復号部により生成された前記第１の検証用レスポンス値と前記第２の演算部により生成された前記第２の検証用レスポンス値とが等しいか否かを判定する判定部と、前記判定部により前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定部により前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信部と、を備える認証システム。
【００１２】
このような構成によれば、複数の認証コードのいずれか１つでも違っていれば認証は成功しないので、たとえ、認証コードのいずれかが漏洩したとしても、全てが漏洩したのでなければ、認証システムは、不正認証を防止できる。このとき、認証システムは、第１の認証コード及び第２の認証コードを１回の認証プロセス内で使用し、複数の認証を同一のレイヤで同時に行うので、認証の時間差は生じず、セキュリティ強度の差が生じない。この結果、認証システムは、単一の認証に比べて、より安全に通信サービスを提供できる。
【００１３】
また、暗号化レスポンス値は、ビット列であり、従来の認証プロセスにおけるレスポンスと見かけ上は相違しないので、送受信されるデータパケットは、既存の認証プロトコルと同様に扱うことができる。したがって、認証システムは、通信機器の改修を必要とせず、設備コストの増大を抑制できる。
【００１４】
（２）前記サーバは、第１のサーバ及び第２のサーバ（プロキシサーバ）で構成され、前記第１のサーバは、前記ＩＤに関連付けて、予め前記第１の認証コードを記憶する第１の記憶部と、前記乱数生成部と、前記乱数送信部と、前記ＩＤ及び前記第１の検証用レスポンス値を受信したことに応じて、当該ＩＤに関連付けられている前記第１の認証コードを前記第１の記憶部から抽出する第１の認証コード抽出部と、前記第２の演算部と、前記判定部と、前記結果送信部と、を備え、前記第２のサーバは、前記ＩＤに関連付けて、予め前記第２の認証コードを記憶する第２の記憶部と、前記端末から前記ＩＤ及び前記暗号化レスポンス値を受信したことに応じて、当該ＩＤに関連付けられている前記第２の認証コードを前記第２の記憶部から抽出する第２の認証コード抽出部と、前記復号部と、前記復号部により生成された前記第１の検証用レスポンス値を、前記ＩＤと共に前記第１のサーバへ通知する通知部と、を備える（１）に記載の認証システム。
【００１５】
このような構成によれば、認証システムにおける認証サーバの入出力データ及び機能は、従来の認証プロセスに用いられるものと同等である。したがって、認証システムは、従来の認証サーバの改修を抑えられる。
【００１６】
（３）前記第２の認証コードは、複数設けられており、前記暗号化部は、前記複数設けられている第２の認証コードを所定の順序で用いて暗号化処理を繰り返し実行し、前記復号部は、前記複数設けられている第２の認証コードを前記所定の順序の逆順で用いて復号処理を繰り返し実行する（１）又は（２）に記載の認証システム。
【００１７】
このような構成によれば、認証システムは、同時に認証できる認証コードの数を２種類に限定せず、３種類以上の認証コードに対応できるので、安全性を高められる。
【００１８】
（４）繰り返し実行される前記暗号化処理は、それぞれ異なる暗号化アルゴリズムが用いられる（３）に記載の認証システム。
【００１９】
このような構成によれば、認証システムは、複数の認証コードのそれぞれに対応して、それぞれ異なる暗号化アルゴリズムを採用して、安全性をさらに高めることができる。
【００２０】
（５）端末からの要求に応じてサーバが前記端末のユーザを認証する認証方法であって、前記サーバは、前記端末のユーザを識別するＩＤに関連付けて、予め第１の認証コード及び第２の認証コードを記憶する記憶部を備え、前記端末が、前記サーバに対して認証要求を送信する認証要求ステップと、前記サーバが、前記端末から前記認証要求を受信したことに応じて、乱数を生成する乱数生成ステップと、前記サーバが、前記乱数を前記端末へ送信する乱数送信ステップと、前記端末が、前記乱数を受信する乱数受信ステップと、前記端末が、前記乱数に対して、前記第１の認証コードを用いた所定の演算によりレスポンス値を生成する第１の演算ステップと、前記端末が、前記レスポンス値に対して、前記第２の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化ステップと、前記端末が、前記暗号化レスポンス値を、前記ＩＤと共に、前記サーバへ送信するレスポンス送信ステップと、前記サーバが、前記端末から前記ＩＤ及び前記暗号化レスポンス値を受信したことに応じて、当該ＩＤに関連付けられている前記第１の認証コード及び前記第２の認証コードを前記記憶部から抽出する認証コード抽出ステップと、前記サーバが、前記暗号化レスポンス値に対して、前記第２の認証コードを用いた復号処理により第１の検証用レスポンス値を生成する復号ステップと、前記サーバが、前記乱数に対して、前記第１の認証コードを用いた前記所定の演算により第２の検証用レスポンス値を生成する第２の演算ステップと、前記サーバが、前記復号ステップにおいて生成された前記第１の検証用レスポンス値と前記第２の演算ステップにおいて生成された前記第２の検証用レスポンス値とが等しいか否かを判定する判定ステップと、前記サーバが、前記判定ステップにおいて前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定ステップにおいて前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信ステップと、前記端末が、前記サーバから認証結果を受信する結果受信ステップと、を含む認証方法。
【００２１】
このような構成によれば、認証方法を認証システムが実行することにより、（１）と同様の効果が期待できる。
【００２２】
（６）端末からの要求に応じてサーバに前記端末のユーザを認証させるための認証プログラムであって、前記サーバは、前記端末のユーザを識別するＩＤに関連付けて、予め第１の認証コード及び第２の認証コードを記憶する記憶部を備え、前記端末が、前記サーバに対して認証要求を送信する認証要求ステップと、前記サーバが、前記端末から前記認証要求を受信したことに応じて、乱数を生成する乱数生成ステップと、前記サーバが、前記乱数を前記端末へ送信する乱数送信ステップと、前記端末が、前記乱数を受信する乱数受信ステップと、前記端末が、前記乱数に対して、前記第１の認証コードを用いた所定の演算によりレスポンス値を生成する第１の演算ステップと、前記端末が、前記レスポンス値に対して、前記第２の認証コードを用いた暗号化処理により暗号化レスポンス値を生成する暗号化ステップと、前記端末が、前記暗号化レスポンス値を、前記ＩＤと共に、前記サーバへ送信するレスポンス送信ステップと、前記サーバが、前記端末から前記ＩＤ及び前記暗号化レスポンス値を受信したことに応じて、当該ＩＤに関連付けられている前記第１の認証コード及び前記第２の認証コードを前記記憶部から抽出する認証コード抽出ステップと、前記サーバが、前記暗号化レスポンス値に対して、前記第２の認証コードを用いた復号処理により第１の検証用レスポンス値を生成する復号ステップと、前記サーバが、前記乱数に対して、前記第１の認証コードを用いた前記所定の演算により第２の検証用レスポンス値を生成する第２の演算ステップと、前記サーバが、前記復号ステップにおいて生成された前記第１の検証用レスポンス値と前記第２の演算ステップにおいて生成された前記第２の検証用レスポンス値とが等しいか否かを判定する判定ステップと、前記サーバが、前記判定ステップにおいて前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しいと判定された場合、認証に成功したことを示す認証結果を前記端末へ送信し、前記判定ステップにおいて前記第１の検証用レスポンス値と前記第２の検証用レスポンス値とが等しくないと判定された場合、認証に失敗したことを示す認証結果を前記端末へ送信する結果送信ステップと、前記端末が、前記サーバから認証結果を受信する結果受信ステップと、を実行させるための認証プログラム。
【００２３】
このような構成によれば、認証プログラムを認証システムに実行させることにより、（１）と同様の効果が期待できる。
【発明の効果】
【００２４】
本発明によれば、認証システムにおける設備コストの増大を抑制し、かつ、安全性を高められる。
【図面の簡単な説明】
【００２５】
【図１】第１実施形態に係る認証システムの機能構成を示すブロック図である。
【図２】第１実施形態に係る認証方法を示すシーケンス図である。
【図３】第２実施形態に係る認証システムの機能構成を示すブロック図である。
【図４】第２実施形態に係る認証方法を示すシーケンス図である。
【発明を実施するための形態】
【００２６】
＜第１実施形態＞
以下、本発明の第１実施形態について説明する。
本実施形態に係る認証システム１は、ユーザ端末１０からの要求に応じて、認証サーバ２０がユーザ端末１０のユーザを認証するシステムである。
【００２７】
図１は、本実施形態に係る認証システム１が有するユーザ端末１０（端末）及び認証サーバ２０（サーバ）の機能構成を示すブロック図である。
【００２８】
ユーザ端末１０は、制御部１１と、記憶部１２と、通信部１３とを備え、さらに、図示しないが、情報処理装置として動作するために、操作部及び表示部等、各種ハードウェアを備えている。
【００２９】
制御部１１は、ユーザ端末１０の全体を制御する部分であり、記憶部１２に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってよい。なお、制御部１１が備える各部の機能は後述する。
【００３０】
記憶部１２は、ハードウェア群をユーザ端末１０として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ＲＯＭ、ＲＡＭ、フラッシュメモリ又はハードディスク（ＨＤＤ）であってよい。具体的には、記憶部１２には、本実施形態の各種機能を制御部１１に実行させるプログラムを記憶し、さらに、ユーザ端末１０のユーザを識別するためのユーザ識別情報（ＩＤ）、及び複数の認証コード（Ｗ１、Ｗ２、・・・）を互いに関連付けて記憶してもよい。
【００３１】
通信部１３は、ネットワークを介して所定のプロトコルにより、外部装置とデータ通信を行うネットワーク・アダプタである。通信部１３は、認証サーバ２０との間で通信を確立し、データを送受信する。
【００３２】
また、制御部１１は、認証要求部１１１と、乱数受信部１１２と、ハッシュ演算部１１３（第１の演算部）と、暗号化部１１４と、レスポンス送信部１１５と、結果受信部１１６とを備える。
【００３３】
認証要求部１１１は、通信サービスを開始したいユーザからの指示入力に応じて、認証サーバ２０に対してユーザ識別情報（ＩＤ）の認証要求を送信する。
【００３４】
乱数受信部１１２は、認証要求に応じて認証サーバから送信される乱数（Ｒ）を受信する。この乱数（Ｒ）は、ＣＨＡＰにおけるチャレンジに相当するデータである。
【００３５】
ハッシュ演算部１１３は、乱数受信部１１２により受信した乱数（Ｒ）に対して、第１の認証コード（Ｗ１）を用いた所定の演算によりレスポンス値（Ｒｅｓ）を生成する。具体的には、ハッシュ演算部１１３は、一方向性ハッシュ関数に第１の認証コード（Ｗ１）と乱数（Ｒ）とを入力し、レスポンス値（Ｒｅｓ：＝Ｈａｓｈ（Ｗ１，Ｒ））を生成する。
【００３６】
ここで、２つの変数が入力される一方向性ハッシュ関数としては、鍵付きハッシュ関数が利用できる。また、入力が１変数である一方向性ハッシュ関数に対して、２つの変数を連接して入力することにより、２つの変数が入力される一方向性ハッシュ関数として代用できる。
【００３７】
暗号化部１１４は、レスポンス値（Ｒｅｓ）に対して、第２の認証コード（Ｗ２）を用いた暗号化処理により暗号化レスポンス値（ＥＲ：＝Ｅｎｃ（Ｗ２，Ｒｅｓ））を生成する。
【００３８】
また、第２の認証コードは、複数設けられてもよい。この場合、暗号化部１１４は、複数設けられている第２の認証コード（Ｗ２、Ｗ３、・・・）を所定の順序で用いて暗号化処理を繰り返し実行する。すなわち、暗号化部１１４は、前の認証コード（例えば、Ｗ２）に基づく暗号化処理によって得られた暗号化レスポンス値（ＥＲ）と、次の認証コード（例えば、Ｗ３）とを、次の暗号化関数の変数として入力する（ＥＲ：＝Ｅｎｃ（Ｗ３，ＥＲ））。
このとき、複数回繰り返し実行される暗号化処理は、それぞれ異なる暗号化アルゴリズムが用いられてもよい。
【００３９】
レスポンス送信部１１５は、暗号化レスポンス値（ＥＲ）を、ユーザ識別情報（ＩＤ）と共に、認証サーバ２０へ送信する。
【００４０】
結果受信部１１６は、認証サーバ２０から、暗号化レスポンス値（ＥＲ）に基づく認証結果として、Ａｃｋ（ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）又はＮａｋ（ｎｏｎ−ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）を受信する。
【００４１】
なお、上述のユーザ識別情報（ＩＤ）、並びに第１の認証コード（Ｗ１）及び第２の認証コード（Ｗ２、Ｗ３、・・・）は、操作部を介してユーザから入力されてもよいし、予め記憶部１２に記憶されていてもよい。
【００４２】
認証サーバ２０は、制御部２１と、記憶部２２と、通信部２３とを備え、さらに、図示しないが、情報処理装置として動作するために、操作部及び表示部等、各種ハードウェアを備えている。
【００４３】
制御部２１は、認証サーバ２０の全体を制御する部分であり、記憶部２２に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部２１は、ＣＰＵであってよい。なお、制御部２１が備える各部の機能は後述する。
【００４４】
記憶部２２は、ハードウェア群を認証サーバ２０として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ＲＯＭ、ＲＡＭ、フラッシュメモリ又はハードディスク（ＨＤＤ）であってよい。具体的には、記憶部２２には、本実施形態の各種機能を制御部２１に実行させるプログラムの他、ユーザ識別情報（ＩＤ）及び複数の認証コード（Ｗ１、Ｗ２、・・・）を互いに関連付けたユーザ情報テーブル２２１を記憶する。
【００４５】
通信部２３は、ネットワークを介して所定のプロトコルにより、外部装置とデータ通信を行うネットワーク・アダプタである。通信部２３は、ユーザ端末１０との間で通信を確立し、データを送受信する。
【００４６】
また、制御部２１は、乱数生成部２１１と、乱数送信部２１２と、認証コード抽出部２１３と、復号部２１４と、ハッシュ演算部２１５（第２の演算部）と、判定部２１６と、結果送信部２１７とを備える。
【００４７】
乱数生成部２１１は、ユーザ端末１０から認証要求を受信したことに応じて、チャレンジ用の乱数（Ｒ）を生成する。
【００４８】
乱数送信部２１２は、乱数生成部２１１により生成された乱数（Ｒ）を、ユーザ端末１０へ送信する。
【００４９】
認証コード抽出部２１３は、ユーザ端末１０からユーザ識別情報（ＩＤ）及び暗号化レスポンス値（ＥＲ）を受信したことに応じて、このユーザ識別情報（ＩＤ）に関連付けられている第１の認証コード（Ｗ１）及び第２の認証コード（Ｗ２、Ｗ３、・・・）をユーザ情報テーブル２２１から抽出する。
【００５０】
復号部２１４は、暗号化レスポンス値（ＥＲ）に対して、第２の認証コード（Ｗ２）を用いた復号処理により第１の検証用レスポンス値（Ｃ：＝Ｄｅｃ（Ｗ２，ＥＲ））を生成する。
また、復号部２１４は、第２の認証コードが複数設けられている場合、これら第２の認証コード（Ｗ２、Ｗ３、・・・）を暗号化部１１４とは逆順で用いて復号処理を繰り返し実行する。
【００５１】
ハッシュ演算部２１５は、乱数生成部２１１により生成された乱数（Ｒ）に対して、第１の認証コード（Ｗ１）を用いた一方向性ハッシュ関数演算により第２の検証用レスポンス値（Ｒｅｓ’：＝Ｈａｓｈ（Ｗ１，Ｒ））を生成する。なお、この一方向性ハッシュ関数は、ユーザ端末１０のハッシュ演算部１１３が用いるものと同一である。
【００５２】
判定部２１６は、復号部２１４により生成された第１の検証用レスポンス値（Ｃ）とハッシュ演算部２１５により生成された第２の検証用レスポンス値（Ｒｅｓ’）とが等しいか否かを判定する。
【００５３】
結果送信部２１７は、判定部２１６により第１の検証用レスポンス値（Ｃ）と第２の検証用レスポンス値（Ｒｅｓ’）とが等しいと判定された場合、認証に成功したことを示す認証結果（Ａｃｋ）をユーザ端末１０へ送信する。一方、判定部２１６により第１の検証用レスポンス値（Ｃ）と第２の検証用レスポンス値（Ｒｅｓ’）とが等しくないと判定された場合、認証に失敗したことを示す認証結果（Ｎａｋ）をユーザ端末１０へ送信する。
【００５４】
図２は、本実施形態に係る認証方法を示すシーケンス図である。
ステップＳ１において、ユーザ端末１０は、認証要求を認証サーバ２０へ送信する。
【００５５】
ステップＳ２において、認証サーバ２０は、ステップＳ１で認証要求を受信したことに応じて、チャレンジ用の乱数（Ｒ）を生成する。
【００５６】
ステップＳ３において、認証サーバ２０は、ステップＳ２で生成された乱数（Ｒ）を、ユーザ端末１０へ送信する。
【００５７】
ステップＳ４において、ユーザ端末１０は、ステップＳ３で受信した乱数（Ｒ）と第１の認証コード（Ｗ１）とを用いて、一方向性ハッシュ関数演算によりレスポンス値（Ｒｅｓ）を生成する。
【００５８】
ステップＳ５において、ユーザ端末１０は、ステップＳ４で生成されたレスポンス値（Ｒｅｓ）を、第２の認証コード（Ｗ２、Ｗ３、・・・）により暗号化し、暗号化レスポンス値（ＥＲ）を生成する。
【００５９】
ステップＳ６において、ユーザ端末１０は、ステップＳ５で生成された暗号化レスポンス値（ＥＲ）と、ユーザ識別情報（ＩＤ）とを、認証サーバ２０へ送信する。
【００６０】
ステップＳ７において、認証サーバ２０は、ステップＳ６で受信したユーザ識別情報（ＩＤ）に関連付けられている第１の認証コード（Ｗ１）及び第２の認証コード（Ｗ２、Ｗ３、・・・）を、ユーザ情報テーブル２２１から抽出する。
【００６１】
ステップＳ８において、認証サーバ２０は、ステップＳ６で受信された暗号化レスポンス値（ＥＲ）を、ステップＳ７で抽出された第２の認証コード（Ｗ２、Ｗ３、・・・）を逆順に用いて復号し、第１の検証用レスポンス値（Ｃ）を生成する。
【００６２】
ステップＳ９において、認証サーバ２０は、ステップＳ２で生成された乱数（Ｒ）と、ステップＳ７で抽出された第１の認証コード（Ｗ１）とを用いて、一方向性ハッシュ関数演算により第２の検証用レスポンス値（Ｒｅｓ’）を生成する。
【００６３】
ステップＳ１０において、認証サーバ２０は、ステップＳ８で生成された第１の検証用レスポンス値（Ｃ）と、ステップＳ９で生成された第２の検証用レスポンス値（Ｒｅｓ’）とを比較する。そして、認証サーバ２０は、両者が同一であれば正規ユーザと判断してＡｃｋを出力し、相違すれば不正ユーザと判断してＮａｋを出力する。
【００６４】
ステップＳ１１において、認証サーバ２０は、ステップＳ１０で出力された認証結果（Ａｃｋ又はＮａｋ）を、ユーザ端末１０へ送信する。
【００６５】
本認証方法では、ユーザ端末１０は、認証リクエストに応じて認証サーバ２０からＣＨＡＰのチャレンジに相当する乱数を受信し、認証サーバ２０へＣＨＡＰのレスポンスに相当する暗号化レスポンス値を送信すると、認証サーバ２０から認証結果が通知される。
【００６６】
以上のように、本実施形態によれば、複数の認証コードのいずれか１つでも違っていれば認証は成功しないので、たとえ、認証コードのいずれかが漏洩したとしても、全てが漏洩したのでなければ、認証システム１は、不正認証を防止できる。このとき、認証システム１は、第１の認証コード及び第２の認証コードを１回の認証プロセス内で使用し、複数の認証を同一のレイヤで同時に行うので、認証の時間差は生じず、セキュリティ強度の差が生じない。この結果、認証システム１は、単一の認証に比べて、より安全に通信サービスを提供できる。
【００６７】
また、暗号化レスポンス値は、ビット列であり、ＣＨＡＰのレスポンスと見かけ上は相違しないので、送受信されるデータパケットは、既存の認証プロトコルと同様に扱うことができる。したがって、認証システム１は、通信機器の改修を必要とせず、設備コストの増大を抑制できる。
【００６８】
また、認証システム１は、同時に認証できる認証コードの数を２種類に限定せず、３種類以上の認証コードに対応できるので、安全性を高められる。
さらに、認証システム１は、各認証コードに対応して、それぞれ異なる暗号化アルゴリズムを採用して、安全性をさらに高めることができる。
【００６９】
＜第２実施形態＞
以下、本発明の第２実施形態について説明する。
本実施形態は、第１実施形態の認証サーバ２０の機能を、認証サーバ２０ａ（第１のサーバ）及びプロキシサーバ３０（第２のサーバ）に分散する構成である。なお、第１実施形態と同様の構成に対しては、同一の符号を付し、説明を省略又は簡略化する。
【００７０】
図３は、本実施形態に係る認証システム１ａが有するユーザ端末１０、認証サーバ２０ａ及びプロキシサーバ３０の機能構成を示すブロック図である。
【００７１】
認証サーバ２０は、第１実施形態と比べて、制御部２１ａの認証コード抽出部２１３ａの機能が異なり、復号部２１４を備えていない。また、記憶部２２ａ（第１の記憶部）のユーザ情報テーブル２２１ａの内容が異なる。
【００７２】
ユーザ情報テーブル２２１ａは、ユーザ識別情報（ＩＤ）及び第１の認証コード（Ｗ１）を互いに関連付けて記憶する。
【００７３】
認証コード抽出部２１３ａは、プロキシサーバ３０からユーザ識別情報（ＩＤ）及び第１の検証用レスポンス値（Ｃ）を受信したことに応じて、このＩＤに関連付けられている第１の認証コード（Ｗ１）をユーザ情報テーブル２２１ａから抽出する。
【００７４】
プロキシサーバ３０は、認証サーバ２０ａと同様に、少なくとも、制御部３１と、記憶部３２（第２の記憶部）と、通信部３３とを備える。
【００７５】
制御部３１は、プロキシサーバ３０の全体を制御する部分であり、記憶部３２に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各種機能を実現している。制御部３１は、ＣＰＵであってよい。なお、制御部３１が備える各部の機能は後述する。
【００７６】
記憶部３２は、ハードウェア群をプロキシサーバ３０として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ＲＯＭ、ＲＡＭ、フラッシュメモリ又はハードディスク（ＨＤＤ）であってよい。具体的には、記憶部３２には、本実施形態の各種機能を制御部３１に実行させるプログラムの他、ユーザ識別情報（ＩＤ）及び第２の認証コード（Ｗ２、Ｗ３、・・・）を互いに関連付けたユーザ情報テーブル３２１を記憶する。
【００７７】
通信部３３は、ネットワークを介して所定のプロトコルにより、外部装置とデータ通信を行うネットワーク・アダプタである。通信部３３は、ユーザ端末１０及び認証サーバ２０ａとの間で通信を確立し、データを送受信する。
【００７８】
また、制御部３１は、認証コード抽出部３１１と、復号部３１２と、通知部３１３とを備える。
【００７９】
認証コード抽出部３１１は、ユーザ端末１０からユーザ識別情報（ＩＤ）及び暗号化レスポンス値（ＥＲ）を受信したことに応じて、このユーザ識別情報（ＩＤ）に関連付けられている第２の認証コード（Ｗ２、Ｗ３、・・・）をユーザ情報テーブル３２１から抽出する。
【００８０】
復号部３１２は、第１実施形態の復号部２１４と同一の機能を有し、暗号化レスポンス値（ＥＲ）に対して、第２の認証コード（Ｗ２）を用いた復号処理により第１の検証用レスポンス値（Ｃ：＝Ｄｅｃ（Ｗ２，ＥＲ））を生成する。
また、復号部３１２は、復号部２１４と同様に、第２の認証コードが複数設けられている場合、これら第２の認証コード（Ｗ２、Ｗ３、・・・）を暗号化部１１４とは逆順で用いて復号処理を繰り返し実行する。
【００８１】
通知部３１３は、復号部３１２により生成された第１の検証用レスポンス値（Ｃ）を、ユーザ識別情報（ＩＤ）と共に認証サーバ２０ａへ通知する。
【００８２】
図４は、本実施形態に係る認証方法を示すシーケンス図である。
ステップＳ１ａ及びステップＳ１ｂにおいて、ユーザ端末１０は、認証要求を、プロキシサーバ３０を介して認証サーバ２０ａへ送信する。
【００８３】
ステップＳ２において、認証サーバ２０ａは、ステップＳ１ｂで認証要求を受信したことに応じて、チャレンジ用の乱数（Ｒ）を生成する。
【００８４】
ステップＳ３ａ及びステップＳ３ｂにおいて、認証サーバ２０は、ステップＳ２で生成された乱数（Ｒ）を、プロキシサーバ３０を介してユーザ端末１０へ送信する。
【００８５】
ステップＳ４において、ユーザ端末１０は、ステップＳ３ｂで受信した乱数（Ｒ）と第１の認証コード（Ｗ１）とを用いて、一方向性ハッシュ関数演算によりレスポンス値（Ｒｅｓ）を生成する。
【００８６】
ステップＳ５において、ユーザ端末１０は、ステップＳ４で生成されたレスポンス値（Ｒｅｓ）を、第２の認証コード（Ｗ２、Ｗ３、・・・）により暗号化し、暗号化レスポンス値（ＥＲ）を生成する。
【００８７】
ステップＳ６ａにおいて、ユーザ端末１０は、ステップＳ５で生成された暗号化レスポンス値（ＥＲ）と、ユーザ識別情報（ＩＤ）とを、プロキシサーバ３０へ送信する。
【００８８】
ステップＳ７ａにおいて、認証サーバ２０ａは、ステップＳ６ａで受信したユーザ識別情報（ＩＤ）に関連付けられている第２の認証コード（Ｗ２、Ｗ３、・・・）を、ユーザ情報テーブル３２１から抽出する。
【００８９】
ステップＳ８において、プロキシサーバ３０は、ステップＳ６ａで受信された暗号化レスポンス値（ＥＲ）を、ステップＳ７ａで抽出された第２の認証コード（Ｗ２、Ｗ３、・・・）を逆順に用いて復号し、第１の検証用レスポンス値（Ｃ）を生成する。
【００９０】
ステップＳ６ｂにおいて、プロキシサーバ３０は、ステップＳ８で生成された第１の検証用レスポンス値（Ｃ）と、ユーザ識別情報（ＩＤ）とを、認証サーバ２０ａへ送信する。
【００９１】
ステップＳ７ｂにおいて、認証サーバ２０ａは、ステップＳ６ｂで受信したユーザ識別情報（ＩＤ）に関連付けられている第１の認証コード（Ｗ１）を、ユーザ情報テーブル２２１から抽出する。
【００９２】
ステップＳ９において、認証サーバ２０ａは、ステップＳ２で生成された乱数（Ｒ）と、ステップＳ７ｂで抽出された第１の認証コード（Ｗ１）とを用いて、一方向性ハッシュ関数演算により第２の検証用レスポンス値（Ｒｅｓ’）を生成する。
【００９３】
ステップＳ１０において、認証サーバ２０ａは、ステップＳ６ｂで受信された第１の検証用レスポンス値（Ｃ）と、ステップＳ９で生成された第２の検証用レスポンス値（Ｒｅｓ’）とを比較する。そして、認証サーバ２０ａは、両者が同一であれば正規ユーザと判断してＡｃｋを出力し、相違すれば不正ユーザと判断してＮａｋを出力する。
【００９４】
ステップＳ１１ａ及びステップＳ１１ｂにおいて、認証サーバ２０ａは、ステップＳ１０で出力された認証結果（Ａｃｋ又はＮａｋ）を、プロキシサーバ３０を介してユーザ端末１０へ送信する。
【００９５】
本認証方法では、プロキシサーバ３０で暗号化レスポンス値が復号された後、この復号された第１の検証用レスポンス値が認証サーバ２０ａへ提供され、認証サーバ２０ａで第２の検証用レスポンス値と比較される。
【００９６】
本実施形態によれば、認証サーバ２０ａの入出力データ及び機能は、従来のＣＨＡＰと同等である。したがって、認証システム１ａでは、第１実施形態と同様の効果が得られると共に、従来の認証サーバの改修を抑えられる。
【００９７】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【００９８】
前述の認証システム１又は認証システム１ａは、通信サービスを提供する際の認証の形態の一例であり、ユーザ端末１０は、サーバ装置、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）又は携帯端末等、様々な情報処理装置（コンピュータ）であってよく、認証サーバ２０についても、同様に、様々な情報処理装置（コンピュータ）であってよい。そして、前述の各機能は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、上記情報処理装置にインストールされる。また、これらのプログラムは、ＣＤ−ＲＯＭのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してコンピュータにダウンロードされることにより配布されてもよい。
【符号の説明】
【００９９】
１、１ａ  認証システム
１０  ユーザ端末（端末）
１１  制御部
１２  記憶部
２０  認証サーバ（サーバ）
２０ａ  認証サーバ（第１のサーバ）
２１、２１ａ  制御部
２２  記憶部
２２ａ  記憶部（第１の記憶部）
３０  プロキシサーバ（第２のサーバ）
３１  制御部
３２  記憶部（第２の記憶部）
１１１  認証要求部
１１２  乱数受信部
１１３  ハッシュ演算部（第１の演算部）
１１４  暗号化部
１１５  レスポンス送信部
１１６  結果受信部
２１１  乱数生成部
２１２  乱数送信部
２１３、２１３ａ  認証コード抽出部
２１４  復号部
２１５  ハッシュ演算部（第２の演算部）
２１６  判定部
２１７  結果送信部
３１１  認証コード抽出部
３１２  復号部
３１３  通知部
【図１】
2013134530.tif 000003
【図２】
2013134530.tif 000004
【図３】
2013134530.tif 000005
【図４】
2013134530.tif 000006