ユーザ認証システム、認証装置、端末装置及びコンピュータプログラム
【課題】 ユーザ有効期限の管理とパスワードの更新を一元的に行うことを図る。
【解決手段】 サーバ装置10は一方向関数の繰り返し演算によって一連の第1パスワード群を生成し、パスワードの生成順とは逆順に一連の有効期限を対応付け、ユーザ有効期限の終了時点を含む有効期限を有するパスワードをシードとしてクライアント装置20に送信する。クライアント装置20はシードを引数の初期値として一方向関数の繰り返し演算によって一連の第2パスワード群を生成し、パスワードの生成順とは逆順に一連の有効期限を対応付け、認証実施時に現在有効なパスワードを第2パスワード群から選定してサーバ装置10に送信する。サーバ装置10はクライアント装置20からのパスワードを現在有効なパスワードと比較し認証の判定を行う。
【解決手段】 サーバ装置10は一方向関数の繰り返し演算によって一連の第1パスワード群を生成し、パスワードの生成順とは逆順に一連の有効期限を対応付け、ユーザ有効期限の終了時点を含む有効期限を有するパスワードをシードとしてクライアント装置20に送信する。クライアント装置20はシードを引数の初期値として一方向関数の繰り返し演算によって一連の第2パスワード群を生成し、パスワードの生成順とは逆順に一連の有効期限を対応付け、認証実施時に現在有効なパスワードを第2パスワード群から選定してサーバ装置10に送信する。サーバ装置10はクライアント装置20からのパスワードを現在有効なパスワードと比較し認証の判定を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザ認証システム、認証装置、端末装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
一般的なサービスシステムにおけるユーザ認証方法においては、各ユーザに対して当該システムの利用が可能な期間を示すユーザ有効期限を設定し、サーバ側で各ユーザのユーザ有効期限を保持してユーザ認証時に当該ユーザのユーザ有効期限をチェックしている。或いは、ユーザが認証に用いるパスワード等の認証情報に、当該ユーザの有効期限と同じ期間の有効期限を与え、パスワードの失効をユーザの有効期限切れとしている。認証情報にある一定の有効期限を与える認証手法としては、例えば、非特許文献1に開示されるTESLA(Timed Efficient Stream Loss-tolerant Authentication)が知られている。TESLAにおいては、まず一方向関数を用いて一連の鍵群(Key Chain)を生成する。そして、各鍵の有効期限(interval duration)を定め、単位区間ごとに随時に鍵を更新する。データ送信者は、送信時の時刻より現在有効となっている鍵を選択する。そして、選択した鍵を用いて送信データのメッセージ認証子(MAC;Message Authentication Code)を作成し、そのメッセージ認証子を送信データに付加して送信する。TESLAでは、ある一定時間(key disclosure delay)が経過すると、以前有効であった鍵を全員に公開する。そして、データの受信者は、該当する鍵が公開された後に該受信データのメッセージ認証子を検証する。
【非特許文献1】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.
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、上述した従来の一般的なサービスシステムにおけるユーザ認証方法では、ユーザ毎の有効期限を適宜サーバ側で更新し保持しなければならない。また、ユーザ有効期限とパスワードは別々に管理されるので、ユーザ認証時にはユーザ有効期限とパスワードの検証を個別に行うことになり、サーバ側の処理が複雑になる。さらに、パスワードの安全性確保のためにパスワードにも有効期限を設定し適宜パスワードを更新するためには、別途、専用のシステムが必要となり、パスワードの管理が複雑になる。このため、通常はユーザ有効期限をパスワードの有効期限としても適用し、当該有効期限が切れるまでは同一のパスワードを使用するようにしているが、ユーザの成りすまし等の不正に対する防御能力が低下するという問題がある。
【0004】
また、上述したTESLAにおいては、メッセージ認証子を作成した鍵が公開されるまでそのメッセージ認証子の検証を行うことができないため、受信者は該当する鍵が公開されるまで、受信データをバッファリングする必要がある。そのため、受信データの認証を行うまでに若干の待機時間が生じるので、当該データの送信者の有効期限を即時に判断することができない。さらには、攻撃者によって大量のデータが送信されることにより、バッファが溢れ、正規のデータが破棄されるなどの問題が生じる。鍵の有効期限(interval duration)を短く設定すれば、待機時間は短縮されるが、その分、有効期限内にもかかわらず、送信したデータが鍵の公開後のデータであると判断されて破棄される可能性が増し、システムのスループットに悪影響を及ぼす恐れがある。
【0005】
本発明は、このような事情を考慮してなされたもので、その目的は、ユーザ有効期限の管理とパスワードの更新を一元的に行うことのできるユーザ認証システム、認証装置、端末装置を提供することにある。
【0006】
また、本発明の他の目的は、本発明の認証装置、端末装置をコンピュータを利用して実現するためのコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本発明に係るユーザ認証システムは、ユーザの端末装置と、前記ユーザの認証を行う認証装置とを有するユーザ認証システムであり、前記認証装置は、一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成手段と、前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、前記端末装置から認証パスワードを受信する受信手段と、前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定手段と、前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、を備え、前記端末装置は、前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成手段と、前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定手段と、前記選定したパスワードを前記認証装置に送信する送信手段と、を備える、ことを特徴とする。
【0008】
本発明に係るユーザ認証システムにおいては、前記認証装置において、前記判定手段は、前記不一致した場合に、前記検証パスワードを引数とした前記一方向関数の値を検証パスワードとして再度、前記認証パスワードとの比較を行い、一致した場合には認証成功である判定する、ことを特徴とする。
【0009】
本発明に係るユーザ認証システムにおいては、前記パスワード管理手段は、前記パスワード群の各パスワードと各有効期限とを対応付けて記憶するテーブルを有する、ことを特徴とする。
【0010】
本発明に係るユーザ認証システムにおいては、前記パスワード選定手段は、前記パスワード生成手段により、前記選定時に選定するパスワードを生成する、ことを特徴とする。
【0011】
本発明に係るユーザ認証システムにおいては、前記パスワード管理手段は、自装置内の時計の時刻に基づいて有効期限を管理する、ことを特徴とする。
【0012】
本発明に係るユーザ認証システムにおいては、前記パスワード管理手段は、前記シード及びパスワード有効期限情報の授受時点にタイマを発動し、該タイマの時刻に基づいて有効期限を管理する、ことを特徴とする。
【0013】
本発明に係る認証装置は、ユーザの端末装置との間で前記ユーザの認証を行う認証装置であり、一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成手段と、前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、前記端末装置から認証パスワードを受信する受信手段と、前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定手段と、前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、を備えたことを特徴とする。
【0014】
本発明に係る端末装置は、認証装置との間でユーザの認証を行う端末装置であり、前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成手段と、前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定手段と、前記選定したパスワードを前記認証装置に送信する送信手段と、を備えたことを特徴とする。
【0015】
本発明に係るコンピュータプログラムは、ユーザの端末装置との間で前記ユーザの認証を行うサーバ処理を行うためのコンピュータプログラムであって、一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成機能と、前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定機能と、該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信機能と、前記端末装置から認証パスワードを受信する受信機能と、前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定機能と、前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の認証装置がコンピュータを利用して実現できるようになる。
【0016】
本発明に係るコンピュータプログラムは、認証装置との間でユーザの認証を行うクライアント処理を行うためのコンピュータプログラムであって、前記認証装置からシード及びパスワード有効期限情報を受信する受信機能と、該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成機能と、前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定機能と、前記選定したパスワードを前記認証装置に送信する送信機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の端末装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【0017】
本発明によれば、ユーザ有効期限の管理とパスワードの更新を一元的に行うことができる。
【発明を実施するための最良の形態】
【0018】
以下、図面を参照し、本発明の一実施形態について説明する。
図1は、本発明の一実施形態に係るユーザ認証システムの構成を示すブロック図である。図1に示すユーザ認証システムは、サーバ装置10とクライアント装置20とから構成される。サーバ装置10とクライアント装置20は、それぞれ通信部11、21を備えており、通信ネットワークを介して相互にデータを送受信する。該通信部11、21は、暗号等を用いた安全性の高いデータ通信を行う。
【0019】
サーバ装置10において、処理部12はユーザ認証に係るサーバ処理を行う。記憶部13は、該サーバ処理に係る各種データを記憶する。クライアント装置20において、処理部22はユーザ認証に係るクライアント処理を行う。記憶部23は、該クライアント処理に係る各種データを記憶する。
【0020】
以下、本実施形態に係る各実施例を挙げて詳細に説明する。
【実施例1】
【0021】
実施例1に係るユーザ認証方法は、準備フェーズと認証フェーズを有する。
初めに、図2を参照して、実施例1に係る準備フェーズを説明する。
図2は、本発明に係る実施例1の準備フェーズにおけるシーケンス図である。図2において、先ず、サーバ装置10は、予めマスター鍵MKを生成し(ステップS1)、そのマスター鍵MKを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する(ステップS2)。
【0022】
そのパスワード群生成処理においては、図3のフローチャートに示されるように、先ず、パスワードPnにはマスター鍵MKを設定する(ステップS11)。次いで、そのパスワードPnを引数の初期値として、一方向関数であるハッシュ関数hを用いたパスワード生成をn回繰り返し、新たにn個のパスワードを生成する(ステップS12〜S15)。パスワード生成ステップ(ステップS13、S14)では、パスワードPj+1をハッシュ関数hの引数にしたハッシュ値h(Pj+1)を計算し、該ハッシュ値h(Pj+1)をパスワードPjとして記憶する。但し、j=n−1,n−2,・・・,1,0、である。
このパスワード生成ステップの繰り返しによって、パスワードPnからn個のパスワードが新たに生成され、合計(n+1)個のパスワードP0〜Pnが生成されて記憶される。
【0023】
また、その(n+1)個のパスワードP0〜Pnについては、各パスワードP0〜Pnの有効期限に対応付けて記憶する。図4には、各パスワードP0〜Pnの有効期限の割り当て例が示されている。図4に示されるように、各パスワードP0〜Pnには、連続した(n+1)個の期間0〜nがそれぞれの有効期限として分割されて割り当てられる。各期間0〜nの長さは一定時間Tである。また、図5には、パスワードP0〜Pn及びその各有効期限を記憶するパスワード管理テーブル131の構成例が示されている。図5に示されるように、各パスワードP0〜Pnは自己の有効期限として割り当てられた期間0〜nに各々対応付けされてパスワード管理テーブル131に記憶される。
【0024】
図2に戻り、次いで、サーバ装置10は、クライアント装置20から、端末の属性情報を受信する(ステップS3)。その端末の属性情報としては、例えば、当該クライアント装置20を使用するユーザに係る属性や当該クライアント装置20の在る位置情報などが挙げられる。
【0025】
次いで、サーバ装置10は、その受信した端末の属性情報をもとにして、当該ユーザのユーザ有効期限の長さを所定のルールに従って決定する(ステップS4)。そのユーザ有効期限長は、一パスワード当たりの有効期限長である一定時間Tの整数倍とする。次いで、サーバ装置10は、その決定したユーザ有効期限長に対応する期間分のパスワードを生成することができるシードを生成する(ステップS5)。
【0026】
そのシード生成処理においては、先ず、現在時刻を含む期間と該期間に続く次の期間との切り替わりの時刻をパスワード管理テーブル131から調べ、その切り替わり時刻を最初のパスワードの使用開始時刻TSとして採用する。次いで、その使用開始時刻TSからユーザ有効期限長の経過時点が期間終了時点となる期間をパスワード管理テーブル131から調べ、その調べた期間に対応付けられているパスワードをパスワード管理テーブル131から取得してシードSDに採用する。次いで、使用開始時刻TSから、シードSDに採用したパスワードに対応する期間までの間に存在する期間の個数をパスワード管理テーブル131から調べ、その期間の個数をシードSDから生成するパスワードの個数Qとして採用する。また、一パスワード当たりの有効期限長(パスワード有効時間TP)は、一定時間Tである。
【0027】
上記したシード生成処理について、図6に示される例を用いてより具体的に説明する。また、ここでは、図5のパスワード管理テーブル131のデータ例を用いる。
図6の例では、一定時間Tは60秒、ユーザ有効期限長は5分である。図6において、現在時刻を含む期間は、パスワードP1に対応付けられている期間1(図5参照)であり、該期間1に続く次の期間2との切り替わりの時刻は2時0分
である。従って、使用開始時刻TSは2時0分に設定する。次いで、その使用開始時刻である2時0分からユーザ有効期限長である5分の経過時点「2時5分」が期間終了時点となる期間は、パスワードP6に対応付けられている期間6である。従って、シードSDはパスワードP6を用いる。次いで、使用開始時刻TS「2時0分」から、シードSDとしてのパスワードP6に対応する期間6までの間に存在する期間の個数は、パスワードP2,P3,P4,P5の各々に対応する期間2,3,4,5の4個である。従って、シードSD(パスワードP6)から生成するパスワードの個数Qは4個に設定する。また、パスワード有効時間TPは、一定時間T「60秒」に設定する。
【0028】
これにより、シードSDであるパスワードP6からは、ハッシュ関数hを用いて、「生成するパスワードの個数Q」である4個のパスワードP5,P4,P3,P2を順番に生成することができる。そして、各パスワードP2,P3,P4,P5,P6は各々に対応する期間2,3,4,5,6でのみ有効とする。従って、それら5個のパスワードP2,P3,P4,P5,P6は、ユーザ有効期限長「5分」に対応するパスワード群となる。つまり、パスワードP2は最初に有効となるものであって、その使用開始時刻TSは2時0分であり、その有効期限は2時0分から2時1分までである。パスワードP3はパスワードP2の次に有効となるものであって、その有効期限は2時1分から2時2分までである。以降、パスワード有効時間TPである「60秒」毎に、パスワードP4,P5,P6の順番で有効となり、最後のパスワードP6の有効期限満了時点である2時5分には、全てのパスワードP2,P3,P4,P5,P6は無効とする。
【0029】
図2に戻り、次いで、サーバ装置10は、シードSD、パスワード有効時間TP、生成するパスワードの個数Q及び使用開始時刻TSをクライアント装置20に送信する(ステップS6)。ここで、パスワード有効時間TP、生成するパスワードの個数Q及び使用開始時刻TSは、ユーザ有効期限を特定する情報(ユーザ有効期限情報)である。つまり、使用開始時刻TSから「パスワード有効時間TP×生成するパスワードの個数Q」経過時点までの期間が、ユーザ有効期限となる。さらには、各パスワードの有効期限を特定する情報(パスワード有効期限情報)である。つまり、使用開始時刻TSからパスワード有効時間TPおきの各期間が、各パスワードの有効期限となる。
【0030】
次いで、クライアント装置20は、そのサーバ装置10から受信したシードSD等の情報に基づいて、シードSDを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する(ステップS7)。このパスワード群生成処理においては、シードSDを引数の初期値として、一方向関数であるハッシュ関数hを用いたパスワード生成を、「生成するパスワードの個数Q」回繰り返し、新たにQ個のパスワードPを生成する。
【0031】
そのクライアント装置20のパスワード群生成処理について、上記図6の例を用いてより具体的に説明すれば、先ず、シードSD(パスワードP6)をハッシュ関数hの引数にしたハッシュ値h(P6)を計算し、該ハッシュ値h(P6)をパスワードP5として記憶する。次いで、パスワードP5をハッシュ関数hの引数にしたハッシュ値h(P5)を計算し、該ハッシュ値h(P5)をパスワードP4として記憶する。この操作を合計4回繰り返して、「生成するパスワードの個数Q」である4個のパスワードP5,P4,P3,P2を順番に生成し記憶する。この結果、シードSDであるパスワードP6も含めて合計5個のパスワードP2,P3,P4,P5,P6が生成されて記憶される。
なお、クライアント装置20で用いられるハッシュ関数hは、サーバ装置10で使用されたものと同じであり、サーバ装置10との間で予め共有しておく。
【0032】
また、クライアント装置20で生成されたQ個のパスワードPについては、各パスワードPの有効期限に対応付けて記憶する。各パスワードPの有効期限は、使用開始時刻TS及びパスワード有効時間TPから算出する。この有効期限算出処理について、上記図6の例を用いてより具体的に説明すれば、最初のパスワードP2については、使用開始時刻TS「2時0分」からパスワード有効時間TP「60秒」分の期間2を有効期限とする。次のパスワードP3については、パスワードP2の有効期限終了時点「2時1分」からパスワード有効時間TP「60秒」分の期間3を有効期限とする。同様にして、パスワードP4についてはパスワードP3の有効期限終了時点「2時2分」からパスワード有効時間TP「60秒」分の期間4、パスワードP5についてはパスワードP4の有効期限終了時点「2時3分」からパスワード有効時間TP「60秒」分の期間5、パスワードP6についてはパスワードP6の有効期限終了時点「2時4分」からパスワード有効時間TP「60秒」分の期間6、をそれぞれの有効期限とする。
【0033】
図7には、そのパスワードP2〜P6及びその各有効期限を記憶するパスワード管理テーブル231の構成例が示されている。図7に示されるように、各パスワードP2〜P6は自己の有効期限として割り当てられた期間2〜6に各々対応付けされてパスワード管理テーブル231に記憶される。この図7の例においては、パスワード管理テーブル231には、使用開始時刻TS「2時0分」からユーザ有効期限長である5分間において、1分おきに順次有効となる5個のパスワードP2,P3,P4,P5,P6が保持されている。つまり、2時0分から2時1分まではパスワードP2、2時1分から2時2分まではパスワードP3、2時2分から2時3分まではパスワードP4、2時3分から2時4分まではパスワードP5、2時4分から2時5分まではパスワードP6、が各期間2,3,4,5,6における有効なパスワードである。
【0034】
以上で実施例1に係る準備フェーズが終了する。
上述したように実施例1に係る準備フェーズにおいては、最初のパスワードの使用開始時刻TSからユーザ有効期限長までの期間中に有効となるパスワードであって、パスワード有効時間TPおきに順次有効となる複数のパスワードがサーバ側及びクライアント側の双方で共有される。ここで、ユーザ有効期限は、最初のパスワードの使用開始時刻TSからユーザ有効期限長経過時点までの期間である。つまり、サーバ側及びクライアント側の双方で共有されている全パスワードの有効期限の総期間がユーザ有効期限となる。言い換えれば、ユーザ有効期限を複数の期間に区切り、該期間ごとに固有のパスワードが用意されたことになる。
【0035】
次に、図8を参照して、実施例1に係る認証フェーズを説明する。
図8は、本発明に係る実施例1の認証フェーズにおけるシーケンス図である。図8において、先ず、クライアント装置20は、自装置内の時計の現在時刻において有効なパスワードをパスワード管理テーブル231から選択し(ステップS21)、該選択したパスワードをサーバ装置10に送信する(ステップS22)。
【0036】
次いで、サーバ装置10は、クライアント装置20からパスワードを受信すると、自装置内の時計の現在時刻において有効なパスワードをパスワード管理テーブル131から選択する(ステップS23)。次いで、サーバ装置10は、クライアント装置20から受信したパスワード(認証パスワード)とパスワード管理テーブル131から選択したパスワード(検証パスワード)を比較する(ステップS24)。この比較に結果、両者が一致すれば当該ユーザの認証は成功であり、一方、不一致ならば当該ユーザの認証は失敗であると判定する。次いで、サーバ装置10は、その認証結果をクライアント装置20に送信する(ステップS25)。
【0037】
上記した認証処理について、上記図6の例を用いてより具体的に説明する。
先ず、上記した準備フェーズによって、最初のパスワードP2の使用開始時刻TS「2時0分」からユーザ有効期限長「5分」までの期間中「2時0分から2時5分まで」に有効となるパスワードであって、パスワード有効時間TP「60秒」おきに順次有効となる5個のパスワードP2,P3,P4,P5,P6がサーバ装置10及びクライアント装置20の双方で共有されている。具体的には、サーバ装置10は、図5のパスワード管理テーブル131に、2時0分から2時5分までの1分間隔の各期間2,3,4,5,6における有効パスワードP2,P3,P4,P5,P6を保持している。クライアント装置20は、図7のパスワード管理テーブル231に、2時0分から2時5分までの1分間隔の各期間2,3,4,5,6における有効パスワードP2,P3,P4,P5,P6を保持している。そのサーバ装置10及びクライアント装置20の双方のパスワードP2,P3,P4,P5,P6は、ともに同一のハッシュ関数hを用いてパスワードP6を初期値としたハッシュ関数hの繰り返し計算によって得られたものであり、同一である。
【0038】
次いで、クライアント装置20は、現在時刻「2時3分30秒」に有効なパスワードP5をパスワード管理テーブル231から選択し、そのパスワードP5を認証用にサーバ装置10に送信する(図9参照)。次いで、サーバ装置10は、クライアント装置20から認証用のパスワードP5を受信すると、現在時刻に有効なパスワードをパスワード管理テーブル131から選択して、クライアント装置20から受信したパスワードP5と比較する。この認証処理によって、ユーザ有効期限内の各期間2,3,4,5,6においては、各期間2,3,4,5,6に固有のパスワードP2,P3,P4,P5,P6を用いた期間限定の認証が可能となる。
【0039】
なお、サーバ装置10は、上記した認証処理において、クライアント装置20との間の時刻のずれを考慮した処理を行う。図10は、サーバ装置10に係る時刻ずれ補償処理を説明するための説明図である。図10において、クライアント装置20は、時刻t1からt2の期間において認証を行うために、当該期間に有効なパスワードP1を認証パスワードPcとしてサーバ装置10に送信する。ここで、通信ネットワークの伝送遅延等により、サーバ装置10への認証パスワードPcの到着が遅れると、サーバ装置10は、クライアント装置20が認証を行おうとした期間の次の期間(時刻t2からt3の期間)に、クライアント装置20からの認証パスワードPc(P1)を受信する可能性がある。すると、サーバ装置10は、時刻t2からt3の期間に有効なパスワードP2を検証パスワードPsに選択し、該検証パスワードPs(P2)とクライアント装置20からの認証パスワードPc(P1)を比較し、両者の不一致から認証失敗と判定してしまう。
【0040】
そこで、そのような事態を防ぐために、先ず、サーバ装置10は、クライアント装置20から認証パスワードPcを受信した時刻に有効なパスワードを検証パスワードPsに選択し、この検証パスワードPsと認証パスワードPcを比較する(図10のステップS241)。次いで、その比較の結果、不一致ならば、該検証パスワードPsを引数にしたハッシュ値h(Ps)を検証パスワードPsとして再度、認証パスワードPcとの比較を行う(図10のステップS242)。この比較の結果、一致したならば認証成功であると判定する。これにより、通信ネットワークの伝送遅延等による時刻ずれに対応することが可能となる。
【0041】
上述した実施例1によれば、サーバ側及びクライアント側の双方で共有される全パスワードの有効期限の総期間がユーザ有効期限となるので、パスワードの有効期限とユーザ有効期限の管理をまとめて行うことができる。さらに、各パスワードはそれぞれの有効期限に応じて更新されるので、ユーザ有効期限の管理とパスワードの更新を一元的に行うことが可能となる。
【0042】
また、クライアント側では、ハッシュ関数を用いてシードからパスワードを自動生成することができるので、ユーザ自身によるパスワード更新にかかる手間を省くことが可能となる。
【0043】
なお、上述した実施例1では、サーバ側及びクライアント側の双方で共有するパスワードを予め生成し記憶するようにしたが、認証時点において当該期間に有効なパスワードをサーバ側及びクライアント側の双方でそれぞれ生成するようにしてもよい。この場合には、シード及びパスワード有効期限情報のみを記憶すればよい。これにより、パスワード群を管理することができる。
【実施例2】
【0044】
実施例2に係るユーザ認証方法は、上記した実施例1と同様の準備フェーズ及び認証フェーズを有する。本実施例2は、上記した実施例1の変形例であり、各パスワードの有効期限の管理方法が実施例1と異なっている。以下、主に実施例1との差分について説明する。
【0045】
初めに、図11を参照して、実施例2に係る準備フェーズを説明する。
図11は、本発明に係る実施例2の準備フェーズにおけるシーケンス図である。図11において、先ず、サーバ装置10は、上記実施例1における図2に示す処理と同様に、マスター鍵MKを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する(ステップS31〜S32)。ここで、各パスワードPは、上記図5と同様に、有効な期間に対応付けてパスワード管理テーブル131に保持する。但し、本実施例2では、期間iは後述するタイマ時刻に基づいた期間を用いる。
【0046】
次いで、サーバ装置10は、クライアント装置20から端末の属性情報及びクライアント識別情報(クライアントID)を受信すると(ステップS33)、上記実施例1と同様に、その受信した端末の属性情報をもとにして、当該ユーザのユーザ有効期限の長さを所定のルールに従って決定し(ステップS34)、その決定したユーザ有効期限長に対応する期間分のパスワードを生成することができるシードSDを生成する(ステップS35)。
【0047】
次いで、サーバ装置10は、タイムスタンプTMSを取得する(ステップS36)。次いで、サーバ装置10は、シードSD、パスワード有効時間TP、生成するパスワードの個数Q及びタイムスタンプTMSをクライアント装置20に送信し(ステップS37)、該送信後にタイマを発動する(ステップS38)。そのタイマは、ユーザごとに設ける。ここで、パスワード有効時間TP及び生成するパスワードの個数Qは、ユーザ有効期限を特定する情報(ユーザ有効期限情報)である。つまり、ステップS38のタイマ発動時点から「パスワード有効時間TP×生成するパスワードの個数Q」経過時点までの期間が、ユーザ有効期限となる。さらには、各パスワードの有効期限を特定する情報(パスワード有効期限情報)である。つまり、ステップS38のタイマ発動時点からパスワード有効時間TPおきの各期間が、各パスワードの有効期限となる。
【0048】
上記シード生成処理について、図12に示される例を用いて具体的に説明する。
図12の例では、パスワード有効時間TPは60秒、ユーザ有効期限長は5分である。図12において、タイマ発動時点はタイマ時刻「0分」である。そのタイマ時刻「0分」からパスワード有効時間TP「60秒」ごとの期間0、1,2,3,4,5,6に対して、それぞれパスワードP0,P1,P2,P3,P4,P5,P6が有効となる。ここで、タイマ時刻「0分」をユーザ有効期限の開始時点とすると、ユーザ有効期限の終了時点はタイマ時刻「5分」である。そのタイマ時刻「5分」直前の期間4に有効なパスワードP4をシードSDに採用する。また、生成するパスワードの個数Qは、タイマ時刻「0分」から「5分」までの間に存在する期間の個数である4個に設定する。これにより、シードSD(パスワードP4)からは、ハッシュ関数hを用いて、「生成するパスワードの個数Q」である4個のパスワードP3,P2,P1,P0を順番に生成することができる。そして、各パスワードP0,P1,P2,P3,P4は各々に対応する期間0,1,2,3,4でのみ有効とする。
【0049】
図11に戻り、次いで、サーバ装置10は、タイムスタンプTMSとタイマとクライアントIDを対応付ける(ステップS39)。具体的には、図13に示されるタイマ対応表300に、タイムスタンプTMSとタイマとクライアントIDを対応付けて記憶させる。図13には、タイマ対応表300の構成例が示されている。
【0050】
クライアント装置20は、サーバ装置10からシードSD、パスワード有効時間TP、生成するパスワードの個数Q及びタイムスタンプTMSを受信すると、タイマを発動する(ステップS40)。次いで、クライアント装置20は、サーバ装置10から受信したシードSD、パスワード有効時間TP及び生成するパスワードの個数Qに基づいて、シードSDを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する(ステップS41)。このパスワード群生成処理においては、上記実施例1と同様に、シードSDを初期値として、一方向関数であるハッシュ関数hを用いたパスワード生成を、「生成するパスワードの個数Q」回繰り返し、新たにQ個のパスワードPを生成する。その各パスワードPは、上記図7と同様に、有効な期間に対応付けてパスワード管理テーブル231に保持する。但し、本実施例2では、期間iはタイマ時刻に基づいた期間を用いる。
【0051】
上記図12の例では、クライアント装置20は、シードSD(パスワードP4)から、ハッシュ関数hを用いて「生成するパスワードの個数Q」である4個のパスワードP3,P2,P1,P0を順番に生成する。そして、各パスワードP0,P1,P2,P3,P4を各々の有効期限である期間0,1,2,3,4に対応付けてパスワード管理テーブル231に保持する。
【0052】
次いで、クライアント装置20は、タイムスタンプTMSとタイマを対応付けて記憶する(ステップS42)。
【0053】
次に、図14を参照して、実施例2に係る認証フェーズを説明する。
図14は、本発明に係る実施例2の認証フェーズにおけるシーケンス図である。図14において、先ず、クライアント装置20は、自装置内のタイマ時刻において有効なパスワードをパスワード管理テーブル231から選択する(ステップS51)。
【0054】
次いで、クライアント装置20は、該選択したパスワードに係るハッシュ値を算出する(ステップS52)。このハッシュ値算出処理においては、先ず、パスワードと、自クライアントIDと、タイマに対応付けて記憶しているタイムスタンプTMSとのビット毎の排他的論理和演算を行う。そして、その排他的論理和演算値をハッシュ関数hの引数としたハッシュ値を計算する。次いで、クライアント装置20は、その算出したハッシュ値をサーバ装置10に送信する(ステップS53)。
例えば、図15に例示されるように、クライアント装置20内のタイマ時刻が「3分30秒」であったならば、該「3分30秒」を含む期間3において有効なパスワードP3を認証パスワードとして選択し、該パスワードP3に係るハッシュ値を算出してサーバ装置10に送信する。
【0055】
次いで、サーバ装置10は、クライアント装置20からハッシュ値を受信すると、タイマ対応表300を参照して当該クライアント装置20に係るタイマ及びタイムスタンプTMSを取得する(ステップS54)。次いで、サーバ装置10は、該タイマ時刻において有効なパスワードを検証パスワードとしてパスワード管理テーブル131から選択する(ステップS55)。次いで、サーバ装置10は、ハッシュ値を算出する(ステップS56)。このハッシュ値算出処理においては、先ず、パスワード管理テーブル131から選択したパスワードと、タイマ対応表300から取得したクライアントIDと、タイマ対応表300から取得したタイムスタンプTMSとのビット毎の排他的論理和演算を行う。そして、その排他的論理和演算値をハッシュ関数hの引数としたハッシュ値を計算する。
【0056】
次いで、サーバ装置10は、クライアント装置20から受信したハッシュ値(認証パスワードに係るハッシュ値)と、ステップS56で算出したハッシュ値(検証パスワードに係るハッシュ値)とを比較し(ステップS57)、両者が一致すれば当該ユーザの認証は成功であり、一方、不一致ならば当該ユーザの認証は失敗であると判定する。次いで、サーバ装置10は、その認証結果をクライアント装置20に送信する(ステップS58)。
【0057】
なお、上述した実施例2においても、サーバ装置10は、上記図10の時刻ずれ補償処理を行うことが可能であり、該時刻ずれ補償処理によってクライアント装置20との間の時刻のずれを補償することができる。
【0058】
また、認証時点において当該期間に有効なパスワードをサーバ側及びクライアント側の双方でそれぞれ生成するようにしてもよい。
【0059】
上述した実施例2によれば、上記実施例1と同様に、サーバ側及びクライアント側の双方で共有される全パスワードの有効期限の総期間がユーザ有効期限となるので、パスワードの有効期限とユーザ有効期限の管理をまとめて行うことができる。さらに、各パスワードはそれぞれの有効期限に応じて更新されるので、ユーザ有効期限の管理とパスワードの更新を一元的に行うことが可能となる。
【0060】
なお、実施例2においては、期間によっては同じパスワードが利用されるため、リプレイ攻撃が懸念されるので、上記に例示したタイムスタンプTMSのように毎回異なる値を用いてパスワードに係るハッシュ値を算出し、該ハッシュ値同士を比較することが望ましい。これにより、リプレイ攻撃からの防御が可能となる。また、サーバ側では、定期的にマスター鍵MKを更新してパスワードの更新を行うことがセキュリティ上望ましい。
【0061】
上述したように本実施形態によれば、ユーザ有効期限の管理とパスワードの更新を一元的に行うことができる。これにより、サーバ側の負担が軽減される。また、有効となるパスワードは一定時間ごとに更新されるので、サービスシステムの安全性を保つことができる。
【0062】
また、図1に示すサーバ装置10、クライアント装置20の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、ユーザ認証に係るサーバ処理、ユーザ認証に係るクライアント処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0063】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0064】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【0065】
【図1】本発明の一実施形態に係るユーザ認証システムの構成を示すブロック図である。
【図2】本発明に係る実施例1の準備フェーズにおけるシーケンス図である。
【図3】図2に示すパスワード群生成処理(ステップS2)のフローチャートである。
【図4】本発明の実施例1に係る各パスワードP0〜Pnの有効期限の割り当て例を示す説明図である。
【図5】本発明の実施例1に係るサーバ装置10が有するパスワード管理テーブル131の構成例を示す図である。
【図6】本発明の実施例1に係るシード生成処理を説明するための説明図である。
【図7】本発明の実施例1に係るクライアント装置20が有するパスワード管理テーブル231の構成例を示す図である。
【図8】本発明に係る実施例1の認証フェーズにおけるシーケンス図である。
【図9】本発明の実施例1に係るパスワード選定処理を説明するための説明図である。
【図10】本発明の実施例1に係る時刻ずれ補償処理を説明するための説明図である。
【図11】本発明に係る実施例2の準備フェーズにおけるシーケンス図である。
【図12】本発明の実施例2に係るシード生成処理を説明するための説明図である。
【図13】本発明の実施例2に係るタイマ対応表300の構成例を示す図である。
【図14】本発明に係る実施例2の認証フェーズにおけるシーケンス図である。
【図15】本発明の実施例2に係るパスワード選定処理を説明するための説明図である。
【符号の説明】
【0066】
10…サーバ装置、11,21…通信部、12,22…処理部、13,23…記憶部、20…クライアント装置、131,231…パスワード管理テーブル、300…タイマ対応表
【技術分野】
【0001】
本発明は、ユーザ認証システム、認証装置、端末装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
一般的なサービスシステムにおけるユーザ認証方法においては、各ユーザに対して当該システムの利用が可能な期間を示すユーザ有効期限を設定し、サーバ側で各ユーザのユーザ有効期限を保持してユーザ認証時に当該ユーザのユーザ有効期限をチェックしている。或いは、ユーザが認証に用いるパスワード等の認証情報に、当該ユーザの有効期限と同じ期間の有効期限を与え、パスワードの失効をユーザの有効期限切れとしている。認証情報にある一定の有効期限を与える認証手法としては、例えば、非特許文献1に開示されるTESLA(Timed Efficient Stream Loss-tolerant Authentication)が知られている。TESLAにおいては、まず一方向関数を用いて一連の鍵群(Key Chain)を生成する。そして、各鍵の有効期限(interval duration)を定め、単位区間ごとに随時に鍵を更新する。データ送信者は、送信時の時刻より現在有効となっている鍵を選択する。そして、選択した鍵を用いて送信データのメッセージ認証子(MAC;Message Authentication Code)を作成し、そのメッセージ認証子を送信データに付加して送信する。TESLAでは、ある一定時間(key disclosure delay)が経過すると、以前有効であった鍵を全員に公開する。そして、データの受信者は、該当する鍵が公開された後に該受信データのメッセージ認証子を検証する。
【非特許文献1】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.
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、上述した従来の一般的なサービスシステムにおけるユーザ認証方法では、ユーザ毎の有効期限を適宜サーバ側で更新し保持しなければならない。また、ユーザ有効期限とパスワードは別々に管理されるので、ユーザ認証時にはユーザ有効期限とパスワードの検証を個別に行うことになり、サーバ側の処理が複雑になる。さらに、パスワードの安全性確保のためにパスワードにも有効期限を設定し適宜パスワードを更新するためには、別途、専用のシステムが必要となり、パスワードの管理が複雑になる。このため、通常はユーザ有効期限をパスワードの有効期限としても適用し、当該有効期限が切れるまでは同一のパスワードを使用するようにしているが、ユーザの成りすまし等の不正に対する防御能力が低下するという問題がある。
【0004】
また、上述したTESLAにおいては、メッセージ認証子を作成した鍵が公開されるまでそのメッセージ認証子の検証を行うことができないため、受信者は該当する鍵が公開されるまで、受信データをバッファリングする必要がある。そのため、受信データの認証を行うまでに若干の待機時間が生じるので、当該データの送信者の有効期限を即時に判断することができない。さらには、攻撃者によって大量のデータが送信されることにより、バッファが溢れ、正規のデータが破棄されるなどの問題が生じる。鍵の有効期限(interval duration)を短く設定すれば、待機時間は短縮されるが、その分、有効期限内にもかかわらず、送信したデータが鍵の公開後のデータであると判断されて破棄される可能性が増し、システムのスループットに悪影響を及ぼす恐れがある。
【0005】
本発明は、このような事情を考慮してなされたもので、その目的は、ユーザ有効期限の管理とパスワードの更新を一元的に行うことのできるユーザ認証システム、認証装置、端末装置を提供することにある。
【0006】
また、本発明の他の目的は、本発明の認証装置、端末装置をコンピュータを利用して実現するためのコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本発明に係るユーザ認証システムは、ユーザの端末装置と、前記ユーザの認証を行う認証装置とを有するユーザ認証システムであり、前記認証装置は、一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成手段と、前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、前記端末装置から認証パスワードを受信する受信手段と、前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定手段と、前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、を備え、前記端末装置は、前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成手段と、前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定手段と、前記選定したパスワードを前記認証装置に送信する送信手段と、を備える、ことを特徴とする。
【0008】
本発明に係るユーザ認証システムにおいては、前記認証装置において、前記判定手段は、前記不一致した場合に、前記検証パスワードを引数とした前記一方向関数の値を検証パスワードとして再度、前記認証パスワードとの比較を行い、一致した場合には認証成功である判定する、ことを特徴とする。
【0009】
本発明に係るユーザ認証システムにおいては、前記パスワード管理手段は、前記パスワード群の各パスワードと各有効期限とを対応付けて記憶するテーブルを有する、ことを特徴とする。
【0010】
本発明に係るユーザ認証システムにおいては、前記パスワード選定手段は、前記パスワード生成手段により、前記選定時に選定するパスワードを生成する、ことを特徴とする。
【0011】
本発明に係るユーザ認証システムにおいては、前記パスワード管理手段は、自装置内の時計の時刻に基づいて有効期限を管理する、ことを特徴とする。
【0012】
本発明に係るユーザ認証システムにおいては、前記パスワード管理手段は、前記シード及びパスワード有効期限情報の授受時点にタイマを発動し、該タイマの時刻に基づいて有効期限を管理する、ことを特徴とする。
【0013】
本発明に係る認証装置は、ユーザの端末装置との間で前記ユーザの認証を行う認証装置であり、一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成手段と、前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、前記端末装置から認証パスワードを受信する受信手段と、前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定手段と、前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、を備えたことを特徴とする。
【0014】
本発明に係る端末装置は、認証装置との間でユーザの認証を行う端末装置であり、前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成手段と、前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定手段と、前記選定したパスワードを前記認証装置に送信する送信手段と、を備えたことを特徴とする。
【0015】
本発明に係るコンピュータプログラムは、ユーザの端末装置との間で前記ユーザの認証を行うサーバ処理を行うためのコンピュータプログラムであって、一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成機能と、前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定機能と、該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信機能と、前記端末装置から認証パスワードを受信する受信機能と、前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定機能と、前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の認証装置がコンピュータを利用して実現できるようになる。
【0016】
本発明に係るコンピュータプログラムは、認証装置との間でユーザの認証を行うクライアント処理を行うためのコンピュータプログラムであって、前記認証装置からシード及びパスワード有効期限情報を受信する受信機能と、該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成機能と、前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定機能と、前記選定したパスワードを前記認証装置に送信する送信機能と、をコンピュータに実現させることを特徴とする。
これにより、前述の端末装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【0017】
本発明によれば、ユーザ有効期限の管理とパスワードの更新を一元的に行うことができる。
【発明を実施するための最良の形態】
【0018】
以下、図面を参照し、本発明の一実施形態について説明する。
図1は、本発明の一実施形態に係るユーザ認証システムの構成を示すブロック図である。図1に示すユーザ認証システムは、サーバ装置10とクライアント装置20とから構成される。サーバ装置10とクライアント装置20は、それぞれ通信部11、21を備えており、通信ネットワークを介して相互にデータを送受信する。該通信部11、21は、暗号等を用いた安全性の高いデータ通信を行う。
【0019】
サーバ装置10において、処理部12はユーザ認証に係るサーバ処理を行う。記憶部13は、該サーバ処理に係る各種データを記憶する。クライアント装置20において、処理部22はユーザ認証に係るクライアント処理を行う。記憶部23は、該クライアント処理に係る各種データを記憶する。
【0020】
以下、本実施形態に係る各実施例を挙げて詳細に説明する。
【実施例1】
【0021】
実施例1に係るユーザ認証方法は、準備フェーズと認証フェーズを有する。
初めに、図2を参照して、実施例1に係る準備フェーズを説明する。
図2は、本発明に係る実施例1の準備フェーズにおけるシーケンス図である。図2において、先ず、サーバ装置10は、予めマスター鍵MKを生成し(ステップS1)、そのマスター鍵MKを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する(ステップS2)。
【0022】
そのパスワード群生成処理においては、図3のフローチャートに示されるように、先ず、パスワードPnにはマスター鍵MKを設定する(ステップS11)。次いで、そのパスワードPnを引数の初期値として、一方向関数であるハッシュ関数hを用いたパスワード生成をn回繰り返し、新たにn個のパスワードを生成する(ステップS12〜S15)。パスワード生成ステップ(ステップS13、S14)では、パスワードPj+1をハッシュ関数hの引数にしたハッシュ値h(Pj+1)を計算し、該ハッシュ値h(Pj+1)をパスワードPjとして記憶する。但し、j=n−1,n−2,・・・,1,0、である。
このパスワード生成ステップの繰り返しによって、パスワードPnからn個のパスワードが新たに生成され、合計(n+1)個のパスワードP0〜Pnが生成されて記憶される。
【0023】
また、その(n+1)個のパスワードP0〜Pnについては、各パスワードP0〜Pnの有効期限に対応付けて記憶する。図4には、各パスワードP0〜Pnの有効期限の割り当て例が示されている。図4に示されるように、各パスワードP0〜Pnには、連続した(n+1)個の期間0〜nがそれぞれの有効期限として分割されて割り当てられる。各期間0〜nの長さは一定時間Tである。また、図5には、パスワードP0〜Pn及びその各有効期限を記憶するパスワード管理テーブル131の構成例が示されている。図5に示されるように、各パスワードP0〜Pnは自己の有効期限として割り当てられた期間0〜nに各々対応付けされてパスワード管理テーブル131に記憶される。
【0024】
図2に戻り、次いで、サーバ装置10は、クライアント装置20から、端末の属性情報を受信する(ステップS3)。その端末の属性情報としては、例えば、当該クライアント装置20を使用するユーザに係る属性や当該クライアント装置20の在る位置情報などが挙げられる。
【0025】
次いで、サーバ装置10は、その受信した端末の属性情報をもとにして、当該ユーザのユーザ有効期限の長さを所定のルールに従って決定する(ステップS4)。そのユーザ有効期限長は、一パスワード当たりの有効期限長である一定時間Tの整数倍とする。次いで、サーバ装置10は、その決定したユーザ有効期限長に対応する期間分のパスワードを生成することができるシードを生成する(ステップS5)。
【0026】
そのシード生成処理においては、先ず、現在時刻を含む期間と該期間に続く次の期間との切り替わりの時刻をパスワード管理テーブル131から調べ、その切り替わり時刻を最初のパスワードの使用開始時刻TSとして採用する。次いで、その使用開始時刻TSからユーザ有効期限長の経過時点が期間終了時点となる期間をパスワード管理テーブル131から調べ、その調べた期間に対応付けられているパスワードをパスワード管理テーブル131から取得してシードSDに採用する。次いで、使用開始時刻TSから、シードSDに採用したパスワードに対応する期間までの間に存在する期間の個数をパスワード管理テーブル131から調べ、その期間の個数をシードSDから生成するパスワードの個数Qとして採用する。また、一パスワード当たりの有効期限長(パスワード有効時間TP)は、一定時間Tである。
【0027】
上記したシード生成処理について、図6に示される例を用いてより具体的に説明する。また、ここでは、図5のパスワード管理テーブル131のデータ例を用いる。
図6の例では、一定時間Tは60秒、ユーザ有効期限長は5分である。図6において、現在時刻を含む期間は、パスワードP1に対応付けられている期間1(図5参照)であり、該期間1に続く次の期間2との切り替わりの時刻は2時0分
である。従って、使用開始時刻TSは2時0分に設定する。次いで、その使用開始時刻である2時0分からユーザ有効期限長である5分の経過時点「2時5分」が期間終了時点となる期間は、パスワードP6に対応付けられている期間6である。従って、シードSDはパスワードP6を用いる。次いで、使用開始時刻TS「2時0分」から、シードSDとしてのパスワードP6に対応する期間6までの間に存在する期間の個数は、パスワードP2,P3,P4,P5の各々に対応する期間2,3,4,5の4個である。従って、シードSD(パスワードP6)から生成するパスワードの個数Qは4個に設定する。また、パスワード有効時間TPは、一定時間T「60秒」に設定する。
【0028】
これにより、シードSDであるパスワードP6からは、ハッシュ関数hを用いて、「生成するパスワードの個数Q」である4個のパスワードP5,P4,P3,P2を順番に生成することができる。そして、各パスワードP2,P3,P4,P5,P6は各々に対応する期間2,3,4,5,6でのみ有効とする。従って、それら5個のパスワードP2,P3,P4,P5,P6は、ユーザ有効期限長「5分」に対応するパスワード群となる。つまり、パスワードP2は最初に有効となるものであって、その使用開始時刻TSは2時0分であり、その有効期限は2時0分から2時1分までである。パスワードP3はパスワードP2の次に有効となるものであって、その有効期限は2時1分から2時2分までである。以降、パスワード有効時間TPである「60秒」毎に、パスワードP4,P5,P6の順番で有効となり、最後のパスワードP6の有効期限満了時点である2時5分には、全てのパスワードP2,P3,P4,P5,P6は無効とする。
【0029】
図2に戻り、次いで、サーバ装置10は、シードSD、パスワード有効時間TP、生成するパスワードの個数Q及び使用開始時刻TSをクライアント装置20に送信する(ステップS6)。ここで、パスワード有効時間TP、生成するパスワードの個数Q及び使用開始時刻TSは、ユーザ有効期限を特定する情報(ユーザ有効期限情報)である。つまり、使用開始時刻TSから「パスワード有効時間TP×生成するパスワードの個数Q」経過時点までの期間が、ユーザ有効期限となる。さらには、各パスワードの有効期限を特定する情報(パスワード有効期限情報)である。つまり、使用開始時刻TSからパスワード有効時間TPおきの各期間が、各パスワードの有効期限となる。
【0030】
次いで、クライアント装置20は、そのサーバ装置10から受信したシードSD等の情報に基づいて、シードSDを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する(ステップS7)。このパスワード群生成処理においては、シードSDを引数の初期値として、一方向関数であるハッシュ関数hを用いたパスワード生成を、「生成するパスワードの個数Q」回繰り返し、新たにQ個のパスワードPを生成する。
【0031】
そのクライアント装置20のパスワード群生成処理について、上記図6の例を用いてより具体的に説明すれば、先ず、シードSD(パスワードP6)をハッシュ関数hの引数にしたハッシュ値h(P6)を計算し、該ハッシュ値h(P6)をパスワードP5として記憶する。次いで、パスワードP5をハッシュ関数hの引数にしたハッシュ値h(P5)を計算し、該ハッシュ値h(P5)をパスワードP4として記憶する。この操作を合計4回繰り返して、「生成するパスワードの個数Q」である4個のパスワードP5,P4,P3,P2を順番に生成し記憶する。この結果、シードSDであるパスワードP6も含めて合計5個のパスワードP2,P3,P4,P5,P6が生成されて記憶される。
なお、クライアント装置20で用いられるハッシュ関数hは、サーバ装置10で使用されたものと同じであり、サーバ装置10との間で予め共有しておく。
【0032】
また、クライアント装置20で生成されたQ個のパスワードPについては、各パスワードPの有効期限に対応付けて記憶する。各パスワードPの有効期限は、使用開始時刻TS及びパスワード有効時間TPから算出する。この有効期限算出処理について、上記図6の例を用いてより具体的に説明すれば、最初のパスワードP2については、使用開始時刻TS「2時0分」からパスワード有効時間TP「60秒」分の期間2を有効期限とする。次のパスワードP3については、パスワードP2の有効期限終了時点「2時1分」からパスワード有効時間TP「60秒」分の期間3を有効期限とする。同様にして、パスワードP4についてはパスワードP3の有効期限終了時点「2時2分」からパスワード有効時間TP「60秒」分の期間4、パスワードP5についてはパスワードP4の有効期限終了時点「2時3分」からパスワード有効時間TP「60秒」分の期間5、パスワードP6についてはパスワードP6の有効期限終了時点「2時4分」からパスワード有効時間TP「60秒」分の期間6、をそれぞれの有効期限とする。
【0033】
図7には、そのパスワードP2〜P6及びその各有効期限を記憶するパスワード管理テーブル231の構成例が示されている。図7に示されるように、各パスワードP2〜P6は自己の有効期限として割り当てられた期間2〜6に各々対応付けされてパスワード管理テーブル231に記憶される。この図7の例においては、パスワード管理テーブル231には、使用開始時刻TS「2時0分」からユーザ有効期限長である5分間において、1分おきに順次有効となる5個のパスワードP2,P3,P4,P5,P6が保持されている。つまり、2時0分から2時1分まではパスワードP2、2時1分から2時2分まではパスワードP3、2時2分から2時3分まではパスワードP4、2時3分から2時4分まではパスワードP5、2時4分から2時5分まではパスワードP6、が各期間2,3,4,5,6における有効なパスワードである。
【0034】
以上で実施例1に係る準備フェーズが終了する。
上述したように実施例1に係る準備フェーズにおいては、最初のパスワードの使用開始時刻TSからユーザ有効期限長までの期間中に有効となるパスワードであって、パスワード有効時間TPおきに順次有効となる複数のパスワードがサーバ側及びクライアント側の双方で共有される。ここで、ユーザ有効期限は、最初のパスワードの使用開始時刻TSからユーザ有効期限長経過時点までの期間である。つまり、サーバ側及びクライアント側の双方で共有されている全パスワードの有効期限の総期間がユーザ有効期限となる。言い換えれば、ユーザ有効期限を複数の期間に区切り、該期間ごとに固有のパスワードが用意されたことになる。
【0035】
次に、図8を参照して、実施例1に係る認証フェーズを説明する。
図8は、本発明に係る実施例1の認証フェーズにおけるシーケンス図である。図8において、先ず、クライアント装置20は、自装置内の時計の現在時刻において有効なパスワードをパスワード管理テーブル231から選択し(ステップS21)、該選択したパスワードをサーバ装置10に送信する(ステップS22)。
【0036】
次いで、サーバ装置10は、クライアント装置20からパスワードを受信すると、自装置内の時計の現在時刻において有効なパスワードをパスワード管理テーブル131から選択する(ステップS23)。次いで、サーバ装置10は、クライアント装置20から受信したパスワード(認証パスワード)とパスワード管理テーブル131から選択したパスワード(検証パスワード)を比較する(ステップS24)。この比較に結果、両者が一致すれば当該ユーザの認証は成功であり、一方、不一致ならば当該ユーザの認証は失敗であると判定する。次いで、サーバ装置10は、その認証結果をクライアント装置20に送信する(ステップS25)。
【0037】
上記した認証処理について、上記図6の例を用いてより具体的に説明する。
先ず、上記した準備フェーズによって、最初のパスワードP2の使用開始時刻TS「2時0分」からユーザ有効期限長「5分」までの期間中「2時0分から2時5分まで」に有効となるパスワードであって、パスワード有効時間TP「60秒」おきに順次有効となる5個のパスワードP2,P3,P4,P5,P6がサーバ装置10及びクライアント装置20の双方で共有されている。具体的には、サーバ装置10は、図5のパスワード管理テーブル131に、2時0分から2時5分までの1分間隔の各期間2,3,4,5,6における有効パスワードP2,P3,P4,P5,P6を保持している。クライアント装置20は、図7のパスワード管理テーブル231に、2時0分から2時5分までの1分間隔の各期間2,3,4,5,6における有効パスワードP2,P3,P4,P5,P6を保持している。そのサーバ装置10及びクライアント装置20の双方のパスワードP2,P3,P4,P5,P6は、ともに同一のハッシュ関数hを用いてパスワードP6を初期値としたハッシュ関数hの繰り返し計算によって得られたものであり、同一である。
【0038】
次いで、クライアント装置20は、現在時刻「2時3分30秒」に有効なパスワードP5をパスワード管理テーブル231から選択し、そのパスワードP5を認証用にサーバ装置10に送信する(図9参照)。次いで、サーバ装置10は、クライアント装置20から認証用のパスワードP5を受信すると、現在時刻に有効なパスワードをパスワード管理テーブル131から選択して、クライアント装置20から受信したパスワードP5と比較する。この認証処理によって、ユーザ有効期限内の各期間2,3,4,5,6においては、各期間2,3,4,5,6に固有のパスワードP2,P3,P4,P5,P6を用いた期間限定の認証が可能となる。
【0039】
なお、サーバ装置10は、上記した認証処理において、クライアント装置20との間の時刻のずれを考慮した処理を行う。図10は、サーバ装置10に係る時刻ずれ補償処理を説明するための説明図である。図10において、クライアント装置20は、時刻t1からt2の期間において認証を行うために、当該期間に有効なパスワードP1を認証パスワードPcとしてサーバ装置10に送信する。ここで、通信ネットワークの伝送遅延等により、サーバ装置10への認証パスワードPcの到着が遅れると、サーバ装置10は、クライアント装置20が認証を行おうとした期間の次の期間(時刻t2からt3の期間)に、クライアント装置20からの認証パスワードPc(P1)を受信する可能性がある。すると、サーバ装置10は、時刻t2からt3の期間に有効なパスワードP2を検証パスワードPsに選択し、該検証パスワードPs(P2)とクライアント装置20からの認証パスワードPc(P1)を比較し、両者の不一致から認証失敗と判定してしまう。
【0040】
そこで、そのような事態を防ぐために、先ず、サーバ装置10は、クライアント装置20から認証パスワードPcを受信した時刻に有効なパスワードを検証パスワードPsに選択し、この検証パスワードPsと認証パスワードPcを比較する(図10のステップS241)。次いで、その比較の結果、不一致ならば、該検証パスワードPsを引数にしたハッシュ値h(Ps)を検証パスワードPsとして再度、認証パスワードPcとの比較を行う(図10のステップS242)。この比較の結果、一致したならば認証成功であると判定する。これにより、通信ネットワークの伝送遅延等による時刻ずれに対応することが可能となる。
【0041】
上述した実施例1によれば、サーバ側及びクライアント側の双方で共有される全パスワードの有効期限の総期間がユーザ有効期限となるので、パスワードの有効期限とユーザ有効期限の管理をまとめて行うことができる。さらに、各パスワードはそれぞれの有効期限に応じて更新されるので、ユーザ有効期限の管理とパスワードの更新を一元的に行うことが可能となる。
【0042】
また、クライアント側では、ハッシュ関数を用いてシードからパスワードを自動生成することができるので、ユーザ自身によるパスワード更新にかかる手間を省くことが可能となる。
【0043】
なお、上述した実施例1では、サーバ側及びクライアント側の双方で共有するパスワードを予め生成し記憶するようにしたが、認証時点において当該期間に有効なパスワードをサーバ側及びクライアント側の双方でそれぞれ生成するようにしてもよい。この場合には、シード及びパスワード有効期限情報のみを記憶すればよい。これにより、パスワード群を管理することができる。
【実施例2】
【0044】
実施例2に係るユーザ認証方法は、上記した実施例1と同様の準備フェーズ及び認証フェーズを有する。本実施例2は、上記した実施例1の変形例であり、各パスワードの有効期限の管理方法が実施例1と異なっている。以下、主に実施例1との差分について説明する。
【0045】
初めに、図11を参照して、実施例2に係る準備フェーズを説明する。
図11は、本発明に係る実施例2の準備フェーズにおけるシーケンス図である。図11において、先ず、サーバ装置10は、上記実施例1における図2に示す処理と同様に、マスター鍵MKを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する(ステップS31〜S32)。ここで、各パスワードPは、上記図5と同様に、有効な期間に対応付けてパスワード管理テーブル131に保持する。但し、本実施例2では、期間iは後述するタイマ時刻に基づいた期間を用いる。
【0046】
次いで、サーバ装置10は、クライアント装置20から端末の属性情報及びクライアント識別情報(クライアントID)を受信すると(ステップS33)、上記実施例1と同様に、その受信した端末の属性情報をもとにして、当該ユーザのユーザ有効期限の長さを所定のルールに従って決定し(ステップS34)、その決定したユーザ有効期限長に対応する期間分のパスワードを生成することができるシードSDを生成する(ステップS35)。
【0047】
次いで、サーバ装置10は、タイムスタンプTMSを取得する(ステップS36)。次いで、サーバ装置10は、シードSD、パスワード有効時間TP、生成するパスワードの個数Q及びタイムスタンプTMSをクライアント装置20に送信し(ステップS37)、該送信後にタイマを発動する(ステップS38)。そのタイマは、ユーザごとに設ける。ここで、パスワード有効時間TP及び生成するパスワードの個数Qは、ユーザ有効期限を特定する情報(ユーザ有効期限情報)である。つまり、ステップS38のタイマ発動時点から「パスワード有効時間TP×生成するパスワードの個数Q」経過時点までの期間が、ユーザ有効期限となる。さらには、各パスワードの有効期限を特定する情報(パスワード有効期限情報)である。つまり、ステップS38のタイマ発動時点からパスワード有効時間TPおきの各期間が、各パスワードの有効期限となる。
【0048】
上記シード生成処理について、図12に示される例を用いて具体的に説明する。
図12の例では、パスワード有効時間TPは60秒、ユーザ有効期限長は5分である。図12において、タイマ発動時点はタイマ時刻「0分」である。そのタイマ時刻「0分」からパスワード有効時間TP「60秒」ごとの期間0、1,2,3,4,5,6に対して、それぞれパスワードP0,P1,P2,P3,P4,P5,P6が有効となる。ここで、タイマ時刻「0分」をユーザ有効期限の開始時点とすると、ユーザ有効期限の終了時点はタイマ時刻「5分」である。そのタイマ時刻「5分」直前の期間4に有効なパスワードP4をシードSDに採用する。また、生成するパスワードの個数Qは、タイマ時刻「0分」から「5分」までの間に存在する期間の個数である4個に設定する。これにより、シードSD(パスワードP4)からは、ハッシュ関数hを用いて、「生成するパスワードの個数Q」である4個のパスワードP3,P2,P1,P0を順番に生成することができる。そして、各パスワードP0,P1,P2,P3,P4は各々に対応する期間0,1,2,3,4でのみ有効とする。
【0049】
図11に戻り、次いで、サーバ装置10は、タイムスタンプTMSとタイマとクライアントIDを対応付ける(ステップS39)。具体的には、図13に示されるタイマ対応表300に、タイムスタンプTMSとタイマとクライアントIDを対応付けて記憶させる。図13には、タイマ対応表300の構成例が示されている。
【0050】
クライアント装置20は、サーバ装置10からシードSD、パスワード有効時間TP、生成するパスワードの個数Q及びタイムスタンプTMSを受信すると、タイマを発動する(ステップS40)。次いで、クライアント装置20は、サーバ装置10から受信したシードSD、パスワード有効時間TP及び生成するパスワードの個数Qに基づいて、シードSDを引数の初期値とした一方向関数の繰り返し演算によって一連のパスワード群を生成し記憶する(ステップS41)。このパスワード群生成処理においては、上記実施例1と同様に、シードSDを初期値として、一方向関数であるハッシュ関数hを用いたパスワード生成を、「生成するパスワードの個数Q」回繰り返し、新たにQ個のパスワードPを生成する。その各パスワードPは、上記図7と同様に、有効な期間に対応付けてパスワード管理テーブル231に保持する。但し、本実施例2では、期間iはタイマ時刻に基づいた期間を用いる。
【0051】
上記図12の例では、クライアント装置20は、シードSD(パスワードP4)から、ハッシュ関数hを用いて「生成するパスワードの個数Q」である4個のパスワードP3,P2,P1,P0を順番に生成する。そして、各パスワードP0,P1,P2,P3,P4を各々の有効期限である期間0,1,2,3,4に対応付けてパスワード管理テーブル231に保持する。
【0052】
次いで、クライアント装置20は、タイムスタンプTMSとタイマを対応付けて記憶する(ステップS42)。
【0053】
次に、図14を参照して、実施例2に係る認証フェーズを説明する。
図14は、本発明に係る実施例2の認証フェーズにおけるシーケンス図である。図14において、先ず、クライアント装置20は、自装置内のタイマ時刻において有効なパスワードをパスワード管理テーブル231から選択する(ステップS51)。
【0054】
次いで、クライアント装置20は、該選択したパスワードに係るハッシュ値を算出する(ステップS52)。このハッシュ値算出処理においては、先ず、パスワードと、自クライアントIDと、タイマに対応付けて記憶しているタイムスタンプTMSとのビット毎の排他的論理和演算を行う。そして、その排他的論理和演算値をハッシュ関数hの引数としたハッシュ値を計算する。次いで、クライアント装置20は、その算出したハッシュ値をサーバ装置10に送信する(ステップS53)。
例えば、図15に例示されるように、クライアント装置20内のタイマ時刻が「3分30秒」であったならば、該「3分30秒」を含む期間3において有効なパスワードP3を認証パスワードとして選択し、該パスワードP3に係るハッシュ値を算出してサーバ装置10に送信する。
【0055】
次いで、サーバ装置10は、クライアント装置20からハッシュ値を受信すると、タイマ対応表300を参照して当該クライアント装置20に係るタイマ及びタイムスタンプTMSを取得する(ステップS54)。次いで、サーバ装置10は、該タイマ時刻において有効なパスワードを検証パスワードとしてパスワード管理テーブル131から選択する(ステップS55)。次いで、サーバ装置10は、ハッシュ値を算出する(ステップS56)。このハッシュ値算出処理においては、先ず、パスワード管理テーブル131から選択したパスワードと、タイマ対応表300から取得したクライアントIDと、タイマ対応表300から取得したタイムスタンプTMSとのビット毎の排他的論理和演算を行う。そして、その排他的論理和演算値をハッシュ関数hの引数としたハッシュ値を計算する。
【0056】
次いで、サーバ装置10は、クライアント装置20から受信したハッシュ値(認証パスワードに係るハッシュ値)と、ステップS56で算出したハッシュ値(検証パスワードに係るハッシュ値)とを比較し(ステップS57)、両者が一致すれば当該ユーザの認証は成功であり、一方、不一致ならば当該ユーザの認証は失敗であると判定する。次いで、サーバ装置10は、その認証結果をクライアント装置20に送信する(ステップS58)。
【0057】
なお、上述した実施例2においても、サーバ装置10は、上記図10の時刻ずれ補償処理を行うことが可能であり、該時刻ずれ補償処理によってクライアント装置20との間の時刻のずれを補償することができる。
【0058】
また、認証時点において当該期間に有効なパスワードをサーバ側及びクライアント側の双方でそれぞれ生成するようにしてもよい。
【0059】
上述した実施例2によれば、上記実施例1と同様に、サーバ側及びクライアント側の双方で共有される全パスワードの有効期限の総期間がユーザ有効期限となるので、パスワードの有効期限とユーザ有効期限の管理をまとめて行うことができる。さらに、各パスワードはそれぞれの有効期限に応じて更新されるので、ユーザ有効期限の管理とパスワードの更新を一元的に行うことが可能となる。
【0060】
なお、実施例2においては、期間によっては同じパスワードが利用されるため、リプレイ攻撃が懸念されるので、上記に例示したタイムスタンプTMSのように毎回異なる値を用いてパスワードに係るハッシュ値を算出し、該ハッシュ値同士を比較することが望ましい。これにより、リプレイ攻撃からの防御が可能となる。また、サーバ側では、定期的にマスター鍵MKを更新してパスワードの更新を行うことがセキュリティ上望ましい。
【0061】
上述したように本実施形態によれば、ユーザ有効期限の管理とパスワードの更新を一元的に行うことができる。これにより、サーバ側の負担が軽減される。また、有効となるパスワードは一定時間ごとに更新されるので、サービスシステムの安全性を保つことができる。
【0062】
また、図1に示すサーバ装置10、クライアント装置20の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、ユーザ認証に係るサーバ処理、ユーザ認証に係るクライアント処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0063】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0064】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【0065】
【図1】本発明の一実施形態に係るユーザ認証システムの構成を示すブロック図である。
【図2】本発明に係る実施例1の準備フェーズにおけるシーケンス図である。
【図3】図2に示すパスワード群生成処理(ステップS2)のフローチャートである。
【図4】本発明の実施例1に係る各パスワードP0〜Pnの有効期限の割り当て例を示す説明図である。
【図5】本発明の実施例1に係るサーバ装置10が有するパスワード管理テーブル131の構成例を示す図である。
【図6】本発明の実施例1に係るシード生成処理を説明するための説明図である。
【図7】本発明の実施例1に係るクライアント装置20が有するパスワード管理テーブル231の構成例を示す図である。
【図8】本発明に係る実施例1の認証フェーズにおけるシーケンス図である。
【図9】本発明の実施例1に係るパスワード選定処理を説明するための説明図である。
【図10】本発明の実施例1に係る時刻ずれ補償処理を説明するための説明図である。
【図11】本発明に係る実施例2の準備フェーズにおけるシーケンス図である。
【図12】本発明の実施例2に係るシード生成処理を説明するための説明図である。
【図13】本発明の実施例2に係るタイマ対応表300の構成例を示す図である。
【図14】本発明に係る実施例2の認証フェーズにおけるシーケンス図である。
【図15】本発明の実施例2に係るパスワード選定処理を説明するための説明図である。
【符号の説明】
【0066】
10…サーバ装置、11,21…通信部、12,22…処理部、13,23…記憶部、20…クライアント装置、131,231…パスワード管理テーブル、300…タイマ対応表
【特許請求の範囲】
【請求項1】
ユーザの端末装置と、前記ユーザの認証を行う認証装置とを有するユーザ認証システムであり、
前記認証装置は、
一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成手段と、
前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、
該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、
前記端末装置から認証パスワードを受信する受信手段と、
前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定手段と、
前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、を備え、
前記端末装置は、
前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、
該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成手段と、
前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定手段と、
前記選定したパスワードを前記認証装置に送信する送信手段と、を備える、
ことを特徴とするユーザ認証システム。
【請求項2】
前記認証装置において、前記判定手段は、前記不一致した場合に、前記検証パスワードを引数とした前記一方向関数の値を検証パスワードとして再度、前記認証パスワードとの比較を行い、一致した場合には認証成功である判定する、
ことを特徴とする請求項1に記載のユーザ認証システム。
【請求項3】
前記パスワード管理手段は、前記パスワード群の各パスワードと各有効期限とを対応付けて記憶するテーブルを有する、
ことを特徴とする請求項1又は2に記載のユーザ認証システム。
【請求項4】
前記パスワード選定手段は、前記パスワード生成手段により、前記選定時に選定するパスワードを生成する、
ことを特徴とする請求項1又は2に記載のユーザ認証システム。
【請求項5】
前記パスワード管理手段は、自装置内の時計の時刻に基づいて有効期限を管理する、
ことを特徴とする請求項1から4のいずれかの項に記載のユーザ認証システム。
【請求項6】
前記パスワード管理手段は、前記シード及びパスワード有効期限情報の授受時点にタイマを発動し、該タイマの時刻に基づいて有効期限を管理する、
ことを特徴とする請求項1から4のいずれかの項に記載のユーザ認証システム。
【請求項7】
ユーザの端末装置との間で前記ユーザの認証を行う認証装置であり、
一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成手段と、
前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、
該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、
前記端末装置から認証パスワードを受信する受信手段と、
前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定手段と、
前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、
を備えたことを特徴とする認証装置。
【請求項8】
認証装置との間でユーザの認証を行う端末装置であり、
前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、
該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成手段と、
前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定手段と、
前記選定したパスワードを前記認証装置に送信する送信手段と、
を備えたことを特徴とする端末装置。
【請求項9】
ユーザの端末装置との間で前記ユーザの認証を行うサーバ処理を行うためのコンピュータプログラムであって、
一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成機能と、
前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、
前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定機能と、
該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信機能と、
前記端末装置から認証パスワードを受信する受信機能と、
前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定機能と、
前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項10】
認証装置との間でユーザの認証を行うクライアント処理を行うためのコンピュータプログラムであって、
前記認証装置からシード及びパスワード有効期限情報を受信する受信機能と、
該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成機能と、
前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、
認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定機能と、
前記選定したパスワードを前記認証装置に送信する送信機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項1】
ユーザの端末装置と、前記ユーザの認証を行う認証装置とを有するユーザ認証システムであり、
前記認証装置は、
一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成手段と、
前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、
該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、
前記端末装置から認証パスワードを受信する受信手段と、
前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定手段と、
前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、を備え、
前記端末装置は、
前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、
該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成手段と、
前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定手段と、
前記選定したパスワードを前記認証装置に送信する送信手段と、を備える、
ことを特徴とするユーザ認証システム。
【請求項2】
前記認証装置において、前記判定手段は、前記不一致した場合に、前記検証パスワードを引数とした前記一方向関数の値を検証パスワードとして再度、前記認証パスワードとの比較を行い、一致した場合には認証成功である判定する、
ことを特徴とする請求項1に記載のユーザ認証システム。
【請求項3】
前記パスワード管理手段は、前記パスワード群の各パスワードと各有効期限とを対応付けて記憶するテーブルを有する、
ことを特徴とする請求項1又は2に記載のユーザ認証システム。
【請求項4】
前記パスワード選定手段は、前記パスワード生成手段により、前記選定時に選定するパスワードを生成する、
ことを特徴とする請求項1又は2に記載のユーザ認証システム。
【請求項5】
前記パスワード管理手段は、自装置内の時計の時刻に基づいて有効期限を管理する、
ことを特徴とする請求項1から4のいずれかの項に記載のユーザ認証システム。
【請求項6】
前記パスワード管理手段は、前記シード及びパスワード有効期限情報の授受時点にタイマを発動し、該タイマの時刻に基づいて有効期限を管理する、
ことを特徴とする請求項1から4のいずれかの項に記載のユーザ認証システム。
【請求項7】
ユーザの端末装置との間で前記ユーザの認証を行う認証装置であり、
一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成手段と、
前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定手段と、
該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信手段と、
前記端末装置から認証パスワードを受信する受信手段と、
前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定手段と、
前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定手段と、
を備えたことを特徴とする認証装置。
【請求項8】
認証装置との間でユーザの認証を行う端末装置であり、
前記認証装置からシード及びパスワード有効期限情報を受信する受信手段と、
該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成手段と、
前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理手段と、
認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定手段と、
前記選定したパスワードを前記認証装置に送信する送信手段と、
を備えたことを特徴とする端末装置。
【請求項9】
ユーザの端末装置との間で前記ユーザの認証を行うサーバ処理を行うためのコンピュータプログラムであって、
一方向関数の繰り返し演算によって一連の第1パスワード群を生成するパスワード生成機能と、
前記第1パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、
前記ユーザのユーザ有効期限の終了時点を含む有効期限を有する前記パスワードをシードに採用するシード選定機能と、
該シード及び前記第1パスワード群に係るパスワード有効期限情報を前記端末装置に送信する送信機能と、
前記端末装置から認証パスワードを受信する受信機能と、
前記認証パスワードを受信した時点に有効な検証パスワードを前記第1パスワード群から選定するパスワード選定機能と、
前記認証パスワードと前記検証パスワードを比較し、一致した場合には認証成功である判定し、一方、不一致した場合には認証失敗であると判定する判定機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項10】
認証装置との間でユーザの認証を行うクライアント処理を行うためのコンピュータプログラムであって、
前記認証装置からシード及びパスワード有効期限情報を受信する受信機能と、
該受信したシードを引数の初期値として、前記認証装置と共通の一方向関数の繰り返し演算によって一連の第2パスワード群を生成するパスワード生成機能と、
前記受信したパスワード有効期限情報に基づき、前記第2パスワード群内の各パスワードに関し、パスワードの生成順とは逆順に、一連の有効期限を対応付けるパスワード管理機能と、
認証実施時に、現在有効なパスワードを前記第2パスワード群から選定するパスワード選定機能と、
前記選定したパスワードを前記認証装置に送信する送信機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2007−58633(P2007−58633A)
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願番号】特願2005−243948(P2005−243948)
【出願日】平成17年8月25日(2005.8.25)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成19年3月8日(2007.3.8)
【国際特許分類】
【出願日】平成17年8月25日(2005.8.25)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]