(57)【特許請求の範囲】
【請求項１】
クライアントコンピュータと、ネットワークを介して接続されているクライアントコンピュータに対してサービスを提供するサーバコンピュータとからなるコンピュータシステムであって、
サーバコンピュータは、
該サーバコンピュータが提供するサービス毎に割り当てられた公開鍵を記憶する公開鍵記憶部と、
クライアントコンピュータからのサービス要求を受けた際に、サーバコンピュータからクライアントコンピュータに対して送付するチャレンジを生成するチャレンジ生成部と、
クライアントコンピュータに送付されたチャレンジと、該チャレンジに対してクライアントコンピュータから送り返されたレスポンスとが所定の関係にあることを公開鍵を使って検査する利用権認証部とを備え、
クライアントコンピュータは、
当該クライアントコンピュータに割り当てられた固有演算を実行する固有演算実行部と、
要求するサービスに割り当てられた公開鍵に対応する秘密鍵と該クライアントコンピュータに割り当てられた固有演算の結果とから作成された利用権証明データを記憶する、利用権証明データ記憶部と、
サーバコンピュータから送付されたチャレンジに対して、固有演算と利用権証明データとを使用して所定の計算を実行し、レスポンスを生成するレスポンス生成部とを備え、
該クライアントコンピュータは、該サーバコンピュータが提供するサービスに対する利用権をクライアントコンピュータが保持していることをサーバコンピュータに対して証明する際に、
サーバコンピュータから送付されたチャレンジを受け取り、
レスポンス生成部で、該チャレンジと、固有演算実行部で実行される固有演算の結果と、利用権証明データ記憶部に記憶されている利用権証明データとから、レスポンスを生成し、
生成したレスポンスをサーバコンピュータに送付し、
該サーバコンピュータはクライアントコンピュータから送り返された該チャレンジに対するレスポンスを受け取り、
利用権検査部で、そのチャレンジとレスポンスとが所定の関係にあることを、公開鍵記憶部に記憶された該サービスに割り当てられた公開鍵を使用して検査し、
検査に成功した場合にのみ該サービスをクライアントコンピュータに提供することを特徴とするコンピュータシステム。
【請求項２】
ネットワークを介して接続されているサーバコンピュータに対して、サービスを要求するクライアントコンピュータであって、
クライアントコンピュータに割り当てられた固有演算を実行する固有演算実行部と、
要求するサービスに割り当てられた公開鍵に対応する秘密鍵と該クライアントコンピュータに割り当てられた固有演算の結果とから作成された利用権証明データを記憶する、利用権証明データ記憶部と、
サーバコンピュータから送付されたチャレンジに対して、固有演算の結果と利用権証明データとを使用して所定の計算を実行し、レスポンスを生成するレスポンス生成部とを備え、
該サーバコンピュータが提供するサービスに対する利用権をクライアントコンピュータが保持していることをサーバコンピュータに対して証明する際に、
サーバコンピュータから送付されたチャレンジを受け取り、
レスポンス生成部で、該チャレンジと、固有演算実行部で実行される固有演算の結果と、利用権証明データ記憶部に記憶されている利用権証明データとから、レスポンスを生成し、
生成したレスポンスをサーバコンピュータに送付することを特徴とするクライアントコンピュータ。
【請求項３】
ネットワークを介して接続されているサーバコンピュータに対して、サービスを要求するクライアントコンピュータであって、
固有演算を実行するための固有演算実行部を備える携帯型装置を接続する携帯型装置接続部と、
要求するサービスに割り当てられた公開鍵に対応する秘密鍵と該携帯型装置に割り当てられた固有演算の結果とから作成された利用権証明データを記憶する、利用権証明データ記憶部と、
サーバコンピュータから送付されたチャレンジに対して、固有演算の結果と利用権証明データとを使用して所定の計算を実行し、レスポンスを生成するレスポンス生成部とを備え、
該サーバコンピュータが提供するサービスに対する利用権をクライアントコンピュータが保持していることをサーバコンピュータに対して証明する際に、
サーバコンピュータから送付されたチャレンジを受け取り、
レスポンス生成部で、該チャレンジと、携帯型装置接続部に接続された携帯型装置が持つ固有演算実行部で実行される固有演算の結果と、利用権証明データ記憶部に記憶されている利用権証明データとから、レスポンスを生成し、
生成したレスポンスをサーバコンピュータに送付することを特徴とするクライアントコンピュータ。
【請求項４】
クライアントコンピュータと、ネットワークを介して接続されているクライアントコンピュータに対してサービスを提供するサーバコンピュータとからなるコンピュータシステムであって、
サーバコンピュータは、
該サーバコンピュータが提供するサービス毎に割り当てられた公開鍵を記憶する公開鍵記憶部と、
クライアントコンピュータからのサービス要求を受けた際に、サーバコンピュータからクライアントコンピュータに対して送付するチャレンジを生成するチャレンジ生成部と、
クライアントコンピュータに送付されたチャレンジと、該チャレンジに対してクライアントコンピュータから送り返されたレスポンスと、クライアントコンピュータの利用権を証明するための利用権証明データとが所定の関係にあることを、公開鍵を使って検査する利用権検査部とを備え、
クライアントコンピュータは、
該クライアントコンピュータに割り当てられた固有演算を実行する固有演算実行部と、
要求するサービスに割り当てられた公開鍵に対応する秘密鍵と該クライアントコンピュータに割り当てられた固有演算の結果とから作成された利用権証明データを記憶する、利用権証明データ記憶部と、
サーバコンピュータから送付されたチャレンジに対して、固有演算の結果を使用して所定の計算を実行し、レスポンスを生成するレスポンス生成部とを備え、
該サーバコンピュータが提供するサービスに対する利用権をクライアントコンピュータが保持していることをサーバコンピュータに対して証明する際に、
サーバコンピュータから送付されたチャレンジを受け取り、
レスポンス生成部で、該チャレンジと、固有演算実行部で実行される固有演算の結果とから、レスポンスを生成し、
生成したレスポンスと、利用権証明データ記憶部に記憶されている利用権証明データとをサーバコンピュータに送付し、
該サーバコンピュータは、クライアントコンピュータからそれぞれ送り返された、該チャレンジに対するレスポンスと、該サービスに対するクライアントコンピュータの利用権を証明するための利用権証明データとを受け取り、
利用権検査部で、該チャレンジと該利用権証明データと該レスポンスとが所定の関係にあることを、公開鍵記憶部に記憶されている該サービスに割り当てられた公開鍵を使用して検査し、
検査に成功した場合にのみ該サービスをクライアントコンピュータに提供することを特徴とするコンピュータシステム。
【請求項５】
ネットワークを介して接続されているサーバコンピュータに対して、サービスを要求するクライアントコンピュータであって、
クライアントコンピュータに割り当てられた固有演算を実行する固有演算実行部と、
要求するサービスに割り当てられた公開鍵に対応する秘密鍵と該クライアントコンピュータに割り当てられた固有演算の結果とから作成された利用権証明データを記憶する、利用権証明データ記憶部と、
サーバコンピュータから送付されたチャレンジに対して、固有演算の結果を使用して所定の計算を実行し、レスポンスを生成するレスポンス生成部とを備え、
該サーバコンピュータが提供するサービスに対する利用権をクライアントコンピュータが保持していることをサーバコンピュータに対して証明する際に、
サーバコンピュータから送付されたチャレンジを受け取り、
レスポンス生成部で、該チャレンジと、固有演算実行部で実行される固有演算の結果とから、レスポンスを生成し、
生成したレスポンスと、利用権証明データ記憶部に記憶されている利用権証明データとをサーバコンピュータに送付することを特徴とするクライアントコンピュータ。
【請求項６】
ネットワークを介して接続されているサーバコンピュータに対して、サービスを要求するクライアントコンピュータであって、
固有演算を実行するための固有演算実行部を備える携帯型装置を接続する携帯型装置接続部と、
要求するサービスに割り当てられた公開鍵に対応する秘密鍵と該携帯型装置に割り当てられた固有演算の結果とから作成された利用権証明データを記憶する、利用権証明データ記憶部と、
サーバコンピュータから送付されたチャレンジに対して、固有演算の結果を使用して所定の計算を実行し、レスポンスを生成するレスポンス生成部とを備え、
該サーバコンピュータが提供するサービスに対する利用権をクライアントコンピュータが保持していることをサーバコンピュータに対して証明する際に、
サーバコンピュータから送付されたチャレンジを受け取り、
レスポンス生成部で、該チャレンジと、携帯型装置接続部に接続された携帯型装置が持つ固有演算実行部で実行される固有演算とから、レスポンスを生成し、
生成したレスポンスと、利用権証明データ記憶部に記憶されている利用権証明データとをサーバコンピュータに送付することを特徴とするクライアントコンピュータ。
【請求項７】
請求項３または６記載のクライアントコンピュータであって、利用権証明データ記憶部が、携帯型装置接続部で接続される携帯型装置に含まれることを特徴とするクライアントコンピュータ。
【請求項８】
請求項１または４記載のコンピュータシステムであって、
該サーバコンピュータが、クライアントコンピュータに対してＷｅｂアプリケーションを提供するＷｅｂサーバコンピュータであって、
クライアントコンピュータに対して提供する個々のＷｅｂページに対して公開鍵記憶部に記憶されている公開鍵が割り当てられており、
クライアントコンピュータからＷｅｂページに対してアクセスの要求があった際に、該Ｗｅｂページに対するクライアントコンピュータの利用権を、該Ｗｅｂページに対して割り当てられている公開鍵を使用して検査することを特徴とするコンピュータシステム。
【請求項９】
請求項１または４記載のコンピュータシステムであって、
該サーバコンピュータが、クライアントコンピュータに対してＷｅｂアプリケーションを提供するＷｅｂサーバコンピュータであって、
クライアントコンピュータに対して提供するＷｅｂページの集合に対して公開鍵記憶部に記憶されている公開鍵が割り当てられており、
クライアントコンピュータからＷｅｂページに対してアクセスの要求があった際に、該Ｗｅｂページに対するクライアントコンピュータの利用権を、該Ｗｅｂページが属するＷｅｂページの集合に対して割り当てられている公開鍵を使用して検査することを特徴とするコンピュータシステム。
【請求項１０】
クライアントコンピュータが、ネットワークを介して接続されているサーバコンピュータに対してサービスを要求する際に、要求するサービスに対する利用権を所持していることをサーバコンピュータに対して証明する方法であって、
クライアントコンピュータは、
該クライアントコンピュータに割り当てられた固有演算を実行する固有演算実行部と、
要求するサービスに割り当てられた公開鍵に対応する秘密鍵と該クライアントコンピュータに割り当てられた固有演算の結果とから作成された利用権証明データを記憶する、利用権証明データ記憶部と、
サーバコンピュータから送付されたチャレンジに対して、固有演算の結果と利用権証明データとを使用して所定の計算を実行し、レスポンスを生成するレスポンス生成部とを備え、
サーバコンピュータから送付されたチャレンジを受け取るステップと、
上記固有演算実行部により、該クライアントコンピュータにに割り当てられた固有の演算を実行するステップと、
レスポンス生成部により、サーバコンピュータから送付されたチャレンジと、固有の演算の結果と、前記利用権証明データとからレスポンスを作成するステップと、
レスポンスをサーバコンピュータに送付するステップとを有することを特徴とす利用権証明方法。
【請求項１１】
クライアントコンピュータが、ネットワークを介して接続されているサーバコンピュータに対してサービスを要求する際に、要求するサービスに対する利用権を所持していることをサーバコンピュータに対して証明する方法であって、
クライアントコンピュータは、
クライアントコンピュータに割り当てられた固有演算を実行する固有演算実行部と、
要求するサービスに割り当てられた公開鍵に対応する秘密鍵と該クライアントコンピュータに割り当てられた固有演算の結果とから作成された利用権証明データを記憶する、利用権証明データ記憶部と、
サーバコンピュータから送付されたチャレンジに対して、固有演算の結果を使用して所定の計算を実行し、レスポンスを生成するレスポンス生成部とを備え、
サーバコンピュータから送付されたチャレンジを受け取るステップと、
上記固有演算実行部により、該クライアントコンピュータに割り当てられた固有の演算を実行するステップと、
上記レスポンス生成部により、サーバコンピュータから送付されたチャレンジと、固有の演算の結果とからレスポンスを作成するステップと、
レスポンスと前記利用権証明データとをサーバコンピュータに送付するステップとを有することを特徴とする利用権証明方法。
【発明の詳細な説明】
【０００１】
【発明の属する利用分野】
この発明は、ネットワークを介して接続されているクライアントに対してサービスを提供するサーバが、サービスに対する正当な利用権をクライアントが持つことを認証するための利用権認証技術に関する。
【０００２】
【従来の技術】
ネットワークを介して接続されているクライアントに対してサービスを提供するサーバの多くが、クライアントにサービスを提供する際に、そのサービスを提供して良いクライアントであるかどうか、あるいは、サービスを提供して良いユーザが利用中のクライアントであるかどうかを判断するための仕組みを持っている。この仕組みをクライアント認証と呼ぶことにする。
【０００３】
たとえば、米国マイクロソフト社（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）発行「Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  ＩｎｆｏｒｍａｔｉｏｎＳｅｒｖｅｒリソースキット」（「Ｍｉｃｒｏｓｏｆｔ」は米国マイクロソフト社の商標である）ｐ．３５３−３５９には、米国マイクロソフト社が提供するＩｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ  （以降ＩＩＳと略記）が持つクライアント認証の機能について記載されている。
【０００４】
ＩＩＳでは、基本認証とよばれるクライアント認証の仕組みを持っている。
【０００５】
基本認証では、クライアントを使用してサーバにアクセスするユーザにはアカウントが割り当てられる。また、サーバ上のファイルには、そのファイルにアクセス可能なユーザのアカウントが決められる。
【０００６】
クライアントからサーバに対して、サーバ中のファイルの要求があった場合、サーバは、ユーザに対してユーザＩＤとパスワードの入力を要求する。入力されたユーザＩＤとパスワードから、ユーザのアカウントを特定し、さらに要求されたファイルにアクセス可能なアカウントであるかどうかが調べられ、アクセス可能であった場合にのみ、要求したファイルがクライアントに対して提供される。
【０００７】
ＩＩＳの基本認証のような方式はきわめて一般的である。インターネット、イントラネットを問わず、Ｗｅｂを使ったアプリケーションでは、使用できるユーザを限定する際には、必ずといっていいほど使用されている。
【０００８】
【発明が解決しようとする課題】
ＩＩＳの基本認証のように、ユーザのアカウントを使ったクライアント認証には、次の２つの問題がある。
（１）ユーザアカウントの管理がサーバにもたらす負荷。
（２）サーバに対してユーザの匿名性が保証されないこと。
【０００９】
これらの問題について、以下により詳細に説明する。
【００１０】
ユーザのアカウントを使ったクライアント認証では、サーバがユーザのアカウントを特定できることが必須である。これは、サーバがユーザのアカウントを管理することが必要であることを意味する。このために、サーバはユーザのアカウントを管理するＤＢ（データベース）を持つことが必要になる。このＤＢはアカウントの増減に応じて日々修正されなければならず、その維持・運営コストはばかにならない。
【００１１】
多くのサーバで同一のクライアント認証を行う場合には、ユーザのアカウントを管理するメインのサーバ（アカウントサーバ）を設けて、個々のサーバがそこに問い合わせるという方式をとることになる。この方式では、個々のサーバとアカウントサーバとの間の通信コストやセキュリティのが問題になる。
【００１２】
さらに、ユーザはサーバに対して、自己のアカウントを明確にすることが必須となる。これは、ユーザ毎のサービスの利用履歴がサーバ側に知られてしまうことを意味する。収集された個人情報の悪用の事例が後をたたない昨今の世情を考えれば、ユーザにとって大きなリスクを負わせている方法であることがわかる。
【００１３】
【課題を解決するための手段】
クライアント認証において、ユーザのアカウントを特定することは、実は必須ではない。クライアント認証が行いたいのは、サービスを要求しているクライアント、あるいはそのクライアントのユーザに対して、サービスを提供してよいかどうかの判断のみである。ユーザのアカウントを特定しているのは、あくまで手段であって、それが目的ではない。
【００１４】
本発明では、サーバがクライアントに提供するサービスに対して公開鍵がわりあてられる。クライアント、あるいはそのクライアントのユーザに対して、サービスを提供するかどうかは、そのサービスに割り当てられた公開鍵を使ったチャレンジーレスポンスを行うことで判断される。
【００１５】
たとえば、公開鍵暗号アルゴリズムとしてＲＳＡ（Ｒｉｖｅｓｔ−Ｓｈａｍｉｒ−Ａｄｌｅｍａｎ）を使用する場合、ＲＳＡの公開鍵ペア（法数ｎ、公開鍵ｅ、秘密鍵ｄ）のうち、法数ｎと公開鍵ｅをサービスに割り当て、そのサービスの提供を受けることが許されるすべてのクライアントには秘密鍵ｄを渡す。
【００１６】
あるクライアントから、法数ｎと公開鍵ｅが割り当てられたサービスに対する要求があった場合、サーバはチャレンジと呼ぶ乱数値Ｃを生成し、クライアントに送付する。秘密鍵ｄを持っているクライアントは、式（１）にしたがってレスポンスを計算し、サーバに送り返す。ここで法数ｎはサーバからクライアントにチャレンジとともに送付しても良いし、秘密鍵ｄとともにクライアントに渡しておいてもよい。公開可能な情報であるので、誰でもアクセスできる別のサーバに置いておいてもよい。
【数１】
Ｒ＝  Ｃｄ  ｍｏｄ  ｎ      （１）
【００１７】
レスポンスを受けとったサーバは、クライアントに送付したチャレンジＣと、クライアントから受け取ったレスポンスＲ、サービスに割り当てられた法数ｎと公開鍵ｅとの間に、式（２）の関係が成り立つかどうかを検査する。
【数２】
Ｃ≡Ｒｅ  ｍｏｄ  ｎ      （２）
【００１８】
式（２）の関係が成り立つ場合には、クライアントに対してサービスを提供し、そうでなければサービスを提供しない。
【００１９】
この方式によれば、秘密鍵ｄが、法数ｎと公開鍵ｅを割り当てられたサービスに対するクライアントの利用権を証明するためのデータ（利用権証明データ）となる。秘密鍵ｄを持つユーザはすべて、法数ｎと公開鍵ｅを割り当てられたサービスを利用することができる。
【００２０】
同じ法数と公開鍵を割り当てられた複数のサービスは、同じ秘密鍵によって利用することが可能である。それらは、同一の利用権によって利用可能なサービス群と考えることができる。これらのサービスが同一のサーバのものであろうと、まったく異なるサーバのものであろうと、同一の利用権によって利用可能になる。逆に異なる法数と公開鍵を割り当てられた複数のサービスは、異なる利用権を必要とするものだと考えることができる。
【００２１】
この方法では、サーバは、クライアントを使用しているユーザのアカウントを特定する必要はない。ユーザアカウントのＤＢを持つ必要はないし、ユーザアカウントの特定のためにアカウントサーバにアクセスする必要もない。
【００２２】
また、ユーザアカウントがサーバに公開されることもない。それどころか、チャレンジ−レスポンスの過程でユーザを特定する情報は、サーバ側に一切に流れることがない。ユーザの匿名性は、完全に守られるのである。
【００２３】
上記の方式に使用可能な公開鍵暗号アルゴリズムは、ＲＳＡに限定されない。ＤＳＡ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ）のような署名方式を使ったチャレンジ−レスポンスを適用しても良い。また、Ｓｃｈｎｏｒｒ認証のような、チャレンジ−レスポンスの前に、コミットメントの送受信を必要とするようなアルゴリズムを使用することも可能である。
【００２４】
上記の方式の問題として、利用権を証明するデータとしてクライアントに渡される秘密鍵と法数を、他のクライアントにコピーされれば、サービスを不正に利用される危険が存在することがある。
【００２５】
この問題を解決するために、本発明では、クライアントにクライアント固有の演算（固有演算）を持たせている。また、利用権証明データは、サービスに割り当てられた法数と公開鍵に対応する秘密鍵と、固有演算から作成される。
【００２６】
たとえば、法数ｎ、公開鍵ｅ、秘密鍵ｄ、クライアントＵが持つ固有演算をｆＵ（・）とした場合、利用権証明データｔを式（３）のように作成され、クライアントＵに渡される。ここで”｜”は、ｂｉｔ連結を示している。
【数３】
ｔ＝ｄ−ｆＵ（ｎ｜ｅ）      （３）
【００２７】
クライアントＵから、法数ｎと公開鍵ｅが割り当てられたサービスに対する要求があった場合、サーバはチャレンジＣを生成し、クライアントに送付する。クライアントは、式（４）にしたがってレスポンスを計算し、サーバに送り返す。ここで法数ｎや公開鍵ｅはサーバからクライアントにチャレンジとともに送付しても良いし、利用権証明データｔとともにクライアントに渡しておいてもよい。公開可能な情報であるので、誰でもアクセスできる別のサーバに置いておいてもよい。
【数４】
0003593979.tif 000002
【００２８】
レスポンスを受けとったサーバは、クライアントに送付したチャレンジＣと、クライアントから受け取ったレスポンスＲ、サービスに割り当てられた法数ｎと公開鍵ｅとの間に、式（２）の関係が成り立つかどうかを検査する。式（２）の関係が成り立つ場合には、クライアントに対してサービスを提供し、そうでなければサービスを提供しない。
【００２９】
この方法によれば、サービスに割り当てられた利用権証明データを持つクライアント以外は、サービスを提供されることがない点で、前出の方法と同じ機能を実現している。さらに、同一のサービスに対する利用権証明データであっても、クライアント毎に異なることになるので、固有演算ｆＵ（・）の結果をクライアントのユーザがアクセスできないように守っておけば、利用権証明データをいくらコピーしても、それが不正利用につながることはないという利点がある。
【００３０】
上記の方式では、利用権証明データを用いた演算を行うのがクライアントであるが、利用権証明データを用いるのがサーバであるように構成しても同じ効果を得ることができる。この場合の手順を以下に示す。
【００３１】
クライアントＵから、法数ｎと公開鍵ｅが割り当てられたサービスに対する要求があった場合、サーバはチャレンジＣを生成し、クライアントに送付する。クライアントは、式（５）にしたがってレスポンスを計算し、利用権証明データｔとともにサーバに送り返す。
【数５】
0003593979.tif 000003
【００３２】
レスポンスを受けとったサーバは、クライアントに送付したチャレンジＣと、クライアントから受け取ったレスポンスＲと利用権証明データｔ、サービスに割り当てられた法数ｎと公開鍵ｅとの間に、式（６）の関係が成り立つかどうかを検査する。式（６）の関係が成り立つ場合には、クライアントに対してサービスを提供し、そうでなければサービスを提供しない。
【数６】
Ｃ≡ＣｔＲ  ｍｏｄ  ｎ            （６）
【００３３】
固有演算の実現方式としては、すべてのクライアントに共通の暗号学的ハッシュ関数ｆ（・）（たとえばＳＨＡ−１）とクライアント毎に異なる固有のデータｕを割り当てておき、式（５）のような演算を行うことで実現することができる。
【数７】
ｆＵ（ｘ）＝ｆ（ｘ｜ｕ）      （７）
【００３４】
また、クライアント毎に異なる固有データｕそのものを固有演算の結果として利用することも可能である。
【００３５】
サーバが提供するサービスの利用を、一定の条件下でのみクライアントが利用できるように限定したい場合に対応する場合には、利用条件を記述したデータ（利用条件データ）を利用する。たとえば、サービスが利用できる期間を限定したい場合には、利用開始日時と利用終了日時を利用条件データに記載する。
【００３６】
その上で、利用権証明データを、秘密鍵と、クライアントの固有演算と、利用条件データとから生成する。たとえば、秘密鍵ｄ、クライアントの固有演算ｆＵ（・）、利用条件データをＬとすると、利用権証明データｔを式（８）のように作成する。
【数８】
ｔ＝ｄ−ｆＵ（ｎ｜ｅ｜Ｌ）            （８）
【００３７】
ｔとＬはクライアントに渡される。
【００３８】
クライアントＵから、法数ｎと公開鍵ｅが割り当てられたサービスに対する要求があった場合、サーバはチャレンジＣを生成し、クライアントに送付する。クライアントは、まずＬに記載されている利用条件を評価し、それが満たされていれば、式（９）にしたがってレスポンスを計算して、サーバに送り返す。
【数９】
0003593979.tif 000004
【００３９】
レスポンスを受けとったサーバは、クライアントに送付したチャレンジＣと、クライアントから受け取ったレスポンスＲ、サービスに割り当てられた法数ｎと公開鍵ｅとの間に、式（２）の関係が成り立つかどうかを検査する。式（２）の関係が成り立つ場合には、クライアントに対してサービスを提供し、そうでなければサービスを提供しない。
【００４０】
この方式によれば、Ｌに記載されている利用条件を変更するとレスポンスＲの値が変わり、その結果として式（２）が成り立たなくなる。したがって、クライアントのユーザがＬを自分の有利なように書き換えることに意味がなくなる。
【００４１】
これまで説明した方式は、固有演算がクライアントに割り当てられている。利用権証明データは固有演算にあわせて作成されるので、同一のユーザが使用するのであっても、クライアントが異なれば別の利用権証明データが必要である。また、同一のクライアントを使用している複数のユーザの間で、サービスの使用を許したり許さなかったりという制御をすることも困難である。
【００４２】
このように、固有演算がクライアントに割り当てられる方式では、真にユーザにバインドした利用権制御は困難である。このような問題を解決するための解として、本発明では、固有演算部をスマートカード（演算能力付きのＩＣカード）のような携帯型の装置で実現する。ユーザはこの携帯型装置を携帯し、使用するクライアントに接続する。この方式であれば、どのクライアントを使用しても、ユーザにバインドした利用権制御が可能である。
【００４３】
本発明は、サーバ（サーバコンピュータ）、クライアント、コンピュータシステム等装置またはシステムとして実現でき、また方法としても実現でき、さらに、少なくともその一部をコンピュータプログラムとして実現できることはもちろんである。クライアントとしてはパーソナルコンピュータ、ワークステーション、携帯端末、セットトップボックス、情報家庭電気製品、インテリジェント電話機（携帯電話機も含む）等、種々の情報端末として構成することが可能である。
【００４４】
また、サーバはウェブサーバ、ＦＴＰサーバ、アプリケーションサーバ等種々のサービスを提供する種々のサーバである。
【００４５】
サーバとクライアントとの間は有線または無線のネットワークで接続可能であり、ＩＰ網、電話網、移動体通信網等種々のネットワークの形態を採ることが可能である。また、インターネット、イントラネット、エクストラネット等種々の利用環境に適用できる。Ｂｌｕｅｔｏｏｔｈ（商標）等の微弱電波を用いた通信チャネルを用いてもよい。この場合、このような微弱電波の通信機能を有する機器がクライアントとなることができる。
【００４６】
以上本発明について具体的に説明を行った。本発明の以上の具体的な構成および本発明の種々の側面については特許請求の範囲に記載され、以下、実施例を用いて詳細に説明する。
【００４７】
【発明の実施の形態】
以下、本発明の実施例について説明する。
【００４８】
［第１の実施例］
第１の実施例は、クライアントに対してＷｅｂページを提供するＷｅｂサーバと、該Ｗｅｂサーバに対してＷｅｂページを要求してＷｅｂページの提供を受けるクライアントからなる。
【００４９】
本実施例のＷｅｂサーバは、本発明を適用した利用権認証の機構をもつ。Ｗｅｂサーバが持つＷｅｂページには、必要に応じてＲＳＡ法数と公開鍵が割り当てられている。割り当てられていないＷｅｂページは、どのクライアントに対しても提供される。
【００５０】
クライアントから、ＲＳＡ法数と公開鍵が割り当てられているページに対する要求があった場合、クライアントとの間でチャレンジ−レスポンスを行うことで、クライアントがＷｅｂページに対する利用権を持つかどうかが検査される。チャレンジ−レスポンスは、Ｗｅｂページに割り当てられたＲＳＡ法数と公開鍵に対応する利用権証明データをクライアントが持っている場合のみ成功する。この検査に成功した場合にのみ、要求されたＷｅｂページがクライアントに対して提供される。
【００５１】
Ｗｅｂページに対するＲＳＡ法数と公開鍵の割り当ての方法には、いくつかのバリエーションが考えられる。各Ｗｅｂページ毎に対応するＲＳＡ法数と公開鍵を決めておいても良いし、ディレクトリ等でまとめられたＷｅｂページの集合に対してＲＳＡ法数と公開鍵を対応させ、Ｗｅｂページの集合に含まれるいずれのＷｅｂページに対する要求であっても、その集合にバインドされているＲＳＡ法数と公開鍵を使ったチャレンジ−レスポンスが行われるように構成してもよい。
【００５２】
本実施例のクライアントは、本発明を応用した利用権証明の機構を持つ。自己が要求したＷｅｂページに対して、Ｗｅｂサーバからチャンレンジが送られてきた場合、レスポンスを作成して送りかえすことができる。
【００５３】
本実施例のクライアントには、クライアント毎に異なる固有データが割り当てられている。あるＷｅｂページに対する特定のクライアントの利用権証明データは、そのＷｅｂページに割り当てられたＲＳＡ法数と公開鍵に対応する秘密鍵と、クライアントに割り当てられた固有データ、クライアントに対してＷｅｂページの利用が許される条件を記した利用条件データから作成される。利用条件データには、クライアントにＷｅｂページの利用が許される期間の開始と終了の日時が記載される。
【００５４】
たとえば、Ｗｅｂページに割り当てられたＲＳＡ法数をｎ、公開鍵をｅ、ｎとｅに対応する秘密鍵をｄ、クライアントに割り当てられた固有データをｕ、利用条件データをＬとした場合、利用権証明データｔは、式（１０）にしたがって作成される。
【数１０】
ｔ＝ｄ−ｆ（ｎ｜ｅ｜Ｌ｜ｕ）            （１０）
ここでｆ（・）はすべてのクライアントが共通に持つ暗号学的ハッシュ関数である。
【００５５】
図１は、第１の実施例におけるＷｅｂサーバの内部構成を示している。
【００５６】
Ｗｅｂサーバ１０１は、以下の部分から構成される。
【００５７】
［入出力制御部１０２］：
ネットワークを経由して届くクライアントからＷｅｂサーバへの入力と、ネットワークを経由して送られるＷｅｂサーバからクライアントへの出力を制御する。
【００５８】
［ページデータ管理部１０３］：
Ｗｅｂサーバが持つＷｅｂページを管理する。クライアントからのページの要求に対して、入出力制御部１０２を介してＷｅｂページを提供する機能を持つ。Ｗｅｂページの提供の際に、必要なら利用権認証部１０４を呼び出してクライアントが正しい利用権を持つかどうかを検査し、持っていなければＷｅｂページの提供を中止することもできる。
【００５９】
［利用権認証部１０４］：
ページデータ管理部１０３からの呼び出しに応じて、クライアントが正しい利用権を持つかどうかを検査し、その結果をページデータ管理部１０３に返す。検査の過程で、入出力制御部１０２を経由して、クライアントとの間で通信を行う。
【００６０】
利用権認証部１０４は、以下の部分から構成される。
【００６１】
［利用権認証制御部１０５］：
クライアントが正しい利用権を持つかどうかの検査全体を制御する。
【００６２】
［公開鍵管理部１０６］：
Ｗｅｂページと、そのＷｅｂページに対して割り当てられたＲＳＡ法数と公開鍵の組み合わせを記憶・管理している。
【００６３】
［チャレンジ生成部１０７］：
クライアントが利用権を持つかどうかは、Ｗｅｂサーバとクライアントの間で行われるチャレンジ−レスポンスによって検査される。チャレンジ生成部は、クライアントに送付されるチャレンジを生成する。
【００６４】
［利用権検査部１０８］：
クライアントから送付されるレスポンスが、チャレンジ生成部で生成されたチャンレンジや、クライアントから要求されているＷｅｂページに割り当てられたＲＳＡ法数や公開鍵と所定の関係にあるかどうかを判断し、出力する。
【００６５】
図２は、第１の実施例におけるクライアントの内部構成を示している。
【００６６】
クライアント２０１は、以下の部分から構成される。
【００６７】
［Ｗｅｂブラウザ２０２］：
ネットワークを経由して届くＷｅｂサーバからクライアントへの入力と、ネットワークを経由して送られるクライアントからＷｅｂサーバへの出力を制御する。Ｗｅｂページに対する要求をＷｅｂサーバに送ったり、Ｗｅｂサーバから届けられるＷｅｂページを処理するのも、Ｗｅｂブラウザ２０２の役割である。
【００６８】
［利用権証明部２０４］：
Ｗｅｂページに対するクライアントの利用権をＷｅｂサーバに対して証明する。利用権を認証するためのチャレンジが、Ｗｅｂブラウザ２０２を介してＷｅｂサーバから届けられた際に、自己の利用権を証明するためのレスポンスを計算し、Ｗｅｂブラウザ２０２を介してＷｅｂサーバに送付する。
【００６９】
利用権証明部２０４は、以下の部分から構成される。
【００７０】
［利用権証明制御部２０５］：
クライアントの利用権を証明するためのレスポンスの計算全体を制御する。
【００７１】
［利用権証明データ記憶部２０６］：
Ｗｅｂページに対する利用権証明データを記憶する。ここには複数の利用権証明データが記憶可能である。個々の利用権証明データは、その利用権証明データの生成に使用されたＲＳＡ法数、公開鍵、使用条件データとともに記憶されている。
【００７２】
［利用条件評価部２０７］：
利用条件データに記載されている利用条件が満たされているかどうかを判定する。本実施例の利用条件データには、クライアントがＷｅｂページを利用できる期間の開始日時と終了日時が記載されており、利用条件評価部２０７は、現在の時刻がＷｅｂページを利用できる期間内かどうかを判定する機能を持つ。
【００７３】
［固有レスポンス生成部２０８］：
本実施例では、レスポンスを作成する際に、固有データを使用した演算と、利用権証明データを使用した演算の２段階に分かれる。固有レスポンス生成部２０８は、固有データを使用した演算の部分を実行する。
【００７４】
［レスポンス生成部２０９］：
Ｗｅｂサーバ１０１に送付するレスポンスを生成する。
【００７５】
固有レスポンス生成部２０８は、さらに以下の部分から構成される。
【００７６】
［固有データ記憶部２１０］：
クライアントに割り当てられた固有データを記憶する。
【００７７】
［固有演算実行部２１１］：
すべてのクライアントが共通に持つ暗号学的ハッシュ関数ｆ（・）を内蔵し、固有データ記憶部２１０に記憶されている固有データを使用したハッシュ演算を実行する。
【００７８】
［固有レスポンス演算部２１２］：
固有演算実行部２１１の結果を使用して、Ｗｅｂサーバ１０１に送るレスポンスの計算の一部を実行する。
【００７９】
Ｗｅｂサーバ１０１は、クライアント２０１からのＷｅｂページの要求を受けた場合、その要求は入出力制御部１０２を介してページデータ管理部１０３に送付される。ページデータ管理部１０３は、依頼されたＷｅｂページに対する利用権をクライアント２０１が持つことを確認するために、利用権認証部１０４を呼び出す。この呼び出しの際に、要求されたＷｅｂページを特定するための情報（たとえばファイル名）が、利用権認証部１０４に渡される。
【００８０】
利用権認証部１０４は、クライアント２０１から要求されたＷｅｂページに対する利用権を要求元であるクライアント２０１が所持しているかどうかを検査し、その結果をページデータ管理部１０３に送る。利用権を所持していることが確認されれば、Ｗｅｂページのデータがクライアント２０１に対して送付される。そうでなければ、エラーメッセージが送付される。
【００８１】
図３は、ページデータ管理部１０３に呼び出された際の利用権認証部１０４の動作を示したフローチャートである。利用権認証部１０４が実行する利用権認証の手順を、図３のフローチャートにしたがって説明する。
【００８２】
利用権認証部１０４の動作は、利用権認証制御部１０５によってコントロールされる。
【００８３】
利用権認証制御部１０５は、まず公開鍵管理部１０６呼び出し、クライアント２０１から要求されているＷｅｂページに割り当てられているＲＳＡ法数と公開鍵が存在するかどうかを探索する（３０１）。割り当てられたＲＳＡ法数と公開鍵が存在しなければ（３０２）、利用権の認証に成功したことを出力し（３０７）、処理は終了する。
【００８４】
要求されたＷｅｂページに対して割り当てられたＲＳＡ法数と公開鍵が存在するならば（３０２）、利用権認証制御部１０５はチャンレンジ生成部１０７を呼び出してチャレンジを生成し、入出力制御部１０２を介してクライアント２０１に送付する（３０３）。また、チャレンジとともに、要求されたＷｅｂページに対して割り当てられたＲＳＡ法数と公開鍵も、同時にクライアント２０１に送付される。
【００８５】
その後、利用権認証部１０４は、クライアント２０１から入出力制御部１０２を介して送られてくるレスポンスを待つ。チャレンジを送付してから一定の時間の間にレスポンスが届かなければ（３０４）、利用権の認証に失敗したことを出力し（３０８）、処理は終了する。
【００８６】
クライアント２０１からレスポンスが届いた場合（３０４）、利用権認証制御部１０５は利用権検査部１０８を呼び出し、レスポンスが正しいかどうかを検査する（３０５）。３０３でクライアント２０１に送付されたチャンレンジをＣ、３０４で受け取ったレスポンスをＲ、要求されたＷｅｂページに割り当てられたＲＳＡ法数をｎ、公開鍵をｅとすると、利用権検査部１０８は式（２）が成り立つかどうかを検査する。成り立つ場合（３０６）、利用権の認証に成功したことを出力し（３０７）、処理は終了する。成り立たない場合（３０６）、利用権の認証に失敗したことを出力し（３０８）、処理は終了する。
【００８７】
Ｗｅｂサーバ１０１から、Ｗｅｂブラウザ２０２を介してチャレンジ、およびＲＳＡ法数と公開鍵を受け取ったクライアント２０１は、利用権証明部２０４に受け取ったチャレンジ、ＲＳＡ法数、公開鍵を渡してレスポンスを作成し、Ｗｅｂブラウザ２０２を介してＷｅｂサーバ１０１に送る。
【００８８】
図４は、チャレンジ、ＲＳＡ法数、公開鍵を渡された利用権証明部２０４の動作を示したフローチャートである。利用権証明部２０４が実行するレスポンス作成の手順を、図４のフローチャートにしたがって説明する。
【００８９】
利用権証明部２０４の動作は、利用権証明制御部２０５によってコントロールされる。利用権証明制御部２０５は、まず利用権証明データ記憶部２０６に、Ｗｅｂサーバ１０１から受け取ったＲＳＡ法数と公開鍵に対応する利用権証明データと利用条件データが存在するかどうかを探索する（４０１）。利用権証明データ記憶部２０６には、複数の利用権証明データが、その利用権証明データの生成に使用されたＲＳＡ法数、公開鍵、使用条件データとバインドされて記憶されており、Ｗｅｂサーバ１０１から受け取ったＲＳＡ法数と公開鍵と同じＲＳＡ法数と公開鍵にバインドされている利用権証明データと利用条件データが探索される。
【００９０】
ここで、Ｗｅｂサーバ１０１から受け取ったＲＳＡ法数と公開鍵に対応する利用権証明データと利用条件データが存在しなければ（４０２）、処理は終了する。この場合、レスポンスがＷｅｂサーバ１０１に返されることはない。
【００９１】
ここで、Ｗｅｂサーバ１０１から受け取ったＲＳＡ法数と公開鍵に対応する利用権証明データと利用条件データが存在する場合（４０２）、利用条件評価部２０７が呼び出され、４０１で見つかった利用条件データに記載されている利用条件が満たされているかどうかが評価される（４０３）。
【００９２】
利用条件が満たされていない場合（４０４）、処理は終了する。この場合、レスポンスがＷｅｂサーバ１０１に返されることはない。利用条件が満たされている場合（４０４）、レスポンスを計算してＷｅｂサーバ１０１にＷｅｂブラウザ２０２を介して送付し（４０５）、処理は終了する。
【００９３】
４０５におけるレスポンスの計算では、まず固有レスポンス生成部２０８を呼び出し、クライアントに割り当てられた固有データに基づく計算が行われる。固有レスポンス生成部２０８の呼び出し時には、Ｗｅｂサーバ１０１から送付されたチャレンジとＲＳＡ法数と公開鍵、４０１で見つかった利用条件データが渡される。
【００９４】
固有レスポンス生成部２０８では、固有レスポンス演算部２１２が固有演算実行部２１１を呼び出し、固有データ記憶部２１０に記憶されている固有データに基づいた演算結果を入手する。固有演算実行部２１１は、固有データ記憶部２１０に記憶されている固有データ、Ｗｅｂサーバ１０１から送付されたＲＳＡ法数と公開鍵、４０１で見つかった利用条件データから、所定の演算を行う。Ｗｅｂサーバ１０１から送付されたＲＳＡ法数をｎ、公開鍵をｅ、４０１で見つかった利用条件データをＬとすると、固有演算実行部２１１は式（１１）に示す演算を実行し、結果Ｆを得る。
【数１１】
Ｆ＝ｆ（ｎ｜ｅ｜Ｌ｜ｕ）            （１１）
【００９５】
その後、固有レスポンス演算部２１２は固有演算実行部２１１の結果と、Ｗｅｂサーバ１０１から送付されたチャレンジＣとＲＳＡ法数ｎとから、式（１２）の演算を実施し、Ｒ’を計算する。
【数１２】
Ｒ’＝ＣＦ  ｍｏｄ  ｎ            （１２）
【００９６】
固有レスポンス生成部２０８から計算結果であるＲ’を受け取ると利用権証明制御部２０５はレスポンス生成部２０９を呼び出しレスポンスＲを計算する。この計算は、Ｗｅｂサーバ１０１から送付されたチャレンジＣとＲＳＡ法数ｎ、固有レスポンス生成部２０８の計算結果Ｒ’、４０１で見つかった利用権証明データｔとから、式（１３）に示す演算を実施して得られる。
【数１３】
0003593979.tif 000005
【００９７】
本実施例では、Ｗｅｂページに割り当てられた法数ｎと公開鍵ｅ、クライアントに割り当てられた固有データｕと、そのクライアントの利用権を示す利用権証明データｔと利用条件データＬとの組み合わせが正しければ、３０５おける検査に成功し、その結果、クライアントが要求したＷｅｂページのデータがクライアントに送付される。この組み合わせのいずれがおきかえられても、３０５おける検査は成功せず、クライアントは要求したＷｅｂページのデータを得ることができない。
【００９８】
本実施例では、利用権証明データが式（１０）で定義されるので、固有レスポンス生成部２０８内部の解析がセキュリティ上の問題となる。式（１１）の結果がもれれば、ＲＳＡ法数ｎ、公開鍵ｅに対する秘密鍵ｄが計算でき、そのｄによって、不正な利用が可能になる。式（１１）がわからずとも、固有データ記憶部２１０が保持する固有データｕがわかれば、そこから式（１１）の演算が誰にでも可能であり、やはり秘密鍵ｄが計算できることになる。この問題を回避するためには、固有レスポンス生成部２０８の計算過程や内部のメモリを解析されないような手段を講じる必要がある。たとえば、耐タンパー性のあるハードウエアを使って固有レスポンス生成部２０８を構成したり、プログラムやメモリの状態が解析されにくくなるようなソフトウエア的な技術を使って固有レスポンス生成部２０８を構成するといった手段をとらなければならない。
【００９９】
スマートカード（演算機能を持つＩＣカード）は、耐タンパー性の高いハードウエアであるので、スマートカードを使って固有レスポンス生成部２０８を構成することは有効である。この場合、固有データがクライアントに割り当てられるのではなく、スマートカードに割り当てられることになり、スマートカードを携行してクライアントに接続すれば、どのクライアントを使用しても、同じ権利を行使することができる。スマートカードに利用権証明データ記憶部２０６も含めれば、ユーザにとってより使いやすいものとなる。
【０１００】
固有レスポンス生成部２０８と利用権証明データ記憶部２０６をスマートカードで実現した場合の、クライアント２０１の構成例を図５に示す。
【０１０１】
図５では、理解のしやすさを考慮して、図２の構成例と同じ機能を持つ部分には同じ番号を付与し、新たに出現した部分にのみ新たな番号を割り当ててある。
【０１０２】
図２の構成例と異なり、図５の構成例では固有レスポンス生成部２０８と利用権証明データ記憶部２０６がスマートカード５０２に含まれている。スマートカード５０２は、クライアント２０１との間のデータの入出力を制御するために、入出力制御部５０３を持っている。クライアント２０１は、スマートカード５０２を接続し、スマートカードとのデータの入出力を制御するために、スマートカード接続部５０１を持つ。なお、他の構成は図２と同様であるので詳細な説明は省略する。
【０１０３】
［第２の実施例］
第２の実施例は、クライアントに対してＷｅｂアプリケーションを提供するＷｅｂサーバと、該Ｗｅｂサーバ上のＷｅｂアプリを利用するクライアントからなる。Ｗｅｂサーバ上のＷｅｂアプリケーションの動作は、サーバサイド上で解釈・実行されるスクリプトを使って制御されている。
【０１０４】
本実施例のＷｅｂサーバは、本発明を適用した利用権認証の機構をもつ。利用権認証を呼び出すタイミングは、その利用権認証で使用するＲＳＡ法数と公開鍵とともにスクリプトに記述することができる。スクリプトの解釈・実行の過程で利用権認証の機構は呼び出され、クライアントが利用権を持つことが認証される。たとえば、Ｗｅｂアプリの特定の機能をクライアントに提供する前にその機能に関する利用権認証を行い、利用権を保持することが確認されたクライアントにのみ、該機能が提供されるといったことが可能である。
【０１０５】
利用権認証の機構が呼び出された場合、クライアントとの間でチャレンジ‐レスポンスを行うことで、クライアントの利用権を持つかどうかが検査される。チャレンジ−レスポンスは、その利用権認証で使用することが指定されたＲＳＡ法数と公開鍵に対応する利用権証明データをクライアントが持っている場合のみ成功する。
【０１０６】
本実施例のクライアントは、本発明を応用した利用権証明の機構を持つ。Ｗｅｂサーバからチャンレンジが送られてきた場合、レスポンスを作成して送りかえすことができる。
【０１０７】
本実施例のクライアントには、クライアント毎に異なる固有データが割り当てられている。あるＲＳＡ法数と公開鍵に対する特定のクライアントの利用権証明データは、そのＲＳＡ法数と公開鍵に対応する秘密鍵と、クライアントに割り当てられた固有データ、クライアントに対してＷｅｂページの利用が許される条件を記した利用条件データから作成される。利用条件データには、クライアントの利用権が有効な期間の開始と終了の日時が記載される。
【０１０８】
たとえば、ＲＳＡ法数をｎ、公開鍵をｅ、ｎとｅに対応する秘密鍵をｄ、クライアントに割り当てられた固有データをｕ、利用条件データをＬとした場合、利用権証明データｔは、式（１０）にしたがって作成される。
【０１０９】
図６は、第２の実施例におけるＷｅｂサーバの内部構成を示している。
【０１１０】
Ｗｅｂサーバ６０１は、以下の部分から構成される。
【０１１１】
［入出力制御部６０２］：
ネットワークを経由して届くクライアントからＷｅｂサーバへの入力と、ネットワークを経由して送られるＷｅｂサーバからクライアントへの出力を制御する。
【０１１２】
［スクリプト解釈部６０３］：
Ｗｅｂサーバが提供するＷｅｂアプリを構成するスクリプトを保持し、クライアントからの要求に応じてスクリプトを解釈・実行し、その結果を入出力制御部６０２を介してクライアントに提供する。
【０１１３】
スクリプトを解釈・実行の際に、利用権認証部６０４を呼び出してクライアントが正しい利用権を持つかどうかを検査することができる。
【０１１４】
［利用権認証部６０４］：
スクリプト解釈部６０３からの呼び出しに応じて、クライアントが正しい利用権を持つかどうかを検査し、その結果をスクリプト解釈部６０３に返す。検査の過程で、入出力制御部６０２を経由して、クライアントとの間で通信を行う。
【０１１５】
利用権認証部６０４は、以下の部分から構成される。
【０１１６】
［利用権認証制御部６０５］：
クライアントが正しい利用権を持つかどうかの検査全体を制御する。
【０１１７】
［チャレンジ生成部６０６］：
クライアントが利用権を持つかどうかは、Ｗｅｂサーバとクライアントの間で行われるチャレンジ‐レスポンスによって検査される。チャレンジ生成部は、クライアントに送付されるチャレンジを生成する。
【０１１８】
［利用権検査部６０７］：
クライアントから送付されるレスポンスが、チャレンジ生成部で生成されたチャンレンジや、レスポンスとともにクライアントから送付された利用権証明データや、スクリプト解釈部６０３から指定されたＲＳＡ法数や公開鍵と所定の関係にあるかどうかを判断し、出力する。
【０１１９】
図７は、第２の実施例におけるクライアントの内部構成を示している。
【０１２０】
クライアント７０１は、以下の部分から構成される。
【０１２１】
［Ｗｅｂブラウザ７０２］：
ネットワークを経由して届くＷｅｂサーバからクライアントへの入力と、ネットワークを経由して送られるクライアントからＷｅｂサーバへの出力を制御する。Ｗｅｂアプリに対する要求をＷｅｂサーバに送り、Ｗｅｂサーバから届けられるＷｅｂページを処理するのも、Ｗｅｂブラウザ７０２の役割である。
【０１２２】
［利用権証明部２０４］：
利用権を認証するためのチャレンジが、Ｗｅｂブラウザ７０２を介してＷｅｂサーバ６０１から届けられた際に、自己の利用権を証明するためのレスポンスを計算し、利用権証明データとともに、Ｗｅｂブラウザ７０２を介してＷｅｂサーバ６０１に送付する。
【０１２３】
利用権証明部７０４は、以下の部分から構成される。
【０１２４】
［利用権証明制御部７０５］：
クライアントの利用権を証明するためのレスポンスの計算全体を制御する。
【０１２５】
［利用権証明データ記憶部７０６］：
クライアントが持つ利用権証明データを記憶する。ここには複数の利用権証明データが記憶可能である。個々の利用権証明データは、その利用権証明データの生成に使用されたＲＳＡ法数、公開鍵、使用条件データとともに記憶されている。
【０１２６】
［利用条件評価部７０７］：
利用条件データに記載されている利用条件が満たされているかどうかを判定する。本実施例の利用条件データには、対応する利用権証明データの有効期間の開始日時と終了日時が記載されており、利用条件評価部７０７は、現在の時刻がこの期間内かどうかを判定する機能を持つ。
【０１２７】
［レスポンス生成部７０８］：
Ｗｅｂサーバ６０１に送付するレスポンスを生成する。
【０１２８】
レスポンス生成部７０８は、さらに以下の部分から構成される。
【０１２９】
［固有データ記憶部７０９］：
クライアントに割り当てられた固有データを記憶する。
【０１３０】
［固有演算実行部７１０］：
すべてのクライアントが共通に持つ暗号学的ハッシュ関数ｆ（・）を内蔵し、固有データ記憶部７０９に記憶されている固有データを使用したハッシュ演算を実行する。
【０１３１】
［レスポンス演算部７１１］：
固有演算実行部７１０の結果を使用して、Ｗｅｂサーバ６０１に送るレスポンスの計算を実行する。
【０１３２】
Ｗｅｂサーバ６０１が保持しているスクリプトには、利用権認証の機構を呼び出すよう記載された部分がある。利用権認証に使用するＲＳＡ法数と公開鍵も、スクリプトに記載されている。スクリプトの解釈・実行時に、利用権認証の機構を呼び出す部分に至った場合、スクリプト解釈部６０３は、そこで指定されているＲＳＡ法数と公開鍵に対応する利用権をクライアント７０１が持つことを確認するために、利用権認証部６０４を呼び出す。
【０１３３】
利用権認証部６０４は、指定されたＲＳＡ法数と公開鍵に対応する利用権をクライアント７０１が所持しているかどうかを検査し、その結果をスクリプト解釈部６０３に送る。
【０１３４】
図８は、スクリプト解釈部６０３に呼び出された際の利用権認証部６０４の動作を示したフローチャートである。利用権認証部６０４が実行する利用権認証の手順を、図８のフローチャートにしたがって説明する。
【０１３５】
利用権認証部６０４の動作は、利用権認証制御部６０５によってコントロールされる。
【０１３６】
利用権認証制御部６０５は、まず、チャンレンジ生成部６０６を呼び出してチャレンジを生成し、入出力制御部６０２を介してクライアント７０１に送付する（８０１）。また、チャレンジとともに、利用権認証に使用するＲＳＡ法数と公開鍵も、同時にクライアント８０１に送付される。
【０１３７】
その後、利用権認証部６０４は、クライアント７０１から入出力制御部６０２を介して送られてくるレスポンスと利用権証明データを待つ。チャレンジを送付してから一定の時間の間にレスポンスと利用権証明データが届かなければ（８０２）、利用権の認証に失敗したことを出力し（８０６）、処理は終了する。
【０１３８】
クライアント７０１からレスポンスと利用権証明データが届いた場合（８０２）、利用権認証制御部６０５は利用権検査部６０７を呼び出し、レスポンスが正しいかどうかを検査する（８０３）。８０１でクライアント７０１に送付されたチャンレンジをＣ、８０２で受け取ったレスポンスをＲ、利用権証明データをｔ、利用権認証に使用するＲＳＡ法数をｎ、公開鍵をｅとすると、利用権検査部６０７は式（６）が成り立つかどうかを検査する。成り立つ場合（８０４）、利用権の認証に成功したことを出力し（８０５）、処理は終了する。成り立たない場合（８０４）、利用権の認証に失敗したことを出力し（８０６）、処理は終了する。
【０１３９】
Ｗｅｂサーバ６０１から、Ｗｅｂブラウザ７０２を介してチャレンジ、およびＲＳＡ法数と公開鍵を受け取ったクライアント７０１は、利用権証明部７０４に受け取ったチャレンジ、ＲＳＡ法数、公開鍵を渡してレスポンスを作成し、ＲＳＡ法数と公開鍵に対応する利用権証明データとともに、Ｗｅｂブラウザ７０２を介してＷｅｂサーバ６０１に送る。
【０１４０】
図９は、チャレンジ、ＲＳＡ法数、公開鍵を渡してレスポンスを渡された利用権証明部７０４の動作を示したフローチャートである。利用権証明部７０４が実行するレスポンス作成の手順を、図９のフローチャートにしたがって説明する。
【０１４１】
利用権証明部７０４の動作は、利用権証明制御部７０５によってコントロールされる。利用権証明制御部７０５は、まず利用権証明データ記憶部７０６に、Ｗｅｂサーバ６０１から受け取ったＲＳＡ法数と公開鍵に対応する利用権証明データと利用条件データが存在するかどうかを探索する（９０１）。利用権証明データ記憶部７０６には、複数の利用権証明データが、その利用権証明データの生成に使用されたＲＳＡ法数、公開鍵、使用条件データとバインドされて記憶されており、Ｗｅｂサーバ６０１から受け取ったＲＳＡ法数と公開鍵と同じＲＳＡ法数と公開鍵にバインドされている利用権証明データと利用条件データが探索される。
【０１４２】
ここで、Ｗｅｂサーバ６０１から受け取ったＲＳＡ法数と公開鍵に対応する利用権証明データと利用条件データが存在しなければ（９０２）、処理は終了する。この場合、レスポンスがＷｅｂサーバ６０１に返されることはない。
【０１４３】
ここで、Ｗｅｂサーバ６０１から受け取ったＲＳＡ法数と公開鍵に対応する利用権証明データと利用条件データが存在する場合（９０２）、利用条件評価部７０７が呼び出され、９０１で見つかった利用条件データに記載されている利用条件が満たされているかどうかが評価される（９０３）。
【０１４４】
利用条件が満たされていない場合（９０４）、処理は終了する。この場合、レスポンスがＷｅｂサーバ６０１に返されることはない。利用条件が満たされている場合（９０４）、レスポンスを計算して、９０１で見つけた利用権証明データとともに、Ｗｅｂサーバ６０１にＷｅｂブラウザ７０２を介して送付し（９０５）、処理は終了する。
【０１４５】
９０５におけるレスポンスの計算では、まずレスポンス生成部７０８を呼び出し、クライアントに割り当てられた固有データに基づく計算が行われる。レスポンス生成部７０８の呼び出し時には、Ｗｅｂサーバ６０１から送付されたチャレンジとＲＳＡ法数と公開鍵が渡される。
【０１４６】
レスポンス生成部７０８では、レスポンス演算部７１１が固有演算実行部７１０を呼び出し、固有データ記憶部７０９に記憶されている固有データに基づいた演算結果を入手する。固有演算実行部７１０は、固有データ記憶部７０９に記憶されている固有データ、Ｗｅｂサーバ６０１から送付されたＲＳＡ法数と公開鍵から、所定の演算を行う。Ｗｅｂサーバ６０１から送付されたＲＳＡ法数をｎ、公開鍵をｅ、４０１で見つかった利用条件データをＬとすると、固有演算実行部７１０は式（１１）に示す演算を実行し、結果Ｆを得る。
【０１４７】
その後、レスポンス演算部７１１は固有演算実行部７１０の結果と、Ｗｅｂサーバ６０１から送付されたチャレンジＣとＲＳＡ法数ｎとから、式（１４）の演算を実施し、レスポンスＲを計算する。
【数１４】
Ｒ＝ＣＦ  ｍｏｄ  ｎ            （１４）
【０１４８】
本実施例の利用権認証では、スクリプト解釈部６０３から指定された法数ｎと公開鍵ｅ、クライアントに割り当てられた固有データｕと、そのクライアントの利用権を示す利用権証明データｔと利用条件データＬとの組み合わせが正しければ、８０５おける検査に成功する。この組み合わせのいずれがおきかえられても、８０５おける検査は成功しない。認証の結果はスクリプト解釈部６０３に送り返され、その結果によって、Ｗｅｂアプリの動作を変えることができる。たとえば、利用権認証に成功した場合いクライアントに送付するＨＴＭＬ（ハイパーテキストマークアップ言語）文書と、失敗した場合にクライアントに送付するＨＴＭＬ文書を変えるといった制御が可能である。なお、ＨＴＭＬ文書に代えてＸＭＬ（拡張可能言語）等の種々のウェブ言語を用いることができる。
【０１４９】
本実施例では、利用権証明データが式（１０）で定義されるので、レスポンス生成部７０８内部の解析がセキュリティ上の問題となる。式（１１）の結果がもれれば、ＲＳＡ法数ｎ、公開鍵ｅに対する秘密鍵ｄが計算でき、そのｄによって、不正な利用が可能になる。式（１１）がわからずとも、固有データ記憶部２１０が保持する固有データｕがわかれば、そこから式（１１）の演算が誰にでも可能であり、やはり秘密鍵ｄが計算できることになる。この問題を回避するためには、レスポンス生成部７０８の計算過程や内部のメモリを解析されないような手段を講じる必要がある。たとえば、耐タンパー性のあるハードウエアを使ってレスポンス生成部７０８を構成したり、プログラムやメモリの状態が解析されにくくなるようなソフトウエア的な技術を使って固有レスポンス生成部７０８を構成するといった手段をとらなければならない。
【０１５０】
第１の実施例同様、スマートカードを使ってレスポンス生成部７０８を実現するのは、好適な方法である。
【０１５１】
レスポンス生成部７０８と利用権証明データ記憶部７０６をスマートカードで実現した場合の、クライアント７０１の構成例を図１０に示す。
【０１５２】
図１０では、理解のしやすさを考慮して、図７の構成例と同じ機能を持つ部分には同じ番号を付与し、新たに出現した部分にのみ新たな番号を割り当ててある。
【０１５３】
図７の構成例と異なり、図１０の構成例ではレスポンス生成部７０８と利用権証明データ記憶部７０６がスマートカード１００２に含まれている。スマートカード１００２は、クライアント７０１との間のデータの入出力を制御するために、入出力制御部１００３を持っている。クライアント７０１は、スマートカード１００２を接続し、スマートカードとのデータの入出力を制御するために、スマートカード接続部１００１を持つ。なお、他の構成は図７と同様であるので詳細な説明は省略する。
【０１５４】
以上説明したように本発明の各実施例によれば、ユーザアカウントの情報を用いて認証を行わないのでユーザアカウントを維持保守する必要がなく、また、サーバ側にユーザのサービス利用履歴が知られるということもない。
【０１５５】
以上で実施例の説明を終了する。
【０１５６】
なお、本発明は上述実施例に限定されるものではなく、その趣旨を逸脱しない範囲で種々変更が可能である。
【０１５７】
【発明の効果】
以上説明したように、本発明によればユーザアカウントを用いずにクライアントの認証を行え、ユーザアカウント維持コストを削減でき、またユーザのプライバシを漏洩することもない。
【図面の簡単な説明】
【図１】本発明の第１の実施例のＷｅｂサーバの構成を示すブロック図である。
【図２】本発明の第１の実施例のクライアントの構成を示すブロック図である。
【図３】本発明の第１の実施例の動作を説明するフローチャートである。
【図４】本発明の第１の実施例の動作を説明するフローチャートである。
【図５】本発明の第１の実施例の変形例を説明するブロック図である。
【図６】本発明の第２の実施例のＷｅｂサーバの構成を示すブロック図である。
【図７】本発明の第２の実施例のクライアントの構成を示すブロック図である。
【図８】本発明の第２の実施例の動作を説明するフローチャートである。
【図９】本発明の第２の実施例の動作を説明するフローチャートである。
【図１０】本発明の第２の実施例の変形例を説明するブロック図である。
【符号の説明】
１０１      サーバ
１０２      入出力制御部
１０３      ページデータ管理部
１０４      利用権認証部
１０５      利用権認証制御部
１０６      公開鍵管理部
１０７      チャンレンジ生成部
１０８      利用権検査部
２０１      クライアント
２０２      ブラウザ
２０４      利用権証明部
２０５      利用権証明制御部
２０６      利用権証明データ記憶部
２０７      利用条件評価部
２０８      固有レスポンス生成部
２０９      レスポンス生成部
２１０      固有データ記憶部
２１１      固有演算実行部
２１２      固有レスポンス演算部
５０１      スマートカード接続部
５０２      スマートカード
５０３      入出力制御部
６０１      サーバ
６０２      入出力制御部
６０３      スクリプト解釈部
６０４      利用権認証部
６０５      利用権認証制御部
６０６      チャンレンジ生成部
６０７      利用権検査部
７０１      クライアント
７０２      ブラウザ
７０４      利用権証明部
７０５      利用権証明制御部
７０６      利用権証明データ記憶部
７０７      利用条件評価部
７０８      レスポンス生成部
７０９      固有データ記憶部
７１０      固有演算実行部
７１１      レスポンス演算部
８０１      クライアント
１００１      スマートカード接続部
１００２      スマートカード
１００３      入出力制御部
【図１】
0003593979.tif 000006
【図２】
0003593979.tif 000007
【図３】
0003593979.tif 000008
【図４】
0003593979.tif 000009
【図５】
0003593979.tif 000010
【図６】
0003593979.tif 000011
【図７】
0003593979.tif 000012
【図８】
0003593979.tif 000013
【図９】
0003593979.tif 000014
【図１０】
0003593979.tif 000015