(57)【特許請求の範囲】
【請求項１】
クライアント装置とサーバ装置との間に、該クライアント装置の要求を代理で行うエージェント装置が介在し、該サーバ装置に対して前記エージェント装置が代理で前記クライアント装置の認証処理を行う代理認証方式において、
前記クライアント装置は、前記サーバ装置が乱数ｕを用いて求めた値ｚを受信し、サーバ装置に対する引き継ぎ情報として、該値ｚと、自分の秘密鍵ｘと、自分の乱数ｒと、時限情報ｓとを含むデータを用いて作成した認証情報(Auth）を、前記エージェント装置に代理認証を依頼するために作成し、該認証情報(Auth）、ｇｒｍｏｄｐ（ｇは正の整数、ｍｏｄはモジュロ、ｐは素数、ｒは乱数であり、ｇとｐは公開されている）、および前記時限情報ｓのデータ〈ｓ〉を前記エージェント装置に送信し、
前記エージェント装置は前記認証情報(Auth)と自分の秘密鍵ｙとを含むデータを用いて第１の共通鍵Ｋshare を作成し、前記時限情報ｓのデータ〈ｓ〉および認証のためのメッセージｍを前記サーバ装置に送信し、
前記サーバ装置は前記クライアント装置とエージェント装置の公開鍵、前記乱数ｕおよび時限情報ｓを含むデータを用いて第２の共通鍵Ｋ'shareを作成し、前記エージェント装置が、第１の共通鍵Kshareを用いて作成した、サーバ装置に提示するHash( Kshare,ｍ)を、サーバ装置が独自に作成した第２の共通鍵Ｋ'shareを用いて作成したHash( Ｋ'share，ｍ）を用いて検証することにより、正当な代理認証が行なわれたかどうかを判断することを特徴とする代理認証方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は代理認証方式に関し、特に、利用者（クライアント）が、サービス提供者（サーバ）からネットワークを介して提供される電子ショッピング、情報検索、有料放送などの種々の通信サービスを享受するクライアント・サーバ型ネットワーク等における代理認証方式に関する。
【０００２】
【従来の技術】
クライアントとサーバの間にエージェントが介在する通信における、従来のサーバとクライアント認証の方法の一つとしては、エージェントは認証処理を行なわず、クライアントとサーバ間の電文の授受を単に中継するだけであり、クライアントとサーバのみが認証処理を行なう方法である。
【０００３】
また、他の方法は、エージェントがクライアントを認証し、かつ、サーバがエージェントを認証することにより、結果的にサーバがクライアントの認証できるいわゆる、リンク―バイ―リンクの認証方法である。
【０００４】
【発明が解決しようとする課題】
前記第一の認証方法は、クライアントとサーバが通信中つねに接続されている方式であるため、クライアントはエージェントにさまざまなタスクの代理実行を依頼したのち、クライアントとエージェントの通信を切断し、エージェントがサーバに対して様々な処理をクライアントの代理で依頼するという従来のエージェントの利点が活かせなくなるという問題がある。また、前記第２の認証方法は、エージェントがクライアントを認証し、かつ、サーバがエージェントを認証することにより、結果的にサーバがクライアントの認証を行なうため、サーバはクライアントを直接認証しているのではなく、エージェントがクライアントを認証しているという事象をサーバが信用することによりクライアントの認証が成立しているため、作為などでエージェントがクライアントを認証していないにもかかわらず認証したようにサーバに対して振舞うと、サーバはクライアントを誤認証してしまうという問題があった。
【０００５】
本発明の目的は、前記した従来技術の問題点を解消し、クライアントとサーバ装置の間に、クライアントの要求を代理で行なうエージェント装置が介在する構成において、サーバ装置に対してエージェント装置が代理でクライアントの認証処理を行なう際に、クライアントはエージェントにさまざまなタスクの代理実行を依頼したのち、クライアントとエージェントの通信を切断し、エージェントがサーバに対して様々な処理を依頼するという従来のエージェントの利点が認証処理の際にも有効であるとともに、エージェント装置の不正な振る舞いにより、不正なクライアントをサーバが誤認証することがない代理認証方式を提供することにある。
【０００６】
【課題を解決するための手段】
前記した目的を達成するために、本発明は、クライアント装置とサーバ装置との間に、該クライアント装置の要求を代理で行うエージェント装置が介在し、該サーバ装置に対して前記エージェント装置が代理で前記クライアント装置の認証処理を行う代理認証方式において、前記クライアント装置は、前記サーバ装置が乱数ｕを用いて求めた値ｚを受信し、サーバ装置に対する引き継ぎ情報として、該値ｚと、自分の秘密鍵ｘと、自分の乱数ｒと、時限情報ｓとを含むデータを用いて作成した認証情報(Auth）を、前記エージェント装置に代理認証を依頼するために作成し、該認証情報(Auth）、ｇｒｍｏｄｐ（ｇは正の整数、ｍｏｄはモジュロ、ｐは素数、ｒは乱数であり、ｇとｐは公開されている）、および前記時限情報ｓのデータ〈ｓ〉を前記エージェント装置に送信し、 前記エージェント装置は前記認証情報(Auth)と自分の秘密鍵ｙとを含むデータを用いて第１の共通鍵Ｋshare を作成し、前記時限情報ｓのデータ〈ｓ〉および認証のためのメッセージｍを前記サーバ装置に送信し、前記サーバ装置は前記クライアント装置とエージェント装置の公開鍵、前記乱数ｕおよび時限情報ｓを含むデータを用いて第２の共通鍵Ｋ'shareを作成し、前記エージェント装置が、第１の共通鍵Kshareを用いて作成した、サーバ装置に提示するHash( Kshare,ｍ)を、サーバ装置が独自に作成した第２の共通鍵Ｋ'shareを用いて作成したHash( Ｋ'share，ｍ）を用いて検証することにより、正当な代理認証が行なわれたかどうかを判断するようにした点に特徴がある。
【０００７】
この特徴によれば、エージェント装置はクライアント装置が作成した認証情報(Auth)を引継ぎ情報として利用するため、エージェント装置は独自でクライアント装置のための正当な認証情報(Auth)を作ることができなくなる。このため、エージェント装置が不正な代理認証行為をした場合に、サーバ装置がユーザ端末を誤認証することを防止できる。
【０００８】
また、時限情報によって指定される有効期限内のみ、代理認証が成立するようにすることができる。
【０００９】
【発明の実施の形態】
以下に、図面を参照して、本発明を詳細に説明する。本発明では、図１に示されているように、ユーザ端末（クライアント装置）１とサーバ装置（計算機）３との間にエージェント装置（代理人）２が配置されており、ユーザ端末１は、秘密鍵の入った認証情報（Auth) を作成し、エージェント装置２に送る。該エージェント装置２はユーザ端末１から受信した認証情報(Auth)を引継ぎ情報として利用することで、サーバ装置３に対してユーザ端末１の認証を代理する。
【００１０】
以下に、該認証方法の一実施形態を図２のタイミングチャートを参照して詳細に説明する。なお、以下では、エージェント装置２、サーバ装置３を、それぞれエージェント２、サーバ３と呼ぶことにする。
【００１１】
まず、前提条件について説明する。ユーザ端末１に関しては、秘密鍵をｘ（ｘ：０＜ｘ＜ｑ−１）、公開鍵をＰx とし、Ｐx ＝ｇxmod ｐとする。ここに、ｇはある正の整数、mod はモジュロ、ｐは素数、ｑは（ｐ−１）／ｑが整数となるｐより小さい素数であり、該ｇとｐは公開されているとする。公開鍵Ｐx は、ｇxをｐで割算した余りを表す。エージェント（代理人）２に関しては、秘密鍵をｙ（ｙ：０＜ｙ＜ｑ−１）、公開鍵をＰy とし、Ｐy ＝ｇymod ｐとする。また、サーバ３においては、ユーザ端末１、エージェント２の前記公開鍵Ｐx 、Ｐy 、前記整数ｇ、およびｐは既知であり、ユーザ端末１においては、エージェント２の前記公開鍵Ｐy は既知であるとする。
【００１２】
次に、本実施形態の認証方法を説明する。まず、サーバ３は、乱数ｕ（ｕ：０＜ｕ＜ｑ−１）を選択する。次に、サーバ３は、該乱数ｕを用いて、ｚ＝ｇumodｐを演算する。続いて、サーバ３は、該ｚをエージェント２に送信する。エージェント２は該ｚを受信すると、これをユーザ端末１に送信する。
【００１３】
ユーザ端末１は該ｚを受信すると、ｓ＝Hash(Time stamp ‖有効期限) mod ｑを演算する。ここに、ｓはユーザ端末１が指定する時限情報である。また、Hash( ) は一方向性ハッシュ関数であり、既知の関数である。また、「Time stamp」は現在の時刻情報を表し、「有効期限」は認証情報の有効時間を表す。例えば、有効期限＝１０分とする。「‖」はデータの結合を表す。ユーザ端末１はまた乱数ｒ（ｒ：０＜ｒ＜ｑ−１）を選択する。
【００１４】
次に、ユーザ端末１は、前記ｓと乱数ｒと秘密鍵ｘを用いて、認証情報Authを下記のように作成する。
Auth＝ｚsx／Ｐyr
【００１５】
この認証情報Authには、ユーザ端末１の秘密鍵ｘが含まれているから、該認証情報Authはユーザ端末１のみしか作れない情報である。なお、該認証情報Authの演算はモジュロ演算であるが、説明を分かりやすくするために、モジュロ演算部分は省略されている。以下の説明でも同様である。
【００１６】
次に、該認証情報Auth、ｇrmod ｐ、および＜ｓ＞のデータは、ユーザ端末１からエージェント２に送信される。ここに、＜ｓ＞は、＜Time stamp‖有効期限＞を表す。
【００１７】
次に、エージェント２は、認証情報Auth×ｇryを演算し、その演算結果であるｚsxを得る。次いで、エージェント２は、該ｚsxを用いて、共通鍵Ｋshare を、下記の(1) 式の演算から求める。
Ｋshare ＝ｚsx・ｚy  …(1)
【００１８】
この共通鍵Ｋshare は、ユーザ端末１の秘密鍵ｘとエージェント２の秘密鍵ｙとを含んでいるから、正しいユーザ端末１からデータの送信を受けたエージェント２のみにしか作れない情報である。換言すれば、エージェント２は、ユーザ端末１からデータを受けることなく、該共通鍵Ｋshare を作ることはできない。さらに言えば、エージェント２がユーザ端末１の正しい代理人でなければ、該共通鍵Ｋshare を作ることはできない。
【００１９】
続いて、エージェント２は、前記＜ｓ＞、認証のためのメッセージであるｍ、およびHash( Ｋshare,ｍ) をサーバ３に送信する。
【００２０】
一方、サーバ３は、エージェント２から受信した前記データ＜ｓ＞から公開されたハッシュ関数を用いてs を下記の計算式から求める。
ｓ＝Hash（＜ｓ＞）
【００２１】
上記の演算結果から得られたｓと、自分が保持しているデータのみから、共通鍵Ｋ'shareを下記の(2) 式の演算から作成することができる。
Ｋ'share＝Ｐyu×Ｐxus   …(2)
この(2) 式の演算を進めると次のようになる。
Ｋ'share＝Ｐyu×Ｐxus
＝ｇyu・ｇxus
＝（ｇu）y・（ｇu）sx
＝ｚy・ｚsx
つまり、Ｋ'share＝(1) 式のＫshare となるから、前記(2) 式の右辺は共通鍵を表していることになる。
【００２２】
そこで、サーバ３は、前記(2) 式の右辺の演算を行って共通鍵Ｋ'shareを求め、エージェント２から得たメッセージｍを用いて、Hash( Ｋ'share，ｍ）を求める。そして、該Hash( Ｋ'share，ｍ）がエージェント２から送られてきたHash( Ｋshare,ｍ) と等しいか否かの検査をする。
【００２３】
この検査の結果、Hash( Ｋ'share，ｍ）＝Hash( Ｋshare,ｍ) であれば、エージェント２が作成した共通鍵Ｋshare は正当であり、エージェント２はユーザ端末１を正しく代理しており、サーバ３はユーザ端末１を正当に認証したことになる。しかし、Hash( Ｋ'share，ｍ）がHash( Ｋshare,ｍ) に等しくなければ、エージェント２が作成してサーバ３に送付した共通鍵Ｋshare は正当な共通鍵でないから、サーバ３はエージェント２がユーザ端末１を正しく代理していないことがわかる。
【００２４】
以上の説明から、本実施形態の認証方式によれば、ユーザ端末とサーバとの間にエージェントが介在している場合において、サーバは該エージェントがユーザ端末を正しく代理しているかいないかを簡単に検査することができるようになる。また、たとえエージェントが不正な代理認証行為をしたとしても、サーバはユーザ端末を誤認証することがなくなる。
【００２５】
【発明の効果】
以上の説明から明らかなように、本発明によれば、クライアント装置は、エージェント装置に代理認証を依頼するために、サーバ装置に対する認証情報(Auth)を作成し、該エージェント装置は該認証情報を引継ぎ情報として利用するようにしたので、該エージェント装置が不正な代理認証行為をした場合に、サーバ装置がユーザ端末を誤認証することを防止できる。
【００２６】
また、本発明は、前記認証情報は前記クライアント装置が指定する時限情報を含むようにしたので、該時限情報によって指定される有効期限内でのみ、代理認証が成立し、該有効期限を越えた時に代理認証が成立しなくなるようにすることができる。
【図面の簡単な説明】
【図１】  本発明が適用される系のシステム図である。
【図２】  本発明の一実施形態の動作を説明するタイミングチャートである。
【符号の説明】
１…ユーザ端末装置、２…エージェント装置、３…サーバ装置。
【図１】
0004761336.tif 000002
【図２】
0004761336.tif 000003