米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 日本電気株式会社

発明の名称 認証システム、認証方法、及びプログラム
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2003−223419(P2003−223419A)
公開日 平成15年8月8日(2003.8.8)
出願番号 特願2002−22739(P2002−22739)
出願日 平成14年1月31日(2002.1.31)
代理人 【識別番号】100071272
【弁理士】
【氏名又は名称】後藤 洋介 (外1名)
【テーマコード(参考)】
5B085
5J104
【Fターム(参考)】
5B085 AE03 BG07 
5J104 AA07 KA01 KA03 PA07
発明者 江川 尚志 / 久保田 文人
要約 課題
通信オーバーヘッドを低減し、高速なワンタイムパスワードによる認証を可能にする認証システムを提供する。

解決手段
サーバは、クライアントから送信されたパスフレーズに対して一方向性関数を適用する回数を推定し、ワンタイムパスワードの認証を行うため、通常ワンタイムパスワード認証において必要とされる、サーバからクライアントへの前記回数等を含んだ情報の送信を不要にする。更にサーバは、一方向性関数の適用回数の推定に際して、一定の回数の範囲や時刻の範囲を設定することによって、認証要求が通信途上で失われる場合や、認証要求の順序が逆転した場合をも考慮して推定する。このためクライアントは、連続的に認証要求を送付できる。
特許請求の範囲
【請求項1】 クライアントと、前記クライアントにネットワークを介して接続され、前記クライアントからの認証要求に応じてクライアントの認証を行うサーバを備える認証システムにおいて、前記クライアントは、所定のビット列、及び一方向性関数を記憶する第1の記憶部と、前記サーバに前記クライアントの認証要求を行う際に、前記ビット列に前記一方向性関数を所定の第1の適用回数だけ適用したパスフレーズを生成する第1の処理部と、前記生成されたパスフレーズを含むデータを前記サーバに送信する第1の制御部とを有し、前記サーバは、前記第1の記憶部に記憶されたものと同内容の一方向性関数を記憶し、更に前回、前記クライアントを認証した際に受信したデータ中の前記パスフレーズを参照パスフレーズとして記憶する第2の記憶部と、前記クライアントから前記データを受信した場合に、当該データ中のパスフレーズに前記一方向性関数を所定の第2の適用回数だけ適用して判定パスフレーズを生成する第2の処理部と、前記第2の記憶部に記憶されている前記参照パスフレーズと、前記第2の処理部によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証する第2の制御部を有し、前記クライアントは、前記第1の適用回数を、前記クライアントが認証要求を行う度に所定の規則によって減少させ、前記サーバは、前記第2の適用回数を、前記第1の適用回数の前記減少分に対応させるように前記所定の規則を用いて設定することを特徴とする認証システム。
【請求項2】 請求項1に記載の認証システムにおいて、前記第2の制御部は、前記判定処理の結果、両パスフレーズが一致していないと判断した場合に、更に、前記第2の処理部によって生成された判定パスフレーズに前記一方向性関数を適用して前記両パスフレーズが一致するかどうかを判定する判定処理を、所定回数繰り返すことを特徴とする認証システム。
【請求項3】 請求項1に記載の認証システムにおいて、前記第2の制御部は、前記判定処理の結果、両パスフレーズが一致していると判断した場合に、前記クライアントから受信したデータ中のパスフレーズを前記第2の記憶部に累積的に参照パスフレーズとして記憶し、次回の前記判定処理で、これらの参照パスフレーズ群のそれぞれと前記第2の処理部によって生成された判定パスフレーズが比較されることを特徴とする認証システム。
【請求項4】 請求項3に記載の認証システムにおいて、前記第2の記憶部に累積的に蓄積された参照パスフレーズ群のうち、前記パスフレーズを含む前記データのサーバ到達時刻が所定の時刻以前である参照パスフレーズを、前記第2の記憶部から所定のタイミングで除去することを特徴とする認証システム。
【請求項5】 請求項3に記載の認証システムにおいて、前記第2の制御部は、前記判定処理の結果、両パスフレーズが一致していないと判断した場合に、更に、前記第2の処理部によって生成された判定パスフレーズに前記一方向性関数を適用して前記両パスフレーズが一致するかどうかを判定する前記判定処理を、所定回数繰り返すことを特徴とする認証システム。
【請求項6】 請求項3に記載の認証システムにおいて、前記第2の制御部は、前記判定処理の結果、両パスフレーズが一致していないと判断した場合に、更に、前記第2の記憶部に累積された参照パスフレーズ群のそれぞれに前記一方向性関数を適用して前記両パスフレーズが一致するかどうかを判定する前記判定処理を、所定回数繰り返すことを特徴とする認証システム。
【請求項7】 クライアントと、前記クライアントにネットワークを介して接続され、前記クライアントからの認証要求に応じてクライアントの認証を行うサーバを備える認証システムにおいて、前記クライアントは、所定のビット列、及び一方向性関数を記憶する第1の記憶部と、前記サーバに当該クライアントの認証を要求する際に、前記ビット列に前記一方向性関数を所定の第1の適用回数だけ適用したパスフレーズを生成する第1の処理部と、前記生成されたパスフレーズを含むデータと前記第1の適用回数を前記サーバに送信する第1の制御部とを有し、前記サーバは、前記第1の記憶部に記憶されたものと同内容の一方向性関数を記憶し、前回、前記クライアントを認証した際に受信したデータ中の前記パスフレーズを参照パスフレーズとして記憶し、更に、前回、前記クライアントを認証した際に受信した前記第1の適用回数を第2の適用回数として記憶する第2の記憶部と、前記クライアントから前記データ及び前記第1の適用回数を受信した場合に、前記第1の適用回数と前記第2の適用回数を比較し、第1の適用回数の方が第2の適用回数より小さい場合に、前記クライアントから受信した当該データ中のパスフレーズに前記一方向性関数を、前記第2の適用回数から前記第1の適用回数を差し引いた回数だけ適用して判定パスフレーズを生成する第2の処理部と、前記第2の記憶部に記憶された参照パスフレーズと前記第2の処理部によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証する第2の制御部を有し、前記クライアントは、前記第1の適用回数を、前記クライアントが認証要求を行う度に所定の規則によって減少させることを特徴とする認証システム。
【請求項8】 請求項7に記載の認証システムにおいて、前記第2の処理部が、前記クライアントから前記データ及び前記第1の適用回数を受信した場合において、前記第1の適用回数と前記第2の適用回数を比較し、第1の適用回数が第2の適用回数以上である場合に、前記第2の記憶部に記憶されている参照パスフレーズに前記一方向性関数を、前記第1の適用回数から前記第2の適用回数を差し引いた回数だけ適用して判定パスフレーズを生成し、その場合に、前記第2の制御部が、前記クライアントから受信した当該データ中のパスフレーズと前記第2の処理部によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証することを特徴とする認証システム。
【請求項9】 請求項8に記載の認証システムにおいて、前記第1の適用回数が前記第2の適用回数以上である場合であって、前記第2の制御部が、前記クライアントから受信した当該データ中のパスフレーズと前記第2の処理部によって生成された判定パスフレーズとが一致しているとの判断した場合に、前記クライアントから受信した当該データ中のパスフレーズ及び第1の適用回数が、前記第2の記憶部に参照パスフレーズ及び第2の適用回数として反映されないように制御することを特徴とする認証システム。
【請求項10】 請求項8に記載の認証システムにおいて、前記第2の記憶部が更に、参照パスフレーズを含んでいたデータがサーバに到達した到達時刻を記憶しており、前記第2の処理部が、前記クライアントから前記データ及び前記第1の適用回数を受信した場合において、前記第1の適用回数と前記第2の適用回数を比較し、第1の適用回数が第2の適用回数以上である場合に、前記参照パスフレーズの到達時刻が所定の時刻以前である場合には、前記クライアントの認証を行わないように制御することを特徴とする認証システム。
【請求項11】 ネットワークによって接続されたサーバに認証要求を行うクライアントにおいて、所定のビット列、及び一方向性関数を記憶する第1の記憶部と、前記サーバに前記クライアントの認証要求を行う際に、前記ビット列に前記一方向性関数を所定の適用回数だけ適用したパスフレーズを生成する第1の処理部と、前記生成されたパスフレーズを含むデータを前記サーバに送信する第1の制御部とを有し、前記所定の適用回数を、前記認証要求を行う度に所定の規則によって減少させることを特徴とするクライアント。
【請求項12】 ネットワークによって接続されたクライアントからの認証要求に応答して、クライアントの認証を行うサーバにおいて、前記クライアントが使用するものと同内容の一方向性関数を記憶し、更に前回、前記クライアントを認証した際に受信したデータ中のパスフレーズを参照パスフレーズとして記憶する第2の記憶部と、前記クライアントから前記データを受信した場合に、当該データ中のパスフレーズに前記一方向性関数を所定の適用回数だけ適用して判定パスフレーズを生成する第2の処理部と、前記第2の記憶部に記憶されている前記参照パスフレーズと、前記第2の処理部によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証する第2の制御部を有し、前記所定の適用回数は、前記クライアントが前記パスフレーズを生成する際の一方向性関数の適用回数の変化に対応して設定することを特徴とするサーバ。
【請求項13】 請求項12に記載のサーバにおいて、前記第2の制御部は、前記判定処理の結果、両パスフレーズが一致していないと判断した場合に、更に、前記第2の処理部によって生成された判定パスフレーズに前記一方向性関数を適用して前記両パスフレーズが一致するかどうかを判定する判定処理を、所定回数繰り返すことを特徴とするサーバ。
【請求項14】 ネットワークによって接続されたサーバに認証要求を行うクライアントにおいて、所定のビット列、及び一方向性関数を記憶する第1の記憶部と、前記サーバに当該クライアントの認証を要求する際に、前記ビット列に前記一方向性関数を所定の適用回数だけ適用したパスフレーズを生成する第1の処理部と、前記生成されたパスフレーズを含むデータと前記第1の適用回数を前記サーバに送信する第1の制御部とを有し、前記所定の適用回数を、前記クライアントが認証要求を行う度に所定の規則によって減少させることを特徴とするクライアント。
【請求項15】 ネットワークによって接続されたクライアントからの認証要求に応答して、クライアントの認証を行うサーバにおいて、前記クライアントが使用するものと同内容の一方向性関数を記憶し、前回、前記クライアントを認証した際に受信したデータ中の前記パスフレーズを参照パスフレーズとして記憶し、更に、前回、前記クライアントを認証した際に受信した当該パスフレーズに関する一方向性関数の適用回数を第2の適用回数として記憶する第2の記憶部と、前記クライアントから前記データ及び第1の適用回数を受信した場合に、前記第1の適用回数と前記第2の適用回数を比較し、第1の適用回数の方が第2の適用回数より小さい場合に、前記クライアントから受信した当該データ中のパスフレーズに前記一方向性関数を、前記第2の適用回数から前記第1の適用回数を差し引いた回数だけ適用して判定パスフレーズを生成する第2の処理部と、前記第2の記憶部に記憶された参照パスフレーズと前記第2の処理部によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証する第2の制御部を有することを特徴とするサーバ。
【請求項16】 クライアントから、前記クライアントにネットワークを介して接続されたサーバへの認証要求に応じてクライアントの認証を行う認証方法において、前記クライアントが、前記サーバに前記クライアントの認証要求を行う際に、ビット列に一方向性関数を所定の第1の適用回数だけ適用し、パスフレーズを生成するステップと前記クライアントが、前記生成されたパスフレーズを含むデータを前記サーバに送信するステップと、前記サーバが、前記クライアントから前記データを受信した場合に、当該データ中のパスフレーズに前記一方向性関数を所定の第2の適用回数だけ適用して判定パスフレーズを生成するステップと、前記サーバが、前回、前記クライアントを認証した際に受信したデータ中の前記パスフレーズと、前記判定パスフレーズとが一致しているかどうかを判定するステップと、前記サーバが、前記判定ステップで、両パスフレーズが一致していると判断された場合に、前記クライアントを正当なものとして認証するステップとを有し、前記クライアントは、前記第1の適用回数を、前記クライアントが認証要求を行う度に所定の規則によって減少させ、前記サーバは、前記第2の適用回数を、前記第1の適用回数の前記減少分に対応させるように前記所定の規則を用いて設定することを特徴とする認証方法。
【請求項17】 請求項16に記載の認証方法において、前記判定ステップで、両パスフレーズが一致していないと判断された場合に、更に、前記判定パスフレーズに前記一方向性関数を適用して前記両パスフレーズが一致するかどうかを判定する判定処理を、所定回数繰り返すステップを有することを特徴とする認証方法。
【請求項18】 クライアントから、前記クライアントにネットワークを介して接続されたサーバへの認証要求に応じてクライアントの認証を行う認証方法において、前記クライアントが、前記サーバに当該クライアントの認証を要求する際に、ビット列に一方向性関数を所定の第1の適用回数だけ適用したパスフレーズを生成するステップと、前記クライアントが、前記生成されたパスフレーズを含むデータと前記第1の適用回数を前記サーバに送信するステップと、前記サーバが、前回、前記クライアントを認証した際に受信したデータ中の前記パスフレーズを参照パスフレーズとして記憶し、更に、前回、前記クライアントを認証した際に受信した前記第1の適用回数を第2の適用回数として記憶するステップと、前記サーバが、前記クライアントから前記データ及び前記第1の適用回数を受信した場合に、前記第1の適用回数と前記第2の適用回数を比較し、第1の適用回数の方が第2の適用回数より小さい場合に、前記クライアントから受信した当該データ中のパスフレーズに前記一方向性関数を、前記第2の適用回数から前記第1の適用回数を差し引いた回数だけ適用して判定パスフレーズを生成するステップと、前記サーバが、前記参照パスフレーズと前記判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証するステップとを有し、前記クライアントは、前記第1の適用回数を、前記クライアントが認証要求を行う度に所定の規則によって減少させることを特徴とする認証方法。
【請求項19】 ネットワークを介してサーバに接続されたクライアントを、所定のビット列、及び一方向性関数を記憶する第1の記憶手段と、前記サーバに前記クライアントの認証要求を行う際に、前記ビット列に前記一方向性関数を所定の第1の適用回数だけ適用したパスフレーズを生成する第1の処理手段と、前記生成されたパスフレーズを含むデータを前記サーバに送信する第1の制御手段として機能させ、更に、前記第1の適用回数を、前記クライアントが認証要求を行う度に所定の規則によって減少させるよう制御し、前記サーバを、前記第1の記憶手段に記憶されたものと同内容の一方向性関数を記憶し、更に前回、前記クライアントを認証した際に受信したデータ中の前記パスフレーズを参照パスフレーズとして記憶する第2の記憶手段と、前記クライアントから前記データを受信した場合に、当該データ中のパスフレーズに前記一方向性関数を所定の第2の適用回数だけ適用して判定パスフレーズを生成する第2の処理手段と、前記第2の記憶手段に記憶されている前記参照パスフレーズと、前記第2の処理手段によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証する第2の制御手段として機能させ、更に、前記第2の適用回数を、前記第1の適用回数の前記減少分に対応させるように前記所定の規則を用いて設定するためのプログラム。
【請求項20】 請求項19に記載のプログラムにおいて、前記第2の制御手段は、前記判定処理の結果、両パスフレーズが一致していないと判断した場合に、更に、前記第2の処理手段によって生成された判定パスフレーズに前記一方向性関数を適用して前記両パスフレーズが一致するかどうかを判定する判定処理を、所定回数繰り返すことを特徴とするプログラム。
【請求項21】 ネットワークを介してサーバに接続されたクライアントを、所定のビット列、及び一方向性関数を記憶する第1の記憶手段と、前記サーバに当該クライアントの認証を要求する際に、前記ビット列に前記一方向性関数を所定の第1の適用回数だけ適用したパスフレーズを生成する第1の処理手段と、前記生成されたパスフレーズを含むデータと前記第1の適用回数を前記サーバに送信する第1の制御手段として機能させ、更に、前記第1の適用回数を、前記クライアントが認証要求を行う度に所定の規則によって減少させるように制御し、前記サーバを、前記第1の記憶手段に記憶されたものと同内容の一方向性関数を記憶し、前回、前記クライアントを認証した際に受信したデータ中の前記パスフレーズを参照パスフレーズとして記憶し、更に、前回、前記クライアントを認証した際に受信した前記第1の適用回数を第2の適用回数として記憶する第2の記憶手段と、前記クライアントから前記データ及び前記第1の適用回数を受信した場合に、前記第1の適用回数と前記第2の適用回数を比較し、第1の適用回数の方が第2の適用回数より小さい場合に、前記クライアントから受信した当該データ中のパスフレーズに前記一方向性関数を、前記第2の適用回数から前記第1の適用回数を差し引いた回数だけ適用して判定パスフレーズを生成する第2の処理手段と、前記第2の記憶手段に記憶された参照パスフレーズと前記第2の処理手段によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証する第2の制御手段として機能させるプログラム。
【請求項22】 ネットワークによってサーバに接続されたクライアントを、所定のビット列、及び一方向性関数を記憶する第1の記憶手段と、前記サーバに前記クライアントの認証要求を行う際に、前記ビット列に前記一方向性関数を所定の適用回数だけ適用したパスフレーズを生成する第1の処理手段と、前記生成されたパスフレーズを含むデータを前記サーバに送信する第1の制御手段として機能させ、更に、前記所定の適用回数を、前記認証要求を行う度に所定の規則によって減少させるよう制御するプログラム。
【請求項23】 ネットワークによってクライアントに接続されたサーバを、前記クライアントが使用するものと同内容の一方向性関数を記憶し、更に前回、前記クライアントを認証した際に受信したデータ中のパスフレーズを参照パスフレーズとして記憶する第2の記憶手段と、前記クライアントから前記データを受信した場合に、当該データ中のパスフレーズに前記一方向性関数を所定の適用回数だけ適用して判定パスフレーズを生成する第2の処理手段と、前記第2の記憶手段に記憶されている前記参照パスフレーズと、前記第2の処理手段によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証する第2の制御手段として機能させ、更に、前記所定の適用回数を、前記クライアントが前記パスフレーズを生成する際の一方向性関数の適用回数の変化に対応して設定するよう制御するプログラム。
【請求項24】 請求項23に記載のプログラムにおいて、前記第2の制御手段は、前記判定処理の結果、両パスフレーズが一致していないと判断した場合に、更に、前記第2の処理手段によって生成された判定パスフレーズに前記一方向性関数を適用して前記両パスフレーズが一致するかどうかを判定する判定処理を、所定回数繰り返すことを特徴とするプログラム。
【請求項25】 ネットワークによってサーバに接続されたクライアントを、所定のビット列、及び一方向性関数を記憶する第1の記憶手段と、前記サーバに当該クライアントの認証を要求する際に、前記ビット列に前記一方向性関数を所定の適用回数だけ適用したパスフレーズを生成する第1の処理手段と、前記生成されたパスフレーズを含むデータと前記第1の適用回数を前記サーバに送信する第1の制御手段として機能させ、更に、前記所定の適用回数を、前記クライアントが認証要求を行う度に所定の規則によって減少させるよう制御するプログラム。
【請求項26】 ネットワークによってクライアントに接続されたサーバを、前記クライアントが使用するものと同内容の一方向性関数を記憶し、前回、前記クライアントを認証した際に受信したデータ中の前記パスフレーズを参照パスフレーズとして記憶し、更に、前回、前記クライアントを認証した際に受信した当該パスフレーズに関する一方向性関数の適用回数を第2の適用回数として記憶する第2の記憶手段と、前記クライアントから前記データ及び第1の適用回数を受信した場合に、前記第1の適用回数と前記第2の適用回数を比較し、第1の適用回数の方が第2の適用回数より小さい場合に、前記クライアントから受信した当該データ中のパスフレーズに前記一方向性関数を、前記第2の適用回数から前記第1の適用回数を差し引いた回数だけ適用して判定パスフレーズを生成する第2の処理手段と、前記第2の記憶手段に記憶された参照パスフレーズと前記第2の処理手段によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証する第2の制御手段として機能させるプログラム。
発明の詳細な説明
【0001】
【発明の属する技術分野】本発明は、遠隔地(リモート)に存在するサーバがクライアントを認証するシステム、方式、及びプログラムに関し、特に認証を高速かつ連続的に行う必要があり、かつサーバとクライアントの間の通信路の信頼性が高くない場合にワンタイムパスワードを用いて認証を行う認証システムに関する。
【0002】
【従来の技術】ネットワークで結ばれた機器間で認証を行う技術の一つとして、(広義の)ワンタイムパスワードという技術が知られている。これは、パスワードは常に1回限りで使い捨てとすることにより、パスワードが盗聴されても、そのパスワードを再利用してシステムを不正に使用することを不可能とする技術である。
【0003】これを実現する一手法として広く知られているのが、IETF(Internet Engineering Task Force)のRFC(Request For Comment) 1938 'One-Time Password system(OTP)'で規定されている、一方向性関数を用いた手法であり、これが狭義の意味でのワンタイムパスワードである。このOTPでは、以下の手順を用いることによりサーバがクライアントを認証する。
【0004】サーバ内には前回の認証成功時にクライアントから送付されたビット列が保管されている。本ビット列はシードSと、サーバ、クライアント(またはクライアントのユーザ)間で共有される秘密のパスフレーズPとを結合したビット列に対して一方向性関数を(N+1)回適用したものである。
【0005】クライアントからサーバに対して認証要求があると、サーバはクライアントに対して、一方向性関数の種別、一方向性関数を適用すべき回数N、及びシードSを提示する。クライアントは、提示されたシードSと、クライアント内で保持されている(またはクライアントのユーザから提供された)秘密のパスフレーズPとを結合し、その結合されたビット列(S+P)に対して、提示された一方向性関数をN回適用してサーバに送付する。サーバは送付された結果に一回のみ一方向性関数を適用し、それがサーバ内に保管されている、前回認証成功時に送付されたビット列(この場合は、シードSと秘密のパスフレーズPとを結合したビット列に対して一方向性関数を(N+1)回適用したもの)と一致すれば、そのクライアントを正当なものと認証する。
【0006】次回、クライアントから認証要求があった場合には、ビット列(S+P)に一方向性関数を適用すべき回数を(N−1)回として同様の手順が繰り返される。このとき、サーバは、前回クライアントから受け取った結果、即ち、ビット列(S+P)に一方向性関数をN回適用したものを記憶しており、クライアントから受け取った、ビット列(S+P)に(N−1)回だけ一方向性関数が適用された値に、一回だけ一方向性関数を適用し、その結果の値と、前記記憶していた値とを比較する。
【0007】本認証手法の中核をなすのは、(S+P)というサーバ、クライアント間で共有されたビット列に対して、認証要求ごとに一方向性関数を適用する回数Nを1回ずつ減らしていくという手順である。これにより、ネットワーク上を流れるパスワードは毎回変更される。またサーバでの認証は、クライアントから送られたビット列に一回のみ一方向性関数を適用し、サーバ内のビット列(前回認証時にクライアントから送付されたビット列)と比較することで行われる。一方向性関数は一般に重い処理であり、これを1回のみ行うことで認証できるのは本方式の優れた特徴である。
【0008】
【発明が解決しようとする課題】OTPは、上述のような方法で認証を行うため、クライアントが、遠隔地にあるサーバにログインし、比較的長いインターバルで対話を行うような用途に適している。
【0009】しかし、近年、特開2001-148715号に開示された「ネットワークシステム及び端末装置」に示されるように、各パケット毎に送信者を認証したいという要求が生じている。こうしたケースでは、各パケットの処理は短時間で完結し、各パケットはパケットロス等の理由で必ずしも相手に到達するとは限らず、また、パケットが送信した順に送信先に到達するとも限らない。前述したOTPは、サーバから提示されたデータに対してクライアントが計算を行い、その計算結果をサーバが受け取って認証を行い、更に、これらの認証がサーバ、クライアント間の各処理ごとに行われるという方法をとっているため、多数の認証を連続して行う必要がある用途に使用するには問題がある。
【0010】以下の記述はパケットの認証について行うが、モバイルエージェントの認証や、処理要求を多数行い処理確認は別途まとめて行うトランザクション処理でも同様の問題が発生する。
【0011】第1の問題は、認証のための通信オーバーヘッドが大きいことである。OTPでは、クライアントが認証されるまでに、クライアントからサーバへの認証要求、サーバからクライアントへのシードS等の提示、クライアントからサーバへの一方向性関数適用結果の提示、と3回の通信が行われる。このように、1回の認証のために複数回通信を行うことのオーバーヘッドは、1回の認証でクライアントが長時間アクセスし続けるならば大きな問題とはならないが、個々のパケットに関して認証を行う場合は、認証のための通信オーバーヘッドの方がペイロードのための通信オーバーヘッドよりも大きくなってしまう。
【0012】第2の問題は、認証要求が相手に到達したことを確認せずに次の認証要求を送る場合が考慮されていないことである。OTPでは、クライアントもサーバも、送付した情報に対して適切な応答が戻ってきたことにより、送付した情報を確かに相手が受信した事を確認し、その後に次の処理を開始する。この結果、OTPでは、認証情報を送付した事実それ自体がネットワークの障害などにより相手に伝達されないという場合を考慮する必要がなくなる。しかし、その代償として認証処理には長い時間がかかり、また認証要求を相手からの応答を待たずに連続的に送付することが出来なくなる。ただし、このことは、クライアントとサーバとがある程度の時間、継続して接続され対話的に動作するという用途であれば重大な問題とはならない。
【0013】しかし、パケット毎の認証ではこの点が問題となる。パケット通信では連続的(バースト的)にパケットを送出したい場合があるためである。この場合、送付したパケットが相手に認証されたことを確認してから次のパケットを送出していたのでは時間がかかり過ぎてしまう。更に、パケット通信では、パケットは必ずしも相手に到達するとは限らないため、一部のパケットが相手に到達しない場合や到着順が逆転したような場合であっても機能する必要があるが、OTPでは、そのような場合が考慮されていない。
【0014】
【課題を解決するための手段】従って、本発明の目的は、サーバがクライアントからのアクセス要求を高速に認証できる、ワンタイムパスワードを用いた認証システムを提供することにある。
【0015】更に、本発明の目的は、クライアントが送付した処理要求(パケット)がパケットロス等の理由でサーバに到達しない場合があっても、全体として適切に機能する、ワンタイムパスワードを用いた認証システムを提供することにある。
【0016】更に、本発明の目的は、クライアントが送付した処理要求(パケット)が送信した順にサーバに到達しない場合であっても、全体として適切に機能する、ワンタイムパスワードを用いた認証システムを提供することにある。
【0017】また更に、本発明の目的は、クライアントが多数の認証要求を連続して行う場合であっても適切に機能する、ワンタイムパスワードを用いた認証システムを提供することにある。
【0018】本発明の認証システムは、サーバとクライアントとの間でシードSを基本的に共有し、クライアントはシードSに一方向性関数をM回適用した結果をサーバに送付するという点に関しては従来技術と同一である。
【0019】本発明の第1の実施態様によれば、クライアントと、前記クライアントにネットワークを介して接続され、前記クライアントからの認証要求に応じてクライアントの認証を行うサーバを備える認証システムが提供され、ここで、前記クライアントは、所定のビット列、及び一方向性関数を記憶する第1の記憶部と、前記サーバに前記クライアントの認証要求を行う際に、前記ビット列に前記一方向性関数を所定の第1の適用回数だけ適用したパスフレーズを生成する第1の処理部と、前記生成されたパスフレーズを含むデータを前記サーバに送信する第1の制御部とを有し、前記サーバは、前記第1の記憶部に記憶されたものと同内容の一方向性関数を記憶し、更に前回、前記クライアントを認証した際に受信したデータ中の前記パスフレーズを参照パスフレーズとして記憶する第2の記憶部と、前記クライアントから前記データを受信した場合に、当該データ中のパスフレーズに前記一方向性関数を所定の第2の適用回数だけ適用して判定パスフレーズを生成する第2の処理部と、前記第2の記憶部に記憶されている前記参照パスフレーズと、前記第2の処理部によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証する第2の制御部を有し、更に、前記クライアントは、前記第1の適用回数を、前記クライアントが認証要求を行う度に所定の規則によって減少させ、前記サーバは、前記第2の適用回数を、前記第1の適用回数の前記減少分に対応させるように前記所定の規則を用いて設定するように構成される。
【0020】本発明の第2の実施態様によれば、前記第1の実施態様において、前記第2の制御部が、前記判定処理の結果、両パスフレーズが一致していないと判断した場合に、更に、前記第2の処理部によって生成された判定パスフレーズに前記一方向性関数を適用して前記両パスフレーズが一致するかどうかを判定する判定処理を、所定回数繰り返すように構成される。
【0021】本発明の第3の実施態様によれば、前記第1の実施態様において、前記第2の制御部が、前記判定処理の結果、両パスフレーズが一致していると判断した場合に、前記クライアントから受信したデータ中のパスフレーズを前記第2の記憶部に累積的に参照パスフレーズとして記憶し、次回の前記判定処理で、これらの参照パスフレーズ群のそれぞれと前記第2の処理部によって生成された判定パスフレーズが比較されるように構成される。
【0022】本発明の第4の実施態様によれば、前記第3の実施態様において、前記第2の記憶部に累積的に蓄積された参照パスフレーズ群のうち、前記パスフレーズを含む前記データのサーバ到達時刻が所定の時刻以前である参照パスフレーズを、前記第2の記憶部から所定のタイミングで除去するように構成される。
【0023】本発明の第5の実施態様によれば、前記第3の実施態様において、前記第2の制御部は、前記判定処理の結果、両パスフレーズが一致していないと判断した場合に、更に、前記第2の処理部によって生成された判定パスフレーズに前記一方向性関数を適用して前記両パスフレーズが一致するかどうかを判定する前記判定処理を、所定回数繰り返すように構成される。
【0024】本発明の第6の実施態様によれば、前記第3の実施態様において、前記第2の制御部は、前記判定処理の結果、両パスフレーズが一致していないと判断した場合に、更に、前記第2の記憶部に累積された参照パスフレーズ群のそれぞれに前記一方向性関数を適用して前記両パスフレーズが一致するかどうかを判定する前記判定処理を、所定回数繰り返すように構成される。
【0025】本発明の第7の実施態様によれば、クライアントと、前記クライアントにネットワークを介して接続され、前記クライアントからの認証要求に応じてクライアントの認証を行うサーバを備える認証システムが提供され、ここで、前記クライアントは、所定のビット列、及び一方向性関数を記憶する第1の記憶部と、前記サーバに当該クライアントの認証を要求する際に、前記ビット列に前記一方向性関数を所定の第1の適用回数だけ適用したパスフレーズを生成する第1の処理部と、前記生成されたパスフレーズを含むデータと前記第1の適用回数を前記サーバに送信する第1の制御部とを有し、前記サーバは、前記第1の記憶部に記憶されたものと同内容の一方向性関数を記憶し、前回、前記クライアントを認証した際に受信したデータ中の前記パスフレーズを参照パスフレーズとして記憶し、更に、前回、前記クライアントを認証した際に受信した前記第1の適用回数を第2の適用回数として記憶する第2の記憶部と、前記クライアントから前記データ及び前記第1の適用回数を受信した場合に、前記第1の適用回数と前記第2の適用回数を比較し、第1の適用回数の方が第2の適用回数より小さい場合に、前記クライアントから受信した当該データ中のパスフレーズに前記一方向性関数を、前記第2の適用回数から前記第1の適用回数を差し引いた回数だけ適用して判定パスフレーズを生成する第2の処理部と、前記第2の記憶部に記憶された参照パスフレーズと前記第2の処理部によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証する第2の制御部を有し、更に、前記クライアントは、前記第1の適用回数を、前記クライアントが認証要求を行う度に所定の規則によって減少させるように構成される。
【0026】本発明の第8の実施態様によれば、前記第7の実施態様において、前記第2の処理部が、前記クライアントから前記データ及び前記第1の適用回数を受信した場合において、前記第1の適用回数と前記第2の適用回数を比較し、第1の適用回数が第2の適用回数以上である場合に、前記第2の記憶部に記憶されている参照パスフレーズに前記一方向性関数を、前記第1の適用回数から前記第2の適用回数を差し引いた回数だけ適用して判定パスフレーズを生成し、その場合に、前記第2の制御部が、前記クライアントから受信した当該データ中のパスフレーズと前記第2の処理部によって生成された判定パスフレーズとが一致しているかどうかを判定する判定処理を行い、両パスフレーズが一致していると判断した場合に、前記クライアントを正当なものとして認証するように構成される。
【0027】本発明の第9の実施態様によれば、前記第8の実施態様において、前記第1の適用回数が前記第2の適用回数以上である場合であって、前記第2の制御部が、前記クライアントから受信した当該データ中のパスフレーズと前記第2の処理部によって生成された判定パスフレーズとが一致しているとの判断した場合に、前記クライアントから受信した当該データ中のパスフレーズ及び第1の適用回数が、前記第2の記憶部に参照パスフレーズ及び第2の適用回数として反映されないように制御するように構成される。
【0028】本発明の第10の実施態様によれば、前記第8の実施態様において、前記第2の記憶部が更に、参照パスフレーズを含んでいたデータがサーバに到達した到達時刻を記憶しており、前記第2の処理部が、前記クライアントから前記データ及び前記第1の適用回数を受信した場合において、前記第1の適用回数と前記第2の適用回数を比較し、第1の適用回数が第2の適用回数以上である場合に、前記参照パスフレーズの到達時刻が所定の時刻以前である場合には、前記クライアントの認証を行わないように制御するように構成される。
【0029】
【発明の実施の形態】最初に、本発明の第1の実施形態について、図1ないし図6を参照して説明する。図1には、本発明の第1の実施形態の認証システム100を構成するクライアント110、サーバ120、及び通信路130が示されている。クライアント110は、認証のフローを制御する制御部111、シードSと、シードSに対して一方向性関数Wを適用すべき回数を保持するパラメータ記憶部112、及び一方向性関数Wを、与えられたビット列に対して適用(計算)する一方向性関数処理部113から構成される。
【0030】サーバ120は、認証のフローを制御する制御部121、参照パスフレーズを保持するパラメータ記憶部122、及び一方向性関数Wを、与えられたビット列に対して適用(計算)する一方向性関数処理部123から構成される。
【0031】通信路130は、クライアント110とサーバ120とを接続するネットワークである。
【0032】クライアント110の一方向性関数処理部113、及びサーバ120の一方向性関数処理部123は、あるビット列を受け取り、それを別のビット列に変換する。このとき、正方向の変換は計算量的に容易であり、かつ逆方向の変換は実用的な方法が知られていないものとする。このような変換を行う関数として、例えばMD5(IETF RFC1321)が知られている。
【0033】上記関数をFとし、ビット列をBとすると、関数Fをビット列Bに1回適用するとは、B’=F(B)で表わされ、結果としてB’が求まる。関数Fをビット列Bに2回適用するとは、B’’=F(B’)=F(F(B))で表され、結果としてB’’が求まる。一方向性関数とは、B=F−1(B’)なる関数F−1が知られていないことをいう。
【0034】図2に示すのは、クライアント110のパラメータ記憶部112の構成例である。シードSとして2バイトの値「0xEE06」、及びそのシードSに対して一方向性関数Wを適用すべき回数「35」とを保持している。本実施形態では、説明を簡単にするため、シードS、及びそこから一方向性関数Wを用いて生成される値(以下、パスフレーズという)は全て2バイトとして記述しているが、実際には必要とされる認証強度に応じて任意の長さとすることができる。
【0035】図3には、サーバ120のパラメータ記憶部122の構成例が示されている。当該パラメータ記憶部122は、クライアント110から受信したパスフレーズを参照パスフレーズとして記憶し、この例では2バイトの値「0x02CB」をとる。
【0036】次に、本発明の第1の実施形態のクライアント110の処理について説明する。
【0037】図4は、クライアント110側で認証要求を生成し、送信する手順を示すフローチャートである。当該処理は、クライアント110が認証要求を行うたびに、例えばパケットを送信するたびに呼び出され実行される。図示されてはいないが、初期化フェーズでは、シードSがクライアント110またはサーバ120で決定され、クライアント110とサーバ120との間で共有される。また、一方向性関数WをシードSに対して適用する回数Mの初期値もこのときに、クライアント110及びサーバ120の間で取り決めておく。例えば、最初の認証要求に用いるMの値を100とする。
【0038】クライアント110においてサーバ120のリソースを利用したい等の要求が発生した場合、クライアント110は、シードSに対して一方向性関数WをM回適用した結果を、通信路130を介してサーバ120に送付する(ステップS10)。クライアント110は、一方向性関数処理部113において、パラメータ記憶部112に記憶されているシードSに対して、パラメータ記憶部112に記憶されている回数Mだけ一方向性関数Wを適用する。
【0039】クライアント110は、この計算結果(パスフレーズ)の送付に際し、他のデータ、例えばサーバ120上で実行されるプログラムや、そのパラメータを添付することもできる。このとき、クライアント110からサーバ120に送付されるデータは、例えば、図5に示すように、パスフレーズと、他のデータとから構成されることとなる。
【0040】次に、ステップS12において、次の認証要求に備えて、一方向性関数Wを適用すべき回数Mを1減少させる。このことは、クライアント110のパラメータ記憶部112の回数Mを1減少させることによって行われる。
【0041】以上でクライアント110側での1つのパケットに対する認証要求生成・送信処理は終わりである。また、このようなクライアント110の処理は、認証制御部111が制御する。
【0042】次に、第1の実施形態のサーバ120における認証手順について説明する。
【0043】図6は、サーバ120側でクライアント110からの認証要求を受信した場合の認証処理手順を示すフローチャートである。この処理は、クライアント110から認証要求を受信するたびに実行される。サーバ120は、前述したように、初期化フェーズでクライアント110との間で、シードSと、一方向性関数Wを適用すべき回数Mの初期値(例えば100)を共有する。
【0044】また、当該フェーズで、シードSに一方向性関数WをM+1(=101)回適用した結果を算出しておき、参照用パスフレーズとしてパラメータ記憶部122に記録する。この時のパラメータ記憶部122の構成は図3に示したようなものである。シードSに一方向性関数Wを101回適用した結果を、クライアント110から、或いはその他の方法によって取得できるのであれば、サーバ120はシードSを保持する必要はない。
【0045】サーバ120は、クライアント110から認証要求を図5に示すようなフォーマットで受信すると、ステップS20において、その受信データの中からパスフレーズを取りだし、それに一方向性関数Wを1回適用する。
【0046】ここでは、クライアント110から送信されるパスフレーズは、シードSに一方向性関数Wを適用したものであり、その適用回数は認証を要求する度に1ずつ減らされている。従って、これに対応してサーバ120は、上記のように関数Wを1回適用して、前回クライアント110から受信したパスフレーズと一致するかどうかを判定する。よって、サーバ120における、この適用回数は、クライアント110の適用回数の変化に応じたものであり、常に1回に制限されるものではない。その他の所定の規則的な変化を用いて適用回数を定めることができる。
【0047】次にステップS22において、その結果をパラメータ記憶部122内の参照用パスフレーズと比較し、両者が一致したら、ステップS24において、クライアント110を正当なクライアントとして認証する。その後、ステップS26において、クライアント110から受信した前記パスフレーズを新たな参照パスフレーズとしてパラメータ記憶部122内に記憶し、認証処理を終了する。
【0048】この後の処理は、クライアント110とサーバ120との取り決めによる。例えば、サーバ120がクライアント110からプログラム実行要求を受けることになっていれば、パラメータが渡された場合に、そのパラメータを用いて指定されたプログラムが実行される。
【0049】ステップS22で、両者が不一致であった場合は、何件か先に送信されるであろうパスフレーズを推定し、その推定結果とクライアント110からのパスフレーズが一致するかを判定する。また、ここでは、Aという値を設けて、パスフレーズを推定する範囲を制限している。ステップS28で判断される適用回数は、次にステップS20を実行した場合の、一方向性関数Wの適用回数を表し、最初にステップS20が実行され、ステップS22でNOと判定された場合に2となり、以降ステップS28の直前で1ずつ増加される。
【0050】この処理は、クライアント110から送信されるパケットが、パケットロスのために喪失したり、送信された順序でサーバ120に到達しなかったりする可能性もある点を考慮したものである。
【0051】まず、ステップS28において、前記適用回数をチェックする。それが、ある決められた一定の値A、例えば10以下であればステップS20に戻り、一方向性関数Wを適用する回数を増やして同様の処理を行う。もし決められた値を超えていれば、その時はステップS30において認証失敗と判定する。ステップS22で一致すれば、ステップS24において、そのクライアント110は認証される。その後、ステップS26において、クライアント110からのパスフレーズが、参照パスフレーズとして記憶される。
【0052】上述したサーバ120の処理は、認証制御部121が制御する。
【0053】こうした本発明の第1の実施形態においては、上述のように、サーバ120において、一方向性関数Wを1ないしA回の範囲でシードSに適用している。従って本実施形態では、サーバ120が記憶する参照パスフレーズが、シードSに関数Wを(M+1)回適用したものであるときに、クライアント110が送信するパスフレーズが、シードSに関数WをM回適用したものでなければならないという、クライアント110に関する従来の認証条件が、ある程度緩和されている。
【0054】即ち、本実施形態でクライアント110が認証されるには、サーバ120が記憶する参照パスフレーズが、シードSに関数Wを(M+1)回適用したものであるときに、クライアント110が送信するパスフレーズが、シードSに関数Wを(M−A+1)回ないしM回適用したものであればよい。
【0055】このことは、クライアント110からのパケットが、(A−1)個連続してサーバ120に届かない場合であっても、A個目がサーバ120に到達すれば認証が成功することを意味する。
【0056】上述のように、本実施形態では、追加的にA回だけ一方向性関数Wを適用し、認証の幅を持たせているが、これは本発明の認証システムとして必須のものではない。例えば、図6において、ステップS28とステップS30を除いたフローチャートをサーバ120に関して適用することが可能である。また、他の関連する実施形態についても同様のことが言える。
【0057】また、この第1の実施形態においては、シードSだけに一方向性関数Wを適用している一方、従来のワンタイムパスワードでは、前述のように、シードSと秘密のパスフレーズPを結合したビット列に一方向性関数Wが適用されている。本明細書においてシードSのみを用いているのは、説明を簡単にするためであって、このシードSを、従来のワンタイムパスワードにおける秘密のパスフレーズPを含むものと考えてもよい。
【0058】また、シードS(前述のように、シードSを、秘密のパスフレーズPを含むものと考える場合には、シードSの少なくとも一部)は、クライアント110のパラメータ記憶部112に記憶された適用回数Mが0になった場合に、新たなワンタイムパスワード生成のサイクルを形成するため、例えば乱数等を用いてクライアント110またはサーバ120のいずれかで再作成され、両者間で再び共有される。
【0059】次に、本発明の第2の実施形態の認証システムについて、図7ないし図9を参照して説明する。
【0060】第2の実施形態は、送信順序とは異なる順序でサーバ120に到着したパケットに対処するためのものである。前記第1の実施形態においては、パケットの順序逆転が発生すると、遅く到達したパケットは全て認証されないことになる。これは次に述べる理由による。
【0061】本発明の実施形態においては、認証システムはすべて一方向性関数Wを用いている。そこで、クライアント110が、シードSに対して一方向性関数WをM回適用した結果をパスフレーズとしてサーバ120に送付し、サーバ120が、当該シードSに対して一方向性関数WをL回適用した結果を参照パスフレーズとして記憶しているとき、M>Lであれば、サーバ120はクライアント110から受信したパスフレーズに何らかの操作を加えるという方法では、サーバ120内の参照パスフレーズと、受信したパスフレーズが、同一のシードSから生成されたものであるか否かを知ることが出来ない。一方向性関数Wの実用的な逆関数は存在しないからである。
【0062】Mは通常は1回ずつ、パケットを送出するたびに減少する。Lも、認証が成功すればMに伴って減少する。ここで、クライアント110からの認証要求の順序逆転が発生すると、M>Lという状況が発生する。
【0063】この場合において、クライアント110から送付されたパスフレーズが、シードSに対して一方向性関数Wを適用した結果として生成されたものであることを知る方法は2つある。
【0064】一つの方法は、クライアント110から送付されたパスフレーズに一方向性関数Wを適用するという方法はそのままに、比較対象としてサーバ120内に記録しておく参照パスフレーズの少なくとも一つを、M<Lという条件が実用上常に満たされるように選ぶことである。そして、これが本発明の第3の実施形態である。本実施形態では、このために、参照パスフレーズは必ずしも直前の認証成功時にクライアント110から送付されたパスフレーズとはせず、より古いパスフレーズも参照パスフレーズの一つとして利用可能としている。
【0065】本発明の第2の実施形態は、図1に示された認証システム100と同様の構成を有する。更に、第1の実施形態の認証システム100のクライアント110のパラメータ記憶部112を図7に示すように構成し、サーバ120のパラメータ記憶部122を図8に示すように構成したものである。
【0066】図7に示すように、クライアント110のパラメータ記憶部112は、シードSから一方向性関数Wを用いて生成されたパスフレーズと、そのパスフレーズを生成するために関数Wを適用した適用回数、及び次の認証要求に利用すべきパスフレーズはどれかを示す「現在」フラグを保持している。
【0067】また、図8に示すように、サーバ120のパラメータ記憶部122は、参照パスフレーズを複数(この実施例では5個)保持し、更に、それぞれクライアント110から対応するパスフレーズを受信した日時を保持ている。また、図8では、参照パスフレーズが5個示されているが、こうしたパラメータ記憶部122の構成は、サーバ120の処理動作の途中で形成されるものであり、初期状態では、第1の実施形態で説明したように1件の参照パスフレーズを有しており(図3)、保持する件数も処理に伴って変動する。
【0068】次に、このような構造の認証システム100の動作について、第1の実施形態の認証システムと異なる点を中心に説明を行う。
【0069】まず、クライアント110は、初期化フェーズにおいて、シードSに一方向性関数Wを順次適用して、複数のパスフレーズを生成し、それらのパスフレーズと、対応する一方向性関数Wの適用回数をパラメータ記憶部112に記憶する。図7の例では、一方向性関数Wを100回適用し、その過程で、当該関数Wを0回から100回まで適用したパスフレーズをそれぞれ記憶している。パラメータ記憶部112は、これ以外の構成、例えば、図2のように構成して、第1の実施形態と同様にパスフレーズを生成しても良い。
【0070】また、サーバ120は、初期化フェーズで、例えばシードSに関数Wを101回適用した値を、参照パスフレーズとしてパラメータ記憶部122に記憶する。
【0071】クライアント110の認証要求の生成・送信処理は図4に示した第1の実施形態に関するクライアント110のフローチャートと同様である。ただし、クライアント110で、シードSに一方向性関数WをM回適用した結果(パスフレーズ)を得るには(図4のステップS10の処理)、パラメータ記憶部112内の対応するレコード(「現在」を示すフラグがセットされているレコード)を参照することによって可能となる。
【0072】また、一方向性関数Wを適用すべき回数Mを1減少させるには(図4のステップ12の処理)、「現在」フラグを1レコード下に移動することで実現される。
【0073】一方、サーバ120は、クライアント110から認証要求を受信した場合、図6のフローチャートに示した処理に代えて、図9のような処理に変更する必要がある。図9のフローチャートでは、図6のステップS22、及びS26が、それぞれステップS44、及びS48に変更され、ステップS40が新たに追加されているが、それ以外は、図6のフローチャートの対応するステップと同一内容である。
【0074】サーバ120は、まず、ステップS40において、図8に示されるような一群の参照パスフレーズの整理を行う。この処理については後で詳述する。
【0075】次に、ステップS42において、クライアント110から認証要求を受信し、その受信データの中からパスフレーズを取りだし、それに一方向性関数Wを1回適用する。また、この受信の際に、当該パスフレーズに対応付けて、そのパスフレーズをサーバ120に受信した日時を記憶する。図8には、「日時」という項目でこの情報が示されている。
【0076】次にステップS44において、その結果をパラメータ記憶部122内の参照用パスフレーズの全てと比較し、そのうちのいずれかと一致したら、ステップS46において、正当なクライアントからの要求と認める。前述したように、1つめの認証要求を受信した段階では、パラメータ記憶部122内には1つの参照用パスフレーズしか記憶されていないが、後で説明するように、認証が成功するたびに当該参照用パスフレーズが蓄積されていくことになる。
【0077】次に、ステップS48において、クライアント110から受信したパスフレーズをパラメータ記憶部122に記憶された参照パスフレーズに追加し、認証処理は終了する。
【0078】ステップS44で、両者が一致しない場合は、第1の実施形態と同様、所定の適用回数Aを限度として、クライアント110から受信したパスフレーズに関数Wが適用される。この複数回にわたる関数Wの適用の結果、ステップS44でそれが、参照パスフレーズのどれかと一致したと判定されると、ステップS46において、正当なクライアントと認証される。また、ステップS48において、受信パスフレーズが参照パスフレーズとしてパラメータ記憶部122に追加される。
【0079】本実施形態では、認証が成功するたびに、クライアント110から受信したパスフレーズが、サーバ120のパラメータ記録部122内に参照パスフレーズとして蓄積され、次第に参照パスフレーズの件数が多くなっていく。そこで、これらをある程度の合理的な数に調整するために、ステップS40において、所定の日時を基準に、それ以前に受信したパスフレーズに対応する参照パスフレーズを前記パラメータ記録部122から削除する。基準となる所定の日時は、現在時刻や、最新のパスフレーズの受信時刻を元に決定されうる。
【0080】参照パスフレーズは、図8に示すように、対応するパスフレーズの受信日時を記憶しているので、これらの日時と、上記基準となる所定の日時が比較される。
【0081】また、日時以外の他の基準を用いて参照パスワードを整理することもできる。例えば、パラメータ記憶部122内に、参照パスフレーズとともに、それに対応するパスフレーズに関する一方向性関数Wの適用回数Mを記憶し、参照パスフレーズを、直近の所定の個数だけ保持するように構成しても良い。
【0082】次に、本発明の第3の実施形態を、図10を参照して説明する。本実施形態は、第2の実施形態の変形であり、サーバ120の認証処理のみについて説明する。
【0083】前述した、パケットの順序逆転に対処する他の方法は、前記第2の実施形態とは逆に、サーバ120のパラメータ記憶部122に記憶されている参照パスフレーズのそれぞれに一方向性関数Wを適用し、その結果と、クライアント110から受信したパスフレーズを比較するものである。
【0084】本実施形態の認証システム100は、ステップS60において、参照パスフレーズの整理を行う。この処理は、第2の実施形態に関して説明した図9のステップS40の処理と同様のものである。
【0085】ステップS62において、クライアント110からパスフレーズを受信する。以降の処理は、パラメータ記憶部122に記憶された参照パスフレーズごとに行われる。
【0086】認証システム100は、ステップS64において、参照パスフレーズの1つを選択する。参照パスフレーズは、1つ目のパスフレーズをクライアント110から受信する際には1つだけ記憶されているが、認証が成功するたびに、受信したパスフレーズが累積的に記憶されていく。
【0087】新たに選択すべき参照パスフレーズが存在しない場合は、ステップS66でYESとなり、ステップS68で認証失敗と判断される。これは、全ての参照パスフレーズについてのテストが失敗したことを意味する。
【0088】選択可能な参照パスフレーズが残っている場合は、ステップS70に進み、そこで、選択された参照パスフレーズに、一方向性関数Wが1回だけ適用される。次に、その関数Wが適用されたビット列が、ステップS62でクライアント110から受信したパスフレーズと一致するか判断される。一致した場合、ステップS74でクライアント110は認証され、ステップS76で受信パスフレーズが新たに参照パスフレーズとしてパラメータ記憶部122に記憶される。
【0089】ステップS72で一致しないと判断された場合は、ステップS78に進み、そこで、現在、参照パスフレーズに何回一方向性関数Wが適用されているかが判定され、所定の回数Aを越える場合は、ステップS64に進み、新たな参照フレーズを選択して同様の比較処理を繰り返す。適用回数がA以下である場合は、ステップS70に進み、更に一方向性関数Wが適用され、ステップS72で受信パスフレーズとの比較が行われる。
【0090】次に、本発明の第4の実施形態を、図11ないし図14を参照して説明する。この実施形態は、クライアント110から、パスフレーズとともに、そのパスフレーズに関する一方向性関数Wの適用回数Mをサーバ120に送信し、サーバ120では、自身が保持する参照パスフレーズの適用回数Lと前記適用回数Mとの差だけ、受信パスフレーズに一方向性関数Wを適用し、それが参照パスフレーズと一致すればクライアント110を認証するものである。
【0091】本発明の第4の実施形態による認証システムの構成は、図1に示されたものと基本的に同様である。ただし、サーバ120内のパラメータ記憶部122の構成は、図11に示すように、参照パスフレーズと、その参照パスフレーズがシードSに一方向性関数Wを何回適用した結果として得られたかを示す適用回数Lを含んでいる。
【0092】図12は、クライアント110側で認証要求を生成する手順を示すフローチャートであり、クライアント110が認証要求を行うたびに、例えばパケットを送信するたびに呼び出され実行される。図示されてはいないが、初期化フェーズでは、シードSがクライアント110またはサーバ120で決定され、クライアント110とサーバ120との間で共有される。また、一方向性関数WをシードSに対して適用する回数Mの初期値もこのときに、クライアント110、サーバ120間で取り決めておく。例えば、最初の認証要求で用いられるMの値を100とする。
【0093】クライアント110において、サーバ120のリソースを利用したい等の要求が発生した場合、クライアント110は、ステップS80において、シードSに対して一方向性関数WをM回適用してパスフレーズを生成し、そのパスフレーズを、適用した回数Mの値と共にサーバ120へ通信路130を介して送信する。送信に際しては、第1の実施形態と同様、他のデータ、例えばサーバ120上で実行されるプログラムのためのパラメータを同時に添付することも可能である。この結果、クライアント110からサーバ120に送付されるデータは図13のように、パスフレーズ、適用回数M、及び他のユーザデータとから構成されることとなる。
【0094】次に、ステップS82において、次に認証要求を生成する場合に、一方向性関数Wを適用すべき回数を1だけ減ずる。これは第1の実施形態と同様、クライアント110側のパラメータ記憶部112が図2のような構成を持つ場合には、パラメータ記憶部112内の回数Mを1減少させることで行われる。
【0095】こうした処理の流れは、クライアント110の認証制御部111が制御する。
【0096】次に、サーバ120でクライアント110から認証要求を受信した場合の処理手順を、図14のフローチャートを参照して説明する。この処理は、クライアント110から認証要求を受信するたびに実行される。サーバ120は、前述したように、初期化フェーズでクライアント110と同期をとり、シードSと、一方向性関数Wを適用すべき回数Mの初期値(例えば100)を共有する。
【0097】次に、シードSに一方向性関数WをL=M+1(=101)回適用した結果を算出し、参照用パスフレーズとしてパラメータ記憶部122に記録する。回数Lも同時にパラメータ記憶部122に記録される。この時のパラメータ記憶部122の構成は図11に示したようなものである。
【0098】サーバ120は、認証要求を受信すると、ステップS90において、受信したデータの中から一方向性関数Wの適用回数Mを取り出し、パラメータ記憶部122内の回数Lと比較する。もし、L<=Mであれば、これは、例えばパケットの順序が逆転して送信されたようなケースであり、ステップS100において認証は失敗であると判断する。
【0099】L>Mであれば、ステップS92において、クライアント110から受信したパスフレーズに、一方向性関数Wを(L−M)回適用する。ステップS92における計算結果が、ステップS94においてパラメータ記憶部122内の参照パスフレーズと一致すれば、ステップS96において、認証は成功と見なされ、ステップS98でクライアント110から受信したパスフレーズを新たな参照パスフレーズとし、前記適用回数Mを適用回数Lとしてパラメータ記憶部122を更新し、認証処理は終了する。
【0100】この後の処理は、第1の実施形態と同様、クライアント110とサーバ120との取り決めによる。
【0101】ステップS94で両者が不一致であると判定されたら、ステップS100において認証は失敗と判定される。
【0102】こうした処理の流れは、サーバ120の認証制御部121が制御する。
【0103】次に、本発明の第5の実施形態について、図15を参照して説明する。この実施形態は、第4の実施態様において、図14に示すサーバ120での処理を改良したものである。ここでは、パケットの到着順が逆転した場合であっても、認証が成功するように、救済措置を設けている。即ち、受信したパスフレーズを参照してM<Lとなっていなければ、参照パスフレーズの方に一方向性関数Wを適用し、その結果を当該受信パスフレーズと比較しようとするものである。
【0104】サーバ120の認証処理では、図15のフローチャートに示すように、M<Lの場合は、図14に示す第4の実施形態と同様の処理を行う。一方、M>=Lの場合には、第4の実施形態とは異なり、ただちに認証失敗とはしないように制御する。M>=Lの場合は、ステップS122において、サーバ120のパラメータ記憶部122内の参照パスフレーズに、一方向性関数Wを(M−L)回適用する。その結果と、クライアント110から受信したパスフレーズとが一致したら、正当なクライアントと認証し、あとは図14の場合と同様にステップS126とステップS128の処理を行う。
【0105】次に、本発明の第6の実施形態について、図16を参照して説明する。この実施形態は、第5の実施態様における、認証処理を更に改良するものである。
【0106】本実施形態では、参照パスフレーズの更新を、M<Lの場合に限ることにより、認証の速度を向上させる。一方向性関数Wは一般に、計算量的に重い処理であり、この回数を減少させることは速度向上のため重要である。
【0107】ここで、第6の実施形態の処理とその効果を、PK1、PK2、PK3の順で連続してサーバ120に到達した3つのパケットを例にとって考える。PK1は、シードSにM1回一方向性関数Wを適用したパスフレーズP1を含み、PK2は、シードSにM2回関数Wを適用したパスフレーズP2を含み、PK3は、シードSにM3回関数Wを適用したパスフレーズP3を含むものと仮定する。
【0108】ここで、前記第5の実施形態によってこれらのパケットの認証処理を行うと、認証成功後にサーバ120のパラメータ記憶部122内に保持される参照パスフレーズは、P1、P2、P3の順に遷移する。
【0109】また、2つ目に到達したパケットPK2と3つ目に到達したパケットPK3を認証する際に、サーバ120において必要となる一方向性関数Wの適用回数は、各々|M1−M2|回、|M2−M3|回となる。ここで|x|は、xの絶対値を示す。
【0110】通常はパケットは順序よく到着し、一方向性関数Wの適用回数Mは1ずつ減っていくが(即ち、M1=M2+1=M3+2)、稀にパケットの順序が逆転する場合がある。
【0111】次に、パケットPK2のみが順序の逆転を生じ、PK1とPK3が連続している場合((M1−M3)=1)を考える。PK1、PK2、PK3の順で受信するものとする。
【0112】この場合、上記第5の実施形態のサーバ120では、2つ目に到達したパケットPK2の認証では、(M2−M1))回、3つ目に到達したパケットPK3の認証では、(M2−M3)回、合計で(M2−M1)+(M2−M3)=2(M2−M3)−1回、一方向性関数Wを適用する必要が生じる。これは、(M2−M3)が大きい数字の場合には(大きく順序逆転した場合には)、重い処理となることを示している。
【0113】これに対して、第6の実施形態によるサーバ120では、順序逆転した際は、サーバ120のパラメータ記憶部122内に格納される参照パスフレーズは更新されないので、各認証後に格納されている参照パスフレーズはP1、P1、P3と遷移し、2つ目及び3つ目のパケットを認証するために必要な一方向性関数Wは、各々(M2−M1)回と(M1−M3)回となる。この合計はM2−M3回であり、M2−M3が1より大きければ、第6の実施形態における方が、第5の実施形態におけるよりも、必要となる一方向性関数Wの適用回数は小さくなる。
【0114】M2−M3=1となるのは、M2=M1の場合であり、これはクライアント110が一つのパスフレーズを複数回利用したと言うことであってあり得ない。従って、順序逆転は稀にしか発生しない状態では、第6の実施形態により一方向性関数Wを適用すべき回数は小さくなることが期待できる。
【0115】第5の実施形態と第6の実施形態の優劣比較において重要なのは、パケットの順序逆転の頻度である。もし順序逆転したパケットが連続的に到着すると、サーバ内に格納されるパスフレーズを更新しない事によるペナルティは大きくなるためである。しかし、順序逆転が稀であるとの仮定が成立するならば、第6の実勢形態は一方向性関数Wを適用すべき回数を減少させ、認証を高速化することになる。
【0116】図16に示すフローチャートでは、図15のフローチャートと比較して分かるように、M>=Lの場合には、サーバ120のパラメータ記憶部122に記憶されている参照パスフレーズの更新を行わないように制御される。即ち、図16に示すフローチャートでは、図15のステップS128に対応するステップが省略されている。
【0117】次に、本発明の第7の実施形態について、図17及び図18を参照して説明する。第7の実施形態は、サーバ120において、参照パスフレーズをいつ受信したかを、クライアント110の認証可否判定基準に加えるものである。
【0118】不正アクセスを防ぐためには、こうした時刻情報を併用することが有効であり、上記説明した第5及び第6の実施形態の認証システム等に適用することができる。
【0119】ここでは、当該機能を、前述の第6の実施形態に付加した例を以下に説明する。
【0120】サーバ120のパラメータ記憶部122には、図17に示すように、参照パスフレーズ、そのパスフレーズを得るために一方向性関数WをシードSに適用すべき回数Lに加え、その参照パスフレーズをサーバ120が受信した日時が記録される。この日時に関する情報は、認証要求の順序が逆転して到達した際に、それが合理的な範囲であるかどうかを判定するために用いるので、時刻には、その合理的な範囲と判定できる程度の精度が必要である。図17に示した例では、ミリ秒の単位で時刻を記録するものとしている。
【0121】この実施形態におけるクライアント110の処理は、第4の実施形態と同様である。サーバ120での処理は図18のフローチャートに示すようなものになる。図18のフローチャートは、ステップS162を除くと、第6の実施形態に関連して説明した図16の処理と同様である。即ち、ステップS150においてMとLとを比較し、M>=Lの場合には、図16のステップS142に対応するステップS164の前に、ステップS162の処理を行う。
【0122】ステップS162では、現在の時刻と、参照パスフレーズがサーバ120に何時受信されたのかを示す時刻情報とを比較し、両者が一定限度内、例えば5秒以内であれば、正当な認証要求である可能性有りとして以下のステップS164に進む。ステップS162で比較した時間の差が一定限度を超えている場合は、ステップS160において認証失敗と判断する。
【0123】本実施形態で、時刻による認証をM>=Lの場合に限っているのは、時刻による判断が、認証要求の到着順序が逆転した場合に特に有効と考えられるからである。もちろん、M>=L以外の場合に上記のような時刻による判断が行われてもよい。
【0124】次に、本発明の認証システムを構成するクライアント110、及びサーバ120として動作しうるパーソナル・コンピュータの構成例を、図19を参照して説明する。上記本発明の構成要素であるクライアント110、及びサーバ120はそれぞれ、こうしたパーソナル・コンピュータでのみ実施されるとは限らない。より高性能なワークステーションやホストマシン、より簡単な機能を有するその他のコンピュータ等で実施することも可能である。
【0125】パーソナル・コンピュータ200は、CPU210、メモリ220、外部記憶装置230、入力装置240、出力装置250、記録媒体駆動装置260、ネットワーク・インタフェース270、およびこれらの構成要素210〜270を相互に接続するバス280からなる。
【0126】CPU210は、パーソナル・コンピュータ200内の各構成要素の処理を制御して、上述したクライアント110やサーバ120の各機能(例えば、認証制御部111、121、及び一方向性関数処理部113、123の動作)を実現する。
【0127】メモリ220は、前記制御、および各処理を行うようCPU210を制御するプログラム、および当該プログラムが使用するデータを一時的に記憶する。
【0128】外部記憶装置230は、本システムで必要なデータを記憶するハードディスク等の記憶装置である。パーソナル・コンピュータ200がクライアント110として使用される場合、この外部記憶装置230内にはパラメータ記憶部112が含まれる。一方、サーバ120として使用される場合は、パラメータ記憶部122が含まれる。
【0129】入力装置240は、マウス、キーボード等の、CPU210に特定の指令を与えたり、外部記憶装置230に記憶するデータを入力するための装置である。当該要素は、本発明の認証システムに関しては必須の要素ではないが、クライアント110のユーザは、これらの入力装置240を用いてクライアント110にログインしたり、プログラムの実行をさせる等のために、サーバ120への認証要求を指示する。
【0130】出力装置250は、CRTディスプレイやテレビモニタであり、CPU210への指示やその他の入力を受付るための入力画面や、特定の情報を表示する表示画面を表示するために用いられる。
【0131】また、必要に応じて、データ等を印刷出力するためのプリンターが出力装置として用いられる。
【0132】記録媒体駆動装置260は、DVD−ROM、CD−ROM、フレキシブルディスク等の記録媒体290の内容を読み出し、必要に応じて前記メモリ220や外部記憶装置230にコピーする。本発明の認証システムのクライアント110、及びサーバ120に各機能を実行させるためにCPU210に指令を与え制御する前記プログラムも当該記録媒体290に格納される場合があり、このプログラムは、必要に応じてメモリ220にロードされる。パーソナル・コンピュータ200は、このメモリ220内にロードされた当該プログラムによって制御され、CPU210はこのプログラムの命令に従って各種処理を実行し、本発明の認証システムを実現する。
【0133】ネットワーク・インタフェース270は、パーソナル・コンピュータ200をネットワーク300に接続する。ネットワーク300は、図1に示す通信路130に対応し、公衆電話回線、専用回線、インターネット等様々な態様のネットワーク、及びそれらの組み合わせを含む。
【0134】前記CPU210に指令を与え、本発明を実現するプログラムは、前述したような記録媒体290を介さずに当該ネットワーク300を介してメモリ220にロードされる場合もある。
【0135】また、当該プログラムは、システム全体として提供されるだけでなく、各クライアント、サーバ毎、即ち各パーソナル・コンピュータ毎に個別に提供されうる。
【0136】
【発明の効果】本発明の第1の効果は、認証のための通信オーバーヘッドを減少させることができ、高速な認証が可能となることである。
【0137】その理由は、クライアントから送られたパスフレーズに対して一方向性関数を適用すべき回数をサーバで推定するため、サーバから回数情報をクライアントに対して送付する必要がないためである。
【0138】本発明の第2の効果は、クライアントは、認証要求がサーバに到達したことを確認することなく、連続的に認証要求を送ることが可能となることである。
【0139】その理由は、サーバでの一方向性関数の回数の推定に際して、認証要求が通信途上で失われる場合や、認証要求の順序が逆転した場合をも考慮して推定するため、認証が常に成功しなくてもサーバは認証作業を継続でき、その結果クライアントは連続的に認証要求を送付できるからである。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013