(57)【特許請求の範囲】
【請求項１】
サーバ装置とクライアント装置とが通信可能に接続される情報処理システムにおいて、
前記サーバ装置は、
ユーザが固有特徴として入力した特徴データを当該ユーザを識別するためのユーザＩＤと関連付けて記憶するデータ記憶部と、
通信相手となるクライアント装置からユーザＩＤを伴う認証リクエストを受け付け、受け付けたユーザＩＤに対応する前記特徴データを前記データ記憶部より特定し、特定した前記特徴データから派生する異なる複数の部分特徴データに基づいて第１のワンタイムパスワードを複数個生成するとともに、前記複数個の第１のワンタイムパスワードのそれぞれに対するハッシュ値を計算し、得られる複数個のハッシュ値と自身が生成する乱数とから鍵交換プロトコル用のデータＷｂを計算して、複数のデータＷｂを得て、前記第１のワンタイムパスワードと適合する第２のワンタイムパスワードを生成させるための前記部分特徴データの内容を直接又は間接に表す指示データに当該複数のデータＷｂを含めて、前記クライアント装置へ送出する第１の制御部と、
前記クライアント装置から送信されるデータＷａを受信すると、このデータＷａを前記複数のデータＷｂのそれぞれに乗じて、鍵交換共有データを複数個生成する第２の制御部と、
前記クライアント装置からクライアント確認データを受信すると、前記第２の制御部が生成した前記鍵交換共有データのハッシュ値を求め、得られた鍵交換共有データのハッシュ値と前記受信したクライアント確認データとを一致するか否かを判定し、一致する場合には、当該鍵交換共有データのハッシュ値を前記クライアント装置宛に送出する第３の制御部と、
前記クライアント装置から鍵交換共有データのハッシュ値で暗号化された特徴データを受信すると、前記第３の制御部が生成した鍵交換共有データのハッシュ値で復号し、特徴データを得て、当該特徴データの検証を行い、検証結果が問題ない場合に当該クライアント装置との通信を可能にする第４の制御部と、を備え、
前記クライアント装置は、
ユーザから前記特徴データを取得する特徴データ取得部と、
前記サーバ装置宛に前記ユーザＩＤを伴う認証リクエストを送出するとともに当該サーバ装置より前記認証リクエストに対応する前記指示データを受け取る第５の制御部と、
前記取得した特徴データから前記指示データに従う部分を特定し、特定した部分に基づいて前記第２のワンタイムパスワードを生成し、生成した第２のワンタイムパスワードのハッシュ値を計算し、このハッシュ値と自身が生成する乱数から鍵交換共有プロトコルに用いるデータＷａを計算し、当該データＷａを前記サーバ装置宛に送出する第６の制御部と、
前記サーバ装置から複数のデータＷｂを受信すると、前記データＷａを受信した複数のデータＷｂのそれぞれに乗じて複数の鍵交換共有データを生成する第７の制御部と、
前記第７の制御部が生成した複数の鍵交換共有データのそれぞれのハッシュ値を計算し、得られたハッシュ値のそれぞれをクライアント確認データとして前記サーバ装置宛に送出する第８の制御部と、
前記サーバ装置から鍵交換共有データのハッシュ値を受信すると、前記特徴データ取得部が取得した特徴データのうち、前記指示データに対応する特徴データを前記鍵交換共有データのハッシュ値で暗号化し、前記サーバ装置宛に送出する第９の制御部と、を備えて成る、
ことを特徴とする情報処理システム。
【請求項２】
前記特徴データは、前記ユーザの生体特徴を表す画像データであり、
前記第１の制御部は、前記ユーザＩＤに関連付けられた前記画像データを前記データ記憶部より特定し、特定した画像データの一部の領域を部分画像データとしてランダムに選択するとともに、選択した前記部分画像データの全体における相対位置と面積とを表す領域データを前記指示データに含めて前記クライアント装置へ送出する、請求項１記載の情報処理システム。
【請求項３】
サーバ装置とクライアント装置とにより実行される方法であって、
前記サーバ装置の、
第１の制御部が、
通信相手となるクライアント装置からユーザＩＤを伴う認証リクエストを受け付け、受け付けたユーザＩＤに対応する前記特徴データを、ユーザが固有特徴として入力した特徴データを当該ユーザを識別するためのユーザＩＤと関連付けて記憶するデータ記憶部より特定し、特定した前記特徴データから派生する異なる複数の部分特徴データに基づいて第１のワンタイムパスワードを複数個生成するとともに、前記複数個の第１のワンタイムパスワードのそれぞれに対するハッシュ値を計算し、得られる複数個のハッシュ値と自身が生成する乱数とから鍵交換共有プロトコル用のデータＷｂを計算して、複数のデータＷｂを得て、前記第１のワンタイムパスワードと適合する第２のワンタイムパスワードを生成させるための前記部分特徴データの内容を直接又は間接に表す指示データに当該複数のデータＷｂを含めて、前記クライアント装置へ送出し、
第２の制御部が、
前記クライアント装置から送信されるデータＷａを受信すると、このデータＷａを前記複数のデータＷｂのそれぞれに乗じて、鍵交換共有データを複数個生成し、
第３の制御部が、
前記クライアント装置からクライアント確認データを受信すると、前記第２の制御部が生成した前記鍵交換共有データのハッシュ値を求め、得られた鍵交換共有データのハッシュ値と前記受信したクライアント確認データとを一致するか否かを判定し、一致する場合には、当該鍵交換共有データのハッシュ値を前記クライアント装置宛に送出し、
第４の制御部が、
前記クライアント装置から鍵交換共有データのハッシュ値で暗号化された特徴データを受信すると、前記第３の制御部が生成した鍵交換共有データのハッシュ値で復号し、特徴データを得て、当該特徴データの検証を行い、検証結果が問題ない場合に当該クライアント装置との通信を行い、
前記クライアント装置の、
特徴データ取得部が、
ユーザから前記特徴データを取得し、
第５の制御部が、
前記サーバ装置宛に前記ユーザＩＤを伴う認証リクエストを送出するとともに当該サーバ装置より前記認証リクエストに対応する前記指示データを受け取り、
する第６の制御部が、
前記取得した特徴データから前記指示データに従う部分を特定し、特定した部分に基づいて前記第２のワンタイムパスワードを生成し、生成した第２のワンタイムパスワードのハッシュ値を計算し、このハッシュ値と自身が生成する乱数から鍵交換共有プロトコルに用いるデータＷａを計算し、当該データＷａを前記サーバ装置宛に送出し、
第７の制御部が、
前記サーバ装置から複数のデータＷｂを受信すると、前記データＷａを受信した複数のデータＷｂのそれぞれに乗じて複数の鍵交換共有データを生成し、
第８の制御部が、
前記第７の制御部が生成した複数の鍵交換共有データのそれぞれのハッシュ値を計算し、得られたハッシュ値のそれぞれをクライアント確認データとして前記サーバ装置宛に送出し、
第９の制御部が、
前記サーバ装置から鍵交換共有データのハッシュ値を受信すると、前記特徴データ取得部が取得した特徴データのうち、前記指示データに対応する特徴データを前記鍵交換共有データのハッシュ値で暗号化し、前記サーバ装置宛に送出する
ことを特徴とする共有パスワードの交換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばパスワード認証鍵交換プロトコルにおける共有パスワードのように、通信相手との間で高いセキュリティで認証用のパスワードを交換するためのセキュリティ手法に関する。
【背景技術】
【０００２】
既存のパスワード認証に代わる技術として、バイオメトリクス認証技術が種々提案されている。例えば、特許文献１に記載されている認証技術では、予め利用者の指紋の特徴点から辞書ＩＤを作成し、この辞書ＩＤをその利用者の指紋と関連付けて登録しておく。認証時には、同様にして作成した辞書ＩＤをキーとして、登録されていた指紋を取り出して認証に用いる。これにより、利用者にＩＤ入力の手間をとらせないこととしている。
【０００３】
このようなバイオメトリクス認証技術は、固体特有の情報である生体情報に基づくものなので、通常のパスワード認証と比べて安全性が高い。そのため、バイオメトリクス認証技術は、あらゆるパスワード認証技術において代替の可能性がある。
【０００４】
例えば、クライアントからパスワードをサーバに送信し、サーバにてパスワードの照合を行うシンプルなパスワード認証技術だけでなく、例えば、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換プロトコルに代表される鍵交換プロトコルにおいて、当事者間で事前にパスワードを共有しておき、そのパスワードによる認証の要素を鍵交換プロトコルに付加したパスワード認証鍵交換プロトコルも知られており（例えば、特許文献２、特許文献３、特許文献４参照）、当該技術に対する適用の可能性を模索することは、有益である。
【０００５】
詳しくは、例えば生体情報から暗号化鍵を生成する技術として特許文献５及び特許文献６に示されたものがあるが、これらの技術における安全性は、クライアント側に保持される暗号鍵生成アルゴリズムに依存している。そのため、クライアント側では暗号鍵生成アルゴリズムが漏洩しないように苦慮しなければならないのに対して、パスワード認証鍵交換プロトコルによる場合、その種の心配をする必要がないという利点がある。
【０００６】
上述の鍵交換プロトコルのようなアプリケーションでは、パスワードで認証されるべき対象が遠隔地にあることが一般的である。即ち、ユーザが取り扱うクライアントは、通常、ユーザがアクセスしたいサーバから離れた環境に設置されており、サーバ−クライアント間は、ネットワークを介して接続されている。
【０００７】
【特許文献１】特開平６−２７４６０２
【特許文献２】特表２００３−５３６３２０
【特許文献３】特開２００１−３１３６３４
【特許文献４】特開２００２−３３５２３８
【特許文献５】特開２００１−４４９８６
【特許文献６】特開２００３−１３４１０７
【発明の開示】
【発明が解決しようとする課題】
【０００８】
互いに遠隔地に置かれたサーバ−クライアント間における通信に特許文献１記載の技術を単純に適用しようとすると、サーバからクライアントのスキャナーに対して毎回同じ特徴点の情報を要求することになり、なりすましの危険性が増すといった問題がある。
【０００９】
また、このような通信において、上述したパスワード認証鍵交換の技術を適用する場合、単に生体情報の特徴をパスワードとして用いると、パスワードの情報量が多くなり、鍵交換プロトコルの処理が煩雑になるという問題が生じる。さらに、生体情報は不変的な情報のため、常に同一のパスワードで鍵交換プロトコルが使用されることになり、セキュリティ上の問題も生じることとなる。
【００１０】
本発明は、上述したようななりすましの危険性を低減し、種々のパスワード認証技術における代替技術として適用可能な、通信相手との間で行う認証用のパスワードの交換のためのセキュリティ手法を提案することを主たる課題とする。
【課題を解決するための手段】
【００１１】
本発明は、サーバ装置、クライアント装置、共有パスワード交換方法、並びにコンピュータプログラムにより上記課題の解決を図る。
【００１２】
本発明が提供するサーバ装置は、ユーザが固有特徴として入力した特徴データを当該ユーザを識別するためのユーザＩＤと関連付けて記憶するデータ記憶部と、通信相手となるクライアント装置からユーザＩＤを伴う認証リクエストを受け付け、受け付けたユーザＩＤに対応する前記特徴データを前記データ記憶部より特定し、特定した前記特徴データから派生する部分特徴データに基づいて第１のワンタイムパスワードを生成するとともに、前記第１のワンタイムパスワードと適合する第２のワンタイムパスワードを生成させるための前記部分特徴データの内容を直接又は間接に表す指示データを、前記クライアント装置へ送出する第１の制御部と、前記指示データに従って前記クライアント装置が生成した前記第２のワンタイムパスワードを受け取り、受け取った第２のワンタイムパスワードが前記第１のワンタイムデータと適合するときに当該クライアント装置との通信を可能にする第２の制御部と、を備えて成る装置である。
【００１３】
ここで「ワンタイムパスワード」は、認証を１度行うと２度と使えない、いわゆる「使い捨てパスワード」である。毎回パスワードが変更されるため、送信途中で第三者にパスワードが窃取されても、その第三者がアクセスしようとした時点でワンタイムパスワードの利用が既に済んでいるため、なりすましを防ぐことができる。
「特徴データから派生する部分特徴データ」は、例えば、特徴データを単純に分割したデータ、特徴データにおける相対位置、サイズ、特徴データの周波数帯、特徴的な個体（例えばユーザ）の動きないしその周囲のデータ等である。データには時間要素、頻度要素を含めることもできる。
このような特徴データとしては、例えば前記ユーザの生体特徴を表す画像データを用いることができる。この場合、前記第１の制御部は、前記ユーザＩＤに関連付けられた前記画像データを前記データ記憶部より特定し、特定した画像データの一部の領域を部分画像データとしてランダムに選択するとともに、選択した前記部分画像データの全体における相対位置と相対面積の少なくとも一方を表す領域データを前記指示データに含めて前記クライアント装置へ送出するように構成する。
なお、前記通信相手となるクライアント装置は、例えば、前記通信に先立ち、パスワード認証の要素を所定の鍵交換プロトコル、例えばＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵交換プロトコルのようなものに付加した「パスワード認証鍵交換プロトコル」に従って自装置（サーバ装置）との認証を行う通信装置であっても良い。本発明を適用することにより、サーバ装置とクライアント装置との間で、パスワード認証鍵交換プロトコルを使用する場合であっても、セキュリティ上の問題を解消しつつパスワードの情報量の増加が抑制され、鍵交換プロトコルの処理が煩雑になる事態を回避することができる。
【００１４】
本発明が提供するクライアント装置は、上記の本発明のサーバ装置と双方向通信を行うクライアント装置であって、ユーザから前記特徴データを取得する特徴データ取得部と、前記サーバ装置宛に前記ユーザＩＤを伴う認証リクエストを送出するとともに当該サーバ装置より前記認証リクエストに対応する前記指示データを受け取る第３の制御部と、前記取得した特徴データから前記指示データに従う部分を特定し、特定した部分に基づいて前記第２のワンタイムパスワードを生成し、生成した第２のワンタイムパスワードを前記サーバ装置宛に送出する第３の制御部とを備えて成る装置である。
【００１５】
本発明が提供する方法は、サーバ装置とクライアント装置とにより実行される方法であって、前記クライアント装置が、前記サーバ装置宛にユーザＩＤを伴う認証リクエストを送出するステップと、クライアント装置からユーザを識別するためのユーザＩＤを伴う認証リクエストを受け付けた前記サーバ装置が、前記ユーザＩＤと関連付けて所定のメモリに記憶されている当該ユーザの固有特徴を表す特徴データを特定し、特定した前記特徴データから派生する部分特徴データに基づいて第１のワンタイムパスワードを生成するとともに、前記第１のワンタイムパスワードと適合する第２のワンタイムパスワードを生成させるための前記部分特徴データの内容を直接又は間接に表す指示データを、前記クライアント装置へ送出するステップと、前記指示データを受け取った前記クライアント装置が、ユーザより前記特徴データを取得するとともに取得した特徴データから前記指示データに従う部分を特定し、特定した部分に基づいて前記第２のワンタイムパスワードを生成し、生成した第２のワンタイムパスワードを前記サーバ装置宛に送出するステップと、前記第２のワンタイムパスワードを受け取った前記サーバ装置が、その第２のワンタイムパスワードが前記第１のワンタイムデータと適合するときに当該クライアント装置との通信を可能にする制御を行うステップとを有する共有パスワードの交換方法である。
【００１６】
本発明が提供するコンピュータプログラムは、コンピュータを、ユーザが固有特徴として入力した特徴データを当該ユーザを識別するためのユーザＩＤと関連付けて記憶するデータ記憶部、通信相手となるクライアント装置からユーザＩＤを伴う認証リクエストを受け付け、受け付けたユーザＩＤに対応する前記特徴データを前記データ記憶部より特定し、特定した前記特徴データから派生する部分特徴データに基づいて第１のワンタイムパスワードを生成するとともに、前記第１のワンタイムパスワードと適合する第２のワンタイムパスワードを生成させるための前記部分特徴データの内容を直接又は間接に表す指示データを、前記クライアント装置へ送出する第１の制御部、前記指示データに従って前記クライアント装置が生成した前記第２のワンタイムパスワードを受け取り、受け取った第２のワンタイムパスワードが前記第１のワンタイムデータと適合するときに当該クライアント装置との通信を可能にする第２の制御部、として機能させるためのコンピュータプログラムである。
【発明の効果】
【００１７】
本発明によれば、クライアント装置がワンタイムパスワードを作成する際に、ユーザから取得した特徴データから派生する部分特徴データのどれを用いるかについて、ランダムに変更できるようにするとともにサーバ装置側に主導権を持たせたことから、なりすましの問題を解消することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態例を説明する。本例では、バイオメトリクス技術によるワンタイムパスワード生成及びそのワンタイムパスワードを利用した共有パスワード交換のプロトコルに適用した場合の例を述べる。
【００１９】
図１は、本発明の実施の一形態となる情報処理システムの全体構成図である。この情報処理システムは、サーバ装置（以下、「サーバ」と略す）１００と、サーバ１００の遠隔地に設けられたクライアント装置（以下、「クライアント」と略す）２００とを含んで構成される。サーバ１００とクライアント２００とは、ネットワーク３００を介して相互に接続されている。
【００２０】
サーバ１００は、ＣＰＵ（プロセッサ・ユニット）１１０、主記憶部１２０、補助記憶部１３０、Ｉ／Ｏ制御部１４０及び送受信部（通信制御部）１５０を備えている。主記憶部１２０は、例えばＤＲＡＭにより構成される。補助記憶部１３０は、例えばＨＤＤ（ハードディスク・ドライブ）により構成される。サーバ１００は、また、ＲＯＭ、ディスプレイ、入力デバイスなどのコンピュータ要素（図示省略）を備えている。但し、これらのコンピュータ要素は本実施の形態に直接的には関係しないため、説明を省略する。
【００２１】
補助記憶部１３０には、第１のワンタイムパスワードであるサーバ側ワンタイムパスワードの生成及びパスワード認証鍵交換のための処理をＣＰＵ１１０に実行させ、サーバ１００にその処理を可能にする機能を形成するためのサーバ用プログラムが格納されている。サーバ用プログラムは、主記憶部１２０に展開され、ＣＰＵ１１０は、この主記憶部１２０に展開されたサーバ用プログラムに従って動作する。主記憶部１２０には、ＣＰＵ１１０がサーバ用プログラムに従って動作している間に生成したデータ及びＣＰＵ１１０により利用されるデータも一時的に記憶される。
なお、一般的に、コンピュータシステムで本発明を実現する場合、上述したように主記憶部１２０と補助記憶部１３０とを分ける構成が採用されるが、概念的には、両者を一の記憶手段として捉えることも可能である。
【００２２】
本実施の形態では、補助記憶部１３０に、更に、生体情報のデータベース１３５が形成される。詳しくは、本実施の形態におけるデータベース１３５は、生体情報として指紋の画像データを格納する。この画像データは、データベース１３５内で、ユーザ毎に割り当てられたユーザＩＤと関連付けて記憶されるようになっている。
【００２３】
クライアント２００もまた、サーバ１００と同様に、ＣＰＵ２１０、主記憶部２２０、補助記憶部２３０、Ｉ／Ｏ制御部２４０及び送受信部（通信制御部）２５０、及び、Ｉ／Ｏ制御部２４０に接続された生体情報（指紋）取得用のスキャナ２４５を備えている。
補助記憶部２３０には、第２のワンタイムパスワードであるクライアント側ワンタイムパスワード生成及びパスワード認証鍵交換のための処理をＣＰＵ２１０に実行させ、クライアント２００にその処理を可能にする機能を形成するためのクライアント用プログラムが格納されている。クライアント用プログラムは、主記憶部２２０上に展開され、ＣＰＵ２１０は、この主記憶部２２０上に展開されたクライアント用プログラムに従って動作する。また、主記憶部２２０上には、ＣＰＵ２１０がクライアント用プログラムに従って動作している間に生成したデータ及びＣＰＵ２１０により利用されるデータも一時的に記憶される。
【００２４】
このような構成を備えるサーバ１００及びクライアント２００において、主記憶部１２０及び２２０上に展開されたサーバ用プログラム及びクライアント用プログラムをＣＰＵ１１０及び２１０がそれぞれ実行することにより、図２にその概略が示されるワンタイムパスワード生成及び共有パスワード交換の方法が具現化される。
【００２５】
まず、クライアント２００が、サーバ１００に対してユーザＩＤを送出すると共に鍵交換要求を通知する（ステップＳ１０１）。なお、本実施の形態では、サーバ１００及びクライアント２００の双方に予め複数の認証方式が共通登録されており、クライアント２００は、当該鍵交換セッションで用いる認証方式を特定し、ユーザＩＤの送出と共にサーバ１００側に特定した認証方式も伝えることとする。
【００２６】
サーバ１００は、クライアント２００からユーザＩＤと認証方式の指定を受けて、ユーザＩＤ及び指定された認証方式がデータベース１３５に登録されているかについての確認を行う（ステップＳ２０１）。ユーザＩＤが登録されていなかったり、指定された認証方式についての情報が見当たらなかったりした場合、サーバ１００は、クライアント２００に対してエラーを通知し、それまでに作成されたデータの消去を行う（ステップＳ２０２）。
【００２７】
ステップＳ２０１においてユーザＩＤ及び認証方式の確認に成功した場合、サーバ１００は、ユーザＩＤに対応する画像データをデータベース１３５から読み出し、ワンタイムパスワード生成のキーとなる情報の選定を行う。即ち、画像データの一部分を部分画像データとしてランダムに選定する一方、全体の画像データにおける部分画像データの位置などの領域情報（例えば、「中心からＸ＝１、Ｙ＝２だけ移動した点を中心とする一辺０．５の領域」のような情報である。以下、この情報を単に「領域情報」という。）を求め、また、部分画像データに対応する領域に含まれる特徴情報に関する要求品質を決定する（ステップＳ２０３）。
【００２８】
選定された部分画像データは、サーバ側ワンタイムパスワード生成に用いられ、その生成したパスワードに基づいてサーバ側鍵交換処理が行われる（ステップＳ２０４）。パスワード生成及び鍵交換処理については、更なる図面を用いて説明する。
【００２９】
一方、領域情報及び要求品質については、クライアント２００に、クライアント側ワンタイムパスワードを生成するための指定データの一部として、クライアント２００側に送信される（ステップＳ２０５）。
【００３０】
クライアント２００側では、スキャナ２４５による指紋のスキャニングが行われる（ステップＳ１０２）一方、サーバ１００側から領域情報及び要求品質を受信して（ステップＳ１０３）、スキャニングした指紋の画像データにおける部分画像データに対応する領域を領域情報から特定し、クライアント側ワンタイムパスワードを生成するとともに、その生成したパスワードに基づいてクライアント側鍵交換処理を行う（ステップＳ１０４）。
【００３１】
以下、図３〜図７をも更に参照して、ワンタイムパスワード生成及び鍵交換処理について詳細に説明する。サーバ１００側の処理は、第１段階〜第３段階の３段階に分かれており、それぞれ、図３、図５、図７に示されている。一方、クライアント２００側の処理は、第１段階及び第２段階の２段階に分かれており、それぞれ図４及び図６に示されている。
【００３２】
図３は、ステップＳ２０４の詳細な処理の第１段階を示している。図３において、サーバ１００は、乱数ａの生成を行う（ステップＳ３０１）。この乱数は、鍵交換プロトコル用データ生成に用いられるものであり、必要に応じて複数パターン生成される。
【００３３】
サーバ１００は、また、部分画像データに含まれる特徴情報（特徴情報自体の有無、存在する場合の特徴情報種別（例えば、指紋における分岐点、端点など））に基づいてサーバ側ワンタイムパスワードを生成し、そのハッシュ値を計算する（ステップＳ３０２）。特徴情報からのワンタイムパスワード生成には、例えば、所定の条件テーブルを用いた符号化を使用することができる。
本実施の形態における条件テーブルは、例えば指紋の模様を符号化する場合に用いられるものであり、指紋の模様と任意に指定されたベクトルとの交差角と符号との対応を示すものである。より詳しくは、ベクトルと指紋の模様とのなす角度が０〜４５°の場合は符号化情報をＡとし、角度が４５〜９０°の場合は符号化情報をＢとし、角度が９０〜１３５°の場合は符号化情報をＣとし、角度が１３５〜１８０°の場合は符号化情報をＤとする、といった関連を示すテーブルである。
【００３４】
なお、本実施の形態では、指紋の模様とベクトルとの交点（接点）の座標は画像の周辺より１０ピクセル以上離れ、画像品質が一定以上となるようにする。即ち、指紋の模様とベクトルとの交点（接点）の座標と画像の周辺との距離が１０ピクセルより小さい場合には、新たに別のベクトルを指定し、符号化を試みることとする。
【００３５】
次いで、サーバ１００は、例えば特徴情報として６個あったうちの３個が中心位置より距離が遠い場合や、生体情報の提示方法によって当該特徴情報が読み取りにくくなる可能性があるなどという問題や上述した条件テーブルを参照して「揺らぎやすいパターン」を推測するなどして、こうした問題のあるパターンをなるべく排除するようにして、適切なハッシュ値Ｓ１〜Ｓ３を複数個特定する。そして、特定したハッシュ値Ｓ１〜Ｓ３と乱数ａ１〜ａ３とから鍵交換プロトコル用データＷｂ１〜Ｗｂ３を計算し、計算結果を、ワンタイムパスワードの生成を促す指定データの一部に含んでクライアントへ送信する（ステップＳ３０３）。
【００３６】
ここで「揺らぎやすいパターン」について説明する。「揺らぎやすいパターン」は、例えば、上述の条件テーブルに従って符号化を行ったものとすると、符号化した情報が“ＡＢＣ”であった場合で、ＡとＢに符号化されている指紋の模様とベクトルとのなす角が４５°に近かった場合、画像のスキャニングの状況によっては、“ＡＡＣ”又は“ＢＢＣ”となってしまう可能性があり、本実施の形態では、このような可能性を秘めたパターン（模様＆ベクトル）を「揺らぎやすいパターン」と認定する。サーバ１００は、「揺らぎやすいパターン」をなるべく排除するようにして複数候補のハッシュ値Ｓ１〜Ｓ３を特定する。
【００３７】
図４は、ステップＳ１０４の詳細な処理の第１段階を示している。図４において、クライアント２００は、まず、乱数ｂの生成を行う（ステップＳ４０１）。乱数ｂの生成は、例えば、生体情報の特徴情報以外のランダム性の高い要素を乱数シードとして行われる。
【００３８】
クライアント２００は、乱数生成の一方で、ステップＳ１０２において取り込まれた指紋の画像データから領域情報に従って特徴情報を抽出し、抽出した特徴情報がステップＳ１０３において受信した要求品質の条件を満たしているかを確認する（ステップＳ４０２）。要求品質を満たしていなかった場合はステップＳ１０２に戻り、再度スキャニングを行って、領域情報に従った特徴情報の抽出を行う。
なお、図２では、ステップＳ１０２におけるスキャナによる画像取り込みをサーバ１００からの領域情報を待たずに行っているが、サーバ１００から領域情報を受け取った後に部分画像データに該当する部分だけスキャニングすることとしても良い。
【００３９】
次いで、クライアント２００は、スキャニングした領域情報に従って抽出した特徴情報に基づいてクライアント側ワンタイムパスワードを生成し、そのハッシュ値Ｃを計算する（ステップＳ４０３）。更に、クライアント２００は、ハッシュ値Ｃと乱数ｂから鍵交換プロトコル用のデータＷａを計算し、サーバ１００に送信する（ステップＳ４０４）。
【００４０】
また、クライアント２００は、サーバ１００からサーバ側の鍵交換プロトコル用データＷｂ１〜Ｗｂ３を受信すると（ステップＳ４０５）、自己の生成した鍵交換プロトコル用データＷａと受信したデータＷｂ１〜Ｗｂ３とから鍵交換共有データＷａ×Ｗｂ１、Ｗａ×Ｗｂ２、Ｗａ×Ｗｂ３を生成する（ステップＳ４０６）。この鍵交換共有データがいわゆる共有秘密（Ｓｈａｒｅｄ  Ｓｅｃｒｅｔ）である。
【００４１】
その後、クライアント２００は、生成した鍵交換共有データＷａ×Ｗｂ１、Ｗａ×Ｗｂ２、Ｗａ×Ｗｂ３のハッシュ値を計算し、クライアント確認データとして一つずつサーバ１００に対して送信する（ステップＳ４０７）。例えば、クライアント２００は、まず鍵交換共有データＷａ×Ｗｂ１のハッシュ値をクライアント確認データとしてサーバ１００に対して送信する。これにより、サーバ１００側がクライアント２００を確認できれば次の処理に進めるがそうでない場合には、サーバ１００側から他のクライアント確認データの送信を求められるので、その場合には、鍵交換共有データＷａ×Ｗｂ２のハッシュ値をクライアント確認データとしてサーバ１００側に送る。このようにして、サーバ１００からのリクエストがあった場合には、鍵交換共有データを順々に変えてクライアント確認データを送る。
【００４２】
サーバ１００は、図５に示される第２段階において、クライアント２００から鍵交換プロトコル用データＷａを受信すると（ステップＳ５０１）、受信した鍵交換プロトコル用データＷａと自己の生成した鍵交換プロトコル用データＷｂ１〜Ｗｂ３とから鍵交換共有データＷａ×Ｗｂ１、Ｗａ×Ｗｂ２、Ｗａ×Ｗｂ３を生成する（ステップＳ５０２）。このようにして、サーバ１００側でも共有秘密の生成が行われる。
【００４３】
次いで、サーバ１００は、クライアント２００からクライアント確認データを受信すると（ステップＳ５０３）、自己の生成した鍵交換共有データのハッシュ値と一致するかを確認することにより、クライアント確認データのチェックを行う（ステップＳ５０４）。
【００４４】
ステップＳ５０４におけるクライアント確認データのチェックで問題がなかった場合、サーバ１００は、自己の生成した鍵交換共有データのハッシュ値を求め、それをサーバ確認データとしてクライアントに送信する（ステップＳ５０５）。クライアントに送信するサーバ確認データは、確認のとれた鍵交換共有データ（Ｗａ×Ｗｂ１、Ｗａ×Ｗｂ２、Ｗａ×Ｗｂ３のいずれか一つ）に基づいて生成されたものとする。
なお、サーバ１００側における確認データ生成（ステップＳ５０５）及びクライアント２００側における確認データ生成（ステップＳ４０７）では、ハッシュ値の算出以外の方法を採用することとしてもよい。
【００４５】
他方、ステップＳ５０４におけるクライアント確認データのチェックで問題ありと判断した場合、ステップＳ３０３において抽出したハッシュ値の候補数（本実施の形態においてはハッシュ値Ｓ１〜Ｓ３の３つ）のすべてについてチェックを終えたか否かを判定する（ステップＳ５０６）。実際には、候補数に相当する数だけ確認データのチェックを行ったとすると、すべての鍵交換共有データについて検討したこととなるので、単に候補数に相当する数を超えた（ＮＧ）か超えてない（ＯＫ）かをチェックする。
【００４６】
ステップＳ５０６において、まだチェックすべき候補がある場合には、クライアント２００に対して未チェックの鍵交換供給データに基づくクライアント確認データの送信を求める。一方、ステップＳ５０６において、もうチェックすべき候補がない場合には、クライアント２００に対してエラーを通知し、本セッションを閉じるべく、中間データ（乱数等）の消去を行う。クライアント２００は、このエラー通知を受けて、同様に、中間データの消去を行う（図示省略）。
【００４７】
図６に示されるように、クライアント２００は、サーバ１００からサーバ確認データを受信すると（ステップＳ６０１）、確認データのチェックを行う（ステップＳ６０２）。ステップＳ６０２において確認データのチェックに失敗した場合、クライアント２００は、サーバ１００に対してエラー通知を行い、本セッションを閉じるべく、中間データ（乱数等）の消去を行う。サーバ１００は、このエラー通知を受けて、同様に、中間データの消去を行う（図示省略）。
【００４８】
一方、ステップＳ６０２において確認データのチェックに成功した場合、領域情報で特定された部分の特徴情報を共有鍵で暗号化し、サーバ１００へ送信する（ステップＳ６０４）。本実施の形態においては、確認のとれた確認データ、即ち、共有秘密のハッシュ値を共有鍵とするが、サーバ１００との了解がとれている限り、共有秘密そのものを共有鍵としても良い。
【００４９】
図７に示されるように、サーバ１００は、クライアント２００から暗号化された特徴情報を受信すると（ステップＳ７０１）、共有鍵で復号して（ステップＳ７０２）、特徴情報の検証を行う（ステップＳ７０３）。ステップＳ７０３における検証の結果、ＯＫであった場合には、サービスを許可し（ステップＳ７０４）、一連のサービスが終わった場合には、生成した鍵や鍵生成に用いた乱数並びに部分画像データ及び領域情報などを削除する。クライアント２００側でも同様に、一連のサービスが終わった場合、関連情報を削除する。
【００５０】
一方、ステップＳ７０３における検証の結果、ＮＧであった場合には、サービスを許可しないこととし（ステップＳ７０５）、その旨の通知をクライアント２００に対して行うとともに、生成した鍵や鍵生成に用いた乱数並びに部分画像データ及び領域情報などを削除する。当該通知を受けたクライアント２００側でも同様に、関連情報を削除する。
【００５１】
なお、本実施の形態において、特徴情報が複数ある場合は、一方を鍵交換用、他方をパターンマッチング用（鍵交換後の処理用）として使い分けても良い。また、条件テーブルを複数種用意しておき、セッション毎に使用する条件テーブルを変更するなどして、セッション毎に異なる符号化方法にて特徴情報を符号化することとしても良い。
また、本実施の形態では、部分特徴データとして、乱数、部分画像データ、領域情報などを用いた場合の例を説明したが、特徴情報の種類によっては、時間や頻度などの他のパラメータを指定しても良い。また、生体特徴のみならず、人の行動や人の周りにあるコンテキスト情報などを特徴データとして用いても良い。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施の一形態による情報処理システムの構成を概略的に示すブロック図。
【図２】本発明の実施の形態によるワンタイムパスワード生成方法及び鍵交換処理方法の概略を示す図。
【図３】図２に示されるステップＳ２０４の第１段階処理を示す図。
【図４】図２に示されるステップＳ１０４の第１段階処理を示す図。
【図５】図２に示されるステップＳ２０４の第２段階処理を示す図。
【図６】図２に示されるステップＳ１０４の第２段階処理を示す図。
【図７】図２に示されるステップＳ２０４の第３段階処理を示す図。
【符号の説明】
【００５３】
１００        サーバ
１１０        ＣＰＵ
１２０        主記憶部
１３０        補助記憶部
１３５        データベース
１４０        Ｉ／Ｏ制御部
１５０        送受信部
２００        クライアント
２１０        ＣＰＵ
２２０        主記憶部
２３０        補助記憶部
２４０        Ｉ／Ｏ制御部
２４５        スキャナ
２５０        送受信部
３００        ネットワーク
【図１】
0004818702.tif 000002
【図２】
0004818702.tif 000003
【図３】
0004818702.tif 000004
【図４】
0004818702.tif 000005
【図５】
0004818702.tif 000006
【図６】
0004818702.tif 000007
【図７】
0004818702.tif 000008