認証システム、サーバコンピュータ、プログラム、及び、記録媒体
【課題】ネットワークを介して接続可能な2つの端末間の通信セッションにおいて、安全性が高く、端末にとって低負荷で効率の良い認証処理を行うこと。
【解決手段】イニシエータ3は、送信文2000を作成し、レスポンダ5に送信する。レスポンダ5は、送信されたD−IDによる認証を行う。レスポンダ5は、共有シードを作成し、送信データ3000を作成し、イニシエータ3に送信するとともに、次の(i+1)番目のセッション用のデータを作成する。イニシエータ3は、受信した送信データからDoS攻撃かどうかをチェックし、受信したD−IDによる認証を行う。また、共有シードを作成し、次の(i+1)番目のセッション用のデータを作成する。
【解決手段】イニシエータ3は、送信文2000を作成し、レスポンダ5に送信する。レスポンダ5は、送信されたD−IDによる認証を行う。レスポンダ5は、共有シードを作成し、送信データ3000を作成し、イニシエータ3に送信するとともに、次の(i+1)番目のセッション用のデータを作成する。イニシエータ3は、受信した送信データからDoS攻撃かどうかをチェックし、受信したD−IDによる認証を行う。また、共有シードを作成し、次の(i+1)番目のセッション用のデータを作成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、使い捨てIDを利用したDoS(Denial of Service)攻撃に強い、高速かつ低負荷な効率のよい二者間通信における認証機能に関する。
【背景技術】
【0002】
近年のコンピュータネットワーク技術の発達は、ネットワークを介して提供されるサービスの増加をもたらしたが,ネットワーク技術の進展に伴い、不正アクセスなどの問題が深刻となっている。これら排除のために、サービス提供に先立ち行われる端末間の認証処理は重要なものとなっている。
例えば、ネットワークに接続された2つの端末装置を例に考える。2つの端末のうち一つをイニシエータ、もう一方をレスポンダとすると、両者間の認証処理とは、あるサービスの利用を希望するイニシエータがトリガーを引き、サービス提供者であるレスポンダがサービスを提供する一連の流れ(以後セッションとする)において、レスポンダがイニシエータの正当性を検証する作業のことである。このために,レスポンダはイニシエータの固定の識別子(以後IDとする)をキーとし、パスワードなど秘密の認証情報をテーブルにて関連付けて管理しておき、レスポンダはイニシエータからの問い合わせの際,受信したID及び認証情報と、自身が保持するID及び認証情報の突合せ処理を行うことで,イニシエータの正当性を判断する方法が広く利用されている。
【0003】
しかしながら、このような場合では、パスワードが固定であることから、パスワード漏洩により不正利用の危険性が高くなる。
この危険性に対する防止のために、使い捨てIDを用いる方法がある。(例えば、特許文献1)
使い捨てIDとは「IDは一度のみ有効である」、「第三者は次のIDを予測することが不可能である」、「第三者はIDから利用者が特定できない」という性質を持つIDである。使い捨てIDは通信のセッションごとに変更されるため、たとえ攻撃者が使い捨てIDを入手し利用したとしても,レスポンダが管理するテーブルには既に更新されたIDが記録されており,攻撃者の入手したIDは存在しない。
【0004】
以下、従来の使い捨てIDによる認証処理について説明する。
使い捨てIDを利用した認証方式としてSIGNAL方式がある。(例えば、非特許文献1)図19は、イニシエータ7100とレスポンダ7200間の認証処理の概要を示すフローチャートである。図20は、認証処理において使用される演算処理を示す演算処理テーブルを示す図である。図21は、イニシエータ7100が保持するイニシエータ情報管理テーブル9300を示す図であり、図22はレスポンダ7200が保持するレスポンダ情報管理テーブル9400を示す図である。
【0005】
図20に示す演算処理テーブルは、図19に示す認証処理において必要となる演算9201〜9204を示す。
図21は、イニシエータ7100が保持する情報であり、レスポンダの固定ID9301に対応する受信用SIGNALi9302、認証鍵9303、送信用SIGNALi9304である。
図22は、レスポンダ7200が保持する情報であり、イニシエータの固定ID9401に対応する受信用SIGNALi9402、認証鍵9303、送信用SIGNALi9404、である。
【0006】
図19に示すように、イニシエータ7100は、レスポンダ7200に対して送信する送信データ9000を作成し(ステップ8000)、送信する(ステップ8100)。
【0007】
iセッションにおいて、イニシエータ7200から送信されるデータ9000は、SIGNALIi、AKiを用いてrIi、IDI、IDR、SIGNALIiを暗号化したものを示すEAKi{rIi,IDI,IDR,SIGNALIi}である。
【0008】
SIGNALIiは、図20に示す演算処理テーブルにおける演算9201に示されるように、一方向関数であるハッシュ関数hと(i−1)セッション目で作成された共有シードKi−1によって求められる。ここで、共有シードKi−1は、iセッションの通信時にDiffie-Hellman(DH)鍵交換により交換される乱数要素rIi,RIiを利用した演算9204によって更新される。
そのため、仮にKi−1が漏洩したとしてもKi−1からKiを求めることは不可能である。IDI,IDRは、イニシエータ7100及びレスポンダ7200の固定IDである。
【0009】
レスポンダ7200は、イニシエータから送信されたデータ9000を受信し、そのデータからSIGNALIiを取り出して、自身の保持するレスポンダ情報管理テーブル9400を検索する(ステップ8200)。レスポンダ情報管理テーブル9400や演算処理テーブルに示されるデータや演算を用いて、認証処理を行い(ステップ8300)、次セッション(i+1セッション)のためのデータを更新する(ステップ8400)。イニシエータ7100に、データを送信する(ステップ8500)ことによって、認証処理が完了する。
【0010】
レスポンダ7200は、イニシエータ7100から送信されたSIGNALIiを受信用SIGNALとして、レスポンダ情報管理テーブル9400から「受信用SIGNALi(データ9402)=SIGNALIi」となる認証鍵欄9403に保持された認証鍵AKiを特定する。次に,この認証鍵を用いて受信した暗号情報9000を復号し,認証情報としてイニシエータ7100の固定IDであるIDIを得る。レスポンダ7200は、得られたIDIと、レスポンダ情報管理テーブル9400から「受信用SIGNALi(データ9402)=SIGNALIi」となるID欄9401に示されたIDIとを照合し、一致する場合はイニシエータ7100が正当な利用者であることを認証する。
【0011】
【特許文献1】特開2004−282295号公報
【非特許文献1】K.Imamoto and,K.Sakurai:“A Design of Diffie Hellman Based KeyExchange Using One-Time ID in Preshared Key Model”,AINA 2004,Mar.2004
【発明の開示】
【発明が解決しようとする課題】
【0012】
しかしながら、認証情報を入手する過程において、認証鍵AKiによる暗号情報の復号処理やハッシュ関数を用いた暗号化処理は、非常に大きな処理能力を必要とする。また、共有シードKi(図20のデータ9204)は、乱数のべき乗計算を含んでおり、これも非常に大きな処理能力を要する。
また、端末間を送受信されるデータ9000、9100は非常に冗長な情報を含むため、通信時のデータ量が大きくなるといった問題がある。
【0013】
本発明は、以上の点に鑑みてなされたものであり、端末間の通信において安全性の高く、端末にとって低負荷で効率の良い認証システムを提供することを目的とする。
【課題を解決するための手段】
【0014】
前述した目的を達成するために第1の発明は、ネットワークを介して接続された第1の端末装置と第2の端末装置間の認証処理を行う認証システムであって、前記第1の端末は、第1の送信用ダイナミックIDと、前記第1の送信用ダイナミックIDに関連付けられた少なくとも2つ以上の第1の認証鍵を保持する第1のデータ保持手段と、第1の乱数を生成する第1の乱数生成手段と、前記第1のデータ保持手段から第1の送信用ダイナミックIDを選択し、当該第1の送信用ダイナミックIDに対応する前記第1の認証鍵と、前記第1の認証鍵と前記第1の乱数を用いて演算を行い、第1の暗号化乱数を生成する第1の暗号化乱数生成手段と、前記第1の暗号化乱数生成手段によって生成された前記第1の暗号化乱数と、前記第1の認証鍵を用いて、第1の認証コードを生成する第1の認証コード生成手段と、前記第1の送信用ダイナミックIDと、前記第1の暗号化乱数と、前記第1の認証コードとを、前記第2の端末装置に送信する手段と、を具備し、前記第2の端末装置は、第1の受信用ダイナミックIDと、前記第1の受信用ダイナミックIDに関連付けられた、第1のIDと少なくとも2つ以上の第2の認証鍵を保持する第2のデータ保持手段と、前記第2のデータ保持手段から、前記第1の送信用ダイナミックIDと一致する第1の受信用ダイナミックIDを検出する第1の検出手段と、前記第1の検出手段によって検出された第1の受信用ダイナミックIDに関連付けられる少なくとも2つ以上の第2の認証鍵を、前記第2のデータ保持手段から取得し、前記第1の送信用ダイナミックIDと前記第2のデータ保持手段から取得した第2の認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記第2のデータ保持手段において当該第1の受信用ダイナミックIDに関連付けられて保持された第1のIDと、を照合して認証を行う第1の認証手段と、を具備することを特徴とする認証システムである。
【0015】
第1の発明において、第1の端末と第2の端末は、例えば、イニシエータとレスポンダに相当し、レスポンダはサーバ或いはサーバへの接続を認証する端末であり、イニシエータ(クライアント)を認証するものである。
【0016】
ここで、ダイナミックIDとは1回限り有効な使い捨てIDのことである。
また、第1の認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、第1の送信用ダイナミックIDをD−ID、第2の認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
としてIDを算出する。この演算子◎は、例えば「XOR(排他的論理演算子)である。
このような演算子を用いることによって、認証鍵を使った認証処理は従来技術のSIGNAL方式に比べて負荷が非常に小さくなる。
【0017】
更に、第2の端末装置は、前記第2の認証鍵と、前記第1の端末装置から送信された第1の暗号化乱数を用いて、第2の認証コードを生成する第2の認証コード生成手段と、前記第1の認証コードと前記第2の認証コードを照合する手段と、を具備する。
また、第2の端末装置は、第2の乱数を生成する第2の乱数生成手段と、前記第1の端末装置から送信された前記第1の暗号化乱数と前記第2のデータ保持手段に保持された第2の認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記第2の認証鍵とから第1の共有シードを生成する第1の共有シード生成手段と、を具備する。
ここで、共有シードは、第2の端末装置が生成する乱数と履歴情報を用いて算出される。例えば、履歴情報としてiセッションの認証鍵と、第2の乱数とを用いて簡単な演算により共有シードを計算することができる。従って、べき乗計算により共有シードを算出していた従来の方式より、かなり計算量が減ることになる。
【0018】
また、さらに、第2のデータ保持手段は、前記第1の受信用ダイナミックIDに関連付けて第2の送信用ダイナミックIDを更に保持し、更に、前記第2の端末装置は、前記第2の乱数と、前記第2の認証鍵と、を用いて、前記演算子による演算を行い、第2の暗号化乱数を生成する第2の暗号化乱数生成手段と、前記第2の暗号化乱数生成手段によって生成された第2の暗号化乱数と、前記第2の認証鍵を用いて、第2の認証コードを生成する第2の認証コード生成手段と、前記第2の送信用ダイナミックIDと、前記第2の暗号化乱数と、前記第2の認証コードとを、前記第1の端末装置に送信する。
また、更に、第2の端末装置は、前記第1の共有シードと所定の関数とを用いて、前記第2の認証鍵を更新し、前記更新された認証鍵を用いて、前記第2の送信用ダイナミックID及び前記第1の受信用ダイナミックIDを更新し、前記第2のデータ保持手段に保持する。
【0019】
また、第1のデータ保持手段は、第2の受信用ダイナミックIDと、前記第2の受信用ダイナミックIDに関連付けられた、第2のIDと少なくとも2つ以上の第1の認証鍵を保持し、前記第1の端末装置は、前記第1のデータ保持手段から、前記第2の送信用ダイナミックIDと一致する第2の受信用ダイナミックIDを検出する第2の検出手段と、前記第2の検出手段によって検出された第2の受信用ダイナミックIDに関連付けられる少なくとも2つ以上の第1の認証鍵を、前記第1のデータ保持手段から取得し、前記第2の送信用ダイナミックIDと前記第2のデータ保持手段から取得した第2の認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記第1のデータ保持手段において当該第2の受信用ダイナミックIDに関連付けられて保持された第2のIDと、を照合して認証を行う第2の認証手段と、を具備する。
ここで、第2の認証手段も、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、前記第2のダイナミックIDをD−ID、前記第1の認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを取り出す。
【0020】
更に、第1の端末装置は、前記第2の端末装置から送信された前記第2の暗号化乱数と前記第1のデータ保持手段に保持された第1の認証鍵を用いて、第2の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記第1の認証鍵から第2の共有シードを生成する第2の共有シード生成手段を具備する。
更に、第1の端末装置は、前記第2の共有シードと所定の関数とを用いて、前記第1の認証鍵を更新し、前記更新された認証鍵を用いて、前記第1の送信用ダイナミックID及び第2の受信用ダイナミックIDを更新し、前記第1のデータ保持手段に保持する
第1の発明は、第1の端末装置と第2の端末装置との相互認証を行う認証システムである。第1の発明の認証システムにおいて、第1の端末装置をクライアントとし、第2の端末装置をサーバコンピュータとし、サーバコンピュータがクライアントを認証する認証システムに拡張することも可能である。
【0021】
次に、第2の発明は、ネットワークを介してクライアントに接続され、前記クライアントを認証するサーバコンピュータであって、前記クライアントから、第1の送信用ダイナミックIDと、第1の暗号化乱数と、第1の認証コードを取得する手段と、受信用ダイナミックIDと、前記受信用ダイナミックIDに関連付けられた、IDと少なくとも2つ以上の認証鍵を保持するデータ保持手段と、前記データ保持手段から、前記第1の送信用ダイナミックIDと一致する受信用ダイナミックIDを検出する検出手段と、前記検出手段によって検出された受信用ダイナミックIDに関連付けられる少なくとも2つ以上の認証鍵を、前記データ保持手段から取得し、前記第1の送信用ダイナミックIDと前記データ保持手段から取得した認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記データ保持手段において当該受信用ダイナミックIDに関連付けられて保持されたIDと、を照合して認証を行う認証手段と、を具備することを特徴とするサーバコンピュータである。
【0022】
第2の発明は、ネットワークを介して接続可能な、クライアントである端末装置からのアクセスを認証するサーバコンピュータであり、その認証にはダイナミックIDを用いる。
ここで、認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1の送信用ダイナミックIDをD−ID、前記認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを取り出す。
更に、サーバコンピュータは、認証鍵と、クライアントから送信された第1の暗号化乱数を用いて、第2の認証コードを生成する認証コード生成手段と、前記第1の認証コードと前記第2の認証コードを照合する手段を具備する。
【0023】
第2の発明におけるサーバコンピュータは、第2の乱数を生成する乱数生成手段と、クライアントから送信された前記第1の暗号化乱数と前記データ保持手段に保持された認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の乱数とから共有シードを生成する共有シード生成手段を、更に具備する。
【0024】
また、サーバコンピュータは、第2の乱数を生成する乱数生成手段と、前記クライアントから送信された前記第1の暗号化乱数と前記データ保持手段に保持された認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記認証鍵とから共有シードを生成する共有シード生成手段を、更に具備する。
ここで、第2の発明におけるサーバコンピュータの機能やその効果は、第1の発明における第2の端末と同様である。
【0025】
第3の発明は、ネットワークを介してクライアントに接続し、前記クライアントを認証する認証システムのサーバコンピュータであって、前記クライアントから、第1のダイナミックIDを取得する手段と、第2のダイナミックIDと、前記第2のダイナミックIDに関連付けられた、IDと少なくとも2つ以上の認証鍵を保持するデータ保持手段と、前記データ保持手段から、前記第1のダイナミックIDと一致する第2のダイナミックIDを検出する検出手段と、前記検出手段によって検出された第2のダイナミックIDに関連付けられる少なくとも2つ以上の認証鍵を、前記データ保持手段から取得し、前記第1のダイナミックIDと前記データ保持手段から取得した認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記データ保持手段において当該第2のダイナミックIDに関連付けられて保持されたIDと、を照合して認証を行う認証手段と、を具備することを特徴とするサーバコンピュータである。
【0026】
第3の発明であるサーバーコンピュータは、クライアントから送信されるダイナミックIDを認証するものである。
ここで、認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1のダイナミックIDをD−ID、前記認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを取り出す。この演算子◎は例えば「XOR」などである。
【0027】
第4の発明は、コンピュータを第2の発明又は第3の発明のサーバコンピュータとして機能させるプログラムである。
第5の発明は、コンピュータを第2の発明又は第3の発明のサーバコンピュータとして機能させるプログラムを記録した記録媒体である。
【0028】
上述のプログラムをCD−ROM等の記録媒体に保持させて流通させてもよいし、このプログラムを通信回線を介して送受することもできる。
【発明の効果】
【0029】
本発明によれば、ネットワークを介して接続可能な2つの端末間の通信セッションにおいて、安全性が高く、端末にとって低負荷で効率の良い認証処理を行うことができる。
【発明を実施するための最良の形態】
【0030】
以下に、添付図面を参照しながら、本発明に係る認証システム等の好適な実施形態について詳細に説明する。なお、以下の説明および添付図面において、略同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略することにする。
【0031】
図1は、本発明の本実施の形態に係る認証システム1の概略構成を示す図である。
図1は、認証システム1の1例であり、図1に示すように、情報管理システム1は、ネットワーク2を介して相互に接続されるイニシエータ3、レスポンダ5等から構成される。
ネットワーク2は、公衆回線、インターネット、ローカルエリアネットワーク(LAN)等のネットワークであり、有線、無線を問わない。
レスポンダ5は、レスポンダ5に接続する各種サーバ7の認証サーバとして機能する。レスポンダ5自身がサーバ7のサービス提供機能等を備えていても構わない。イニシエータ3、レスポンダ5は、CPU、記憶装置、通信装置などを備えたVPN(Virtual Private Network)装置であるが、パーソナルコンピュータ、PDA端末、サーバ装置でもかまわない端末装置等である。
【0032】
図2はイニシエータ3の内部構成ブロック図である。
イニシエータ3は、XOR演算器31、乱数発生器33、ハッシュ演算器35、認証情報テーブル39等から構成される。
【0033】
XOR演算器31は、排他的論理和演算回路「XOR」を行う。乱数発生器33は乱数を発生する。ハッシュ演算器35はハッシュ関数を用いてデータの暗号化処理を行う。共有シード生成器37は共有シードを作成する。
【0034】
イニシエータ3は、D−ID処理モジュール110、暗号化乱数処理モジュール112、認証鍵処理モジュール114を備える。ここで、D−IDはセッションごとに利用するダイナミックID、使い捨てIDを示す。D−ID処理モジュール110はXOR演算器31を利用し,D−IDの生成、認証等の処理を行う。暗号化乱数処理モジュール112は乱数生成器33,XOR演算器31、及びハッシュ演算器35を利用し,暗号化乱数やメッセージ認証コードなど乱数の交換に関する処理を行う。認証鍵処理モジュール114は乱数発生器33、ハッシュ演算器35、共有シード生成器37を利用し、認証鍵の生成、更新等の処理を行う。これらの処理については、後に詳細に説明する。
【0035】
これらの処理はアプリケーションプログラムとしてイニシエータ3の記憶装置或いは記録媒体等に格納され、イニシエータ3のCPUはプログラムをRAM上のワークメモリ領域に呼び出して実行する。
【0036】
図3はレスポンダ5の内部構成ブロック図である。
レスポンダ5は、XOR演算器51、乱数発生器53、ハッシュ演算器55、認証情報テーブル59等から構成される。
【0037】
XOR演算器51は、排他的論理和演算回路「XOR」を行う。乱数発生器53は乱数を発生する。ハッシュ演算器55はハッシュ関数を用いてデータの暗号化処理を行う。共有シード生成器57は共有シードを作成する。
【0038】
レスポンダ5は、D−ID処理モジュール120、暗号化乱数処理モジュール122、認証鍵処理モジュール124を備える。D−ID処理モジュール120はXOR演算器51を利用し、D−IDの生成、認証等の処理を行う。暗号化乱数処理モジュール122は乱数生成器53、XOR演算器51、及びハッシュ演算器55を利用し,暗号化乱数やメッセージ認証コードなど乱数の交換に関する処理を行う。認証鍵処理モジュール124は乱数発生器53、ハッシュ演算器55、共有シード生成器57を利用し、認証鍵の生成、更新等の処理を行う。これらの処理については、後に詳細に説明する。
【0039】
これらの処理はアプリケーションプログラムとしてレスポンダ5の記憶装置や記録媒体等に格納され、レスポンダ5のCPUはプログラムをRAM上のワークメモリ領域に呼び出して実行する。
【0040】
図4はイニシエータ3が保持する認証情報管理テーブル39を示す図である。認証情報管理テーブル39は、イニシエータ3の記憶装置や記録媒体等に保持される。
【0041】
認証情報管理テーブル39は、ID61、受信用使い捨てID63、認証鍵65、67、送信用使い捨てID69を保持する。ID61は、レスポンダ5の固定IDであり、IDRとする。受信用使い捨てID63は、例えばiセッションでイニシエータ3がレスポンダ5から受信するダイナミックIDであり、D−IDRiとする。
【0042】
認証鍵65、67に関して、例えば、iセッションにおける認証鍵はAKiとAK’iである。送信用使い捨てID69は、例えばiセッションでイニシエータ3がレスポンダ5に送信するダイナミックIDであり、D−IDIiとする。
【0043】
図5はレスポンダ5が保持する認証情報管理テーブル59を示す図である。認証情報管理テーブル59は、レスポンダ5の記憶装置や記録媒体等に保持される。
【0044】
認証情報管理テーブル59は、ID71、受信用使い捨てID73、認証鍵75、77、送信用使い捨てID79を保持する。ID71は、イニシエータ3の固定IDであり、IDIとする。受信用使い捨てID73は、例えばiセッションでレスポンダ5がイニシエータ3から受信するダイナミックIDであり、D−IDIiとする。
【0045】
認証鍵75、77に関して、例えば、iセッションにおける認証鍵はAKiとAK’iである。送信用使い捨てID79は、例えばiセッションでレスポンダ5がイニシエータ3に送信するダイナミックIDであり、D−IDRiとする。
【0046】
以下、認証システム1の認証処理について説明する。
図6は、イニシエータ3とレスポンダ5間における認証処理の流れを示す概略フローチャートである。ここでは、イニシエータ3とレスポンダ5のiセッションの相互認証処理を考える。
【0047】
イニシエータ3は、送信データを作成し(ステップ201)、送信文2000をレスポンダ5に送信する。送信文2000は、使い捨てID(ダイナミックID)D−IDIi、暗号化乱数RIi、認証コードHMACAK’i(RIi)等である。レスポンダ5は、認証情報管理テーブル59から受信したD−IDIiをキーに検索し(ステップ202)、受信したD−IDIiに対応する認証鍵AKi及びAK’iを特定し(ステップ203)、IDIiを取得し(ステップ204)、IDIiの正当性を判断する(ステップ205)。
【0048】
次に、レスポンダ5は乱数rRiを生成し、共有シードKiを生成する(ステップ206)。レスポンダ5は、暗号化乱数RRiを作成して、イニシエータ3に送信する送信文を作成し(ステップ207)、i+1セッション用のデータを作成する(ステップ208)。レスポンダ5はステップ207で作成した送信文3000をイニシエータ3に送信する。送信文3000は、使い捨てID(ダイナミックID)D−IDRi、暗号化乱数RRi、認証コードHMACAK’i(RRi)等である。
【0049】
イニシエータ3は、受信した送信文3000を用いて、IDRiの正当性を確認し(ステップ209)、共有シードKiを作成し(ステップ210)、次の(i+1)番目のセッション用のデータを作成する(ステップ211)。
【0050】
以下、各ステップについて詳細に説明する。
(ステップ201)
ステップ201は、イニシエータ3において、レスポンダ5に送信する送信データを作成する処理である。図7は送信データ作成処理のフローチャートを示す。
【0051】
イニシエータ3は、通信を行うため、認証情報管理テーブル39からレスポンダ5との通信に利用する送信用ダイナミックID(使い捨てID)であるD−IDIiを選択する(ステップ221)。イニシエータ3は、乱数生成器33により乱数rIiを生成し(ステップ222)、認証情報管理テーブル39においてD−IDIiと関連付けられている認証鍵65であるAKiと乱数rIiを使用し、XOR演算器31により
RIi= AKiXOR
rIi
として送信用の暗号化乱数RIiを生成する(ステップ223)。
【0052】
こうして生成したRIiの正当性を保証するため、イニシエータ3はハッシュ演算器35を用いて、送信用のダイナミックIDであるD−IDIiと関連付けられているAK’iを認証鍵としてメッセージ認証コード(以後「HMAC」と記載)を生成する(ステップ224)。例えば、ハッシュ関数をH(x)とすると、HMACはH(AK’i,RIi)という、認証鍵AK’iと暗号化乱数RIiの関数となる。こうして、D−IDIiとRIi及びHMACを用いて送信メッセージ2000を作成し(ステップ225)、メモリにセットする。
ステップ201の送信文作成の準備処理終了後、メモリにセットされている送信メッセージ2000をレスポンダ5に送信する。
【0053】
(ステップ202〜ステップ205)
次に、レスポンダ5による認証処理について説明する。
ステップ202からステップ205の認証処理は、送信メッセージ2000を受信したレスポンダ5により実行される処理であり、DoS攻撃チェックとD−IDIiによる認証で構成される。
【0054】
図8は、DoS攻撃チェック処理手順を示すフローチャートである。
レスポンダ5は、イニシエータ3から受信したメッセージ2000のうち、D−IDIiをキーとして、認証情報管理テーブル59を検索し(ステップ301)、D−IDIiが存在するかどうかをチェックする(ステップ302)。
D−IDIiが存在する場合は合格出力をし,次の認証処理に移行する(ステップ303)が、D−IDIiが存在しない場合、DoS攻撃とみなして通信を強制終了する(ステップ304)。
【0055】
図9は、D−IDIiによる認証処理手順を示すフローチャートである。
レスポンダ5は、認証情報管理テーブル59を参照して、受信したダイナミックID73であるD−IDIiに対応する認証鍵75,77のAKi,AK’iを選択する(ステップ401)。
次に、レスポンダ5のXOR演算器51は、受信したD−IDIiと認証鍵AKi,AK’iとから
IDI= D−IDIi XOR AKi XOR AK’i
を実行し、IDIを取り出す(ステップ402)。
ここでは、排他的論理和演算「XOR」を用いたが、
(X◎Y)◎Y = X
となるような演算子◎を用いた演算を使用すればよい。
【0056】
こうして、XOR演算により取り出されたIDIと、認証情報管理テーブル59にてD−IDIiと関連付けられて保持されているID71であるIDIとを突合せ処理を行い(ステップ403)、両者のIDが一致するかどうかを判定する(ステップ404)。
【0057】
両者のIDが一致した場合は,イニシエータ3が正規の通信相手であると認証する(ステップ405)。ステップ404にて両者のIDが一致せず、D−IDIiが他にも存在する、つまりD−IDが重複している場合はステップ401に戻って(ステップ406)処理を繰り返す。
【0058】
(ステップ206〜ステップ208)
次に、更新処理について説明する。
更新処理は、レスポンダ5により認証処理終了後に行う処理であり、共有シード作成(ステップ206)、送信データ作成(ステップ207)、i+1セッション用データ作成(ステップ208)のステップから構成される。
はじめに、図10のフローチャートを使用して、共有シード作成手順について説明する。
【0059】
認証情報管理テーブル59において、受信したD−IDIiに対応した認証鍵77であるAK’iと、イニシエータから受信した送信文2000の第2要素の暗号化乱数RIiを使用し,ハッシュ演算器55により認証コードHMACを作成して(H(AK’i,RIi)を計算)、送信文2000の第3要素であるHMACの正当性、即ちレスポンダ5が作成したHMACと送信文2000として受信したHMACとが一致するかどうかを判定する(ステップ501)。
【0060】
ステップ501において、HMACが一致した場合は、イニシエータ3によって正しい暗号化乱数が送信されたとみなして処理を続行するが、一致しない場合は、悪意のある者により暗号化乱数はすりかえられた等と判断して通信を強制終了する(ステップ502)。
【0061】
レスポンダ5のXOR演算器51は、イニシエータ3から受信したメッセージ2000の第2要素である暗号化乱数RIiを獲得し(ステップ502)、認証情報管理テーブル59の認証鍵AKiを用いて、
rIi = RIi XOR AKi
によって乱数rIiを生成する(ステップ503)。
【0062】
次に、乱数発生器53により新たに乱数rRiを生成して
Ki = y(rIi, rRi , AK’i)
より共有シードKiを生成する(ステップ504)。
関数yは乱数rIi、rRiと履歴情報AK’iを含む関数であり、ここでは、例えば、
Ki= y(rIi, rRi , AK’i)
=rIi+rRi+AK’i
とする。
【0063】
次に、図11のフローチャートを参照して、送信データ作成処理について説明する。
レスポンダ5の乱数生成器53で生成したrRiと、認証情報管理テーブル59でI−DIiに対応した認証鍵75のAKiを使用し、
RRi =rRi XOR AKi
により送信用の暗号化乱数RRiを生成する(ステップ601)。
【0064】
こうして生成したRRiの正当性を保証するため、レスポンダ5はハッシュ演算器55を用いて、送信用のダイナミックID79であるD−IDRiと関連付けられている認証鍵77のAK’iを認証鍵としてメッセージ認証コードHMACを生成する(ステップ602)。ここで、ハッシュ関数をH(x)とすると、HMACはH(AK’i,RRi)という、認証鍵AK’iと暗号化乱数RRiの関数となる。こうして、D−IDRiとRRi及びHMACを用いて送信メッセージ3000を作成し(ステップ603)、メモリにセットする。
【0065】
次に、図12のフローチャートを参照して、次セッション(i+1)セッションのデータ作成処理について説明する。
共有シードKiと一方向性関数を使用し,i+1セッションで使用する認証鍵AKi+1,AK’i+1を生成する(ステップ701)。なお,一方向性関数としては、例えば、ハッシュ関数h(x)を使用して以下の演算により認証鍵を生成する。
AKi+1 = h(Ki)
AK’i+1 = h’(Ki)
共有シードKiは,AKi+1及びAK’i+1生成後は不要であるため,削除する。
【0066】
次に、イニシエータ3のIDであるIDIとAKi+1,AK’i+1を使用し、i+1セッションで使用する受信用D−IDであるD−IDIi+1を生成し、同様にレスポンダ5のIDであるIDRとAKi+1,AK’i+1を使用し、i+1セッションで使用する送信用D−IDであるD−IDRi+1を生成する(ステップ702)。
上記のD−IDIi+1とD−IDRi+1は、XOR演算器51によるXOR演算を使用した以下の演算により生成する。
D−IDIi+1
= IDI XOR AKi XOR AK’i
D−IDRi+1
= IDR XOR AKi XOR AK’i
【0067】
こうして作成したi+1セッションにおける認証鍵75,77であるAKi+1及びAK’i+1、受信用ダイナミックID73であるD−IDIi+1、送信用ダイナミックID79となるD−IDRi+1をi+1セッション用の認証情報として、イニシエータ3の固定IDであるIDIと関連付け、認証情報管理テーブ
ル59に保持する(ステップ703)。
【0068】
こうして更新処理終了した後、ステップ206にてメモリにセットされている送信メッセージ3000をイニシエータ3に送信する(ステップ208)。
【0069】
(ステップ209)
次に、イニシエータ3による認証処理について説明する。
ステップ209の認証処理は、レスポンダ5からの送信メッセージ3000を受信したイニシエータ3により実行される処理であり、DoS攻撃チェックとD−IDRiによる認証処理で構成される。
【0070】
図13は、DoS攻撃チェック処理手順を示すフローチャートである。
イニシエータ3は、レスポンダ5から受信したメッセージ3000のうち、D−IDRiをキーとして、認証情報管理テーブル39を検索し(ステップ901)、D−IDRiが存在するかどうかをチェックする(ステップ902)。
D−IDRiが存在する場合は合格出力をし,次の認証処理に移行する(ステップ903)が、D−IDRiが存在しない場合、DoS攻撃とみなして通信を強制終了する(ステップ904)。
【0071】
図14は、D−IDによる認証処理手順を示すフローチャートである。
イニシエータ3は、認証情報管理テーブル39から受信したダイナミックID63であるD−IDRiに対応する認証鍵65,67のAKi,AK’iを選択する(ステップ1001)。
次に、イニシエータ3のXOR演算器31は、受信したD−IDRiと認証鍵AKi,AK’iとから
IDR= D−IDRi XOR AKi,XOR AK’i
を実行し、IDRを取り出す(ステップ1002)。
【0072】
こうして、XOR演算により取り出されたIDRと、認証情報管理テーブル39にてD−IDRiと関連付けられて保持されているID61であるIDRとを突合せ処理を行い(ステップ1003)、両者のIDが一致するかどうかを判定する(ステップ1004)。
【0073】
両者のIDが一致した場合は,イニシエータ3が正規の通信相手であると認証する(ステップ1005)。ステップ1004にて両者のIDが一致せず、D−IDRiが他にも存在する、つまりD−IDが重複している場合はステップ1001に戻って(ステップ1006)処理を繰り返す。
【0074】
(ステップ210、ステップ211)
次に、イニシエータ3における更新処理について説明する。
更新処理は、イニシエータ3により認証処理終了後に行う処理であり、共有シード作成(ステップ211)、i+1セッション用データ作成(ステップ212)のステップから構成される。
はじめに、図15のフローチャートを使用して、共有シード作成手順について説明する。
【0075】
認証情報管理テーブル39で受信したD−IDRに対応した認証鍵67であるAK’iと、レスポンダから受信したメッセージ3000の第2要素の暗号化乱数RRiを使用し、ハッシュ演算器35によりHMACを作成して(H(AK’i,RRi)を計算)、第3要素であるHMACの正当性、即ちイニシエータ3が作成したHMACと送信文3000として受信したHMACが一致するかどうかを判定する(ステップ1101)。
【0076】
ステップ1101において、HMACが一致した場合は、レスポンダ5によって正しい暗号化乱数が送信されたとみなして処理を続行するが、一致しない場合は、悪意のある者により暗号化乱数はすりかえられた等と判断して通信を強制終了する(ステップ1105)。
【0077】
イニシエータ3のXOR演算器31は、受信したメッセージ3000の第2要素である暗号化乱数RRiを獲得し(ステップ1102)、認証情報管理テーブル39の認証鍵AKiを用いて、
rRi = RRi XOR AKi
によって乱数rRiを生成する(ステップ1103)。
【0078】
次に、乱数発生器33により新たに乱数rIiを生成して
Ki = y(rIi, rRi , AK’i)
より共有シードKiを生成する(ステップ1104)。
関数yはステップ504の処理と同様に
Ki= y(rIi, rRi , AK’i)
=rIi+rRi+AK’i
とする。
【0079】
次に、図16のフローチャートを参照して、次セッション(i+1)セッションのデータ作成処理について説明する。
共有シードKiと一方向性関数を使用し,i+1セッションで使用する認証鍵AKi+1,AK’i+1を生成する(ステップ1201)。なお,一方向性関数としては、ステップ701の処理と同様の、ハッシュ関数h(x)を使用して以下の演算により認証鍵を生成する。
AKi+1
= h(Ki)
AK’i+1
= h’(Ki)
共有シードKiは,AKi+1及びAK’i+1生成後は不要であるため,削除する。
【0080】
次に、レスポンダのIDであるIDRとAKi+1,AK’i+1を使用し、i+1セッションで使用する受信用D−IDであるD−IDRi+1を生成し、同様にイニシエータ3のIDであるIDIとAKi+1,AK’i+1を使用し、i+1セッションで使用する送信用D−IDであるD−IDIi+1を生成する(ステップ1202)。
上記のD−IDRi+1とD−IDIi+1は、XOR演算器31によるXOR演算を使用した以下の演算により生成する。
D−IDRi+1
= IDR XOR AKi XOR AK’i
D−IDIi+1
= IDI XOR AKi XOR AK’i
【0081】
こうして作成したi+1セッションにおける認証鍵65,67であるAKi+1及びAK’i+1、受信用ダイナミックID63であるD−IDRi+1、送信用ダイナミックID69となるD−IDIi+1をi+1セッション用の認証情報として、レスポンダ5の固定IDであるIDRと関連付け、認証情報管理テーブ
ル39に保持される(ステップ1203)。
【0082】
以上説明した認証処理によって、イニシエータ3とレスポンダ5の通信における認証処理が完了する。
本実施の形態によれば、以下のような効果がある。
ダイナミックIDの生成には通信相手のIDであるIDR、IDIや認証鍵AKi及びAK’i、が利用されるが、AKi及びAK’i、はセッション毎に更新される共有シードKiを元に生成されるため、安全性が高い。
【0083】
また、本実施例では、共有シードKiの生成に必要な乱数は認証鍵AKiを使用した演算子◎(本実施例では「XOR」)によって保護された暗号化乱数として交換されるため、従来の技術であるSIGNAL方式のように共有シードKiを求めるために、べき乗計算といった負荷の高い演算処理を必要としない。
また、従来のSIGNAL方式では、認証処理の過程で暗号化された認証情報の復号処理が必要であるが、一般的な暗号化処理を用いた場合、その複合処理には負荷の高い計算が必要となる。しかし、本実施例では、◎演算子としてXORを使用した場合,必要とされる複合処理は2回のXOR演算のみであり、非常に高速かつ効率的な処理である。
【0084】
また、本実施例の認証処理は従来に比べて非常に効率的である。例えば、従来のSIGNAL方式ではKiの生成,使い捨てID(SIGNALi)、認証情報などの処理において1回のべき乗計算、2回の認証鍵演算、そして4回のハッシュ関数演算が必要となる。一方、本認証システム1では、3回のハッシュ関
数演算の他に、◎演算(XOR演算)を8回用いるだけでよい。
また本実施例において、イニシエータ3とレスポンダ5間で通信されるデータの通信量は従来よりも小さい。
【0085】
以上述べたように、本認証システム1によれば、安全性が高く、端末にとって低負荷で効率の良い認証処理を行うことができる。
【0086】
以上説明した認証処理は、イニシエータ3とレスポンダ5のそれぞれが相互に認証を行う場合であるが、第2の実施例として、イニシエータ3はレスポンダ5のクライアント端末であり、レスポンダ5だけが認証処理を行い、イニシエータ3を正しいクライアント端末として認証するシステムも考えられる。
【0087】
図17は、第2の実施の形態に係る認証システムの認証処理の概略フローチャートである。
イニシエータ3は図4に示す認証情報管理テーブル39を、レスポンダ5は図5に示す認証情報管理テーブル59を、それぞれ保持する。
イニシエータ3は、送信データ(送信文)を作成し(ステップ2001)、送信文をレスポンダ5に送信する。送信文は、使い捨てIDであるD−IDIi、暗号化乱数RIi、認証コードHMACAK’i(RIi)である。レスポンダ5は、認証情報管理テーブル59から受信したD−IDIiをキーに検索し(ステップ2002)、受信したD−IDIiに対応する認証鍵AKi及びAK’iを特定し(ステップ2003)、IDIiを取得し(ステップ2004)、IDIiの正当性を判断する(ステップ2005)。
【0088】
次に、レスポンダ5は乱数RIiの正当性を確認し(ステップ2006)、共有シードKiを生成し、イニシエータ3に送信する送信文を作成し(ステップ2007)、i+1セッション用のデータを作成する(ステップ2008)。レスポンダ5はステップ2007で作成した送信文をイニシエータ3に送信する。この場合、送信文は、認証OKであるか、そうでないかの判定結果となる。
【0089】
イニシエータ3は、共有シードKiを作成し(ステップ2009)、次の(i+1)番目のセッション用のデータを作成する(ステップ2010)。
図17に示すフローチャートにおいて、ステップ2001からステップ2005までは、図6に示すフローチャートにおけるステップ201からステップ205の処理と同じである。
【0090】
ステップ2005において、図6のステップ205と同様にして、レスポンダ5のXOR演算器51は、イニシエータ3から受信した暗号化乱数RIiと、認証情報管理テーブル59の認証鍵AKi、AK’iを用いて、
rIi = RIi XOR AKi
によって乱数rIiを生成する。
第2の実施の形態では、ステップ2006、ステップ2007における共有シードKiを、乱数rIiと履歴情報AKi、AK’iで定義される関数yによって求める。
Ki= y(rIi , AKi, AK’i) =rIi+AKi+AK’i
こうして生成された共有シードKiを用いて、レスポンダ5は、ステップ208と同様にして次セッションである(i+1)セッションのデータを生成する(ステップ2008)。
【0091】
レスポンダ5がイニシエータ3を認証した場合、レスポンダ5はイニシエータ3に対して「認証OK」の旨を伝える。
イニシエータ3は、関数yを用いてKiを生成し(ステップ2009)、次セッションである(i+1)セッションのデータを生成する(ステップ2010)。
【0092】
また、第3の実施の形態として、イニシエータ3には乱数生成能力が無く、レスポンダ5だけが認証処理を行い、イニシエータ3を正しいクライアント端末として認証するシステムも考えられる。
図18は、第3の実施の形態である認証システムの認証処理の概略フローチャートである。
イニシエータ3は図4に示す認証情報管理テーブル39を、レスポンダ5は図5に示す認証情報管理テーブル59を、それぞれ保持する。
【0093】
イニシエータ3は、使い捨てID(ダイナミックID)D−IDIiをレスポンダ5に送信する(ステップ2501)。レスポンダ5は、認証情報管理テーブル59から受信したD−IDIiをキーに検索し(ステップ2502)、認証鍵AKi及びAK’i、を特定し(ステップ2503)、IDIiを取得し(ステップ2504)、IDIiの正当性を判断する(ステップ2505)。
【0094】
次に、レスポンダ5は乱数rRiを生成し、共有シードKiを生成する(ステップ2506)。レスポンダ5は、暗号化乱数RRiを作成して、イニシエータ3に送信する送信文を作成し(ステップ2507)、i+1セッション用のデータを作成する(ステップ2508)。
【0095】
イニシエータ3はレスポンダ5にD−IDIiを送信し、レスポンダ5はD−IDIiを認証する。
ステップ2502からステップ2508における認証処理の詳細は、下記の点を除いて、図17に示す第2の実施例である認証システムのステップ2002からステップ2008の処理と同じである。
【0096】
第2の実施例である認証システムと第3の実施例である認証システムの処理のとの相違点は、関数yの設定であり、第3の実施例ではイニシエータ3に乱数生成機能が無いため、yは乱数rRiと履歴情報AKi、AK’iを含む関数として、例えば、
Ki= y(rRi , AKi, AK’i) =rRi+AKi+AK’i
とすることである。
【0097】
レスポンダ5は、イニシエータ3が正しいクライアント端末として認証されると、イニシエータ3に対して、RRiとMACAK’i(RRi)を送信する。イニシエータ3は、暗号化乱数RRiの正当性を確認し(ステップ2509)、共有シードKiを生成し(ステップ2510)、i+1セッション用のデータを作成する(ステップ2511)。
【0098】
ステップ2509において、イニシエータ3は、レスポンダ5から送信された暗号化乱数RRiと自身が保持する認証鍵AKi、AK’iとを用いて、認証コードMACAK’i(RRi)を作成し、作成した認証コードMACAK’i(RRi)と、レスポンダ5から送信されたMACAK’i(RRi)とを照合し、両者が等しい場合に、暗号化乱数RRiの正当性を確認する。
【0099】
第2の実施例、第3の実施例に係る認証システムの効果も、第1の実施例の認証システム1と同様、安全性が高く、端末にとって低負荷で効率の良い認証処理を行うことができる。
【0100】
第2の実施例、第3の実施例に係る認証システムは、イニシエータ3とレスポンダ5間の相互認証の必要がない場合に有効である。例えば、レスポンダ3がショッピングサイトのサーバ(或いはサイトに入るための認証サーバ)であり、イニシエータ3はサイト利用者の端末である場合などが考えられる。
【0101】
以上、添付図面を参照しながら、本発明に係る認証システム等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【0102】
【図1】本実施の形態に係る認証システム1の概略構成を示す図
【図2】イニシエータ3の内部構成ブロック図
【図3】レスポンダ5の内部構成ブロック図
【図4】イニシエータ3が保持する認証情報管理テーブル39を示す図
【図5】レスポンダ5が保持する認証情報管理テーブル59を示す図
【図6】本認証システム1における認証処理の概略フローチャート
【図7】イニシエータ3における送信データ作成処理手順を示すフローチャート
【図8】レスポンダ5におけるDoS攻撃チェック処理手順を示すフローチャート
【図9】レスポンダ5におけるD−IDによる認証処理手順を示すフローチャート
【図10】レスポンダ5による共有シード作成処理手順を示すフローチャート
【図11】レスポンダ5による送信データ作成処理手順を示すフローチャート
【図12】レスポンダ5によるi+1セッション用データ作成処理手順を示すフローチャート
【図13】イニシエータ3によるDoS攻撃チェック処理手順を示すフローチャート
【図14】イニシエータ3によるD−IDによる認証処理手順を示すフローチャート
【図15】イニシエータ3による共有シード作成処理手順を示すフローチャート
【図16】イニシエータ3によるi+1セッション用データ作成処理手順を示すフローチャート
【図17】レスポンダ5がクライアントであるイニシエータ3を認証する認証システムにおける認証処理の概略フローチャート
【図18】イニシエータ3が乱数生成機能を有しない場合の認証システムにおける認証処理の概略フローチャート
【図19】従来技術であるSIGNAL方式による認証システムにおける認証処理の概略フローチャート
【図20】従来技術であるSIGNAL方式による認証システムの演算処理テーブルを示す図
【図21】従来技術におけるイニシエータ7100が保持する認証情報管理テーブルを示す図
【図22】従来技術におけるレスポンダ7200が保持する認証情報管理テーブルを示す図
【符号の説明】
【0103】
1………認証システム
2………ネットワーク
3………イニシエータ
5………レスポンダ
7………サーバ
31、51………XOR演算器
33、53………乱数生成器
35、55………ハッシュ演算器
37、57………共有シード生成器
39、59………認証情報管理テーブル
【技術分野】
【0001】
本発明は、使い捨てIDを利用したDoS(Denial of Service)攻撃に強い、高速かつ低負荷な効率のよい二者間通信における認証機能に関する。
【背景技術】
【0002】
近年のコンピュータネットワーク技術の発達は、ネットワークを介して提供されるサービスの増加をもたらしたが,ネットワーク技術の進展に伴い、不正アクセスなどの問題が深刻となっている。これら排除のために、サービス提供に先立ち行われる端末間の認証処理は重要なものとなっている。
例えば、ネットワークに接続された2つの端末装置を例に考える。2つの端末のうち一つをイニシエータ、もう一方をレスポンダとすると、両者間の認証処理とは、あるサービスの利用を希望するイニシエータがトリガーを引き、サービス提供者であるレスポンダがサービスを提供する一連の流れ(以後セッションとする)において、レスポンダがイニシエータの正当性を検証する作業のことである。このために,レスポンダはイニシエータの固定の識別子(以後IDとする)をキーとし、パスワードなど秘密の認証情報をテーブルにて関連付けて管理しておき、レスポンダはイニシエータからの問い合わせの際,受信したID及び認証情報と、自身が保持するID及び認証情報の突合せ処理を行うことで,イニシエータの正当性を判断する方法が広く利用されている。
【0003】
しかしながら、このような場合では、パスワードが固定であることから、パスワード漏洩により不正利用の危険性が高くなる。
この危険性に対する防止のために、使い捨てIDを用いる方法がある。(例えば、特許文献1)
使い捨てIDとは「IDは一度のみ有効である」、「第三者は次のIDを予測することが不可能である」、「第三者はIDから利用者が特定できない」という性質を持つIDである。使い捨てIDは通信のセッションごとに変更されるため、たとえ攻撃者が使い捨てIDを入手し利用したとしても,レスポンダが管理するテーブルには既に更新されたIDが記録されており,攻撃者の入手したIDは存在しない。
【0004】
以下、従来の使い捨てIDによる認証処理について説明する。
使い捨てIDを利用した認証方式としてSIGNAL方式がある。(例えば、非特許文献1)図19は、イニシエータ7100とレスポンダ7200間の認証処理の概要を示すフローチャートである。図20は、認証処理において使用される演算処理を示す演算処理テーブルを示す図である。図21は、イニシエータ7100が保持するイニシエータ情報管理テーブル9300を示す図であり、図22はレスポンダ7200が保持するレスポンダ情報管理テーブル9400を示す図である。
【0005】
図20に示す演算処理テーブルは、図19に示す認証処理において必要となる演算9201〜9204を示す。
図21は、イニシエータ7100が保持する情報であり、レスポンダの固定ID9301に対応する受信用SIGNALi9302、認証鍵9303、送信用SIGNALi9304である。
図22は、レスポンダ7200が保持する情報であり、イニシエータの固定ID9401に対応する受信用SIGNALi9402、認証鍵9303、送信用SIGNALi9404、である。
【0006】
図19に示すように、イニシエータ7100は、レスポンダ7200に対して送信する送信データ9000を作成し(ステップ8000)、送信する(ステップ8100)。
【0007】
iセッションにおいて、イニシエータ7200から送信されるデータ9000は、SIGNALIi、AKiを用いてrIi、IDI、IDR、SIGNALIiを暗号化したものを示すEAKi{rIi,IDI,IDR,SIGNALIi}である。
【0008】
SIGNALIiは、図20に示す演算処理テーブルにおける演算9201に示されるように、一方向関数であるハッシュ関数hと(i−1)セッション目で作成された共有シードKi−1によって求められる。ここで、共有シードKi−1は、iセッションの通信時にDiffie-Hellman(DH)鍵交換により交換される乱数要素rIi,RIiを利用した演算9204によって更新される。
そのため、仮にKi−1が漏洩したとしてもKi−1からKiを求めることは不可能である。IDI,IDRは、イニシエータ7100及びレスポンダ7200の固定IDである。
【0009】
レスポンダ7200は、イニシエータから送信されたデータ9000を受信し、そのデータからSIGNALIiを取り出して、自身の保持するレスポンダ情報管理テーブル9400を検索する(ステップ8200)。レスポンダ情報管理テーブル9400や演算処理テーブルに示されるデータや演算を用いて、認証処理を行い(ステップ8300)、次セッション(i+1セッション)のためのデータを更新する(ステップ8400)。イニシエータ7100に、データを送信する(ステップ8500)ことによって、認証処理が完了する。
【0010】
レスポンダ7200は、イニシエータ7100から送信されたSIGNALIiを受信用SIGNALとして、レスポンダ情報管理テーブル9400から「受信用SIGNALi(データ9402)=SIGNALIi」となる認証鍵欄9403に保持された認証鍵AKiを特定する。次に,この認証鍵を用いて受信した暗号情報9000を復号し,認証情報としてイニシエータ7100の固定IDであるIDIを得る。レスポンダ7200は、得られたIDIと、レスポンダ情報管理テーブル9400から「受信用SIGNALi(データ9402)=SIGNALIi」となるID欄9401に示されたIDIとを照合し、一致する場合はイニシエータ7100が正当な利用者であることを認証する。
【0011】
【特許文献1】特開2004−282295号公報
【非特許文献1】K.Imamoto and,K.Sakurai:“A Design of Diffie Hellman Based KeyExchange Using One-Time ID in Preshared Key Model”,AINA 2004,Mar.2004
【発明の開示】
【発明が解決しようとする課題】
【0012】
しかしながら、認証情報を入手する過程において、認証鍵AKiによる暗号情報の復号処理やハッシュ関数を用いた暗号化処理は、非常に大きな処理能力を必要とする。また、共有シードKi(図20のデータ9204)は、乱数のべき乗計算を含んでおり、これも非常に大きな処理能力を要する。
また、端末間を送受信されるデータ9000、9100は非常に冗長な情報を含むため、通信時のデータ量が大きくなるといった問題がある。
【0013】
本発明は、以上の点に鑑みてなされたものであり、端末間の通信において安全性の高く、端末にとって低負荷で効率の良い認証システムを提供することを目的とする。
【課題を解決するための手段】
【0014】
前述した目的を達成するために第1の発明は、ネットワークを介して接続された第1の端末装置と第2の端末装置間の認証処理を行う認証システムであって、前記第1の端末は、第1の送信用ダイナミックIDと、前記第1の送信用ダイナミックIDに関連付けられた少なくとも2つ以上の第1の認証鍵を保持する第1のデータ保持手段と、第1の乱数を生成する第1の乱数生成手段と、前記第1のデータ保持手段から第1の送信用ダイナミックIDを選択し、当該第1の送信用ダイナミックIDに対応する前記第1の認証鍵と、前記第1の認証鍵と前記第1の乱数を用いて演算を行い、第1の暗号化乱数を生成する第1の暗号化乱数生成手段と、前記第1の暗号化乱数生成手段によって生成された前記第1の暗号化乱数と、前記第1の認証鍵を用いて、第1の認証コードを生成する第1の認証コード生成手段と、前記第1の送信用ダイナミックIDと、前記第1の暗号化乱数と、前記第1の認証コードとを、前記第2の端末装置に送信する手段と、を具備し、前記第2の端末装置は、第1の受信用ダイナミックIDと、前記第1の受信用ダイナミックIDに関連付けられた、第1のIDと少なくとも2つ以上の第2の認証鍵を保持する第2のデータ保持手段と、前記第2のデータ保持手段から、前記第1の送信用ダイナミックIDと一致する第1の受信用ダイナミックIDを検出する第1の検出手段と、前記第1の検出手段によって検出された第1の受信用ダイナミックIDに関連付けられる少なくとも2つ以上の第2の認証鍵を、前記第2のデータ保持手段から取得し、前記第1の送信用ダイナミックIDと前記第2のデータ保持手段から取得した第2の認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記第2のデータ保持手段において当該第1の受信用ダイナミックIDに関連付けられて保持された第1のIDと、を照合して認証を行う第1の認証手段と、を具備することを特徴とする認証システムである。
【0015】
第1の発明において、第1の端末と第2の端末は、例えば、イニシエータとレスポンダに相当し、レスポンダはサーバ或いはサーバへの接続を認証する端末であり、イニシエータ(クライアント)を認証するものである。
【0016】
ここで、ダイナミックIDとは1回限り有効な使い捨てIDのことである。
また、第1の認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、第1の送信用ダイナミックIDをD−ID、第2の認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
としてIDを算出する。この演算子◎は、例えば「XOR(排他的論理演算子)である。
このような演算子を用いることによって、認証鍵を使った認証処理は従来技術のSIGNAL方式に比べて負荷が非常に小さくなる。
【0017】
更に、第2の端末装置は、前記第2の認証鍵と、前記第1の端末装置から送信された第1の暗号化乱数を用いて、第2の認証コードを生成する第2の認証コード生成手段と、前記第1の認証コードと前記第2の認証コードを照合する手段と、を具備する。
また、第2の端末装置は、第2の乱数を生成する第2の乱数生成手段と、前記第1の端末装置から送信された前記第1の暗号化乱数と前記第2のデータ保持手段に保持された第2の認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記第2の認証鍵とから第1の共有シードを生成する第1の共有シード生成手段と、を具備する。
ここで、共有シードは、第2の端末装置が生成する乱数と履歴情報を用いて算出される。例えば、履歴情報としてiセッションの認証鍵と、第2の乱数とを用いて簡単な演算により共有シードを計算することができる。従って、べき乗計算により共有シードを算出していた従来の方式より、かなり計算量が減ることになる。
【0018】
また、さらに、第2のデータ保持手段は、前記第1の受信用ダイナミックIDに関連付けて第2の送信用ダイナミックIDを更に保持し、更に、前記第2の端末装置は、前記第2の乱数と、前記第2の認証鍵と、を用いて、前記演算子による演算を行い、第2の暗号化乱数を生成する第2の暗号化乱数生成手段と、前記第2の暗号化乱数生成手段によって生成された第2の暗号化乱数と、前記第2の認証鍵を用いて、第2の認証コードを生成する第2の認証コード生成手段と、前記第2の送信用ダイナミックIDと、前記第2の暗号化乱数と、前記第2の認証コードとを、前記第1の端末装置に送信する。
また、更に、第2の端末装置は、前記第1の共有シードと所定の関数とを用いて、前記第2の認証鍵を更新し、前記更新された認証鍵を用いて、前記第2の送信用ダイナミックID及び前記第1の受信用ダイナミックIDを更新し、前記第2のデータ保持手段に保持する。
【0019】
また、第1のデータ保持手段は、第2の受信用ダイナミックIDと、前記第2の受信用ダイナミックIDに関連付けられた、第2のIDと少なくとも2つ以上の第1の認証鍵を保持し、前記第1の端末装置は、前記第1のデータ保持手段から、前記第2の送信用ダイナミックIDと一致する第2の受信用ダイナミックIDを検出する第2の検出手段と、前記第2の検出手段によって検出された第2の受信用ダイナミックIDに関連付けられる少なくとも2つ以上の第1の認証鍵を、前記第1のデータ保持手段から取得し、前記第2の送信用ダイナミックIDと前記第2のデータ保持手段から取得した第2の認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記第1のデータ保持手段において当該第2の受信用ダイナミックIDに関連付けられて保持された第2のIDと、を照合して認証を行う第2の認証手段と、を具備する。
ここで、第2の認証手段も、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、前記第2のダイナミックIDをD−ID、前記第1の認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを取り出す。
【0020】
更に、第1の端末装置は、前記第2の端末装置から送信された前記第2の暗号化乱数と前記第1のデータ保持手段に保持された第1の認証鍵を用いて、第2の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記第1の認証鍵から第2の共有シードを生成する第2の共有シード生成手段を具備する。
更に、第1の端末装置は、前記第2の共有シードと所定の関数とを用いて、前記第1の認証鍵を更新し、前記更新された認証鍵を用いて、前記第1の送信用ダイナミックID及び第2の受信用ダイナミックIDを更新し、前記第1のデータ保持手段に保持する
第1の発明は、第1の端末装置と第2の端末装置との相互認証を行う認証システムである。第1の発明の認証システムにおいて、第1の端末装置をクライアントとし、第2の端末装置をサーバコンピュータとし、サーバコンピュータがクライアントを認証する認証システムに拡張することも可能である。
【0021】
次に、第2の発明は、ネットワークを介してクライアントに接続され、前記クライアントを認証するサーバコンピュータであって、前記クライアントから、第1の送信用ダイナミックIDと、第1の暗号化乱数と、第1の認証コードを取得する手段と、受信用ダイナミックIDと、前記受信用ダイナミックIDに関連付けられた、IDと少なくとも2つ以上の認証鍵を保持するデータ保持手段と、前記データ保持手段から、前記第1の送信用ダイナミックIDと一致する受信用ダイナミックIDを検出する検出手段と、前記検出手段によって検出された受信用ダイナミックIDに関連付けられる少なくとも2つ以上の認証鍵を、前記データ保持手段から取得し、前記第1の送信用ダイナミックIDと前記データ保持手段から取得した認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記データ保持手段において当該受信用ダイナミックIDに関連付けられて保持されたIDと、を照合して認証を行う認証手段と、を具備することを特徴とするサーバコンピュータである。
【0022】
第2の発明は、ネットワークを介して接続可能な、クライアントである端末装置からのアクセスを認証するサーバコンピュータであり、その認証にはダイナミックIDを用いる。
ここで、認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1の送信用ダイナミックIDをD−ID、前記認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを取り出す。
更に、サーバコンピュータは、認証鍵と、クライアントから送信された第1の暗号化乱数を用いて、第2の認証コードを生成する認証コード生成手段と、前記第1の認証コードと前記第2の認証コードを照合する手段を具備する。
【0023】
第2の発明におけるサーバコンピュータは、第2の乱数を生成する乱数生成手段と、クライアントから送信された前記第1の暗号化乱数と前記データ保持手段に保持された認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の乱数とから共有シードを生成する共有シード生成手段を、更に具備する。
【0024】
また、サーバコンピュータは、第2の乱数を生成する乱数生成手段と、前記クライアントから送信された前記第1の暗号化乱数と前記データ保持手段に保持された認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記認証鍵とから共有シードを生成する共有シード生成手段を、更に具備する。
ここで、第2の発明におけるサーバコンピュータの機能やその効果は、第1の発明における第2の端末と同様である。
【0025】
第3の発明は、ネットワークを介してクライアントに接続し、前記クライアントを認証する認証システムのサーバコンピュータであって、前記クライアントから、第1のダイナミックIDを取得する手段と、第2のダイナミックIDと、前記第2のダイナミックIDに関連付けられた、IDと少なくとも2つ以上の認証鍵を保持するデータ保持手段と、前記データ保持手段から、前記第1のダイナミックIDと一致する第2のダイナミックIDを検出する検出手段と、前記検出手段によって検出された第2のダイナミックIDに関連付けられる少なくとも2つ以上の認証鍵を、前記データ保持手段から取得し、前記第1のダイナミックIDと前記データ保持手段から取得した認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記データ保持手段において当該第2のダイナミックIDに関連付けられて保持されたIDと、を照合して認証を行う認証手段と、を具備することを特徴とするサーバコンピュータである。
【0026】
第3の発明であるサーバーコンピュータは、クライアントから送信されるダイナミックIDを認証するものである。
ここで、認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1のダイナミックIDをD−ID、前記認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを取り出す。この演算子◎は例えば「XOR」などである。
【0027】
第4の発明は、コンピュータを第2の発明又は第3の発明のサーバコンピュータとして機能させるプログラムである。
第5の発明は、コンピュータを第2の発明又は第3の発明のサーバコンピュータとして機能させるプログラムを記録した記録媒体である。
【0028】
上述のプログラムをCD−ROM等の記録媒体に保持させて流通させてもよいし、このプログラムを通信回線を介して送受することもできる。
【発明の効果】
【0029】
本発明によれば、ネットワークを介して接続可能な2つの端末間の通信セッションにおいて、安全性が高く、端末にとって低負荷で効率の良い認証処理を行うことができる。
【発明を実施するための最良の形態】
【0030】
以下に、添付図面を参照しながら、本発明に係る認証システム等の好適な実施形態について詳細に説明する。なお、以下の説明および添付図面において、略同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略することにする。
【0031】
図1は、本発明の本実施の形態に係る認証システム1の概略構成を示す図である。
図1は、認証システム1の1例であり、図1に示すように、情報管理システム1は、ネットワーク2を介して相互に接続されるイニシエータ3、レスポンダ5等から構成される。
ネットワーク2は、公衆回線、インターネット、ローカルエリアネットワーク(LAN)等のネットワークであり、有線、無線を問わない。
レスポンダ5は、レスポンダ5に接続する各種サーバ7の認証サーバとして機能する。レスポンダ5自身がサーバ7のサービス提供機能等を備えていても構わない。イニシエータ3、レスポンダ5は、CPU、記憶装置、通信装置などを備えたVPN(Virtual Private Network)装置であるが、パーソナルコンピュータ、PDA端末、サーバ装置でもかまわない端末装置等である。
【0032】
図2はイニシエータ3の内部構成ブロック図である。
イニシエータ3は、XOR演算器31、乱数発生器33、ハッシュ演算器35、認証情報テーブル39等から構成される。
【0033】
XOR演算器31は、排他的論理和演算回路「XOR」を行う。乱数発生器33は乱数を発生する。ハッシュ演算器35はハッシュ関数を用いてデータの暗号化処理を行う。共有シード生成器37は共有シードを作成する。
【0034】
イニシエータ3は、D−ID処理モジュール110、暗号化乱数処理モジュール112、認証鍵処理モジュール114を備える。ここで、D−IDはセッションごとに利用するダイナミックID、使い捨てIDを示す。D−ID処理モジュール110はXOR演算器31を利用し,D−IDの生成、認証等の処理を行う。暗号化乱数処理モジュール112は乱数生成器33,XOR演算器31、及びハッシュ演算器35を利用し,暗号化乱数やメッセージ認証コードなど乱数の交換に関する処理を行う。認証鍵処理モジュール114は乱数発生器33、ハッシュ演算器35、共有シード生成器37を利用し、認証鍵の生成、更新等の処理を行う。これらの処理については、後に詳細に説明する。
【0035】
これらの処理はアプリケーションプログラムとしてイニシエータ3の記憶装置或いは記録媒体等に格納され、イニシエータ3のCPUはプログラムをRAM上のワークメモリ領域に呼び出して実行する。
【0036】
図3はレスポンダ5の内部構成ブロック図である。
レスポンダ5は、XOR演算器51、乱数発生器53、ハッシュ演算器55、認証情報テーブル59等から構成される。
【0037】
XOR演算器51は、排他的論理和演算回路「XOR」を行う。乱数発生器53は乱数を発生する。ハッシュ演算器55はハッシュ関数を用いてデータの暗号化処理を行う。共有シード生成器57は共有シードを作成する。
【0038】
レスポンダ5は、D−ID処理モジュール120、暗号化乱数処理モジュール122、認証鍵処理モジュール124を備える。D−ID処理モジュール120はXOR演算器51を利用し、D−IDの生成、認証等の処理を行う。暗号化乱数処理モジュール122は乱数生成器53、XOR演算器51、及びハッシュ演算器55を利用し,暗号化乱数やメッセージ認証コードなど乱数の交換に関する処理を行う。認証鍵処理モジュール124は乱数発生器53、ハッシュ演算器55、共有シード生成器57を利用し、認証鍵の生成、更新等の処理を行う。これらの処理については、後に詳細に説明する。
【0039】
これらの処理はアプリケーションプログラムとしてレスポンダ5の記憶装置や記録媒体等に格納され、レスポンダ5のCPUはプログラムをRAM上のワークメモリ領域に呼び出して実行する。
【0040】
図4はイニシエータ3が保持する認証情報管理テーブル39を示す図である。認証情報管理テーブル39は、イニシエータ3の記憶装置や記録媒体等に保持される。
【0041】
認証情報管理テーブル39は、ID61、受信用使い捨てID63、認証鍵65、67、送信用使い捨てID69を保持する。ID61は、レスポンダ5の固定IDであり、IDRとする。受信用使い捨てID63は、例えばiセッションでイニシエータ3がレスポンダ5から受信するダイナミックIDであり、D−IDRiとする。
【0042】
認証鍵65、67に関して、例えば、iセッションにおける認証鍵はAKiとAK’iである。送信用使い捨てID69は、例えばiセッションでイニシエータ3がレスポンダ5に送信するダイナミックIDであり、D−IDIiとする。
【0043】
図5はレスポンダ5が保持する認証情報管理テーブル59を示す図である。認証情報管理テーブル59は、レスポンダ5の記憶装置や記録媒体等に保持される。
【0044】
認証情報管理テーブル59は、ID71、受信用使い捨てID73、認証鍵75、77、送信用使い捨てID79を保持する。ID71は、イニシエータ3の固定IDであり、IDIとする。受信用使い捨てID73は、例えばiセッションでレスポンダ5がイニシエータ3から受信するダイナミックIDであり、D−IDIiとする。
【0045】
認証鍵75、77に関して、例えば、iセッションにおける認証鍵はAKiとAK’iである。送信用使い捨てID79は、例えばiセッションでレスポンダ5がイニシエータ3に送信するダイナミックIDであり、D−IDRiとする。
【0046】
以下、認証システム1の認証処理について説明する。
図6は、イニシエータ3とレスポンダ5間における認証処理の流れを示す概略フローチャートである。ここでは、イニシエータ3とレスポンダ5のiセッションの相互認証処理を考える。
【0047】
イニシエータ3は、送信データを作成し(ステップ201)、送信文2000をレスポンダ5に送信する。送信文2000は、使い捨てID(ダイナミックID)D−IDIi、暗号化乱数RIi、認証コードHMACAK’i(RIi)等である。レスポンダ5は、認証情報管理テーブル59から受信したD−IDIiをキーに検索し(ステップ202)、受信したD−IDIiに対応する認証鍵AKi及びAK’iを特定し(ステップ203)、IDIiを取得し(ステップ204)、IDIiの正当性を判断する(ステップ205)。
【0048】
次に、レスポンダ5は乱数rRiを生成し、共有シードKiを生成する(ステップ206)。レスポンダ5は、暗号化乱数RRiを作成して、イニシエータ3に送信する送信文を作成し(ステップ207)、i+1セッション用のデータを作成する(ステップ208)。レスポンダ5はステップ207で作成した送信文3000をイニシエータ3に送信する。送信文3000は、使い捨てID(ダイナミックID)D−IDRi、暗号化乱数RRi、認証コードHMACAK’i(RRi)等である。
【0049】
イニシエータ3は、受信した送信文3000を用いて、IDRiの正当性を確認し(ステップ209)、共有シードKiを作成し(ステップ210)、次の(i+1)番目のセッション用のデータを作成する(ステップ211)。
【0050】
以下、各ステップについて詳細に説明する。
(ステップ201)
ステップ201は、イニシエータ3において、レスポンダ5に送信する送信データを作成する処理である。図7は送信データ作成処理のフローチャートを示す。
【0051】
イニシエータ3は、通信を行うため、認証情報管理テーブル39からレスポンダ5との通信に利用する送信用ダイナミックID(使い捨てID)であるD−IDIiを選択する(ステップ221)。イニシエータ3は、乱数生成器33により乱数rIiを生成し(ステップ222)、認証情報管理テーブル39においてD−IDIiと関連付けられている認証鍵65であるAKiと乱数rIiを使用し、XOR演算器31により
RIi= AKiXOR
rIi
として送信用の暗号化乱数RIiを生成する(ステップ223)。
【0052】
こうして生成したRIiの正当性を保証するため、イニシエータ3はハッシュ演算器35を用いて、送信用のダイナミックIDであるD−IDIiと関連付けられているAK’iを認証鍵としてメッセージ認証コード(以後「HMAC」と記載)を生成する(ステップ224)。例えば、ハッシュ関数をH(x)とすると、HMACはH(AK’i,RIi)という、認証鍵AK’iと暗号化乱数RIiの関数となる。こうして、D−IDIiとRIi及びHMACを用いて送信メッセージ2000を作成し(ステップ225)、メモリにセットする。
ステップ201の送信文作成の準備処理終了後、メモリにセットされている送信メッセージ2000をレスポンダ5に送信する。
【0053】
(ステップ202〜ステップ205)
次に、レスポンダ5による認証処理について説明する。
ステップ202からステップ205の認証処理は、送信メッセージ2000を受信したレスポンダ5により実行される処理であり、DoS攻撃チェックとD−IDIiによる認証で構成される。
【0054】
図8は、DoS攻撃チェック処理手順を示すフローチャートである。
レスポンダ5は、イニシエータ3から受信したメッセージ2000のうち、D−IDIiをキーとして、認証情報管理テーブル59を検索し(ステップ301)、D−IDIiが存在するかどうかをチェックする(ステップ302)。
D−IDIiが存在する場合は合格出力をし,次の認証処理に移行する(ステップ303)が、D−IDIiが存在しない場合、DoS攻撃とみなして通信を強制終了する(ステップ304)。
【0055】
図9は、D−IDIiによる認証処理手順を示すフローチャートである。
レスポンダ5は、認証情報管理テーブル59を参照して、受信したダイナミックID73であるD−IDIiに対応する認証鍵75,77のAKi,AK’iを選択する(ステップ401)。
次に、レスポンダ5のXOR演算器51は、受信したD−IDIiと認証鍵AKi,AK’iとから
IDI= D−IDIi XOR AKi XOR AK’i
を実行し、IDIを取り出す(ステップ402)。
ここでは、排他的論理和演算「XOR」を用いたが、
(X◎Y)◎Y = X
となるような演算子◎を用いた演算を使用すればよい。
【0056】
こうして、XOR演算により取り出されたIDIと、認証情報管理テーブル59にてD−IDIiと関連付けられて保持されているID71であるIDIとを突合せ処理を行い(ステップ403)、両者のIDが一致するかどうかを判定する(ステップ404)。
【0057】
両者のIDが一致した場合は,イニシエータ3が正規の通信相手であると認証する(ステップ405)。ステップ404にて両者のIDが一致せず、D−IDIiが他にも存在する、つまりD−IDが重複している場合はステップ401に戻って(ステップ406)処理を繰り返す。
【0058】
(ステップ206〜ステップ208)
次に、更新処理について説明する。
更新処理は、レスポンダ5により認証処理終了後に行う処理であり、共有シード作成(ステップ206)、送信データ作成(ステップ207)、i+1セッション用データ作成(ステップ208)のステップから構成される。
はじめに、図10のフローチャートを使用して、共有シード作成手順について説明する。
【0059】
認証情報管理テーブル59において、受信したD−IDIiに対応した認証鍵77であるAK’iと、イニシエータから受信した送信文2000の第2要素の暗号化乱数RIiを使用し,ハッシュ演算器55により認証コードHMACを作成して(H(AK’i,RIi)を計算)、送信文2000の第3要素であるHMACの正当性、即ちレスポンダ5が作成したHMACと送信文2000として受信したHMACとが一致するかどうかを判定する(ステップ501)。
【0060】
ステップ501において、HMACが一致した場合は、イニシエータ3によって正しい暗号化乱数が送信されたとみなして処理を続行するが、一致しない場合は、悪意のある者により暗号化乱数はすりかえられた等と判断して通信を強制終了する(ステップ502)。
【0061】
レスポンダ5のXOR演算器51は、イニシエータ3から受信したメッセージ2000の第2要素である暗号化乱数RIiを獲得し(ステップ502)、認証情報管理テーブル59の認証鍵AKiを用いて、
rIi = RIi XOR AKi
によって乱数rIiを生成する(ステップ503)。
【0062】
次に、乱数発生器53により新たに乱数rRiを生成して
Ki = y(rIi, rRi , AK’i)
より共有シードKiを生成する(ステップ504)。
関数yは乱数rIi、rRiと履歴情報AK’iを含む関数であり、ここでは、例えば、
Ki= y(rIi, rRi , AK’i)
=rIi+rRi+AK’i
とする。
【0063】
次に、図11のフローチャートを参照して、送信データ作成処理について説明する。
レスポンダ5の乱数生成器53で生成したrRiと、認証情報管理テーブル59でI−DIiに対応した認証鍵75のAKiを使用し、
RRi =rRi XOR AKi
により送信用の暗号化乱数RRiを生成する(ステップ601)。
【0064】
こうして生成したRRiの正当性を保証するため、レスポンダ5はハッシュ演算器55を用いて、送信用のダイナミックID79であるD−IDRiと関連付けられている認証鍵77のAK’iを認証鍵としてメッセージ認証コードHMACを生成する(ステップ602)。ここで、ハッシュ関数をH(x)とすると、HMACはH(AK’i,RRi)という、認証鍵AK’iと暗号化乱数RRiの関数となる。こうして、D−IDRiとRRi及びHMACを用いて送信メッセージ3000を作成し(ステップ603)、メモリにセットする。
【0065】
次に、図12のフローチャートを参照して、次セッション(i+1)セッションのデータ作成処理について説明する。
共有シードKiと一方向性関数を使用し,i+1セッションで使用する認証鍵AKi+1,AK’i+1を生成する(ステップ701)。なお,一方向性関数としては、例えば、ハッシュ関数h(x)を使用して以下の演算により認証鍵を生成する。
AKi+1 = h(Ki)
AK’i+1 = h’(Ki)
共有シードKiは,AKi+1及びAK’i+1生成後は不要であるため,削除する。
【0066】
次に、イニシエータ3のIDであるIDIとAKi+1,AK’i+1を使用し、i+1セッションで使用する受信用D−IDであるD−IDIi+1を生成し、同様にレスポンダ5のIDであるIDRとAKi+1,AK’i+1を使用し、i+1セッションで使用する送信用D−IDであるD−IDRi+1を生成する(ステップ702)。
上記のD−IDIi+1とD−IDRi+1は、XOR演算器51によるXOR演算を使用した以下の演算により生成する。
D−IDIi+1
= IDI XOR AKi XOR AK’i
D−IDRi+1
= IDR XOR AKi XOR AK’i
【0067】
こうして作成したi+1セッションにおける認証鍵75,77であるAKi+1及びAK’i+1、受信用ダイナミックID73であるD−IDIi+1、送信用ダイナミックID79となるD−IDRi+1をi+1セッション用の認証情報として、イニシエータ3の固定IDであるIDIと関連付け、認証情報管理テーブ
ル59に保持する(ステップ703)。
【0068】
こうして更新処理終了した後、ステップ206にてメモリにセットされている送信メッセージ3000をイニシエータ3に送信する(ステップ208)。
【0069】
(ステップ209)
次に、イニシエータ3による認証処理について説明する。
ステップ209の認証処理は、レスポンダ5からの送信メッセージ3000を受信したイニシエータ3により実行される処理であり、DoS攻撃チェックとD−IDRiによる認証処理で構成される。
【0070】
図13は、DoS攻撃チェック処理手順を示すフローチャートである。
イニシエータ3は、レスポンダ5から受信したメッセージ3000のうち、D−IDRiをキーとして、認証情報管理テーブル39を検索し(ステップ901)、D−IDRiが存在するかどうかをチェックする(ステップ902)。
D−IDRiが存在する場合は合格出力をし,次の認証処理に移行する(ステップ903)が、D−IDRiが存在しない場合、DoS攻撃とみなして通信を強制終了する(ステップ904)。
【0071】
図14は、D−IDによる認証処理手順を示すフローチャートである。
イニシエータ3は、認証情報管理テーブル39から受信したダイナミックID63であるD−IDRiに対応する認証鍵65,67のAKi,AK’iを選択する(ステップ1001)。
次に、イニシエータ3のXOR演算器31は、受信したD−IDRiと認証鍵AKi,AK’iとから
IDR= D−IDRi XOR AKi,XOR AK’i
を実行し、IDRを取り出す(ステップ1002)。
【0072】
こうして、XOR演算により取り出されたIDRと、認証情報管理テーブル39にてD−IDRiと関連付けられて保持されているID61であるIDRとを突合せ処理を行い(ステップ1003)、両者のIDが一致するかどうかを判定する(ステップ1004)。
【0073】
両者のIDが一致した場合は,イニシエータ3が正規の通信相手であると認証する(ステップ1005)。ステップ1004にて両者のIDが一致せず、D−IDRiが他にも存在する、つまりD−IDが重複している場合はステップ1001に戻って(ステップ1006)処理を繰り返す。
【0074】
(ステップ210、ステップ211)
次に、イニシエータ3における更新処理について説明する。
更新処理は、イニシエータ3により認証処理終了後に行う処理であり、共有シード作成(ステップ211)、i+1セッション用データ作成(ステップ212)のステップから構成される。
はじめに、図15のフローチャートを使用して、共有シード作成手順について説明する。
【0075】
認証情報管理テーブル39で受信したD−IDRに対応した認証鍵67であるAK’iと、レスポンダから受信したメッセージ3000の第2要素の暗号化乱数RRiを使用し、ハッシュ演算器35によりHMACを作成して(H(AK’i,RRi)を計算)、第3要素であるHMACの正当性、即ちイニシエータ3が作成したHMACと送信文3000として受信したHMACが一致するかどうかを判定する(ステップ1101)。
【0076】
ステップ1101において、HMACが一致した場合は、レスポンダ5によって正しい暗号化乱数が送信されたとみなして処理を続行するが、一致しない場合は、悪意のある者により暗号化乱数はすりかえられた等と判断して通信を強制終了する(ステップ1105)。
【0077】
イニシエータ3のXOR演算器31は、受信したメッセージ3000の第2要素である暗号化乱数RRiを獲得し(ステップ1102)、認証情報管理テーブル39の認証鍵AKiを用いて、
rRi = RRi XOR AKi
によって乱数rRiを生成する(ステップ1103)。
【0078】
次に、乱数発生器33により新たに乱数rIiを生成して
Ki = y(rIi, rRi , AK’i)
より共有シードKiを生成する(ステップ1104)。
関数yはステップ504の処理と同様に
Ki= y(rIi, rRi , AK’i)
=rIi+rRi+AK’i
とする。
【0079】
次に、図16のフローチャートを参照して、次セッション(i+1)セッションのデータ作成処理について説明する。
共有シードKiと一方向性関数を使用し,i+1セッションで使用する認証鍵AKi+1,AK’i+1を生成する(ステップ1201)。なお,一方向性関数としては、ステップ701の処理と同様の、ハッシュ関数h(x)を使用して以下の演算により認証鍵を生成する。
AKi+1
= h(Ki)
AK’i+1
= h’(Ki)
共有シードKiは,AKi+1及びAK’i+1生成後は不要であるため,削除する。
【0080】
次に、レスポンダのIDであるIDRとAKi+1,AK’i+1を使用し、i+1セッションで使用する受信用D−IDであるD−IDRi+1を生成し、同様にイニシエータ3のIDであるIDIとAKi+1,AK’i+1を使用し、i+1セッションで使用する送信用D−IDであるD−IDIi+1を生成する(ステップ1202)。
上記のD−IDRi+1とD−IDIi+1は、XOR演算器31によるXOR演算を使用した以下の演算により生成する。
D−IDRi+1
= IDR XOR AKi XOR AK’i
D−IDIi+1
= IDI XOR AKi XOR AK’i
【0081】
こうして作成したi+1セッションにおける認証鍵65,67であるAKi+1及びAK’i+1、受信用ダイナミックID63であるD−IDRi+1、送信用ダイナミックID69となるD−IDIi+1をi+1セッション用の認証情報として、レスポンダ5の固定IDであるIDRと関連付け、認証情報管理テーブ
ル39に保持される(ステップ1203)。
【0082】
以上説明した認証処理によって、イニシエータ3とレスポンダ5の通信における認証処理が完了する。
本実施の形態によれば、以下のような効果がある。
ダイナミックIDの生成には通信相手のIDであるIDR、IDIや認証鍵AKi及びAK’i、が利用されるが、AKi及びAK’i、はセッション毎に更新される共有シードKiを元に生成されるため、安全性が高い。
【0083】
また、本実施例では、共有シードKiの生成に必要な乱数は認証鍵AKiを使用した演算子◎(本実施例では「XOR」)によって保護された暗号化乱数として交換されるため、従来の技術であるSIGNAL方式のように共有シードKiを求めるために、べき乗計算といった負荷の高い演算処理を必要としない。
また、従来のSIGNAL方式では、認証処理の過程で暗号化された認証情報の復号処理が必要であるが、一般的な暗号化処理を用いた場合、その複合処理には負荷の高い計算が必要となる。しかし、本実施例では、◎演算子としてXORを使用した場合,必要とされる複合処理は2回のXOR演算のみであり、非常に高速かつ効率的な処理である。
【0084】
また、本実施例の認証処理は従来に比べて非常に効率的である。例えば、従来のSIGNAL方式ではKiの生成,使い捨てID(SIGNALi)、認証情報などの処理において1回のべき乗計算、2回の認証鍵演算、そして4回のハッシュ関数演算が必要となる。一方、本認証システム1では、3回のハッシュ関
数演算の他に、◎演算(XOR演算)を8回用いるだけでよい。
また本実施例において、イニシエータ3とレスポンダ5間で通信されるデータの通信量は従来よりも小さい。
【0085】
以上述べたように、本認証システム1によれば、安全性が高く、端末にとって低負荷で効率の良い認証処理を行うことができる。
【0086】
以上説明した認証処理は、イニシエータ3とレスポンダ5のそれぞれが相互に認証を行う場合であるが、第2の実施例として、イニシエータ3はレスポンダ5のクライアント端末であり、レスポンダ5だけが認証処理を行い、イニシエータ3を正しいクライアント端末として認証するシステムも考えられる。
【0087】
図17は、第2の実施の形態に係る認証システムの認証処理の概略フローチャートである。
イニシエータ3は図4に示す認証情報管理テーブル39を、レスポンダ5は図5に示す認証情報管理テーブル59を、それぞれ保持する。
イニシエータ3は、送信データ(送信文)を作成し(ステップ2001)、送信文をレスポンダ5に送信する。送信文は、使い捨てIDであるD−IDIi、暗号化乱数RIi、認証コードHMACAK’i(RIi)である。レスポンダ5は、認証情報管理テーブル59から受信したD−IDIiをキーに検索し(ステップ2002)、受信したD−IDIiに対応する認証鍵AKi及びAK’iを特定し(ステップ2003)、IDIiを取得し(ステップ2004)、IDIiの正当性を判断する(ステップ2005)。
【0088】
次に、レスポンダ5は乱数RIiの正当性を確認し(ステップ2006)、共有シードKiを生成し、イニシエータ3に送信する送信文を作成し(ステップ2007)、i+1セッション用のデータを作成する(ステップ2008)。レスポンダ5はステップ2007で作成した送信文をイニシエータ3に送信する。この場合、送信文は、認証OKであるか、そうでないかの判定結果となる。
【0089】
イニシエータ3は、共有シードKiを作成し(ステップ2009)、次の(i+1)番目のセッション用のデータを作成する(ステップ2010)。
図17に示すフローチャートにおいて、ステップ2001からステップ2005までは、図6に示すフローチャートにおけるステップ201からステップ205の処理と同じである。
【0090】
ステップ2005において、図6のステップ205と同様にして、レスポンダ5のXOR演算器51は、イニシエータ3から受信した暗号化乱数RIiと、認証情報管理テーブル59の認証鍵AKi、AK’iを用いて、
rIi = RIi XOR AKi
によって乱数rIiを生成する。
第2の実施の形態では、ステップ2006、ステップ2007における共有シードKiを、乱数rIiと履歴情報AKi、AK’iで定義される関数yによって求める。
Ki= y(rIi , AKi, AK’i) =rIi+AKi+AK’i
こうして生成された共有シードKiを用いて、レスポンダ5は、ステップ208と同様にして次セッションである(i+1)セッションのデータを生成する(ステップ2008)。
【0091】
レスポンダ5がイニシエータ3を認証した場合、レスポンダ5はイニシエータ3に対して「認証OK」の旨を伝える。
イニシエータ3は、関数yを用いてKiを生成し(ステップ2009)、次セッションである(i+1)セッションのデータを生成する(ステップ2010)。
【0092】
また、第3の実施の形態として、イニシエータ3には乱数生成能力が無く、レスポンダ5だけが認証処理を行い、イニシエータ3を正しいクライアント端末として認証するシステムも考えられる。
図18は、第3の実施の形態である認証システムの認証処理の概略フローチャートである。
イニシエータ3は図4に示す認証情報管理テーブル39を、レスポンダ5は図5に示す認証情報管理テーブル59を、それぞれ保持する。
【0093】
イニシエータ3は、使い捨てID(ダイナミックID)D−IDIiをレスポンダ5に送信する(ステップ2501)。レスポンダ5は、認証情報管理テーブル59から受信したD−IDIiをキーに検索し(ステップ2502)、認証鍵AKi及びAK’i、を特定し(ステップ2503)、IDIiを取得し(ステップ2504)、IDIiの正当性を判断する(ステップ2505)。
【0094】
次に、レスポンダ5は乱数rRiを生成し、共有シードKiを生成する(ステップ2506)。レスポンダ5は、暗号化乱数RRiを作成して、イニシエータ3に送信する送信文を作成し(ステップ2507)、i+1セッション用のデータを作成する(ステップ2508)。
【0095】
イニシエータ3はレスポンダ5にD−IDIiを送信し、レスポンダ5はD−IDIiを認証する。
ステップ2502からステップ2508における認証処理の詳細は、下記の点を除いて、図17に示す第2の実施例である認証システムのステップ2002からステップ2008の処理と同じである。
【0096】
第2の実施例である認証システムと第3の実施例である認証システムの処理のとの相違点は、関数yの設定であり、第3の実施例ではイニシエータ3に乱数生成機能が無いため、yは乱数rRiと履歴情報AKi、AK’iを含む関数として、例えば、
Ki= y(rRi , AKi, AK’i) =rRi+AKi+AK’i
とすることである。
【0097】
レスポンダ5は、イニシエータ3が正しいクライアント端末として認証されると、イニシエータ3に対して、RRiとMACAK’i(RRi)を送信する。イニシエータ3は、暗号化乱数RRiの正当性を確認し(ステップ2509)、共有シードKiを生成し(ステップ2510)、i+1セッション用のデータを作成する(ステップ2511)。
【0098】
ステップ2509において、イニシエータ3は、レスポンダ5から送信された暗号化乱数RRiと自身が保持する認証鍵AKi、AK’iとを用いて、認証コードMACAK’i(RRi)を作成し、作成した認証コードMACAK’i(RRi)と、レスポンダ5から送信されたMACAK’i(RRi)とを照合し、両者が等しい場合に、暗号化乱数RRiの正当性を確認する。
【0099】
第2の実施例、第3の実施例に係る認証システムの効果も、第1の実施例の認証システム1と同様、安全性が高く、端末にとって低負荷で効率の良い認証処理を行うことができる。
【0100】
第2の実施例、第3の実施例に係る認証システムは、イニシエータ3とレスポンダ5間の相互認証の必要がない場合に有効である。例えば、レスポンダ3がショッピングサイトのサーバ(或いはサイトに入るための認証サーバ)であり、イニシエータ3はサイト利用者の端末である場合などが考えられる。
【0101】
以上、添付図面を参照しながら、本発明に係る認証システム等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【0102】
【図1】本実施の形態に係る認証システム1の概略構成を示す図
【図2】イニシエータ3の内部構成ブロック図
【図3】レスポンダ5の内部構成ブロック図
【図4】イニシエータ3が保持する認証情報管理テーブル39を示す図
【図5】レスポンダ5が保持する認証情報管理テーブル59を示す図
【図6】本認証システム1における認証処理の概略フローチャート
【図7】イニシエータ3における送信データ作成処理手順を示すフローチャート
【図8】レスポンダ5におけるDoS攻撃チェック処理手順を示すフローチャート
【図9】レスポンダ5におけるD−IDによる認証処理手順を示すフローチャート
【図10】レスポンダ5による共有シード作成処理手順を示すフローチャート
【図11】レスポンダ5による送信データ作成処理手順を示すフローチャート
【図12】レスポンダ5によるi+1セッション用データ作成処理手順を示すフローチャート
【図13】イニシエータ3によるDoS攻撃チェック処理手順を示すフローチャート
【図14】イニシエータ3によるD−IDによる認証処理手順を示すフローチャート
【図15】イニシエータ3による共有シード作成処理手順を示すフローチャート
【図16】イニシエータ3によるi+1セッション用データ作成処理手順を示すフローチャート
【図17】レスポンダ5がクライアントであるイニシエータ3を認証する認証システムにおける認証処理の概略フローチャート
【図18】イニシエータ3が乱数生成機能を有しない場合の認証システムにおける認証処理の概略フローチャート
【図19】従来技術であるSIGNAL方式による認証システムにおける認証処理の概略フローチャート
【図20】従来技術であるSIGNAL方式による認証システムの演算処理テーブルを示す図
【図21】従来技術におけるイニシエータ7100が保持する認証情報管理テーブルを示す図
【図22】従来技術におけるレスポンダ7200が保持する認証情報管理テーブルを示す図
【符号の説明】
【0103】
1………認証システム
2………ネットワーク
3………イニシエータ
5………レスポンダ
7………サーバ
31、51………XOR演算器
33、53………乱数生成器
35、55………ハッシュ演算器
37、57………共有シード生成器
39、59………認証情報管理テーブル
【特許請求の範囲】
【請求項1】
ネットワークを介して接続された第1の端末装置と第2の端末装置間の認証処理を行う認証システムであって、
前記第1の端末は、
第1の送信用ダイナミックIDと、前記第1の送信用ダイナミックIDに関連付けられた少なくとも2つ以上の第1の認証鍵を保持する第1のデータ保持手段と、
第1の乱数を生成する第1の乱数生成手段と、
前記第1のデータ保持手段から第1の送信用ダイナミックIDを選択し、当該第1の送信用ダイナミックIDに対応する前記第1の認証鍵と、前記第1の認証鍵と前記第1の乱数を用いて演算を行い、第1の暗号化乱数を生成する第1の暗号化乱数生成手段と、
前記第1の暗号化乱数生成手段によって生成された前記第1の暗号化乱数と、前記第1の認証鍵を用いて、第1の認証コードを生成する第1の認証コード生成手段と、
前記第1の送信用ダイナミックIDと、前記第1の暗号化乱数と、前記第1の認証コードとを、前記第2の端末装置に送信する手段と、
を具備し、
前記第2の端末装置は、
第1の受信用ダイナミックIDと、前記第1の受信用ダイナミックIDに関連付けられた、第1のIDと少なくとも2つ以上の第2の認証鍵を保持する第2のデータ保持手段と、
前記第2のデータ保持手段から、前記第1の送信用ダイナミックIDと一致する第1の受信用ダイナミックIDを検出する第1の検出手段と、
前記第1の検出手段によって検出された第1の受信用ダイナミックIDに関連付けられる少なくとも2つ以上の第2の認証鍵を、前記第2のデータ保持手段から取得し、前記第1の送信用ダイナミックIDと前記第2のデータ保持手段から取得した第2の認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記第2のデータ保持手段において当該第1の受信用ダイナミックIDに関連付けられて保持された第1のIDと、を照合して認証を行う第1の認証手段と、
を具備することを特徴とする認証システム。
【請求項2】
前記第1の認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1の送信用ダイナミックIDをD−ID、第2の認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを算出することを特徴とする請求項1記載の認証システム。
【請求項3】
更に、前記第2の端末装置は、
前記第2の認証鍵と、前記第1の端末装置から送信された第1の暗号化乱数を用いて、第2の認証コードを生成する第2の認証コード生成手段と、
前記第1の認証コードと前記第2の認証コードを照合する手段と、
を具備することを特徴とする請求項1或いは請求項2記載の認証システム。
【請求項4】
更に、前記第2の端末装置は、
第2の乱数を生成する第2の乱数生成手段と、
前記第1の端末装置から送信された前記第1の暗号化乱数と前記第2のデータ保持手段に保持された第2の認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記第2の認証鍵とから第1の共有シードを生成する第1の共有シード生成手段と、
を具備することを特徴とする請求項1から請求項3のいずれかに記載の認証システム。
【請求項5】
前記第2のデータ保持手段は、前記第1の受信用ダイナミックIDに関連付けて第2の送信用ダイナミックIDを更に保持し、
更に、前記第2の端末装置は、
前記第2の乱数と、前記第2の認証鍵と、を用いて、前記演算子による演算を行い、第2の暗号化乱数を生成する第2の暗号化乱数生成手段と、
前記第2の暗号化乱数生成手段によって生成された第2の暗号化乱数と、前記第2の認証鍵を用いて、第2の認証コードを生成する第2の認証コード生成手段と、
前記第2の送信用ダイナミックIDと、前記第2の暗号化乱数と、前記第2の認証コードとを、前記第1の端末装置に送信する手段と、
を具備することを特徴とする請求項4記載の認証システム。
【請求項6】
更に、前記第2の端末装置は、
前記第1の共有シードと所定の関数とを用いて、前記第2の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第2の送信用ダイナミックID及び前記第1の受信用ダイナミックIDを更新し、前記第2のデータ保持手段に保持することを特徴とする請求項4記載の認証システム。
【請求項7】
前記第1のデータ保持手段は、第2の受信用ダイナミックIDと、前記第2の受信用ダイナミックIDに関連付けられた、第2のIDと少なくとも2つ以上の第1の認証鍵を保持し、
前記第1の端末装置は、
前記第1のデータ保持手段から、前記第2の送信用ダイナミックIDと一致する第2の受信用ダイナミックIDを検出する第2の検出手段と、
前記第2の検出手段によって検出された第2の受信用ダイナミックIDに関連付けられる少なくとも2つ以上の第1の認証鍵を、前記第1のデータ保持手段から取得し、前記第2の送信用ダイナミックIDと前記第2のデータ保持手段から取得した第2の認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記第1のデータ保持手段において当該第2の受信用ダイナミックIDに関連付けられて保持された第2のIDと、を照合して認証を行う第2の認証手段と、
を具備することを特徴とする請求項1から請求項7のうちのいずれかに記載された認証システム。
【請求項8】
前記第2の認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第2の送信用ダイナミックIDをD−ID、前記第1の認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを算出することを特徴とする請求項7記載の認証システム。
【請求項9】
更に、前記第1の端末装置は、
前記第2の端末装置から送信された前記第2の暗号化乱数と前記第1のデータ保持手段に保持された第1の認証鍵を用いて、第2の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記第1の認証鍵から第2の共有シードを生成する第2の共有シード生成手段を具備することを特徴とする請求項7或いは請求項8記載の認証システム。
【請求項10】
更に、前記第1の端末装置は、
前記第2の共有シードと所定の関数とを用いて、前記第1の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第1の送信用ダイナミックID及び第2の受信用ダイナミックIDを更新し、前記第1のデータ保持手段に保持することを特徴とする請求項9記載の認証システム。
【請求項11】
更に、前記第2の端末装置は、
前記第1の端末装置から送信された前記第1の暗号化乱数と前記第2のデータ保持手段に保持された第2の認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の認証鍵とから第1の共有シードを生成する第1の共有シード生成手段と、
を具備することを特徴とする請求項1から請求項3のいずれかに記載の認証システム。
【請求項12】
更に、前記第2の端末装置は、
前記第1の共有シードと所定の関数とを用いて、前記第2の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第2の送信用ダイナミックID及び前記第1の受信用ダイナミックIDを更新し、前記第2のデータ保持手段に保持することを特徴とする請求項11記載の認証システム。
【請求項13】
更に、前記第1の端末装置は、
前記第1の乱数と前記第1の認証鍵とから第2の共有シードを生成する第2の共有シード生成手段を具備することを特徴とする請求項11或いは請求項12記載の認証システム。
【請求項14】
更に、前記第1の端末装置は、
前記第2の共有シードと所定の関数とを用いて、前記第1の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第1の送信用ダイナミックID及び第2の受信用ダイナミックIDを更新し、前記第1のデータ保持手段に保持することを特徴とする請求項13記載の認証システム。
【請求項15】
サーバコンピュータが、前記サーバコンピュータとネットワークを介して接続されたクライアントを認証する認証システムであって、
前記クライアントは、
第1のダイナミックIDと、前記第1のダイナミックIDに関連付けられた少なくとも2つ以上の第1の認証鍵を保持する第1のデータ保持手段と、
前記第1のダイナミックIDを、前記サーバコンピュータに送信する手段と、
を具備し、
前記サーバコンピュータは、
第2のダイナミックIDと、前記第2のダイナミックIDに関連付けられた、IDと少なくとも2つ以上の第2の認証鍵を保持する第2のデータ保持手段と、
前記第2のデータ保持手段から、前記第1のダイナミックIDと一致する第2のダイナミックIDを検出する検出手段と、
前記検出手段によって検出された第2のダイナミックIDに関連付けられる少なくとも2つ以上の第2の認証鍵を、前記第2のデータ保持手段から取得し、前記第1のダイナミックIDと前記データ保持手段から取得した第2の認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記第2のデータ保持手段において当該第2のダイナミックIDに関連付けられて保持されたIDと、を照合して認証を行う認証手段と、
を具備することを特徴とする認証システム。
【請求項16】
前記認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1のダイナミックIDをD−ID、前記認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを取り出すことを特徴とする請求項15記載の認証システム。
【請求項17】
更に、前記サーバコンピュータは、
乱数を生成する乱数生成手段と、
前記乱数と、前記第2の認証鍵とから第1の共有シードを生成する第1の共有シード生成手段と、
を具備することを特徴とする請求項15又は請求項16に記載の認証システム。
【請求項18】
更に、前記サーバコンピュータは、
前記乱数と、前記第2の認証鍵と、を用いて、前記演算子による演算を行い、暗号化乱数を生成する暗号化乱数生成手段と、
前記暗号化乱数生成手段によって生成された暗号化乱数と、前記第2の認証鍵を用いて、認証コードを生成する認証コード生成手段と、
前記暗号化乱数と、前記認証コードとを、前記クライアントに送信する手段と、
具備することを特徴とする請求項17記載の認証システム。
【請求項19】
更に、前記サーバコンピュータは、
前記第1の共有シードと所定の関数とを用いて、前記第2の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第1のダイナミックIDを更新し、前記第2のデータ保持手段に保持することを特徴とする請求項17記載の認証システム。
【請求項20】
更に、前記クライアントは、前記サーバコンピュータから送信された暗号化乱数を前記第1の認証鍵を用いて認証コードを作成し、前記作成した認証コードと、前記サーバコンピュータから送信された認証コードとを照合して認証を行うことを特徴とする請求項18に記載された認証システム。
【請求項21】
更に、前記クライアントは、
前記サーバコンピュータから送信された前記暗号化乱数と前記第1のデータ保持手段に保持された第1の認証鍵を用いて、第2の乱数を取得し、前記第2の乱数と、前記第1の認証鍵とから第2の共有シードを生成する第2の共有シード生成手段を具備することを特徴とする請求項20に記載された認証システム。
【請求項22】
更に、前記クライアントは、
前記第2の共有シードと所定の関数とを用いて、前記第1の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第1の送信用ダイナミックIDを更新し、前記第1のデータ保持手段に保持することを特徴とする請求項21記載の認証システム。
【請求項23】
ネットワークを介してクライアントに接続され、前記クライアントを認証するサーバコンピュータであって、
前記クライアントから、第1の送信用ダイナミックIDと、第1の暗号化乱数と、第1の認証コードを取得する手段と、
受信用ダイナミックIDと、前記受信用ダイナミックIDに関連付けられた、IDと少なくとも2つ以上の認証鍵を保持するデータ保持手段と、
前記データ保持手段から、前記第1の送信用ダイナミックIDと一致する受信用ダイナミックIDを検出する検出手段と、
前記検出手段によって検出された受信用ダイナミックIDに関連付けられる少なくとも2つ以上の認証鍵を、前記データ保持手段から取得し、前記第1の送信用ダイナミックIDと前記データ保持手段から取得した認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記データ保持手段において当該受信用ダイナミックIDに関連付けられて保持されたIDと、を照合して認証を行う認証手段と、
を具備することを特徴とするサーバコンピュータ。
【請求項24】
前記認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1の送信用ダイナミックIDをD−ID、前記認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを算出することを特徴とする請求項23記載のサーバコンピュータ。
【請求項25】
前記認証鍵と、前記クライアントから送信された第1の暗号化乱数を用いて、第2の認証コードを生成する認証コード生成手段と、
前記第1の認証コードと前記第2の認証コードを照合する手段を、
更に具備することを特徴とする請求項23或いは請求項24記載のサーバコンピュータ。
【請求項26】
第2の乱数を生成する乱数生成手段と、
前記クライアントから送信された前記第1の暗号化乱数と前記データ保持手段に保持された認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記認証鍵とから共有シードを生成する共有シード生成手段を、
更に具備することを特徴とする請求項23から請求項25のいずれかに記載のサーバコンピュータ。
【請求項27】
前記データ保持手段は、前記受信用ダイナミックIDに関連付けて第2の送信用ダイナミックIDを更に保持し、
前記第2の乱数と、前記認証鍵と、を用いて、前記演算子による演算を行い、第2の暗号化乱数を生成する暗号化乱数生成手段と、
前記暗号化乱数生成手段によって生成された第2の暗号化乱数と、前記認証鍵を用いて、第2の認証コードを生成する認証コード生成手段と、
前記第2の送信用ダイナミックIDと、前記第2の暗号化乱数と、前記第2の認証コードとを、前記クライアントに送信する手段と、
具備することを特徴とする請求項26記載のサーバコンピュータ。
【請求項28】
前記共有シードと所定の関数とを用いて、前記認証鍵を更新し、
前記更新された認証鍵を用いて、前記受信用ダイナミックIDおよび前記第2の送信用ダイナミックIDを更新し、前記データ保持手段に保持することを特徴とする請求項26或いは請求項27記載のサーバコンピュータ。
【請求項29】
前記クライアントから送信された前記第1の暗号化乱数と前記データ保持手段に保持された認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記認証鍵とから共有シードを生成する共有シード生成手段を、
更に具備することを特徴とする請求項23から請求項25のいずれかに記載のサーバコンピュータ。
【請求項30】
前記共有シードと所定の関数とを用いて、前記認証鍵を更新し、前記更新された認証鍵を用いて、前記受信用ダイナミックIDを更新し、前記データ保持手段に保持することを特徴とする請求項29記載のサーバコンピュータ。
【請求項31】
ネットワークを介してクライアントに接続し、前記クライアントを認証する認証システムのサーバコンピュータであって、
前記クライアントから、第1のダイナミックIDを取得する手段と、
第2のダイナミックIDと、前記第2のダイナミックIDに関連付けられた、IDと少なくとも2つ以上の認証鍵を保持するデータ保持手段と、
前記データ保持手段から、前記第1のダイナミックIDと一致する第2のダイナミックIDを検出する検出手段と、
前記検出手段によって検出された第2のダイナミックIDに関連付けられる少なくとも2つ以上の認証鍵を、前記データ保持手段から取得し、前記第1のダイナミックIDと前記データ保持手段から取得した認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記データ保持手段において当該第2のダイナミックIDに関連付けられて保持されたIDと、を照合して認証を行う認証手段と、
を具備することを特徴とするサーバコンピュータ。
【請求項32】
前記認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1のIDをD−ID、前記認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを取り出すことを特徴とする請求項31記載のサーバコンピュータ。
【請求項33】
乱数を生成する乱数生成手段と、
前記乱数と、前記認証鍵とから共有シードを生成する共有シード生成手段と、
を具備することを特徴とする請求項31又は請求項32に記載のサーバコンピュータ。
【請求項34】
前記乱数と、前記認証鍵と、を用いて、前記演算子による演算を行い、暗号化乱数を生成する暗号化乱数生成手段と、
前記暗号化乱数生成手段によって生成された暗号化乱数と、前記認証鍵を用いて、認証コードを生成する認証コード生成手段と、
前記暗号化乱数と、前記認証コードとを、前記クライアントに送信する手段と、
を更に具備することを特徴とする請求項33記載のサーバコンピュータ。
【請求項35】
前記共有シードと所定の関数とを用いて、前記認証鍵を更新し、
前記更新された認証鍵を用いて、前記第1のダイナミックIDを更新し、前記データ保持手段に保持することを特徴とする請求項33記載のサーバコンピュータ。
【請求項36】
コンピュータを請求項23から請求項35のいずれかに記載されたサーバコンピュータとして機能させるプログラム。
【請求項37】
コンピュータを請求項23から請求項35のいずれかに記載されたサーバコンピュータとして機能させるプログラムを記録した記録媒体。
【請求項1】
ネットワークを介して接続された第1の端末装置と第2の端末装置間の認証処理を行う認証システムであって、
前記第1の端末は、
第1の送信用ダイナミックIDと、前記第1の送信用ダイナミックIDに関連付けられた少なくとも2つ以上の第1の認証鍵を保持する第1のデータ保持手段と、
第1の乱数を生成する第1の乱数生成手段と、
前記第1のデータ保持手段から第1の送信用ダイナミックIDを選択し、当該第1の送信用ダイナミックIDに対応する前記第1の認証鍵と、前記第1の認証鍵と前記第1の乱数を用いて演算を行い、第1の暗号化乱数を生成する第1の暗号化乱数生成手段と、
前記第1の暗号化乱数生成手段によって生成された前記第1の暗号化乱数と、前記第1の認証鍵を用いて、第1の認証コードを生成する第1の認証コード生成手段と、
前記第1の送信用ダイナミックIDと、前記第1の暗号化乱数と、前記第1の認証コードとを、前記第2の端末装置に送信する手段と、
を具備し、
前記第2の端末装置は、
第1の受信用ダイナミックIDと、前記第1の受信用ダイナミックIDに関連付けられた、第1のIDと少なくとも2つ以上の第2の認証鍵を保持する第2のデータ保持手段と、
前記第2のデータ保持手段から、前記第1の送信用ダイナミックIDと一致する第1の受信用ダイナミックIDを検出する第1の検出手段と、
前記第1の検出手段によって検出された第1の受信用ダイナミックIDに関連付けられる少なくとも2つ以上の第2の認証鍵を、前記第2のデータ保持手段から取得し、前記第1の送信用ダイナミックIDと前記第2のデータ保持手段から取得した第2の認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記第2のデータ保持手段において当該第1の受信用ダイナミックIDに関連付けられて保持された第1のIDと、を照合して認証を行う第1の認証手段と、
を具備することを特徴とする認証システム。
【請求項2】
前記第1の認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1の送信用ダイナミックIDをD−ID、第2の認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを算出することを特徴とする請求項1記載の認証システム。
【請求項3】
更に、前記第2の端末装置は、
前記第2の認証鍵と、前記第1の端末装置から送信された第1の暗号化乱数を用いて、第2の認証コードを生成する第2の認証コード生成手段と、
前記第1の認証コードと前記第2の認証コードを照合する手段と、
を具備することを特徴とする請求項1或いは請求項2記載の認証システム。
【請求項4】
更に、前記第2の端末装置は、
第2の乱数を生成する第2の乱数生成手段と、
前記第1の端末装置から送信された前記第1の暗号化乱数と前記第2のデータ保持手段に保持された第2の認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記第2の認証鍵とから第1の共有シードを生成する第1の共有シード生成手段と、
を具備することを特徴とする請求項1から請求項3のいずれかに記載の認証システム。
【請求項5】
前記第2のデータ保持手段は、前記第1の受信用ダイナミックIDに関連付けて第2の送信用ダイナミックIDを更に保持し、
更に、前記第2の端末装置は、
前記第2の乱数と、前記第2の認証鍵と、を用いて、前記演算子による演算を行い、第2の暗号化乱数を生成する第2の暗号化乱数生成手段と、
前記第2の暗号化乱数生成手段によって生成された第2の暗号化乱数と、前記第2の認証鍵を用いて、第2の認証コードを生成する第2の認証コード生成手段と、
前記第2の送信用ダイナミックIDと、前記第2の暗号化乱数と、前記第2の認証コードとを、前記第1の端末装置に送信する手段と、
を具備することを特徴とする請求項4記載の認証システム。
【請求項6】
更に、前記第2の端末装置は、
前記第1の共有シードと所定の関数とを用いて、前記第2の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第2の送信用ダイナミックID及び前記第1の受信用ダイナミックIDを更新し、前記第2のデータ保持手段に保持することを特徴とする請求項4記載の認証システム。
【請求項7】
前記第1のデータ保持手段は、第2の受信用ダイナミックIDと、前記第2の受信用ダイナミックIDに関連付けられた、第2のIDと少なくとも2つ以上の第1の認証鍵を保持し、
前記第1の端末装置は、
前記第1のデータ保持手段から、前記第2の送信用ダイナミックIDと一致する第2の受信用ダイナミックIDを検出する第2の検出手段と、
前記第2の検出手段によって検出された第2の受信用ダイナミックIDに関連付けられる少なくとも2つ以上の第1の認証鍵を、前記第1のデータ保持手段から取得し、前記第2の送信用ダイナミックIDと前記第2のデータ保持手段から取得した第2の認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記第1のデータ保持手段において当該第2の受信用ダイナミックIDに関連付けられて保持された第2のIDと、を照合して認証を行う第2の認証手段と、
を具備することを特徴とする請求項1から請求項7のうちのいずれかに記載された認証システム。
【請求項8】
前記第2の認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第2の送信用ダイナミックIDをD−ID、前記第1の認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを算出することを特徴とする請求項7記載の認証システム。
【請求項9】
更に、前記第1の端末装置は、
前記第2の端末装置から送信された前記第2の暗号化乱数と前記第1のデータ保持手段に保持された第1の認証鍵を用いて、第2の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記第1の認証鍵から第2の共有シードを生成する第2の共有シード生成手段を具備することを特徴とする請求項7或いは請求項8記載の認証システム。
【請求項10】
更に、前記第1の端末装置は、
前記第2の共有シードと所定の関数とを用いて、前記第1の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第1の送信用ダイナミックID及び第2の受信用ダイナミックIDを更新し、前記第1のデータ保持手段に保持することを特徴とする請求項9記載の認証システム。
【請求項11】
更に、前記第2の端末装置は、
前記第1の端末装置から送信された前記第1の暗号化乱数と前記第2のデータ保持手段に保持された第2の認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の認証鍵とから第1の共有シードを生成する第1の共有シード生成手段と、
を具備することを特徴とする請求項1から請求項3のいずれかに記載の認証システム。
【請求項12】
更に、前記第2の端末装置は、
前記第1の共有シードと所定の関数とを用いて、前記第2の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第2の送信用ダイナミックID及び前記第1の受信用ダイナミックIDを更新し、前記第2のデータ保持手段に保持することを特徴とする請求項11記載の認証システム。
【請求項13】
更に、前記第1の端末装置は、
前記第1の乱数と前記第1の認証鍵とから第2の共有シードを生成する第2の共有シード生成手段を具備することを特徴とする請求項11或いは請求項12記載の認証システム。
【請求項14】
更に、前記第1の端末装置は、
前記第2の共有シードと所定の関数とを用いて、前記第1の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第1の送信用ダイナミックID及び第2の受信用ダイナミックIDを更新し、前記第1のデータ保持手段に保持することを特徴とする請求項13記載の認証システム。
【請求項15】
サーバコンピュータが、前記サーバコンピュータとネットワークを介して接続されたクライアントを認証する認証システムであって、
前記クライアントは、
第1のダイナミックIDと、前記第1のダイナミックIDに関連付けられた少なくとも2つ以上の第1の認証鍵を保持する第1のデータ保持手段と、
前記第1のダイナミックIDを、前記サーバコンピュータに送信する手段と、
を具備し、
前記サーバコンピュータは、
第2のダイナミックIDと、前記第2のダイナミックIDに関連付けられた、IDと少なくとも2つ以上の第2の認証鍵を保持する第2のデータ保持手段と、
前記第2のデータ保持手段から、前記第1のダイナミックIDと一致する第2のダイナミックIDを検出する検出手段と、
前記検出手段によって検出された第2のダイナミックIDに関連付けられる少なくとも2つ以上の第2の認証鍵を、前記第2のデータ保持手段から取得し、前記第1のダイナミックIDと前記データ保持手段から取得した第2の認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記第2のデータ保持手段において当該第2のダイナミックIDに関連付けられて保持されたIDと、を照合して認証を行う認証手段と、
を具備することを特徴とする認証システム。
【請求項16】
前記認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1のダイナミックIDをD−ID、前記認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを取り出すことを特徴とする請求項15記載の認証システム。
【請求項17】
更に、前記サーバコンピュータは、
乱数を生成する乱数生成手段と、
前記乱数と、前記第2の認証鍵とから第1の共有シードを生成する第1の共有シード生成手段と、
を具備することを特徴とする請求項15又は請求項16に記載の認証システム。
【請求項18】
更に、前記サーバコンピュータは、
前記乱数と、前記第2の認証鍵と、を用いて、前記演算子による演算を行い、暗号化乱数を生成する暗号化乱数生成手段と、
前記暗号化乱数生成手段によって生成された暗号化乱数と、前記第2の認証鍵を用いて、認証コードを生成する認証コード生成手段と、
前記暗号化乱数と、前記認証コードとを、前記クライアントに送信する手段と、
具備することを特徴とする請求項17記載の認証システム。
【請求項19】
更に、前記サーバコンピュータは、
前記第1の共有シードと所定の関数とを用いて、前記第2の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第1のダイナミックIDを更新し、前記第2のデータ保持手段に保持することを特徴とする請求項17記載の認証システム。
【請求項20】
更に、前記クライアントは、前記サーバコンピュータから送信された暗号化乱数を前記第1の認証鍵を用いて認証コードを作成し、前記作成した認証コードと、前記サーバコンピュータから送信された認証コードとを照合して認証を行うことを特徴とする請求項18に記載された認証システム。
【請求項21】
更に、前記クライアントは、
前記サーバコンピュータから送信された前記暗号化乱数と前記第1のデータ保持手段に保持された第1の認証鍵を用いて、第2の乱数を取得し、前記第2の乱数と、前記第1の認証鍵とから第2の共有シードを生成する第2の共有シード生成手段を具備することを特徴とする請求項20に記載された認証システム。
【請求項22】
更に、前記クライアントは、
前記第2の共有シードと所定の関数とを用いて、前記第1の認証鍵を更新し、
前記更新された認証鍵を用いて、前記第1の送信用ダイナミックIDを更新し、前記第1のデータ保持手段に保持することを特徴とする請求項21記載の認証システム。
【請求項23】
ネットワークを介してクライアントに接続され、前記クライアントを認証するサーバコンピュータであって、
前記クライアントから、第1の送信用ダイナミックIDと、第1の暗号化乱数と、第1の認証コードを取得する手段と、
受信用ダイナミックIDと、前記受信用ダイナミックIDに関連付けられた、IDと少なくとも2つ以上の認証鍵を保持するデータ保持手段と、
前記データ保持手段から、前記第1の送信用ダイナミックIDと一致する受信用ダイナミックIDを検出する検出手段と、
前記検出手段によって検出された受信用ダイナミックIDに関連付けられる少なくとも2つ以上の認証鍵を、前記データ保持手段から取得し、前記第1の送信用ダイナミックIDと前記データ保持手段から取得した認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記データ保持手段において当該受信用ダイナミックIDに関連付けられて保持されたIDと、を照合して認証を行う認証手段と、
を具備することを特徴とするサーバコンピュータ。
【請求項24】
前記認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1の送信用ダイナミックIDをD−ID、前記認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを算出することを特徴とする請求項23記載のサーバコンピュータ。
【請求項25】
前記認証鍵と、前記クライアントから送信された第1の暗号化乱数を用いて、第2の認証コードを生成する認証コード生成手段と、
前記第1の認証コードと前記第2の認証コードを照合する手段を、
更に具備することを特徴とする請求項23或いは請求項24記載のサーバコンピュータ。
【請求項26】
第2の乱数を生成する乱数生成手段と、
前記クライアントから送信された前記第1の暗号化乱数と前記データ保持手段に保持された認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記第2の乱数と、前記認証鍵とから共有シードを生成する共有シード生成手段を、
更に具備することを特徴とする請求項23から請求項25のいずれかに記載のサーバコンピュータ。
【請求項27】
前記データ保持手段は、前記受信用ダイナミックIDに関連付けて第2の送信用ダイナミックIDを更に保持し、
前記第2の乱数と、前記認証鍵と、を用いて、前記演算子による演算を行い、第2の暗号化乱数を生成する暗号化乱数生成手段と、
前記暗号化乱数生成手段によって生成された第2の暗号化乱数と、前記認証鍵を用いて、第2の認証コードを生成する認証コード生成手段と、
前記第2の送信用ダイナミックIDと、前記第2の暗号化乱数と、前記第2の認証コードとを、前記クライアントに送信する手段と、
具備することを特徴とする請求項26記載のサーバコンピュータ。
【請求項28】
前記共有シードと所定の関数とを用いて、前記認証鍵を更新し、
前記更新された認証鍵を用いて、前記受信用ダイナミックIDおよび前記第2の送信用ダイナミックIDを更新し、前記データ保持手段に保持することを特徴とする請求項26或いは請求項27記載のサーバコンピュータ。
【請求項29】
前記クライアントから送信された前記第1の暗号化乱数と前記データ保持手段に保持された認証鍵を用いて、第1の乱数を取得し、前記第1の乱数と、前記認証鍵とから共有シードを生成する共有シード生成手段を、
更に具備することを特徴とする請求項23から請求項25のいずれかに記載のサーバコンピュータ。
【請求項30】
前記共有シードと所定の関数とを用いて、前記認証鍵を更新し、前記更新された認証鍵を用いて、前記受信用ダイナミックIDを更新し、前記データ保持手段に保持することを特徴とする請求項29記載のサーバコンピュータ。
【請求項31】
ネットワークを介してクライアントに接続し、前記クライアントを認証する認証システムのサーバコンピュータであって、
前記クライアントから、第1のダイナミックIDを取得する手段と、
第2のダイナミックIDと、前記第2のダイナミックIDに関連付けられた、IDと少なくとも2つ以上の認証鍵を保持するデータ保持手段と、
前記データ保持手段から、前記第1のダイナミックIDと一致する第2のダイナミックIDを検出する検出手段と、
前記検出手段によって検出された第2のダイナミックIDに関連付けられる少なくとも2つ以上の認証鍵を、前記データ保持手段から取得し、前記第1のダイナミックIDと前記データ保持手段から取得した認証鍵とを利用して演算を行い、IDを算出し、前記算出されたIDと、前記データ保持手段において当該第2のダイナミックIDに関連付けられて保持されたIDと、を照合して認証を行う認証手段と、
を具備することを特徴とするサーバコンピュータ。
【請求項32】
前記認証手段は、
(X◎Y)◎Y=X
を満たす演算子◎を使用し、
前記第1のIDをD−ID、前記認証鍵をAK’i、AKiとしたときに、
(D−ID◎AK’i)◎AKi=ID
となるIDを取り出すことを特徴とする請求項31記載のサーバコンピュータ。
【請求項33】
乱数を生成する乱数生成手段と、
前記乱数と、前記認証鍵とから共有シードを生成する共有シード生成手段と、
を具備することを特徴とする請求項31又は請求項32に記載のサーバコンピュータ。
【請求項34】
前記乱数と、前記認証鍵と、を用いて、前記演算子による演算を行い、暗号化乱数を生成する暗号化乱数生成手段と、
前記暗号化乱数生成手段によって生成された暗号化乱数と、前記認証鍵を用いて、認証コードを生成する認証コード生成手段と、
前記暗号化乱数と、前記認証コードとを、前記クライアントに送信する手段と、
を更に具備することを特徴とする請求項33記載のサーバコンピュータ。
【請求項35】
前記共有シードと所定の関数とを用いて、前記認証鍵を更新し、
前記更新された認証鍵を用いて、前記第1のダイナミックIDを更新し、前記データ保持手段に保持することを特徴とする請求項33記載のサーバコンピュータ。
【請求項36】
コンピュータを請求項23から請求項35のいずれかに記載されたサーバコンピュータとして機能させるプログラム。
【請求項37】
コンピュータを請求項23から請求項35のいずれかに記載されたサーバコンピュータとして機能させるプログラムを記録した記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2007−336127(P2007−336127A)
【公開日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願番号】特願2006−164254(P2006−164254)
【出願日】平成18年6月14日(2006.6.14)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【出願人】(504133110)国立大学法人 電気通信大学 (383)
【Fターム(参考)】
【公開日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願日】平成18年6月14日(2006.6.14)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【出願人】(504133110)国立大学法人 電気通信大学 (383)
【Fターム(参考)】
[ Back to top ]