説明

通信システム、通信方法、およびコンピュータ・プログラム

【課題】端末のメモリにアクセスできないブラウザを搭載した端末と、サーバ証明書を所有しないサーバとの間で、認証後に暗号通信を行う通信システムを提供すること。
【解決手段】端末2は、ブラウザ画面領域を複数のフレームに分割する画面領域分割部21と、第1フレームを介してサーバ3に認証情報の認証を要求する認証要求部22と、認証を要求する際の途中データを、第1フレーム以外の他フレーム内で格納する途中データ格納部23と、サーバ3から認証成功を受信した場合、途中データに基づいて共有鍵を生成する共有鍵生成部24と、共有鍵を他フレーム内で格納する共有鍵格納部25とを有し、サーバ3は、認証情報格納部31に基づいて、端末2から要求される認証情報を認証するか否かを判断して認証結果を端末2に送信する認証部32と、認証成功の場合、認証情報を認証する際の途中データに基づいて共有鍵を生成する共有鍵生成部33とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号通信を行う通信システムに関し、特に、ユーザ認証後に暗号通信を行う通信システム、通信方法、およびコンピュータ・プログラムに関する。
【背景技術】
【0002】
ネットワークを介してサービスを提供する通信システムとして、ユーザ認証後に暗号通信を行いながらサービスを提供する通信システムが多く知られている。このような通信システムでは、端末においてウェブブラウザアプリケーション(以下、単にブラウザと記載する)が用いられることを前提としているものが多い。
【0003】
例えば、ウェブメールサービスを提供する通信システムは、ユーザがあるメールアドレスの所有者であることをユーザIDとパスワードとを用いて認証し、その後、サーバが格納しているユーザ宛のメールを、ユーザの操作する端末に送信する。そして、端末に搭載されたブラウザは、ユーザ宛のメールを表示する。このとき、サーバから端末に送信するメールが漏洩することがないように、サーバおよび端末間で暗号通信が行われることが望ましい。
【0004】
一般に、このような暗号通信には、SSL(Secure Socket Layer)通信が利用される。SSL通信を利用するために、サーバは、あらかじめサーバ証明書を証明書発行機関等から取得しておく。端末は、サーバから受信するサーバ証明書の有効性や信頼性を確認した後、暗号通信を開始することにより、サービスの提供を受ける。
【0005】
しかしながら、ユーザ認証後に暗号通信を行うことが望ましいサービスを提供する通信システムであっても、サーバがサーバ証明書を所有していない場合がある。例えば、個人が運用するサーバは、取得に費用がかかるサーバ証明書を所有しない場合が多い。そして、サーバ証明書を所有しないサーバは、SSL通信を行うことができない。
【0006】
このような通信システムが暗号通信を行うためには、ユーザ認証後に、サーバおよび端末間で暗号通信用の鍵を交換して共有する認証付鍵交換を行う必要がある。認証付鍵交換の技術としては、パスワードを用いてユーザ認証を行い、その認証中に生成した途中データを用いて、暗号通信用の共有鍵を生成するものが知られている(例えば、非特許文献1および非特許文献2参照)。これらの認証付鍵交換の技術は、それぞれ安全性が数学的に保証されている。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Bellare, M., D. Pointcheval, P. Rogaway. "Authenticated Key Exchange Secure against Dictionary Attacks", Eurocrypt 3000 LNCS (Springer-Verlag) 1807.
【非特許文献2】Katz, J., R. Ostrovsky, M. Yung. "Efficient Password-Authenticated Key Exchange Using Human-Memorable Passwords", Eurocrypt 3001 (Springer-Vergal) 2045.
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、端末に搭載されるブラウザは、端末が有するメモリにアクセスできない(すなわち、メモリに記憶された情報を読み書きできない)という動作上の制限を有する場合がある。例えば、携帯電話に搭載されるブラウザは、上述の制限を有する場合がある。
【0009】
非特許文献1および非特許文献2に記載された認証付鍵交換の技術では、前述のように、ユーザ認証において生成した途中データを、暗号通信用の鍵共有に利用するため、これら途中データを一時的に記憶しておく必要がある。
【0010】
ここで、端末のメモリにアクセスできないという制限のあるブラウザを搭載した端末は、途中データを端末のメモリに記憶しておくことができない。したがって、非特許文献1および非特許文献2に記載された技術を採用した通信システムでは、上述の制限を有する端末に対して、ユーザ認証後に暗号通信を行うサービスを提供することができない。
【0011】
本発明は、上述の課題を解決するためになされたもので、端末のメモリにアクセスできない制限を有するブラウザを搭載した端末と、サーバ証明書を所有しないサーバとの間で、ユーザ認証後に暗号通信を行う通信システムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の通信システムは、サーバと、端末とを備えた通信システムであって、前記端末は、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求する認証要求部と、前記認証を前記サーバに要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内で格納する途中データ格納部と、前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、を有し、前記サーバは、あらかじめ登録された認証情報を格納した認証情報格納部と、前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる前記共有鍵を生成する共有鍵生成部と、を有する。
【0013】
また、本発明のサーバは、あらかじめ登録された認証情報を格納した認証情報格納部と、前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成部と、を備える。
【0014】
また、本発明の端末は、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介してサーバに要求する認証要求部と、前記認証を前記サーバに要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内で格納する途中データ格納部と、前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、を備える。
【0015】
また、本発明のコンピュータ・プログラムは、端末と通信を行うサーバに、あらかじめ登録された認証情報を認証情報格納部に格納しておく認証情報格納ステップと、前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証ステップと、前記認証ステップで、前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、を実行させる。
【0016】
また、本発明のコンピュータ・プログラムは、サーバと通信を行う端末に、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割ステップと、前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求する認証要求ステップと、前記認証要求ステップで前記認証を要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内の途中データ格納部に格納する途中データ格納ステップと、前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する共有鍵格納ステップと、を実行させる。
【0017】
また、本発明のデータ構造は、サーバから端末に配信されるコンテンツのデータ構造であって、前記端末において前記コンテンツが表示されるブラウザ画面領域を構成する複数のフレームの構造が定義されたフレーム構造情報と、前記複数のフレームのうち第1のフレームに適用される情報を表し、前記第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求するとともに、前記サーバから受信した認証結果情報が認証成功を表す場合、前記認証を前記サーバに要求する際に使用した途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する認証付鍵交換アプリケーションを含む第1フレーム情報と、前記第1のフレーム以外の他のフレームに適用される情報を表し、前記途中データを格納する途中データ格納情報と、前記共有鍵を格納する共有鍵格納情報と、を含む他フレーム情報と、を含む。
【0018】
また、本発明の通信方法は、サーバと、端末とを用いて、前記端末は、コンテンツを表示するブラウザ画面領域を複数のフレームに分割し、前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求し、前記認証を前記サーバに要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内の途中データ格納部に格納し、前記サーバは、あらかじめ登録された認証情報を認証情報格納部に格納しておき、前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信し、前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成し、前記端末は、前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる前記共有鍵を生成し、前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する。
【発明の効果】
【0019】
本発明は、端末のメモリにアクセスできない制限を有するブラウザを搭載した端末と、サーバ証明書を所有しないサーバとの間で、ユーザ認証後に暗号通信を行う通信システムを提供することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の第1の実施の形態としての通信システムの構成を示すブロック図である。
【図2】本発明の第1の実施の形態としての通信システムのハードウェア構成を示すブロック図である。
【図3】本発明の第1の実施の形態としての通信システムの機能ブロック図である。
【図4】本発明の第1の実施の形態としての通信システムの動作を示すシーケンス図である。
【図5】本発明の第2の実施の形態としての通信システムの機能ブロック図である。
【図6】本発明の第2の実施の形態としての通信システムの動作を示すシーケンス図である。
【図7】本発明の第2の実施の形態としての通信システムが楕円Diffie-Hellman鍵交換を採用した場合の動作の一例を示すシーケンス図である。
【図8】本発明の第2の実施の形態としての通信システムが公開鍵暗号を採用した場合の動作の一例を示すシーケンス図である。
【図9】本発明の各実施の形態においてサーバに格納されるデータ構造の一例を示す模式図である。
【発明を実施するための形態】
【0021】
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
【0022】
(第1の実施の形態)
本発明の第1の実施の形態としての通信システムの構成を図1に示す。図1において、通信システム1は、端末2およびサーバ3を備えている。また、端末2およびサーバ3は、インターネット、LAN(Local Area Network)、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークによって互いに通信可能に接続されている。
【0023】
なお、図1において、1つの端末2を示しているが、本発明の通信システムが備える端末の数を限定するものではない。
【0024】
次に、通信システム1を構成する各装置のハードウェア構成を図2に示す。
【0025】
図2において、端末2は、CPU(Central Processing Unit)2001と、RAM(Random Access Memory)2002と、ROM(Read Only Memory)2003と、記憶装置2004と、ネットワークインタフェース2005と、表示装置2006と、入力装置2007とを備えたコンピュータ装置によって構成されている。
【0026】
また、図2において、サーバ3は、CPU3001と、RAM3002と、ROM3003と、記憶装置3004と、ネットワークインタフェース3005とを備えたコンピュータ装置によって構成されている。
【0027】
次に、通信システム1を構成する各装置の機能ブロック構成を図3に示す。
【0028】
図3において、端末2は、画面領域分割部21と、認証要求部22と、途中データ格納部23と、共有鍵生成部24と、共有鍵格納部25と、を備える。また、サーバ3は、認証情報格納部31と、認証部32と、共有鍵生成部33と、を備える。
【0029】
ここで、画面領域分割部21は、コンピュータ・プログラムを実行するCPU2001および表示装置2006によって構成される。また、認証要求部22は、コンピュータ・プログラムを実行するCPU2001、ネットワークインタフェース2005、表示装置2006および入力装置2007によって構成される。また、途中データ格納部23および共有鍵格納部25は、コンピュータ・プログラムを実行するCPU2001およびRAM2002によって構成される。また、共有鍵生成部24は、コンピュータ・プログラムを実行するCPU2001によって生成される。なお、CPU2001によって実行されるコンピュータ・プログラムは、ROM2003または記憶装置2004に記憶される。端末内で読み書きされるデータ、あるいは画像などの保存データは、記憶装置2004に記憶される。
【0030】
また、認証情報格納部31は、記憶装置3004によって構成される。また、認証部32は、コンピュータ・プログラムを実行するCPU3001およびネットワークインタフェース3005によって構成される。また、共有鍵生成部33は、コンピュータ・プログラムを実行するCPU3001によって構成される。なお、CPU3001によって実行されるコンピュータ・プログラムは、ROM3003または記憶装置3004に記憶される。サーバ内で読み書きされるデータ、あるいは画像、文書などの保存データは、記憶装置3004に記憶される。
【0031】
ただし、端末2及びサーバ3は、上述した構成に限定されない。
【0032】
次に、端末2の各部の構成について説明する。
【0033】
画面領域分割部21は、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する。ここで、フレームとは、ブラウザ画面領域が区切られて生成される複数の領域のことである。フレーム機能を備えるブラウザは、それぞれのフレームに異なるコンテンツを適用することができる。
【0034】
また、画面領域分割部21は、コンテンツを画面に表示するブラウザによって実現される。例えば、画面領域分割部21は、コンテンツに含まれるフレームの構造情報を読み込んで画面領域に適用することにより、ブラウザの画面領域を複数のフレームに分割してもよい。
【0035】
認証要求部22は、複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、第1のフレームを介してサーバ3に要求する。
【0036】
ここで、認証情報とは、例えば、端末2を操作するユーザのユーザIDおよびパスワードを含む情報であってもよい。また、認証情報は、端末2に発行された端末IDおよびパスワードであってもよい。また、認証情報は、サーバ3によるサービスの提供対象であることを認証するためにあらかじめ発行されたその他の情報であってもよい。
【0037】
また、認証要求部22は、例えば、ユーザIDおよびパスワードの入力フィールドを含む入力画面を第1のフレームに表示することにより、第1のフレームを介して入力装置2007から認証情報を取得してもよい。
【0038】
また、この場合、認証要求部22は、パスワードに所定の一方向性ハッシュ関数を適用した値とユーザIDとをサーバ3に送信することにより、認証情報の認証を要求してもよい。
【0039】
途中データ格納部23は、第1のフレーム以外の他のフレームに含まれる。そして、途中データ格納部23は、ブラウザ画面領域の他のフレームにおいて、認証要求部22によってサーバ3に認証が要求される際に使用される途中データを格納する。
【0040】
ここで、フレーム機能に対応したブラウザは、一般的に、フレーム間でのデータの読み書きを可能としている。したがって、他のフレーム内の途中データ格納部23は、第1のフレームで動作する認証要求部22によって生成される途中データを格納することが可能である。
【0041】
例えば、途中データ格納部23は、他のフレームに適用される情報に含まれるテキストフィールド等の要素によって構成されてもよい。このとき、途中データ格納部23を構成する要素は非表示であることが望ましい。あるいは、他のフレーム全体が非表示であってもよい。なお、ブラウザ画面領域内のフレームに適用される情報の格納領域は、RAM2002に確保されるので、途中データ格納部23は、物理的にはRAM2002の格納領域の一部に対応する。
【0042】
また、途中データ格納部23は、他のフレームに書き出される途中データの個数に応じて、複数の要素から構成されていてもよい。あるいは、途中データ格納部23は、所定のセパレータ文字によって連結された複数の途中データを1つの要素内に格納するようにしてもよい。また、途中データ格納部23は、第1のフレーム以外の他の1つのフレーム内に含まれていてもよいし、第1のフレーム以外の他の複数のフレームに含まれていてもよい。
【0043】
また、他のフレーム内の途中データ格納部23に格納される途中データは、第1のフレームで機能する認証要求部22によってサーバ3に認証が要求されても、書き換えられることがない。一方、第1のフレームに適用されている情報は、認証要求部22によってサーバ3に認証が要求されると、書き換えられることになる。
【0044】
例えば、途中データ格納部23が、認証要求部22によって第1のフレームを介して取得されたパスワードを途中データとして格納する場合について説明する。この場合、第1のフレームに入力されて第1のフレームで保持されていたユーザIDおよびパスワードは、認証要求部22が第1のフレームからサーバ3に認証を要求すると、サーバ3から受信する情報で書き換えられるため、保持されない。一方、他のフレーム内の途中データ格納部23に格納されたパスワードは、認証要求部22によって第1のフレームからサーバ3に認証を要求した後も、他のフレームに保持されていることになる。
【0045】
共有鍵生成部24は、サーバ3から受信した認証結果情報が認証成功を表す場合、途中データ格納部23に格納された途中データに基づいて、サーバ3との暗号通信に用いる共有鍵を生成する。
【0046】
このとき、共有鍵生成部24は、第1のフレームで機能し、途中データ格納部23から途中データを読み込むことにより、共有鍵を生成してもよい。
【0047】
例えば、共有鍵生成部24は、途中データ格納部23に格納されているパスワードを所定の暗号化アルゴリズムで暗号化した値を、サーバ3との暗号通信に用いる共有鍵として生成してもよい。
【0048】
共有鍵格納部25は、他のフレームにおいて、生成された共有鍵を格納する。このとき、共有鍵格納部25を含むフレームは、第1のフレーム以外の他のフレームであれば、途中データ格納部23を含むフレームと同一であってもよいし、異なるフレームであってもよい。
【0049】
次に、サーバ3の各部の構成について説明する。
【0050】
認証情報格納部31は、あらかじめ登録された認証情報を格納している。認証情報格納部31に格納される認証情報は、サービス提供対象に対してあらかじめ発行されたものである。
【0051】
例えば、認証情報格納部31は、ユーザIDとそのパスワードとを対応付けて格納していてもよい。
【0052】
認証部32は、認証情報格納部31に基づいて、端末2から認証を要求される認証情報を認証するか否かを判断する。そして、認証部32は、認証成功または認証失敗を表す情報を端末2に送信する。
【0053】
例えば、端末2からパスワードのハッシュ値およびユーザIDを受信することにより認証を要求された場合、認証部32は、受信したユーザIDに対応付けられたパスワードを認証情報格納部31から取得する。そして、認証部32は、取得したパスワードに上述の所定の一方向性ハッシュ関数を適用した値が、受信したパスワードのハッシュ値と等しいか否かを検証する。そして、認証部32は、これらの値が等しいか否かに基づいて、認証成功または認証失敗を表す情報を端末2に送信する。
【0054】
共有鍵生成部33は、認証部32によって前記認証情報を認証すると判断された場合、認証情報を認証する際に使用した途中データに基づいて、端末2との暗号通信に用いる共有鍵を生成する。
【0055】
例えば、共有鍵生成部33は、認証情報格納部31から取得したパスワードを、所定の暗号化アルゴリズムで暗号化した値を、端末2との暗号通信に用いる共有鍵として生成してもよい。
【0056】
以上のように構成された通信システム1の動作について、図4のシーケンス図を用いて説明する。
【0057】
まず、端末2の画面領域分割部21が、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する(ステップS1)。
【0058】
次に、認証要求部22が、複数のフレームのうちの第1のフレームを介して取得した認証情報の認証を、第1のフレームを介してサーバ3に要求する(ステップS2)。
【0059】
例えば、認証要求部22は、上述のように、第1のフレームに表示した入力画面を介して入力装置からユーザIDおよびパスワードを取得し、取得したパスワードのハッシュ値と、ユーザIDとを含む情報をサーバ3に送信してもよい。
【0060】
次に、認証要求部22は、ステップS2で認証を要求する際に使用した途中データを、第1のフレーム以外の他のフレーム内の途中データ格納部23に書き出す(ステップS3)。
【0061】
例えば、認証要求部22は、上述のように、パスワードを途中データ格納部23に書き出してもよい。
【0062】
端末2から認証を要求されたサーバ3の認証部32は、認証を要求される認証情報を認証情報格納部31に基づいて検証する(ステップS4)。
【0063】
例えば、認証部32は、受信したユーザIDに対応付けられたパスワードを認証情報格納部31から取得する。そして、認証部32は、取得したパスワードのハッシュ値と、受信したハッシュ値とが一致するか否かを検証してもよい。
【0064】
ここで、認証情報を認証しないと判断した場合(ステップS5でNo)、認証部32は、認証失敗を表す認証結果情報を端末2に送信する(ステップS6)。
【0065】
一方、認証情報を認証すると判断した場合(ステップS5でYes)、認証部32は、認証成功を表す認証結果情報を端末2に送信する(ステップS7)。
【0066】
次に、共有鍵生成部33は、ステップS4で認証情報を検証する際に使用された途中データに基づいて、共有鍵を生成する(ステップS8)。
【0067】
例えば、共有鍵生成部33は、ステップS4で認証情報を検証する際に認証情報格納部31から取得したパスワードに、所定の暗号化アルゴリズムを適用することにより共有鍵を生成してもよい。
【0068】
認証結果情報を受信した端末2の認証要求部22は、その認証結果情報が認証成功を表すか否かを判断する(ステップS9)。
【0069】
ここで、認証結果情報が認証失敗を表す場合、端末2は、認証付鍵交換動作を終了する。
【0070】
例えば、端末2は、認証失敗を表す情報を第1のフレームに表示してから、認証付鍵交換動作を終了するようにしてもよい。
【0071】
一方、認証結果情報が認証成功を表す場合、共有鍵生成部24は、途中データ格納部23に書き出された途中データを読み込む(ステップS10)。
【0072】
次に、共有鍵生成部24は、読み込んだ途中データに基づいて共有鍵を生成する(ステップS11)。
【0073】
例えば、共有鍵生成部24は、途中データ格納部23に保持しておいたパスワードに所定の暗号化アルゴリズムを適用することにより共有鍵を生成してもよい。
【0074】
次に、共有鍵生成部24は、ステップS11で生成した共有鍵を他のフレーム内の共有鍵格納部25に書き出す(ステップS12)。
【0075】
以降、端末2は、他のフレームに保持している共有鍵を用いてサーバ3との暗号通信を行う。また、サーバ3は、生成した共有鍵を用いて端末2との暗号通信を行う。
【0076】
生成された共有鍵による暗号通信は、ブラウザが終了されるか、他のフレームから共有鍵が削除されるまで行われる。
【0077】
以上で、通信システム1の動作の説明を終了する。
【0078】
次に、本発明の第1の実施の形態の効果について説明する。
【0079】
本発明の第1の実施の形態としての通信システムは、端末のメモリにアクセスできない制限を有するブラウザを搭載した端末と、サーバ証明書を所有しないサーバとの間で、ユーザ認証後に暗号通信を行うことができる。
【0080】
その理由は、本発明の第1の実施の形態における端末は、ブラウザ画面領域内の第1のフレームを用いてサーバとの間で認証付鍵交換を行い、認証付鍵交換を行う際に使用する途中データを他のフレームに書き出しておくからである。すなわち、本発明の第1の実施の形態における端末は、他のフレームをメモリとして使用するからである。
【0081】
これにより、本発明の第1の実施の形態における端末は、サーバとの間で認証付鍵交換に基づく情報が送受信されて第1のフレームの内容が書き換えられても、共有鍵の生成に使用する途中データを他のフレームで保持しておくことができるためである。したがって、本発明の第1の実施の形態における端末は、端末内部の記憶装置にアクセスすることなく、途中データの保持を必要とする認証付鍵交換の技術を採用したサーバのサービスを受けることができるからである。
【0082】
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
【0083】
まず、本発明の第2の実施の形態としての通信システム4の機能ブロック構成を図5に示す。図5において、通信システム4は、端末5とサーバ6とを備えている。また、端末5およびサーバ6とは、ネットワークを介して互いに通信可能に接続されている。なお、図5には1つの端末5を示しているが、本発明における端末5の数を限定するものではない。
【0084】
ここで、通信システム4のハードウェア構成は、図2を参照して説明した本発明の第1の実施の形態としての通信システム1のハードウェア構成と同一であるため、本実施の形態における詳細な説明を省略する。
【0085】
図5において、端末5は、本発明の第1の実施の形態における端末2に対して、認証要求部22に替えて認証要求部52と、共有鍵生成部24に替えて共有鍵生成部54とを備え、さらに、端末用アプリケーション受信部56と、端末用アプリケーション実行部57とを備える点が異なる。また、認証要求部52は、認証要求データ生成部521と、レスポンス生成部522とを有している。
【0086】
また、図5において、サーバ6は、本発明の第1の実施の形態におけるサーバ3に対して、認証部32に替えて認証部62と、共有鍵生成部33に替えて共有鍵生成部63とを備え、さらに、端末用アプリケーション格納部64と、端末用アプリケーション送信部65とを備える点が異なる。また、認証部62は、チャレンジ生成部621と、レスポンス検証部622とを有している。
【0087】
ここで、端末用アプリケーション受信部56は、コンピュータ・プログラムを実行するCPU2001およびネットワークインタフェース2005によって構成される。また、端末用アプリケーション実行部57は、コンピュータ・プログラムを実行するCPU2001によって構成される。
【0088】
また、端末用アプリケーション格納部64は、記憶装置3004によって構成される。また、端末用アプリケーション送信部65は、コンピュータ・プログラムを実行するCPU3001およびネットワークインタフェース3005によって構成される。
【0089】
次に、端末5およびサーバ6の各部の構成について説明する。
【0090】
認証要求データ生成部521は、認証の要求を開始するための認証要求データを生成してサーバ6に送信する。そして、認証要求データ生成部521は、認証要求データを生成する際に使用した途中データを途中データ格納部23に格納する。
【0091】
例えば、認証要求データ生成部521は、認証情報がユーザIDおよびパスワードを含む場合、ユーザIDを含む認証要求データを生成してサーバ6に送信してもよい。
【0092】
レスポンス生成部522は、後述のチャレンジデータおよび途中データに基づいてレスポンスデータを生成してサーバ6に送信する。そして、レスポンス生成部522は、レスポンスデータを生成する際に使用する途中データを、途中データ格納部23に追加して格納する。
【0093】
共有鍵生成部54は、認証要求データ生成部521およびレスポンス生成部522によって途中データ格納部23に格納された途中データに基づいて、共有鍵を生成する。
【0094】
端末用アプリケーション受信部56は、サーバ6から端末用アプリケーションを受信する。端末用アプリケーションについては後述する。ここで、端末用アプリケーション受信部56は、端末5に搭載されるブラウザによって構成される。例えば、端末用アプリケーション受信部56は、サーバ6によってサービスが提供される所定のURL(Uniform Resource Locator)にアクセスすることにより、サーバ6から端末用アプリケーションを受信してもよい。
【0095】
端末用アプリケーション実行部57は、受信した端末用アプリケーションを実行する。例えば、端末用アプリケーション実行部57は、ブラウザに組み込まれたアプリケーション実行エンジンによって構成される。また、このアプリケーション実行エンジンは、ブラウザによって表示されるコンテンツに含まれるアプリケーションを実行する。
【0096】
チャレンジ生成部621は、端末5からの認証要求データの受信に応じて、ランダムなチャレンジデータを生成する。そして、チャレンジ生成部621は、生成したチャレンジデータを端末5に送信する。
【0097】
なお、安全性の観点から、チャレンジデータは、毎回の認証ごとに異なるランダムなデータであることが望ましい。
【0098】
レスポンス検証部622は、端末5から受信するレスポンスデータを検証する。そして、レスポンス検証部622は、認証情報を認証するか否を判断する。
【0099】
具体的には、レスポンス検証部622は、チャレンジ生成部621によって受信された認証要求データと、チャレンジ生成部621によって生成されたチャレンジデータとに基づいて、受信したレスポンスデータが、正しい認証情報に基づいて生成されたものか否かを判断する。
【0100】
共有鍵生成部63は、チャレンジ生成部621およびレスポンス検証部622によって使用された途中データに基づいて、共有鍵を生成する。
【0101】
端末用アプリケーション格納部64は、端末5を、画面領域分割部21、認証要求部52、途中データ格納部23、共有鍵生成部54および共有鍵格納部25として機能させるための端末用アプリケーションを格納する。
【0102】
端末用アプリケーション送信部65は、上述の端末用アプリケーションを端末5に送信する。例えば、端末用アプリケーション送信部65は、所定のURLに対する端末5からのアクセスに応じて端末用アプリケーションを送信するようにしてもよい。
【0103】
以上のように構成された通信システム4の動作について、図6を用いて説明する。
【0104】
まず、サーバ6の端末用アプリケーション送信部65は、端末5に端末用アプリケーションを送信する。そして、端末5の端末用アプリケーション受信部56は、端末用アプリケーションを受信する(ステップS21)。
【0105】
例えば、端末用アプリケーション送信部65は、端末5において起動されている端末用アプリケーション受信部56(ブラウザ)からの要求に応じて、端末用アプリケーション
を送信するようにしてもよい。
【0106】
次に、端末用アプリケーション実行部57は、端末用アプリケーションを実行する(ステップS22)。これにより、端末5は、画面領域分割部21、認証要求部52、途中データ格納部23、共有鍵生成部54および共有鍵格納部25として機能する。
【0107】
次に、画面領域分割部21は、コンテンツを表示するブラウザ画面領域を複数のフレームに分割する(ステップS23)。
【0108】
次に、認証要求データ生成部521は、第1のフレームに認証情報の入力画面を表示し、第1のフレームを介して入力装置2007から認証情報を取得する。そして、認証要求データ生成部521は、取得した認証情報を用いて、認証の要求を開始するための認証要求データを生成する(ステップS24)。
【0109】
例えば、認証要求データ生成部521は、第1フレームの入力画面からユーザIDおよパスワードを取得し、取得したユーザIDを含む認証要求データを生成してもよい。
【0110】
次に、認証要求データ生成部521は、ステップS24で認証要求データを生成するときに使用した途中データを、途中データ格納部23に書き出す(ステップS25)。
【0111】
例えば、認証要求データ生成部521は、ユーザIDおよびパスワードを含む情報を途中データ格納部23に書き出してもよい。
【0112】
このとき、安全性の観点から、途中データ格納部23は非表示であることが望ましい。
【0113】
次に、認証要求データ生成部521は、ステップS24で生成した認証要求データをサーバ6に送信する(ステップS26)。
【0114】
認証要求データを受信したサーバ6のチャレンジ生成部621は、チャレンジデータを生成する(ステップS27)。そして、チャレンジ生成部621は、生成したチャレンジデータを端末5に送信する(ステップS28)。
【0115】
このとき、安全性の観点から、チャレンジデータは、毎回の認証ごとに異なるランダムな値であることが望ましい。
【0116】
チャレンジデータを受信した端末5のレスポンス生成部522は、チャレンジデータ、および、途中データ格納部23に格納された途中データに基づいて、レスポンスデータを生成する(ステップS29)。
【0117】
例えば、レスポンス生成部522は、チャレンジデータおよびパスワードに基づいてレスポンスデータを生成してもよい。
【0118】
このとき、チャレンジデータがランダムな値であるため、同一の認証情報の認証を受ける際のレスポンスデータも毎回異なる。
【0119】
次に、レスポンス生成部522は、レスポンスデータを生成する際に使用した途中データを、途中データ格納部23に追加して格納する(ステップS30)。
【0120】
これにより、途中データ格納部23は、ステップS25で書き出されたデータと、ステップS30で書き出されたデータとを格納している。
【0121】
ここでも、安全性の観点から、途中データ格納部23は非表示であることが望ましい。
【0122】
次に、レスポンス生成部522は、ステップS30で生成したレスポンスデータをサーバ6に送信する(ステップS31)。
【0123】
レスポンスデータを受信したサーバ6のレスポンス検証部622は、ステップS26で受信した認証要求データと、ステップS27で生成したチャレンジデータとに基づいて、受信したレスポンスデータを検証する(ステップS32)。
【0124】
例えば、レスポンス検証部622は、認証要求データに含まれるユーザIDに対応付けられたパスワードを認証情報格納部31から取得する。そして、レスポンス検証部622は、ステップS27で生成したチャレンジデータと、認証情報格納部31から取得したパスワードとに基づいて生成するレスポンスデータが、ステップS31で受信したレスポンスデータと一致するか否かを判断するようにしてもよい。
【0125】
次に、レスポンス検証部622は、レスポンスデータの検証により認証に失敗した場合(ステップS33でNo)、認証失敗を表す認証結果情報を端末5に送信する(ステップS34)。
【0126】
そして、サーバ6は、認証付鍵交換処理を終了する。
【0127】
一方、レスポンス検証部622は、レスポンスデータの検証により認証に成功した場合(ステップS33でYes)、認証成功を表す認証結果情報を端末5に送信する(ステップS35)。
【0128】
次に、共有鍵生成部63は、レスポンスデータを検証する際に使用した途中データおよび認証要求データに基づいて、共有鍵を生成する(ステップS36)。
【0129】
次に、認証結果情報を受信した端末5は、認証結果情報が認証失敗を表す場合(ステップS37でNo)、認証付鍵交換処理を終了する。
【0130】
なお、このとき、端末5は、第1のフレームに再び認証情報の入力画面を表示することにより、新たな認証情報を入力装置2007から取得してもよい。この場合、通信システム4は、ステップS24からの動作を再度実行する。ただし、この場合、サーバ6は、安全性の観点から、認証要求データの再送信回数に制限を設け、再送信回数が連続して所定の回数以上となった場合、動作を終了するなどの運用上のルールを定めてもよい。
【0131】
一方、認証結果情報が認証成功を表す場合(ステップS37でYes)、共有鍵生成部54は、途中データ格納部23から途中データを読み込む(ステップS38)。
【0132】
次に、共有鍵生成部54は、読み込んだ途中データに基づいて、共有鍵を生成する(ステップS39)。
【0133】
次に、共有鍵生成部54は、生成した共有鍵を共有鍵格納部25に格納する(ステップS40)。
【0134】
以降、端末5は、共有鍵格納部25に格納した共有鍵を用いてサーバ6との暗号通信を行う。また、サーバ6は、ステップS36で生成した共有鍵をサーバ6内部の記憶装置に一時記憶することにより端末5との暗号通信を行う。
【0135】
以上で、通信システム4の動作の説明を終了する。
【0136】
次に、本発明の第2の実施形態の効果について説明する。
【0137】
本発明の第2の実施形態としての通信システムは、端末の記憶装置にアクセスできない制限を有するブラウザを搭載した端末と、サーバ証明書を所有しないサーバとの間における、認証付鍵交換の安全性をさらに向上させることができる。
【0138】
その理由は、認証付鍵交換を行う際に使用する途中データを他のフレームに保持するため、チャレンジレスポンス方式のようにリプレイ攻撃に強い認証付鍵交換の技術を採用できるためである。ここで、チャレンジレスポンス方式では、端末は、サーバとの情報の送受信において使用する途中データを複数回一時記憶することを必要とする。このとき、上述のように他のフレームに途中データを保持することにより、メモリにアクセスできないブラウザが搭載された端末を用いた場合であっても、認証付鍵交換を行う際に使用する途中データを複数回一時記憶することができるからである。
【0139】
また、本発明の第2の実施の形態としての通信システムでは、端末の記憶装置にアクセスできない制限を有するブラウザであっても、フレーム機能およびアプリケーション実行機能を有するブラウザを搭載した端末であれば、安全性の高い認証付鍵交換を用いたサービスの提供を受けることができる。
【0140】
その理由は、端末の記憶装置にアクセスできない制限を有するブラウザを搭載した端末がサーバと認証付鍵交換をするための端末用アプリケーションをサーバ側に格納しておき、サーバから端末に端末用アプリケーションを送信するからである。このため、端末は、特別なアプリケーションを有する必要がなく、フレーム機能およびアプリケーション実行機能を有するブラウザを搭載していれば、サーバとの間で安全性の高い認証付鍵交換を行うことができるからである。
【0141】
<第2の実施の形態の第1の動作例>
次に、本発明の第2の実施の形態における認証付鍵交換の技術として、楕円Diffie-Hellman鍵交換を適用した場合の動作例について、図7を参照して説明する。
【0142】
ここでは、まず、楕円Diffie-Hellman鍵交換について説明する。
【0143】
楕円Diffie-Hellman鍵交換は、ユーザAおよびユーザBが、暗号通信に用いる共有鍵を共有する技術であり、数学的に安全であることが証明されている。
【0144】
初めに、gを楕円曲線上の群の生成元、qを楕円曲線上の群の位数とする。また、gおよびqは、ユーザAおよびユーザB間で共有されているものとする。
[ステップ1]:ユーザAは、0以上q−1以下の任意の値r1を選択し、[r1]gを計算する。
【0145】
なお、ここで、[r1]gとは、生成元gに対して、楕円曲線上の群に定義された二項演算をr1回繰り返し適用することを表すものとする。すなわち、二項演算が加法として定義されていれば、[r1]gはgのr1倍を表す。そして、ユーザAは、 [r1]gをユーザBに送付する。
[ステップ2]:ユーザBは、0以上q−1以下の任意の値r2を選択し、[r2]gを計算する。そして、ユーザBは、[r2]gをユーザAに送付する。
[ステップ3]:ユーザAおよびユーザBは、それぞれ受信した [r2]gおよび[r1]gと、自らが選んだr1およびr2を用いて、[r1r2]g = [r1]([r2]g) = [r2]([r1]g)を計算する。そして、ユーザAおよびユーザBは、[r1r2]gを共有鍵とする。
【0146】
この楕円Diffie-Hellman鍵交換は、[r]gからrを求めることが難しい、という楕円曲線上の離散対数仮定に基づいて、安全性が数学的に証明された技術である。
【0147】
次に、このような楕円Diffie-Hellman鍵交換を採用した場合の、通信システム4の動作例について、図7のシーケンス図を参照して説明する。
【0148】
まず、端末5の要求に応じて、サーバ6の端末用アプリケーション送信部65は、端末用アプリケーションを端末5に送信する(ステップS21)。
【0149】
このとき、サーバ6は、端末用アプリケーションとともに、楕円曲線上の群の位数qおよび群の生成元gを端末5に送信する。
【0150】
また、送信される端末用アプリケーションは、端末5を画面領域分割部21、認証要求データ生成部521、レスポンス生成部522、途中データ格納部23、共有鍵生成部54として機能させるものである。また、この端末用アプリケーションは、ハッシュ関数Hおよびハッシュ関数Gを含んでいる。
【0151】
ここで、ハッシュ関数Hは、任意の文字列を入力とし、位数q、生成元gを持つ楕円曲線上の群上の点を出力とするハッシュ関数である。また、ハッシュ関数Gは、任意の文字列を入力とし、kビットの文字列を出力とするハッシュ関数である。また、kはセキュリティパラメータである。なお、安全性の観点から、kは160以上であることが望ましい。
【0152】
次に、端末5の端末用アプリケーション実行部57は、受信した端末用アプリケーションを実行する(ステップS22)。
【0153】
次に、画面領域分割部21は、2つのフレームからなるページをブラウザ上に表示する(ステップS23)。以降、ブラウザ上に表示された2つのフレームを、フレーム1およびフレーム2と記載する。なお、フレーム1は本発明の第1のフレームの一実施形態を構成し、フレーム2は本発明の他のフレームの一実施形態を構成する。
【0154】
次に、認証要求データ生成部521は、次のようにして、認証要求データを生成する(ステップS24)。
【0155】
ステップS24では、まず、認証要求データ生成部521は、フレーム1を介してユーザID「userID」およびパスワード「pw」を取得する。
【0156】
次に、認証要求データ生成部521は、0以上q−1以下の任意の値r1を選択する。
【0157】
さらに、認証要求データ生成部521は、kビットのsidをランダムに選択する。
【0158】
そして、認証要求データ生成部521は、[r1]H(sid||pw)を認証要求データとして生成する。
【0159】
次に、認証要求データ生成部521は、ステップS24において使用したg,q,r1,pw,sidをフレーム2の途中データ格納部23に格納する(ステップS25)。
【0160】
次に、認証要求データ生成部521は、認証要求データとして、[r1]H(sid||pw), userID,sidをサーバ6に送付する(ステップS26)。
【0161】
認証要求データとして[r1]H(sid||pw), userID, sid を受信したサーバ6のチャレンジ生成部621は、次のようにしてチャレンジデータを生成する(ステップS27)。
【0162】
ステップS27では、まず、チャレンジ生成部621は、受信したuserID に対応付けられたパスワードpwを認証情報格納部31から取得する。
【0163】
さらに、チャレンジ生成部621は、0以上q−1以下の任意のr2を選択し、[r2]H(sid||pw)を計算する。
【0164】
また、チャレンジ生成部621は、[r1r2]H(sid||pw)=[r2]([r1]H(sid||pw))を計算する。
【0165】
そして、チャレンジ生成部621は、K0=G(sid||[r1r2]H(sid||pw)||0) をチャレンジデータとして生成する。
【0166】
次に、チャレンジ生成部621は、K0および[r2]H(sid||pw)を端末5に送付する(ステップS28)。
【0167】
チャレンジデータとしてK0および[r2]H(sid||pw)を受信した端末5のレスポンス生成部522は、次のようにしてレスポンスデータを生成する(ステップS29)。
【0168】
ステップS29では、まず、レスポンス生成部522は、フレーム2の途中データ格納部23から g, q, r1, sid を読み込む。
【0169】
さらに、レスポンス生成部522は、[r1r2]H(sid||pw) = [r1]([r2]H(sid||pw)) を計算する。
【0170】
また、レスポンス生成部522は、G(sid||[r1r2]H(sid||pw)||0) を計算し、受信したチャレンジデータのK0と一致するか否かを確認する。このとき、計算したK0と受信したK0とが一致しない場合は、端末5は動作を停止する。
【0171】
一方、計算したK0と受信したK0とが一致する場合、レスポンス生成部522は、K1= G(sid||[r1r2]H(sid||pw)||1)を、レスポンスデータとして生成する。
【0172】
次に、レスポンス生成部522は、ステップS29で使用した[r1r2]H(sid||pw) をフレーム2の途中データ格納部23に追加する(ステップS30)。
【0173】
次に、レスポンス生成部522は、レスポンスデータとしてK1 をサーバ6に送付する(ステップS31)。
【0174】
レスポンスデータとしてK1を受信したサーバ6のレスポンス検証部622は、ステップS27でチャレンジデータを生成する際に使用した[r1r2]H(sid||pw)と、ステップS26で受信されたsidとを用いて、G(sid||[r1r2]H(sid||pw)||1)計算し、受信したレスポンスデータのK1と一致するか否かを検証する(ステップS32)。
【0175】
このとき、計算したK1と受信したK1とが一致しない場合(ステップS33でNo)、レスポンス検証部622は、認証失敗を表す検証結果情報を端末5に送付する(ステップS34)。そして、サーバ6は、認証付鍵交換動作を終了する
一方、計算したK1と受信したK1とが一致する場合(ステップS33でYes)、レスポンス検証部622は、認証成功を表す検証結果情報を端末5に送付する(ステップS35)。
【0176】
そして、共有鍵生成部63は、K2=G(sid||[r1r2]H(sid||pw)||2) を共有鍵として生成する(ステップS36)。
【0177】
検証結果情報を受信した端末5は、検証結果情報が認証失敗を表す場合(ステップS37でNo)、認証付鍵交換動作を終了する。
【0178】
一方、検証結果情報が認証成功を表す場合(ステップS37でYes)、共有鍵生成部54は、フレーム2の途中データ格納部23から[r1r2]H(sid||pw), sid を読み込む(ステップS38)。
【0179】
次に、共有鍵生成部54は、ステップS38で読み込んだ途中データに基づいて、K2=G(sid||[r1r2]H(sid||pw)||2)を共有鍵として生成する(ステップS39)。
【0180】
次に、共有鍵生成部54は、フレーム2の共有鍵格納部25に、ステップS39で生成した共有鍵K2を格納する(ステップS40)。
【0181】
以降、端末5は、共有鍵格納部25に格納した共有鍵K2を用いてサーバ6との暗号通信を行う。また、サーバ6は、ステップS36で生成した共有鍵K2をサーバ6内部の記憶装置に一時記憶することにより端末5との暗号通信を行う。
【0182】
以上で、楕円Diffie-Hellman鍵交換を採用した通信システム4の動作例の説明を終了する。
【0183】
次に、楕円Diffie-Hellman鍵交換を採用した本発明の第2の実施の形態の効果について説明する。
【0184】
本発明の第2の実施の形態としての通信システムは、楕円Diffie-Hellman鍵交換を採用することにより、端末の記憶装置にアクセスできない制限を有するブラウザを搭載した端末と、サーバとの間において、認証付鍵交換に対するリプレイ攻撃、中間者攻撃、オンライン辞書攻撃、サーバへのなりすましに対する耐性を向上させることができる。
【0185】
まず、楕円Diffie-Hellman鍵交換を採用した通信システムが、リプレイ攻撃に対して耐性を持つ理由について説明する。攻撃者がリプレイ攻撃を行ったとしても、端末からサーバに送信される公開情報[r1]H(sid||pw) から、端末5における秘密情報r1を求めることができないからである。また、サーバ6が選択するr2は毎回異なる値をとるため、K0=G(sid||[r1r2]H(sid||pw)||0) を計算できないからである。したがって、リプレイ攻撃を行う攻撃者は レスポンスデータK1および共有鍵K2 を計算できないからである。
【0186】
また、楕円Diffie-Hellman鍵交換を採用した通信システムが、中間者攻撃に対して耐性を持つ理由について説明する。なぜなら、攻撃者が中間者攻撃を行ったとしても、公開情報[r1]H(sid||pw)および[r2]H(sid||pw) からそれぞれ秘密情報r1およびr2 を求めることが出来ず、したがって、[r1r2]H(sid||pw) およびK0,K1,K2 を計算できないからである。
【0187】
さらに、楕円Diffie-Hellman鍵交換を採用した通信システムが、オンライン辞書攻撃に対して耐性を持つ理由について説明する。なぜなら、攻撃者が共有鍵K2を求めるには、r1,r2 および pw に対して辞書攻撃を行う必要がある。ここで、r1およびr2の長さを、辞書攻撃が困難な長さに設定することにより、オンライン辞書攻撃を不可能とすることができるからである。
【0188】
さらに、楕円Diffie-Hellman鍵交換を採用した通信システムが、サーバへのなりすましに対して耐性を持つ理由について説明する。なぜなら、攻撃者はユーザのパスワードを知らないため、K0, K1, K2 を計算できないからである。
【0189】
なお、このような楕円Diffie-Hellman鍵交換に基づいて認証付鍵交換を行う場合、端末は、パスワードpw、端末で選択した秘密情報r1、および、サーバから受信した公開情報[r2]H(sid||pw)等の途中データを一時的に記憶する必要がある。本発明の第2の実施の形態としての通信システムは、端末内のメモリにアクセスできない制限を有するブラウザを搭載した端末であっても、他のフレーム内に途中データ格納部を備えることにより、これらの情報を一時的に記憶することができる。したがって、本発明の第2の実施の形態としての通信システムは、楕円Diffie-Hellman鍵交換を採用して、各種の攻撃に対する耐性を向上させることができるのである。
【0190】
なお、本発明の第2の実施の形態としての通信システムは、例えば、非特許文献1および非特許文献2に記載の認証付鍵交換の技術を採用しても同様の効果を奏することはいうまでもない。
【0191】
<第2の実施の形態の第2の動作例>
次に、本発明の第2の実施の形態において、公開鍵暗号を用いて認証付鍵交換を行う場合の動作例について説明する。ここでは、公開鍵暗号の一例としてRSA暗号を用いるものとして説明を行う。
【0192】
まずRSA暗号について説明する。
【0193】
RSA暗号は鍵セットアップフェーズ、暗号化フェーズ、復号フェーズの3つのプロシージャーから構成される公開鍵暗号方式である。ここで、セキュリティパラメータを k とする。
[鍵セットアップフェーズ](入力:セキュリティパラメータk)
ステップ1:受信者は、k/2ビットの2つの素数 p, q をラン ダムに生成する。ここで、「/」は除算を表す。
ステップ2:受信者は、N=pqを計算する。
ステップ3:受信者は、ed=1 mod(p-1)(q-1) となる e, d を生成する。ここで、「mod」は剰余演算を表すものとする。
ステップ4:受信者は、公開鍵をpk =(e, N)、秘密鍵をsk = (d, p, q, N) とする。
[暗号化フェーズ](入力:メッセージm, 公開鍵 pk)
ステップ1:送信者はメッセージmを公開鍵pkで暗号化する。すなわち、暗号文c=RSA_pk(m)=m^e mod N を計算する。ここで、「^」は累乗を表すものとする。
ステップ2:送信者は、暗号文cを受信者に送付する。
[復号フェーズ](入力:暗号文 c, 秘密鍵 sk)
ステップ1:受信者は、暗号文cを秘密鍵skで復号する。すなわち、メッセージm=DEC_sk(c)=c^d mod Nを計算する。
ステップ2:メッセージmを得る。
【0194】
ここで、十分に大きなkを選ぶことにより、Nからp,qを現実的な時間で求めることができないという、素因数分解問題が難しいことを仮定する。この仮定に基づけば、RSA暗号では、公開鍵pkおよび暗号文cから秘密鍵skおよびメッセージmを求めることができないことが知られている。
【0195】
次に、このようなRSA暗号を採用した通信システム4の動作例について、図8のシーケンス図を参照して説明する。
【0196】
なお、図8では、あらかじめサーバ6の公開鍵 pk = (e,N)および秘密鍵 sk = (d,p,q,N) が決められているものとする。また、セキュリティパラメータkがあらかじめ定められているものとする。なお、安全性の観点から、kは1024以上であることが望ましい。また、さらに別のセキュリティパラメータとしてk_1が設定されているものとする。なお、安全性の観点からk_1は、160以上であることが望ましい
まず、端末5の要求に応じて、サーバ6の端末用アプリケーション送信部65は、端末用アプリケーションを端末5に送信する(ステップS21)。
【0197】
ここで、送信される端末用アプリケーションは、端末5を画面領域分割部21、認証要求データ生成部521、レスポンス生成部522、途中データ格納部23、共有鍵生成部54として機能させるものである。また、この端末用アプリケーションは、ハッシュ関数Gおよびハッシュ関数Hを含んでいる。ハッシュ関数Gは、任意の文字列を入力として、k−k_1ビットの文字列を出力するハッシュ関数である。また、ハッシュ関数Hは、任意の文字列を入力として、k_1ビットの文字列を出力するハッシュ関数である。
【0198】
ステップS21において、安全性の観点から、ユーザに送付される端末アプリケーションのURLは、公開鍵のハッシュ値であるH(pk)を含むことが望ましい。もしも、端末に搭載されるブラウザが、アクセス先のURLの長さに制限を有する場合、URLに、h(pk)の一部、例えば先頭の数ビットを含めてもよい。以降の説明では、URLに H(pk) が含まれているものとする。
【0199】
次に、端末5の端末用アプリケーション実行部57は、受信した端末用アプリケーションを実行する(ステップS22)。
【0200】
次に、画面領域分割部21は、2つのフレームからなるページをブラウザ上に表示する(ステップS23)。以降、ブラウザ上に表示された2つのフレームを、フレーム1およびフレーム2と記載する。なお、フレーム1は本発明の第1のフレームの一実施形態を構成し、フレーム2は本発明の他のフレームの一実施形態を構成する。
【0201】
次に、認証要求データ生成部521は、次のようにして、認証要求データを生成する(ステップS24)。
【0202】
ステップS24では、まず、認証要求データ生成部521は、フレーム1に表示した入力画面を介してユーザID「userID」およびパスワード「pw」を取得する。
【0203】
次に、認証要求データ生成部521は、userID を含むリクエストメッセージを、認証要求データとして生成する。
【0204】
次に、認証要求データ生成部521は、ステップS24で使用したuserID および pw を、途中データとしてフレーム2の途中データ格納部23に書き出す(ステップS25)。
【0205】
次に、認証要求データ生成部521は、ステップS24で生成したリクエストメッセージをサーバ6に送付する(ステップS26)。
【0206】
リクエストメッセージを受信したサーバ6のチャレンジ生成部621は、k_1ビットのr2をランダムに選択することにより、乱数r2および公開鍵pk をチャレンジデータとする(ステップS27)。
【0207】
次に、チャレンジ生成部621は、チャレンジデータとしてr2およびpk を端末5に送付する(ステップS28)。
【0208】
r2およびpk を受信した端末5のレスポンス生成部522は、次のようにしてレスポンスデータを生成する(ステップS29)。
【0209】
ステップS29では、まず、レスポンス生成部522は、フレーム2の途中データ格納部23から pw を読み出す。
【0210】
次に、レスポンス生成部522は、URLに含まれるH(pk) と、受信したpkを用いて生成したH(pk)とが一致するか否かを検証する。すなわち、レスポンス生成部522は、公開鍵が改変されているか否かを判断する。ここで、一致しない場合(公開鍵が改変されている場合)、端末5は、認証付鍵交換動作を終了する。
【0211】
一方、一致した場合(公開鍵が改変されていない場合)、レスポンス生成部522は、k_1ビットの乱数 r1 を選択する。
【0212】
次に、レスポンス生成部522は、c=G(r2||r1||pw||0) を計算する。
【0213】
さらに、レスポンス生成部522は、E=RSA_pk(r1||c) をレスポンスデータとして生成する。
【0214】
次に、レスポンス生成部522は、ステップS28で使用したr1, r2をフレーム2の途中データ格納部23に追加する(ステップS30)。
【0215】
次に、レスポンス生成部522は、レスポンスデータE をサーバ6に送付する(ステップS31)。
【0216】
レスポンス E を受信したサーバ6のレスポンス検証部622は、次のようにしてレスポンスデータを検証する(ステップS32)。
【0217】
ステップS32では、まず、レスポンス検証部622は、受信したレスポンスデータEを、公開鍵pkに対応する秘密鍵skを用いて復号することにより、検証対象の認証情報を得る。すなわち、レスポンス検証部622は、r1||c = DEC_sk(E) を計算することにより、r1, c を得る。
【0218】
さらに、レスポンス検証部622は、復号により得られた認証情報を認証するか否かを判断する。
【0219】
具体的には、レスポンス検証部622は、ステップS26で受信した認証要求データに含まれるuserID に対応したパスワード pw を、認証情報格納部31を参照して取得する。
【0220】
次に、レスポンス検証部622は、取得したpw、ステップS32で求めたr1および自装置で選択した乱数r2に基づいて、H(r2||r1||pw||0)を計算する。
【0221】
そして、レスポンス検証部622は、計算したH(r2||r1||pw||0)が暗号文cに一致するか否かを確認する(ステップS33)。
【0222】
ここで、一致していなかった場合、レスポンス検証部622は、検証失敗を表す検証結果情報を端末5に送付し(ステップS34)、以降の認証付鍵交換動作を停止する。
【0223】
一方、一致している場合、レスポンス検証部622は、検証成功を表す検証結果情報を、端末5に送付する(ステップS35)。
【0224】
次に、共有鍵生成部63は、r1,r2,およびpwに基づいて、K=H(r1||r2||pw||1) を共有鍵として生成する(ステップS36)。
【0225】
次に、検証結果情報を受信した端末5は、検証結果情報が認証失敗を表す場合(ステップS37でNo)、認証付鍵交換処理を終了する。
【0226】
検証結果情報が認証成功を表す場合(ステップS37でYes)、共有鍵生成部54は、フレーム2の途中データ格納部23からr1, r2, pw を読み込む(ステップS38)。
【0227】
次に、共有鍵生成部54は、K=H(r1||r2||pw||1)を共有鍵として生成する(ステップS39)。
【0228】
次に、共有鍵生成部54は、共有鍵Kをフレーム2の共有鍵格納部25に格納する(ステップS40)。
【0229】
以降、端末5は、共有鍵格納部25に格納した共有鍵Kを用いてサーバ6との暗号通信を行う。また、サーバ6は、ステップS36で生成した共有鍵Kをサーバ6内部の記憶装置に一時記憶することにより端末5との暗号通信を行う。
【0230】
以上で、RSA暗号を用いた通信システム4の動作の説明を終了する。
【0231】
次に、RSA暗号を用いた本発明の第2の実施の形態の効果について説明する。
【0232】
本発明の第2の実施の形態としての通信システムは、RSA暗号を用いた認証付鍵交換に採用することにより、端末の記憶装置にアクセスできない制限を有するブラウザを搭載した端末と、サーバとの間において、認証付鍵交換に対するリプレイ攻撃、中間者攻撃、オンライン辞書攻撃、および、サーバへのなりすましに対する耐性を向上させることができる。
【0233】
まず、RSA暗号を用いて認証付鍵交換を行う本発明の第2の実施の形態としての通信システムが、リプレイ攻撃に対して耐性を持つ理由について説明する。なぜなら、攻撃者がリプレイ攻撃を行ったとしても、サーバが選択する乱数r2を毎回変更することにより、レスポンスデータを生成する際に使用するcおよび共有鍵Kを毎回変更することができるからである。
【0234】
また、RSA暗号を用いて認証付鍵交換を行う本発明の第2の実施の形態としての通信システムが、中間者攻撃やオンライン辞書攻撃に対して耐性を持つ理由について説明する。なぜなら、攻撃者が中間者攻撃やオンライン辞書攻撃を行ったとしても、RSA暗号の安全性により、暗号文Eから r1および c を求めることが難しいからである。したがって、攻撃者は共有鍵Kを計算できない。
【0235】
さらに、RSA暗号を用いて認証付鍵交換を行う本発明の第2の実施の形態としての通信システムが、サーバへのなりすましに対して耐性を持つ理由について説明する。なぜなら、攻撃者がサーバになりすまそうとした場合、公開鍵ごとなりすますためには、URLに含まれるハッシュ値H(pk)とハッシュ値が一致するpk'を生成する必要がある。しかしながら、これはハッシュ関数の安全性から難しい。
【0236】
また、攻撃者が、本物のサーバの公開鍵を利用したまま攻撃を行っても、RSA暗号の安全性により、秘密鍵を求めることや暗号文の復号を行うことは難しい。したがって攻撃者にとって、共有鍵Kを求めることは難しい。ただし、この場合、端末は、認証付鍵交換処理を正しく終了してしまうため、攻撃者がなりすましを行っていたことを判定できない。
【0237】
しかしながら、後の暗号通信では、端末から送付されるデータはKによって暗号化されるため、攻撃者は復号できない。したがって、端末内の H(pk) が不正に書き換えられない限り、サーバへのなりすましは困難である。
【0238】
なお、このようにRSA暗号を用いて認証付鍵交換を行う場合、端末は、パスワードpw、端末で選択した秘密情報であるr1、および、サーバから受信した公開情報のr2等を一時的に記憶する必要がある。本発明の第2の実施の形態としての通信システムは、端末内のメモリにアクセスできない制限を有するブラウザを搭載した端末であっても、他のフレーム内に途中データ格納部を備えることによりこれらの情報を一時的に記憶することができる。したがって、本発明の第2の実施の形態としての通信システムは、RSA暗号を用いた認証付鍵交換を採用して、各種の攻撃に対する耐性を向上させることができるのである。
【0239】
なお、本発明の第2の実施の形態としての通信システムは、例えば、エルガマル暗号または楕円エルガマル暗号等のような、RSA暗号以外の公開鍵暗号を用いて認証付鍵交換を行ってもよい。特に、本発明の第2の実施の形態としての通信システムは、安全性の観点から、RSA−OAEP(Optimal Asymmetric Encryption Padding)暗号やCramer-Shoup暗号等のように、強度の安全性を満たす公開鍵暗号を用いることが望ましい。
【0240】
また、本発明の第2の実施の形態においてサーバの端末用アプリケーション格納部に格納される端末用アプリケーションは、図9に示すデータ構造を持つコンテンツ9によって構成されていてもよい。図9において、コンテンツ9は、フレーム構造情報91と、第1フレーム情報92と、他フレーム情報93とを含む。
【0241】
フレーム構造情報91は、ブラウザ画面領域を構成する複数のフレームの構造情報を含む。また、フレーム構造情報91は、端末に搭載されるブラウザに読み込まれてブラウザ画面領域に適用されることによって、本発明の画面領域分割部の一実施形態を構成する。
【0242】
第1フレーム情報は、複数のフレームのうち第1のフレームに適用される情報である。
【0243】
また、第1フレーム情報は、第1のフレームを介して取得した認証情報の認証を、第1のフレームを介してサーバに要求するとともに、サーバから受信した認証結果情報が認証成功を表す場合、サーバに認証を要求する際に使用した途中データに基づいてサーバとの暗号通信に用いる共有鍵を生成する認証付鍵交換アプリケーションを含む。
【0244】
また、第1フレーム情報は、端末に搭載されるブラウザに組み込まれたアプリケーション実行エンジンによって第1フレーム内で実行されることにより、本発明の認証要求部および共有鍵生成部の一実施形態を構成する。
【0245】
他フレーム情報93は、第1フレーム以外の他のフレームに適用される情報である。
【0246】
また、他フレーム情報93は、認証情報の認証をサーバに要求する際に使用する途中データを格納する途中データ格納フィールドと、共有鍵を格納する共有鍵格納フィールドと、を含む。なお、途中データ格納フィールドおよび共有鍵格納フィールドは非表示に設定されていることが望ましい。また、途中データ格納フィールドおよび共有鍵格納フィールドは、本発明のデータ構造における途中データ格納情報および共有鍵格納情報の一実施形態を構成する。
【0247】
また、他フレーム情報93は、端末に搭載されるブラウザに読み込まれて他フレームに適用されることによって、本発明の途中データ格納部および共有鍵格納部の一実施形態を構成する。
【0248】
そして、このようなコンテンツ9のデータ構造は、本発明のデータ構造の一実施形態を構成する。
【0249】
また、上述した本発明の各実施の形態において、各シーケンス図を参照して説明したサーバの動作を、本発明のコンピュータ・プログラムとしてサーバの記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
【0250】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した端末の動作を、本発明のコンピュータ・プログラムとしてサーバの記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを端末がダウンロードして端末のCPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
【0251】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【0252】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【0253】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
サーバと、端末とを備えた通信システムであって、
前記端末は、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、
前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求する認証要求部と、
前記認証を前記サーバに要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内で格納する途中データ格納部と、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、
前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、
を有し、
前記サーバは、
あらかじめ登録された認証情報を格納した認証情報格納部と、
前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、
前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる前記共有鍵を生成する共有鍵生成部と、
を有する通信システム。
(付記2)
前記サーバは、
前記端末を、前記画面領域分割部、前記認証要求部、前記途中データ格納部、前記共有鍵生成部および前記共有鍵格納部として機能させるための端末用アプリケーションを格納する端末用アプリケーション格納部と、
前記端末用アプリケーションを前記端末に送信する端末用アプリケーション送信部と、
をさらに有し、
前記端末は、
前記端末用アプリケーションを受信する端末用アプリケーション受信部と、
前記端末用アプリケーションを実行する端末用アプリケーション実行部と、
をさらに有することを特徴とする付記1に記載の通信システム。
(付記3)
前記端末の前記認証要求部は、
前記認証の要求を開始するための認証要求データを生成して前記サーバに送信するとともに、前記認証要求データを生成する際に使用するデータを前記途中データとして前記途中データ格納部に格納する認証要求データ生成部と、
前記サーバから受信するランダムなチャレンジデータおよび前記途中データに基づいてレスポンスデータを生成して前記サーバに送信するとともに、前記レスポンスデータを生成する際に使用するデータを前記途中データとして前記途中データ格納部に追加して格納するレスポンス生成部と、
を有し、
前記サーバの前記認証部は、
前記認証要求データの受信に応じて前記チャレンジデータを生成して前記端末に送信するチャレンジ生成部と、
前記端末から受信する前記レスポンスデータを検証することにより前記認証情報を認証するか否を判断するレスポンス検証部と、
を有することを特徴とする付記1または付記2に記載の通信システム。
(付記4)
前記サーバの前記端末用アプリケーション送信部は、前記端末用アプリケーションのURL(Uniform Resource Locator)に、前記サーバが有する公開鍵のハッシュ値の少なくとも一部を含めて前記端末用アプリケーションを前記端末に送信し、
前記サーバの前記チャレンジ生成部は、前記公開鍵を前記チャレンジデータに含めて前記端末に送信し、
前記端末の前記レスポンス生成部は、前記チャレンジデータに含まれる公開鍵が改変されていないことを前記端末用アプリケーションのURLに基づいて判断し、前記公開鍵が改変されていないと判断した場合に、前記公開鍵を用いて前記認証情報を暗号化した情報を前記レスポンスデータに含めて前記サーバに送信し、
前記サーバの前記レスポンス検証部は、前記レスポンスデータに含まれる情報を、前記公開鍵に対応する秘密鍵を用いて復号することにより得られる認証情報を認証するか否かを判断することを特徴とする付記3に記載の通信システム。
(付記5)
あらかじめ登録された認証情報を格納した認証情報格納部と、
前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、
前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成部と、
を備えたサーバ。
(付記6)
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、
前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介してサーバに要求する認証要求部と、
前記認証を前記サーバに要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内で格納する途中データ格納部と、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、
前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、
を備えた端末。
(付記7)
端末と通信を行うサーバに、
あらかじめ登録された認証情報を認証情報格納部に格納しておく認証情報格納ステップと、
前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証ステップと、
前記認証ステップで、前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、
を実行させるコンピュータ・プログラム。
(付記8)
サーバと通信を行う端末に、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割ステップと、
前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求する認証要求ステップと、
前記認証要求ステップで前記認証を要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内の途中データ格納部に格納する途中データ格納ステップと、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、
前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する共有鍵格納ステップと、
を実行させるコンピュータ・プログラム。
(付記9)
サーバから端末に配信されるコンテンツのデータ構造であって、
前記端末において前記コンテンツが表示されるブラウザ画面領域を構成する複数のフレームの構造が定義されたフレーム構造情報と、
前記複数のフレームのうち第1のフレームに適用される情報を表し、前記第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求するとともに、前記サーバから受信した認証結果情報が認証成功を表す場合、前記認証を前記サーバに要求する際に使用した途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する認証付鍵交換アプリケーションを含む第1フレーム情報と、
前記第1のフレーム以外の他のフレームに適用される情報を表し、前記途中データを格納する途中データ格納情報と、前記共有鍵を格納する共有鍵格納情報と、を含む他フレーム情報と、
を含むデータ構造。
(付記10)
サーバと、端末とを用いて、
前記端末は、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割し、
前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求し、
前記認証を前記サーバに要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内の途中データ格納部に格納し、
前記サーバは、
あらかじめ登録された認証情報を認証情報格納部に格納しておき、
前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信し、
前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成し、
前記端末は、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる前記共有鍵を生成し、
前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する、通信方法。
(付記11)
前記端末を、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部、
前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求する認証要求部、
前記認証を前記サーバに要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内で格納する途中データ格納部、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部、および、
前記共有鍵を前記他のフレーム内で格納する共有鍵格納部、
として機能させるための端末用アプリケーションを格納する端末用アプリケーション格納部と、
前記端末用アプリケーションを前記端末に送信する端末用アプリケーション送信部と、
をさらに備えることを特徴とする付記5に記載のサーバ。
(付記12)
前記端末を、前記画面領域分割部、前記認証要求部、前記途中データ格納部、前記共有鍵生成部および前記共有鍵格納部として機能させるための端末用アプリケーションを前記サーバから受信する端末用アプリケーション受信部と、
前記端末用アプリケーションを実行する端末用アプリケーション実行部と、
をさらに備えることを特徴とする付記6に記載の端末。
(付記13)
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割ステップ、
前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求する認証要求ステップ、
前記認証要求ステップで前記認証を要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内の途中データ格納部に格納する途中データ格納ステップ、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成ステップ、および、
前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する共有鍵格納ステップ、
を含む端末用アプリケーションを端末用アプリケーション格納部に格納しておく端末用アプリケーション格納ステップと、
前記端末用アプリケーションを前記端末に送信する端末用アプリケーション送信ステップと、
を、前記サーバにさらに実行させることを特徴とする付記7に記載のコンピュータ・プログラム。
(付記14)
前記画面領域分割ステップ、前記認証要求ステップ、前記途中データ格納ステップ、前記共有鍵生成ステップおよび前記共有鍵格納ステップを含む端末用アプリケーションを前記サーバから受信する端末用アプリケーション受信ステップと、
前記端末用アプリケーションを実行する端末用アプリケーション実行ステップと、
を、前記端末にさらに実行させることを特徴とする付記8に記載のコンピュータ・プログラム。
(付記15)
前記サーバと前記端末とを用いて、
前記サーバは、
前記端末を、前記画面領域分割部、前記認証要求部、前記途中データ格納部、前記共有鍵生成部および前記共有鍵格納部として機能させるための端末用アプリケーションを端末用アプリケーション格納部に格納しておき、
前記端末用アプリケーションを前記端末に送信し、
前記端末は、
前記端末用アプリケーションを受信し、
受信した端末用アプリケーションを実行することを特徴とする付記10に記載の通信方法。
【符号の説明】
【0254】
1、4 通信システム
2、5 端末
3、6 サーバ
21 画面領域分割部
22、52 認証要求部
23 途中データ格納部
24、54、33、63 共有鍵生成部
25 共有鍵格納部
31 認証情報格納部
32、62 認証部
56 端末用アプリケーション受信部
57 端末用アプリケーション実行部
64 端末用アプリケーション格納部
65 端末用アプリケーション送信部
9 コンテンツ
91 フレーム構造情報
92 第1フレーム情報
93 他フレーム情報
521 認証要求データ生成部
522 レスポンス生成部
621 チャレンジ生成部
622 レスポンス検証部
2001、3001 CPU
2002、3002 RAM
2003、3003 ROM
2004、3004 記憶装置
2005、3005 ネットワークインタフェース
2006 表示装置
2007 入力装置

【特許請求の範囲】
【請求項1】
サーバと、端末とを備えた通信システムであって、
前記端末は、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、
前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求する認証要求部と、
前記認証を前記サーバに要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内で格納する途中データ格納部と、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、
前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、
を有し、
前記サーバは、
あらかじめ登録された認証情報を格納した認証情報格納部と、
前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、
前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる前記共有鍵を生成する共有鍵生成部と、
を有する通信システム。
【請求項2】
前記サーバは、
前記端末を、前記画面領域分割部、前記認証要求部、前記途中データ格納部、前記共有鍵生成部および前記共有鍵格納部として機能させるための端末用アプリケーションを格納する端末用アプリケーション格納部と、
前記端末用アプリケーションを前記端末に送信する端末用アプリケーション送信部と、
をさらに有し、
前記端末は、
前記端末用アプリケーションを受信する端末用アプリケーション受信部と、
前記端末用アプリケーションを実行する端末用アプリケーション実行部と、
をさらに有することを特徴とする請求項1に記載の通信システム。
【請求項3】
前記端末の前記認証要求部は、
前記認証の要求を開始するための認証要求データを生成して前記サーバに送信するとともに、前記認証要求データを生成する際に使用するデータを前記途中データとして前記途中データ格納部に格納する認証要求データ生成部と、
前記サーバから受信するランダムなチャレンジデータおよび前記途中データに基づいてレスポンスデータを生成して前記サーバに送信するとともに、前記レスポンスデータを生成する際に使用するデータを前記途中データとして前記途中データ格納部に追加して格納するレスポンス生成部と、
を有し、
前記サーバの前記認証部は、
前記認証要求データの受信に応じて前記チャレンジデータを生成して前記端末に送信するチャレンジ生成部と、
前記端末から受信する前記レスポンスデータを検証することにより前記認証情報を認証するか否を判断するレスポンス検証部と、
を有することを特徴とする請求項1または請求項2に記載の通信システム。
【請求項4】
前記サーバの前記端末用アプリケーション送信部は、前記端末用アプリケーションのURL(Uniform Resource Locator)に、前記サーバが有する公開鍵のハッシュ値の少なくとも一部を含めて前記端末用アプリケーションを前記端末に送信し、
前記サーバの前記チャレンジ生成部は、前記公開鍵を前記チャレンジデータに含めて前記端末に送信し、
前記端末の前記レスポンス生成部は、前記チャレンジデータに含まれる公開鍵が改変されていないことを前記端末用アプリケーションのURLに基づいて判断し、前記公開鍵が改変されていないと判断した場合に、前記公開鍵を用いて前記認証情報を暗号化した情報を前記レスポンスデータに含めて前記サーバに送信し、
前記サーバの前記レスポンス検証部は、前記レスポンスデータに含まれる情報を、前記公開鍵に対応する秘密鍵を用いて復号することにより得られる認証情報を認証するか否かを判断することを特徴とする請求項3に記載の通信システム。
【請求項5】
あらかじめ登録された認証情報を格納した認証情報格納部と、
前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証部と、
前記認証部によって前記認証情報を認証すると判断された場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成部と、
を備えたサーバ。
【請求項6】
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割部と、
前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介してサーバに要求する認証要求部と、
前記認証を前記サーバに要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内で格納する途中データ格納部と、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成部と、
前記共有鍵を前記他のフレーム内で格納する共有鍵格納部と、
を備えた端末。
【請求項7】
端末と通信を行うサーバに、
あらかじめ登録された認証情報を認証情報格納部に格納しておく認証情報格納ステップと、
前記認証情報格納部に基づいて、端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信する認証ステップと、
前記認証ステップで、前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、
を実行させるコンピュータ・プログラム。
【請求項8】
サーバと通信を行う端末に、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割する画面領域分割ステップと、
前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求する認証要求ステップと、
前記認証要求ステップで前記認証を要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内の途中データ格納部に格納する途中データ格納ステップと、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する共有鍵生成ステップと、
前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する共有鍵格納ステップと、
を実行させるコンピュータ・プログラム。
【請求項9】
サーバから端末に配信されるコンテンツのデータ構造であって、
前記端末において前記コンテンツが表示されるブラウザ画面領域を構成する複数のフレームの構造が定義されたフレーム構造情報と、
前記複数のフレームのうち第1のフレームに適用される情報を表し、前記第1のフレームを介して取得した認証情報の認証を前記第1のフレームを介して前記サーバに要求するとともに、前記サーバから受信した認証結果情報が認証成功を表す場合、前記認証を前記サーバに要求する際に使用した途中データに基づいて、前記サーバとの暗号通信に用いる共有鍵を生成する認証付鍵交換アプリケーションを含む第1フレーム情報と、
前記第1のフレーム以外の他のフレームに適用される情報を表し、前記途中データを格納する途中データ格納情報と、前記共有鍵を格納する共有鍵格納情報と、を含む他フレーム情報と、
を含むデータ構造。
【請求項10】
サーバと、端末とを用いて、
前記端末は、
コンテンツを表示するブラウザ画面領域を複数のフレームに分割し、
前記複数のフレームのうち第1のフレームを介して取得した認証情報の認証を、前記第1のフレームを介して前記サーバに要求し、
前記認証を前記サーバに要求する際に使用される途中データを、前記第1のフレーム以外の他のフレーム内の途中データ格納部に格納し、
前記サーバは、
あらかじめ登録された認証情報を認証情報格納部に格納しておき、
前記認証情報格納部に基づいて、前記端末によって認証を要求される認証情報を認証するか否かを判断するとともに、認証成功か否かを表す認証結果情報を前記端末に送信し、
前記認証情報を認証すると判断した場合、前記認証情報を認証する際に使用した途中データに基づいて、前記端末との暗号通信に用いる共有鍵を生成し、
前記端末は、
前記サーバから受信した認証結果情報が認証成功を表す場合、前記途中データ格納部に格納された途中データに基づいて、前記サーバとの暗号通信に用いる前記共有鍵を生成し、
前記共有鍵を前記他のフレーム内の共有鍵格納部に格納する、通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−60366(P2012−60366A)
【公開日】平成24年3月22日(2012.3.22)
【国際特許分類】
【出願番号】特願2010−200941(P2010−200941)
【出願日】平成22年9月8日(2010.9.8)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】