(57)【特許請求の範囲】
【請求項１】
第一の端末と、第二の端末とが、第一、第二のセッション管理サーバを介して暗号通信を行うための、暗号通信を確立する暗号通信システムにおいて、
前記第一の端末と前記第二の端末との間に確立する、前記暗号通信に用いる暗号アルゴリズムスイートを選択する鍵生成情報管理サーバを備え、
前記第一のセッション管理サーバは、
前記第一の端末から自端末が使用可能なセッション鍵を生成するために設定値の決定が必要な複数の設定項目から成り、各設定項目に設定値の候補を格納した第一の鍵生成情報を取得する機能と、
前記鍵生成情報管理サーバへ、前記第一の鍵生成情報を送信する機能と、を備え、
前記第二のセッション管理サーバは、
前記第二の端末から自端末が使用可能なセッション鍵を生成するために設定値の決定が必要な複数の設定項目から成り、各設定項目に設定値の候補を格納した第二の鍵生成情報を取得する機能と、
前記鍵生成情報管理サーバへ、前記第二の鍵生成情報を送信する機能と、を備え、
前記鍵生成情報管理サーバは、
前記第一のセッション管理サーバから前記第一の鍵生成情報を受信し、前記第二のセッション管理サーバから前記第二の鍵生成情報を受信する鍵生成情報受信機能と、
受信した、前記第一と第二の鍵生成情報を登録する鍵生成情報登録機能と、
前記第一のセッション管理サーバによる、前記第一の端末から前記第二の端末への通信開始要求の受信をきっかけとして、予め定めるポリシーに従い、受信した前記第一の鍵生成情報と前記第二の鍵生成情報とに基づく、前記暗号通信に使用するアルゴリズムスイートを選択する機能と、を備える
ことを特徴とする暗号通信システム。
【請求項２】
請求項１に記載の暗号通信システムにおいて、
前記第一のセッション管理サーバは、前記鍵生成情報管理サーバを含み、
前記第一のセッション管理サーバは、前記選択したアルゴリズムスイートに基づいて、前記暗号通信に用いるセッション鍵の生成に必要な乱数を生成する乱数生成機能を備える
ことを特徴とする暗号通信システム。
【請求項３】
請求項２に記載の暗号通信システムにおいて、
前記第一のセッション管理サーバは、前記選択したアルゴリズムスイートと前記生成した乱数とに基づいて、前記暗号通信に使用する前記セッション鍵を含めたセッション鍵情報を生成するセッション鍵生成機能を備える
ことを特徴とする暗号通信システム。
【請求項４】
請求項３に記載の暗号通信システムにおいて、
前記第一のセッション管理サーバは、
前記生成したセッション鍵情報を、前記第二のセッション管理サーバへ送信する前記第一の端末から前記第二の端末への通信開始要求、および当該第一のセッション管理サーバから前記第一の端末へ送信する通信開始応答に含めるセッション鍵記載機能を備え、
前記第二のセッション管理サーバは、前記第一のセッション管理サーバから、前記セッション鍵情報を含めた前記通信開始要求を受信し、前記第二の端末へ送信する機能を備え、
前記第二の端末は、前記第二のセッション管理サーバから、前記セッション鍵情報を含めた前記通信開始要求を受信し、前記セッション鍵情報を取得するセッション鍵取り出し機能を備え、
前記第一の端末は、前記第一のセッション管理サーバから、前記セッション鍵情報を含めた前記通信開始応答を受信し、前記セッション鍵情報を取得するセッション鍵取り出し機能を備える
ことを特徴とする暗号通信システム。
【請求項５】
請求項２に記載の暗号通信システムにおいて、
前記第一のセッション管理サーバは、前記選択したアルゴリズムスイートと前記生成した乱数からなるセッション鍵情報を、前記第一の端末から前記第二の端末への通信開始要求および前記当該第一のセッション管理サーバから前記第一の端末への通信開始応答に含めるセッション鍵記載機能を備え、
前記第二の端末は、
前記通信開始要求とともに送信された前記セッション鍵情報を取得するセッション鍵取り出し機能と、
前記セッション鍵情報に含まれる前記アルゴリズムスイートと前記乱数とに基づきセッション鍵を生成する機能と、を備え、
前記第一の端末は、
前記通信開始応答とともに送信された前記セッション鍵情報を取得するセッション鍵取り出し機能と、
前記セッション鍵情報に含まれる前記アルゴリズムスイートと前記乱数とに基づき前記セッション鍵を生成する機能と、を備える
ことを特徴とする暗号通信システム。
【請求項６】
請求項１に記載の暗号通信システムにおいて、
前記鍵生成情報管理サーバは、
前記選択したアルゴリズムスイートを、前記第一のセッション管理サーバに送信する機能を備える
ことを特徴とする暗号通信システム。
【請求項７】
請求項６に記載の暗号通信システムにおいて、
前記第一のセッション管理サーバは、
前記鍵生成情報管理サーバから、前記選択したアルゴリズムスイートを受信する機能と、
前記選択した暗号アルゴリズムスイートに基づいて、前記暗号通信に用いるセッション鍵の生成に必要な乱数を生成する乱数生成機能を備える
ことを特徴とする暗号通信システム。
【請求項８】
請求項７に記載の暗号通信システムにおいて、
前記第一のセッション管理サーバは、前記選択したアルゴリズムスイートと前記生成した乱数とに基づいて、前記暗号通信に使用する前記セッション鍵を含めたセッション鍵情報を生成するセッション鍵生成機能を備える
ことを特徴とする暗号通信システム。
【請求項９】
請求項８に記載の暗号通信システムにおいて、
前記第一のセッション管理サーバは、
前記生成したセッション鍵情報を、前記第二のセッション管理サーバへ送信する前記第一の端末から前記第二の端末への通信開始要求、および当該第一のセッション管理サーバから前記第一の端末へ送信する通信開始応答に含めるセッション鍵記載機能を備え、
前記第二のセッション管理サーバは、前記第一のセッション管理サーバから、前記セッション鍵情報を含めた前記通信開始要求を受信し、前記第二の端末へ送信する機能を備え、
前記第二の端末は、前記第二のセッション管理サーバから、前記セッション鍵情報を含めた前記通信開始要求を受信し、前記セッション鍵情報を取得するセッション鍵取り出し機能を備え、
前記第一の端末は、前記第一のセッション管理サーバから、前記セッション鍵情報を含めた前記通信開始応答を受信し、前記セッション鍵情報を取得するセッション鍵取り出し機能を備える
ことを特徴とする暗号通信システム。
【請求項１０】
請求項７に記載の暗号通信システムにおいて、
前記第一のセッション管理サーバは、前記生成した乱数と前記選択したアルゴリズムスイートとからなるセッション鍵情報を、前記第一の端末から前記第二の端末への通信開始要求および前記当該第一のセッション管理サーバから前記第一の端末への通信開始応答に含めるセッション鍵記載機能を備え、
前記第二の端末は、
前記通信開始要求とともに送信された前記セッション鍵情報を取得するセッション鍵取り出し機能と、
前記セッション鍵情報に含まれる前記アルゴリズムスイートと前記乱数とに基づきセッション鍵を生成する機能と、を備え、
前記第一の端末は、
前記通信開始応答とともに送信された前記セッション鍵情報を取得するセッション鍵取り出し機能と、
前記セッション鍵情報に含まれる前記アルゴリズムスイートと前記乱数とに基づき前記セッション鍵を生成する機能と、を備える
ことを特徴とする暗号通信システム。
【請求項１１】
請求項１に記載の暗号通信システムにおいて、
前記鍵生成情報管理サーバは、
前記選択したアルゴリズムスイートに基づいて、前記暗号通信に用いるセッション鍵の生成に必要な乱数を生成する乱数生成機能を備える
ことを特徴とする暗号通信システム。
【請求項１２】
請求項１１に記載の暗号通信システムにおいて、
前記鍵生成情報管理サーバは、前記生成した乱数と前記選択したアルゴリズムスイートを、前記第一のセッション管理サーバに送信する機能を備える
ことを特徴とする暗号通信システム。
【請求項１３】
請求項１２に記載の暗号通信システムにおいて、
前記第一のセッション管理サーバは、前記鍵生成情報管理サーバから受信した、前記選択したアルゴリズムスイートと前記生成した乱数とに基づいて、前記暗号通信に使用する前記セッション鍵を含めたセッション鍵情報を生成するセッション鍵生成機能を備える
ことを特徴とする暗号通信システム。
【請求項１４】
請求項１３に記載の暗号通信システムにおいて、
前記セッション管理サーバは、
前記生成したセッション鍵情報を、前記第二のセッション管理サーバへ送信する前記第一の端末から前記第二の端末への通信開始要求、および当該第一のセッション管理サーバから前記第一の端末へ送信する通信開始応答に含めるセッション鍵記載機能を備え、
前記第二のセッション管理サーバは、前記第一のセッション管理サーバから、前記セッション鍵情報を含めた前記通信開始要求を受信し、前記第二の端末へ送信する機能を備え、
前記第二の端末は、前記第二のセッション管理サーバから、前記セッション鍵情報を含めた前記通信開始要求を受信し、前記セッション鍵情報を取得するセッション鍵取り出し機能を備え、
前記第一の端末は、前記第一のセッション管理サーバから、前記セッション鍵情報を含めた前記通信開始応答を受信し、前記セッション鍵情報を取得するセッション鍵取取出し機能を備える
ことを特徴とする暗号通信システム。
【請求項１５】
請求項１２に記載の暗号通信システムにおいて、
前記第一のセッション管理サーバは、前記生成した乱数と前記選択したアルゴリズムスイートとからなるセッション鍵情報を、前記第一の端末から前記第二の端末への通信開始要求および前記当該第一のセッション管理サーバから前記第一の端末への通信開始応答に含めるセッション鍵記載機能を備え、
前記第二の端末は、
前記通信開始要求とともに送信された前記セッション鍵情報を取得するセッション鍵取り出し機能と、
前記セッション鍵情報に含まれる前記アルゴリズムスイートと前記乱数とに基づきセッション鍵を生成する機能と、を備え、
前記第一の端末は、
前記通信開始応答とともに送信された前記セッション鍵情報を取得するセッション鍵取り出し機能と、
前記セッション鍵情報に含まれる前記アルゴリズムスイートと前記乱数とに基づき前記セッション鍵を生成する機能と、を備える
ことを特徴とする暗号通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のセッション管理サーバを介した暗号通信方法およびシステムに関するものである。
【背景技術】
【０００２】
近年，利用者の個人情報が漏洩したり，身に覚えのない請求が届いたり，といったインターネットの利用に関する事件が頻繁に発生し，ネットワークの利用に関する不安が増大している。この結果，ネットワークや通信に対するセキュリティへの要求が高まり，セキュリティパッチの適用やウィルス定義ファイルの更新、サービス利用者のアクセス制御など、多くのセキュリティ対策が行われている。しかし，実施しなければならないセキュリティ対策の増加等から，ネットワーク利用者が十分なセキュリティ対策を実施することは困難になってきており、第三者が提供する設備（例えば、ISPの設備）でセキュリティ対策を実施することが多くなってきている。
【０００３】
第三者が提供する設備で実施するセキュリティ対策の一つとして、暗号通信確立の仲介がある。その一つの方法として、信頼できる第三者機関(TTP、Trusted Third Party)がネットワーク端末（以下、端末という）間の暗号通信確立の仲介を行う方法がある。（例えば、非特許文献１参照。）
上記では、暗号通信に使用するアルゴリズムや鍵の生成に必要なパラメータの決定を端末の代わりにTTPが行うことが開示されている。
【０００４】
具体的には、次のようにして端末１と端末２との暗号通信に使用するアルゴリズムや鍵の生成に必要なパラメータTTPが決定する。
【０００５】
まず、端末１および端末２の、それぞれが使用可能な暗号アルゴリズムやハッシュアルゴリズム等の情報をTTPが事前に収集しておく。
【０００６】
次に、端末１は、TTPに対し端末２への通信要求を送信する。端末１から端末２への通信要求を受信したTTPは、端末１が使用可能なアルゴリズムと端末２が使用可能なアルゴリズムとを比較する。そして、所定のポリシーに基づき、端末１と端末２が暗号通信に使用するアルゴリズムとパラメータを決定する。TTPは決定したアルゴリズムとパラメータを端末１と端末２にそれぞれ配付し、共有する。
【０００７】
その後端末１と端末２は、配付された情報を利用して、TTPを介さずに暗号通信を行う。
【０００８】
上記では、TTPを介して暗号通信を確立するので、端末は暗号通信に使用するアルゴリズムや鍵の生成に必要なパラメータの決定作業から解放される、という特徴がある。
【０００９】
【非特許文献１】鍛 他，"セキュアサービスプラットフォームにおけるセキュア通信確立モデル"，情報処理学会，情報処理学会研究報告, 2005-CSEC-028, Vol.2005, No.33, pp.151-156 (2005)
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記の暗号通信方法を用いる場合、TTPの機能を持った一つのサーバ装置（以下、セッション管理サーバ、と呼ぶ）がすべての暗号化通信を仲介するのではなく、複数のセッション管理サーバが連携して暗号通信を確立する場合がある。
【００１１】
例えば、企業内で企業内LANへアクセス可能な端末が、多数、上記の暗号通信方法を利用して暗号通信を確立しようとすると、セッション管理サーバは暗号通信に使用するアルゴリズムや鍵の生成に必要なパラメータの決定作業を大量に行う必要があり、その結果セッション管理サーバの処理負荷が増大する。この問題に対する解決策として、セッション管理サーバを企業内に複数用意して、一台のセッション管理サーバが管理する端末の台数を少なくする、という方法がある。このとき、異なるセッション管理サーバに管理されている端末間で暗号通信を確立する際には、二つのセッション管理サーバを介して暗号通信を確立する必要がある。
【００１２】
また、ISP(Internet Service Provider)が契約者の端末を管理する場合、それぞれが異なるISPと契約している端末間で暗号通信を行いたい、という状況が発生する可能性がある。そのような場合には、端末間で暗号通信を確立する際にこれらの端末が所属するISPのセッション管理サーバを介する必要がある。
【００１３】
しかし、いずれの場合にも、複数のセッション管理サーバを用意するため、暗号通信に使用するアルゴリズムや鍵の生成に必要なパラメータの決定作業を行う際に以下のような課題が発生する。
【００１４】
すなわち、セッション管理サーバ１が、端末１の使用可能な暗号アルゴリズムやハッシュアルゴリズム等の情報を収集し、セッション管理サーバ２が、端末２の使用可能な暗号アルゴリズムやハッシュアルゴリズム等の情報を収集する場合、比較すべきアルゴリズムの情報が記載されている、端末の使用可能な暗号アルゴリズムやハッシュアルゴリズム等の情報が異なるセッション管理サーバに分散する。そのため、端末１と端末２との間で暗号通信を確立しようとした場合に、暗号通信に使用するアルゴリズムや鍵の生成に必要なパラメータの決定が困難である、という課題が存在する。
しかし、この課題について、非特許文献１は述べていない。
【課題を解決するための手段】
【００１５】
本発明は、上記課題を解決し、端末間の暗号通信を実現するための手段を提供する。
【００１６】
具体的には、セッション鍵を用いて暗号通信を行う端末がそれぞれ異なるセッション管理サーバに、自端末が使用可能なセッション鍵を生成するために設定値の決定が必要な複数の設定項目から成り、各設定項目に設定値の候補を格納した情報（以下、鍵生成情報）を登録した後、端末間でセッション管理サーバを経由しない暗号通信を確立する際に、各セッション管理サーバを連携させて暗号通信に使用するアルゴリズムスイートを選択する手段を、本発明の暗号通信システムが備えることを主な特徴とする。
【００１７】
なお、本明細書においては、バルク暗号アルゴリズムや、鍵長、動作モード、パディングアルゴリズム等の設定をまとめて、上記の通りアルゴリズムスイートと呼ぶ。
【００１８】
すなわち、本発明は、端末間で暗号通信を確立する際に、各セッション管理サーバが独自に管理している、各端末の鍵生成情報を基に、双方が利用可能なアルゴリズムスイートを所定のポリシーに従い選択する手段あるいは装置、例えば鍵生成情報管理サーバを設ける。
【００１９】
また、選択したアルゴリズムスイートに基づき鍵のパラメータを生成する手段を有する装置が、選択したアルゴリズムスイートに関わる情報を鍵生成情報管理サーバから取得する手段を設ける。
【００２０】
なお、鍵生成情報管理サーバは、セッション管理サーバとは異なる独立した装置でも良いし、いずれかのセッション管理サーバと同一の装置であっても良い。
【００２１】
また、鍵のパラメータを生成する手段を有する装置は、鍵生成情報管理サーバやセッション管理サーバとは異なる独立した装置でも良いし、鍵生成情報管理サーバ、あるいはセッション管理サーバと同一の装置であってもよい。
【００２２】
尚、各端末の鍵生成情報に記載する設定項目には、例えば端末が暗号通信に使用可能な暗号アルゴリズムスイートの設定項目やメッセージダイジェストアルゴリズムスイートの設定項目、メッセージ認証アルゴリズムスイートの設定項目などが設定できる。
【００２３】
また、上記に例示した、暗号アルゴリズムスイートの設定項目としては、暗号アルゴリズムの名称、暗号化処理に使用する鍵の長さや有効期間や当該鍵を用いて処理可能な最大データサイズ、復号処理に使用する鍵の長さや有効期間、利用モード、パディングに使用するアルゴリズムの名称、等を記載することができる。さらに、メッセージダイジェストアルゴリズムスイートの設定項目としては、メッセージダイジェストアルゴリズムの名称、等を記載することができる。さらには、メッセージ認証アルゴリズムスイートの設定項目としては、メッセージ認証アルゴリズムの名称、メッセージ認証処理に使用する鍵の長さや有効期間や当該鍵を用いて処理可能な最大データサイズ、等を用いることができる。そして、ここで挙げた以外についても、設定項目として鍵生成情報に加えてもよい。
【発明の効果】
【００２４】
本発明により、ログイン先のセッション管理サーバが異なる端末間で複数のセッション管理サーバを介して暗号通信を確立する場合であっても、暗号通信に使用するアルゴリズムスイートの選択や鍵の生成に必要なパラメータの生成を行うことが可能となる。そしてその後、セッション管理サーバを介さずに端末間で暗号通信を行うことが可能となる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態を、図面を用いて詳細に説明する。尚、実施例に同種の要素が複数登場する場合には、セッション管理サーバ100-1、セッション管理サーバ100-2のように枝番を用いて表記する。また、同種の要素を複数まとめて説明する場合は、例えばセッション管理サーバ100-1とセッション管理サーバ100-2を単に、セッション管理サーバ100のように枝番無しで表現する。
【００２６】
尚、実施例１および実施例２において、自端末が使用可能なセッション鍵を生成するために設定値の決定が必要な複数の設定項目から成り、各設定項目に設定値の候補を格納した情報を、本発明では鍵生成情報と呼ぶ。
【００２７】
また、セッション鍵を生成するための共通の設定値が、暗号通信を実施する両端末の鍵生成情報の各設定項目に存在するか否か、を調べることを、鍵生成情報のマッチングと呼ぶ。さらに、鍵生成情報のマッチングにより選択したアルゴリズムスイートに関する各設定値が記載された情報を、マッチング済鍵生成情報と呼ぶ。
【００２８】
更に、マッチングにより選択したアルゴリズムスイートと、マッチング済鍵生成情報に記載されている設定値に基づきセッション管理サーバが生成する、セッション鍵、鍵の有効時間、鍵長から構成する情報をセッション鍵情報と呼ぶことにする。
【００２９】
また、端末が自身のIDをセッション管理サーバへ登録することを、端末がセッション管理サーバへログインする、と呼ぶ。
【実施例１】
【００３０】
本実施例１では本発明を適用した、SIP(Session Initiation Protocol)を用いた暗号通信システムについて説明する。SIPはIETFにおいてRFC3261で定義された、通信セッションの管理や制御を行う通信プロトコルである。
【００３１】
図１は、本実施例１の暗号通信システムの構成図である。同図において、暗号通信システムはセッション管理サーバ100-1、セッション管理サーバ100-2、クライアント端末（以下、端末という）300-1、端末300-2の構成要素によって構成され、各構成要素はネットワーク0を介して相互に接続している。更に、セッション管理サーバ100 は鍵生成情報データベース101（以下、データベースをDBという）、およびログイン管理DB102を備えている。
【００３２】
本実施例１では、端末300-1と端末300-2が暗号通信を行う際、セッション管理サーバ100-1やセッション管理サーバ100-2を介したSIP通信によって端末300-1と端末300-2との間で暗号化通信を行うためのセッション鍵を共有する。このとき、セッション管理サーバ100-1は端末300-1と端末300-2の鍵生成情報のマッチングにより、端末300-1と端末300-2との間の暗号通信に使用するアルゴリズムスイートを選択し、マッチング済鍵生成情報に記載されている設定値に基づきセッション鍵情報5000の生成を行う。そして、セッション鍵情報5000を端末300-1と端末300-2にそれぞれ配付し、端末300-1と端末300-2は配付されたセッション鍵情報5000を用いて、セッション管理サーバ100-1やセッション管理サーバ100-2を介さずに暗号通信を開始する。
【００３３】
なお、本実施例１が適用された暗号通信システムは、端末間で通信を行うP2P通信だけでなく、端末と業務サーバとが通信を行うクライアント/サーバ通信などにも適用可能である。あるいは、ルータのような通信装置同士の通信や、業務サーバ同士の通信などへも適用することができる。
【００３４】
また、ネットワーク0は企業内LANのようなプライベートネットワークでも良いし、インターネットのようなオープンネットワークでも良い。
【００３５】
また、鍵生成情報DB101やログイン管理DB102は、本実施例１のようにセッション管理サーバ100内に含まれる装置として構成することも可能であるが、各DBがセッション管理サーバ100とは別の装置として構成され、DBとセッション管理サーバ100との間をネットワークで接続するように配置してもよい。
【００３６】
端末300は、他の端末300と暗号通信を行う装置である。端末300はセッション管理サーバ100から通信開始要求3000または通信開始応答3500を受信した際に、これらのメッセージに記載されたセッション鍵情報5000を取得するためのセッション鍵取出し機能301と、セッション管理サーバ100との間でメッセージを送信したり受信したりするためのメッセージ送受信機能302と、端末300の内部状態が未ログイン状態、ログイン済状態、通信可能状態、通信受付状態のいずれであるかを管理する状態管理機能303と、を備えている。また端末300は、端末300のID304と端末300が使用可能な暗号アルゴリズムスイート候補の一覧が記載されている鍵生成情報305を格納し、端末300の内部状態を表示するGUI画面306を備えている。
【００３７】
本実施例１では、端末300のID304はSIP-URIという、SIPエンティティの文字列で表現することにする。端末300のSIP-URIは、端末300の名前と端末300がログインするセッション管理サーバ100の名前とを"@"により連結し、この文字列の先頭に"sip:"を付加した文字列である。
【００３８】
具体的には、端末300-1の名前が"client1"で、端末300-1がログインするセッション管理サーバ100-1の名前が"domain1.hitachi.co.jp"という名前であるので、端末300-1のID304-1は"sip:client1 @domain1.hitachi.co.jp"となる。同様に、端末300-2の名前が"client2"で、端末300-2がログインするセッション管理サーバ100-2の名前が"domain2. hitachi.co.jp"という名前であるので、端末300-2のID304-2は"sip:client2@domain2. hitachi.co.jp"となる。
【００３９】
本実施例１においては、鍵生成情報305には、端末300が使用可能なセッション鍵を生成するために設定値の決定が必要な、暗号アルゴリズムスイートの設定項目をXMLのencタグで挟んだ形で記載する。encタグの要素には、端末300が使用可能な暗号アルゴリズムスイートの候補を指定する。本実施例では、暗号アルゴリズムスイートの候補は、暗号アルゴリズムの名称と鍵長とを「-」で連結した文字列をアルゴリズムスイート名として記載する。例えば、鍵生成情報305に、端末300が使用可能なアルゴリズムスイートとして"AES-256bit"が記載されている場合、端末300の使用可能な暗号アルゴリズムがAESで、256ビットの鍵が使用可能であることを意味する。
【００４０】
尚、鍵生成情報305には、暗号アルゴリズムスイートの設定項目以外にも、メッセージダイジェストアルゴリズムスイートの設定項目やメッセージ認証アルゴリズムスイートの設定項目をXML形式で記載してもよい。
【００４１】
また、暗号アルゴリズムスイートの設定項目としては、暗号アルゴリズムの名称、暗号化・復号処理に使用する鍵の長さ以外に、当該鍵の有効期間や当該鍵を用いて処理可能な最大データサイズ、利用モード、パディングに使用するアルゴリズムの名称、等を含んでいてもよい。
【００４２】
さらに、メッセージダイジェストアルゴリズムスイートの設定項目として、メッセージダイジェストアルゴリズムの名称、等を含んでいてもよい。さらには、メッセージ認証アルゴリズムスイートの設定項目として、メッセージ認証アルゴリズムの名称、メッセージ認証処理に使用する鍵の長さや有効期間や当該鍵を用いて処理可能な最大データサイズ、等を含んでいてもよい。
【００４３】
あるいは、鍵生成情報305には、アルゴリズムスイートの候補として"3DES-168bit"のようなアルゴリズムスイートの名称を記載するのではなく、アルゴリズムスイートの設定項目を個別に記載するようにしても良い。
【００４４】
図10(a)に例示する、鍵生成情報305-1には端末300が使用可能な暗号アルゴリズムスイート候補として"3DES-168bit"、"AES-192bit"、"AES-256bit"が記載されている。また、図10(b)に例示する、鍵生成情報305-2には端末300が使用可能な暗号アルゴリズムスイート候補として、"3DES-168bit"、"AES-128bit"、"AES-192bit"が記載されている。
【００４５】
鍵生成情報管理DB101は、端末300のID304と鍵生成情報305の組を登録するDBである。また、ログイン管理DB102は、セッション管理サーバ100にログイン済の端末300のID304を登録するDBである。
【００４６】
セッション管理サーバ100は、当該サーバ100にログインしている端末300の暗号通信を制御する装置であり、鍵生成情報DB101へ端末300の鍵生成情報305を登録するための鍵生成情報登録機能103と、鍵生成情報305を鍵生成情報DB101から検索するための鍵生成情報検索機能104と、鍵生成情報検索機能104が発見した鍵生成情報305を鍵生成情報DB101から取得するための鍵生成情報取得機能105と、他のセッション管理サーバ100と鍵生成情報305を送信または受信するための鍵生成情報送受信機能106と、端末300がログインしてきた時に端末300のID304をログイン管理DB102へ登録するためのログイン管理機能107と、端末300がログインしているか否かを調べるために、端末300のID304をログイン管理DB102から検索するID検索機能108と、端末300や他のセッション管理サーバ100との間でメッセージを送信したり受信したりするためのメッセージ送受信機能109と、を備えている。但し、メッセージ送受信機能109は、鍵生成情報を記載したメッセージの送信および受信は行わない。
【００４７】
更にセッション管理サーバ100-1は、端末300-1と端末300-2が暗号通信を行う場合に、鍵生成情報305-1と鍵生成情報305-2のマッチングを行うマッチング機能112と、マッチング済鍵生成情報に記載されている設定値を基にしてセッション鍵情報5000を生成するためのセッション鍵生成機能110と、生成したセッション鍵情報5000を端末300-1と端末300-2へ送信するために、セッション鍵情報5000を通信開始要求3000あるいは通信開始応答3500に記載する（含める）ためのセッション鍵記載機能111と、を備えている。
【００４８】
尚、本実施例１においては、端末300-1が端末300-2へ通信を要求し、端末300-2は端末300-1からの通信要求を受け入れるものとする。
【００４９】
また、本実施例１では、二台のセッション管理サーバ100-1、セッション管理サーバ100-2と、二台の端末300-1、端末300-2から構成しているが、例えば、3台以上のセッション管理サーバ100と端末300がネットワーク0を介して相互接続させても良い。
【００５０】
図２は、図１の各構成要素、すなわちセッション管理サーバ100-1、セッション管理サーバ100-2および端末300-1、端末300-2、鍵生成情報DB101、ログイン管理DB102のハードウェア構成を例示した図である。これらの機器は、CPU11と、メモリ12と、インターネットやLANを介して他の装置と通信を行うための通信装置13と、キーボードやマウス等の入力装置14と、モニタやプリンタ等の出力装置15と、読取装置16と、ハードディスク等の外部記憶装置17とが、インタフェース10を介して接続されている。また、通信装置13は図１に示したネットワーク0に接続しており、読取装置16にはICカードやUSBメモリのような、可搬性を有する記憶媒体18を接続することができる。
【００５１】
本実施例１における、セッション管理サーバ100や端末300の各機能は、これらの機能を実現するプログラムがメモリ12上にロードされ、CPU11により実行されることにより具現化される。これらのプログラムは、あらかじめ、上記情報処理装置の外部記憶装置１７に格納されていても良いし、必要なときに、読取装置16や通信装置13と当該情報処理装置が利用可能な媒体を介して、他の装置から上記外部記憶装置に導入されてもよい。媒体とは、たとえば、読取装置16に着脱可能な記憶媒体18、または通信装置13に接続可能なネットワーク0またはネットワーク0を伝搬する搬送波やディジタル信号を指す。
【００５２】
また、ID304や鍵生成情報305、GUI画面306の情報、そして状態管理機能303が管理する状態は外部記憶装置17や可搬性を有する記憶媒体18内に格納されており、これらの情報を利用する場合はCPU11が直接外部記憶装置17や記憶媒体18にアクセスしても良いし、一度メモリ12上にこれらの情報をロードした後にCPU11がメモリ12へアクセスしても良い。更に、ID304については、入力装置14からID304に相当する文字列を入力し、メモリ12上に格納した後、CPU11がメモリ12へアクセスしても良い。
【００５３】
次に、端末300がセッション管理サーバ100にログインする一連の動作シーケンスを説明する。
【００５４】
まず、端末300の利用者はGUI画面306を参照し、端末300の内部状態を確認する。内部状態が未ログイン状態であれば、端末300の利用者は端末300にログイン処理の開始を指示する。すると端末300のメッセージ送受信機能302は、ID304と鍵生成情報305が記載されたログイン処理要求2000を作成し（ステップ1001）、セッション管理サーバ100へ送信する（ステップ1002）。
【００５５】
図７(a)は、端末300-1がセッション管理サーバ100-1に送信するログイン処理要求2000のうち、送受信に必要な部分を例示した図である。本実施例１では、ログイン処理要求2000はSIPで定義されているREGISTERのリクエストメッセージのBODY部に、図10(a)に示すような、XML形式で記述した端末300-1の鍵生成情報305-1を記載することにより構成する。また、REGISTERのリクエストメッセージのTo:フィールドとFrom:フィールドの両方には端末300-1のID304-1が記載されている。
【００５６】
セッション管理サーバ100のメッセージ送受信機能109が、端末300からログイン処理要求2000を受信すると（図３のステップ1003）、鍵生成情報登録機能103は、ログイン処理要求2000に記載されている端末300のID304と鍵生成情報305との組を、鍵生成情報DB101へ登録する（ステップ1004）。更に、ログイン管理機能107がID304をログイン管理DB102へ登録すると（ステップ1005）、メッセージ送受信機能109はログイン完了通知を作成し、ログイン処理応答2500として端末300へ送信する（ステップ1006）。
【００５７】
図７(b)は、セッション管理サーバ100-1が端末300-1に送信するログイン処理応答2500のうち、送受信に必要な部分を例示した図である。本実施例１では、ログイン処理応答2500にはSIPで定義されているREGISTERのレスポンスメッセージを使用し、その中でログイン完了通知には200 OKメッセージを用いる。
【００５８】
端末300のメッセージ送受信機能302はログイン処理応答2500を受信し（図３のステップ1007）、ログイン処理応答2500がログイン完了通知であることを認識すると、端末300がログイン完了したことを状態管理機能303に通知する。そして、状態管理機能303は内部状態を未ログイン状態からログイン済状態へと遷移させると共に、GUI画面306にログインが完了した事を表示する。端末300の利用者は、GUI画面306を確認することで、ログインが完了したことを認識する。
【００５９】
以上が、本実施例１における、端末300がセッション管理サーバ100へログインを行う動作シーケンスである。
【００６０】
次に、端末300-1がセッション管理サーバ100-1とセッション管理サーバ100-2を介して、端末300-2と暗号通信のためのセッション鍵情報を共有し、暗号通信を開始する一連の動作シーケンスを説明する。
【００６１】
まず、端末300-1の利用者は、GUI画面306-1を見て端末300-1の内部状態がログイン済状態であることを確認すると、端末300-1へ端末300-2との間での暗号通信処理の開始を端末300-1へ指示する。すると端末300-1のメッセージ送受信機能302は端末300-2への通信開始要求3000を作成し、セッション管理サーバ100-1へ送信する(図4のステップ1008)。本実施例１では、通信開始要求3000は図８(a)に例示するような、SIPで定義されているINVITEのリクエストメッセージを利用する。
【００６２】
セッション管理サーバ100-1のメッセージ送受信機能109は端末300-1から通信開始要求3000を受信すると(図４のステップ1009)、ID検索機能108は通信開始要求3000のFromフィールドに記載されている端末300-1のID304-1について、ログイン管理DB102-1を検索する。検索の結果、端末300-1のID304-1がログイン管理DB102-1に登録されていない場合、セッション管理サーバ100-1のログイン管理機能107は端末300-1がセッション管理サーバ100-1にログインしていないと判断する（ステップ1010）。そして、メッセージ送受信機能109は端末300-1へ返信する通信確立失敗メッセージを通信開始応答3500として作成すると（ステップ1011）、ステップ1046へ飛ぶ。
【００６３】
本実施例１では、通信開始応答3500は図８(b)に例示するような、SIPで定義されているINVITEのレスポンスメッセージを使用し、その中で通信確立失敗メッセージには403 Forbiddenメッセージを使用する。
【００６４】
ID304-1がログイン管理DB102-1に登録されている場合、セッション管理サーバ100-1のログイン管理機能107は図４のステップ1010で端末300-1がログイン済と判断し、鍵生成情報検索機能104は通信開始要求3000のFromフィールドに記載されている端末300-1のID304-1を元にして、端末300-1の鍵生成情報305-1について鍵生成情報DB101-1を検索する（図５のステップ1012）。鍵生成情報305-1は鍵生成情報DB101-1へ登録されているので、鍵生成情報取得機能105は、検索結果に基づき鍵生成情報305-1を取得する（ステップ1013）。
【００６５】
続いて鍵生成情報検索機能104は、通信開始要求3000のToフィールドに記載されている端末300-2のID304-2を元にして、端末300-2の鍵生成情報305-2について鍵生成情報DB101-1を検索する（ステップ1014）。検索の結果、鍵生成情報305-2が鍵生成情報DB101-1内に存在している場合(ステップ1015)、セッション管理サーバ100-1の鍵生成情報取得機能105は端末300-2の鍵生成情報305-2を取得し（ステップ1016）、次にステップ1030を実行する。
【００６６】
ステップ1015で端末300-2の鍵生成情報305-2が鍵生成情報DB101-1内にない場合、セッション管理サーバ100-1のログイン管理機能107は、通信開始要求3000のToフィールドに記載されている端末300-2のID304-2の"@"以降の部分に基づき、セッション管理サーバ100-2が端末300-2のログイン先であることを認識する。そして鍵生成情報送受信機能106は、端末300-2の鍵生成情報取得要求4000を作成し、ログイン先のセッション管理サーバ100-2へ送信する（ステップ1017）。
【００６７】
本実施例１では、鍵生成情報取得要求4000はXMLメッセージとして記述されているものとする。図９（a）は、セッション管理サーバ100-1がセッション管理サーバ100-2に送信する鍵生成情報取得要求4000のうち、送受信に必要な部分を例示したものである。セッション管理サーバ100-1は、自装置の名前を鍵生成情報取得要求4000の要求元フィールド4001に記載し、セッション管理サーバ100-2の名前を要求先フィールド4002に記載する。そして、セッション管理サーバ100-1が要求している鍵生成情報305-2の持ち主である端末300-2のID304-2を要求対象IDフィールド4003に記載する。尚、要求対象IDフィールド4003には、要求する端末300のID304を複数記載してもよい。
【００６８】
セッション管理サーバ100-2の鍵生成情報送受信機能106がセッション管理サーバ100-1から鍵生成情報取得要求4000を受信すると（図５のステップ1018）、鍵生成情報検索機能104は鍵生成情報取得要求4000に記載されている端末300-2のID304-2を基にして、端末300-2の鍵生成情報305-2について鍵生成情報DB101-2を検索する（ステップ1019）。
【００６９】
検索の結果、端末300-2の鍵生成情報305-2が鍵生成情報DB101-2に存在していない場合（ステップ1020）、セッション管理サーバ100-2の鍵生成情報送受信機能106は、セッション管理サーバ100-1への鍵生成情報取得失敗メッセージを作成し、鍵生成情報取得応答4500として返信する（ステップ1021）。
【００７０】
ステップ1020で鍵生成情報305-2が鍵生成情報DB101-2内に存在している場合、鍵生成情報取得機能105は鍵生成情報DB101-2から端末300-2の鍵生成情報305-2を取得する（ステップ1022）。そして鍵生成情報送受信機能106は鍵生成情報305-2を記載した鍵生成情報取得成功メッセージを作成し（ステップ1023）、生成情報取得応答4500としてセッション管理サーバ100-1へ返信する（ステップ1024）。
【００７１】
本実施例１では、鍵生成情報取得応答4500はXMLメッセージとして記述されているものとする。図９（b）に、セッション管理サーバ100-2がセッション管理サーバ100-1に返信する鍵生成情報取得応答4500のうち、送受信に必要な部分を例示する。セッション管理サーバ100-2は、セッション管理サーバ100-1の名前を鍵生成情報取得応答4500の要求元フィールド4501に記載し、自装置の名前を要求先フィールド4502に記載する。そして、セッション管理サーバ100-1が要求している鍵生成情報305-2の持ち主である端末300-2のID304-2を要求対象IDフィールド4503に記載し、端末300-2の鍵生成情報305-2の取得結果を要求結果フィールド4504に記載する。取得成功の場合には要求結果フィールド4504に例えば"OK"と記載し、取得失敗の場合には例えば"NG"と記載する。また、取得した端末300-2の鍵生成情報305-2を、鍵生成情報フィールド4505に記載する。尚、要求対象IDフィールド4503および鍵生成情報フィールド4505には、それぞれID304と端末300の鍵生成情報305を複数記載してもよい。
【００７２】
セッション管理サーバ100-1の鍵生成情報送受信機能106は、ステップ1021またはステップ1024でセッション管理サーバ100-2が送信した鍵生成情報取得応答4500を受信する（図５のステップ1025）。このとき、鍵生成情報取得応答4500が鍵生成情報取得失敗メッセージである場合（ステップ1026）、メッセージ送受信機能109は端末300-1への通信確立失敗メッセージを通信開始応答3500として作成し（ステップ1027）、ステップ1046を実行する。
【００７３】
鍵生成情報取得応答4500が鍵生成情報取得成功メッセージである場合（ステップ1026）、セッション管理サーバ100-1のメッセージ送受信機能109は鍵生成情報取得応答4500に記載されている端末300-2の鍵生成情報305-2を取得する（ステップ1028）。そして、鍵生成情報登録機能103は鍵生成情報305-2と端末300-2のID304-2の組を鍵生成情報DB101-1へ登録すると（ステップ1029）、図４のステップ1030を実行する。
【００７４】
次に、セッション管理サーバ100-1のマッチング機能112はステップ1030で、取得した端末300-1の鍵生成情報305-1と端末300-2の鍵生成情報305-2とのマッチングを行う。
【００７５】
例えば、セッション管理サーバ100-1は、端末300-1の鍵生成情報305-1と端末300-2の鍵生成情報305-2のうちどちらかを優先させ、優先した鍵生成情報305に記載されている暗号アルゴリズムスイートを優先順に（たとえば一番上に記載されているものから）選択し、選択した暗号アルゴリズムスイート名を基に、もう一つの鍵生成情報305の暗号アルゴリズムスイートを優先順（例えば上から順）に探索し、最初に一致するアルゴリズムスイートを選択する。一致するアルゴリズムスイート名が見つからない場合、優先した鍵生成情報305の上から二番目に記載されている暗号アルゴリズムスイート名を基に、もう一つの鍵生成情報305の上から順に暗号アルゴリズムスイート名を探索する。このような手順で、鍵生成情報305-1と鍵生成情報305-2とのマッチングを行う。
【００７６】
本実施例１では端末300-1の鍵生成情報305-1のうち一番上に記載されている暗号アルゴリズムスイート名である"3DES-168bit"をマッチング機能112が選択し、端末300-2の鍵生成情報305-2のうち"3DES-168bit"に一致するものが存在するかどうかを調べる。鍵生成情報305-2には"3DES-168bit"が含まれているため、"3DES-168bit"が選択される。
【００７７】
マッチングの結果、端末300-1と端末300-2との間の暗号通信に使用可能な暗号アルゴリズムスイートが存在しない場合、セッション管理サーバ100-1のメッセージ送受信機能109は端末300-1への通信確立失敗メッセージを通信開始応答3500として作成し（ステップ1031）、ステップ1046を実行する。存在する場合、マッチング機能112は鍵生成情報305-1と鍵生成情報305-2とのマッチングにより、暗号通信に使用するアルゴリズムスイートを選択し、図10(c)に示すように、選択したアルゴリズムスイート名を、XMLのencタグで囲んだ形で記載したマッチング済鍵生成情報307を生成する。そして、セッション鍵生成機能110はマッチング済鍵生成情報307に記載されている設定値に基づき、セッション鍵情報5000を生成する(ステップ1032)。
【００７８】
本実施例１では、セッション鍵情報5000はXMLメッセージとして記述されている。図１０（ｄ）は、セッション管理サーバ100-1が作成し端末300-1および端末300-2に送信するセッション鍵情報5000のうち、送受信に必要な部分を例示した図である。
【００７９】
セッション鍵情報5000には、端末300-1と端末300-2との暗号通信に適用する暗号アルゴリズムスイートである"3DES-168bit"を暗号アルゴリズムフィールド5001に記載する。"3DES-168bit"とは3DESの暗号アルゴリズムと、168ビットの鍵と、ECB動作モードと、PKCS#5で定義されたパディングアルゴリズムと、を用いて暗号化および復号を行う暗号アルゴリズムスイートの名前であり、セッション管理サーバ100-1が端末300-1の鍵生成情報305-1と端末300-2の鍵生成情報305-2とのマッチングを行った結果、選定されたものである。また、セッション管理サーバ100-1が生成したセッション鍵の有効期間を鍵の有効期間フィールド5002に記載する。図１０（ｄ）の例では、鍵の有効期間フィールド5002（秒単位とする）に"3600"と記載されており、セッション鍵の有効期間が1時間であることを示している。更に、暗号通信に使用するセッション鍵を鍵フィールド5003に記載する。
【００８０】
セッション管理サーバ100-1のセッション鍵生成機能110がセッション鍵情報5000生成後、セッション鍵記載機能111はセッション鍵情報5000を通信開始要求3000に記載する（含める）。そして、メッセージ送受信機能109は通信開始要求3000のToフィールドに記載されている端末300-2のID304-2の"@"以降の部分に基づき、セッション管理サーバ100-2が端末300-2のログイン先であることを認識すると、セッション管理サーバ100-2に通信開始要求3000を送信する（図６のステップ1033）。尚、ステップ1033以降で送受される通信開始要求3000は、図８(a)に示す通信開始要求3000のBODY部に、XML形式で記述されたセッション鍵情報5000を記載したものである。
【００８１】
セッション管理サーバ100-2のメッセージ送受信機能109はセッション管理サーバ100-1より通信開始要求3000を受信すると（ステップ1034）、通信開始要求3000を端末300-2へ送信する（ステップ1035）。
【００８２】
端末300-2のメッセージ送受信機能302はセッション管理サーバ100-2より通信開始要求3000を受信すると（ステップ1036）、通信開始要求3000の内容を調べ端末300-1との通信可否を判断する（ステップ1037）。
【００８３】
端末300-2のメッセージ送受信機能302は、端末300-1との暗号通信を拒否する場合には通信拒否メッセージを作成し、通信開始応答3500としてセッション管理サーバ100-2へ返信する（ステップ1038）。そして、状態管理機能303は内部状態をログイン済状態へ遷移させると共に、GUI画面306-2に端末300-1からの通信を拒否したことを表示し、端末300-2の利用者が、端末300-2が端末300-1からの通信を拒否したことを、画面表示により認識できるようにする。
【００８４】
尚、本実施例１では、上記通信拒否メッセージにはSIPで定義されているINVITEレスポンスの401 Unauthorizedメッセージを使用する。
【００８５】
一方、ステップ1037で端末300-1との暗号通信を許可する場合には、端末300-2のセッション鍵取出し機能301は受信した通信開始要求3000に記載されているセッション鍵情報5000を取得する（ステップ1039）。そしてメッセージ送受信機能302は通信許可メッセージを作成し、通信開始応答3500としてセッション管理サーバ100-2へ返信する（ステップ1040）。更に、状態管理機能303は内部状態を通信受付状態へ遷移させると共に、GUI画面306-2に端末300-1からの通信を許可した事を表示する。端末300-2の利用者は、GUI画面306-2を確認することで、端末300-1との通信セッションが確立したことを認識する。
【００８６】
尚、本実施例１では、上記通信許可メッセージには図８(b)で示すように、SIPで定義されているINVITEレスポンスの200 OKメッセージを使用する。
【００８７】
セッション管理サーバ100-2のメッセージ送受信機能109は端末300-2より通信開始応答3500を受信すると（ステップ1041）、セッション管理サーバ100-1へ通信開始応答3500を送信する（ステップ1042）。
【００８８】
セッション管理サーバ100-1のメッセージ送受信機能109はセッション管理サーバ100-2より通信開始応答3500を受信すると（ステップ1043）、通信開始応答3500の内容を調べ端末300-1の端末300-2に対する通信開始要求3000が許可されているかどうかを確認する（ステップ1044）。通信開始応答3500が通信拒否メッセージである場合、ステップ1046を実行する。通信開始応答3500が通信許可メッセージである場合、セッション鍵記載機能111は通信開始応答3500にセッション鍵情報5000を記載し（ステップ1045）、ステップ1046を実行する。尚ステップ1033以降で送受される通信開始応答3500は、図８(b)に示す通信開始応答3500のBODY部に、XML形式で記述されたセッション鍵情報5000を記載したものである。
【００８９】
セッション管理サーバ100-1のメッセージ送受信機能109は、通信開始応答3500を端末300-1へ送信する（図４のステップ1046）。
【００９０】
端末300-1のメッセージ送受信機能302はセッション管理サーバ100-1より通信開始応答3500を受信すると（ステップ1047）、受信した通信開始応答3500の内容を確認する（ステップ1048）。
【００９１】
通信開始応答3500が通信拒否メッセージであれば、端末300-1の状態管理機能303は内部状態をログイン済状態へ遷移させると共に、GUI画面306-1に端末300-2への通信が拒否された事を表示する。端末300-1の利用者は、GUI画面306-1を確認することで、端末300-2との通信セッションの確立に失敗したことを認識する。
【００９２】
通信開始応答3500が通信許可メッセージである場合、端末300-1のセッション鍵取出し機能301は通信開始応答3500に記載されているセッション鍵情報5000を取得し（ステップ1049）、状態管理機能303が内部状態を端末300-2との通信可能状態へと遷移させると共に、GUI画面306-1に端末300-2への通信が許可された事を表示する。端末300-1の利用者は、GUI画面306-1を確認することで、端末300-2との通信セッションが確立したことを認識する。
【００９３】
そして、端末300-1と端末300-2はセッション管理サーバ100-1およびセッション管理サーバ100-2を介することなく、取得したセッション鍵情報5000に記載されている鍵を用いて、暗号通信を開始する。
【００９４】
以上が本実施例１において、端末300-1と端末300-2との間で、セッション管理サーバ100-1やセッション管理サーバ100-2を介して暗号通信のためのセッション鍵を共有し、暗号通信を開始する動作シーケンスである。
【００９５】
尚、本実施例１ではセッション管理サーバ100-1のセッション鍵生成機能110がセッション鍵を生成したが、代わりにセッション管理サーバ100-2や端末300がセッション鍵生成機能110を持つような場合にでも、その後端末300-1と端末300-2がセッション鍵を共有することが可能である。この場合、次のようにして端末300-1と端末300-2がセッション鍵の共有が可能となる。
【００９６】
例えば、セッション管理サーバ100-1のマッチング機能112がステップ1030で、取得した端末300-1の鍵生成情報305-1と端末300-2の鍵生成情報305-2とのマッチングを行った後、セッション管理サーバ100-1が新たに備える乱数生成機能が、マッチング済鍵生成情報307に記載されている設定値に基づき、鍵生成のための乱数生成を行う。その後、メッセージ送受信機能109がマッチング済鍵生成情報307や乱数を、セッション鍵情報5000に記載して端末300-1と端末300-2に送信する。
【００９７】
そして、端末300-1および端末300-2はセッション鍵生成機能110を備え、メッセージ送受信機能302が、セッション鍵情報5000に含まれる、暗号通信に使用するアルゴリズムスイート情報や鍵生成のための乱数を受信すると、セッション鍵生成機能110はこの乱数から同一のセッション鍵を各端末が生成し、状態管理機能303が端末300-1および端末300-2の内部状態をそれぞれ通信可能状態および通信受付状態へ遷移させることで、通信セッションが確立する。その後、端末300-2の状態管理機能303はGUI画面306-2に端末300-1からの通信を許可したことを表示し、端末300-2の利用者はGUI画面306-2を確認することで、端末300-1との通信セッションが確立したことを認識する。また、端末300-1の状態管理機能303はGUI画面306-1に端末300-2への通信が許可されたことを表示する。端末300-1の利用者は、GUI画面306-1を確認することで、端末300-2との通信セッションが確立したことを認識する。
【００９８】
このようにして端末300-1と端末300-2は、暗号通信に使用するセッション鍵を共有し、その鍵を用いて暗号通信を開始する。
【００９９】
セッション管理サーバ100-2が、セッション管理サーバ100-1が備えているセッション鍵生成機能110およびセッション鍵記載機能111、マッチング機能112を備えている場合には、端末300-1の鍵生成情報305-1および端末300-2の鍵生成情報305-2を取得した上で、鍵生成情報300-1と鍵生成情報300-2のマッチングおよびセッション鍵情報5000の生成を行うことも可能である。
【０１００】
具体的には、図５のステップ1013でセッション管理サーバ100-1の鍵生成情報取得機能105が端末300-1の鍵生成情報305-1を取得後、メッセージ送受信機能109は鍵生成情報305-1を通信開始要求3000に記載し、セッション管理サーバ100-2に送信する。セッション管理サーバ100-2のメッセージ送受信機能109が通信開始要求3000と共に鍵生成情報305-1を受信後、鍵生成情報取得機能105が端末300-2の鍵生成情報305-2を取得すると、マッチング機能112は鍵生成情報305-1と鍵生成情報305-2のマッチングを行う。
【０１０１】
マッチングの結果、端末300-1と端末300-2との間の暗号通信に使用可能な暗号アルゴリズムスイートが存在する場合、マッチング機能112は暗号通信に使用するアルゴリズムスイートを選択し、マッチング済鍵生成情報307を生成する。セッション鍵生成機能110はマッチング済鍵生成情報307に記載されている設定値に基づきセッション鍵情報5000を生成する。
【０１０２】
また、セッション管理サーバ100-1は本実施例１で例示した以外の方法で、端末300-1の鍵生成情報305-1と端末300-2の鍵生成情報305-2のマッチングを行ってもよい。
【０１０３】
具体的には、セッション管理サーバ100-1のポリシーに基づいた方法が考えられる。すなわち、セッション管理サーバ100-1は暗号通信に使用可能なアルゴリズムスイートを選択するためのポリシーを予め備えており、そのポリシーに基づき鍵生成情報305-1と鍵生成情報305-2のマッチングを行うことができる。
【０１０４】
例えば、セッション管理サーバ100-1が最も高速なアルゴリズムスイートを選択する場合、セッション管理サーバ100-1は、暗号通信に使用可能なアルゴリズムスイート、および各アルゴリズムスイートの処理速度、を組としたデータと、該データを参照してもっとも安全と判断するアルゴリズムスイートを選択する、というポリシーを備えているとする。
【０１０５】
具体的には、"3DES-168bit"、"AES-128bit"、"AES-192bit"、"AES-256bit"のアルゴリズムスイートの同一データ、同一のアーキテクチャ上での処理速度がそれぞれ7ms、10ms、14ms、20ms、25msであるという対応表をセッション管理サーバ100-1が備えていると仮定する。この場合、セッション管理サーバ100-1は端末300-1の鍵生成情報305-1と端末300-2の鍵生成情報305-2にアルゴリズムスイート名が記載されており、かつ最も高速なアルゴリズムスイートである"3DES-168bit"を選択する。
【０１０６】
また、セッション管理サーバ100-1が最も安全なアルゴリズムスイートを選択する場合、セッション管理サーバ100-1は暗号通信に使用可能なアルゴリズムスイート、および各アルゴリズムスイートの安全性を定量化した指標、を組としたデータと、該データを参照してもっとも安全と判断するアルゴリズムスイートを選択する、というポリシーを予め備えているとする。
【０１０７】
具体的には、"3DES-168bit"、"AES-128bit"、"AES-192bit"、"AES-256bit"のアルゴリズムスイートの同一データ、同一のアーキテクチャ上での安全性の指標がそれぞれ5、8、24、30であるという対応表をセッション管理サーバ100-1が備えていると仮定し、指標が高いほどアルゴリズムスイートがより安全であるとする。この場合、セッション管理サーバ100-1は端末300-1の鍵生成情報305-1と端末300-2の鍵生成情報305-2とにアルゴリズムスイート名が記載されており、かつ、最も安全なアルゴリズムスイートである"AES-192bit"を選択する。
【０１０８】
更には、上記のようなアルゴリズムスイートの安全性や高速性以外にも、暗号アルゴリズムの種別（ブロック暗号であるか、ストリーム暗号であるか）で、ストリーム暗号のアルゴリズムを選択するといったポリシーをセッション管理サーバ100-1が備えることも可能である。
【０１０９】
この他にも、端末300-1の鍵生成情報305-1と端末300-2の鍵生成情報305-2のマッチングを行う方法としては、通信相手端末、つまり端末300-2のポリシーに基づいた方法が考えられる。すなわち、端末300-2は暗号通信に使用するアルゴリズムスイートを選択するためのポリシー（安全性の高いアルゴリズムスイートを選択する、高速なアルゴリズムスイートを選択する、など）の情報を備えているとする。この場合、端末300-2がログイン時に鍵生成情報305-2と共にアルゴリズムスイートを選択するためのポリシー情報をセッション管理サーバ100-1に登録すると、セッション管理サーバ100-1は端末300-2から取得した、アルゴリズムスイートを選択するためのポリシー情報を基に鍵生成情報のマッチングを行うことができる。
【０１１０】
以上のような、鍵生成情報のマッチング方法のうち、いずれを適用するかは、実際にマッチングを行うセッション管理サーバ100-1の管理者が自由に選択してよい。
【０１１１】
また、端末300-2がセッション管理サーバ100-1にログインしている場合にも、セッション管理サーバ100-1がセッション鍵情報5000の生成を行い、それを端末300-1と端末300-2に配付し、端末300-1と端末300-2がセッション鍵を共有することができる。この場合、以下に示す部分が実施例１と異なる。
【０１１２】
まず、ステップ1015で端末300-2の鍵生成情報305-2が鍵生成情報DB101-1内に「存在しない」場合、Toフィールドに記載されている端末300-2のID304-2の"@"以降の部分に基づき、セッション管理サーバ100-1が端末300-2のログイン先であることを認識すると、ステップ1027に移行する。すなわちセッション管理サーバ100-1のメッセージ送受信機能109は端末300-1への通信確立失敗メッセージを通信開始応答3500として作成する。その後、ステップ1046を実行する。
【０１１３】
ステップ1015で「存在する」場合は、ステップ1016を実行する。
【０１１４】
次に、ステップ1032でセッション管理サーバ100-1のセッション鍵生成機能110がセッション鍵情報5000を生成後、メッセージ送受信機能109は通信開始要求3000のToフィールドに記載されている端末300-2のID304-2の"@"以降の部分に基づき、セッション管理サーバ100-1、すなわち自装置が端末300-2のログイン先であることを認識する。そして、ステップ1035で端末300-2へ通信開始要求3000を送信する。
【０１１５】
次に、ステップ1038またはステップ1040で端末300-2のメッセージ送受信機能302が通信開始応答3500を作成し、ステップ1042でセッション管理サーバ100-1へ返信する。
【実施例２】
【０１１６】
本実施例２では、実施例１とは異なる、他のSIPを用いた暗号通信システムの一例について説明する。
【０１１７】
図１１は、本実施例２の暗号通信システムの構成図であり、鍵生成情報管理サーバ400が新たに暗号通信システムに追加され、ネットワーク0を介して他のシステム構成要素と相互に接続している部分が、実施例１と異なっている。
【０１１８】
鍵生成情報管理サーバ400は、実施例１でセッション管理サーバ100が備えていた鍵生成情報DB101を、鍵生成情報DB401として備えている。鍵生成情報DB401は、本実施例２のように鍵生成情報管理サーバ400内に含まれる装置として構成することも可能であるが、鍵生成情報DB401を鍵生成情報管理サーバ400と別の装置として構成し、鍵生成情報DB401と鍵生成情報管理サーバ400との間をネットワークで接続するように配置してもよい。
【０１１９】
鍵生成情報管理サーバ400は、実施例１でセッション管理サーバ100が備えていた鍵生成情報登録機能103と鍵生成情報検索機能104と鍵生成情報取得機能105とマッチング機能112を、それぞれ鍵生成情報登録機能402と鍵生成情報検索機能403と鍵生成情報取得機能404とマッチング機能406として備えている。また、セッション管理サーバ100との間でクライアント端末300の鍵生成情報305を送受するための鍵生成情報送受信機能405を備えている。
【０１２０】
鍵生成情報管理サーバ400および鍵生成情報DB401のハードウェア構成は図２に示されている通りであり、その機能の実現方法も、実施例１と同様であるので説明を省略する。たとえば、鍵生成情報管理サーバ400が持っている各機能は、それらの機能を実現するプログラムがメモリ12上にロードされ、CPU11により実行されることにより具現化される。
【０１２１】
本実施例２では、セッション管理サーバ100の鍵生成情報取得機能404はログイン済の端末300から鍵生成情報305を取得すると、この鍵生成情報305を鍵生成情報管理サーバ400へ送信する。したがって、本実施例２のセッション管理サーバ100は、鍵生成情報DB101と、鍵生成情報DB101へアクセスする機能である鍵生成情報登録機能103と鍵生成情報検索機能104と鍵生成情報取得機能105は不要であるため、備えていない。
【０１２２】
また、本実施例２でのセッション管理サーバ100が備える鍵生成情報送受信機能106は、セッション管理サーバ100と鍵生成情報管理サーバ400との間で端末300の鍵生成情報305を送受する機能である。
【０１２３】
次に、図１２を用いて、端末300がセッション管理サーバ100にログインする一連の動作シーケンスを説明する。尚、本実施例２では実施例１と比べて、セッション管理サーバ100が端末300から取得した鍵生成情報305を、鍵生成情報管理サーバ400へ送信する動作が異なる。
【０１２４】
まず、ステップ1101およびステップ1102はそれぞれ、実施例１のステップ1001およびステップ1002と同一であり、説明を省略する。
【０１２５】
ステップ1102の後、セッション管理サーバ100のメッセージ送受信機能109が、端末300からログイン処理要求2000を受信すると（図１２のステップ1103）、鍵生成情報送受信機能106は端末300のID304と端末300の鍵生成情報305を記載した鍵生成情報登録要求6000を作成し（ステップ1104）、鍵生成情報管理サーバ400へ送信する（ステップ1105）。
【０１２６】
本実施例２では、鍵生成情報登録要求6000をXMLメッセージとして記述する。図１５(a)は、セッション管理サーバ100-1が鍵生成情報管理サーバ400に送信する鍵生成情報登録要求6000のうち、送受信に必要な部分を示すもので、セッション管理サーバ100-1の名前を要求元フィールド6001に記載し、鍵生成情報管理サーバ400の名前を要求先フィールド6002に記載する。さらに、鍵生成情報管理サーバ400に登録する鍵生成情報305-1の持ち主である端末300-1のID304-1を登録対象IDフィールド6003に記載し、端末300-1の鍵生成情報305-1を記載する。
【０１２７】
鍵生成情報管理サーバ400の鍵生成情報送受信機能405がセッション管理サーバ100から鍵生成情報登録要求6000を受信すると(図１２のステップ1106)、鍵生成情報登録機能402は鍵生成情報登録要求6000に記載されている端末300のID304および鍵生成情報305の組を、鍵生成情報DB401へ登録する（ステップ1107）。その後、鍵生成情報送受信機能405は鍵生成情報登録完了通知を作成し、鍵生成情報登録応答6500としてセッション管理サーバ100へ送信する(ステップ1108)。
【０１２８】
本実施例２では、鍵生成情報登録応答6500はXMLメッセージとして記述されているものとする。図１５(b)は、鍵生成情報管理サーバ400がセッション管理サーバ100-1に送信する鍵生成情報登録応答6500のうち、送受信に必要な部分を例示したものである。セッション管理サーバ100-1の名前を鍵生成情報登録応答6500の要求元フィールド6501に記載し、鍵生成情報管理サーバ400の名前を要求先フィールド6502に記載する。そして、鍵生成情報管理サーバ400に登録する鍵生成情報305-1の持ち主である端末300-1のID304-1を登録対象IDフィールド6503に記載する。更に登録結果フィールド6504に、鍵生成情報管理サーバ400が端末300-1の鍵生成情報305-1の登録結果を記載する。登録成功の場合には登録結果フィールド6504に例えば"OK"と記載し、取得失敗の場合には例えば"NG"と記載する。
【０１２９】
セッション管理サーバ100の鍵生成情報送受信機能106が鍵生成情報管理サーバ400から鍵生成情報登録応答6500を受信すると(図１２のステップ1109)、ログイン管理機能107はログイン処理要求2000に記載されている端末300のID304をログイン管理DB102へ登録する（ステップ1110）。その後、メッセージ送受信機能109はログイン完了通知を作成し、ログイン処理応答2500として端末300へ送信する（ステップ1111）。
【０１３０】
端末300のメッセージ送受信機能302はログイン処理応答2500を受信し（ステップ1112）、ログイン処理応答2500がログイン完了通知であることを認識すると、端末300がログイン完了したことを状態管理機能303に通知する。そして、状態管理機能303は内部状態を未ログイン状態からログイン済状態へと遷移させると共に、GUI画面306にログインが完了した事を表示する。端末300の利用者は、GUI画面306を確認することで、ログインが完了したことを認識する。
【０１３１】
以上が本実施例２における、端末300がセッション管理サーバ100へログインを行う動作シーケンスである。
【０１３２】
次に、端末300-1がセッション管理サーバ100-1やセッション管理サーバ100-2、鍵生成情報管理サーバ400を介して、端末300-2と暗号通信のためのセッション鍵情報を共有し、暗号通信を開始する一連の動作シーケンスを説明する。
【０１３３】
図１３にあるステップ1113からステップ1116までの動作はそれぞれ、実施例１のステップ1008からステップ1011までの動作と同一であり、説明を省略する。
【０１３４】
図１３のステップ1115において、端末300-1がセッション管理サーバ100-1にログイン済の場合、セッション管理サーバ100-1の鍵生成情報送受信機能106は、鍵生成情報取得要求4000を作成し、鍵生成情報管理サーバ400へ送信する（ステップ1117）。尚、本実施例２では、鍵生成情報処理要求4000の要求対象IDフィールド4003に、端末300-1のID304-1と端末300-2のID304-2を記載する。
【０１３５】
鍵生成情報管理サーバ400の鍵生成情報送受信機能405は、セッション管理サーバ100-1から鍵生成情報取得要求4000を受信すると(ステップ1118)、鍵生成情報検索機能403は、鍵生成情報取得要求4000の要求対象IDフィールド4003に記載されている端末300-1のID304-1と端末300-2のID304-2を基にして、端末300-1の鍵生成情報305-1と端末300-2の鍵生成情報305-2について、鍵生成情報DB401を検索する（ステップ1119）。
【０１３６】
鍵生成情報管理サーバ400の鍵生成情報検索機能403は検索の結果、端末300-1の鍵生成情報305-1あるいは鍵生成情報305-2の少なくとも一方が鍵生成情報DB401に存在しない場合(ステップ1120)、鍵生成情報管理サーバ400の鍵生成情報送受信機能405は鍵生成情報取得失敗メッセージを作成し、鍵生成情報取得応答4500としてセッション管理サーバ100-1へ返信する(ステップ1121)。
【０１３７】
ステップ1120で鍵生成情報305-1と鍵生成情報305-2が共に鍵生成情報DB401に存在する場合、鍵生成情報管理サーバ400の鍵生成情報取得機能404は、鍵生成情報DB401から鍵生成情報305-1と鍵生成情報305-2を取得する（ステップ1122）。そしてマッチング機能406は、鍵生成情報305-1と鍵生成情報305-2とのマッチングを行う（ステップ1123）。
【０１３８】
マッチングの結果、端末300-1と端末300-2との間の暗号通信に使用可能なアルゴリズムスイートが存在しない場合、鍵生成情報管理サーバ400の鍵生成情報送受信機能405は鍵生成情報取得失敗メッセージを作成し、鍵生成情報取得応答4500として、セッション管理サーバ100-1へ返信する(ステップ1121)。存在する場合、鍵生成情報管理サーバ400のマッチング機能406は鍵生成情報305-1と鍵生成情報305-2とのマッチングにより、暗号通信に使用するアルゴリズムスイートを選択し、マッチング済鍵生成情報307を生成する。そして、鍵生成情報送受信機能405は鍵生成情報フィールド4505にマッチング済鍵生成情報307を記載した鍵生成情報取得成功メッセージを作成し(ステップ1124)、鍵生成情報取得応答4500としてセッション管理サーバ100-1へ返信する(ステップ1125) 。尚、本実施例２では、鍵生成情報取得応答4500の要求対象IDフィールド4503に、端末300-1のID304-1と端末300-2のID304-2を記載する。
【０１３９】
セッション管理サーバ100-1の鍵生成情報送受信機能106は、ステップ1121またはステップ1125で鍵生成情報管理サーバ400が送信した鍵生成情報取得応答4500を受信し（ステップ1126）、その内容を調べる（ステップ1127）。鍵生成情報取得応答4500が鍵生成情報取得失敗メッセージである場合、メッセージ送受信機能109は通信確立失敗メッセージを作成し（ステップ1128）、ステップ1046を実行する。鍵生成情報取得応答4500が鍵生成情報取得成功メッセージである場合、セッション鍵生成機能110は鍵生成情報取得応答4500の鍵生成情報フィールド4505に記載されているマッチング済鍵生成情報307を取得すると（ステップ1129）、マッチング済鍵生成情報307に記載されている設定値を基に、セッション鍵情報5000を作成する(ステップ1130)。
【０１４０】
セッション管理サーバ100-1のセッション鍵生成機能110がセッション鍵情報5000を作成後、暗号通信システムにおいて実施例１のステップ1033以降の処理が順次行なわれることにより、端末300-1と端末300-2はセッション管理サーバ100-1のセッション鍵生成機能110が生成したセッション鍵を共有し、暗号通信を開始する。
【０１４１】
以上が本実施例２において、端末300-1と端末300-2とが、セッション管理サーバ100-1やセッション管理サーバ100-2、鍵生成情報管理サーバ400を介して暗号通信のためのセッション鍵情報を共有し、暗号通信を開始する動作シーケンスである。
【０１４２】
尚、本実施例２では鍵生成情報管理サーバ400が端末300-1の鍵生成情報305-1と端末300-2の鍵生成情報305-2とのマッチングを行ったが、これ以外の方法も可能である。例えば、鍵生成情報管理サーバ400が端末300-1の鍵生成情報305-1および端末300-2の鍵生成情報305-2を取得後、鍵生成情報305-1および鍵生成情報305-2をセッション管理サーバ100-１またはセッション管理サーバ100-2へ送信する。その後セッション管理サーバ100-１またはセッション管理サーバ100-2が鍵生成情報305-1および鍵生成情報305-2を受信し、これらを基にマッチングを行う、というものである。
【０１４３】
更に、本実施例２では実施例１と同じく、セッション管理サーバ100-2がセッション鍵生成機能110およびセッション鍵記載機能111を備えている場合に、セッション管理サーバ100-2はセッション鍵情報5000を生成する事ができる。
【０１４４】
鍵生成情報管理サーバ400がセッション鍵情報5000を生成する場合は、ステップ1123の後、端末300-1と端末300-2との間の暗号通信に使用可能なアルゴリズムスイートが存在する場合に、鍵生成情報管理サーバ400が新たに備えるセッション鍵生成機能がセッション鍵情報5000を生成する。そして鍵生成情報送受信機能405はセッション鍵情報5000を記載した鍵生成情報取得成功メッセージを作成し、鍵生成情報取得応答4500としてセッション管理サーバ100-1に送信した後、実施例１のステップ1033以降の処理を順次行う。
【０１４５】
また、セッション管理サーバ100-1や鍵生成情報管理サーバ400が新たに乱数生成機能を備え、端末300-1と端末300-2がセッション鍵生成機能110を持つような場合にでも、その後端末300-1と端末300-2がセッション鍵を共有することが可能である。
【０１４６】
なお、本発明は、上述した各実施形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、上記各実施の形態を適宜組み合わせることができる。
【図面の簡単な説明】
【０１４７】
【図１】実施例１の暗号通信システムの各構成要素と機能情報を例示した図。
【図２】各構成要素のハードウェア構成図。
【図３】実施例１における、ログイン処理の全体シーケンス図。
【図４】実施例１における、セッション確立処理の全体シーケンス図。
【図５】実施例１における、端末300-1の鍵生成情報305-1および端末300-2の鍵生成情報305-2取得処理の動作シーケンス図。
【図６】実施例１における、端末300-1および端末300-2へのセッション鍵配付処理の動作シーケンス図。
【図７】ログイン処理要求2000およびログイン処理応答2500のデータ図。
【図８】通信開始要求3000および通信開始応答3500のデータ図。
【図９】鍵生成情報取得要求4000および鍵生成情報取得応答4500のデータ図。
【図１０】鍵生成情報305-1、鍵生成情報305-2、マッチング済鍵生成情報307、およびセッション鍵情報5000のデータ図。
【図１１】実施例２の暗号通信システムの各構成要素と機能情報を例示した図。
【図１２】実施例２における、ログイン処理の全体シーケンス図。
【図１３】実施例２における、セッション確立処理の全体シーケンス図。
【図１４】実施例２における、端末300-1の鍵生成情報305-1および端末300-2の鍵生成情報305-2取得処理の動作シーケンス図。
【図１５】鍵生成情報登録要求6000および鍵生成情報登録応答6500のデータ図。
【符号の説明】
【０１４８】
100：セッション管理サーバ、101、401：鍵生成情報DB、102：ログイン管理DB、103、402：鍵生成情報登録機能、104、403：鍵生成情報検索機能、105、404：鍵生成情報取得機能、106、405：鍵生成情報送受信機能、107：ログイン管理機能、108：ID検索機能、109、302：メッセージ送受信機能、110：セッション鍵生成機能、111：セッション鍵記載機能、112、406：マッチング機能300：端末、301：セッション鍵取出し機能、303：状態管理機能、304：ID、305：鍵生成情報、306：GUI画面、307：マッチング済鍵生成情報、400：鍵生成情報管理サーバ、2000：ログイン処理要求、2500：ログイン処理応答、3000：通信開始要求、3500：通信開始応答、4000：鍵生成情報取得要求、4500：鍵生成情報取得応答、5000：セッション鍵情報、6000：鍵生成情報登録要求、6500：鍵生成情報登録応答。
【図１】
0004770494.tif 000002
【図２】
0004770494.tif 000003
【図３】
0004770494.tif 000004
【図４】
0004770494.tif 000005
【図５】
0004770494.tif 000006
【図６】
0004770494.tif 000007
【図７】
0004770494.tif 000008
【図８】
0004770494.tif 000009
【図９】
0004770494.tif 000010
【図１０】
0004770494.tif 000011
【図１１】
0004770494.tif 000012
【図１２】
0004770494.tif 000013
【図１３】
0004770494.tif 000014
【図１４】
0004770494.tif 000015
【図１５】
0004770494.tif 000016