(57)【要約】【課題】端末のメモリにアクセスできないブラウザを搭載した端末と、サーバ証明書を所有しないサーバとの間で、認証後に暗号通信を行う通信システムを提供すること。【解決手段】端末２は、ブラウザ画面領域を複数のフレームに分割する画面領域分割部２１と、第１フレームを介してサーバ３に認証情報の認証を要求する認証要求部２２と、認証を要求する際の途中データを、第１フレーム以外の他フレーム内で格納する途中データ格納部２３と、サーバ３から認証成功を受信した場合、途中データに基づいて共有鍵を生成する共有鍵生成部２４と、共有鍵を他フレーム内で格納する共有鍵格納部２５とを有し、サーバ３は、認証情報格納部３１に基づいて、端末２から要求される認証情報を認証するか否かを判断して認証結果を端末２に送信する認証部３２と、認証成功の場合、認証情報を認証する際の途中データに基づいて共有鍵を生成する共有鍵生成部３３とを有する。【選択図】図３
2012060366.tif 000002
【特許請求の範囲】
【請求項１】
サーバと、端末とを備えた通信システムであって、
前記端末は、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、
前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求する認証要求部と、
前記認証を前記サーバに要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内で格納する途中データ格納部と、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、
前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、
を有し、
前記サーバは、
あらかじめ登録された認証情報を格納した認証情報格納部と、
前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、
前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる前記共有鍵を生成する共有鍵生成部と、
を有する通信システム。
【請求項２】
前記サーバは、
前記端末を、前記画面領域分割部、前記認証要求部、前記途中データ格納部、前記共有鍵生成部および前記共有鍵格納部として機能させるための端末用アプリケーションを格納する端末用アプリケーション格納部と、
前記端末用アプリケーションを前記端末に送信する端末用アプリケーション送信部と、
をさらに有し、
前記端末は、
前記端末用アプリケーションを受信する端末用アプリケーション受信部と、
前記端末用アプリケーションを実行する端末用アプリケーション実行部と、
をさらに有することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記端末の前記認証要求部は、
前記認証の要求を開始するための認証要求データを生成して前記サーバに送信するとともに、前記認証要求データを生成する際に使用するデータを前記途中データとして前記途中データ格納部に格納する認証要求データ生成部と、
前記サーバから受信するランダムなチャレンジデータおよび前記途中データに基づいてレスポンスデータを生成して前記サーバに送信するとともに、前記レスポンスデータを生成する際に使用するデータを前記途中データとして前記途中データ格納部に追加して格納するレスポンス生成部と、
を有し、
前記サーバの前記認証部は、
前記認証要求データの受信に応じて前記チャレンジデータを生成して前記端末に送信するチャレンジ生成部と、
前記端末から受信する前記レスポンスデータを検証することにより前記認証情報を認証するか否を判断するレスポンス検証部と、
を有することを特徴とする請求項１または請求項２に記載の通信システム。
【請求項４】
前記サーバの前記端末用アプリケーション送信部は、前記端末用アプリケーションのＵＲＬ（Uniform Resource Locator）に、前記サーバが有する公開鍵のハッシュ値の少なくとも一部を含めて前記端末用アプリケーションを前記端末に送信し、
前記サーバの前記チャレンジ生成部は、前記公開鍵を前記チャレンジデータに含めて前記端末に送信し、
前記端末の前記レスポンス生成部は、前記チャレンジデータに含まれる公開鍵が改変されていないことを前記端末用アプリケーションのＵＲＬに基づいて判断し、前記公開鍵が改変されていないと判断した場合に、前記公開鍵を用いて前記認証情報を暗号化した情報を前記レスポンスデータに含めて前記サーバに送信し、
前記サーバの前記レスポンス検証部は、前記レスポンスデータに含まれる情報を、前記公開鍵に対応する秘密鍵を用いて復号することにより得られる認証情報を認証するか否かを判断することを特徴とする請求項３に記載の通信システム。
【請求項５】
あらかじめ登録された認証情報を格納した認証情報格納部と、
前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、
前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成部と、
を備えたサーバ。
【請求項６】
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、
前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介してサーバに要求する認証要求部と、
前記認証を前記サーバに要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内で格納する途中データ格納部と、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、
前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、
を備えた端末。
【請求項７】
端末と通信を行うサーバに、
あらかじめ登録された認証情報を認証情報格納部に格納しておく認証情報格納ステップと、
前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証ステップと、
前記認証ステップで、前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、
を実行させるコンピュータ・プログラム。
【請求項８】
サーバと通信を行う端末に、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割ステップと、
前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求する認証要求ステップと、
前記認証要求ステップで前記認証を要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内の途中データ格納部に格納する途中データ格納ステップと、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、
前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する共有鍵格納ステップと、
を実行させるコンピュータ・プログラム。
【請求項９】
サーバから端末に配信されるコンテンツのデータ構造であって、
前記端末において前記コンテンツが表示されるブラウザ画面領域を構成する複数のフレームの構造が定義されたフレーム構造情報と、
前記複数のフレームのうち第１のフレームに適用される情報を表し、前記第１のフレームを介して取得した認証情報の認証を前記第１のフレームを介して前記サーバに要求するとともに、前記サーバから受信した認証結果情報が認証成功を表す場合、前記認証を前記サーバに要求する際に使用した途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する認証付鍵交換アプリケーションを含む第１フレーム情報と、
前記第１のフレーム以外の他のフレームに適用される情報を表し、前記途中データを格納する途中データ格納情報と、前記共有鍵を格納する共有鍵格納情報と、を含む他フレーム情報と、
を含むデータ構造。
【請求項１０】
サーバと、端末とを用いて、
前記端末は、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割し、
前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求し、
前記認証を前記サーバに要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内の途中データ格納部に格納し、
前記サーバは、
あらかじめ登録された認証情報を認証情報格納部に格納しておき、
前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信し、
前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成し、
前記端末は、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる前記共有鍵を生成し、
前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する、通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号通信を行う通信システムに関し、特に、ユーザ認証後に暗号通信を行う通信システム、通信方法、およびコンピュータ・プログラムに関する。
【背景技術】
【０００２】
ネットワークを介してサービスを提供する通信システムとして、ユーザ認証後に暗号通信を行いながらサービスを提供する通信システムが多く知られている。このような通信システムでは、端末においてウェブブラウザアプリケーション（以下、単にブラウザと記載する）が用いられることを前提としているものが多い。
【０００３】
例えば、ウェブメールサービスを提供する通信システムは、ユーザがあるメールアドレスの所有者であることをユーザＩＤとパスワードとを用いて認証し、その後、サーバが格納しているユーザ宛のメールを、ユーザの操作する端末に送信する。そして、端末に搭載されたブラウザは、ユーザ宛のメールを表示する。このとき、サーバから端末に送信するメールが漏洩することがないように、サーバおよび端末間で暗号通信が行われることが望ましい。
【０００４】
一般に、このような暗号通信には、ＳＳＬ（Secure Socket Layer）通信が利用される。ＳＳＬ通信を利用するために、サーバは、あらかじめサーバ証明書を証明書発行機関等から取得しておく。端末は、サーバから受信するサーバ証明書の有効性や信頼性を確認した後、暗号通信を開始することにより、サービスの提供を受ける。
【０００５】
しかしながら、ユーザ認証後に暗号通信を行うことが望ましいサービスを提供する通信システムであっても、サーバがサーバ証明書を所有していない場合がある。例えば、個人が運用するサーバは、取得に費用がかかるサーバ証明書を所有しない場合が多い。そして、サーバ証明書を所有しないサーバは、ＳＳＬ通信を行うことができない。
【０００６】
このような通信システムが暗号通信を行うためには、ユーザ認証後に、サーバおよび端末間で暗号通信用の鍵を交換して共有する認証付鍵交換を行う必要がある。認証付鍵交換の技術としては、パスワードを用いてユーザ認証を行い、その認証中に生成した途中データを用いて、暗号通信用の共有鍵を生成するものが知られている（例えば、非特許文献１および非特許文献２参照）。これらの認証付鍵交換の技術は、それぞれ安全性が数学的に保証されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Bellare, M.， D. Pointcheval, P. Rogaway. "Authenticated Key Exchange Secure against Dictionary Attacks", Eurocrypt ３００0 LNCS (Springer-Verlag) 1807．
【非特許文献２】Katz, J., R. Ostrovsky, M. Yung. "Efficient Password-Authenticated Key Exchange Using Human-Memorable Passwords", Eurocrypt ３００1 (Springer-Vergal) 2045．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、端末に搭載されるブラウザは、端末が有するメモリにアクセスできない（すなわち、メモリに記憶された情報を読み書きできない）という動作上の制限を有する場合がある。例えば、携帯電話に搭載されるブラウザは、上述の制限を有する場合がある。
【０００９】
非特許文献１および非特許文献２に記載された認証付鍵交換の技術では、前述のように、ユーザ認証において生成した途中データを、暗号通信用の鍵共有に利用するため、これら途中データを一時的に記憶しておく必要がある。
【００１０】
ここで、端末のメモリにアクセスできないという制限のあるブラウザを搭載した端末は、途中データを端末のメモリに記憶しておくことができない。したがって、非特許文献１および非特許文献２に記載された技術を採用した通信システムでは、上述の制限を有する端末に対して、ユーザ認証後に暗号通信を行うサービスを提供することができない。
【００１１】
本発明は、上述の課題を解決するためになされたもので、端末のメモリにアクセスできない制限を有するブラウザを搭載した端末と、サーバ証明書を所有しないサーバとの間で、ユーザ認証後に暗号通信を行う通信システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の通信システムは、サーバと、端末とを備えた通信システムであって、前記端末は、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求する認証要求部と、前記認証を前記サーバに要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内で格納する途中データ格納部と、前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、を有し、前記サーバは、あらかじめ登録された認証情報を格納した認証情報格納部と、前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる前記共有鍵を生成する共有鍵生成部と、を有する。
【００１３】
また、本発明のサーバは、あらかじめ登録された認証情報を格納した認証情報格納部と、前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成部と、を備える。
【００１４】
また、本発明の端末は、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介してサーバに要求する認証要求部と、前記認証を前記サーバに要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内で格納する途中データ格納部と、前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、を備える。
【００１５】
また、本発明のコンピュータ・プログラムは、端末と通信を行うサーバに、あらかじめ登録された認証情報を認証情報格納部に格納しておく認証情報格納ステップと、前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証ステップと、前記認証ステップで、前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、を実行させる。
【００１６】
また、本発明のコンピュータ・プログラムは、サーバと通信を行う端末に、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割ステップと、前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求する認証要求ステップと、前記認証要求ステップで前記認証を要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内の途中データ格納部に格納する途中データ格納ステップと、前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する共有鍵格納ステップと、を実行させる。
【００１７】
また、本発明のデータ構造は、サーバから端末に配信されるコンテンツのデータ構造であって、前記端末において前記コンテンツが表示されるブラウザ画面領域を構成する複数のフレームの構造が定義されたフレーム構造情報と、前記複数のフレームのうち第１のフレームに適用される情報を表し、前記第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求するとともに、前記サーバから受信した認証結果情報が認証成功を表す場合、前記認証を前記サーバに要求する際に使用した途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する認証付鍵交換アプリケーションを含む第１フレーム情報と、前記第１のフレーム以外の他のフレームに適用される情報を表し、前記途中データを格納する途中データ格納情報と、前記共有鍵を格納する共有鍵格納情報と、を含む他フレーム情報と、を含む。
【００１８】
また、本発明の通信方法は、サーバと、端末とを用いて、前記端末は、コンテンツを表示するブラウザ画面領域を複数のフレームに分割し、前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求し、前記認証を前記サーバに要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内の途中データ格納部に格納し、前記サーバは、あらかじめ登録された認証情報を認証情報格納部に格納しておき、前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信し、前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成し、前記端末は、前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる前記共有鍵を生成し、前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する。
【発明の効果】
【００１９】
本発明は、端末のメモリにアクセスできない制限を有するブラウザを搭載した端末と、サーバ証明書を所有しないサーバとの間で、ユーザ認証後に暗号通信を行う通信システムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施の形態としての通信システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態としての通信システムのハードウェア構成を示すブロック図である。
【図３】本発明の第１の実施の形態としての通信システムの機能ブロック図である。
【図４】本発明の第１の実施の形態としての通信システムの動作を示すシーケンス図である。
【図５】本発明の第２の実施の形態としての通信システムの機能ブロック図である。
【図６】本発明の第２の実施の形態としての通信システムの動作を示すシーケンス図である。
【図７】本発明の第２の実施の形態としての通信システムが楕円Diffie-Hellman鍵交換を採用した場合の動作の一例を示すシーケンス図である。
【図８】本発明の第２の実施の形態としての通信システムが公開鍵暗号を採用した場合の動作の一例を示すシーケンス図である。
【図９】本発明の各実施の形態においてサーバに格納されるデータ構造の一例を示す模式図である。
【発明を実施するための形態】
【００２１】
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
【００２２】
（第１の実施の形態）
本発明の第１の実施の形態としての通信システムの構成を図１に示す。図１において、通信システム１は、端末２およびサーバ３を備えている。また、端末２およびサーバ３は、インターネット、ＬＡＮ（Local Area Network）、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークによって互いに通信可能に接続されている。
【００２３】
なお、図１において、１つの端末２を示しているが、本発明の通信システムが備える端末の数を限定するものではない。
【００２４】
次に、通信システム１を構成する各装置のハードウェア構成を図２に示す。
【００２５】
図２において、端末２は、ＣＰＵ（Central Processing Unit）２００１と、ＲＡＭ（Random Access Memory）２００２と、ＲＯＭ（Read Only Memory）２００３と、記憶装置２００４と、ネットワークインタフェース２００５と、表示装置２００６と、入力装置２００７とを備えたコンピュータ装置によって構成されている。
【００２６】
また、図２において、サーバ３は、ＣＰＵ３００１と、ＲＡＭ３００２と、ＲＯＭ３００３と、記憶装置３００４と、ネットワークインタフェース３００５とを備えたコンピュータ装置によって構成されている。
【００２７】
次に、通信システム１を構成する各装置の機能ブロック構成を図３に示す。
【００２８】
図３において、端末２は、画面領域分割部２１と、認証要求部２２と、途中データ格納部２３と、共有鍵生成部２４と、共有鍵格納部２５と、を備える。また、サーバ３は、認証情報格納部３１と、認証部３２と、共有鍵生成部３３と、を備える。
【００２９】
ここで、画面領域分割部２１は、コンピュータ・プログラムを実行するＣＰＵ２００１および表示装置２００６によって構成される。また、認証要求部２２は、コンピュータ・プログラムを実行するＣＰＵ２００１、ネットワークインタフェース２００５、表示装置２００６および入力装置２００７によって構成される。また、途中データ格納部２３および共有鍵格納部２５は、コンピュータ・プログラムを実行するＣＰＵ２００１およびＲＡＭ２００２によって構成される。また、共有鍵生成部２４は、コンピュータ・プログラムを実行するＣＰＵ２００１によって生成される。なお、ＣＰＵ２００１によって実行されるコンピュータ・プログラムは、ＲＯＭ２００３または記憶装置２００４に記憶される。端末内で読み書きされるデータ、あるいは画像などの保存データは、記憶装置２００４に記憶される。
【００３０】
また、認証情報格納部３１は、記憶装置３００４によって構成される。また、認証部３２は、コンピュータ・プログラムを実行するＣＰＵ３００１およびネットワークインタフェース３００５によって構成される。また、共有鍵生成部３３は、コンピュータ・プログラムを実行するＣＰＵ３００１によって構成される。なお、ＣＰＵ３００１によって実行されるコンピュータ・プログラムは、ＲＯＭ３００３または記憶装置３００４に記憶される。サーバ内で読み書きされるデータ、あるいは画像、文書などの保存データは、記憶装置３００４に記憶される。
【００３１】
ただし、端末２及びサーバ３は、上述した構成に限定されない。
【００３２】
次に、端末２の各部の構成について説明する。
【００３３】
画面領域分割部２１は、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する。ここで、フレームとは、ブラウザ画面領域が区切られて生成される複数の領域のことである。フレーム機能を備えるブラウザは、それぞれのフレームに異なるコンテンツを適用することができる。
【００３４】
また、画面領域分割部２１は、コンテンツを画面に表示するブラウザによって実現される。例えば、画面領域分割部２１は、コンテンツに含まれるフレームの構造情報を読み込んで画面領域に適用することにより、ブラウザの画面領域を複数のフレームに分割してもよい。
【００３５】
認証要求部２２は、複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、第１のフレームを介してサーバ３に要求する。
【００３６】
ここで、認証情報とは、例えば、端末２を操作するユーザのユーザＩＤおよびパスワードを含む情報であってもよい。また、認証情報は、端末２に発行された端末ＩＤおよびパスワードであってもよい。また、認証情報は、サーバ３によるサービスの提供対象であることを認証するためにあらかじめ発行されたその他の情報であってもよい。
【００３７】
また、認証要求部２２は、例えば、ユーザＩＤおよびパスワードの入力フィールドを含む入力画面を第１のフレームに表示することにより、第１のフレームを介して入力装置２００７から認証情報を取得してもよい。
【００３８】
また、この場合、認証要求部２２は、パスワードに所定の一方向性ハッシュ関数を適用した値とユーザＩＤとをサーバ３に送信することにより、認証情報の認証を要求してもよい。
【００３９】
途中データ格納部２３は、第１のフレーム以外の他のフレームに含まれる。そして、途中データ格納部２３は、ブラウザ画面領域の他のフレームにおいて、認証要求部２２によってサーバ３に認証が要求される際に使用される途中データを格納する。
【００４０】
ここで、フレーム機能に対応したブラウザは、一般的に、フレーム間でのデータの読み書きを可能としている。したがって、他のフレーム内の途中データ格納部２３は、第１のフレームで動作する認証要求部２２によって生成される途中データを格納することが可能である。
【００４１】
例えば、途中データ格納部２３は、他のフレームに適用される情報に含まれるテキストフィールド等の要素によって構成されてもよい。このとき、途中データ格納部２３を構成する要素は非表示であることが望ましい。あるいは、他のフレーム全体が非表示であってもよい。なお、ブラウザ画面領域内のフレームに適用される情報の格納領域は、ＲＡＭ２００２に確保されるので、途中データ格納部２３は、物理的にはＲＡＭ２００２の格納領域の一部に対応する。
【００４２】
また、途中データ格納部２３は、他のフレームに書き出される途中データの個数に応じて、複数の要素から構成されていてもよい。あるいは、途中データ格納部２３は、所定のセパレータ文字によって連結された複数の途中データを１つの要素内に格納するようにしてもよい。また、途中データ格納部２３は、第１のフレーム以外の他の１つのフレーム内に含まれていてもよいし、第１のフレーム以外の他の複数のフレームに含まれていてもよい。
【００４３】
また、他のフレーム内の途中データ格納部２３に格納される途中データは、第１のフレームで機能する認証要求部２２によってサーバ３に認証が要求されても、書き換えられることがない。一方、第１のフレームに適用されている情報は、認証要求部２２によってサーバ３に認証が要求されると、書き換えられることになる。
【００４４】
例えば、途中データ格納部２３が、認証要求部２２によって第１のフレームを介して取得されたパスワードを途中データとして格納する場合について説明する。この場合、第１のフレームに入力されて第１のフレームで保持されていたユーザＩＤおよびパスワードは、認証要求部２２が第１のフレームからサーバ３に認証を要求すると、サーバ３から受信する情報で書き換えられるため、保持されない。一方、他のフレーム内の途中データ格納部２３に格納されたパスワードは、認証要求部２２によって第１のフレームからサーバ３に認証を要求した後も、他のフレームに保持されていることになる。
【００４５】
共有鍵生成部２４は、サーバ３から受信した認証結果情報が認証成功を表す場合、途中データ格納部２３に格納された途中データに基づいて、サーバ３との暗号通信に用いる共有鍵を生成する。
【００４６】
このとき、共有鍵生成部２４は、第１のフレームで機能し、途中データ格納部２３から途中データを読み込むことにより、共有鍵を生成してもよい。
【００４７】
例えば、共有鍵生成部２４は、途中データ格納部２３に格納されているパスワードを所定の暗号化アルゴリズムで暗号化した値を、サーバ３との暗号通信に用いる共有鍵として生成してもよい。
【００４８】
共有鍵格納部２５は、他のフレームにおいて、生成された共有鍵を格納する。このとき、共有鍵格納部２５を含むフレームは、第１のフレーム以外の他のフレームであれば、途中データ格納部２３を含むフレームと同一であってもよいし、異なるフレームであってもよい。
【００４９】
次に、サーバ３の各部の構成について説明する。
【００５０】
認証情報格納部３１は、あらかじめ登録された認証情報を格納している。認証情報格納部３１に格納される認証情報は、サービス提供対象に対してあらかじめ発行されたものである。
【００５１】
例えば、認証情報格納部３１は、ユーザＩＤとそのパスワードとを対応付けて格納していてもよい。
【００５２】
認証部３２は、認証情報格納部３１に基づいて、端末２から認証を要求される認証情報を認証するか否かを判断する。そして、認証部３２は、認証成功または認証失敗を表す情報を端末２に送信する。
【００５３】
例えば、端末２からパスワードのハッシュ値およびユーザＩＤを受信することにより認証を要求された場合、認証部３２は、受信したユーザＩＤに対応付けられたパスワードを認証情報格納部３１から取得する。そして、認証部３２は、取得したパスワードに上述の所定の一方向性ハッシュ関数を適用した値が、受信したパスワードのハッシュ値と等しいか否かを検証する。そして、認証部３２は、これらの値が等しいか否かに基づいて、認証成功または認証失敗を表す情報を端末２に送信する。
【００５４】
共有鍵生成部３３は、認証部３２によって前記認証情報を認証すると判断された場合、認証情報を認証する際に使用した途中データに基づいて、端末２との暗号通信に用いる共有鍵を生成する。
【００５５】
例えば、共有鍵生成部３３は、認証情報格納部３１から取得したパスワードを、所定の暗号化アルゴリズムで暗号化した値を、端末２との暗号通信に用いる共有鍵として生成してもよい。
【００５６】
以上のように構成された通信システム１の動作について、図４のシーケンス図を用いて説明する。
【００５７】
まず、端末２の画面領域分割部２１が、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する（ステップＳ１）。
【００５８】
次に、認証要求部２２が、複数のフレームのうちの第１のフレームを介して取得した認証情報の認証を、第１のフレームを介してサーバ３に要求する（ステップＳ２）。
【００５９】
例えば、認証要求部２２は、上述のように、第１のフレームに表示した入力画面を介して入力装置からユーザＩＤおよびパスワードを取得し、取得したパスワードのハッシュ値と、ユーザＩＤとを含む情報をサーバ３に送信してもよい。
【００６０】
次に、認証要求部２２は、ステップＳ２で認証を要求する際に使用した途中データを、第１のフレーム以外の他のフレーム内の途中データ格納部２３に書き出す（ステップＳ３）。
【００６１】
例えば、認証要求部２２は、上述のように、パスワードを途中データ格納部２３に書き出してもよい。
【００６２】
端末２から認証を要求されたサーバ３の認証部３２は、認証を要求される認証情報を認証情報格納部３１に基づいて検証する（ステップＳ４）。
【００６３】
例えば、認証部３２は、受信したユーザＩＤに対応付けられたパスワードを認証情報格納部３１から取得する。そして、認証部３２は、取得したパスワードのハッシュ値と、受信したハッシュ値とが一致するか否かを検証してもよい。
【００６４】
ここで、認証情報を認証しないと判断した場合（ステップＳ５でＮｏ）、認証部３２は、認証失敗を表す認証結果情報を端末２に送信する（ステップＳ６）。
【００６５】
一方、認証情報を認証すると判断した場合（ステップＳ５でＹｅｓ）、認証部３２は、認証成功を表す認証結果情報を端末２に送信する（ステップＳ７）。
【００６６】
次に、共有鍵生成部３３は、ステップＳ４で認証情報を検証する際に使用された途中データに基づいて、共有鍵を生成する（ステップＳ８）。
【００６７】
例えば、共有鍵生成部３３は、ステップＳ４で認証情報を検証する際に認証情報格納部３１から取得したパスワードに、所定の暗号化アルゴリズムを適用することにより共有鍵を生成してもよい。
【００６８】
認証結果情報を受信した端末２の認証要求部２２は、その認証結果情報が認証成功を表すか否かを判断する（ステップＳ９）。
【００６９】
ここで、認証結果情報が認証失敗を表す場合、端末２は、認証付鍵交換動作を終了する。
【００７０】
例えば、端末２は、認証失敗を表す情報を第１のフレームに表示してから、認証付鍵交換動作を終了するようにしてもよい。
【００７１】
一方、認証結果情報が認証成功を表す場合、共有鍵生成部２４は、途中データ格納部２３に書き出された途中データを読み込む（ステップＳ１０）。
【００７２】
次に、共有鍵生成部２４は、読み込んだ途中データに基づいて共有鍵を生成する（ステップＳ１１）。
【００７３】
例えば、共有鍵生成部２４は、途中データ格納部２３に保持しておいたパスワードに所定の暗号化アルゴリズムを適用することにより共有鍵を生成してもよい。
【００７４】
次に、共有鍵生成部２４は、ステップＳ１１で生成した共有鍵を他のフレーム内の共有鍵格納部２５に書き出す（ステップＳ１２）。
【００７５】
以降、端末２は、他のフレームに保持している共有鍵を用いてサーバ３との暗号通信を行う。また、サーバ３は、生成した共有鍵を用いて端末２との暗号通信を行う。
【００７６】
生成された共有鍵による暗号通信は、ブラウザが終了されるか、他のフレームから共有鍵が削除されるまで行われる。
【００７７】
以上で、通信システム１の動作の説明を終了する。
【００７８】
次に、本発明の第１の実施の形態の効果について説明する。
【００７９】
本発明の第１の実施の形態としての通信システムは、端末のメモリにアクセスできない制限を有するブラウザを搭載した端末と、サーバ証明書を所有しないサーバとの間で、ユーザ認証後に暗号通信を行うことができる。
【００８０】
その理由は、本発明の第１の実施の形態における端末は、ブラウザ画面領域内の第１のフレームを用いてサーバとの間で認証付鍵交換を行い、認証付鍵交換を行う際に使用する途中データを他のフレームに書き出しておくからである。すなわち、本発明の第１の実施の形態における端末は、他のフレームをメモリとして使用するからである。
【００８１】
これにより、本発明の第１の実施の形態における端末は、サーバとの間で認証付鍵交換に基づく情報が送受信されて第１のフレームの内容が書き換えられても、共有鍵の生成に使用する途中データを他のフレームで保持しておくことができるためである。したがって、本発明の第１の実施の形態における端末は、端末内部の記憶装置にアクセスすることなく、途中データの保持を必要とする認証付鍵交換の技術を採用したサーバのサービスを受けることができるからである。
【００８２】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第１の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【００８３】
まず、本発明の第２の実施の形態としての通信システム４の機能ブロック構成を図５に示す。図５において、通信システム４は、端末５とサーバ６とを備えている。また、端末５およびサーバ６とは、ネットワークを介して互いに通信可能に接続されている。なお、図５には１つの端末５を示しているが、本発明における端末５の数を限定するものではない。
【００８４】
ここで、通信システム４のハードウェア構成は、図２を参照して説明した本発明の第１の実施の形態としての通信システム１のハードウェア構成と同一であるため、本実施の形態における詳細な説明を省略する。
【００８５】
図５において、端末５は、本発明の第１の実施の形態における端末２に対して、認証要求部２２に替えて認証要求部５２と、共有鍵生成部２４に替えて共有鍵生成部５４とを備え、さらに、端末用アプリケーション受信部５６と、端末用アプリケーション実行部５７とを備える点が異なる。また、認証要求部５２は、認証要求データ生成部５２１と、レスポンス生成部５２２とを有している。
【００８６】
また、図５において、サーバ６は、本発明の第１の実施の形態におけるサーバ３に対して、認証部３２に替えて認証部６２と、共有鍵生成部３３に替えて共有鍵生成部６３とを備え、さらに、端末用アプリケーション格納部６４と、端末用アプリケーション送信部６５とを備える点が異なる。また、認証部６２は、チャレンジ生成部６２１と、レスポンス検証部６２２とを有している。
【００８７】
ここで、端末用アプリケーション受信部５６は、コンピュータ・プログラムを実行するＣＰＵ２００１およびネットワークインタフェース２００５によって構成される。また、端末用アプリケーション実行部５７は、コンピュータ・プログラムを実行するＣＰＵ２００１によって構成される。
【００８８】
また、端末用アプリケーション格納部６４は、記憶装置３００４によって構成される。また、端末用アプリケーション送信部６５は、コンピュータ・プログラムを実行するＣＰＵ３００１およびネットワークインタフェース３００５によって構成される。
【００８９】
次に、端末５およびサーバ６の各部の構成について説明する。
【００９０】
認証要求データ生成部５２１は、認証の要求を開始するための認証要求データを生成してサーバ６に送信する。そして、認証要求データ生成部５２１は、認証要求データを生成する際に使用した途中データを途中データ格納部２３に格納する。
【００９１】
例えば、認証要求データ生成部５２１は、認証情報がユーザＩＤおよびパスワードを含む場合、ユーザＩＤを含む認証要求データを生成してサーバ６に送信してもよい。
【００９２】
レスポンス生成部５２２は、後述のチャレンジデータおよび途中データに基づいてレスポンスデータを生成してサーバ６に送信する。そして、レスポンス生成部５２２は、レスポンスデータを生成する際に使用する途中データを、途中データ格納部２３に追加して格納する。
【００９３】
共有鍵生成部５４は、認証要求データ生成部５２１およびレスポンス生成部５２２によって途中データ格納部２３に格納された途中データに基づいて、共有鍵を生成する。
【００９４】
端末用アプリケーション受信部５６は、サーバ６から端末用アプリケーションを受信する。端末用アプリケーションについては後述する。ここで、端末用アプリケーション受信部５６は、端末５に搭載されるブラウザによって構成される。例えば、端末用アプリケーション受信部５６は、サーバ６によってサービスが提供される所定のＵＲＬ（Uniform Resource Locator）にアクセスすることにより、サーバ６から端末用アプリケーションを受信してもよい。
【００９５】
端末用アプリケーション実行部５７は、受信した端末用アプリケーションを実行する。例えば、端末用アプリケーション実行部５７は、ブラウザに組み込まれたアプリケーション実行エンジンによって構成される。また、このアプリケーション実行エンジンは、ブラウザによって表示されるコンテンツに含まれるアプリケーションを実行する。
【００９６】
チャレンジ生成部６２１は、端末５からの認証要求データの受信に応じて、ランダムなチャレンジデータを生成する。そして、チャレンジ生成部６２１は、生成したチャレンジデータを端末５に送信する。
【００９７】
なお、安全性の観点から、チャレンジデータは、毎回の認証ごとに異なるランダムなデータであることが望ましい。
【００９８】
レスポンス検証部６２２は、端末５から受信するレスポンスデータを検証する。そして、レスポンス検証部６２２は、認証情報を認証するか否を判断する。
【００９９】
具体的には、レスポンス検証部６２２は、チャレンジ生成部６２１によって受信された認証要求データと、チャレンジ生成部６２１によって生成されたチャレンジデータとに基づいて、受信したレスポンスデータが、正しい認証情報に基づいて生成されたものか否かを判断する。
【０１００】
共有鍵生成部６３は、チャレンジ生成部６２１およびレスポンス検証部６２２によって使用された途中データに基づいて、共有鍵を生成する。
【０１０１】
端末用アプリケーション格納部６４は、端末５を、画面領域分割部２１、認証要求部５２、途中データ格納部２３、共有鍵生成部５４および共有鍵格納部２５として機能させるための端末用アプリケーションを格納する。
【０１０２】
端末用アプリケーション送信部６５は、上述の端末用アプリケーションを端末５に送信する。例えば、端末用アプリケーション送信部６５は、所定のＵＲＬに対する端末５からのアクセスに応じて端末用アプリケーションを送信するようにしてもよい。
【０１０３】
以上のように構成された通信システム４の動作について、図６を用いて説明する。
【０１０４】
まず、サーバ６の端末用アプリケーション送信部６５は、端末５に端末用アプリケーションを送信する。そして、端末５の端末用アプリケーション受信部５６は、端末用アプリケーションを受信する（ステップＳ２１）。
【０１０５】
例えば、端末用アプリケーション送信部６５は、端末５において起動されている端末用アプリケーション受信部５６（ブラウザ）からの要求に応じて、端末用アプリケーション
を送信するようにしてもよい。
【０１０６】
次に、端末用アプリケーション実行部５７は、端末用アプリケーションを実行する（ステップＳ２２）。これにより、端末５は、画面領域分割部２１、認証要求部５２、途中データ格納部２３、共有鍵生成部５４および共有鍵格納部２５として機能する。
【０１０７】
次に、画面領域分割部２１は、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する（ステップＳ２３）。
【０１０８】
次に、認証要求データ生成部５２１は、第１のフレームに認証情報の入力画面を表示し、第１のフレームを介して入力装置２００７から認証情報を取得する。そして、認証要求データ生成部５２１は、取得した認証情報を用いて、認証の要求を開始するための認証要求データを生成する（ステップＳ２４）。
【０１０９】
例えば、認証要求データ生成部５２１は、第１フレームの入力画面からユーザＩＤおよパスワードを取得し、取得したユーザＩＤを含む認証要求データを生成してもよい。
【０１１０】
次に、認証要求データ生成部５２１は、ステップＳ２４で認証要求データを生成するときに使用した途中データを、途中データ格納部２３に書き出す（ステップＳ２５）。
【０１１１】
例えば、認証要求データ生成部５２１は、ユーザＩＤおよびパスワードを含む情報を途中データ格納部２３に書き出してもよい。
【０１１２】
このとき、安全性の観点から、途中データ格納部２３は非表示であることが望ましい。
【０１１３】
次に、認証要求データ生成部５２１は、ステップＳ２４で生成した認証要求データをサーバ６に送信する（ステップＳ２６）。
【０１１４】
認証要求データを受信したサーバ６のチャレンジ生成部６２１は、チャレンジデータを生成する（ステップＳ２７）。そして、チャレンジ生成部６２１は、生成したチャレンジデータを端末５に送信する（ステップＳ２８）。
【０１１５】
このとき、安全性の観点から、チャレンジデータは、毎回の認証ごとに異なるランダムな値であることが望ましい。
【０１１６】
チャレンジデータを受信した端末５のレスポンス生成部５２２は、チャレンジデータ、および、途中データ格納部２３に格納された途中データに基づいて、レスポンスデータを生成する（ステップＳ２９）。
【０１１７】
例えば、レスポンス生成部５２２は、チャレンジデータおよびパスワードに基づいてレスポンスデータを生成してもよい。
【０１１８】
このとき、チャレンジデータがランダムな値であるため、同一の認証情報の認証を受ける際のレスポンスデータも毎回異なる。
【０１１９】
次に、レスポンス生成部５２２は、レスポンスデータを生成する際に使用した途中データを、途中データ格納部２３に追加して格納する（ステップＳ３０）。
【０１２０】
これにより、途中データ格納部２３は、ステップＳ２５で書き出されたデータと、ステップＳ３０で書き出されたデータとを格納している。
【０１２１】
ここでも、安全性の観点から、途中データ格納部２３は非表示であることが望ましい。
【０１２２】
次に、レスポンス生成部５２２は、ステップＳ３０で生成したレスポンスデータをサーバ６に送信する（ステップＳ３１）。
【０１２３】
レスポンスデータを受信したサーバ６のレスポンス検証部６２２は、ステップＳ２６で受信した認証要求データと、ステップＳ２７で生成したチャレンジデータとに基づいて、受信したレスポンスデータを検証する（ステップＳ３２）。
【０１２４】
例えば、レスポンス検証部６２２は、認証要求データに含まれるユーザＩＤに対応付けられたパスワードを認証情報格納部３１から取得する。そして、レスポンス検証部６２２は、ステップＳ２７で生成したチャレンジデータと、認証情報格納部３１から取得したパスワードとに基づいて生成するレスポンスデータが、ステップＳ３１で受信したレスポンスデータと一致するか否かを判断するようにしてもよい。
【０１２５】
次に、レスポンス検証部６２２は、レスポンスデータの検証により認証に失敗した場合（ステップＳ３３でＮｏ）、認証失敗を表す認証結果情報を端末５に送信する（ステップＳ３４）。
【０１２６】
そして、サーバ６は、認証付鍵交換処理を終了する。
【０１２７】
一方、レスポンス検証部６２２は、レスポンスデータの検証により認証に成功した場合（ステップＳ３３でＹｅｓ）、認証成功を表す認証結果情報を端末５に送信する（ステップＳ３５）。
【０１２８】
次に、共有鍵生成部６３は、レスポンスデータを検証する際に使用した途中データおよび認証要求データに基づいて、共有鍵を生成する（ステップＳ３６）。
【０１２９】
次に、認証結果情報を受信した端末５は、認証結果情報が認証失敗を表す場合（ステップＳ３７でＮｏ）、認証付鍵交換処理を終了する。
【０１３０】
なお、このとき、端末５は、第１のフレームに再び認証情報の入力画面を表示することにより、新たな認証情報を入力装置２００７から取得してもよい。この場合、通信システム４は、ステップＳ２４からの動作を再度実行する。ただし、この場合、サーバ６は、安全性の観点から、認証要求データの再送信回数に制限を設け、再送信回数が連続して所定の回数以上となった場合、動作を終了するなどの運用上のルールを定めてもよい。
【０１３１】
一方、認証結果情報が認証成功を表す場合（ステップＳ３７でＹｅｓ）、共有鍵生成部５４は、途中データ格納部２３から途中データを読み込む（ステップＳ３８）。
【０１３２】
次に、共有鍵生成部５４は、読み込んだ途中データに基づいて、共有鍵を生成する（ステップＳ３９）。
【０１３３】
次に、共有鍵生成部５４は、生成した共有鍵を共有鍵格納部２５に格納する（ステップＳ４０）。
【０１３４】
以降、端末５は、共有鍵格納部２５に格納した共有鍵を用いてサーバ６との暗号通信を行う。また、サーバ６は、ステップＳ３６で生成した共有鍵をサーバ６内部の記憶装置に一時記憶することにより端末５との暗号通信を行う。
【０１３５】
以上で、通信システム４の動作の説明を終了する。
【０１３６】
次に、本発明の第２の実施形態の効果について説明する。
【０１３７】
本発明の第２の実施形態としての通信システムは、端末の記憶装置にアクセスできない制限を有するブラウザを搭載した端末と、サーバ証明書を所有しないサーバとの間における、認証付鍵交換の安全性をさらに向上させることができる。
【０１３８】
その理由は、認証付鍵交換を行う際に使用する途中データを他のフレームに保持するため、チャレンジレスポンス方式のようにリプレイ攻撃に強い認証付鍵交換の技術を採用できるためである。ここで、チャレンジレスポンス方式では、端末は、サーバとの情報の送受信において使用する途中データを複数回一時記憶することを必要とする。このとき、上述のように他のフレームに途中データを保持することにより、メモリにアクセスできないブラウザが搭載された端末を用いた場合であっても、認証付鍵交換を行う際に使用する途中データを複数回一時記憶することができるからである。
【０１３９】
また、本発明の第２の実施の形態としての通信システムでは、端末の記憶装置にアクセスできない制限を有するブラウザであっても、フレーム機能およびアプリケーション実行機能を有するブラウザを搭載した端末であれば、安全性の高い認証付鍵交換を用いたサービスの提供を受けることができる。
【０１４０】
その理由は、端末の記憶装置にアクセスできない制限を有するブラウザを搭載した端末がサーバと認証付鍵交換をするための端末用アプリケーションをサーバ側に格納しておき、サーバから端末に端末用アプリケーションを送信するからである。このため、端末は、特別なアプリケーションを有する必要がなく、フレーム機能およびアプリケーション実行機能を有するブラウザを搭載していれば、サーバとの間で安全性の高い認証付鍵交換を行うことができるからである。
【０１４１】
＜第２の実施の形態の第１の動作例＞
次に、本発明の第２の実施の形態における認証付鍵交換の技術として、楕円Diffie-Hellman鍵交換を適用した場合の動作例について、図７を参照して説明する。
【０１４２】
ここでは、まず、楕円Diffie-Hellman鍵交換について説明する。
【０１４３】
楕円Diffie-Hellman鍵交換は、ユーザＡおよびユーザＢが、暗号通信に用いる共有鍵を共有する技術であり、数学的に安全であることが証明されている。
【０１４４】
初めに、gを楕円曲線上の群の生成元、qを楕円曲線上の群の位数とする。また、gおよびqは、ユーザＡおよびユーザＢ間で共有されているものとする。
［ステップ１］：ユーザＡは、0以上q−1以下の任意の値r1を選択し、[r1]gを計算する。
【０１４５】
なお、ここで、[r1]gとは、生成元gに対して、楕円曲線上の群に定義された二項演算をr1回繰り返し適用することを表すものとする。すなわち、二項演算が加法として定義されていれば、[r1]gはgのr1倍を表す。そして、ユーザＡは、 [r1]gをユーザＢに送付する。
［ステップ２］：ユーザＢは、0以上q−1以下の任意の値r2を選択し、[r2]gを計算する。そして、ユーザBは、[r2]gをユーザＡに送付する。
［ステップ３］：ユーザＡおよびユーザＢは、それぞれ受信した [r2]gおよび[r1]gと、自らが選んだr1およびr2を用いて、[r1r2]g = [r1]([r2]g) = [r2]([r1]g)を計算する。そして、ユーザＡおよびユーザＢは、[r1r2]gを共有鍵とする。
【０１４６】
この楕円Diffie-Hellman鍵交換は、[r]gからrを求めることが難しい、という楕円曲線上の離散対数仮定に基づいて、安全性が数学的に証明された技術である。
【０１４７】
次に、このような楕円Diffie-Hellman鍵交換を採用した場合の、通信システム４の動作例について、図７のシーケンス図を参照して説明する。
【０１４８】
まず、端末５の要求に応じて、サーバ６の端末用アプリケーション送信部６５は、端末用アプリケーションを端末５に送信する（ステップＳ２１）。
【０１４９】
このとき、サーバ６は、端末用アプリケーションとともに、楕円曲線上の群の位数qおよび群の生成元gを端末５に送信する。
【０１５０】
また、送信される端末用アプリケーションは、端末５を画面領域分割部２１、認証要求データ生成部５２１、レスポンス生成部５２２、途中データ格納部２３、共有鍵生成部５４として機能させるものである。また、この端末用アプリケーションは、ハッシュ関数Hおよびハッシュ関数Ｇを含んでいる。
【０１５１】
ここで、ハッシュ関数Ｈは、任意の文字列を入力とし、位数q、生成元gを持つ楕円曲線上の群上の点を出力とするハッシュ関数である。また、ハッシュ関数Ｇは、任意の文字列を入力とし、kビットの文字列を出力とするハッシュ関数である。また、kはセキュリティパラメータである。なお、安全性の観点から、kは160以上であることが望ましい。
【０１５２】
次に、端末５の端末用アプリケーション実行部５７は、受信した端末用アプリケーションを実行する（ステップＳ２２）。
【０１５３】
次に、画面領域分割部２１は、２つのフレームからなるページをブラウザ上に表示する（ステップＳ２３）。以降、ブラウザ上に表示された２つのフレームを、フレーム１およびフレーム２と記載する。なお、フレーム１は本発明の第１のフレームの一実施形態を構成し、フレーム２は本発明の他のフレームの一実施形態を構成する。
【０１５４】
次に、認証要求データ生成部５２１は、次のようにして、認証要求データを生成する（ステップＳ２４）。
【０１５５】
ステップＳ２４では、まず、認証要求データ生成部５２１は、フレーム１を介してユーザID「userID」およびパスワード「pw」を取得する。
【０１５６】
次に、認証要求データ生成部５２１は、0以上q−1以下の任意の値r1を選択する。
【０１５７】
さらに、認証要求データ生成部５２１は、kビットのsidをランダムに選択する。
【０１５８】
そして、認証要求データ生成部５２１は、[r1]H(sid||pw)を認証要求データとして生成する。
【０１５９】
次に、認証要求データ生成部５２１は、ステップＳ２４において使用したg,q,r1,pw,sidをフレーム２の途中データ格納部２３に格納する（ステップＳ２５）。
【０１６０】
次に、認証要求データ生成部５２１は、認証要求データとして、[r1]H(sid||pw), userID,sidをサーバ６に送付する（ステップＳ２６）。
【０１６１】
認証要求データとして[r1]H(sid||pw), userID, sid を受信したサーバ６のチャレンジ生成部６２１は、次のようにしてチャレンジデータを生成する（ステップＳ２７）。
【０１６２】
ステップＳ２７では、まず、チャレンジ生成部６２１は、受信したuserID に対応付けられたパスワードpwを認証情報格納部３１から取得する。
【０１６３】
さらに、チャレンジ生成部６２１は、0以上q−1以下の任意のr2を選択し、[r2]H(sid||pw)を計算する。
【０１６４】
また、チャレンジ生成部６２１は、[r1r2]H(sid||pw)=[r2]([r1]H(sid||pw))を計算する。
【０１６５】
そして、チャレンジ生成部６２１は、K0=G(sid||[r1r2]H(sid||pw)||0) をチャレンジデータとして生成する。
【０１６６】
次に、チャレンジ生成部６２１は、K0および[r2]H(sid||pw)を端末５に送付する（ステップＳ２８）。
【０１６７】
チャレンジデータとしてK0および[r2]H(sid||pw)を受信した端末５のレスポンス生成部５２２は、次のようにしてレスポンスデータを生成する（ステップＳ２９）。
【０１６８】
ステップＳ２９では、まず、レスポンス生成部５２２は、フレーム２の途中データ格納部２３から g, q, r1, sid を読み込む。
【０１６９】
さらに、レスポンス生成部５２２は、[r1r2]H(sid||pw) = [r1]([r2]H(sid||pw)) を計算する。
【０１７０】
また、レスポンス生成部５２２は、G(sid||[r1r2]H(sid||pw)||0) を計算し、受信したチャレンジデータのK0と一致するか否かを確認する。このとき、計算したK0と受信したK0とが一致しない場合は、端末５は動作を停止する。
【０１７１】
一方、計算したK0と受信したK0とが一致する場合、レスポンス生成部５２２は、K1= G(sid||[r1r2]H(sid||pw)||1)を、レスポンスデータとして生成する。
【０１７２】
次に、レスポンス生成部５２２は、ステップＳ２９で使用した[r1r2]H(sid||pw) をフレーム２の途中データ格納部２３に追加する（ステップＳ３０）。
【０１７３】
次に、レスポンス生成部５２２は、レスポンスデータとしてK1 をサーバ６に送付する（ステップＳ３１）。
【０１７４】
レスポンスデータとしてK1を受信したサーバ６のレスポンス検証部６２２は、ステップＳ２７でチャレンジデータを生成する際に使用した[r1r2]H(sid||pw)と、ステップＳ２６で受信されたsidとを用いて、G(sid||[r1r2]H(sid||pw)||1)計算し、受信したレスポンスデータのK1と一致するか否かを検証する（ステップＳ３２）。
【０１７５】
このとき、計算したK1と受信したK1とが一致しない場合（ステップＳ３３でＮｏ）、レスポンス検証部６２２は、認証失敗を表す検証結果情報を端末５に送付する（ステップＳ３４）。そして、サーバ６は、認証付鍵交換動作を終了する
一方、計算したK1と受信したK1とが一致する場合（ステップＳ３３でＹｅｓ）、レスポンス検証部６２２は、認証成功を表す検証結果情報を端末５に送付する（ステップＳ３５）。
【０１７６】
そして、共有鍵生成部６３は、K2=G(sid||[r1r2]H(sid||pw)||2) を共有鍵として生成する（ステップＳ３６）。
【０１７７】
検証結果情報を受信した端末５は、検証結果情報が認証失敗を表す場合（ステップＳ３７でＮｏ）、認証付鍵交換動作を終了する。
【０１７８】
一方、検証結果情報が認証成功を表す場合（ステップＳ３７でＹｅｓ）、共有鍵生成部５４は、フレーム２の途中データ格納部２３から[r1r2]H(sid||pw), sid を読み込む（ステップＳ３８）。
【０１７９】
次に、共有鍵生成部５４は、ステップＳ３８で読み込んだ途中データに基づいて、K2=G(sid||[r1r2]H(sid||pw)||2)を共有鍵として生成する（ステップＳ３９）。
【０１８０】
次に、共有鍵生成部５４は、フレーム２の共有鍵格納部２５に、ステップＳ３９で生成した共有鍵K2を格納する（ステップＳ４０）。
【０１８１】
以降、端末５は、共有鍵格納部２５に格納した共有鍵K2を用いてサーバ６との暗号通信を行う。また、サーバ６は、ステップＳ３６で生成した共有鍵K2をサーバ６内部の記憶装置に一時記憶することにより端末５との暗号通信を行う。
【０１８２】
以上で、楕円Diffie-Hellman鍵交換を採用した通信システム４の動作例の説明を終了する。
【０１８３】
次に、楕円Diffie-Hellman鍵交換を採用した本発明の第２の実施の形態の効果について説明する。
【０１８４】
本発明の第２の実施の形態としての通信システムは、楕円Diffie-Hellman鍵交換を採用することにより、端末の記憶装置にアクセスできない制限を有するブラウザを搭載した端末と、サーバとの間において、認証付鍵交換に対するリプレイ攻撃、中間者攻撃、オンライン辞書攻撃、サーバへのなりすましに対する耐性を向上させることができる。
【０１８５】
まず、楕円Diffie-Hellman鍵交換を採用した通信システムが、リプレイ攻撃に対して耐性を持つ理由について説明する。攻撃者がリプレイ攻撃を行ったとしても、端末からサーバに送信される公開情報[r1]H(sid||pw) から、端末５における秘密情報r1を求めることができないからである。また、サーバ６が選択するr2は毎回異なる値をとるため、K0=G(sid||[r1r2]H(sid||pw)||0) を計算できないからである。したがって、リプレイ攻撃を行う攻撃者は レスポンスデータK1および共有鍵K2 を計算できないからである。
【０１８６】
また、楕円Diffie-Hellman鍵交換を採用した通信システムが、中間者攻撃に対して耐性を持つ理由について説明する。なぜなら、攻撃者が中間者攻撃を行ったとしても、公開情報[r1]H(sid||pw)および[r2]H(sid||pw) からそれぞれ秘密情報r1およびr2 を求めることが出来ず、したがって、[r1r2]H(sid||pw) およびK0,K1,K2 を計算できないからである。
【０１８７】
さらに、楕円Diffie-Hellman鍵交換を採用した通信システムが、オンライン辞書攻撃に対して耐性を持つ理由について説明する。なぜなら、攻撃者が共有鍵K2を求めるには、r1,r2 および pw に対して辞書攻撃を行う必要がある。ここで、r1およびr2の長さを、辞書攻撃が困難な長さに設定することにより、オンライン辞書攻撃を不可能とすることができるからである。
【０１８８】
さらに、楕円Diffie-Hellman鍵交換を採用した通信システムが、サーバへのなりすましに対して耐性を持つ理由について説明する。なぜなら、攻撃者はユーザのパスワードを知らないため、K0, K1, K2 を計算できないからである。
【０１８９】
なお、このような楕円Diffie-Hellman鍵交換に基づいて認証付鍵交換を行う場合、端末は、パスワードpw、端末で選択した秘密情報r1、および、サーバから受信した公開情報[r2]H(sid||pw)等の途中データを一時的に記憶する必要がある。本発明の第２の実施の形態としての通信システムは、端末内のメモリにアクセスできない制限を有するブラウザを搭載した端末であっても、他のフレーム内に途中データ格納部を備えることにより、これらの情報を一時的に記憶することができる。したがって、本発明の第２の実施の形態としての通信システムは、楕円Diffie-Hellman鍵交換を採用して、各種の攻撃に対する耐性を向上させることができるのである。
【０１９０】
なお、本発明の第２の実施の形態としての通信システムは、例えば、非特許文献１および非特許文献２に記載の認証付鍵交換の技術を採用しても同様の効果を奏することはいうまでもない。
【０１９１】
＜第２の実施の形態の第２の動作例＞
次に、本発明の第２の実施の形態において、公開鍵暗号を用いて認証付鍵交換を行う場合の動作例について説明する。ここでは、公開鍵暗号の一例としてＲＳＡ暗号を用いるものとして説明を行う。
【０１９２】
まずＲＳＡ暗号について説明する。
【０１９３】
ＲＳＡ暗号は鍵セットアップフェーズ、暗号化フェーズ、復号フェーズの3つのプロシージャーから構成される公開鍵暗号方式である。ここで、セキュリティパラメータを k とする。
［鍵セットアップフェーズ］（入力：セキュリティパラメータk）
ステップ１：受信者は、k/2ビットの２つの素数 p, q をラン ダムに生成する。ここで、「/」は除算を表す。
ステップ２：受信者は、N=pqを計算する。
ステップ３：受信者は、ed=1 mod(p-1)(q-1) となる e, d を生成する。ここで、「mod」は剰余演算を表すものとする。
ステップ４：受信者は、公開鍵をpk =(e, N)、秘密鍵をsk = (d, p, q, N) とする。
［暗号化フェーズ］（入力：メッセージm, 公開鍵 pk）
ステップ１：送信者はメッセージmを公開鍵pkで暗号化する。すなわち、暗号文c=RSA_pk(m)=m^e mod N を計算する。ここで、「^」は累乗を表すものとする。
ステップ２：送信者は、暗号文cを受信者に送付する。
［復号フェーズ］（入力：暗号文 c, 秘密鍵 sk)
ステップ１：受信者は、暗号文cを秘密鍵skで復号する。すなわち、メッセージm=DEC_sk(c)=c^d mod Nを計算する。
ステップ２：メッセージmを得る。
【０１９４】
ここで、十分に大きなkを選ぶことにより、Nからp,qを現実的な時間で求めることができないという、素因数分解問題が難しいことを仮定する。この仮定に基づけば、ＲＳＡ暗号では、公開鍵pkおよび暗号文cから秘密鍵skおよびメッセージmを求めることができないことが知られている。
【０１９５】
次に、このようなＲＳＡ暗号を採用した通信システム４の動作例について、図８のシーケンス図を参照して説明する。
【０１９６】
なお、図８では、あらかじめサーバ６の公開鍵 pk = (e,N)および秘密鍵 sk = (d,p,q,N) が決められているものとする。また、セキュリティパラメータkがあらかじめ定められているものとする。なお、安全性の観点から、kは1024以上であることが望ましい。また、さらに別のセキュリティパラメータとしてk_1が設定されているものとする。なお、安全性の観点からk_1は、160以上であることが望ましい
まず、端末５の要求に応じて、サーバ６の端末用アプリケーション送信部６５は、端末用アプリケーションを端末５に送信する（ステップＳ２１）。
【０１９７】
ここで、送信される端末用アプリケーションは、端末５を画面領域分割部２１、認証要求データ生成部５２１、レスポンス生成部５２２、途中データ格納部２３、共有鍵生成部５４として機能させるものである。また、この端末用アプリケーションは、ハッシュ関数Ｇおよびハッシュ関数Ｈを含んでいる。ハッシュ関数Ｇは、任意の文字列を入力として、k−k_1ビットの文字列を出力するハッシュ関数である。また、ハッシュ関数Ｈは、任意の文字列を入力として、k_1ビットの文字列を出力するハッシュ関数である。
【０１９８】
ステップＳ２１において、安全性の観点から、ユーザに送付される端末アプリケーションのＵＲＬは、公開鍵のハッシュ値であるH(pk)を含むことが望ましい。もしも、端末に搭載されるブラウザが、アクセス先のＵＲＬの長さに制限を有する場合、ＵＲＬに、h(pk)の一部、例えば先頭の数ビットを含めてもよい。以降の説明では、ＵＲＬに H(pk) が含まれているものとする。
【０１９９】
次に、端末５の端末用アプリケーション実行部５７は、受信した端末用アプリケーションを実行する（ステップＳ２２）。
【０２００】
次に、画面領域分割部２１は、２つのフレームからなるページをブラウザ上に表示する（ステップＳ２３）。以降、ブラウザ上に表示された２つのフレームを、フレーム１およびフレーム２と記載する。なお、フレーム１は本発明の第１のフレームの一実施形態を構成し、フレーム２は本発明の他のフレームの一実施形態を構成する。
【０２０１】
次に、認証要求データ生成部５２１は、次のようにして、認証要求データを生成する（ステップＳ２４）。
【０２０２】
ステップＳ２４では、まず、認証要求データ生成部５２１は、フレーム１に表示した入力画面を介してユーザID「userID」およびパスワード「pw」を取得する。
【０２０３】
次に、認証要求データ生成部５２１は、userID を含むリクエストメッセージを、認証要求データとして生成する。
【０２０４】
次に、認証要求データ生成部５２１は、ステップＳ２４で使用したuserID および pw を、途中データとしてフレーム２の途中データ格納部２３に書き出す（ステップＳ２５）。
【０２０５】
次に、認証要求データ生成部５２１は、ステップＳ２４で生成したリクエストメッセージをサーバ６に送付する（ステップＳ２６）。
【０２０６】
リクエストメッセージを受信したサーバ６のチャレンジ生成部６２１は、k_1ビットのr2をランダムに選択することにより、乱数r2および公開鍵pk をチャレンジデータとする（ステップＳ２７）。
【０２０７】
次に、チャレンジ生成部６２１は、チャレンジデータとしてr2およびpk を端末５に送付する（ステップＳ２８）。
【０２０８】
r2およびpk を受信した端末５のレスポンス生成部５２２は、次のようにしてレスポンスデータを生成する（ステップＳ２９）。
【０２０９】
ステップＳ２９では、まず、レスポンス生成部５２２は、フレーム２の途中データ格納部２３から pw を読み出す。
【０２１０】
次に、レスポンス生成部５２２は、ＵＲＬに含まれるH(pk) と、受信したpkを用いて生成したH(pk)とが一致するか否かを検証する。すなわち、レスポンス生成部５２２は、公開鍵が改変されているか否かを判断する。ここで、一致しない場合（公開鍵が改変されている場合）、端末５は、認証付鍵交換動作を終了する。
【０２１１】
一方、一致した場合（公開鍵が改変されていない場合）、レスポンス生成部５２２は、k_1ビットの乱数 r1 を選択する。
【０２１２】
次に、レスポンス生成部５２２は、ｃ=G(r2||r1||pw||0) を計算する。
【０２１３】
さらに、レスポンス生成部５２２は、E=RSA_pk(r1||c) をレスポンスデータとして生成する。
【０２１４】
次に、レスポンス生成部５２２は、ステップＳ２８で使用したr1, r2をフレーム２の途中データ格納部２３に追加する（ステップＳ３０）。
【０２１５】
次に、レスポンス生成部５２２は、レスポンスデータE をサーバ６に送付する（ステップＳ３１）。
【０２１６】
レスポンス E を受信したサーバ６のレスポンス検証部６２２は、次のようにしてレスポンスデータを検証する（ステップＳ３２）。
【０２１７】
ステップＳ３２では、まず、レスポンス検証部６２２は、受信したレスポンスデータＥを、公開鍵ｐｋに対応する秘密鍵ｓｋを用いて復号することにより、検証対象の認証情報を得る。すなわち、レスポンス検証部６２２は、r1||c = DEC_sk(E) を計算することにより、r1, c を得る。
【０２１８】
さらに、レスポンス検証部６２２は、復号により得られた認証情報を認証するか否かを判断する。
【０２１９】
具体的には、レスポンス検証部６２２は、ステップＳ２６で受信した認証要求データに含まれるuserID に対応したパスワード pw を、認証情報格納部３１を参照して取得する。
【０２２０】
次に、レスポンス検証部６２２は、取得したpw、ステップＳ３２で求めたr1および自装置で選択した乱数r2に基づいて、H(r2||r1||pw||0)を計算する。
【０２２１】
そして、レスポンス検証部６２２は、計算したH(r2||r1||pw||0)が暗号文ｃに一致するか否かを確認する（ステップＳ３３）。
【０２２２】
ここで、一致していなかった場合、レスポンス検証部６２２は、検証失敗を表す検証結果情報を端末５に送付し（ステップＳ３４）、以降の認証付鍵交換動作を停止する。
【０２２３】
一方、一致している場合、レスポンス検証部６２２は、検証成功を表す検証結果情報を、端末５に送付する（ステップＳ３５）。
【０２２４】
次に、共有鍵生成部６３は、r1,r2,およびpwに基づいて、K=H(r1||r2||pw||1) を共有鍵として生成する（ステップＳ３６）。
【０２２５】
次に、検証結果情報を受信した端末５は、検証結果情報が認証失敗を表す場合（ステップＳ３７でＮｏ）、認証付鍵交換処理を終了する。
【０２２６】
検証結果情報が認証成功を表す場合（ステップＳ３７でＹｅｓ）、共有鍵生成部５４は、フレーム２の途中データ格納部２３からr1, r2, pw を読み込む（ステップＳ３８）。
【０２２７】
次に、共有鍵生成部５４は、K=H(r1||r2||pw||1)を共有鍵として生成する（ステップＳ３９）。
【０２２８】
次に、共有鍵生成部５４は、共有鍵Kをフレーム２の共有鍵格納部２５に格納する（ステップＳ４０）。
【０２２９】
以降、端末５は、共有鍵格納部２５に格納した共有鍵Kを用いてサーバ６との暗号通信を行う。また、サーバ６は、ステップＳ３６で生成した共有鍵Kをサーバ６内部の記憶装置に一時記憶することにより端末５との暗号通信を行う。
【０２３０】
以上で、ＲＳＡ暗号を用いた通信システム４の動作の説明を終了する。
【０２３１】
次に、ＲＳＡ暗号を用いた本発明の第２の実施の形態の効果について説明する。
【０２３２】
本発明の第２の実施の形態としての通信システムは、ＲＳＡ暗号を用いた認証付鍵交換に採用することにより、端末の記憶装置にアクセスできない制限を有するブラウザを搭載した端末と、サーバとの間において、認証付鍵交換に対するリプレイ攻撃、中間者攻撃、オンライン辞書攻撃、および、サーバへのなりすましに対する耐性を向上させることができる。
【０２３３】
まず、ＲＳＡ暗号を用いて認証付鍵交換を行う本発明の第２の実施の形態としての通信システムが、リプレイ攻撃に対して耐性を持つ理由について説明する。なぜなら、攻撃者がリプレイ攻撃を行ったとしても、サーバが選択する乱数ｒ2を毎回変更することにより、レスポンスデータを生成する際に使用するｃおよび共有鍵Kを毎回変更することができるからである。
【０２３４】
また、ＲＳＡ暗号を用いて認証付鍵交換を行う本発明の第２の実施の形態としての通信システムが、中間者攻撃やオンライン辞書攻撃に対して耐性を持つ理由について説明する。なぜなら、攻撃者が中間者攻撃やオンライン辞書攻撃を行ったとしても、ＲＳＡ暗号の安全性により、暗号文Eから r1および c を求めることが難しいからである。したがって、攻撃者は共有鍵Kを計算できない。
【０２３５】
さらに、ＲＳＡ暗号を用いて認証付鍵交換を行う本発明の第２の実施の形態としての通信システムが、サーバへのなりすましに対して耐性を持つ理由について説明する。なぜなら、攻撃者がサーバになりすまそうとした場合、公開鍵ごとなりすますためには、ＵＲＬに含まれるハッシュ値H(pk)とハッシュ値が一致するpk'を生成する必要がある。しかしながら、これはハッシュ関数の安全性から難しい。
【０２３６】
また、攻撃者が、本物のサーバの公開鍵を利用したまま攻撃を行っても、ＲＳＡ暗号の安全性により、秘密鍵を求めることや暗号文の復号を行うことは難しい。したがって攻撃者にとって、共有鍵Kを求めることは難しい。ただし、この場合、端末は、認証付鍵交換処理を正しく終了してしまうため、攻撃者がなりすましを行っていたことを判定できない。
【０２３７】
しかしながら、後の暗号通信では、端末から送付されるデータはKによって暗号化されるため、攻撃者は復号できない。したがって、端末内の H(pk) が不正に書き換えられない限り、サーバへのなりすましは困難である。
【０２３８】
なお、このようにＲＳＡ暗号を用いて認証付鍵交換を行う場合、端末は、パスワードpw、端末で選択した秘密情報であるr1、および、サーバから受信した公開情報のr2等を一時的に記憶する必要がある。本発明の第２の実施の形態としての通信システムは、端末内のメモリにアクセスできない制限を有するブラウザを搭載した端末であっても、他のフレーム内に途中データ格納部を備えることによりこれらの情報を一時的に記憶することができる。したがって、本発明の第２の実施の形態としての通信システムは、ＲＳＡ暗号を用いた認証付鍵交換を採用して、各種の攻撃に対する耐性を向上させることができるのである。
【０２３９】
なお、本発明の第２の実施の形態としての通信システムは、例えば、エルガマル暗号または楕円エルガマル暗号等のような、ＲＳＡ暗号以外の公開鍵暗号を用いて認証付鍵交換を行ってもよい。特に、本発明の第２の実施の形態としての通信システムは、安全性の観点から、ＲＳＡ−ＯＡＥＰ（Optimal Asymmetric Encryption Padding）暗号やCramer-Shoup暗号等のように、強度の安全性を満たす公開鍵暗号を用いることが望ましい。
【０２４０】
また、本発明の第２の実施の形態においてサーバの端末用アプリケーション格納部に格納される端末用アプリケーションは、図９に示すデータ構造を持つコンテンツ９によって構成されていてもよい。図９において、コンテンツ９は、フレーム構造情報９１と、第１フレーム情報９２と、他フレーム情報９３とを含む。
【０２４１】
フレーム構造情報９１は、ブラウザ画面領域を構成する複数のフレームの構造情報を含む。また、フレーム構造情報９１は、端末に搭載されるブラウザに読み込まれてブラウザ画面領域に適用されることによって、本発明の画面領域分割部の一実施形態を構成する。
【０２４２】
第１フレーム情報は、複数のフレームのうち第１のフレームに適用される情報である。
【０２４３】
また、第１フレーム情報は、第１のフレームを介して取得した認証情報の認証を、第１のフレームを介してサーバに要求するとともに、サーバから受信した認証結果情報が認証成功を表す場合、サーバに認証を要求する際に使用した途中データに基づいてサーバとの暗号通信に用いる共有鍵を生成する認証付鍵交換アプリケーションを含む。
【０２４４】
また、第１フレーム情報は、端末に搭載されるブラウザに組み込まれたアプリケーション実行エンジンによって第１フレーム内で実行されることにより、本発明の認証要求部および共有鍵生成部の一実施形態を構成する。
【０２４５】
他フレーム情報９３は、第１フレーム以外の他のフレームに適用される情報である。
【０２４６】
また、他フレーム情報９３は、認証情報の認証をサーバに要求する際に使用する途中データを格納する途中データ格納フィールドと、共有鍵を格納する共有鍵格納フィールドと、を含む。なお、途中データ格納フィールドおよび共有鍵格納フィールドは非表示に設定されていることが望ましい。また、途中データ格納フィールドおよび共有鍵格納フィールドは、本発明のデータ構造における途中データ格納情報および共有鍵格納情報の一実施形態を構成する。
【０２４７】
また、他フレーム情報９３は、端末に搭載されるブラウザに読み込まれて他フレームに適用されることによって、本発明の途中データ格納部および共有鍵格納部の一実施形態を構成する。
【０２４８】
そして、このようなコンテンツ９のデータ構造は、本発明のデータ構造の一実施形態を構成する。
【０２４９】
また、上述した本発明の各実施の形態において、各シーケンス図を参照して説明したサーバの動作を、本発明のコンピュータ・プログラムとしてサーバの記憶装置（記憶媒体）に格納しておき、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
【０２５０】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した端末の動作を、本発明のコンピュータ・プログラムとしてサーバの記憶装置（記憶媒体）に格納しておき、係るコンピュータ・プログラムを端末がダウンロードして端末のＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
【０２５１】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０２５２】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【０２５３】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
サーバと、端末とを備えた通信システムであって、
前記端末は、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、
前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求する認証要求部と、
前記認証を前記サーバに要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内で格納する途中データ格納部と、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、
前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、
を有し、
前記サーバは、
あらかじめ登録された認証情報を格納した認証情報格納部と、
前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、
前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる前記共有鍵を生成する共有鍵生成部と、
を有する通信システム。
（付記２）
前記サーバは、
前記端末を、前記画面領域分割部、前記認証要求部、前記途中データ格納部、前記共有鍵生成部および前記共有鍵格納部として機能させるための端末用アプリケーションを格納する端末用アプリケーション格納部と、
前記端末用アプリケーションを前記端末に送信する端末用アプリケーション送信部と、
をさらに有し、
前記端末は、
前記端末用アプリケーションを受信する端末用アプリケーション受信部と、
前記端末用アプリケーションを実行する端末用アプリケーション実行部と、
をさらに有することを特徴とする付記１に記載の通信システム。
（付記３）
前記端末の前記認証要求部は、
前記認証の要求を開始するための認証要求データを生成して前記サーバに送信するとともに、前記認証要求データを生成する際に使用するデータを前記途中データとして前記途中データ格納部に格納する認証要求データ生成部と、
前記サーバから受信するランダムなチャレンジデータおよび前記途中データに基づいてレスポンスデータを生成して前記サーバに送信するとともに、前記レスポンスデータを生成する際に使用するデータを前記途中データとして前記途中データ格納部に追加して格納するレスポンス生成部と、
を有し、
前記サーバの前記認証部は、
前記認証要求データの受信に応じて前記チャレンジデータを生成して前記端末に送信するチャレンジ生成部と、
前記端末から受信する前記レスポンスデータを検証することにより前記認証情報を認証するか否を判断するレスポンス検証部と、
を有することを特徴とする付記１または付記２に記載の通信システム。
（付記４）
前記サーバの前記端末用アプリケーション送信部は、前記端末用アプリケーションのＵＲＬ（Uniform Resource Locator）に、前記サーバが有する公開鍵のハッシュ値の少なくとも一部を含めて前記端末用アプリケーションを前記端末に送信し、
前記サーバの前記チャレンジ生成部は、前記公開鍵を前記チャレンジデータに含めて前記端末に送信し、
前記端末の前記レスポンス生成部は、前記チャレンジデータに含まれる公開鍵が改変されていないことを前記端末用アプリケーションのＵＲＬに基づいて判断し、前記公開鍵が改変されていないと判断した場合に、前記公開鍵を用いて前記認証情報を暗号化した情報を前記レスポンスデータに含めて前記サーバに送信し、
前記サーバの前記レスポンス検証部は、前記レスポンスデータに含まれる情報を、前記公開鍵に対応する秘密鍵を用いて復号することにより得られる認証情報を認証するか否かを判断することを特徴とする付記３に記載の通信システム。
（付記５）
あらかじめ登録された認証情報を格納した認証情報格納部と、
前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、
前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成部と、
を備えたサーバ。
（付記６）
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、
前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介してサーバに要求する認証要求部と、
前記認証を前記サーバに要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内で格納する途中データ格納部と、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、
前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、
を備えた端末。
（付記７）
端末と通信を行うサーバに、
あらかじめ登録された認証情報を認証情報格納部に格納しておく認証情報格納ステップと、
前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証ステップと、
前記認証ステップで、前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、
を実行させるコンピュータ・プログラム。
（付記８）
サーバと通信を行う端末に、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割ステップと、
前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求する認証要求ステップと、
前記認証要求ステップで前記認証を要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内の途中データ格納部に格納する途中データ格納ステップと、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、
前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する共有鍵格納ステップと、
を実行させるコンピュータ・プログラム。
（付記９）
サーバから端末に配信されるコンテンツのデータ構造であって、
前記端末において前記コンテンツが表示されるブラウザ画面領域を構成する複数のフレームの構造が定義されたフレーム構造情報と、
前記複数のフレームのうち第１のフレームに適用される情報を表し、前記第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求するとともに、前記サーバから受信した認証結果情報が認証成功を表す場合、前記認証を前記サーバに要求する際に使用した途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する認証付鍵交換アプリケーションを含む第１フレーム情報と、
前記第１のフレーム以外の他のフレームに適用される情報を表し、前記途中データを格納する途中データ格納情報と、前記共有鍵を格納する共有鍵格納情報と、を含む他フレーム情報と、
を含むデータ構造。
（付記１０）
サーバと、端末とを用いて、
前記端末は、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割し、
前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求し、
前記認証を前記サーバに要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内の途中データ格納部に格納し、
前記サーバは、
あらかじめ登録された認証情報を認証情報格納部に格納しておき、
前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信し、
前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成し、
前記端末は、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる前記共有鍵を生成し、
前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する、通信方法。
（付記１１）
前記端末を、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部、
前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求する認証要求部、
前記認証を前記サーバに要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内で格納する途中データ格納部、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部、および、
前記共有鍵を前記他のフレーム内で格納する共有鍵格納部、
として機能させるための端末用アプリケーションを格納する端末用アプリケーション格納部と、
前記端末用アプリケーションを前記端末に送信する端末用アプリケーション送信部と、
をさらに備えることを特徴とする付記５に記載のサーバ。
（付記１２）
前記端末を、前記画面領域分割部、前記認証要求部、前記途中データ格納部、前記共有鍵生成部および前記共有鍵格納部として機能させるための端末用アプリケーションを前記サーバから受信する端末用アプリケーション受信部と、
前記端末用アプリケーションを実行する端末用アプリケーション実行部と、
をさらに備えることを特徴とする付記６に記載の端末。
（付記１３）
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割ステップ、
前記複数のフレームのうち第１のフレームを介して取得した認証情報の認証を、前記第１のフレームを介して前記サーバに要求する認証要求ステップ、
前記認証要求ステップで前記認証を要求する際に使用される途中データを、前記第１のフレーム以外の他のフレーム内の途中データ格納部に格納する途中データ格納ステップ、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成ステップ、および、
前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する共有鍵格納ステップ、
を含む端末用アプリケーションを端末用アプリケーション格納部に格納しておく端末用アプリケーション格納ステップと、
前記端末用アプリケーションを前記端末に送信する端末用アプリケーション送信ステップと、
を、前記サーバにさらに実行させることを特徴とする付記７に記載のコンピュータ・プログラム。
（付記１４）
前記画面領域分割ステップ、前記認証要求ステップ、前記途中データ格納ステップ、前記共有鍵生成ステップおよび前記共有鍵格納ステップを含む端末用アプリケーションを前記サーバから受信する端末用アプリケーション受信ステップと、
前記端末用アプリケーションを実行する端末用アプリケーション実行ステップと、
を、前記端末にさらに実行させることを特徴とする付記８に記載のコンピュータ・プログラム。
（付記１５）
前記サーバと前記端末とを用いて、
前記サーバは、
前記端末を、前記画面領域分割部、前記認証要求部、前記途中データ格納部、前記共有鍵生成部および前記共有鍵格納部として機能させるための端末用アプリケーションを端末用アプリケーション格納部に格納しておき、
前記端末用アプリケーションを前記端末に送信し、
前記端末は、
前記端末用アプリケーションを受信し、
受信した端末用アプリケーションを実行することを特徴とする付記１０に記載の通信方法。
【符号の説明】
【０２５４】
１、４    通信システム
２、５    端末
３、６    サーバ
２１    画面領域分割部
２２、５２    認証要求部
２３    途中データ格納部
２４、５４、３３、６３    共有鍵生成部
２５    共有鍵格納部
３１    認証情報格納部
３２、６２    認証部
５６    端末用アプリケーション受信部
５７    端末用アプリケーション実行部
６４    端末用アプリケーション格納部
６５    端末用アプリケーション送信部
９    コンテンツ
９１    フレーム構造情報
９２    第１フレーム情報
９３    他フレーム情報
５２１    認証要求データ生成部
５２２    レスポンス生成部
６２１    チャレンジ生成部
６２２    レスポンス検証部
２００１、３００１    ＣＰＵ
２００２、３００２    ＲＡＭ
２００３、３００３    ＲＯＭ
２００４、３００４    記憶装置
２００５、３００５    ネットワークインタフェース
２００６    表示装置
２００７    入力装置
【図１】
2012060366.tif 000003
【図２】
2012060366.tif 000004
【図３】
2012060366.tif 000005
【図４】
2012060366.tif 000006
【図５】
2012060366.tif 000007
【図６】
2012060366.tif 000008
【図７】
2012060366.tif 000009
【図８】
2012060366.tif 000010
【図９】
2012060366.tif 000011