(57)【特許請求の範囲】
【請求項１】
ユーザの端末装置と、前記ユーザの認証を行う認証装置とを有するユーザ認証システムであり、
前記認証装置は、
一方向関数の繰り返し演算によって一連の第１パスワード群を生成するパスワード生成手段と、
前記第１パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、
該シード及び前記第１パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、
前記端末装置から認証パスワードを受信する受信手段と、
前記認証パスワードを受信した時点に有効な検証パスワードを前記第１パスワード群から選定するパスワード選定手段と、
前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、を備え、
前記端末装置は、
前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、
該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第２パスワード群を生成するパスワード生成手段と、
前記受信したパスワード有効期限情報に基づき、前記第２パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
認証実施時に、現在有効なパスワードを前記第２パスワード群から選定するパスワード選定手段と、
前記選定したパスワードを前記認証装置に送信する送信手段と、を備える、
ことを特徴とするユーザ認証システム。
【請求項２】
前記認証装置において、前記判定手段は、前記不一致した場合に、前記検証パスワードを引数とした前記一方向関数の値を検証パスワードとして再度、前記認証パスワードとの比較を行い、一致した場合には認証成功である判定する、
ことを特徴とする請求項１に記載のユーザ認証システム。
【請求項３】
前記パスワード管理手段は、前記パスワード群の各パスワードと各有効期限とを対応付けて記憶するテーブルを有する、
ことを特徴とする請求項１又は２に記載のユーザ認証システム。
【請求項４】
前記パスワード選定手段は、前記パスワード生成手段により、前記選定時に選定するパスワードを生成する、
ことを特徴とする請求項１又は２に記載のユーザ認証システム。
【請求項５】
前記パスワード管理手段は、自装置内の時計の時刻に基づいて有効期限を管理する、
ことを特徴とする請求項１から４のいずれかの項に記載のユーザ認証システム。
【請求項６】
前記パスワード管理手段は、前記シード及びパスワード有効期限情報の授受時点にタイマを発動し、該タイマの時刻に基づいて有効期限を管理する、
ことを特徴とする請求項１から４のいずれかの項に記載のユーザ認証システム。
【請求項７】
ユーザの端末装置との間で前記ユーザの認証を行う認証装置であり、
一方向関数の繰り返し演算によって一連の第１パスワード群を生成するパスワード生成手段と、
前記第１パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、
該シード及び前記第１パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、
前記端末装置から認証パスワードを受信する受信手段と、
前記認証パスワードを受信した時点に有効な検証パスワードを前記第１パスワード群から選定するパスワード選定手段と、
前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、
を備えたことを特徴とする認証装置。
【請求項８】
認証装置との間でユーザの認証を行う端末装置であり、
前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、
該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第２パスワード群を生成するパスワード生成手段と、
前記受信したパスワード有効期限情報に基づき、前記第２パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
認証実施時に、現在有効なパスワードを前記第２パスワード群から選定するパスワード選定手段と、
前記選定したパスワードを前記認証装置に送信する送信手段と、
を備えたことを特徴とする端末装置。
【請求項９】
ユーザの端末装置との間で前記ユーザの認証を行うサーバ処理を行うためのコンピュータプログラムであって、
一方向関数の繰り返し演算によって一連の第１パスワード群を生成するパスワード生成機能と、
前記第１パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、
前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定機能と、
該シード及び前記第１パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信機能と、
前記端末装置から認証パスワードを受信する受信機能と、
前記認証パスワードを受信した時点に有効な検証パスワードを前記第１パスワード群から選定するパスワード選定機能と、
前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１０】
認証装置との間でユーザの認証を行うクライアント処理を行うためのコンピュータプログラムであって、
前記認証装置からシード及びパスワード有効期限情報を受信する受信機能と、
該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第２パスワード群を生成するパスワード生成機能と、
前記受信したパスワード有効期限情報に基づき、前記第２パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、
認証実施時に、現在有効なパスワードを前記第２パスワード群から選定するパスワード選定機能と、
前記選定したパスワードを前記認証装置に送信する送信機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ認証システム、認証装置、端末装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
一般的なサービスシステムにおけるユーザ認証方法においては、各ユーザに対して当該システムの利用が可能な期間を示すユーザ有効期限を設定し、サーバ側で各ユーザのユーザ有効期限を保持してユーザ認証時に当該ユーザのユーザ有効期限をチェックしている。或いは、ユーザが認証に用いるパスワード等の認証情報に、当該ユーザの有効期限と同じ期間の有効期限を与え、パスワードの失効をユーザの有効期限切れとしている。認証情報にある一定の有効期限を与える認証手法としては、例えば、非特許文献１に開示されるTESLA（Timed Efficient Stream Loss-tolerant Authentication）が知られている。TESLAにおいては、まず一方向関数を用いて一連の鍵群（Key Chain）を生成する。そして、各鍵の有効期限（interval duration）を定め、単位区間ごとに随時に鍵を更新する。データ送信者は、送信時の時刻より現在有効となっている鍵を選択する。そして、選択した鍵を用いて送信データのメッセージ認証子（ＭＡＣ；Message Authentication Code）を作成し、そのメッセージ認証子を送信データに付加して送信する。TESLAでは、ある一定時間（key disclosure delay）が経過すると、以前有効であった鍵を全員に公開する。そして、データの受信者は、該当する鍵が公開された後に該受信データのメッセージ認証子を検証する。
【非特許文献１】A. Perrig, et al., “Efficient Authentication and Signature of Multicast Streams over Lossy Channels”, IEEE Symposium on Research in Security and Privacy, pp 56-73, May 2000.
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上述した従来の一般的なサービスシステムにおけるユーザ認証方法では、ユーザ毎の有効期限を適宜サーバ側で更新し保持しなければならない。また、ユーザ有効期限とパスワードは別々に管理されるので、ユーザ認証時にはユーザ有効期限とパスワードの検証を個別に行うことになり、サーバ側の処理が複雑になる。さらに、パスワードの安全性確保のためにパスワードにも有効期限を設定し適宜パスワードを更新するためには、別途、専用のシステムが必要となり、パスワードの管理が複雑になる。このため、通常はユーザ有効期限をパスワードの有効期限としても適用し、当該有効期限が切れるまでは同一のパスワードを使用するようにしているが、ユーザの成りすまし等の不正に対する防御能力が低下するという問題がある。
【０００４】
また、上述したTESLAにおいては、メッセージ認証子を作成した鍵が公開されるまでそのメッセージ認証子の検証を行うことができないため、受信者は該当する鍵が公開されるまで、受信データをバッファリングする必要がある。そのため、受信データの認証を行うまでに若干の待機時間が生じるので、当該データの送信者の有効期限を即時に判断することができない。さらには、攻撃者によって大量のデータが送信されることにより、バッファが溢れ、正規のデータが破棄されるなどの問題が生じる。鍵の有効期限（interval duration）を短く設定すれば、待機時間は短縮されるが、その分、有効期限内にもかかわらず、送信したデータが鍵の公開後のデータであると判断されて破棄される可能性が増し、システムのスループットに悪影響を及ぼす恐れがある。
【０００５】
本発明は、このような事情を考慮してなされたもので、その目的は、ユーザ有効期限の管理とパスワードの更新を一元的に行うことのできるユーザ認証システム、認証装置、端末装置を提供することにある。
【０００６】
また、本発明の他の目的は、本発明の認証装置、端末装置をコンピュータを利用して実現するためのコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明に係るユーザ認証システムは、ユーザの端末装置と、前記ユーザの認証を行う認証装置とを有するユーザ認証システムであり、前記認証装置は、一方向関数の繰り返し演算によって一連の第１パスワード群を生成するパスワード生成手段と、前記第１パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、該シード及び前記第１パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、前記端末装置から認証パスワードを受信する受信手段と、前記認証パスワードを受信した時点に有効な検証パスワードを前記第１パスワード群から選定するパスワード選定手段と、前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、を備え、前記端末装置は、前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第２パスワード群を生成するパスワード生成手段と、前記受信したパスワード有効期限情報に基づき、前記第２パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、認証実施時に、現在有効なパスワードを前記第２パスワード群から選定するパスワード選定手段と、前記選定したパスワードを前記認証装置に送信する送信手段と、を備える、ことを特徴とする。
【０００８】
本発明に係るユーザ認証システムにおいては、前記認証装置において、前記判定手段は、前記不一致した場合に、前記検証パスワードを引数とした前記一方向関数の値を検証パスワードとして再度、前記認証パスワードとの比較を行い、一致した場合には認証成功である判定する、ことを特徴とする。
【０００９】
本発明に係るユーザ認証システムにおいては、前記パスワード管理手段は、前記パスワード群の各パスワードと各有効期限とを対応付けて記憶するテーブルを有する、ことを特徴とする。
【００１０】
本発明に係るユーザ認証システムにおいては、前記パスワード選定手段は、前記パスワード生成手段により、前記選定時に選定するパスワードを生成する、ことを特徴とする。
【００１１】
本発明に係るユーザ認証システムにおいては、前記パスワード管理手段は、自装置内の時計の時刻に基づいて有効期限を管理する、ことを特徴とする。
【００１２】
本発明に係るユーザ認証システムにおいては、前記パスワード管理手段は、前記シード及びパスワード有効期限情報の授受時点にタイマを発動し、該タイマの時刻に基づいて有効期限を管理する、ことを特徴とする。
【００１３】
本発明に係る認証装置は、ユーザの端末装置との間で前記ユーザの認証を行う認証装置であり、一方向関数の繰り返し演算によって一連の第１パスワード群を生成するパスワード生成手段と、前記第１パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、該シード及び前記第１パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、前記端末装置から認証パスワードを受信する受信手段と、前記認証パスワードを受信した時点に有効な検証パスワードを前記第１パスワード群から選定するパスワード選定手段と、前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、を備えたことを特徴とする。
【００１４】
本発明に係る端末装置は、認証装置との間でユーザの認証を行う端末装置であり、前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第２パスワード群を生成するパスワード生成手段と、前記受信したパスワード有効期限情報に基づき、前記第２パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、認証実施時に、現在有効なパスワードを前記第２パスワード群から選定するパスワード選定手段と、前記選定したパスワードを前記認証装置に送信する送信手段と、を備えたことを特徴とする。
【００１５】
本発明に係るコンピュータプログラムは、ユーザの端末装置との間で前記ユーザの認証を行うサーバ処理を行うためのコンピュータプログラムであって、一方向関数の繰り返し演算によって一連の第１パスワード群を生成するパスワード生成機能と、前記第１パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定機能と、該シード及び前記第１パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信機能と、前記端末装置から認証パスワードを受信する受信機能と、前記認証パスワードを受信した時点に有効な検証パスワードを前記第１パスワード群から選定するパスワード選定機能と、前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の認証装置がコンピュータを利用して実現できるようになる。
【００１６】
本発明に係るコンピュータプログラムは、認証装置との間でユーザの認証を行うクライアント処理を行うためのコンピュータプログラムであって、前記認証装置からシード及びパスワード有効期限情報を受信する受信機能と、該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第２パスワード群を生成するパスワード生成機能と、前記受信したパスワード有効期限情報に基づき、前記第２パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、認証実施時に、現在有効なパスワードを前記第２パスワード群から選定するパスワード選定機能と、前記選定したパスワードを前記認証装置に送信する送信機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の端末装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【００１７】
本発明によれば、ユーザ有効期限の管理とパスワードの更新を一元的に行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照し、本発明の一実施形態について説明する。
図１は、本発明の一実施形態に係るユーザ認証システムの構成を示すブロック図である。図１に示すユーザ認証システムは、サーバ装置１０とクライアント装置２０とから構成される。サーバ装置１０とクライアント装置２０は、それぞれ通信部１１、２１を備えており、通信ネットワークを介して相互にデータを送受信する。該通信部１１、２１は、暗号等を用いた安全性の高いデータ通信を行う。
【００１９】
サーバ装置１０において、処理部１２はユーザ認証に係るサーバ処理を行う。記憶部１３は、該サーバ処理に係る各種データを記憶する。クライアント装置２０において、処理部２２はユーザ認証に係るクライアント処理を行う。記憶部２３は、該クライアント処理に係る各種データを記憶する。
【００２０】
以下、本実施形態に係る各実施例を挙げて詳細に説明する。
【実施例１】
【００２１】
実施例１に係るユーザ認証方法は、準備フェーズと認証フェーズを有する。
初めに、図２を参照して、実施例１に係る準備フェーズを説明する。
図２は、本発明に係る実施例１の準備フェーズにおけるシーケンス図である。図２において、先ず、サーバ装置１０は、予めマスター鍵ＭＫを生成し（ステップＳ１）、そのマスター鍵ＭＫを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する（ステップＳ２）。
【００２２】
そのパスワード群生成処理においては、図３のフローチャートに示されるように、先ず、パスワードＰｎにはマスター鍵ＭＫを設定する（ステップＳ１１）。次いで、そのパスワードＰｎを引数の初期値として、一方向関数であるハッシュ関数ｈを用いたパスワード生成をｎ回繰り返し、新たにｎ個のパスワードを生成する（ステップＳ１２〜Ｓ１５）。パスワード生成ステップ（ステップＳ１３、Ｓ１４）では、パスワードＰｊ＋１をハッシュ関数ｈの引数にしたハッシュ値ｈ（Ｐｊ＋１）を計算し、該ハッシュ値ｈ（Ｐｊ＋１）をパスワードＰｊとして記憶する。但し、ｊ＝ｎ−１，ｎ−２，・・・，１，０、である。
このパスワード生成ステップの繰り返しによって、パスワードＰｎからｎ個のパスワードが新たに生成され、合計（ｎ＋１）個のパスワードＰ０〜Ｐｎが生成されて記憶される。
【００２３】
また、その（ｎ＋１）個のパスワードＰ０〜Ｐｎについては、各パスワードＰ０〜Ｐｎの有効期限に対応付けて記憶する。図４には、各パスワードＰ０〜Ｐｎの有効期限の割り当て例が示されている。図４に示されるように、各パスワードＰ０〜Ｐｎには、連続した（ｎ＋１）個の期間０〜ｎがそれぞれの有効期限として分割されて割り当てられる。各期間０〜ｎの長さは一定時間Ｔである。また、図５には、パスワードＰ０〜Ｐｎ及びその各有効期限を記憶するパスワード管理テーブル１３１の構成例が示されている。図５に示されるように、各パスワードＰ０〜Ｐｎは自己の有効期限として割り当てられた期間０〜ｎに各々対応付けされてパスワード管理テーブル１３１に記憶される。
【００２４】
図２に戻り、次いで、サーバ装置１０は、クライアント装置２０から、端末の属性情報を受信する（ステップＳ３）。その端末の属性情報としては、例えば、当該クライアント装置２０を使用するユーザに係る属性や当該クライアント装置２０の在る位置情報などが挙げられる。
【００２５】
次いで、サーバ装置１０は、その受信した端末の属性情報をもとにして、当該ユーザのユーザ有効期限の長さを所定のルールに従って決定する（ステップＳ４）。そのユーザ有効期限長は、一パスワード当たりの有効期限長である一定時間Ｔの整数倍とする。次いで、サーバ装置１０は、その決定したユーザ有効期限長に対応する期間分のパスワードを生成することができるシードを生成する（ステップＳ５）。
【００２６】
そのシード生成処理においては、先ず、現在時刻を含む期間と該期間に続く次の期間との切り替わりの時刻をパスワード管理テーブル１３１から調べ、その切り替わり時刻を最初のパスワードの使用開始時刻ＴＳとして採用する。次いで、その使用開始時刻ＴＳからユーザ有効期限長の経過時点が期間終了時点となる期間をパスワード管理テーブル１３１から調べ、その調べた期間に対応付けられているパスワードをパスワード管理テーブル１３１から取得してシードＳＤに採用する。次いで、使用開始時刻ＴＳから、シードＳＤに採用したパスワードに対応する期間までの間に存在する期間の個数をパスワード管理テーブル１３１から調べ、その期間の個数をシードＳＤから生成するパスワードの個数Ｑとして採用する。また、一パスワード当たりの有効期限長（パスワード有効時間ＴＰ）は、一定時間Ｔである。
【００２７】
上記したシード生成処理について、図６に示される例を用いてより具体的に説明する。また、ここでは、図５のパスワード管理テーブル１３１のデータ例を用いる。
図６の例では、一定時間Ｔは６０秒、ユーザ有効期限長は５分である。図６において、現在時刻を含む期間は、パスワードＰ１に対応付けられている期間１（図５参照）であり、該期間１に続く次の期間２との切り替わりの時刻は２時０分
である。従って、使用開始時刻ＴＳは２時０分に設定する。次いで、その使用開始時刻である２時０分からユーザ有効期限長である５分の経過時点「２時５分」が期間終了時点となる期間は、パスワードＰ６に対応付けられている期間６である。従って、シードＳＤはパスワードＰ６を用いる。次いで、使用開始時刻ＴＳ「２時０分」から、シードＳＤとしてのパスワードＰ６に対応する期間６までの間に存在する期間の個数は、パスワードＰ２，Ｐ３，Ｐ４，Ｐ５の各々に対応する期間２，３，４，５の４個である。従って、シードＳＤ（パスワードＰ６）から生成するパスワードの個数Ｑは４個に設定する。また、パスワード有効時間ＴＰは、一定時間Ｔ「６０秒」に設定する。
【００２８】
これにより、シードＳＤであるパスワードＰ６からは、ハッシュ関数ｈを用いて、「生成するパスワードの個数Ｑ」である４個のパスワードＰ５，Ｐ４，Ｐ３，Ｐ２を順番に生成することができる。そして、各パスワードＰ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６は各々に対応する期間２，３，４，５，６でのみ有効とする。従って、それら５個のパスワードＰ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６は、ユーザ有効期限長「５分」に対応するパスワード群となる。つまり、パスワードＰ２は最初に有効となるものであって、その使用開始時刻ＴＳは２時０分であり、その有効期限は２時０分から２時１分までである。パスワードＰ３はパスワードＰ２の次に有効となるものであって、その有効期限は２時１分から２時２分までである。以降、パスワード有効時間ＴＰである「６０秒」毎に、パスワードＰ４，Ｐ５，Ｐ６の順番で有効となり、最後のパスワードＰ６の有効期限満了時点である２時５分には、全てのパスワードＰ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６は無効とする。
【００２９】
図２に戻り、次いで、サーバ装置１０は、シードＳＤ、パスワード有効時間ＴＰ、生成するパスワードの個数Ｑ及び使用開始時刻ＴＳをクライアント装置２０に送信する（ステップＳ６）。ここで、パスワード有効時間ＴＰ、生成するパスワードの個数Ｑ及び使用開始時刻ＴＳは、ユーザ有効期限を特定する情報（ユーザ有効期限情報）である。つまり、使用開始時刻ＴＳから「パスワード有効時間ＴＰ×生成するパスワードの個数Ｑ」経過時点までの期間が、ユーザ有効期限となる。さらには、各パスワードの有効期限を特定する情報（パスワード有効期限情報）である。つまり、使用開始時刻ＴＳからパスワード有効時間ＴＰおきの各期間が、各パスワードの有効期限となる。
【００３０】
次いで、クライアント装置２０は、そのサーバ装置１０から受信したシードＳＤ等の情報に基づいて、シードＳＤを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する（ステップＳ７）。このパスワード群生成処理においては、シードＳＤを引数の初期値として、一方向関数であるハッシュ関数ｈを用いたパスワード生成を、「生成するパスワードの個数Ｑ」回繰り返し、新たにＱ個のパスワードＰを生成する。
【００３１】
そのクライアント装置２０のパスワード群生成処理について、上記図６の例を用いてより具体的に説明すれば、先ず、シードＳＤ（パスワードＰ６）をハッシュ関数ｈの引数にしたハッシュ値ｈ（Ｐ６）を計算し、該ハッシュ値ｈ（Ｐ６）をパスワードＰ５として記憶する。次いで、パスワードＰ５をハッシュ関数ｈの引数にしたハッシュ値ｈ（Ｐ５）を計算し、該ハッシュ値ｈ（Ｐ５）をパスワードＰ４として記憶する。この操作を合計４回繰り返して、「生成するパスワードの個数Ｑ」である４個のパスワードＰ５，Ｐ４，Ｐ３，Ｐ２を順番に生成し記憶する。この結果、シードＳＤであるパスワードＰ６も含めて合計５個のパスワードＰ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６が生成されて記憶される。
なお、クライアント装置２０で用いられるハッシュ関数ｈは、サーバ装置１０で使用されたものと同じであり、サーバ装置１０との間で予め共有しておく。
【００３２】
また、クライアント装置２０で生成されたＱ個のパスワードＰについては、各パスワードＰの有効期限に対応付けて記憶する。各パスワードＰの有効期限は、使用開始時刻ＴＳ及びパスワード有効時間ＴＰから算出する。この有効期限算出処理について、上記図６の例を用いてより具体的に説明すれば、最初のパスワードＰ２については、使用開始時刻ＴＳ「２時０分」からパスワード有効時間ＴＰ「６０秒」分の期間２を有効期限とする。次のパスワードＰ３については、パスワードＰ２の有効期限終了時点「２時１分」からパスワード有効時間ＴＰ「６０秒」分の期間３を有効期限とする。同様にして、パスワードＰ４についてはパスワードＰ３の有効期限終了時点「２時２分」からパスワード有効時間ＴＰ「６０秒」分の期間４、パスワードＰ５についてはパスワードＰ４の有効期限終了時点「２時３分」からパスワード有効時間ＴＰ「６０秒」分の期間５、パスワードＰ６についてはパスワードＰ６の有効期限終了時点「２時４分」からパスワード有効時間ＴＰ「６０秒」分の期間６、をそれぞれの有効期限とする。
【００３３】
図７には、そのパスワードＰ２〜Ｐ６及びその各有効期限を記憶するパスワード管理テーブル２３１の構成例が示されている。図７に示されるように、各パスワードＰ２〜Ｐ６は自己の有効期限として割り当てられた期間２〜６に各々対応付けされてパスワード管理テーブル２３１に記憶される。この図７の例においては、パスワード管理テーブル２３１には、使用開始時刻ＴＳ「２時０分」からユーザ有効期限長である５分間において、１分おきに順次有効となる５個のパスワードＰ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６が保持されている。つまり、２時０分から２時１分まではパスワードＰ２、２時１分から２時２分まではパスワードＰ３、２時２分から２時３分まではパスワードＰ４、２時３分から２時４分まではパスワードＰ５、２時４分から２時５分まではパスワードＰ６、が各期間２，３，４，５，６における有効なパスワードである。
【００３４】
以上で実施例１に係る準備フェーズが終了する。
上述したように実施例１に係る準備フェーズにおいては、最初のパスワードの使用開始時刻ＴＳからユーザ有効期限長までの期間中に有効となるパスワードであって、パスワード有効時間ＴＰおきに順次有効となる複数のパスワードがサーバ側及びクライアント側の双方で共有される。ここで、ユーザ有効期限は、最初のパスワードの使用開始時刻ＴＳからユーザ有効期限長経過時点までの期間である。つまり、サーバ側及びクライアント側の双方で共有されている全パスワードの有効期限の総期間がユーザ有効期限となる。言い換えれば、ユーザ有効期限を複数の期間に区切り、該期間ごとに固有のパスワードが用意されたことになる。
【００３５】
次に、図８を参照して、実施例１に係る認証フェーズを説明する。
図８は、本発明に係る実施例１の認証フェーズにおけるシーケンス図である。図８において、先ず、クライアント装置２０は、自装置内の時計の現在時刻において有効なパスワードをパスワード管理テーブル２３１から選択し（ステップＳ２１）、該選択したパスワードをサーバ装置１０に送信する（ステップＳ２２）。
【００３６】
次いで、サーバ装置１０は、クライアント装置２０からパスワードを受信すると、自装置内の時計の現在時刻において有効なパスワードをパスワード管理テーブル１３１から選択する（ステップＳ２３）。次いで、サーバ装置１０は、クライアント装置２０から受信したパスワード（認証パスワード）とパスワード管理テーブル１３１から選択したパスワード（検証パスワード）を比較する（ステップＳ２４）。この比較に結果、両者が一致すれば当該ユーザの認証は成功であり、一方、不一致ならば当該ユーザの認証は失敗であると判定する。次いで、サーバ装置１０は、その認証結果をクライアント装置２０に送信する（ステップＳ２５）。
【００３７】
上記した認証処理について、上記図６の例を用いてより具体的に説明する。
先ず、上記した準備フェーズによって、最初のパスワードＰ２の使用開始時刻ＴＳ「２時０分」からユーザ有効期限長「５分」までの期間中「２時０分から２時５分まで」に有効となるパスワードであって、パスワード有効時間ＴＰ「６０秒」おきに順次有効となる５個のパスワードＰ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６がサーバ装置１０及びクライアント装置２０の双方で共有されている。具体的には、サーバ装置１０は、図５のパスワード管理テーブル１３１に、２時０分から２時５分までの１分間隔の各期間２，３，４，５，６における有効パスワードＰ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６を保持している。クライアント装置２０は、図７のパスワード管理テーブル２３１に、２時０分から２時５分までの１分間隔の各期間２，３，４，５，６における有効パスワードＰ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６を保持している。そのサーバ装置１０及びクライアント装置２０の双方のパスワードＰ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６は、ともに同一のハッシュ関数ｈを用いてパスワードＰ６を初期値としたハッシュ関数ｈの繰り返し計算によって得られたものであり、同一である。
【００３８】
次いで、クライアント装置２０は、現在時刻「２時３分３０秒」に有効なパスワードＰ５をパスワード管理テーブル２３１から選択し、そのパスワードＰ５を認証用にサーバ装置１０に送信する（図９参照）。次いで、サーバ装置１０は、クライアント装置２０から認証用のパスワードＰ５を受信すると、現在時刻に有効なパスワードをパスワード管理テーブル１３１から選択して、クライアント装置２０から受信したパスワードＰ５と比較する。この認証処理によって、ユーザ有効期限内の各期間２，３，４，５，６においては、各期間２，３，４，５，６に固有のパスワードＰ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６を用いた期間限定の認証が可能となる。
【００３９】
なお、サーバ装置１０は、上記した認証処理において、クライアント装置２０との間の時刻のずれを考慮した処理を行う。図１０は、サーバ装置１０に係る時刻ずれ補償処理を説明するための説明図である。図１０において、クライアント装置２０は、時刻ｔ１からｔ２の期間において認証を行うために、当該期間に有効なパスワードＰ１を認証パスワードＰｃとしてサーバ装置１０に送信する。ここで、通信ネットワークの伝送遅延等により、サーバ装置１０への認証パスワードＰｃの到着が遅れると、サーバ装置１０は、クライアント装置２０が認証を行おうとした期間の次の期間（時刻ｔ２からｔ３の期間）に、クライアント装置２０からの認証パスワードＰｃ（Ｐ１）を受信する可能性がある。すると、サーバ装置１０は、時刻ｔ２からｔ３の期間に有効なパスワードＰ２を検証パスワードＰｓに選択し、該検証パスワードＰｓ（Ｐ２）とクライアント装置２０からの認証パスワードＰｃ（Ｐ１）を比較し、両者の不一致から認証失敗と判定してしまう。
【００４０】
そこで、そのような事態を防ぐために、先ず、サーバ装置１０は、クライアント装置２０から認証パスワードＰｃを受信した時刻に有効なパスワードを検証パスワードＰｓに選択し、この検証パスワードＰｓと認証パスワードＰｃを比較する（図１０のステップＳ２４１）。次いで、その比較の結果、不一致ならば、該検証パスワードＰｓを引数にしたハッシュ値ｈ（Ｐｓ）を検証パスワードＰｓとして再度、認証パスワードＰｃとの比較を行う（図１０のステップＳ２４２）。この比較の結果、一致したならば認証成功であると判定する。これにより、通信ネットワークの伝送遅延等による時刻ずれに対応することが可能となる。
【００４１】
上述した実施例１によれば、サーバ側及びクライアント側の双方で共有される全パスワードの有効期限の総期間がユーザ有効期限となるので、パスワードの有効期限とユーザ有効期限の管理をまとめて行うことができる。さらに、各パスワードはそれぞれの有効期限に応じて更新されるので、ユーザ有効期限の管理とパスワードの更新を一元的に行うことが可能となる。
【００４２】
また、クライアント側では、ハッシュ関数を用いてシードからパスワードを自動生成することができるので、ユーザ自身によるパスワード更新にかかる手間を省くことが可能となる。
【００４３】
なお、上述した実施例１では、サーバ側及びクライアント側の双方で共有するパスワードを予め生成し記憶するようにしたが、認証時点において当該期間に有効なパスワードをサーバ側及びクライアント側の双方でそれぞれ生成するようにしてもよい。この場合には、シード及びパスワード有効期限情報のみを記憶すればよい。これにより、パスワード群を管理することができる。
【実施例２】
【００４４】
実施例２に係るユーザ認証方法は、上記した実施例１と同様の準備フェーズ及び認証フェーズを有する。本実施例２は、上記した実施例１の変形例であり、各パスワードの有効期限の管理方法が実施例１と異なっている。以下、主に実施例１との差分について説明する。
【００４５】
初めに、図１１を参照して、実施例２に係る準備フェーズを説明する。
図１１は、本発明に係る実施例２の準備フェーズにおけるシーケンス図である。図１１において、先ず、サーバ装置１０は、上記実施例１における図２に示す処理と同様に、マスター鍵ＭＫを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する（ステップＳ３１〜Ｓ３２）。ここで、各パスワードＰは、上記図５と同様に、有効な期間に対応付けてパスワード管理テーブル１３１に保持する。但し、本実施例２では、期間ｉは後述するタイマ時刻に基づいた期間を用いる。
【００４６】
次いで、サーバ装置１０は、クライアント装置２０から端末の属性情報及びクライアント識別情報（クライアントＩＤ）を受信すると（ステップＳ３３）、上記実施例１と同様に、その受信した端末の属性情報をもとにして、当該ユーザのユーザ有効期限の長さを所定のルールに従って決定し（ステップＳ３４）、その決定したユーザ有効期限長に対応する期間分のパスワードを生成することができるシードＳＤを生成する（ステップＳ３５）。
【００４７】
次いで、サーバ装置１０は、タイムスタンプＴＭＳを取得する（ステップＳ３６）。次いで、サーバ装置１０は、シードＳＤ、パスワード有効時間ＴＰ、生成するパスワードの個数Ｑ及びタイムスタンプＴＭＳをクライアント装置２０に送信し（ステップＳ３７）、該送信後にタイマを発動する（ステップＳ３８）。そのタイマは、ユーザごとに設ける。ここで、パスワード有効時間ＴＰ及び生成するパスワードの個数Ｑは、ユーザ有効期限を特定する情報（ユーザ有効期限情報）である。つまり、ステップＳ３８のタイマ発動時点から「パスワード有効時間ＴＰ×生成するパスワードの個数Ｑ」経過時点までの期間が、ユーザ有効期限となる。さらには、各パスワードの有効期限を特定する情報（パスワード有効期限情報）である。つまり、ステップＳ３８のタイマ発動時点からパスワード有効時間ＴＰおきの各期間が、各パスワードの有効期限となる。
【００４８】
上記シード生成処理について、図１２に示される例を用いて具体的に説明する。
図１２の例では、パスワード有効時間ＴＰは６０秒、ユーザ有効期限長は５分である。図１２において、タイマ発動時点はタイマ時刻「０分」である。そのタイマ時刻「０分」からパスワード有効時間ＴＰ「６０秒」ごとの期間０、１，２，３，４，５，６に対して、それぞれパスワードＰ０，Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６が有効となる。ここで、タイマ時刻「０分」をユーザ有効期限の開始時点とすると、ユーザ有効期限の終了時点はタイマ時刻「５分」である。そのタイマ時刻「５分」直前の期間４に有効なパスワードＰ４をシードＳＤに採用する。また、生成するパスワードの個数Ｑは、タイマ時刻「０分」から「５分」までの間に存在する期間の個数である４個に設定する。これにより、シードＳＤ（パスワードＰ４）からは、ハッシュ関数ｈを用いて、「生成するパスワードの個数Ｑ」である４個のパスワードＰ３，Ｐ２，Ｐ１，Ｐ０を順番に生成することができる。そして、各パスワードＰ０，Ｐ１，Ｐ２，Ｐ３，Ｐ４は各々に対応する期間０，１，２，３，４でのみ有効とする。
【００４９】
図１１に戻り、次いで、サーバ装置１０は、タイムスタンプＴＭＳとタイマとクライアントＩＤを対応付ける（ステップＳ３９）。具体的には、図１３に示されるタイマ対応表３００に、タイムスタンプＴＭＳとタイマとクライアントＩＤを対応付けて記憶させる。図１３には、タイマ対応表３００の構成例が示されている。
【００５０】
クライアント装置２０は、サーバ装置１０からシードＳＤ、パスワード有効時間ＴＰ、生成するパスワードの個数Ｑ及びタイムスタンプＴＭＳを受信すると、タイマを発動する（ステップＳ４０）。次いで、クライアント装置２０は、サーバ装置１０から受信したシードＳＤ、パスワード有効時間ＴＰ及び生成するパスワードの個数Ｑに基づいて、シードＳＤを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する（ステップＳ４１）。このパスワード群生成処理においては、上記実施例１と同様に、シードＳＤを初期値として、一方向関数であるハッシュ関数ｈを用いたパスワード生成を、「生成するパスワードの個数Ｑ」回繰り返し、新たにＱ個のパスワードＰを生成する。その各パスワードＰは、上記図７と同様に、有効な期間に対応付けてパスワード管理テーブル２３１に保持する。但し、本実施例２では、期間ｉはタイマ時刻に基づいた期間を用いる。
【００５１】
上記図１２の例では、クライアント装置２０は、シードＳＤ（パスワードＰ４）から、ハッシュ関数ｈを用いて「生成するパスワードの個数Ｑ」である４個のパスワードＰ３，Ｐ２，Ｐ１，Ｐ０を順番に生成する。そして、各パスワードＰ０，Ｐ１，Ｐ２，Ｐ３，Ｐ４を各々の有効期限である期間０，１，２，３，４に対応付けてパスワード管理テーブル２３１に保持する。
【００５２】
次いで、クライアント装置２０は、タイムスタンプＴＭＳとタイマを対応付けて記憶する（ステップＳ４２）。
【００５３】
次に、図１４を参照して、実施例２に係る認証フェーズを説明する。
図１４は、本発明に係る実施例２の認証フェーズにおけるシーケンス図である。図１４において、先ず、クライアント装置２０は、自装置内のタイマ時刻において有効なパスワードをパスワード管理テーブル２３１から選択する（ステップＳ５１）。
【００５４】
次いで、クライアント装置２０は、該選択したパスワードに係るハッシュ値を算出する（ステップＳ５２）。このハッシュ値算出処理においては、先ず、パスワードと、自クライアントＩＤと、タイマに対応付けて記憶しているタイムスタンプＴＭＳとのビット毎の排他的論理和演算を行う。そして、その排他的論理和演算値をハッシュ関数ｈの引数としたハッシュ値を計算する。次いで、クライアント装置２０は、その算出したハッシュ値をサーバ装置１０に送信する（ステップＳ５３）。
例えば、図１５に例示されるように、クライアント装置２０内のタイマ時刻が「３分３０秒」であったならば、該「３分３０秒」を含む期間３において有効なパスワードＰ３を認証パスワードとして選択し、該パスワードＰ３に係るハッシュ値を算出してサーバ装置１０に送信する。
【００５５】
次いで、サーバ装置１０は、クライアント装置２０からハッシュ値を受信すると、タイマ対応表３００を参照して当該クライアント装置２０に係るタイマ及びタイムスタンプＴＭＳを取得する（ステップＳ５４）。次いで、サーバ装置１０は、該タイマ時刻において有効なパスワードを検証パスワードとしてパスワード管理テーブル１３１から選択する（ステップＳ５５）。次いで、サーバ装置１０は、ハッシュ値を算出する（ステップＳ５６）。このハッシュ値算出処理においては、先ず、パスワード管理テーブル１３１から選択したパスワードと、タイマ対応表３００から取得したクライアントＩＤと、タイマ対応表３００から取得したタイムスタンプＴＭＳとのビット毎の排他的論理和演算を行う。そして、その排他的論理和演算値をハッシュ関数ｈの引数としたハッシュ値を計算する。
【００５６】
次いで、サーバ装置１０は、クライアント装置２０から受信したハッシュ値（認証パスワードに係るハッシュ値）と、ステップＳ５６で算出したハッシュ値（検証パスワードに係るハッシュ値）とを比較し（ステップＳ５７）、両者が一致すれば当該ユーザの認証は成功であり、一方、不一致ならば当該ユーザの認証は失敗であると判定する。次いで、サーバ装置１０は、その認証結果をクライアント装置２０に送信する（ステップＳ５８）。
【００５７】
なお、上述した実施例２においても、サーバ装置１０は、上記図１０の時刻ずれ補償処理を行うことが可能であり、該時刻ずれ補償処理によってクライアント装置２０との間の時刻のずれを補償することができる。
【００５８】
また、認証時点において当該期間に有効なパスワードをサーバ側及びクライアント側の双方でそれぞれ生成するようにしてもよい。
【００５９】
上述した実施例２によれば、上記実施例１と同様に、サーバ側及びクライアント側の双方で共有される全パスワードの有効期限の総期間がユーザ有効期限となるので、パスワードの有効期限とユーザ有効期限の管理をまとめて行うことができる。さらに、各パスワードはそれぞれの有効期限に応じて更新されるので、ユーザ有効期限の管理とパスワードの更新を一元的に行うことが可能となる。
【００６０】
なお、実施例２においては、期間によっては同じパスワードが利用されるため、リプレイ攻撃が懸念されるので、上記に例示したタイムスタンプＴＭＳのように毎回異なる値を用いてパスワードに係るハッシュ値を算出し、該ハッシュ値同士を比較することが望ましい。これにより、リプレイ攻撃からの防御が可能となる。また、サーバ側では、定期的にマスター鍵ＭＫを更新してパスワードの更新を行うことがセキュリティ上望ましい。
【００６１】
上述したように本実施形態によれば、ユーザ有効期限の管理とパスワードの更新を一元的に行うことができる。これにより、サーバ側の負担が軽減される。また、有効となるパスワードは一定時間ごとに更新されるので、サービスシステムの安全性を保つことができる。
【００６２】
また、図１に示すサーバ装置１０、クライアント装置２０の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、ユーザ認証に係るサーバ処理、ユーザ認証に係るクライアント処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００６３】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００６４】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００６５】
【図１】本発明の一実施形態に係るユーザ認証システムの構成を示すブロック図である。
【図２】本発明に係る実施例１の準備フェーズにおけるシーケンス図である。
【図３】図２に示すパスワード群生成処理（ステップＳ２）のフローチャートである。
【図４】本発明の実施例１に係る各パスワードＰ０〜Ｐｎの有効期限の割り当て例を示す説明図である。
【図５】本発明の実施例１に係るサーバ装置１０が有するパスワード管理テーブル１３１の構成例を示す図である。
【図６】本発明の実施例１に係るシード生成処理を説明するための説明図である。
【図７】本発明の実施例１に係るクライアント装置２０が有するパスワード管理テーブル２３１の構成例を示す図である。
【図８】本発明に係る実施例１の認証フェーズにおけるシーケンス図である。
【図９】本発明の実施例１に係るパスワード選定処理を説明するための説明図である。
【図１０】本発明の実施例１に係る時刻ずれ補償処理を説明するための説明図である。
【図１１】本発明に係る実施例２の準備フェーズにおけるシーケンス図である。
【図１２】本発明の実施例２に係るシード生成処理を説明するための説明図である。
【図１３】本発明の実施例２に係るタイマ対応表３００の構成例を示す図である。
【図１４】本発明に係る実施例２の認証フェーズにおけるシーケンス図である。
【図１５】本発明の実施例２に係るパスワード選定処理を説明するための説明図である。
【符号の説明】
【００６６】
１０…サーバ装置、１１，２１…通信部、１２，２２…処理部、１３，２３…記憶部、２０…クライアント装置、１３１，２３１…パスワード管理テーブル、３００…タイマ対応表
【図１】
0004704148.tif 000002
【図２】
0004704148.tif 000003
【図３】
0004704148.tif 000004
【図４】
0004704148.tif 000005
【図５】
0004704148.tif 000006
【図６】
0004704148.tif 000007
【図７】
0004704148.tif 000008
【図８】
0004704148.tif 000009
【図９】
0004704148.tif 000010
【図１０】
0004704148.tif 000011
【図１１】
0004704148.tif 000012
【図１２】
0004704148.tif 000013
【図１３】
0004704148.tif 000014
【図１４】
0004704148.tif 000015
【図１５】
0004704148.tif 000016