(57)【要約】  認証サーバ装置は、クライアント装置およびサービスサーバ装置のそれぞれとの間でメインシードデータに基づくワンタイムＩＤによる相互認証を行う。そして、認証サーバ装置は、正当なクライアント装置およびサービスサーバ装置に対してサブシードデータを配信する。正当なクライアント装置と正当なサービスサーバ装置は、そのサブシードデータに基づきワンタイムＩＤを生成し、生成したワンタイムＩＤにより相互認証を実行する。その後、正当なクライアント装置と正当なサービスサーバ装置との間で、あるアプリケーションに基づくデータ通信が開始される。
2008142731.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアント装置と、前記複数のクライアント装置へサービスを提供する１または複数のサービスサーバ装置と、前記複数のクライアント装置および前記１または複数のサービスサーバ装置を認証する認証サーバ装置とを備える認証システムにおいて、
前記複数のクライアント装置のそれぞれは、
所定の通信単位ごとに更新され前記認証サーバ装置と共有する第１のメインシードデータを記憶するクライアント側記憶手段と、
前記第１のメインシードデータに基づいてメインワンタイムＩＤを生成するクライアント側メインワンタイムＩＤ生成手段と、
前記メインワンタイムＩＤを前記認証サーバ装置へ送信する第１のクライアント側送信手段と、
前記認証サーバ装置により前記クライアント装置が正当なものであると判断された後に、前記認証サーバ装置から、前記認証サーバ装置の第１のワンタイムＩＤ、および所定の通信単位ごとに更新され前記サービスサーバ装置と共有するサブシードデータを受信する第１のクライアント側受信手段と、
受信された前記認証サーバ装置のワンタイムＩＤおよび前記第１のメインシードデータに基づき前記認証サーバ装置の正当性を判断する第１のクライアント側認証処理手段と、
前記認証サーバ装置が正当なものであると判断された後に、前記サブシードデータに基づきサブワンタイムＩＤを生成するクライアント側サブワンタイムＩＤ生成手段と、
前記サブワンタイムＩＤを前記サービスサーバ装置へ送信する第２のクライアント側送信手段と、
前記サービスサーバ装置から前記サービスサーバ装置のサブワンタイムＩＤを受信する第２のクライアント側受信手段と、
前記第２の受信手段により受信された前記サービスサーバ装置のサブワンタイムＩＤおよび前記サブシードデータに基づき前記サービスサーバ装置の正当性を判断する第２のクライアント側認証処理手段と、
を有し、
前記１または複数のサービスサーバ装置のそれぞれは、
前記第１のメインシードデータとは異なる第２のメインシードデータであって所定の通信単位ごとに更新され前記認証サーバ装置と共有する第２のメインシードデータを記憶するサービスサーバ側記憶手段と、
前記第２のメインシードデータに基づきメインワンタイムＩＤを生成するサービスサーバ側メインワンタイムＩＤ生成手段と、
前記メインワンタイムＩＤを前記認証サーバ装置へ送信する第１のサービスサーバ側送信手段と、
前記認証サーバ装置により前記サービスサーバ装置が正当なものであると判断された後に、前記認証サーバ装置から、前記認証サーバ装置の第２のワンタイムＩＤ、および前記サブシードデータを受信する第１のサービスサーバ側受信手段と、
受信された前記認証サーバ装置のワンタイムＩＤおよび前記第２のメインシードデータに基づき前記認証サーバ装置の正当性を判断する第１のサービスサーバ側認証処理手段と、
前記認証サーバ装置が正当なものであると判断された後に、受信されたサブシードデータに基づきサブワンタイムＩＤを生成するサービスサーバ側サブワンタイムＩＤ生成手段と、
前記サブワンタイムＩＤを前記クライアント装置へ送信する第２のサービスサーバ側送信手段と、
前記クライアント装置から前記クライアント装置のサブワンタイムＩＤを受信する第２のサービスサーバ側受信手段と、
受信された前記クライアント装置のサブワンタイムＩＤおよび前記サブシードデータに基づき前記クライアント装置の正当性を判断する第２のサービスサーバ側認証処理手段と、
を有し、
前記認証サーバ装置は、
所定の通信単位ごとに更新され前記クライアント装置と共有する第１のメインシードデータ、および、前記第１のメインシードデータとは異なる第２のメインシードデータであって所定の通信単位ごとに更新され前記サービスサーバ装置と共有する第２のメインシードデータを記憶する記憶手段と、
前記クライアント装置から、前記クライアント装置のメインワンタイムＩＤを受信する第１の受信手段と、
受信された前記クライアント装置のメインワンタイムＩＤおよび前記第１のメインシードデータに基づき前記クライアント装置の正当性を判断する第１の認証処理手段と、
前記第１のメインシードデータに基づいて前記認証サーバ装置の第１のワンタイムＩＤを生成する第１のワンタイムＩＤ生成手段と、
前記クライアント装置が正当なものであると判断された後に、前記認証サーバ装置の前記第１のワンタイムＩＤを前記クライアント装置へ送信する第１の送信手段と、
前記第２のメインシードデータに基づいて前記認証サーバ装置の第２のワンタイムＩＤを生成する第２のワンタイムＩＤ生成手段と、
前記認証サーバ装置の前記第２のワンタイムＩＤを前記サービスサーバ装置へ送信する第２の送信手段と、
前記サービスサーバ装置により前記認証サーバ装置が正当なものであると判断された後に、前記サービスサーバ装置から、前記サービスサーバ装置のメインワンタイムＩＤを受信する第２の受信手段と、
受信された前記サービスサーバ装置のメインワンタイムＩＤおよび前記第２のメインシードデータに基づき前記サービスサーバ装置の正当性を判断する第２の認証処理手段と、
前記クライアント装置および前記サービスサーバ装置の両方が正当なものであると判断された後に、前記サブシードデータを前記クライアント装置および前記サービスサーバ装置の両方へ送信する第３の送信手段と、
を有すること、
を特徴とする認証システム。
【請求項２】
相互にワンタイムＩＤ認証を行う２つの通信装置に対してそれぞれのワンタイムＩＤを生成するためのサブシードデータを配信する認証サーバ装置において、
所定の通信単位ごとに更新され第１の通信装置と共有する第１のメインシードデータ、および、前記第１のメインシードデータとは異なる第２のメインシードデータであって所定の通信単位ごとに更新され第２の通信装置と共有する第２のメインシードデータを記憶する記憶手段と、
前記第１の通信装置から、前記第１の通信装置のメインワンタイムＩＤを受信する第１の受信手段と、
受信された前記第１の通信装置のメインワンタイムＩＤおよび前記第１のメインシードデータに基づき前記第１の通信装置の正当性を判断する第１の認証処理手段と、
前記第１のメインシードデータに基づいて当該認証サーバ装置の第１のワンタイムＩＤを生成する第１のワンタイムＩＤ生成手段と、
当該認証サーバ装置の前記第１のワンタイムＩＤを前記第１の通信装置へ送信する第１の送信手段と、
前記第２のメインシードデータに基づいて前記認証サーバ装置の第２のワンタイムＩＤを生成する第２のワンタイムＩＤ生成手段と、
前記認証サーバ装置の前記第２のワンタイムＩＤを前記第２の通信装置へ送信する第２の送信手段と、
前記第２の通信装置から、前記第２の通信装置のメインワンタイムＩＤを受信する第２の受信手段と、
受信された前記第２の通信装置のメインワンタイムＩＤおよび前記第２のメインシードデータに基づき前記第２の通信装置の正当性を判断する第２の認証処理手段と、
前記第１の通信装置および前記第２の通信装置の両方が正当なものであると判断された後に、前記第１の通信装置および前記第２の通信装置により共有され所定の通信単位ごとに更新されるサブシードデータであって、ワンタイムＩＤによる相互認証に使用されるワンタイムＩＤをそれぞれ生成する際に使用されるサブシードデータを前記第１の通信装置および前記第２の通信装置の両方へ送信する第３の送信手段と、
を備えることを特徴とする認証サーバ装置。
【請求項３】
複数の前記通信装置のリストを前記第１の通信装置へ送信するリスト送信手段と、
前記リストから選択された１つの前記通信装置を特定する応答を受信する選択結果受信手段とを備え、
前記第２のワンタイムＩＤ生成手段は、選択された前記通信装置を前記第２の通信装置として、その通信装置と共有する前記第２のメインシードデータに基づいて前記認証サーバ装置の第２のワンタイムＩＤを生成し、
前記第２の送信手段は、その第２のワンタイムＩＤを、選択された前記通信装置へ送信し、
前記第２の受信手段は、選択された前記通信装置からメインワンタイムＩＤを受信し、
前記第２の認証処理手段は、前記第２の受信手段により受信された前記メインワンタイムＩＤ、およびその選択された前記通信装置と共有する前記第２のメインシードデータに基づき、その選択された前記通信装置の正当性を判断すること、
を特徴とする請求項２記載の認証サーバ装置。
【請求項４】
前記第１のメインシードデータは、前記所定の通信単位ごとに更新され前記第１の通信装置と共有される第１の可変共通鍵で暗号化された状態で、前記第１の通信装置との間で伝送され、
前記第２のメインシードデータは、前記所定の通信単位ごとに更新され前記第２の通信装置と共有される第２の可変共通鍵で暗号化された状態で、前記第２の通信装置との間で伝送され、
前記第１の通信装置への前記サブシードデータは、その第１の可変共通鍵で暗号化された状態で伝送され、
前記第２の通信装置への前記サブシードデータは、その第２の可変共通鍵で暗号化された状態で伝送されること、
を特徴とする請求項２記載の認証サーバ装置。
【請求項５】
相互にワンタイムＩＤ認証を行う２つの通信装置に対してそれぞれのワンタイムＩＤを生成するためのサブシードデータを配信する認証サーバ装置としてコンピュータを機能させるコンピュータプログラムであって、
所定の通信単位ごとに更新され第１の通信装置と共有する第１のメインシードデータ、および、前記第１のメインシードデータとは異なる第２のメインシードデータであって所定の通信単位ごとに更新され第２の通信装置と共有する第２のメインシードデータを記憶する記憶手段、
前記第１の通信装置から、前記第１の通信装置のメインワンタイムＩＤを受信する第１の受信手段、
受信された前記第１の通信装置のメインワンタイムＩＤおよび前記第１のメインシードデータに基づき前記第１の通信装置の正当性を判断する第１の認証処理手段、
前記第１のメインシードデータに基づいて当該認証サーバ装置の第１のワンタイムＩＤを生成する第１のワンタイムＩＤ生成手段、
当該認証サーバ装置の前記第１のワンタイムＩＤを前記第１の通信装置へ送信する第１の送信手段、
前記第２のメインシードデータに基づいて前記認証サーバ装置の第２のワンタイムＩＤを生成する第２のワンタイムＩＤ生成手段、
前記認証サーバ装置の前記第２のワンタイムＩＤを前記第２の通信装置へ送信する第２の送信手段、
前記第２の通信装置から、前記第２の通信装置のメインワンタイムＩＤを受信する第２の受信手段、
受信された前記第２の通信装置のメインワンタイムＩＤおよび前記第２のメインシードデータに基づき前記第２の通信装置の正当性を判断する第２の認証処理手段、並びに
前記第１の通信装置および前記第２の通信装置の両方が正当なものであると判断された後に、前記第１の通信装置および前記第２の通信装置により共有され所定の通信単位ごとに更新されるサブシードデータであって、ワンタイムＩＤによる相互認証に使用されるワンタイムＩＤをそれぞれ生成する際に使用されるサブシードデータを前記第１の通信装置および前記第２の通信装置の両方へ送信する第３の送信手段、
としてコンピュータを機能させるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
別の通信装置と相互にワンタイムＩＤ認証を行う通信装置において、
所定の通信単位ごとに更新され認証サーバ装置と共有するメインシードデータを記憶する記憶手段と、
前記メインシードデータに基づきメインワンタイムＩＤを生成するメインワンタイムＩＤ生成手段と、
前記メインワンタイムＩＤを前記認証サーバ装置へ送信する第１の送信手段と、
前記認証サーバ装置から、前記認証サーバ装置のワンタイムＩＤ、および所定の通信単位ごとに更新され前記別の通信装置と共有するサブシードデータを受信する第１の受信手段と、
受信された前記認証サーバ装置のワンタイムＩＤおよび前記メインシードデータに基づき前記認証サーバ装置の正当性を判断する第１の認証処理手段と、
前記認証サーバ装置が正当なものであると判断された後に、受信されたサブシードデータに基づきサブワンタイムＩＤを生成するサブワンタイムＩＤ生成手段と、
前記サブワンタイムＩＤを前記別の通信装置へ送信する第２の送信手段と、
前記別の通信装置から前記別の通信装置のサブワンタイムＩＤを受信する第２の受信手段と、
受信された前記別の通信装置のサブワンタイムＩＤおよび前記サブシードデータに基づき前記別の通信装置の正当性を判断する第２の認証処理手段と、
を備えることを特徴とする通信装置。
【請求項７】
前記認証サーバ装置から複数の前記通信装置のリストを受信するリスト受信手段と、
前記リストから選択された１つの前記通信装置を特定する応答を送信する選択結果送信手段とを備え、
前記第１の受信手段は、前記認証サーバ装置から、選択された前記通信装置と共有する前記サブシードデータを受信し、
前記第２の送信手段は、前記サブワンタイムＩＤを、選択された前記通信装置へ送信し、
前記第２の受信手段は、選択された前記通信装置からその前記通信装置のサブワンタイムＩＤを受信し、
前記第２の認証処理手段は、受信されたその前記通信装置のサブワンタイムＩＤ、および選択された前記通信装置と共有する前記サブシードデータに基づきその通信装置の正当性を判断すること、
を特徴とする請求項６記載の通信装置。
【請求項８】
前記メインシードデータは、前記所定の通信単位ごとに更新され前記認証サーバ装置と共有される可変共通鍵で暗号化された状態で、前記認証サーバ装置との間で伝送され、
前記サブシードデータは、その可変共通鍵で暗号化された状態で伝送され、受信後に復号されること、
を特徴とする請求項６記載の通信装置。
【請求項９】
別の通信装置と相互にワンタイムＩＤ認証を行う通信装置としてコンピュータを機能させるコンピュータプログラムであって、
所定の通信単位ごとに更新され認証サーバ装置と共有するメインシードデータを記憶する記憶手段、
前記メインシードデータに基づきメインワンタイムＩＤを生成するメインワンタイムＩＤ生成手段、
前記メインワンタイムＩＤを前記認証サーバ装置へ送信する第１の送信手段、
前記認証サーバ装置から、前記認証サーバ装置のワンタイムＩＤ、および所定の通信単位ごとに更新され前記別の通信装置と共有するサブシードデータを受信する第１の受信手段、
受信された前記認証サーバ装置のワンタイムＩＤおよび前記メインシードデータに基づき前記認証サーバ装置の正当性を判断する第１の認証処理手段、
前記認証サーバ装置が正当なものであると判断された後に、受信されたサブシードデータに基づきサブワンタイムＩＤを生成するサブワンタイムＩＤ生成手段、
前記サブワンタイムＩＤを前記別の通信装置へ送信する第２の送信手段、
前記別の通信装置から前記別の通信装置のサブワンタイムＩＤを受信する第２の受信手段、並びに、
受信された前記別の通信装置のサブワンタイムＩＤおよび前記サブシードデータに基づき前記別の通信装置の正当性を判断する第２の認証処理手段、
としてコンピュータを機能させるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワンタイムＩＤを生成するためのシードを配信して機器間でワンタイムＩＤによる認証を行うシード配信型ワンタイムＩＤ認証に関するものである。
【背景技術】
【０００２】
耐タンパ性を向上させるためにセッションごとにパスワードを変更して認証処理を行う技術としてワンタイムパスワードがある。ワンタイムパスワードを使用する場合でも、認証を受けるユーザまたは機器を特定するために固有ＩＤ（識別情報）が必要になる。【０００３】
固有ＩＤとワンタイムパスワードを認証に使用する場合、固有ＩＤは、認証を行うセッションごとに変更されず一定のものとされる。したがって、固有ＩＤを盗聴することで、認証を受けるユーザまたは機器が特定される可能性がある。【０００４】
そこで、定期的にまたはセッション毎にＩＤを変更するワンタイムＩＤという技術が提案されている（例えば、文献１参照）。【０００５】
文献１：国際公開ＷＯ２００４／０１９５５３
【発明の開示】
【発明が解決しようとする課題】
【０００６】
文献１では、クライアントとサーバにおいて、セッションごとに生成される乱数などのシードからワンタイムＩＤが生成される。文献１のようなワンタイムＩＤ認証の場合、セッションごとにシードおよびワンタイムＩＤが変化していくため、あるクライアントとあるサービスサーバとの間で使用可能なワンタイムＩＤでも、別のクライアントや別のサービスサーバに対しては使用できない。すなわち、あるクライアントとサービスサーバの１対に対して、１対のワンタイムＩＤが生成される。【０００７】
このため、複数Ｎのクライアントと、複数Ｍのサービスサーバが存在する場合、（Ｎ×Ｍ）対のワンタイムＩＤが必要になる。その際、１つのクライアントは、複数Ｍのサービスサーバにアクセスし認証を受ける場合、Ｍ対のワンタイムＩＤを管理する必要がある。一方、サーバも、複数Ｎのクライアントからのアクセスを受け認証を行う場合、Ｎ対のワンタイムＩＤを管理する必要がある。また、クライアントとサービスサーバとの認証セッションごとに、シードの更新処理を行う必要がある。特にサービスサーバでは、多くのクライアントからアクセスを受け認証を行う場合、サービスサーバにおける認証処理の負荷がかなり大きくなってしまう。【０００８】
本発明は、上記の問題に鑑みてなされたものであり、認証処理時のクライアントおよびサービスサーバの負荷を大きくさせずに、クライアントとサービスサーバとの間でワンタイムＩＤによる相互認証を実行可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明では以下のようにした。【００１０】
本発明に係る認証システムは、複数のクライアント装置と、複数のクライアント装置へサービスを提供する１または複数のサービスサーバ装置と、複数のクライアント装置および１または複数のサービスサーバ装置を認証する認証サーバ装置とを備える。【００１１】
各クライアント装置は、クライアント側記憶手段、クライアント側メインワンタイムＩＤ生成手段、第１および第２のクライアント側送信手段、第１および第２のクライアント側受信手段、第１および第２のクライアント側認証処理手段、並びにクライアント側サブワンタイムＩＤ生成手段を有する。クライアント側記憶手段は、第１のメインシードデータを記憶する。第１のメインシードデータは、所定の通信単位ごとに更新され認証サーバ装置と共有される。クライアント側メインワンタイムＩＤ生成手段は、第１のメインシードデータに基づいてメインワンタイムＩＤを生成する。第１のクライアント側送信手段は、メインワンタイムＩＤを認証サーバ装置へ送信する。第１のクライアント側受信手段は、認証サーバ装置によりクライアント装置が正当なものであると判断された後に、認証サーバ装置から、認証サーバ装置の第１のワンタイムＩＤおよびサブシードデータを受信する。サブシードデータは、所定の通信単位ごとに更新されサービスサーバ装置と共有される。第１のクライアント側認証処理手段は、受信された認証サーバ装置のワンタイムＩＤおよび第１のメインシードデータに基づき認証サーバ装置の正当性を判断する。クライアント側サブワンタイムＩＤ生成手段は、認証サーバ装置が正当なものであると判断された後に、受信されたサブシードデータに基づきサブワンタイムＩＤを生成する。第２のクライアント側送信手段は、サブワンタイムＩＤをサービスサーバ装置へ送信する。第２のクライアント側受信手段は、サービスサーバ装置からサービスサーバ装置のサブワンタイムＩＤを受信する。第２のクライアント側認証処理手段は、第２の受信手段により受信されたサービスサーバ装置のサブワンタイムＩＤおよびサブシードデータに基づきサービスサーバ装置の正当性を判断する。【００１２】
各サービスサーバ装置は、サービスサーバ側記憶手段、サービスサーバ側メインワンタイムＩＤ生成手段、第１および第２のサービスサーバ側送信手段、第１および第２のサービスサーバ側受信手段、第１および第２のサービスサーバ側認証処理手段、並びにサービスサーバ側サブワンタイムＩＤ生成手段を有する。サービスサーバ側記憶手段は、第２のメインシードデータを記憶する。第２のメインシードデータは、第１のメインシードデータとは異なるものであって、所定の通信単位ごとに更新され認証サーバ装置と共有される。サービスサーバ側メインワンタイムＩＤ生成手段は、第２のメインシードデータに基づきメインワンタイムＩＤを生成する。第１のサービスサーバ側送信手段は、メインワンタイムＩＤを認証サーバ装置へ送信する。第１のサービスサーバ側受信手段は、認証サーバ装置によりサービスサーバ装置が正当なものであると判断された後に、認証サーバ装置から、認証サーバ装置の第２のワンタイムＩＤ、およびサブシードデータを受信する。第１のサービスサーバ側認証処理手段は、受信された認証サーバ装置のワンタイムＩＤおよび第２のメインシードデータに基づき認証サーバ装置の正当性を判断する。サービスサーバ側サブワンタイムＩＤ生成手段は、認証サーバ装置が正当なものであると判断された後に、サブシードデータに基づきサブワンタイムＩＤを生成する。第２のサービスサーバ側送信手段は、サブワンタイムＩＤをクライアント装置へ送信する。第２のサービスサーバ側受信手段は、クライアント装置からクライアント装置のサブワンタイムＩＤを受信する。第２のサービスサーバ側認証処理手段は、受信されたクライアント装置のサブワンタイムＩＤおよびサブシードデータに基づきクライアント装置の正当性を判断する。【００１３】
認証サーバ装置は、記憶手段、第１および第２の受信手段、第１および第２の認証処理手段、第１および第２のワンタイムＩＤ生成手段、並びに第１、第２および第３の送信手段を有する。記憶手段は、第１および第２のメインシードデータを記憶する。第１の受信手段は、クライアント装置から、クライアント装置のメインワンタイムＩＤを受信する。第１の認証処理手段は、受信されたクライアント装置のメインワンタイムＩＤおよび第１のメインシードデータに基づきクライアント装置の正当性を判断する。第１のワンタイムＩＤ生成手段は、第１のメインシードデータに基づいて認証サーバ装置の第１のワンタイムＩＤを生成する。第１の送信手段は、クライアント装置が正当なものであると判断された後に、認証サーバ装置の第１のワンタイムＩＤをクライアント装置へ送信する。第２のワンタイムＩＤ生成手段は、第２のメインシードデータに基づいて認証サーバ装置の第２のワンタイムＩＤを生成する。第２の送信手段は、認証サーバ装置の第２のワンタイムＩＤをサービスサーバ装置へ送信する。第２の受信手段は、サービスサーバ装置により認証サーバ装置が正当なものであると判断された後に、サービスサーバ装置から、サービスサーバ装置のメインワンタイムＩＤを受信する。第２の認証処理手段は、受信されたサービスサーバ装置のメインワンタイムＩＤおよび第２のメインシードデータに基づきサービスサーバ装置の正当性を判断する。第３の送信手段は、クライアント装置およびサービスサーバ装置の両方が正当なものであると判断された後に、サブシードデータをクライアント装置およびサービスサーバ装置の両方へ送信する。【００１４】
これによれば、各クライアント装置および各サービスサーバ装置は、認証サーバ装置との間で共有されるメインシードおよびそのメインシードに基づくワンタイムＩＤのみを管理すればよく、クライアント装置およびサービスサーバ装置の組み合わせごとにシードおよびワンタイムＩＤを管理する必要がない。また、認証処理の度に配信されてくるサブシードデータからワンタイムＩＤを生成するだけでよく、多くのクライアント装置またはサービスサーバ装置との認証処理が発生してもそれらの通信装置の負荷が増大が少なくて済む。これにより、認証処理時のクライアント装置およびサービスサーバ装置の負荷を大きくさせずに、クライアント装置とサービスサーバ装置との間でワンタイムＩＤによる相互認証を実行することができる。【００１５】
本発明に係る認証サーバ装置は、相互にワンタイムＩＤ認証を行う２つの通信装置に対してそれぞれのワンタイムＩＤを生成するためのサブシードデータを配信する認証サーバ装置である。この認証サーバ装置は、記憶手段、第１および第２の受信手段、第１および第２の認証処理手段、第１および第２のワンタイムＩＤ生成手段、並びに第１、第２および第３の送信手段を備える。記憶手段は、第１および第２のメインシードデータを記憶する。第１のメインシードデータは、所定の通信単位ごとに更新され第１の通信装置と共有される。第２のメインシードデータは、第１のメインシードデータとは異なるものであって、所定の通信単位ごとに更新され第２の通信装置と共有される。第１の受信手段は、第１の通信装置から、第１の通信装置のメインワンタイムＩＤを受信する。第１の認証処理手段は、受信された第１の通信装置のメインワンタイムＩＤおよび第１のメインシードデータに基づき第１の通信装置の正当性を判断する。第１のワンタイムＩＤ生成手段は、第１のメインシードデータに基づいて当該認証サーバ装置の第１のワンタイムＩＤを生成する。第１の送信手段は、当該認証サーバ装置の第１のワンタイムＩＤを第１の通信装置へ送信する。第２のワンタイムＩＤ生成手段は、第２のメインシードデータに基づいて認証サーバ装置の第２のワンタイムＩＤを生成する。第２の送信手段は、認証サーバ装置の第２のワンタイムＩＤを第２の通信装置へ送信する。第２の受信手段は、第２の通信装置から、第２の通信装置のメインワンタイムＩＤを受信する。第２の認証処理手段は、受信された第２の通信装置のメインワンタイムＩＤおよび第２のメインシードデータに基づき第２の通信装置の正当性を判断する。第３の送信手段は、第１の通信装置および第２の通信装置の両方が正当なものであると判断された後に、サブシードデータを第１の通信装置および第２の通信装置の両方へ送信する。サブシードデータは、ワンタイムＩＤによる相互認証に使用されるワンタイムＩＤをそれぞれ生成する際に使用される。また、サブシードデータは、第１の通信装置および第２の通信装置により共有され所定の通信単位ごとに更新される。【００１６】
これによれば、各通信装置は、認証サーバ装置との間で共有されるメインシードおよびそのメインシードに基づくワンタイムＩＤのみを管理すればよく、他の通信装置との組み合わせごとにシードおよびワンタイムＩＤを管理する必要がない。また、認証処理の度に配信されてくるサブシードデータからワンタイムＩＤを生成するだけでよく、多くの通信装置との認証処理が発生しても通信装置の負荷が増大が少なくて済む。これにより、認証処理時の２つの通信装置の負荷を大きくさせずに、２つの通信装置間でワンタイムＩＤによる相互認証を実行することができる。【００１７】
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置に加え、次のようにしてもよい。この場合、認証サーバ装置は、リスト送信手段と選択結果受信手段を備える。リスト送信手段は、複数の通信装置のリストを第１の通信装置へ送信する。選択結果受信手段は、そのリストから選択された１つの通信装置を特定する応答を受信する。そして、第２のワンタイムＩＤ生成手段は、選択された通信装置を第２の通信装置として、その通信装置と共有される第２のメインシードデータに基づいて認証サーバ装置の第２のワンタイムＩＤを生成し、第２の送信手段は、その第２のワンタイムＩＤを、選択された通信装置へ送信する。第２の受信手段は、選択された通信装置からメインワンタイムＩＤを受信し、第２の認証処理手段は、第２の受信手段により受信されたメインワンタイムＩＤ、およびその選択された通信装置と共有する第２のメインシードデータに基づき、その選択された通信装置の正当性を判断する。【００１８】
これによれば、サブシードに基づくワンタイムＩＤによる相互認証が可能な通信装置のリストが通知されるため、選択された通信装置との間で確実に、サブシードに基づくワンタイムＩＤによる相互認証を行うことができる。【００１９】
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置のいずれかに加え、次のようにしてもよい。この場合、第１のメインシードデータは、所定の通信単位ごとに更新され第１の通信装置と共有される第１の可変共通鍵で暗号化された状態で第１の通信装置との間で伝送される。第２のメインシードデータは、所定の通信単位ごとに更新され第２の通信装置と共有される第２の可変共通鍵で暗号化された状態で第２の通信装置との間で伝送される。第１の通信装置へのサブシードデータは、その第１の可変共通鍵で暗号化された状態で伝送される。第２の通信装置へのサブシードデータは、その第２の可変共通鍵で暗号化された状態で伝送される。【００２０】
これによれば、ワンタイムＩＤの生成に使用されるシードデータが所定の通信単位ごとに更新される可変共通鍵で暗号化された上で送受される。これにより、いずれかのシードデータを盗聴してなりすましを行うことが困難となる。【００２１】
本発明に係る記録媒体は、上記の認証サーバ装置のいずれかとしてコンピュータを機能させるためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体である。【００２２】
本発明に係る通信装置は、別の通信装置と相互にワンタイムＩＤ認証を行う通信装置である。この通信装置は、記憶手段、メインワンタイムＩＤ生成手段、第１および第２の送信手段、第１および第２の受信手段、第１および第２の認証処理手段、並びにサブワンタイムＩＤ生成手段を備える。記憶手段は、メインシードデータを記憶する。メインシードデータは、所定の通信単位ごとに更新され認証サーバ装置と共有される。メインワンタイムＩＤ生成手段は、メインシードデータに基づきメインワンタイムＩＤを生成する。第１の送信手段は、メインワンタイムＩＤを認証サーバ装置へ送信する。第１の受信手段は、認証サーバ装置から、認証サーバ装置のワンタイムＩＤ、およびサブシードデータを受信する。サブシードデータは、所定の通信単位ごとに更新され別の通信装置と共有される。第１の認証処理手段は、受信された認証サーバ装置のワンタイムＩＤおよびメインシードデータに基づき認証サーバ装置の正当性を判断する。サブワンタイムＩＤ生成手段は、認証サーバ装置が正当なものであると判断された後に、受信されたサブシードデータに基づきサブワンタイムＩＤを生成する。第２の送信手段は、サブワンタイムＩＤを別の通信装置へ送信する。第２の受信手段は、別の通信装置から別の通信装置のサブワンタイムＩＤを受信する。第２の認証処理手段は、受信された別の通信装置のサブワンタイムＩＤおよびサブシードデータに基づき別の通信装置の正当性を判断する。【００２３】
これによれば、この通信装置は、認証サーバ装置との間で共有されるメインシードおよびそのメインシードに基づくワンタイムＩＤのみを管理すればよく、他の通信装置それぞれについてシードおよびワンタイムＩＤを管理する必要がない。また、認証処理の度に配信されてくるサブシードデータからワンタイムＩＤを生成するだけでよく、多くの通信装置との認証処理が発生しても通信装置の負荷が増大が少なくて済む。これにより、認証処理時の２つの通信装置の負荷を大きくさせずに、他の通信装置との間でワンタイムＩＤによる相互認証を実行することができる。【００２４】
また、本発明に係る通信装置は、上記の通信装置に加え、次のようにしてもよい。この場合、通信装置は、リスト受信手段と選択結果送信手段を備える。リスト受信手段は、認証サーバ装置から複数の通信装置のリストを受信する。選択結果送信手段は、リストから選択された１つの通信装置を特定する応答を送信する。そして、第１の受信手段は、認証サーバ装置から、選択された通信装置と共有するサブシードデータを受信し、第２の送信手段は、サブワンタイムＩＤを、選択された通信装置へ送信する。第２の受信手段は、選択された通信装置からその通信装置のサブワンタイムＩＤを受信し、第２の認証処理手段は、受信されたその通信装置のサブワンタイムＩＤ、および選択された通信装置と共有するサブシードデータに基づきその通信装置の正当性を判断する。【００２５】
これによれば、サブシードに基づくワンタイムＩＤによる相互認証が可能な通信装置のリストが通知されるため、選択された通信装置との間で確実に、サブシードに基づくワンタイムＩＤによる相互認証を行うことができる。【００２６】
また、本発明に係る通信装置は、上記の通信装置のいずれかに加え、次のようにしてもよい。この場合、メインシードデータは、所定の通信単位ごとに更新され認証サーバ装置と共有される可変共通鍵で暗号化された状態で、認証サーバ装置との間で伝送される。サブシードデータは、その可変共通鍵で暗号化された状態で伝送され、受信後に復号される。【００２７】
これによれば、ワンタイムＩＤの生成に使用されるシードデータが所定の通信単位ごとに更新される可変共通鍵で暗号化された上で送受される。これにより、いずれかのシードデータを盗聴してなりすましを行うことが困難となる。【００２８】
本発明に係る記録媒体は、上記の通信装置のいずれかとしてコンピュータを機能させるためのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００２９】
本発明によれば、認証処理時のクライアントおよびサービスサーバの負荷を大きくさせずに、クライアントとサービスサーバとの間でワンタイムＩＤによる相互認証を実行することができる。
【図面の簡単な説明】
【００３０】
【図１】図１は、本発明の実施の形態１に係る認証システムの構成を示すブロック図である。
【図２】図２は、図１の認証サーバ装置の構成を示すブロック図である。
【図３】図３は、図２のサービスサーバテーブルの一例を示す図である。
【図４】図４は、図１のクライアント装置の構成を示すブロック図である。
【図５】図５は、図１のサービスサーバ装置の構成を示すブロック図である。
【図６】図６は、実施の形態１におけるクライアント装置、認証サーバ装置およびサービスサーバ装置の間の認証処理について説明する図である。
【図７】図７は、実施の形態１におけるクライアント装置と認証サーバ装置との相互認証処理について説明する図である。
【図８】図８は、実施の形態１における認証サーバ装置とサービスサーバ装置との相互認証処理について説明する図である。
【図９】図９は、実施の形態１におけるクライアント装置とサービスサーバ装置との相互認証処理について説明する図である。
【図１０】図１０は、本発明の実施の形態２に係る認証システムの構成を示すブロック図である。
【符号の説明】
【００３１】
１，１０１  認証サーバ装置
２  クライアント装置（通信装置の一例）
３  サービスサーバ装置（通信装置の一例）
１１  データ格納部（記憶手段の一例，記録媒体の一例）
１２  通信処理部（第１の受信手段の一例，第１の送信手段の一例，第２の送信手段の一例，第２の受信手段の一例，第３の送信手段の一例，リスト送信手段の一例，選択結果受信手段の一例）
１３  クライアント認証処理部（第１の認証処理手段の一例，第１のワンタイムＩＤ生成手段の一例）
１４  サービスサーバ認証処理部（第２のワンタイムＩＤ生成手段の一例，第２の認証処理手段の一例）
２１  データ格納部（クライアント側記憶手段の一例，通信装置における記憶手段の一例，記録媒体の一例）
２２  通信処理部（第１のクライアント側送信手段の一例，第１のクライアント側受信手段の一例，第２のクライアント側送信手段の一例，第２のクライアント側受信手段の一例，通信装置における第１の送信手段の一例，通信装置における第１の受信手段の一例，通信装置における第２の送信手段の一例，通信装置における第２の受信手段の一例，リスト受信手段の一例，選択結果送信手段の一例）
２６  認証処理部（クライアント側メインワンタイムＩＤ生成手段の一例，第１のクライアント側認証処理手段の一例，クライアント側サブワンタイムＩＤ生成手段の一例，第２のクライアント側認証処理手段の一例，通信装置におけるメインワンタイムＩＤ生成手段の一例，通信装置における第１の認証処理手段の一例，通信装置におけるサブワンタイムＩＤ生成手段の一例，通信装置における第２の認証処理手段の一例）
３１  データ格納部（サービスサーバ側記憶手段の一例，通信装置における記憶手段の一例，記録媒体の一例）
３２  通信処理部（第１のサービスサーバ側送信手段の一例，第１のサービスサーバ側受信手段の一例，第２のサービスサーバ側送信手段の一例，第２のサービスサーバ側受信手段の一例，通信装置における第１の送信手段の一例，通信装置における第１の受信手段の一例，通信装置における第２の送信手段の一例，通信装置における第２の受信手段の一例）
３３  認証処理部（サービスサーバ側メインワンタイムＩＤ生成手段の一例，第１のサービスサーバ側認証処理手段の一例，サービスサーバ側サブワンタイムＩＤ生成手段の一例，第２のサービスサーバ側認証処理手段の一例，通信装置におけるメインワンタイムＩＤ生成手段の一例，通信装置における第１の認証処理手段の一例，通信装置におけるサブワンタイムＩＤ生成手段の一例，通信装置における第２の認証処理手段の一例）
１０２  ピア装置（通信装置の一例）
【発明を実施するための最良の形態】
【００３２】
以下、図に基づいて本発明の実施の形態を説明する。【００３３】
実施の形態１．
図１は、本発明の実施の形態１に係る認証システムの構成を示すブロック図である。図１において、認証サーバ装置１は、各クライアント装置２との間で相互にワンタイムＩＤ認証を行い、また、各サービスサーバ装置３との間で相互にワンタイムＩＤ認証を行い、あるクライアント装置２とあるサービスサーバ装置３との間のワンタイムＩＤ認証に使用されるサブシードをそのクライアント装置２およびサービスサーバ装置３に配信する。クライアント装置２は、サービスサーバ装置３との間で相互にワンタイムＩＤ認証を行った後、サービスサーバ装置３からネットワーク４を介してサービスの提供を受ける装置である。サービスサーバ装置３は、正当なクライアント装置２に対して、ネットワーク４を介して各種サービスを提供する装置である。ネットワーク４は、インターネットなどのコンピュータネットワークおよびそれに接続するための通信路である。【００３４】
認証サーバ装置１は、コンピュータ装置におけるＣＰＵが認証サーバプログラムを実行することにより実現される。図２は、図１の認証サーバ装置１の構成を示すブロック図である。【００３５】
図２において、データ格納部１１は、図示せぬ認証サーバプログラム、認証処理に必要なデータ１１ａ〜１１ｅなどを格納する記録媒体である。データ格納部１１は、ハードディスクドライブ、半導体メモリなどである。【００３６】
メインシードテーブル１１ａは、複数のクライアント装置２のそれぞれと共有するメインシードデータを有する。このメインシードデータは、ワンタイムＩＤ（メインワンタイムＩＤ）を生成する際に使用されるデータである。１つのメインシードデータから、１つのクライアント装置２のワンタイムＩＤ、およびそのクライアント装置２に対する認証サーバ装置１のワンタイムＩＤが生成される。実施の形態１では、このメインシードデータとして、乱数Ｒ，Ｑが使用される。乱数Ｒは、クライアント装置２により認証セッションごとに生成される。乱数Ｑは、認証サーバ装置１（クライアント認証処理部１３）により認証セッションごとに生成される。ある認証セッションにおいて、次の認証セッションの乱数Ｒが、暗号化された上でワンタイムＩＤとともにクライアント装置２から認証サーバ装置１へ送信され、次の認証セッションの乱数Ｑが、暗号化された上でワンタイムＩＤとともに認証サーバ装置１からクライアント装置２へ送信される。これにより、同一のメインシードデータがクライアント装置２と認証サーバ装置１とで共有される。この際の暗号化に使用される共通秘密鍵も、メインシードデータを使用して認証セッションごとに更新される。【００３７】
クライアントテーブル１１ｂは、複数のクライアント装置２のワンタイムＩＤを有する。クライアントテーブル１１ｂに記録されている各ワンタイムＩＤは、ある認証セッションでクライアント装置２が認証された後、次セッションのメインシードデータから計算され記録されたものである。【００３８】
メインシードテーブル１１ｃは、１または複数のサービスサーバ装置３のそれぞれと共有するメインシードデータを有する。メインシードデータは、ワンタイムＩＤ（メインワンタイムＩＤ）を生成する際に使用されるデータである。１つのメインシードデータから、１つのサービスサーバ装置３のワンタイムＩＤ、およびそのクライアント装置２に対する認証サーバ装置１のワンタイムＩＤが生成される。なお、認証サーバ装置１において、クライアント装置２と共有するメインシードデータと、サービスサーバ装置３と共有するメインシードデータとは、互いに独立して管理される。実施の形態１では、このメインシードデータとして、乱数Ｈ，Ｇが使用される。乱数Ｈは、認証サーバ装置１（クライアント認証処理部１３）により認証セッションごとに生成される。乱数Ｇは、サービスサーバ装置３により認証セッションごとに生成される。認証サーバ装置１とサービスサーバ装置３との間のワンタイムＩＤ認証処理は、クライアント装置２と認証サーバ装置１との間のワンタイムＩＤ認証と同様に行われる。【００３９】
サービスサーバテーブル１１ｄは、１または複数のサービスサーバ装置３のワンタイムＩＤを有する。サービスサーバテーブル１１ｄに記録されている各ワンタイムＩＤは、ある認証セッションでサービスサーバ装置３が認証された後、次セッションのメインシードデータから計算され記録されたものである。図３は、図２のサービスサーバテーブル１１ｄの一例を示す図である。サービスサーバテーブル１１ｄでは、ワンタイムＩＤとサーバ情報と有するレコードが各サービスサーバ装置３について登録されている。サーバ情報は、サービスサーバ装置３のＵＲＩ（Uniform Resource Identifier ）とサービス名（あるいはサーバ名）などからなる。【００４０】
サブシードテーブル１１ｅは、あるクライアント装置２とあるサービスサーバ装置３とにより共有されるサブシードデータを複数有する。サブシードデータは、クライアント装置２とサービスサーバ装置３の２つの装置とにより共有されるワンタイムＩＤを生成する際に使用されるデータである。実施の形態１では、サブシードデータは、２つの乱数Ｒｓｓ，Ｑｓｓを有する。乱数Ｒｓｓからクライアント装置２のワンタイムＩＤが生成され、乱数Ｑｓｓからサービスサーバ装置３のワンタイムＩＤが生成される。サブシードデータは、予め複数生成されサブシードテーブル１１ｅに記録される。サブシードテーブル１１ｅにおける各サブシードデータを使用するクライアント装置２とサービスサーバ装置３は特定されておらず、各サブシードデータは、認証セッションの要求が発生したクライアント装置２とサービスサーバ装置３にその都度順次割り当てられる。各サブシードデータは、いずれかのクライアント装置２といずれかのサービスサーバ装置３とに１回だけ配信される。配信されたサブシードデータは、サブシードテーブル１１ｅから削除されるか、使用済データとして保持される。【００４１】
なお、メインシードまたはサブシードからワンタイムＩＤを生成する場合、メインシードまたはサブシードの一部または全部を引数とした一方向性関数の関数値、またはその関数値に基づき生成される値がワンタイムＩＤとされる。一方向性関数としては、ＭＤ５などのハッシュ関数が使用される。【００４２】
通信処理部１２は、ネットワーク４を介してクライアント装置２およびサービスサーバ装置３とデータ通信を行う処理部である。通信処理部１２は、ネットワークインタフェースカード、モデムなどといった図示せぬ通信回路を制御してデータ通信を行う。【００４３】
クライアント認証処理部１３は、各クライアント装置２との間で、ワンタイムＩＤによる相互認証、およびメインシードの共有化を行う処理部である。サービスサーバ認証処理部１４は、各サービスサーバ装置３との間で、ワンタイムＩＤによる相互認証、およびメインシードの共有化を行う処理部である。サブシード発行処理部１５は、クライアント装置２およびサービスサーバ装置３にサブシードデータを配信する処理部である。サブシード発行処理部１５は、擬似乱数を生成し、サブシードデータとしてサブシードテーブル１１ｅに格納してもよい。サブシード発行処理部１５は、サブシードテーブル１１ｅ内の未使用のサブシードデータの数を監視し、所定の数以下になった場合に、サブシードデータを生成し、サブシードテーブル１１ｅに追加するようにしてもよい。【００４４】
次に、クライアント装置２は、コンピュータ装置におけるＣＰＵが認証処理プログラムを実行することにより実現される。図４は、図１のクライアント装置２の構成を示すブロック図である。【００４５】
図４において、データ格納部２１は、図示せぬ認証処理プログラム、認証処理に必要なデータ２１ａ，２１ｂなどを格納する記録媒体である。データ格納部２１は、ハードディスクドライブ、半導体メモリなどである。メインシードデータ２１ａは、認証サーバ装置１と共有するメインシードデータである。認証サーバデータ２１ｂは、認証サーバ装置１の正当性を判断するためのデータである。ここでは、認証サーバデータ２１ｂは、メインシードデータから生成された認証サーバ装置１のワンタイムＩＤである。【００４６】
通信処理部２２は、ネットワーク４を介して認証サーバ装置１およびサービスサーバ装置３とデータ通信を行う処理部である。通信処理部２２は、ネットワークインタフェースカード、モデムなどといった図示せぬ通信回路を制御してデータ通信を行う。ＵＩ処理部２５は、キーボードなどの入力装置２３およびディスプレイなどの表示装置２４との間で電気信号の送受を行って、ユーザインタフェースを実現する処理部である。【００４７】
認証処理部２６は、認証サーバ装置１およびサービスサーバ装置３との間で、ワンタイムＩＤによる相互認証を行う処理部である。また、認証処理部２６は、認証サーバ装置１との間で、メインシードの共有化を行う処理部である。アプリケーション処理部２７は、サブシードに基づき相互認証を完了した後に、サービスサーバ装置３との間でサービスに関するデータ通信を行う処理部である。【００４８】
次に、サービスサーバ装置３は、コンピュータ装置におけるＣＰＵが認証処理プログラムを実行することにより実現される。図５は、図１のサービスサーバ装置３の構成を示すブロック図である。【００４９】
図５において、データ格納部３１は、図示せぬ認証処理プログラム、認証処理に必要なデータ３１ａ，３１ｂなどを格納する記録媒体である。データ格納部３１は、ハードディスクドライブ、半導体メモリなどである。メインシードデータ３１ａは、認証サーバ装置１と共有するメインシードデータである。認証サーバデータ３１ｂは、認証サーバ装置１の正当性を判断するためのデータである。ここでは、認証サーバデータ３１ｂは、メインシードデータから生成された認証サーバ装置１のワンタイムＩＤである。【００５０】
通信処理部３２は、ネットワーク４を介して認証サーバ装置１およびクライアント装置２とデータ通信を行う処理部である。通信処理部３２は、ネットワークインタフェースカード、モデムなどといった図示せぬ通信回路を制御してデータ通信を行う。【００５１】
認証処理部３３は、認証サーバ装置１およびクライアント装置２との間で、ワンタイムＩＤによる相互認証を行う処理部である。また、認証処理部３３は、認証サーバ装置１との間で、メインシードの共有化を行う処理部である。サーバ処理部３４は、サブシードに基づき相互認証を完了した後に、クライアント装置２との間でサービスに関するデータ通信を行う処理部である。【００５２】
次に、上記認証システムにおける認証処理について説明する。図６は、実施の形態１におけるクライアント装置２、認証サーバ装置１およびサービスサーバ装置３の間の認証処理について説明する図である。【００５３】
クライアント装置２からサービスサーバ装置３へのアクセス要求が発生した場合、まず、クライアント装置２の認証処理部２６と認証サーバ装置１のクライアント認証処理部１３との間でメインワンタイムＩＤによる相互認証が実行される（ステップＳ１）。【００５４】
この相互認証において相互に通信相手の装置が正当なものであると判断されると、認証サーバ装置１のクライアント認証処理部１３は、サービスサーバテーブル１１ｄにおけるサーバ情報のリスト（以下、サーバリスト）を読み出し、通信処理部１２を介してクライアント装置２へ送信する。このとき、サービスサーバ装置３のメインワンタイムＩＤは送信されない。クライアント装置２では、サーバリストが通信処理部２２を介して認証処理部２６により受信され、サーバ情報が表示装置２４に表示される。そして、入力装置２３へのユーザの操作に基づき、いずれかのサービスサーバ装置３が選択されると（ステップＳ３）、選択結果が通信処理部２２によりサーバ装置１へ送信される（ステップＳ４）。【００５５】
認証サーバ装置１では、その選択結果が通信処理部１２により受信されサービスサーバ認証処理部１４に供給される。そして、サービスサーバ認証処理部１４は、その選択結果で指定されたサービスサーバ装置３の認証処理部３３との間でワンタイムＩＤによる相互認証を実行する（ステップＳ５）。【００５６】
この相互認証において相互に通信相手の装置が正当なものであると判断されると、認証サーバ装置１のサブシード発行処理部１５は、サブシードテーブル１１ｅから未使用のサブシードデータを読み出し、通信処理部１２を介して、ステップＳ１で相互認証を行ったクライアント装置２およびステップＳ５で相互認証を行ったサービスサーバ装置３へ送信する（ステップＳ６，Ｓ７）。なお、その際、認証サーバ装置１は、メインシード送信時に使用した共通秘密鍵を使用して暗号化した上でサブシードデータを送信する。つまり、クライアント装置２へは、クライアント装置２と共有される共通秘密鍵で暗号化されたサブシードデータが送信され、サービスサーバ装置３へは、サービスサーバ装置３と共有される共通秘密鍵で暗号化されたサブシードデータが送信される。また、クライアント装置２へは、サブシードデータとともに、そのサービスサーバ装置３のサーバ情報を送信するようにしてもよい。また、サービスサーバ装置２へは、サブシードデータとともに、そのクライアント装置２のクライアント情報を送信するようにしてもよい。クライアント情報は、クライアント装置２のＩＰアドレス、機器名などとされる。【００５７】
そのサブシードデータは、そのクライアント装置２およびそのサービスサーバ装置３により受信される。そして、各装置２，３において、そのサブシードデータからワンタイムＩＤが生成され、両者の間でワンタイムＩＤに基づく相互認証が実行される（ステップＳ８）。そのとき、サブシードデータが暗号化されている場合には、各装置２，３では、共通秘密鍵で復号される。【００５８】
この相互認証において相互に通信相手の装置が正当なものであると判断されると、クライアント装置２のアプリケーション処理部２７は、通信処理部２２を介してサービスサーバ装置３とのデータ通信を開始する（ステップＳ９）。一方、サービスサーバ装置３では、サーバ処理部３４は、通信処理部３２を介してクライアント装置２のアプリケーション処理部２７との間でデータ通信を行う。これによりサービスが提供される。【００５９】
なお、１度使用されたサブシードおよびそれによるワンタイムＩＤは、クライアント装置２およびサービスサーバ装置３から削除される。または、次回のサブシードデータおよびそれによるワンタイムＩＤにより上書きされる。【００６０】
このようにして、認証サーバ装置１から配信されたサブシードデータに基づき、クライアント装置２およびサービスサーバ装置３は、ワンタイムＩＤをそれぞれ生成し、ワンタイムＩＤによる相互認証を実行する。【００６１】
以下に、各装置１，２，３間の相互認証処理の詳細について説明する。【００６２】
（１）クライアント装置２と認証サーバ装置１との相互認証処理【００６３】
図７は、実施の形態１におけるクライアント装置２と認証サーバ装置１との相互認証処理について説明する図である。ここでは、メインシードデータにおける乱数Ｒをクライアント乱数、乱数Ｑをサーバ乱数という。【００６４】
まず、認証サーバ装置１およびクライアント装置２は、初期値として、クライアント乱数Ｒ（０）、サーバ乱数Ｑ（０）および可変共通鍵Ｋ（０）を共有している。クライアント乱数Ｒ（０）、サーバ乱数Ｑ（０）は、メインシードデータの初期値となる。これらの初期値は、データ格納部１１，２１に予め格納される。なお、可変共通鍵Ｋ（０）は、装置１，２により、後述の式（４）に基づき生成されるようにしてもよい。その場合、前セッションの可変共通鍵の代わりに、真性乱数Ｚが使用される。この真性乱数Ｚは、初期状態にて、装置１，２により共有される。そして、１回の認証セッションごとに、認証サーバ装置１およびクライアント装置２に保持されているクライアント乱数Ｒ（ｉ）、サーバ乱数Ｑ（ｉ）および可変共通鍵Ｋ（ｉ）が更新されていく。【００６５】
ここで、ｉ回の認証セッションが完了した後のクライアント乱数Ｒ（ｉ）、サーバ乱数Ｑ（ｉ）および可変共通鍵Ｋ（ｉ）が共有されている状態から、（ｉ＋１）回目の認証セッションが発生し完了するまでの処理について図７を参照して説明する。【００６６】
この状態では、クライアント乱数Ｒ（ｉ）、サーバ乱数Ｑ（ｉ）および可変共通鍵Ｋ（ｉ）が共有されている（ステップＳ１１，Ｓ３１）。【００６７】
まず、クライアント装置２の認証処理部２６は、式（１）に従って、現セッションｉについての、クライアント装置２のワンタイムＩＤ：Ｃ（ｉ）を生成する（ステップＳ１２）。ただし、式（１）におけるｈａｓｈは、ＭＤ５などのハッシュ関数である。このハッシュ関数としては、暗号鍵を使用せずにダイジェストを生成するハッシュ関数が使用される。このハッシュ関数には、多少の衝突が発生してもよく、計算量があまり多くないものが選択される。【００６８】
Ｃ（ｉ）＝ｈａｓｈ（Ｒ(ｉ），Ｑ（ｉ）)  ・・・（１）【００６９】
次に、認証処理部２６は、次セッションについてのクライアント乱数Ｒ（ｉ＋１）を発生する（ステップＳ１３）。また、このクライアント乱数Ｒ（ｉ＋１）は、次セッションのワンタイムＩＤ：Ｃ（ｉ＋１）および認証サーバ装置１の現セッションのワンタイムＩＤ：Ｓ（ｉ）の生成に使用される。また、認証処理部２６は、所定の暗号化関数Ｆｃに従って、可変共通鍵Ｋ（ｉ）でクライアント乱数Ｒ（ｉ＋１）を暗号化する（ステップＳ１４）。【００７０】
そして、認証処理部２６は、通信処理部２２を介して、ワンタイムＩＤ：Ｃ（ｉ）および暗号化されたクライアント乱数Ａｃを、認証要求とともに、認証サーバ装置１へ送信する（ステップＳ１５）。【００７１】
認証サーバ装置１では、通信処理部１２が、認証要求、ワンタイムＩＤ：Ｃ（ｉ）および暗号化されたクライアント乱数Ａｃを受信する（ステップＳ３２）。クライアント認証処理部１３は、認証要求が受信されると、クライアントテーブル１１ｂを参照し、受信されたワンタイムＩＤ：Ｃ（ｉ）と同一のワンタイムＩＤがクライアントテーブル１１ｂに登録されているか否かを判定する（ステップＳ３３）。つまり、通信相手の正当性は、自己の有するシード（メインシードまたはサブシード）から得られる通信相手の真正なワンタイムＩＤと通信相手から受信されたワンタイムＩＤとが一致するか否かに基づいて判断される（以下、同様）。受信されたワンタイムＩＤ：Ｃ（ｉ）がクライアントテーブル１１ｂに登録されていない場合には、認証処理を中止する（ステップＳ３４）。【００７２】
受信されたワンタイムＩＤ：Ｃ（ｉ）がクライアントテーブル１４ｃに登録されている場合、クライアント認証処理部１３は、認証要求を送信したクライアント装置２が正当なクライアントであると判断するとともに、クライアント装置２を特定する。【００７３】
その後、クライアント認証処理部１３は、所定の復号関数Ｆｄに従って、暗号化されているクライアント乱数Ａｃを可変共通鍵Ｋ（ｉ）で復号し、平文のクライアント乱数Ｒ（ｉ＋１）を取得する（ステップＳ３５）。なお、復号関数Ｆｄは、クライアント装置２で暗号化関数Ｆｃにより暗号化された暗号文を平文に変換する関数である。【００７４】
次に、クライアント認証処理部１３は、保持しているサーバ乱数Ｑ（ｉ）とそのクライアント乱数Ｒ（ｉ＋１）から、現セッションについての認証サーバ装置１のワンタイムＩＤ：Ｓ（ｉ）を式（２）に従って生成する（ステップＳ３６）。ただし、式（２）におけるｈａｓｈは、ＭＤ５などのハッシュ関数である。【００７５】
Ｓ（ｉ）＝ｈａｓｈ（Ｒ（ｉ＋１），Ｑ（ｉ））  ・・・（２）【００７６】
また、クライアント装置２が正当なクライアントであると判断された後、クライアント認証処理部１３は、特定されたクライアント装置２との間で使用される次セッションのサーバ乱数Ｑ（ｉ＋１）を生成する（ステップＳ３７）。このサーバ乱数Ｑ（ｉ＋１）は、次セッションのワンタイムＩＤ：Ｃ（ｉ＋１），Ｓ（ｉ＋１）の生成に使用される。その際、クライアント認証処理部１３は、次セッションについてのクライアント装置２のワンタイムＩＤ：Ｃ（ｉ＋１）がクライアントテーブル１１ｂに登録済みで未使用のワンタイムと重複しないようにサーバ乱数Ｑ（ｉ＋１）を生成する。【００７７】
次に、クライアント認証処理部１３は、所定の暗号化関数Ｆｃに従って、可変共通鍵Ｋ（ｉ）でサーバ乱数Ｑ（ｉ＋１）を暗号化する（ステップＳ３８）。【００７８】
そして、クライアント認証処理部１３は、通信処理部１２を介して、認証されたことを示す返答、並びにワンタイムＩＤ：Ｓ（ｉ）および暗号化されたサーバ乱数Ａｓを、認証要求の送信元のクライアント装置２へ送信する（ステップＳ３９）。【００７９】
認証されたことを示す返答、並びにワンタイムＩＤ：Ｓ（ｉ）および暗号化されたサーバ乱数Ａｓを送信した後、クライアント認証処理部１３は、今回認証を行ったクライアント装置２の次セッションについてのワンタイムＩＤ：Ｃ（ｉ＋１）をクライアントテーブル１１ｂに登録する（ステップＳ４０）。その際、そのクライアント装置２のワンタイムＩＤ：Ｃ（ｉ）が、ワンタイムＩＤ：Ｃ（ｉ＋１）で上書きされ更新される。次セッションについてのワンタイムＩＤ：Ｃ（ｉ＋１）は、式（３）に従って生成される。ただし、式（３）におけるｈａｓｈは、式（１）と同一なハッシュ関数である。【００８０】
Ｃ（ｉ＋１）＝ｈａｓｈ（Ｒ（ｉ＋１），Ｑ（ｉ＋１））  ・・・（３）【００８１】
その後、クライアント認証処理部１３は、次セッションの可変共通鍵Ｋ（ｉ＋１）を式（４）に従って生成する（ステップＳ４１）。ただし、式（４）におけるｈａｓｈ２は、ハッシュ関数である。【００８２】
Ｋ（ｉ＋１）＝ｈａｓｈ２（Ｋ（ｉ），Ｒ（ｉ＋１），Ｑ（ｉ＋１））・・・（４）【００８３】
そして、クライアント認証処理部１３は、特定されたクライアント装置２についてのクライアント乱数Ｒ（ｉ）、サーバ乱数Ｑ（ｉ）および可変共通鍵Ｋ（ｉ）を、クライアント乱数Ｒ（ｉ＋１）、サーバ乱数Ｑ（ｉ＋１）および可変共通鍵Ｋ（ｉ＋１）へ更新する（ステップＳ４２）。【００８４】
一方、クライアント装置２では、通信処理部２２が、返答、ワンタイムＩＤ：Ｓ（ｉ）および暗号化されたサーバ乱数Ａｓを受信する（ステップＳ１６）。認証処理部２６は、返答が受信されると、認証サーバデータ２１ｂにおける認証サーバ装置１の真正なワンタイムＩＤ：Ｙと、受信されたワンタイムＩＤ：Ｓ（ｉ）とを比較して認証サーバ装置１の正当性を判断する（ステップＳ１７，Ｓ１８）。なお、認証サーバ装置１の真正なワンタイムＩＤ：Ｙは、式（５）に従って生成される。ただし、式（５）におけるｈａｓｈは、式（２）と同一なハッシュ関数である。【００８５】
Ｙ＝ｈａｓｈ（Ｒ(ｉ＋１），Ｑ（ｉ））  ・・・（５）【００８６】
認証処理部２６は、受信されたワンタイムＩＤ：Ｓ（ｉ）が真正なワンタイムＩＤ：Ｙと同一ではない場合、返答した認証サーバ装置１を不正サーバと判断し、認証処理を中止する（ステップＳ１９）。【００８７】
一方、認証処理部２６は、受信されたワンタイムＩＤ：Ｓ（ｉ）が真正なワンタイムＩＤ：Ｙと同一である場合、返答した認証サーバ装置１が正当なサーバであると判断するとともに、認証サーバ装置１を特定する。【００８８】
その後、認証処理部２６は、所定の復号関数Ｆｄに従って、暗号化されているクライアント乱数Ａｓを可変共通鍵Ｋ（ｉ）で復号し、平文のサーバ乱数Ｑ（ｉ＋１）を取得する（ステップＳ２０）。なお、復号関数Ｆｄは、サーバ装置１における暗号化関数Ｆｃにより暗号化された暗号文を平文に変換する関数である。次に、認証処理部２６は、次セッションの可変共通鍵Ｋ（ｉ＋１）を式（４）に従って生成する（ステップＳ２１）。【００８９】
そして、認証処理部２６は、クライアント乱数Ｒ（ｉ）、サーバ乱数Ｑ（ｉ）および可変共通鍵Ｋ（ｉ）をクライアント乱数Ｒ（ｉ＋１）、サーバ乱数Ｑ（ｉ＋１）および可変共通鍵Ｋ（ｉ＋１）へ更新する（ステップＳ２２）。【００９０】
このようにして、１認証セッションにおいて、ワンタイムＩＤ：Ｃ（ｉ），Ｓ（ｉ）によりクライアント装置２および認証サーバ装置１が相互に認証を行うとともに、共有している情報であるクライアント乱数Ｒ（ｉ）、サーバ乱数Ｑ（ｉ）および可変共通鍵Ｋ（ｉ）がクライアント装置２および認証サーバ装置１のそれぞれにおいて更新される。【００９１】
（２）認証サーバ装置１とサービスサーバ装置３との相互認証処理【００９２】
認証サーバ装置１とサービスサーバ装置３との相互認証処理は、クライアント装置２と認証サーバ装置１との相互認証処理と同様であるので、詳細な説明は省略する。図８は、実施の形態１における認証サーバ装置１とサービスサーバ装置３との相互認証処理について説明する図である。認証サーバ装置１のサービスサーバ認証処理部１４が、クライアント装置２の認証処理部２６と同様の処理を実行し（ステップＳ５１〜Ｓ６２）、サービスサーバ装置３の認証処理部３３が、認証サーバ装置１のクライアント認証処理部１３と同様の処理を実行する（ステップＳ７１〜Ｓ８２）。ただし、通信相手が正当なものであるか否かの判断を行う際には、サービスサーバテーブル１１ｄまたは認証サーバデータ３１ｂが参照される。【００９３】
（３）クライアント装置２とサービスサーバ装置３との相互認証処理【００９４】
図９は、実施の形態１におけるクライアント装置２とサービスサーバ装置３との相互認証処理について説明する図である。【００９５】
クライアント装置２では、サブシードデータＲｓｓ，Ｑｓｓが通信処理部２２により受信される（ステップＳ９１）。認証処理部２６は、サブシードデータが暗号化関数Ｆｃに従って可変共通鍵Ｋ（ｉ）（またはＫ（ｉ＋１））で暗号化されている場合には、復号関数Ｆｄに従って可変共通鍵Ｋ（ｉ）（またはＫ（ｉ＋１））で復号する。認証処理部２６は、そのサブシードデータから、そのサービスサーバ装置３に対して１度だけ有効なクライアント装置２のワンタイムＩＤ（以下、サブワンタイムＩＤという）、およびそのサービスサーバ装置３のワンタイムＩＤ（以下、サブワンタイムＩＤという）を生成する（ステップＳ９２）。なお、クライアント装置２のサブワンタイムＩＤ：Ｃｓｓは、式（６）に従って生成され、サービスサーバ装置３のサブワンタイムＩＤ：Ｓｓｓは、式（７）に従って生成される。ただし、式（６）および式（７）における関数ｈａｓｈは、ハッシュ関数である。このハッシュ関数は、式（１）の関数ｈａｓｈと同一のものでも異なるものでもよい。【００９６】
Ｃｓｓ＝ｈａｓｈ（Ｒｓｓ）  ・・・（６）
Ｓｓｓ＝ｈａｓｈ（Ｑｓｓ）  ・・・（７）【００９７】
そして、認証処理部２６は、クライアント装置２のそのワンタイムＩＤを通信処理部２２を介してサービスサーバ装置３へ送信する（ステップＳ９３）。【００９８】
一方、サービスサーバ装置３では、サブシードデータが通信処理部３２により受信される（ステップＳ１０１）。認証処理部３３は、サブシードデータが暗号化されている場合には、可変共通鍵Ｋｓ（ｉ）（またはＫｓ（ｉ＋１））で復号する。認証処理部３３は、そのサブシードデータから、そのクライアント装置２に対して１度だけ有効なサービスサーバ装置３のサブワンタイムＩＤ、およびそのクライアント装置２のサブワンタイムＩＤを生成する（ステップＳ１０２）。【００９９】
そして、通信処理部３２によりクライアント装置２のサブワンタイムＩＤが受信されると（ステップＳ１０３）、認証処理部３３は、受信されたサブワンタイムＩＤと、サーバ装置３で生成したクライアント装置２の真正なサブワンタイムＩＤとを比較して、そのクライアント装置２の正当性を判断する（ステップＳ１０４）。そのクライアント装置２が正当なものであると判断した場合、認証処理部３３は、通信処理部３２を介してそのクライアント装置２へ、サービスサーバ装置３のサブワンタイムＩＤを送信する（ステップＳ１０５）。なお、そのクライアント装置２が正当なものではないと判断された場合、サービスサーバ装置３は、その通信相手との通信を中止する（ステップＳ１０６）。【０１００】
クライアント装置２において、通信処理部２２によりサービスサーバ装置３のサブワンタイムＩＤが受信されると（ステップＳ９４）、認証処理部２６は、受信されたサブワンタイムＩＤと、クライアント装置２で生成したサービスサーバ装置３の真正なサブワンタイムＩＤとを比較して、そのサービスサーバ装置３の正当性を判断する（ステップＳ９５）。そのサービスサーバ装置３が正当なものであると判断した場合、アプリケーション処理部２７が通信を開始する。なお、そのクライアント装置２が正当なものではないと判断された場合、クライアント装置２は、その通信相手との通信を中止する（ステップＳ９６）。【０１０１】
以上のように、上記実施の形態１によれば、各クライアント装置２および各サービスサーバ装置３は、認証サーバ装置１との間で共有されるメインシードおよびそのメインシードに基づくワンタイムＩＤのみを管理すればよく、クライアント装置２およびサービスサーバ装置３の組み合わせごとにシードおよびワンタイムＩＤを管理する必要がない。また、認証処理の度に配信されてくるサブシードデータからワンタイムＩＤを生成するだけでよく、多くのクライアント装置２またはサービスサーバ装置３との認証処理が発生しても、それらの装置２，３の負荷が増大が少なくて済む。これにより、認証処理時のクライアント装置２およびサービスサーバ装置３の負荷を大きくさせずに、クライアント装置２とサービスサーバ装置３との間でワンタイムＩＤによる相互認証を実行することができる。また、クライアント装置２および／またはサーバ装置３が追加される場合、その装置２，３と認証サーバ装置１とのワンタイムＩＤ認証が確立されるだけで、既存の装置２，３に影響を与えることなく、その装置２，３を当該認証システムに参加させることができる。【０１０２】
また、このシステムは、３者間のすべてでワンタイムＩＤによる相互認証が行われるため、良好な耐タンパ性を有している。さらに、認証セッションごとに変化するシードからワンタイムＩＤが生成されるとともに、認証セッションごとに変化する可変共通鍵で暗号化された上でシードが伝送され、次に使用されるワンタイムＩＤ自体がネットワーク４を介して伝送されないため、第三者がワンタイムＩＤを生成することは困難である。特に、認証サーバ装置１から、ワンタイムＩＤ自体が配信されずに、サブシードが配信されるため、クライアント装置２になりすましてサービスサーバ装置３へアクセスすることは困難である。【０１０３】
また、実施の形態１によれば、サブシードに基づくワンタイムＩＤによる相互認証が可能なサービスサーバ装置３のリストがクライアント装置２へ通知されるため、クライアント装置２は、選択されたサービスサーバ装置３との間で確実に、サブシードに基づくワンタイムＩＤによる相互認証を行うことができる。【０１０４】
実施の形態２．
実施の形態１では、クライアント装置２とサービスサーバ装置３との間でのワンタイムＩＤ認証が実現されるが、実施の形態２では、ピアツーピア（Peer-to-Peer）でのワンタイムＩＤ認証が実現される。【０１０５】
図１０は、本発明の実施の形態２に係る認証システムの構成を示すブロック図である。図１０において、認証サーバ装置１０１は、実施の形態１の認証サーバ装置１と同様の装置である。ピア装置１０２は、実施の形態１におけるクライアント装置１の機能とサービスサーバ装置３の機能を有する通信装置である。ピア装置１０２は、他のピア装置１０２との間でワンタイムＩＤによる相互認証後に所定のアプリケーションについてのデータ通信を行う。ネットワーク１０３は、実施の形態１のネットワーク４と同様のネットワークである。【０１０６】
実施の形態２の認証システムでは、あるピア装置１０２に別のピア装置１０２へのアクセス要求が発生した場合、まず、そのピア装置１０２と認証サーバ装置１０１が、メインワンタイムＩＤによる相互認証を行う。その際、そのピア装置１０２は、認証サーバ装置１０１へ、アクセス先となる別のピア装置１０２を特定するアクセス先情報（ＵＲＩ、ＩＰアドレスなど）を送信する。【０１０７】
認証サーバ装置１０１は、そのピア装置１０２が正当なものである場合には、アクセス先情報により特定される別のピア装置１０２との間で、メインワンタイムＩＤによる相互認証を行う。そして、その別のピア装置１０２が正当なものである場合には、認証サーバ装置１０１は、そのピア装置１０２とその別のピア装置１０２へサブシードデータを送信する。【０１０８】
そのピア装置１０２および別のピア装置１０２は、それぞれ、サブシードデータを受信すると、そのサブシードデータからサブワンタイムＩＤを生成する。その後、そのピア装置１０２と別のピア装置１０２との間でサブワンタイムＩＤによる相互認証が実行される。そして、そのピア装置１０２と別のピア装置１０２は、それぞれ、通信相手が正当なものであると判断した場合には、そのピア装置１０２は、その別のピア装置１０２へアクセスし、所定のアプリケーションのためのデータ通信を行う。【０１０９】
以上のように、実施の形態２によれば、ピアツーピア型のネットワークでも、同様にして、認証サーバ装置１０１からサブシードを配信されて、ピア間でのワンタイムＩＤによる相互認証を行うことができる。【０１１０】
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。【０１１１】
例えば、各実施の形態において、サブシードデータは、１回分だけではなく、所定のｎ回分をまとめて配信してもよい。その場合、あるクライアント装置２が同一のサービスサーバ装置３に複数回アクセスするときに、クライアント装置２と認証サーバ装置１との相互認証および認証サーバ装置１とサービスサーバ装置３との相互認証を省略することができる。【０１１２】
また、各実施の形態において、あるクライアント装置２が認証サーバ装置１により正当であると判断された場合に、サーバリストにおけるすべての、あるいはサーバリストから選択された複数のサービスサーバ装置３との間で使用される複数のサブシードデータをまとめて配信するようにしてもよい。この場合、選択された複数のサービスサーバ装置３に、サブシードデータが送信される。【０１１３】
また、各実施の形態において、認証サーバ装置１の認証サーバプログラム、クライアント装置２の認証処理プログラムおよびサービスサーバ装置３の認証処理プログラムは、可搬性のある記録媒体、インターネットなどの通信媒体により提供されるようにしてもよい。
【産業上の利用可能性】
【０１１４】
本発明は、例えば多数の機器間の相互認証を必要とするサービスに適用可能である。
【図１】
2008142731.tif 000003
【図２】
2008142731.tif 000004
【図３】
2008142731.tif 000005
【図４】
2008142731.tif 000006
【図５】
2008142731.tif 000007
【図６】
2008142731.tif 000008
【図７】
2008142731.tif 000009
【図８】
2008142731.tif 000010
【図９】
2008142731.tif 000011
【図１０】
2008142731.tif 000012
【国際調査報告】
2008142731.tif 000013
2008142731.tif 000014