本発明は、データ通信方法およびシステムに関し、更に詳しくは、セッション管理サーバ装置を利用して、クライアント装置とサーバ装置との間での暗号化データ通信を可能にしたデータ通信方法およびシステムに関する。
ネットワークにおける暗号化通信方法では、クライアント装置(端末装置を指す。クライアントという)とサーバ装置(サーバという)は、互いに意図しない相手装置との通信を防止するため、相手装置について認証手順を実行し、相手装置の認証に成功した時、通信に使用する暗号化パラメータを交換するようにしている。IETF(Internet Engineering Task Force)のRFC2401(非特許文献1)に記述されたIPsec(Internet Protocol Security)では、通信相手の認証に公開鍵証明書が適用される。
公開鍵証明書を用いた認証では、通信相手が提示した公開鍵証明書が信頼できる認証局から発行されたものであることを何らかの方法で検証する必要がある。公開鍵証明書の検証方法の1つとしては、例えば、通信相手が提示する公開鍵証明書の発行元認証局を証明するための信頼性のある認証局root証明書を何らかの方法で事前に入手しておき、通信相手の認証手順において、相手装置が提示した公開鍵証明書に付与された認証局の署名を、認証局のroot証明書の公開鍵によって検証する方法がある。この検証方法によれば、サーバとクライアントは、通信対象となる全ての通信装置の公開鍵証明書に対応して、各公開鍵証明書の発行元認証局のroot証明書を事前に用意しておく必要がある。
例えば、複数のクライアントCL1、CL2、CL3が、それぞれ発行元認証局(CA1、CA2、CA3)の異なる秘密鍵SK1、SK2、SK3と公開鍵証明書PK1、PK2、PK3を所持し、サーバSV1、SV2、SV3も、それぞれ発行元認証局(CA1、CA2、CA3)の異なる秘密鍵SK11、SK12、SK13と公開鍵証明書PK11、PK12、PK13を所持したシステムを想定する。ここで、各クライアントが、複数のサーバSV1、SV2、SV3と随時に通信できるようにするためには、各サーバに、通信相手となる全てのクライアント装置CL1、CL2、CL3がもつ公開鍵証明書(PK1、PK2、PK3)の発行元認証局(CA1、CA2、CA3)と対応して、複数のroot証明書RT1、RT2、RT3を事前に所持しておく必要がある。同様に、各クライアントにも、通信相手となるサーバSV1、SV2、SV3がもつ公開鍵証明書(PK11、PK12、PK13)の発行元認証局(CA1、CA2、CA3)と対応して、複数のroot証明書RT1、RT2、RT3を事前に用意しておく必要がある。また、このシステム構成では、各クライアント装置とサーバは、通信相手を変えた時、その都度、認証処理を繰り返す必要がある。
上記RFC2401に記述されたIPsecによる暗号化通信を行うためにクライアントが備えるソフトウェアは、ネットワークインタフェースカード(NIC)部20、TCP/IPレイヤの暗号化通信機能部30、アプリケーション40、RFC2409(非特許文献2)に記述された鍵管理(IKE:Internet Key Exchange)プロセス用のソフトウェア部である鍵管理プロセス50から構成されている。暗号化通信機能部30の暗号エンジン31は、暗号化通信機能部30のソフトウェアの一部として装備され、送信パケットに暗号化を適用するか否かの判定情報(SP情報)を記憶したSPDB(Security Policy Data Base)32と、暗号化通信に適用する暗号化方式や暗号鍵等の情報(SA(Security Association)情報)を記憶したSADB(Security Association Data Base)33とを備えている。
上記クライアントの通信相手となるサーバも、上記と同様のソフトウェアを有し、クライアントとサーバのアプリケーションレイヤ同士、鍵管理プロセス同士が互いに通信するようになっている。
暗号エンジン31は、アプリケーションレイヤ40のプログラムが発行したIPパケットの送信要求を検出すると、該IPパケットのヘッダ情報をSPDB32で検証し、このIPパケットにIPsecを適用すべきか否かを判定する。IPパケットにIPsecを適用すると判断した暗号エンジン31は、SADB33から、IPパケットに適用すべきSA情報を取得する。ここで、もし、SADB33に上記IPパケットと対応するSA情報が登録されていなかった場合、暗号エンジン31は、IKE(鍵管理)プロセス50に対して、通信相手(接続先サーバ)との間での暗号鍵を含むSA情報の交換を要求する。
鍵管理プロセス50は、非特許文献2に従って、通信相手とSA情報を交換する。非特許文献2では、通信相手との間に暗号化通信路を形成した後、相手装置が通信を許容された真正な装置か否かを確認するための認証手順を実行することが開示されている。鍵管理プロセス50は、上記認証手順によって、相手装置が暗号化通信を許容された真正な装置であることを確認すると、上記暗号化通信路を介して、相手装置とSA情報の交換を開始する。鍵管理プロセス50は、通信相手とのSA情報の交換が完了すると、暗号エンジン31に、SA情報とこれに対応したSP(Security Policy)情報を通知する。
暗号エンジン31は、鍵管理プロセス50から通知されたSP情報とSA情報をそれぞれSPDB32、SADB33に格納した後、IPパケットを上記SA情報に従って暗号化して、通信相手に送信する。通信相手となるサーバ側では、上記暗号化されたIPパケットを受信すると、鍵管理プロセスによって合意したSA情報に従って受信IPパケットを復号化し、サーバ側アプリケーションレイヤにIPパケットの受信を通知する。
一方、RFC3261(非特許文献3)には、TLS(Transport Layer Security)によって、クライアント(ユーザエージェントクライアント)とSIP(Session Initiation Protocol)プロキシ装置(SIPプロキシという)との間、およびSIPプロキシとサーバ(ユーザエージェント・サーバ)との間の相互認証を行って、クライアントとSIPプロキシ、SIPプロキシとサーバが暗号化通信する方法が記載されている。RFC3261のSIPモデルによれば、クライアントとサーバは、それぞれがSIPプロキシによって真正な通信相手として確認済みであり、且つ、クライアントとサーバとの間では、暗号化されたSIPメッセージが送受信されるため、クライアント、サーバ、SIPプロキシ以外の他の装置が、上記クライアントとサーバとの間の通信内容を傍受することは困難となっている。
なお、SIPプロキシは、あるクライアントから別のクライアントに送信されるSIPメッセージを中継したり、サービスを提供するためにユーザを認証したり、ユーザの権限を確認したり、といった処理を行うサーバである。また、SIPのフレームワークにおいては、SIPメッセージを中継するために、クライアントの現在のネットワーク上の位置を示すネットワークアドレス(IPアドレス)を登録したり、更新したりする機能が規定されている。クライアントからのネットワーク識別子の登録要求や更新要求を処理するサーバは、レジストラ、と呼ばれる。
SIPは、テキストベースのプロトコルであり、SIPメッセージは、ヘッダ部と、セッション内容を示すメッセージボディ部とからなる。
IETF、RFC2401:Security Architecture for the Internet Protocol、[2005年11月29日検索] 、インターネット<URL:http://www.ietf.org/rfc/rfc2401.txt>
IETF、RFC2409:The Internet Key Exchange (IKE) 、[2005年11月29日検索] 、インターネット<URL:http://www.ietf.org/rfc/rfc2409.txt>http://www.ietf.org/rfc/rfc2408.txt>
IETF、RFC3261:SIP: Session Initiation Protocol、[2005年11月29日検索] 、インターネット<URL:http://www.ietf.org/rfc/rfc3261.txt>
図1は、上述したSIPプロキシを適用した認証システムの1例を示す。ここで、PRは、複数のクライアントCL1、CL2、CL3と、複数のサーバSV1、SV2、SV3とに接続されたSIPプロキシを示す。SIPプロキシPRは、認証局CA4が発行した秘密鍵SK30と、公開鍵証明書PK30を使用しており、サーバSV1、SV2、SV3を認証するために、これらのサーバが使用する公開鍵証明書の発行元認証局(CA1、CA2、CA3)と対応した複数のroot証明書RT1、RT2、RT3を予め所持している。
SIPプロキシを適用した認証システムでは、各サーバとクライアントは、図1に示すように、通信相手を認証するためのroot証明書として、SIPプロキシPRが使用する公開鍵証明書PK30の発行元認証局と対応したroot証明書RT4を所持すればよい。また、各クライアントは、SIPプロキシPRを介して1つのサーバと通信した後、接続先を別のサーバに変更する場合、SIPプロキシとの間では既に構築済みの暗号通信路を使用して通信できるため、新たな通信相手との間で暗号化パラメータを交換するだけで、暗号化通信を開始することが可能となる。つまり、SIPプロキシを適用した認証システムでは、各クライアントにとって、接続先サーバの変更の都度、新たに認証処理を行う必要がないという利点がある。
然るに、SIPのフレームワークにおいては、SIPプロキシの機能を備えたセッション管理サーバ(SIPのフレームワークにおいては、SIPサーバとも称する)は、AOR(Address-of-Record)と呼ばれる「ユーザ名@ドメイン名」 形式をもつ接続先識別子(SIP−URI)によって、受信SIPメッセージの転送先を決定している。従って、上述したSIPプロキシのようなセッション管理サーバ経由のセッション設定を前提としたネットワークシステムでは、クライアント上で実行されるアプリケーションは、接続先サーバを指定するための識別子として、サーバの所属ドメインを特定可能なSIP−URI(Uniform Resource Identifier)を使用する必要がある。
更に詳述すると、SIPのフレームワークにおいては、クライアント側では、スタートラインに含まれるRequest−URIとして、接続先サーバを指定するAOR形式のSIP−URIを記述した接続要求SIPメッセージを生成し、該SIPメッセージをペイロードに含むIPパケットをクライアントの所属ドメインに位置するSIPプロキシ宛に送信する。上記IPパケットを受信したSIPプロキシは、Request−URIとして記述されたAORが示すドメイン名に基づいて、例えば、DNS(Domain Name System)のNAPTR Record検索とSRV Record検索を行うことにより、受信メッセージの転送先サーバが所属する他のドメインに位置したSIPプロキシ(転送先SIPプロキシ)のIPアドレスあるいはFQDN(Full Qualified Domain Name)を特定する。SRV Record検索の結果がFQDNを示した場合は、DNSのA Record検索を実行することによって、転送先SIPプロキシのIPアドレスを取得できる。
ここで、接続先サーバの所属ドメインが、SIPメッセージを受信したSIPプロキシの所属ドメインと同一であった場合、SIPプロキシは、受信メッセージのRequest−URIに記述されたSIP−URIを検索キーとして、ロケーションサービスDB(データベース)から接続先サーバのIPアドレス(またはFQDN)を取得し、このIPアドレスをIPパケットの宛先アドレスとして、SIPメッセージを接続先サーバに転送する。接続先サーバの所属ドメインがSIPプロキシ(または送信元クライアント)の所属ドメインと異なった場合は、SIPメッセージは、接続先サーバの所属ドメインに位置した別のSIPプロキシに転送され、転送先のSIPプロキシが、ロケーションサービスDBから接続先サーバのIPアドレスまたはFQDNを取得して、SIPメッセージを接続先サーバに転送する。
上述したように、セッション管理サーバ(SIPプロキシ)経由のセッション設定を前提とするネットワークでは、セッション管理サーバが、受信したSIPメッセージに含まれる接続先識別子(SIP−URI)から、接続先サーバが所属するドメインを判定し、受信メッセージを接続先サーバあるいは接続先セッション管理サーバに転送するようになっている。
しかしながら、IP網に接続されるクライアント端末上で実行される一般のアプリケーションプログラムは、接続先サーバの指定に、上述したAOR形式のSIP−URIのようにSIPのフレームワークにおける識別子ではなく、IPアドレスのように接続先サーバを示す識別子を使用したり、URLなどのようにドメイン名を含んでいても、SIP−URIとは異なるフレームワークの識別子を使用したりしている。
アプリケーションプログラムまたは暗号化通信ソフトが、接続先サーバをIPアドレスやURLで指定してサーバとの接続要求を発行し、クライアントが、接続先サーバをIPアドレスやURLで指定した形で接続要求SIPメッセージを送信した場合、セッション管理サーバ(SIPプロキシ)は、受信した接続要求メッセージの転送先ドメインを特定することができない。この場合、クライアントが図1に示した認証システムの利点を享受できないという問題がある。
本発明は、セッション管理サーバが採用しているものとは異なる、接続先の装置をIPアドレスやURLのような、アプリケーションが相手を識別するために使用する識別子(以降、サービス識別子とも呼ぶ)で指定したセッション制御メッセージをセッション管理サーバ経由で接続先サーバに転送可能にしたデータ通信方法およびシステムを提供する。
本発明は、また、接続先サーバをサービス識別子で指定したクライアントからの接続要求をセッション管理サーバ経由で当該接続先サーバに転送可能にしたデータ通信方法およびシステムを提供する。
本発明は、また、クライアントとサーバとの間の暗号化データ通信を可能にし、且つ、暗号化データ通信に先立って必要となるクライアントとサーバとの間の認証手順を容易にしたデータ通信方法およびシステムを提供する。
具体的には、本発明は、複数の識別情報管理サーバがそれぞれ異なる接続先識別子に関するサービス識別子を管理している場合に、当該サービス識別子の接続先識別子を取得するために問い合わせるべき管理サーバを、サービス識別子の管理ドメインとして管理するドメイン管理テーブルを設ける。クライアントが接続先サーバをサービス識別子で指定した接続要求を発行した時、クライアントから要求を受信した第一の管理サーバが、ドメイン管理テーブルを検索して上記サービス識別子の管理ドメインを見つけ、当該管理ドメインの第二の管理サーバが上記サービス識別子を接続先識別子に変換することを特徴とする。
たとえば、本発明は、複数のドメインからなる通信ネットワークと、それぞれのドメインを管理する管理サーバと、互いに異なるドメインに接続されたクライアントとサービスサーバとからなる通信システムにおける、クライアントと接続先サーバとの間のデータ通信方法であって、クライアントが、サービス識別子を指定して、当該サービス識別子が割り当てられた上記接続先サーバの、所属ドメイン名を含む接続先識別子を、上記クライアントが所属するドメインを管理する第一の上記管理サーバに問い合わせる第1ステップと、上記クライアントから問合せを受けた第一の上記管理サーバが、サービス識別子とその所属ドメインとの対応関係を管理しているドメイン管理テーブルから、上記接続先サーバの所属ドメイン名を取得し、当該所属ドメインを管理する第二の上記管理サーバに、上記接続先サーバのサービス識別子を指定して、該接続先サーバに割り当てられた、当該接続先サーバの所属ドメイン名を含む接続先識別子を問い合わせる第2ステップと、上記第二の上記管理サーバが、上記サービス識別子と接続先識別子との対応関係を管理している識別情報管理テーブルから、上記接続先サーバのサービス識別子と対応する接続先識別子を取得し、上記クライアントに通知する第3ステップと、上記クライアントが、上記第一の管理サーバに、取得した上記接続先サーバの接続先識別子を含む接続要求メッセージを送信する第4ステップと、上記第一の管理サーバが、受信した上記接続要求メッセージに記述された上記接続先識別子に含まれるドメイン名に基づいて受信した上記接続要求メッセージの送信先を判定し、上記接続要求メッセージを上記接続先サーバ、または該接続先サーバの所属ドメインを管理する上記第二の管理サーバに転送する第5ステップと、からなることを特徴とする。
更に詳述すると、本発明のデータ通信方法は、上記接続先サーバが、上記接続要求メッセージの受信に応答して、上記管理サーバを介して、上記要求元クライアントに、暗号化通信に必要となるパラメータ情報を含む接続応答メッセージを返送する第6ステップと、上記クライアントと上記接続先サーバとの間で、上記接続応答メッセージで指定されたパラメータ情報に従って暗号化されたメッセージを通信する第7ステップと、を含むことを特徴とする。
上記管理サーバは、当該クライアントまたは接続先サーバが所属するドメインの通信セッションを管理するセッション管理サーバであってもよいし、当該クライアントまたは接続先サーバが所属するドメインの識別情報を管理する識別情報管理サーバであってもよい。
例えば、セッション管理サーバが上記管理サーバである場合、本発明によるクライアントとサーバとの間のデータ通信方法は、クライアントから第一のセッション管理サーバに、接続先のサービス識別子を指定して、該接続先サーバに割り当てられた所属ドメイン名を含む接続先識別子を問い合わせるAOR取得要求メッセージを送信する第1ステップと、上記第一のセッション管理サーバが、サービス識別子と、当該サービス識別子の管理ドメインをドメイン管理テーブルから上記サービス識別子の管理ドメインを取得し、当該管理ドメインに属する第二のセッション管理サーバに上記AOR取得要求メッセージを転送する第2ステップと、
上記第二のセッション管理サーバが、サービス識別子と接続先識別子との対応関係を管理しているロケーションテーブルから、上記接続先サーバのサービス識別子と対応する接続先識別子を取得し、上記クライアントに当該接続先識別子を含む、AOR取得応答メッセージを送信する第3ステップと、上記クライアントから上記セッション管理サーバに、要求リソースを上記接続先サーバの接続先識別子で指定した接続要求メッセージを送信する第4ステップと、上記第一のセッション管理サーバが、受信した接続要求メッセージに記述された上記接続先識別子に含まれるドメイン名に基づいて受信メッセージの転送先を判定し、受信メッセージを接続先サーバまたは該接続先サーバの所属ドメインを管理する別のセッション管理サーバに送信する第5ステップと、からなることを特徴とする。
更に詳述すると、上記のデータ通信方法は、接続要求メッセージの受信に応答して、上記第二のセッション管理サーバが接続先サーバに暗号化通信に必要となるパラメータ情報を送信する第6ステップと、上記第一のセッション管理サーバが上記クライアントに暗号化通信に必要となるパラメータ情報を送信する第7ステップと、上記クライアントと接続先サーバとの間で、上記接続応答メッセージで指定されたパラメータ情報に従って暗号化されたメッセージを含むパケットを通信する第8ステップと、を含むことを特徴とする。
また、識別情報管理サーバが上記管理サーバである場合、本発明によるクライアントとサーバとの間のデータ通信方法は、クライアントから第一の識別情報管理サーバに、接続先のサービス識別子を指定して、該接続先サーバに割り当てられた所属ドメイン名を含む接続先識別子を問い合わせる、第一のAOR取得要求メッセージを送信する第1ステップと、上記第一の識別情報管理サーバが、ドメイン管理テーブルから上記サービス識別子の管理ドメインを取得し、当該管理ドメインに属する第二の識別情報管理サーバに上記第一のAOR取得要求メッセージに含まれるサービス識別子の接続先識別子を問い合わせる、第二のAOR取得要求メッセージを作成して送信する第2ステップと、上記第二の識別情報管理サーバが、サービス識別子と接続先識別子との対応関係を管理しているロケーションテーブルから、上記接続先サーバのサービス識別子と対応する接続先識別子を取得し、当該接続先識別子を含む第一のAOR取得応答メッセージを上記第一の識別情報管理サーバに送信する第3ステップと、上記第一の識別情報管理サーバが上記第一のAOR取得応答メッセージの記述内容に基づいて作成した、上記接続先識別子を含む第二のAOR取得応答メッセージを上記クライアントに送信する第4ステップと、上記クライアントから上記第一の識別情報管理サーバに、上記接続先サーバの接続先識別子を含む第一の接続要求メッセージを送信する第5ステップと、上記第一のセッション管理サーバが、受信した第一の接続要求メッセージに記述された上記接続先識別子に含まれるドメイン名に基づいてメッセージの送信先を判定し、上記第一の接続要求メッセージの記載内容に基づいて作成した第二の接続要求メッセージを接続先サーバまたは該接続先サーバの所属ドメインに存在する第二の識別情報管理サーバに送信する第6ステップと、からなることを特徴とする。
更に詳述すると、上記のデータ通信方法は、接続要求メッセージの受信に応答して、上記第二のセッション管理サーバが接続先サーバに暗号化通信に必要となるパラメータ情報を送信する第7ステップと、上記第一のセッション管理サーバが上記クライアントに暗号化通信に必要となるパラメータ情報を送信する第8ステップと、上記クライアントと接続先サーバとの間で、上記接続応答メッセージで指定されたパラメータ情報に従って暗号化されたメッセージを含むパケットを通信する第9ステップと、を含むことを特徴とする。
また、上記のデータ通信方法は、クライアントがデータ通信を終了する場合に、クライアントが切断処理を開始することを通知する、第一の切断開始要求メッセージを上記第一の識別情報管理サーバに送信する第10ステップと、上記第一の切断開始要求メッセージの記載内容に基づいて作成した、第二の切断開始要求メッセージを接続先サーバまたは該接続先サーバの所属ドメインに存在する上記第二の識別情報管理サーバに送信する第11ステップと、を含むことを特徴とする。
また、上記セッション管理サーバは、例えば、SIP(Session Initiation Protocol)サーバからなる。この場合、クライアントとセッション管理サーバとの間の通信メッセージは、例えば、RFC3261に規定されたTLS(Transport Layer Security)によって暗号化され、クライアントと接続先サーバとの間の通信データは、例えば、RFC2401に規定されたIPsec(Internet Protocol Security)によって暗号化される。それぞれの暗号化プロトコルが上記に限定されないのは勿論である。
本発明によって提供される管理サーバは、それぞれのドメインを管理する管理サーバであって、複数のドメインからなる通信ネットワークにおいて、クライアントおよびサーバと通信し、サービス識別子とその所属ドメインとの対応関係を管理しているドメイン管理テーブルを備え、上記クライアントから、サービス識別子を指定して、当該サービス識別子が割り当てられた上記接続先サーバの所属ドメイン名を含む、接続先識別子の問い合わせを受信した場合に、上記ドメイン管理テーブルから、上記接続先サーバの所属ドメイン名を取得し、当該所属ドメインを管理する他の管理サーバに、上記接続先サーバのサービス識別子を指定して、該接続先サーバに割り当てられた、当該接続先サーバの所属ドメイン名を含む接続先識別子を問い合わせ、上記他の管理サーバから、上記問い合わせた接続先サーバの接続先識別子を取得し、取得した上記接続先識別子を上記クライアントに通知し、上記クライアントから、通知した上記接続先サーバの接続先識別子を含む接続要求メッセージを受信した場合に、受信した上記接続要求メッセージに記述された上記接続先識別子に含まれるドメイン名に基づいて、受信した上記接続要求メッセージの送信先を判定し、上記接続要求メッセージを、上記接続先サーバまたは該接続先サーバの所属ドメインを管理する上記他の管理サーバに転送することを特徴とする。
上記態様によれば、クライアントのアプリケーションプログラムまたは暗号化通信ソフトから、要求リソース(接続先サーバ)をサービス識別子で指定した形で接続要求が発行された場合でも、接続要求メッセージの要求リソースをサービス識別子からドメイン識別可能な接続先識別子に自動的に変換できる。従って、接続要求メッセージを転送制御するセッション管理サーバにおいて、受信メッセージの接続先識別子から転送先ドメインを判定し、受信メッセージを接続先サーバ、または接続先サーバの所属ドメインに位置した別のセッション管理サーバに転送することが可能となる。
また、上記態様によれば、一般のアプリケーションプログラムを実行するクライアントでも、セッション管理サーバによる認証機能を利用することによって、接続先サーバとの間で容易に暗号化通信を実現できる。
また、上記態様によれば、上記サービス識別子の管理ドメイン毎に異なる識別情報管理サーバで管理することができる。また、サービス識別子から管理ドメインを検索できる。従って、クライアントの数が多くなった場合にも管理ドメインを分けることによって性能劣化を防ぐことができる。
本発明によれば、接続先をアプリケーション固有の識別情報で指定したセッション制御メッセージをセッション管理サーバ経由で接続先に転送することが可能となり、各クライアントが、接続先サーバの変更の都度、新たに認証処理を行う必要がなくなる。
以下、本発明の実施例について図面を参照して説明する。
以下の各実施例における各装置は、例えば、図4にその構成例を示すような、プロセッサ(CPU)11と、プロセッサ11が実行する各種ソフトウェア(プログラム)とデータを記憶するためのメモリ12および/またはハードディスク13と、ネットワークNW1(NW2)に接続するためのネットワークインタフェース14と、マウス、キーボードなどの入力装置、表示装置、そして外部記憶媒体の読み書き装置を含む入出力装置15とからなり、これらの構成要素がバスなどの内部通信線(バスという)16によって相互接続されている一般的な電子計算機上に実現されるものである。
すなわち、以下の各実施例における各装置が備える処理部とその処理は、それぞれの装置においてハードディスク13またはメモリ12に格納された必要なプログラムを必要なタイミングでプロセッサ11が実行することにより、実現される。これらのプログラムは予め、各装置のハードディスク13またはメモリ12に格納されていても良いし、必要なときに、当該装置が利用可能な媒体を介して、他の装置から上記記憶部に導入されてもよい。媒体とは、たとえば、入出力装置15にて利用可能な着脱可能な記憶媒体、またはネットワークインタフェース14を介して利用可能な通信媒体(すなわちネットワークまたはネットワークを伝搬する搬送波やディジタル信号)を指す。また,上述の各々の処理部を集積回路などのハードウェアとして構成することも可能である。
また、以下の実施例に於いて使用しているドメイン名、URL、URI、IPアドレス等の識別子は、説明のために用いる架空のものであり、実在するものがあったとしても関係はない。
図2は、本発明が適用されるシステム構成の一例を示す。
ここに示したネットワークは、SIPサーバ装置(以下、SIPサーバという)SIPaが管理する第1ドメインを形成する第1のネットワークNW1と、SIPサーバSIPbが管理する第2ドメインを形成する第2のネットワークNW2と、ロケーションサーバ装置(以下、ロケーションサーバという)LSVと、DNS(Domain Name System)装置(以下、DNSという)とからなる。
第1のネットワークNW1には、クライアントCL1a、CL2aと、サーバSV1a、SV2aが接続され、第2のネットワークNW2には、クライアントCL1b、CL2bと、サーバSV1b、SV2bが接続されている。また、SIPサーバSIPaは、SIPプロキシPRaとレジストラPGaとからなり、SIPサーバSIPbは、SIPプロキシPRbとレジストラPGbとからなっている。SIPプロキシPRa,PRbとレジストラPGa,PGbは、それぞれが独立した装置であってもよいし、SIPサーバSIPa,SIPbに含まれる処理部であってもよい。
ここで、各クライアントおよびサーバに付随して括弧内に示した文字列は、SIPメッセージの転送先識別子(接続先識別子)となるAOR(Address-of-Record)形式のSIP−URIの値を示している。第1ネットワークNW1に接続されたクライアントとサーバには、SIPサーバSIPaのドメイン識別子「aaa.com」を含むAORが割り当てられ、第2ネットワークNW2に接続されたクライアントとサーバには、SIPサーバSIPbのドメイン識別子「bbb.com」を含むAORが割り当てられている。
本発明のSIPサーバSIPa、SIPbは、それぞれの管轄下にあるクライアントから、接続先サーバをURLで指定したSIPメッセージを受信した時、ロケーションサーバLSVに、上記接続先URLと対応するAOR(接続先識別子)の検索(ロケーションデータ検索)を要求する。また、SIPサーバSIPa、SIPbは、それぞれ他のSIPサーバから、接続先サーバをAORで指定したSIPメッセージを受信した時、ロケーションサーバLSVに、上記接続先AORと対応するIPアドレスの検索を要求する。
ロケーションサーバLSVは、ロケーションサービス・データベース(DB)に、例えば、図3に示すように、SIPサーバSIPa、SIPbの管轄下にあるクライアントおよびサーバと対応した複数のエントリEN−1、EN−2,・・・からなり、各エントリが、クライアントまたはサーバという、通信相手の装置を識別するサービス識別子としてのAOR62とIPアドレスなどのネットワークアドレス(以下、IPアドレスという)63との対応関係を示すロケーションサービステーブル61を格納する。
また、ロケーションサーバLSVは、SIPサーバSIPa、SIPbの管轄下にあるクライアントおよびサーバと対応した複数のエントリREN−1、REN−2,・・・からなり、各エントリが、クライアントまたはサーバのアプリケーションプログラムや暗号化通信ソフトが通信相手の装置が提供するサービスを識別するために用いる識別子であるサービス識別情報65と、AOR62との対応関係を示す識別情報管理テーブル64と、を備えている。
ロケーションサーバLSVは、SIPサーバからの検索キーとしてAORを指定されたロケーションデータ検索要求を受信した場合、上記ロケーションサービステーブル61から、当該AORと対応するIPアドレスを検索し、検索結果を要求元SIPサーバに返送する。
同様に、ロケーションサーバLSVは、SIPサーバからの検索キーとしてURL等のサービス識別子を含むサービス識別情報65を指定されたロケーションデータ検索要求を受信した場合、上記識別情報管理テーブル64から、当該サービス識別情報65と対応するAORを検索し、検索結果を要求元SIPサーバに返送する。
なお、本実施例では、サービス識別情報65にはURLやURIやIPアドレスなどが使用可能である。サービス識別情報65はこれらURL等に限られず、それぞれの装置に独自に割り当てられ互いに識別が可能な情報であればよい。なお、IPアドレスを使用する場合には、URLやURIとの区別を容易にするため、IPアドレスの先頭に「ipv4:」や「ipv6:」などのプレフィックスをつけることが望ましい。
以下、図2に示した第1ドメインに所属するクライアントCL1aが、第2ドメインに所属するサーバSV1bと暗号化データ通信する場合の通信手順を例にして、本発明の第1の実施例について説明する。
図5は、クライアントCL1aの基本的なソフトウェア構造の一例を示す。他のクライアントCL1b〜CL2bも、これと同様のソフトウェア構造をとりうる。クライアントCL1aのソフトウェアは、ネットワークインタフェースカード部(NIC)20Cと、暗号化/復号化機能を備えた暗号エンジン31Cを含む暗号化通信機能部30Cと、アプリケーションプログラム40Cと、鍵管理プロセス部50Cとからなる。第1実施例では、鍵管理プロセス部50Cが、暗号化通信制御部51Cと、TLS(Transport Layer Security)部52Cと、SIPメッセージ処理部53Cとを備えたことを特徴としている。
図6は、サーバSV1bの基本的なソフトウェア構造の一例を示す。他のサーバSV1a、SV2a、SV2bも、これと同様のソフトウェア構造をとりうる。サーバSV1bのソフトウェアは、ネットワークインタフェースカード部(NIC)20Sと、IPsec暗号化/復号化機能を備えた暗号エンジン31Sを含む暗号化通信機能部30Sと、アプリケーションプログラム40Sと、鍵管理プロセス部50Sとからなり、鍵管理プロセス部50Sが、暗号化通信制御部51Sと、TLS部52Sと、SIPメッセージ処理部53Sとを備えている。
本実施例では、クライアントCL1aのアプリケーションプログラム40CとサーバSV1bのアプリケーションプログラム40Sは、それぞれが備える暗号エンジン31C、31SのIPsec暗号化/復号化機能を利用して、IPsecによる暗号化データを通信する。一方、クライアントCL1aのSIPメッセージ処理部53Cは、後述するSIPサーバSIPa(SIPプロキシPRa、レジストラRGa)のSIPメッセージ処理部との間で、それぞれが備えるTLS部のメッセージ暗号化/復号化機能を利用して、暗号化されたSIPメッセージを通信する。同様に、サーバSV1bのSIPメッセージ処理部53Sも、SIPサーバSIPa(SIPプロキシPRa、レジストラRGa)のSIPメッセージ処理部との間で、それぞれが備えるTLS部のメッセージ暗号化/復号化機能を利用して、暗号化されたSIPメッセージを通信する。
図7は、SIPプロキシPRaの基本的なソフトウェア構造の一例を示す。SIPプロキシPRbも、これと同様のソフトウェア構造をとりうる。SIPプロキシPRaのソフトウェアは、ネットワークインタフェースカード部(NIC)20Pと、暗号化通信機能部30Pと、鍵管理プロセス部50Pとからなる。鍵管理プロセス部50Pが、TLS部52Pと、SIPメッセージ処理部53Pとを備えている。SIPメッセージ処理部53Pは、後述するSIP−URI(AOR)検索機能54を備えている。SIPプロキシPRaのSIPメッセージ処理部53Pは、TLS部52Pのメッセージ暗号化/復号化機能を利用して、管理下にあるドメインに所属したクライアント、サーバ、および他のドメインを管理する他のSIPプロキシ、例えばPRbと暗号化メッセージを通信する。
図8は、レジストラRGaの基本的なソフトウェア構造の一例を示す。レジストラRGbも、これと同様のソフトウェア構造をとりうる。レジストラRGaのソフトウェアは、ネットワークインタフェースカード部(NIC)20Rと、暗号化通信機能部30Rと、メッセージの暗号化/復号化機能を備えたTLS部52Rと、SIPメッセージ処理部53Rと、レジストラ処理部60Rとからなっている。SIPメッセージ処理部53Rは、クライアントが発行したAOR取得要求、またはSIPプロキシPRaが発行したAOR取得要求を受信すると、レジストラ処理部60Rにロケーションデータの検索を要求する。レジストラ処理部60Rは、SIPメッセージ処理部53Rからの要求に応答して、ロケーションサーバLSVが備えるロケーションサービスDBをアクセスする。尚、レジストラRGaとSIPプロキシPRaとの間の通信には、暗号化を適用しなくてもよい。
図9と図10は、本発明による暗号化データ通信の第1の実施例を示すシーケンス図である。第1の実施例では、クライアントCL1aがAOR取得要求を発行する。本実施例において、クライアントCL1aからの接続要求先となる第2ネットワークに接続されたサーバSV1bは、クライアントCL1aからの接続要求に先立って、SIPサーバSIPbのレジストラRGbとの間で、サーバSV1bの認証と暗号化通信用のパラメータ設定のためのTLSネゴシェーション(S1)を実行した後、レジストラRGbにロケーション登録要求メッセージ(SIPメッセージ:REGISTER)M1を送信する。
ロケーション登録要求メッセージM1は、例えば、図11に示すように、IPヘッダH1と、UDP/TCPヘッダH2とを付したIPパケット形式で送信される。IPヘッダH1は、宛先アドレスとしてレジストラRGb(SIPサーバSIPb)のIPアドレス、送信元アドレスとしてサーバSV1bのIPアドレスを含む。
SIPメッセージは、SIPメッセージの種類(Request-Method)を示すスタートラインと、要求または応答内容を記述したメッセージヘッダ部と、必要に応じてセッション内容を記述したメッセージボディ部とからなる。メッセージの種類によっては、上記スタートラインに、該メッセージの宛先を示す接続先識別子(Request-URI)が記述される。(なお、以下では、スタートラインとメッセージヘッダ部をまとめて、ヘッダ部、と称する。また、メッセージボディ部を単に、ボディ部、とも称する。)
サーバSV2bが発行するロケーション登録要求メッセージM1の場合、スタートラインには、SIPメッセージの種類として「REGISTER」、メッセージ宛先を示す接続先識別子として、レジストラRGbのSIP−URIである「registrar.bbb.com」が含まれる。また、スタートラインに続くメッセージヘッダ部には、SIPメッセージの経路を示すViaヘッダ、メッセージの宛先を示すToヘッダ、メッセージの送信元を示すFromヘッダ、送信元で指定したセッション識別子を示すCall−IDヘッダ、要求メソッドを示すCSecヘッダ、ロケーションサービステーブルに登録すべきサーバSV1bのIPアドレス「sv1@192.0.2.4」を含むContactヘッダ、メッセージの有効時間を示すExpiresヘッダ、後続するメッセージボディ部の長さを示すContent−Lengthヘッダ、その他のヘッダ情報が含まれる。
本実施例のロケーション登録要求メッセージM1の場合、メッセージボディ部にはサーバSV1bのサービス識別情報65のリストが含まれる。Content−Lengthヘッダにはメッセージボディ部の長さとして値「46」が設定され、ToヘッダとFromヘッダには、要求元サーバSV1bのSIP−URIの値「sv1@bbb.com」が設定されている。
レジストラRGbは、上記ロケーション登録要求メッセージM1を受信すると、ロケーションサービスDBのロケーションサービステーブル61に、受信メッセージのFromヘッダが示す要求元SIP−URI「sv1@bbb.com」とContactヘッダが示す要求元IPアドレス「sv1@192.0.2.4」との関係を示すロケーションデータを登録するとともに、識別情報管理テーブル64に、受信メッセージのメッセージボディ部に含まれている各々のサービス識別情報65と受信メッセージのFromヘッダが示す要求元SIP−URI「sv1@bbb.com」との関係を示す識別情報データを登録する(S2)。
データの登録が完了すると(S3)、要求元サーバSV2bに、図11に示すロケーション登録応答メッセージM2を送信する。ロケーション登録応答メッセージM2のスタートラインは、SIPメッセージの種類として、応答メッセージであることを示す「200 OK」を含み、メッセージヘッダ部には、ロケーション登録要求メッセージM1と同一内容のヘッダ情報が設定される。
この状態で、クライアントCL1aのユーザが、アプリケーションプログラムを立ち上げ、サーバSV1bのURL「http://www.bbb.com/」宛に通信を要求する操作を行った場合について説明する。本発明の第1の実施例では、クライアントCL1aが、SIPサーバSIPa(レジストラRGa)との間で、クライアントの認証と暗号化通信用のパラメータ設定のためのTLSネゴシェーション(S4)を実行した後、SIPサーバSIPa(レジストラRGa)にAOR(Address-of-Record)取得要求メッセージ(SIPメッセージ:GET AOR)M3を送信する。
上記AOR取得要求メッセージM3は、本実施例で新たにSIPを拡張して作成したメッセージであり、例えば、図12に示すように、スタートラインに、SIPメッセージ種類を示す「GET AOR」と、レジストラRGaのSIP−URIである「registrar.aaa.com」を含み、Viaヘッダは、クライアントCL1aの暗号化通信制御部51Cの識別子となるURIの値を示している。また、Toヘッダには、クライアントCL1aの接続相手となるサーバSV1bのURL「http://www.bbb.com/」が設定され、Fromヘッダには、クライアントCL1aのURI「cl1@aaa.com」が設定されている。
レジストラRGaは、AOR取得要求メッセージM3を受信すると、ロケーションサービスDBの識別情報管理テーブル64から、受信メッセージのToヘッダが示すURL「http://www.bbb.com/」と対応するAOR(サーバSV1bのURI)の値を検索し(S5)、ロケーションデータAORの検索が完了すると(S6)、要求元クライアントCL1aにAOR取得応答メッセージM4を送信する。
AOR取得応答メッセージM4は、図12に示すように、スタートラインに、メッセージ種類が応答メッセージであることを示す「200 OK」を含み、メッセージヘッダ部には、AOR取得要求メッセージM3と略同一内容のヘッダ情報と、識別情報管理テーブル64から検索されたサーバSV1bのSIP−URIの値「sv1@bbb.com」を示すAORヘッダが記述されている。
上記AOR取得応答メッセージM4の受信によって接続先サーバSV1bのSIP−URIを取得したクライアントCL1aは、SIPサーバSIPaのSIPプロキシPRaとの間で、クライアントの認証と暗号化通信用のパラメータ設定のためのTLSネゴシェーション(S7)を実行した後、SIPプロキシPRaに対して、サーバSV1bへの接続要求メッセージM5を送信する。
接続要求メッセージM5は、接続要求メッセージのヘッダ部M5−1とボディ部M5−2とからなり、接続要求メッセージのヘッダ部M5−1は、スタートラインに、メッセージ種類「INVITE」と、Request−URIとして、メッセージ宛先となるサーバSV1bのSIP−URI「sv1@bbb.com」を含む。
また、メッセージヘッダ部に、クライアントCL1aにおけるSIPメッセージ処理部53CのSIP−URIを示すViaヘッダ、サーバSV1bのSIP−URI「sv1@bbb.com」を含むToヘッダ、クライアントCL1aのSIP−URI「cl1@aaa.com」を含むFromヘッダと、Content−Typeヘッダ、Content−Lengthヘッダ、その他の情報を含む。Content−Typeヘッダは、ボディ部M5−2が関係するアプリケーションプログラムを示し、Content−Lengthヘッダは、ボディ部M5−2の長さを示している。
接続要求メッセージM5のボディ部M5−2は、例えば、図13に示すように、クライアントCL1aとサーバSV1bとの間での暗号化通信に適用するSA情報として、IKEにおける通常のIPsec用SA設定時と同様、暗号化プロトコルの識別情報を示すプロポーザルペイロード91と、トランスフォーム識別情報を示すトランスフォームペイロード92、鍵交換ペイロード93、要求元の識別情報を示す第1IDペイロード94と、接続先の識別情報を示す第2IDペイロード95を含んでいる。
図13では、クライアントCL1aが、2つのトランスフォームペイロード92−1、92−2で、トランスフォームIDとして「ESP-AES」と「ESP-3DES」を提案しており、そのうちの1つを接続先サーバSV1bが選択して、接続応答メッセージでクライアントに通知することになる。尚、第1IDペイロード94のIDデータは、要求元クライアントCL1aのIPアドレスを示し、第2IDペイロード95のIDデータは、接続先サーバSV1bのIPアドレスを示す。なお、本実施例のクライアントCL1aは、接続先サーバSV1bのIPアドレスとして、サーバSV1bのURL「http://www.bbb.com/」に対応するIPアドレスをDNSから取得する。
SIPプロキシPRaは、上記接続要求メッセージM5を受信すると、要求元クライアントCL1aにサーバSV1bと接続中であることを通知するために、接続中メッセージM6を送信した後、接続先サーバSV1bが所属するドメインのSIPプロキシPRbとの間で、相互の認証と暗号化通信用のパラメータ設定のためのTLSネゴシェーション(S8)を実行する。
接続中メッセージM6は、スタートラインに、メッセージ種類として、要求を実行中であることを示す「100 Trying」を含み、メッセージヘッダ部に、接続要求メッセージM5から抽出されたVia、To、From、Call−ID、CSec等の数項目のヘッダ情報を含み、メッセージボディ部は省略されている。
SIPプロキシPRaは、SIPプロキシPRbとの間のTLSネゴシェーションが終わると、クライアントから受信した接続要求メッセージM5に、自分のSIP−URI「proxy.aaa.com」を含む新たなViaヘッダと、接続要求がURI「proxy.aaa.com」を経由したことを示すRecord−Routeヘッダを追加し、接続要求メッセージM7として、SIPプロキシPRbに送信する。
SIPプロキシPRbは、上記接続要求メッセージM7を受信すると、受信メッセージのスタートラインから宛先URI「SV1@bbb.com」を抽出し、図10に示すように、ロケーションサーバLSVに対して、ロケーションサービスDBからの上記宛先URIと対応したIPアドレスの検索(ロケーションデータ検索)を要求する(S9)。SIPプロキシPRbは、ロケーションサービスDBの検索結果を示すロケーションデータ(IPアドレス「sv1@192.0.2.4」)を受信すると(S10)と、上記接続要求メッセージM7の要求元SIPプロキシPRaに対して、接続中メッセージM8を送信した後、IPアドレス「sv1@192.0.2.4」で特定される接続先サーバSV1bとの間で、相互の認証と暗号化通信用のパラメータ設定のためのTLSネゴシェーション(S11)を実行する。
SIPプロキシPRbは、接続先サーバSV1bとの間のTLSネゴシェーションが終了すると、接続要求メッセージM7のRequest−URIをIPアドレス「sv1@192.0.2.4」に書き換え、自分のSIP−URI「proxy.bbb.com」を含む新たなViaヘッダと、接続要求がURI「proxy.bbb.com」を経由したことを示すRecord−Routeヘッダを追加し、接続要求メッセージM9として接続先サーバSV1bに送信する。
接続先サーバSV1bは、上記接続要求メッセージM9に応答して、接続応答メッセージM10を返信する。接続応答メッセージM10は、ヘッダ部M10−1とボディ部M10−2とからなり、ヘッダ部M10−1のスタートラインには、メッセージ種類として、応答メッセージであることを示す「200 OK」を含み、メッセージヘッダ部には接続要求メッセージM9と同様の複数項目のヘッダ情報を含む。
また、ボディ部M10−2は、例えば、図14に示すように、接続要求メッセージM10のボディ部M5−2で提案された2つのトランスフォームペイロード92−1、92−2のうち、サーバSV1bが選択した1つのトランスフォームペイロード(この例では、EPS-AES)を残している。
SIPプロキシPRbは、接続応答メッセージM10を受信すると、受信メッセージのヘッダ部から自URIを含むViaヘッダを除去し、接続応答メッセージM11に変換して、SIPプロキシPRaに送信する。SIPプロキシPRaは、接続応答メッセージM11を受信すると、受信メッセージのヘッダ部から自URIを含むViaヘッダを除去し、接続応答メッセージM12に変換して、要求元クライアントCL1aに送信する。
要求元クライアントCL1aは、接続応答メッセージM12を受信すると、受信メッセージのボディ部M10−2を解析して、接続先サーバSV1bとのIPsec通信に適用すべきSA情報を決定し、これをSADB33Cに登録した後、接続確認メッセージM13をSIPプロキシPRaに送信する。接続確認メッセージM13は、スタートラインに、メッセージ種類「ACK」と、Request−URIとしてサーバSV1bのSIP−URIを含み、メッセージヘッダ部に、Via、To、From、Call−ID、CSec、Routeヘッダを含み、メッセージボディ部は省略されている。Routeヘッダには、接続応答メッセージM12のRecord−Routeヘッダから抽出されたURIの値が設定される。
上記接続確認メッセージM13は、SIPプロキシPRaで新たなViaヘッダを追加し、SIPプロキシPRaと対応するRouteヘッダを除去して、接続確認メッセージM14としてSIPプロキシPRbに転送される。SIPプロキシPRbは、接続確認メッセージM14に新たなViaヘッダを追加し、SIPプロキシPRbと対応するRouteヘッダを除去し、接続確認メッセージM15に変換して接続先サーバSV1bに転送する。
サーバSV1bが上記接続確認メッセージM15を受信することによって、クライアントCL1aとサーバSV1bは、IPsec暗号化を適用したアプリケーション間のデータ通信(S20)が可能となる。すなわち、クライアントCL1aは、サーバSV1bへの送信データをSADB33Cに登録されているSA情報に従って暗号化し、これをIPパケット形式で送信する。サーバSV1bは、クライアントCL1aからの受信データをSADB33Vに登録されているSA情報に従って復号化し、クライアントCL1aへの送信データを上記SA情報に従って暗号化して、IPパケット形式で送信できる。
クライアントCL1aは、サーバSV1bとの間でのデータ通信が終了すると、SIPプロキシPRaに対して、切断要求メッセージM20を送信する。切断要求メッセージM20は、スタートラインに、メッセージ種類「BYE」とサーバSV1bのSIP−URIを含み、メッセージヘッダ部に接続確認メッセージM13と同様、Via、To、From、Call−ID、CSec、Routeヘッダを含み、メッセージボディ部は省略される。
SIPプロキシPRaは、上記切断要求メッセージM20を受信すると、要求元のクライアントVL1aに対して、切断中メッセージM21を送信した後、切断要求メッセージM20に新たなViaヘッダを追加し、SIPプロキシPRaと対応するRouteヘッダを除去し、切断要求メッセージM22として、SIPプロキシPRbに送信する。切断中メッセージM21は、スタートラインに、メッセージ種類として、要求を実行中であることを示す「110 Trying」を含み、メッセージヘッダ部に、切断要求メッセージM20から抽出されたVia、To、From、Call−ID、CSec等の数項目のヘッダ情報を含み、メッセージボディ部は省略されている。
SIPプロキシPRbは、上記切断要求メッセージM22を受信すると、SIPプロキシPRaに対して、切断中メッセージM23を送信した後、切断要求メッセージM22に新たなViaヘッダを追加し、SIPプロキシPRbと対応するRouteヘッダを除去し、切断要求メッセージM24として、サーバSV1bに送信する。
サーバSV1bは、切断要求メッセージM24を受信すると、切断応答メッセージM25をSIPプロキシPRbに送信する。切断応答メッセージM25は、スタートラインに、メッセージ種類として、応答を示す「200 OK」を含み、メッセージヘッダ部に、切断要求メッセージM24から抽出されたVia、To、From、Call−ID、CSec等の数項目のヘッダ情報を含み、メッセージボディ部は省略されている。
SIPプロキシPRbは、切断応答メッセージM25を受信すると、受信メッセージのヘッダ部から自URIを含むViaヘッダを除去し、切断応答メッセージM26に変換して、SIPプロキシPRaに送信する。SIPプロキシPRaは、切断応答メッセージM26を受信すると、受信メッセージのヘッダ部から自URIを含むViaヘッダを除去し、切断応答メッセージM27に変換して、要求元クライアントCL1aに送信する。要求元クライアントCL1aは、上記切断応答メッセージM27を受信すると、IPsec暗号化/復号化を終了し、同一または別のアプリケーションによる新たなパケット送信要求を待つ。
次に、図15〜図25を参照して、上述した本発明の第1実施例の暗号化データ通信を可能にするクライアントCL1a、SIPサーバSIPa(SIPプロキシPRa、レジストラRGa)、サーバSV2bの制御動作について説明する。
クライアントCL1aの暗号エンジン31Cは、アプリケーション40CからサーバSV1bのURL宛への通信要求を検出すると、上記URLとの通信に暗号化処理を適用するか否かの判定を、鍵管理プロセス50Cに要求する。ここで、鍵管理プロセス50Cが暗号化通信適用要と判定した場合、暗号エンジン31Cは、DNSにより上記SIP−URIに対応するIPアドレスを取得する。そして暗号エンジン31Cは、SADB(Security Association Data Base)33Cから、上記IPアドレスとの通信に適用すべき暗号鍵などのSA(Security Association)情報を検索し、当該SA情報を用いてアプリケーション40CからサーバSV1bに宛てられた通信データを暗号化したり、サーバSV1bからアプリケーション40Cに宛てられた通信データを復号したりする。一方、SADB33Cに上記IPアドレスとの通信に適用すべきSA情報が未登録の場合、暗号化通信制御部51Cは、アプリケーション40CからサーバSV1bに宛てられた通信データや、サーバSV1bからアプリケーション40Cに宛てられた通信データを廃棄するよう決定する。
図15は、クライアントCL1aにおいて、暗号エンジン31が発行する暗号化通信適用可否判定の要求に応答して暗号化通信制御部51Cが実行する制御動作のフローチャート100を示す。
本実施例では、暗号エンジン31Cからの暗号化通信適用要否判定の要求を暗号化通信制御部51Cで処理する。暗号化通信制御部51は、暗号化通信適用可否判定要求を受信すると、暗号化通信適用可否判定要求が示すURLに対応する、AOR形式のSIP−URI取得をSIPメッセージ処理部53Cに要求し(ステップ101)、SIPメッセージ処理部53Cからの応答を待つ(102)。次に、暗号化通信制御部51は、SPDB(Security Policy Data Base)32Cを参照して、SIPメッセージ処理部53Cからの応答に含まれる、上記URLに対応するSIP−URIに対する暗号化通信の適用の要否判定する。ここで、暗号化通信を適用すべきと判断した場合、鍵管理プロセス50Cは、SADB(Security Association Data Base)33Cから、上記SIP−URIに適用すべき暗号鍵などのSA(Security Association)情報を検索する。ここで、SADB33Cに当該通信に適用すべきSA情報が未登録の場合、暗号化通信制御部51Cは、通信相手との暗号化パラメータの交換(鍵交換)を実施する。
暗号化通信制御部51Cは、DNS等を参照して取得した、上記URLが示すTCP/IP通信パラメータと、暗号化通信制御部51Cが管理している利用可能なSA情報とに基づいて、図13に例示した接続要求メッセージのボディ部M5−2を作成し(ステップ103)、該接続要求メッセージボディ部M5−2と上記SIP−URIとをSIPメッセージ処理部53Cに渡し(104)、SIPメッセージ処理部53Cからの接続応答メッセージボディ部の受信を待つ(105)。
暗号化通信制御部51Cは、SIPメッセージ処理部53Cから、図14に例示した接続応答メッセージボディ部M10−2を受信すると、受信した接続応答メッセージボディ部を解析し、今回の暗号化通信に使用すべきSA情報を決定し(、SADB33Cに設定する(106)と、暗号エンジン31Cに暗号化通信の適用要否判定結果を通知する(107)。
図16は、暗号化通信制御部51CからSIP−URI取得を要求された場合、SIPメッセージ処理部53Cが実行する制御動作のフローチャート110を示す。
SIPメッセージ処理部53Cは、暗号化通信制御部51CからURLを受信すると、図12に例示したAOR取得要求メッセージM3を作成し(ステップ111)、該メッセージをTLS部52C、暗号化通信機能部部30C、NIC部20Cを介して、クライアントCL1aと同一ドメインに位置するSIPサーバSIPa(レジストラRGa)宛に送信する(112)。このとき、TLS部52Cは、レジストラRGaとの間でTLSネゴシェーション(図9のS5)を実行した後、TLS暗号化されたAOR取得要求メッセージM3を暗号化通信機能部30C、NIC部20Cを介してレジストラRGaに送信する。上記AOR取得要求メッセージM3は、暗号化通信機能部30Cによって、SIPサーバSV1宛の宛先IPアドレスを含むIPヘッダH1とUDP/TCPヘッダH2とが付加され、IPパケット形式でネットワークNW1に送出される。
SIPメッセージ処理部53Cは、レジストラRGaからのAOR取得応答メッセージを待っており(113)、AOR取得応答メッセージを受信すると、受信メッセージを解析し(114)、AORヘッダから接続先サーバに割り当てられたAOR形式のSIP−URIを抽出する(115)。
SIPメッセージ処理部53Cは、暗号化通信制御部51Cから接続要求メッセージのボディ部とSIP−URIとを受信すると、上記SIP−URIをスタートラインとToヘッダに適用して、ヘッダ部M5−1と暗号化通信制御部51Cから受信したボディ部M5−2とからなる接続要求メッセージM5を作成する(116)。
SIPメッセージ処理部53Cは、上記接続要求メッセージをTSL部52C、暗号化通信機能部30C、NIC部20Cを介して、SIPサーバSIPaのSIPプロキシPRa宛に送信し(117)、SIPプロキシPRaからの応答を待つ(118)。SIPプロキシPRaから接続中メッセージM6を受信した場合は、接続中メッセージ処理(119)を実行した後、SIPプロキシPRaからの次の応答を待つ。
SIPメッセージ処理部53Cは、SIPプロキシPRaから接続応答メッセージM12を受信すると、受信メッセージを解析し(120)、受信メッセージから抽出した図14に例示した接続応答メッセージボディ部M12−2を暗号化通信制御部51Cに渡す(121)。この後、SIPメッセージ処理部53Cは、図27に例示した接続確認メッセージM13を作成し、これをTSL部52C、暗号化通信機能部30C、NIC部20Cを介して、SIPプロキシPRa宛に送信し(122)、このルーチンを終了する。
図17は、AOR取得要求メッセージM3を受信した時、レジストラRGaのSIPメッセージ処理部53Rが実行する制御動作のフローチャート200を示す。レジストラRGaのSIPメッセージ処理部53Rは、受信したAOR取得要求メッセージM3を解析し(ステップ201)、Toヘッダが示す接続先サーバSV1bのURLを検索キーとして、ロケーションデータ検索クエリを作成し(202)、レジストラ処理部60Rを介して、上記検索クエリをロケーションサーバLSVに送信し(203)、ロケーションサーバからの応答を待つ(204)。
SIPメッセージ処理部53Rは、レジストラ処理部60Rを介して、ロケーションサーバLSVからロケーションデータを受信すると、受信データが示すSIP−URIをAORヘッダとして含む図12に例示したAOR取得応答メッセージM4を作成し(205)、該メッセージM4を暗号化通信機能部30R、NIC部20Rを介してAOR取得要求メッセージM3の送信元(この例では、クライアントCL1a)に送信し(206)、このルーチンを終了する。
図18は、クライアントCL1aから接続要求メッセージM5を受信した時、SIPプロキシPRaのSIPメッセージ処理部53Pが実行する制御動作のフローチャート300を示す。SIPプロキシPRaのSIPメッセージ処理部53Pは、クライアントCL1aからの接続要求メッセージM5を受信すると、受信メッセージを解析し(ステップ301)、受信メッセージのスタートラインに記述されたRequest−URIをチェックして(302)、上記Request−URIが示すドメイン名から、受信メッセージの転送先を判定する(303)。
受信メッセージの転送先が他のドメインに所属していると判定された場合、SIPメッセージ処理部53Pは、DNS検索(NAPTR検索+SRV検索+A検索)等によって、受信メッセージの転送先ドメインのSIPサーバ(SIPプロキシ)を決定する(304)。図9で示した例では、DNS検索によって、接続要求メッセージM5の転送先が、SIPプロキシPRbであることが判明する。この場合、SIPメッセージ処理部53Pは、図19で例示した接続中メッセージM6をTLS部52P、暗号化通信機能部30P、NIC部20Pを介して、接続要求メッセージM5の送信元であるクライアントCL1aに送信(305)した後、接続要求メッセージM5に新たなViaヘッダを付加した形の接続要求メッセージM7をSIPプロキシPRbに転送して(306)、SIPプロキシPRbからの応答を待つ(307)。
SIPメッセージ処理部53Pは、SIPプロキシPRbから接続中メッセージM8を受信すると、接続中メッセージ処理(308)を実行した後、SIPプロキシPRbからの次の応答を待つ。SIPメッセージ処理部53Pは、SIPプロキシPRbから接続応答メッセージM11を受信すると、受信メッセージを解析し(309)、受信メッセージから自SIP−URIを含むViaヘッダを除去し、接続応答メッセージM12として、接続要求元(クライアントCL1a)に転送する(310)。この後、SIPメッセージ処理部53Pは、接続要求元(クライアントCL1a)からの応答を待つ(311)。SIPメッセージ処理部53Pは、接続確認メッセージM13を受信すると、受信メッセージを解析し(312)、受信メッセージに自分のSIP−URIを含む新たなViaヘッダを付加し、接続確認メッセージM13として、SIPプロキシPRbに転送して(313)、このルーチンを終了する。
判定ステップ303で、クライアント端末CL1aから受信した接続要求メッセージの転送先が、例えば、サーバSV1a(またはSV2a)のように、SIPプロキシPRaと同一ドメインに所属していると判定された場合、SIPメッセージ処理部53Pは、受信メッセージのRequest−URIが示すSIP−URIを検索キーとするロケーションデータ(IPアドレス)検索クエリを作成し(315)、該ロケーションデータ検索クエリをロケーションサーバLSVに送信して(316)、ロケーションサービス応答を待つ(317)。
SIPメッセージ処理部53Pは、ロケーションサーバLSVからロケーションデータを受信すると、上記ロケーションデータが示す接続先サーバのIPアドレスを宛先IPアドレスに適用して、接続要求メッセージをIPパケット形式でネットワークNW1に送信し(318)、接続先サーバからの応答を待つ(319)。上記接続要求メッセージには、SIPプロキシPRaのSIP−URIを含む新たなViaヘッダが付加されている。
接続先サーバから接続応答メッセージを受信すると、SIPメッセージ処理部53Pは、受信メッセージを解析し(320)、自分と対応するViaヘッダを除去した形の接続応答メッセージを接続要求元に転送して(321)、接続要求元(クライアントCL1a)からの応答を待つ(322)。SIPメッセージ処理部53Pは、接続要求元から接続確認メッセージを受信すると、受信メッセージを解析し(323)、新たなViaヘッダを付加した形の接続確認メッセージを接続先サーバに転送して(324)、このルーチンを終了する。
図19は、接続先サーバSV1bのSIPメッセージ処理部53Sが、SIPプロキシPRbから接続要求メッセージM9を受信した時に実行する制御動作のフローチャート400を示す。SIPプロキシPRbから接続先サーバSV1bに送信された接続要求メッセージM9は、TLS部52Sで復号した後、SIPメッセージ処理部53Sに入力される。SIPメッセージ処理部53Sは、接続要求メッセージM9を受信すると、受信メッセージを解析し(ステップ401)、受信メッセージから抽出した接続要求メッセージボディ部M5−2を暗号化通信制御部51Sに渡し(402)、暗号化通信制御部51Sからの応答を待つ(403)。
SIPメッセージ処理部53Sは、暗号化通信制御部51Sから接続応答メッセージボディ部M10−2を受信すると、図25に例示した接続応答メッセージM11を作成する(404)。SIPメッセージ処理部53Sは、TLS部、暗号化通信機能部部、NIC部を介して、上記接続応答メッセージM11をSIPプロキシPRbに転送し(405)、SIPプロキシPRbからの応答を待つ(406)。SIPメッセージ処理部53Sは、SIPプロキシPRbから、接続確認メッセージM15を受信すると、受信メッセージを解析し(407)、接続確認メッセージM15を受信したことを暗号化通信制御部51Sに通知して(408)、このルーチンを終了する。
図20は、SIPメッセージ処理部53Sから接続要求メッセージボディ部M5−2を受信した時、サーバSV1bの暗号化通信制御部51Sが実行する制御動作の示すフローチャート420を示す。
暗号化通信制御部51Sは、SIPメッセージ処理部53Sから受信した接続要求メッセージボディ部M5−2を解析し(ステップ421)、接続要求メッセージボディ部M5−2に記述されたSA情報(図13の例では、トランスフォームペイロード92−1、92−2)から、クライアントとの暗号化通信に適用すべきSAを選択して、図14に例示した接続応答メッセージのボディ部M10−2を作成する(422)。暗号化通信制御部51Sは、上記接続応答メッセージボディ部M10−2をSIPメッセージ処理部53Sに渡し(423)、SIPメッセージ処理部53Sからの応答を待つ(424)。暗号化通信制御部51Sは、SIPメッセージ処理部53Sから接続確認メッセージの受信通知を受けると、SADB33SにSA情報を設定して(425)、このルーチンを終了する。
図21は、クライアントCL1aにおいて、暗号エンジン31Cが発行する通信終了要求に応答して暗号化通信制御部51Cが実行する制御動作のフローチャート130を示す。クライアントCL1aのユーザが、サーバSV1bと交信していたアプリケーションを終了すると、暗号エンジン31Cから暗号化通信制御部51Cに、通信終了要求が発行される。SA/SP制御部51Cは、暗号エンジン31Cから通信終了要求を受信すると、SIPメッセージ処理部53Cに、切断要求メッセージの発行を要求し(131)、SIPメッセージ処理部53Cからの応答を待つ(132)。SA/SP制御部51Cは、SIPメッセージ処理部53Cから切断応答メッセージの受信通知を受けると、上記暗号鍵消去要求と対応するSADB33Sの設定値を消去し(133)、このルーチンを終了する。
図22は、SA/SP制御部51Cから切断要求メッセージの発行要求を受信した時にSIPメッセージ処理部53Cが実行する制御動作のフローチャート140を示す。SIPメッセージ処理部53Cは、SA/SP制御部51Cから切断要求メッセージの発行要求を受信すると、切断要求メッセージM20を作成し(ステップ141)、TLS部52C、暗号化通信機能部30Cの暗号エンジン31C、NIC部20Cを介して、上記切断要求メッセージM20のIPパケットをSIPサーバSIPa(SIPプロキシPRa)に送信する(142)。
SIPメッセージ処理部53Cは、SIPプロキシPRaからの応答を待ち(143)、切断中メッセージM21を受信した場合は、切断中メッセージ処理(144)を実行した後、SIPプロキシPRaからの次の応答を待つ。SIPメッセージ処理部53Cは、SIPプロキシPRaから切断応答メッセージM27を受信すると、受信メッセージを解析し(145)、暗号化通信制御部51Cに切断応答メッセージの受信を通知し(146)、このルーチンを終了する。
図23は、クライアントから切断要求メッセージM20を受信した時にSIPプロキシPRaのSIPメッセージ処理部53Pが実行する制御動作のフローチャート340を示す。SIPメッセージ処理部53Pは、受信した切断要求メッセージM20を解析し(ステップ341)、受信メッセージのRequest−URIをチェックする(342)。SIPメッセージ処理部53Pは、Request−URIに記述されたドメイン名から、受信メッセージの転送先を判定し(343)、転送先が他のドメインに所属していると判定された場合、DNS検索(NAPTR検索+SRV検索+A検索)等によって、受信メッセージの転送先ドメインのSIPサーバ(SIPプロキシ)を決定する(344)。
図10で示した例では、上記DNS検索によって、切断要求メッセージM20の転送先が、SIPプロキシPRbであることが判明する。この場合、SIPメッセージ処理部53Pは、TLS部52P、暗号化通信機能部30P、NIC部20Pを介して、切断要求メッセージM20の送信元であるクライアントCL1aに、切断中メッセージM21を送信(345)した後、切断要求メッセージM20に新たなViaヘッダを付加し、SIPプロキシPRaに対応するRouteヘッダを除去した切断要求メッセージM22をSIPプロキシPRbに転送し(346)、SIPプロキシPRbからの応答を待つ(347)。
SIPメッセージ処理部53Pは、SIPプロキシPRbから切断中メッセージM23を受信すると、切断中メッセージ処理(348)を実行した後、SIPプロキシPRbからの次の応答を待つ。SIPメッセージ処理部53Pは、SIPプロキシPRbから切断応答メッセージM26を受信すると、受信メッセージを解析し(349)、受信メッセージから自SIP−URIを含むViaヘッダを除去し、切断応答メッセージM27として、切断要求元(クライアントCL1a)に転送し(350)、このルーチンを終了する。
尚、判定ステップ343で、もし、クライアント端末CL1aから受信した切断要求メッセージM20の転送先が、SIPプロキシPRaと同一ドメインに所属していると判定された場合、SIPメッセージ処理部53Pは、受信メッセージのRequest−URIが示すSIP−URIを検索キーとするロケーションデータ(IPアドレス)検索クエリを作成し(351)、該検索クエリをロケーションサーバLSVに送信して(352)、ロケーションサービス応答を待つ(353)。
SIPメッセージ処理部53Pは、ロケーションサーバLSVからロケーションデータを受信すると、上記ロケーションデータが示すサーバIPアドレスを宛先IPアドレスに適用して、切断要求メッセージのIPパケットをネットワークNW1に送信し(354)、サーバからの応答を待つ(355)。尚、上記切断要求メッセージには、SIPプロキシPRaのSIP−URIを含む新たなViaヘッダが付加されている。切断要求メッセージの宛先サーバから切断応答メッセージを受信すると、SIPメッセージ処理部53Pは、受信メッセージを解析し(356)、自分のViaヘッダを除去した切断応答メッセージを切断要求元に転送し(357)、このルーチンを終了する。
図24は、SIPプロキシから切断要求メッセージM24を受信した時、サーバSV1bのSIPメッセージ処理部53Sが実行する制御動作のフローチャート430を示す。SIPメッセージ処理部53Sは、TLS部52Sを介して切断要求メッセージM24を受信すると、受信メッセージを解析し(ステップ431)、暗号化通信制御部51Sに対して、切断すべき通信の識別情報(例えば、Call−ID)を指定して、切断要求の受信を通知し(432)、暗号化通信制御部51Sからの応答を待つ(433)。SIPメッセージ処理部53Sは、暗号化通信制御部51Sから切断応答を受信すると、切断応答メッセージM25を作成し(434)、TLS部、暗号化通信機能部、NIC部を介してSIPプロキシPRbに転送し(435)、このルーチンを終了する。
図25は、SIPメッセージ処理部53Sから切断要求の発生を通知された時、暗号化通信制御部51Sが実行する制御動作のフローチャート440を示す。暗号化通信制御部51Sは、通知された通信識別情報にもとづいて、SADB33Sから消去すべきSA情報を特定し(ステップ441)、当該SA情報を消去し(442)、このルーチンを終了する。
なお、本実施例では、登録要求メッセージのボディ部にサービス識別情報65を含め、登録要求メッセージを解析することによって、識別情報管理テーブル64を更新するようにしている。しかしながら、本発明はこれに限定されず、識別情報管理テーブル64、あるいはその一部のエントリは、ロケーションサーバLSVの管理者によって予め値が設定されていてもよい。
次に、図26から図30を参照して、本発明による暗号化データ通信の第2の実施例について説明する。上述した第1の実施例では、識別情報管理テーブル64で識別情報とSIP−URIとの関連を検索する場合に検索用のSIPメッセージを使用し、SIPプロキシPRが当該SIPメッセージのヘッダに基づいて、識別情報管理テーブル64を検索していた。また、クライアントやサーバと、SIPサーバとの間の通信はTLSで保護していた。
本発明の第2の実施例では、識別情報管理テーブル64へのロケーション情報の登録や削除、および識別情報管理テーブル64の検索を行う、識別情報管理サービス提供部(以下、識別情報管理サービスという)66が動作する識別情報管理サーバ装置(以下、識別情報管理サーバという)ISVを、設けたことを特徴とする。 図29は、識別情報管理サーバISVの機能構成例を示す。識別情報管理サーバISVaは、ネットワークインタフェースカード部(NIC)20Iと、暗号化通信機能部30Iと、鍵管理プロセス部50Iと、識別情報管理サービス66からなり、鍵管理プロセス部50Iが、TLS部52Iと、SIPメッセージ処理部53Iとを備え、識別情報管理サービス66が識別情報管理テーブル64を備えている。
本発明の第2の実施例におけるネットワーク構成は、図26に示すように、SIPサーバSIPaが管理するネットワークNW1と、ロケーションサーバLSVと、DNS(Domain Name System)と、識別情報管理サーバISVと、からなる。
ネットワークNW1には、クライアントCL1a、CL2aと、サーバSV1a、SV2aが接続されている。また、SIPサーバSIPaは、SIPプロキシPRaとレジストラPGaとからなっている。
なお、本実施例の識別情報管理サーバISVには、「agent@aaa.com」というSIP−URIが割り当てられている。本実施例のクライアントCLやサーバSVは当該SIP−URIにロケーション登録や登録解除を要求するSIPメッセージを送信することによって、識別情報管理テーブル64の内容を更新する。また、本実施例のクライアントCLやサーバSVは上記SIP−URIにAOR取得を要求するSIPメッセージを送信することによって、識別情報管理テーブル64の内容を検索する。
図27は、本発明の第2の実施例における暗号化通信シーケンス図を示す。図9、図10と同一符号で示された第1実施例で説明済みのステップとメッセージについては説明を省略する。本発明の第2の実施例では、まず、サーバSV1aが、クライアントCL1aからの接続要求に先立って、SIPサーバSIPaのレジストラRGaとの間で、サーバSV1aの認証と暗号化通信用のパラメータ設定のためのTLSネゴシェーション(S1)を実行した後、レジストラRGbにロケーション登録要求メッセージM1を送信する。
レジストラRGaは、上記ロケーション登録要求メッセージM1を受信すると、ロケーションサービスDBのロケーションサービステーブル61に、受信メッセージのFromヘッダが示す要求元SIP−URI「sv1@aaa.com」とContactヘッダが示す要求元IPアドレス「sv1@192.0.2.4」との関係を示すロケーションデータを登録し(S101)、データの登録が完了すると(S102)、要求元サーバSV2aに、ロケーション登録応答メッセージM102を送信する。
ロケーション登録応答メッセージM2を受信したサーバSV1aは、次に、識別情報管理サーバISV宛の識別情報登録メッセージM101(SIPメッセージ:MESSAGE)をSIPサーバSIPaに送信する。
上記識別情報登録メッセージM101は、例えば、図28に示すように、スタートラインに、SIPメッセージの種類を示す「MESSAGE」と、識別情報管理サーバISVのSIP−URIである「agent@aaa.com」を含み、Viaヘッダは、サーバSV1aのFQDNの値を示している。また、Toヘッダには、識別情報管理サーバISVのSIP−URIである「agent@aaa.com」が設定され、Fromヘッダには、サーバSV1aのSIP−URI「sips:sv1@aaa.com」が設定されている。さらに、メッセージの有効時間を示すExpiresヘッダ、後続するメッセージボディ部の長さを示すContent−Lengthヘッダ、その他のヘッダ情報が含まれる。識別情報登録要求メッセージM101のメッセージボディ部にはサーバSV1aのサービス識別情報65のリストが含まれる。
識別情報登録要求メッセージM101を受信したSIPサーバSIPaは、上記識別情報登録要求メッセージM101の宛先である「agent@aaa.com」をキーとしてロケーションデータベースを検索し(S103)、識別情報管理サーバISVのIPアドレス「192.168.0.3」を取得する(S104)と、当該IPアドレスに識別情報登録要求メッセージM102を送信する(M102)。
識別情報登録要求メッセージM102を受信した識別情報管理サーバISVは、当該識別情報登録要求メッセージM102のボディ部の各サービス識別情報65を上記識別情報登録要求メッセージM101の送信元のSIP−URI「sips:sv1@aaa.com」と関連付けて、識別情報管理テーブル64に格納すると、図28に示す、サーバSV1a宛の識別情報登録応答メッセージM103(SIPメッセージ:200 OK)をSIPサーバSIPaに送信する。識別情報登録応答メッセージM103のスタートラインは、SIPメッセージの種類として、応答メッセージであることを示す「200 OK」を含み、メッセージヘッダ部には、ロケーション登録要求メッセージM1と同一内容のヘッダ情報が設定される。
識別情報登録応答メッセージM103を受信したSIPサーバSIPaは、上記識別情報登録要求メッセージM103の送信元である「sips:sv1@aaa.com」に識別情報登録応答メッセージM104を送信する(M104)。
この状態で、クライアントCL1aのユーザが、アプリケーションプログラムを立ち上げ、サーバSV1aのURL「http://www.aaa.com/」宛に通信を要求する操作を行った場合、第2の実施例では、クライアントCL1aが、SIPサーバSIPa(レジストラRGa)との間で、クライアントの認証と暗号化通信用のパラメータ設定のためのTLSネゴシェーション(S4)を実行した後、SIPサーバSIPaに識別情報管理サーバISV宛のAOR(Address-of-Record)取得要求メッセージ(SIPメッセージ:INFO)M105を送信する。
上記AOR取得要求メッセージM105は、例えば、図30に示すように、スタートラインに、SIPメッセージ種類を示す「INFO」と、識別情報管理サーバISVのSIP−URIである「sips:agent@aaa.com」を含み、Viaヘッダは、クライアントCL1aのFQDNの値を示している。また、Toヘッダには、クライアントCL1aの接続相手となるサーバSV1aのURL「http://www.aaa.com/」が設定され、Fromヘッダには、クライアントCL1aのURI「sips:cl1@aaa.com」が設定されている。
AOR取得要求メッセージM105を受信したSIPサーバSIPaは、上記識別情報登録メッセージM105の宛先である「agent@aaa.com」をキーとしてロケーションデータベースを検索し(S105)、識別情報管理サーバISVのIPアドレスを取得する(S106)と、当該IPアドレスに識別情報登録要求メッセージM105を送信する(M106)。
AOR取得要求メッセージM105を受信した識別情報管理サーバISVは、ドメイン管理DBのドメイン管理テーブル64から、受信メッセージのToヘッダが示すURL「http://www.bbb.com/」と対応するAOR(サーバSV1aのURI)の値を検索し、ロケーションデータAORの検索が完了すると、SIPサーバSIPaを介して要求元クライアントCL1aにAOR取得応答メッセージM107を送信する。
AOR取得応答メッセージM107は、図30に示すように、スタートラインに、メッセージ種類が応答メッセージであることを示す「200 OK」を含み、メッセージヘッダ部にはAOR取得要求メッセージM105と同一内容のヘッダ情報が記載され、ボディ部には識別情報管理テーブル64から検索されたサーバSV1aのSIP−URIの値「sv1@aaa.com」を示す値が記述されている。
上記AOR取得応答メッセージM107の受信によって接続先サーバSV1aのSIP−URIを取得したクライアントCL1aは、SIPプロキシPRaに対して、サーバSV1aへの接続要求メッセージM5を送信する。
以降の動作は、第一の実施例の動作と同じであるので、説明を省略する
尚、実施例では、SIPメッセージのRequest−URIやToヘッダにIPアドレスを適用する時、例えば、図12や図28の「sips:192.0.2.4」のように記述した。この場合、SIPメッセージを受信したSIPプロキシ、レジストラまたはサーバ側では、着目フィールドにおける「sips:」に続く文字列が、3桁以下の数字をドットで区切ったIPアドレス表記となっているか否かによって、SIP−URI記述かIPアドレス記述かを判定できる。SIP−URI記述かIPアドレス記述かを判定を確実にするためは、例えば、「sips:192.0.2.4;id=ipv4」のように、URIパラメータを使用して、AOR解決を必要とするSIP−URIであることを明示するようにしてもよい。また、例えば、「ipv4:192.0.2.4」のように、着目フィールドでIPv4(またはIPv6)というスキームを検出した場合は、その後にIPアドレスが記述されているものと約束してもよい。
さらには、実施例では、クライアントのアプリケーションプログラムが接続先サーバのIPアドレス宛にパケットを送信する操作を行った場合に、接続先サーバのIPアドレスに対応するSIP−URIを取得するためのAOR取得要求メッセージをSIPサーバに送信するようにしているが、本発明はこれに限定されず、当該アプリケーションプログラムが使用している任意の体系のサービス識別子から、当該サービス識別子に対応する接続先識別子(接続先サーバを識別するためにセッション管理サーバが採用している識別子)を取得するために適用することができる。例えば、クライアントのアプリケーションプログラムが接続先サーバを指定する情報を含むURLへの接続を要求する操作を行った場合に、当該URLに対応するSIP−URIを取得するためのAOR取得要求メッセージをSIPサーバに送信するようにしてもよい。このとき、前記URLは事前にSIPサーバに登録するようにしてもよいし、接続先サーバがロケーション登録を行う際のロケーション登録要求メッセージに当該接続先サーバがアクセス可能なURLのリストを含めるようにしてもよい。
さらには、実施例では、クライアントやサーバとSIPサーバとの間の通信はTLSによって保護しているが、本発明はこれに限定されず、S/MIMEによって保護してもよい。また、第2の実施例では、クライアントやサーバと識別情報管理サーバISVとの間でS/MIMEで保護されたSIPメッセージを送受するようにしても良い。
次に、本発明による暗号化データ通信の第3の実施例について説明する。第3の実施例では、ロケーションサーバや識別情報管理サーバは複数存在し、個々のロケーションサーバや識別情報管理サーバはそれぞれ異なるSIP−URIに関するロケーション情報や識別情報を管理している。
そのため、本第3の実施例では、ロケーション情報や識別情報からSIP−URIを取得するために問い合わせるべきロケーションサーバや識別情報管理サーバを管理ドメインとして記録したドメイン管理テーブル68を備えたドメイン管理サーバ装置(以下、ドメイン管理サーバという)DSVを設けたことを特徴とする。
図35は、ドメイン管理サーバDSVの機能構成例を示す。ドメイン管理サーバDSVは、ネットワークインタフェースカード部(NIC)20Dと、暗号化通信機能部30Dと、鍵管理プロセス部50Dと、ドメイン管理サービス提供部(以下、ドメイン管理サービスという)67からなり、鍵管理プロセス部50Dが、TLS部52Dを備え、ドメイン管理サービス67がドメイン管理テーブル68を備えている。
図31は、本実施例が適用されるシステム構成の1例を示す。
ここに示したシステムは、SIPサーバSIPaが管理する第1ドメインを形成する第1のネットワークNW1と、SIPサーバSIPbが管理する第2ドメインを形成する第2のネットワークNW2と、SIPサーバSIPaがロケーション情報を記録するロケーションサーバLSVaと、SIPサーバSIPbがロケーション情報を記録するロケーションサーバLSVbと、SIPサーバSIPaが識別情報を記録する識別情報管理サーバISVaと、SIPサーバSIPbが識別情報を記録する識別情報管理サーバISVbと、SIPサーバSIPaに管理ドメインの情報(ドメイン情報)を提供するドメイン管理サーバDSVaと、SIPサーバSIPbにドメイン情報を提供するドメイン管理サーバDSVbと、からなる。
第1のネットワークNW1には、クライアントCL1a、CL2aと、サーバSV1a、SV2aが接続され、第2のネットワークNW2には、クライアントCL1b、CL2bと、サーバSV1b、SV2bが接続されている。また、SIPサーバSIPaは、SIPプロキシPRaとレジストラPGaとからなり、SIPサーバSIPbは、SIPプロキシPRbとレジストラPGbとからなっている。
なお、本実施例の識別情報管理サーバISVaには「agent@aaa.com」というSIP−URIが、識別情報管理サーバISVbには「agent@bbb.com」というSIP−URIが、それぞれ割り当てられている。
図32は、本第3の実施例における暗号化通信シーケンスを示した図である。図9、図10、図27と同一符号で示された第1および第2の実施例で説明済みのステップとメッセージについては説明を省略する。
なお、本第3の実施例で暗号化通信を確立、または、切断するためにクライアントCL、SIPサーバSIP、識別情報管理サーバISV、サーバSVの間で送受されるメッセージは、非特許文献3で定義されたSIPメッセージに準拠したメッセージであり、SIPメッセージのボディに暗号化通信設定など暗号化通信を確立、または、切断するための情報を格納している。
本第3の実施例では、まず、サーバSV1bに電源が投入され、プロセッサ11が鍵管理プロセス50Sの処理を開始すると、サーバSV1bのTLS部52SがレジストラRGbとの間でTLSネゴシェーション(S1)を実行し、TLSセッションが確立すると、SIPメッセージ処理部53SがレジストラRGbにロケーション登録要求メッセージ(SIPメッセージ:REGISTER)M1を送信して、ロケーションサーバのロケーションサービステーブル61にロケーションデータを登録する(S101)。さらに、SIPメッセージ処理部53Sは識別情報管理サーバISV宛の識別情報登録メッセージ(SIPメッセージ:MESSAGE)M101をSIPサーバSIPbに送信し、識別情報管理テーブル64にサービス識別情報65を格納する。
図33は、本実施例のロケーションサーバLSVb、識別情報管理サーバISVb、ドメイン管理サーバDSVaが管理している、ロケーションサービステーブル61、識別情報管理テーブル64、ドメイン管理テーブル68の一例を示す図である。ロケーションサービステーブル61のエントリ(EN−3)には、サーバSV1bのIPアドレス(192.168.2.4)がサーバSV1bのSIP−URI(sv1@bbb.com)と関連付けて登録されている。また、図33の識別情報管理テーブル64のREN-1、REN-2には、サーバSV1bの識別情報として、「http://www.bbb.com」や「ftp://ftp.bbb.com/」がサーバSV1bのSIP−URI(sv1@bbb.com)と関連付けて登録されている。
同様に、クライアントCL1aもレジストラRGaとの間でTLSネゴシェーションを実行し、ロケーションサーバLSVa、識別情報管理サーバISVaにロケーション情報、識別情報を登録する。
上述のように、本実施例では、サーバSVやクライアントCLの電源が投入されると自動的にロケーションサービステーブル61や識別情報管理テーブル64が最新の状態に更新されるようにしている。
なお、本実施例では、サーバSVやクライアントCLは、ロケーション登録要求メッセージや識別情報登録メッセージの応答メッセージに記載されている有効期間が過ぎる前に、ロケーション登録要求メッセージおよび識別情報登録メッセージを送信して、再度ロケーションサービステーブル61や識別情報管理テーブル64を更新する。このようにすることで、ロケーションサービステーブル61や識別情報管理テーブル64が更新されなくなればSIPサーバSIPや識別情報管理サーバISVはサーバSVやクライアントCLが動作していないことを知ることができる。
なお、SIPサーバSIPにロケーション登録要求メッセージを送信してロケーションサービステーブル61にロケーション情報を登録することを、SIPサーバSIPにログインする、とも称する。また、ロケーションサービステーブル61にクライアントCLの有効期限が切れていないロケーション情報が登録されている場合、当該クライアントCLはログイン中である、とも称する。
また、上述の処理は、サーバSVaやクライアントCL1aの利用者が鍵管理プロセス50Sおよび鍵管理プロセス50Cにコマンドを与えることにより実行するようにしてもよい。あるいは、利用者がオペレーティングシステム(OS)にログインした後に、上記処理の実行を利用者に促す画面を表示するようにしても良い。
この状態で、クライアントCL1aのユーザが、アプリケーションプログラムを立ち上げ、サーバSV1bのURL「http://www.bbb.com/」宛に通信を要求する操作を行った場合、本第3の実施例では、クライアントCL1aの暗号化機能部30Cが、当該要求を検出し、暗号化通信制御部51Cに当該通信のためのSA情報の作成を依頼する。暗号化通信制御部51Cは、SIPメッセージ処理部53Cに指示して、SIPサーバSIPaに識別情報管理サーバISV宛のAOR取得要求メッセージ(SIPメッセージ:INFO)M105を送信する。
AOR取得要求メッセージM105を受信したSIPサーバSIPaは、SIPメッセージ処理部53PがAOR取得要求メッセージM105の送信先となる識別情報管理サーバISVを調べるため、AOR取得要求メッセージM105のToヘッダに記載されている内容、すなわち、「http://www.bbb.com/」を検索キーとして、ドメイン管理サーバDSVaにドメイン検索クエリを送信する(S301)。
ドメイン検索を要求されたドメイン管理サーバDSVaは、ドメイン情報管理サービス67がドメイン管理テーブル68を検索する。
図33のドメイン管理テーブル68は、ドメイン管理サーバDSVaが管理しているドメイン管理テーブル68の一例である。図33のドメイン管理テーブル68は、サービス識別情報65として、「*」として「任意の文字列」を意味するなど、特殊な役割を持っている文字や文字列を含んだ正規表現の使用が可能であることを特徴とする。たとえば、「http://」で始まり、任意の文字列の後に「.aaa.com/」が含まれるようなサービス識別情報65は「aaa.com」という管理ドメインで管理されている(DEN-1)。同様に、「192.168.10.0のサブネットに属するIPv4アドレス」は「aaa.com」という管理ドメインで管理されている(DEN-2)。また、図33のドメイン管理テーブル68は、検索の優先順位が高い順にエントリを上から下に書いていることも特徴とする。例えば、「http://www.bbb.com/cgi-bin/CGI/」というサービス識別情報65はDEN-4およびDEN-5の両方にマッチするが、優先順位の高いDEN-4にマッチすると判定する。
なお、本実施例では、ドメイン管理サーバDSVの管理者は、サービス識別情報とドメインの対応付けや、検索の優先順位を予め決定して、ドメイン管理テーブル68を作成し、ドメイン管理サーバDSVに登録するようにしている。しかしながら、本発明はこれに限定されるものではなく、ドメイン管理サーバDSV同士が連携してドメイン管理テーブル68を更新するようにしても良い。このようにすることで、ドメイン管理テーブル68の整合性を保つために、ドメイン管理サーバDSVの管理者が他の管理者にドメイン管理テーブル68の更新を通知する必要がなくなる。
ドメイン管理サーバDSVaのドメイン情報管理サービス67は、与えられた検索キーが含まれるサービス識別情報65が存在するか否かをドメイン管理テーブル68のエントリを上から下に向かって検索する。「http://www.bbb.com/」の場合には、DEN-5にマッチするため、「bbb.com」という管理ドメインで管理されていると判定する。
ドメイン情報管理サービス67はドメイン検索結果をSIPサーバSIPaに返す(S302)。
SIPサーバSIPaのSIPメッセージ処理部53Pは、ドメイン管理サーバDSVaから受信したドメイン検索結果が自分の管理ドメインと異なる管理ドメインを示していた場合には、当該管理ドメインの識別情報管理サーバISV宛のAOR取得要求メッセージM301を作成し、当該管理ドメインのSIPサーバにAOR取得要求メッセージM301を送信する。具体的には、AOR取得要求メッセージM301は、AOR取得要求メッセージM105のスタートラインに記載されている、識別情報管理サーバISVのSIP−URIを、上記ドメイン検索結果に含まれている管理ドメイン「bbb.com」を管理する識別情報管理サーバISVのSIP−URI「sips:agent@bbb.com」に置き換えたものであり、SIPサーバSIPaはAOR取得要求メッセージM301をSIPサーバSIPbに送信する。
AOR取得要求メッセージM301を受信したSIPサーバSIPbは、SIPメッセージ処理部53Pで、AOR取得要求メッセージM301の送信先となる識別情報管理サーバISVを調べるため、AOR取得要求メッセージM301のToヘッダに記載されている内容、すなわち、「http://www.bbb.com/」を検索キーとして、ドメイン管理サーバDSVbにドメイン検索クエリを送信する(S303)。
ドメイン検索を要求されたドメイン管理サーバDSVbは、ドメイン情報管理サービス67がドメイン管理テーブル68を検索し、ドメイン検索結果をSIPサーバSIPbに返す(S304)。なお、検索キーが「http://www.bbb.com/」の場合にはDEN-5に従い「bbb.com」が返される。
SIPサーバSIPbは、SIPメッセージ処理部53Pがドメイン管理サーバDSVbから受信したドメイン検索結果が自分の管理ドメインと同じ管理ドメインであるため、AOR取得要求メッセージM301を識別情報管理サーバISVbに送信する。
AOR取得要求メッセージM301を受信した識別情報管理サーバISVbは、識別情報管理サーバ66が識別情報管理DBの識別情報管理テーブル64から、受信メッセージのToヘッダが示すURL「http://www.bbb.com/」と対応するAOR(サーバSV1bのSIP−URI)の値を検索し、検索結果である「sv1@bbb.com」を取得すると、SIPサーバSIPbとSIPサーバSIPaとを介して要求元クライアントCL1aにAOR取得応答メッセージM107を送信する。
上記AOR取得応答メッセージM107の受信によって接続先サーバSV1aのSIP−URI「sv1@bbb.com」を取得したクライアントCL1aは、SIPメッセージ処理部53CがSIPプロキシPRaに対して、サーバSV1aへの接続要求メッセージM5を送信する。
以降の動作は、第1の実施例の動作に倣うので、説明を省略する。
以下、図32におけるSIPサーバおよび識別情報管理サーバがAOR取得要求メッセージを受信した場合の制御動作について説明する。
図36は、図32においてSIPサーバSIPaがAOR取得要求メッセージM105を受け取った場合の動作を示したフロー図である。なお、SIPサーバSIPbがAOR取得要求メッセージM301を受信した場合も同じ動作を行う。
AOR取得要求メッセージM105を受信したSIPサーバSIPaは、SIPメッセージ処理部53PがAOR取得要求メッセージM105を解析し(501)、AOR取得要求メッセージM105のToヘッダに記載された内容に基づいてSQLなどによりドメイン検索クエリを作成する(502)。次に、SIPメッセージ処理部53Pは、作成したドメイン検索クエリをドメイン管理サーバDSVaに送信する(503、S301(SIPサーバSIPbの場合はS303))と、ドメイン管理サーバDSVaからの応答を待ち受ける(504)。
SIPメッセージ処理部53Pがドメイン検索結果を受け取る(S302(SIPサーバSIPbの場合はS304))と、ドメイン検索結果を解析し、AOR取得要求メッセージM105の転送先を決定する(505)。
転送先が他の管理ドメインである場合には、AOR取得要求メッセージM105の転送先ドメインのSIPサーバを決定し(507)、AOR取得要求メッセージM105からAOR取得要求メッセージM301を作成すると、転送先ドメインのSIPサーバにAOR取得要求メッセージM301を送信し(508)、応答を待ち受ける(509)。
AOR取得応答メッセージM107を受信したSIPサーバSIPaは、SIPメッセージ処理部53PがAOR取得応答メッセージM107を解析し(510)、AOR取得要求メッセージM105の送信元にAOR取得要求メッセージM107を送信して(511)、処理を終了する。
一方、ステップ505で、転送先が自管理ドメインであった場合には、識別情報管理サーバISVaにAOR取得要求メッセージM105を送信し(512)、識別情報管理サーバISVaからの応答を待ち受ける(513)。
SIPサーバSIPaは識別情報管理サーバISVaからAOR取得応答メッセージM107を受信すると、AOR取得要求メッセージM105の送信元にSIPメッセージ処理部53PがAOR取得応答メッセージM107を送信して(514)、処理を終了する。
図37は、図32において識別情報管理サーバISVbがAOR取得要求メッセージM301を受信した場合の動作を示したフロー図である。
識別情報管理サーバISVbがAOR取得要求メッセージM301を受信する(600)と、識別情報管理サーバISVbのSIPメッセージ処理部53IがAOR取得要求メッセージM301を解析し、AOR取得要求メッセージM301のToヘッダに記載されている内容を識別情報管理サービス66に渡す(601)。識別情報管理サービス66は受け取ったToヘッダの記載内容から識別情報検索クエリを作成し(602)、識別情報管理DBの識別情報管理テーブル64を検索する(603)。
識別情報管理サービス66は、識別情報管理DBから検索結果を受信すると、検索結果を解析し、AOR62をSIPメッセージ処理部53Iに渡す(605)。
AOR62を受信したSIPメッセージ処理部53Iは、AOR取得応答メッセージM107を作成し(605)、AOR取得要求メッセージM301の送信元にAOR取得応答メッセージM107を送信する(606)。
以上が本第3の実施例におけるSIPサーバおよび識別情報管理サーバがAOR取得要求メッセージを受信した場合の制御動作である。
本第3の実施例では、AOR取得要求メッセージを受信したSIPサーバはドメイン管理サーバDSVを検索してAOR取得要求メッセージを送信すべき識別情報管理サーバISVを決定するように構成している。そのため、クライアントCLやサーバSVのサービス識別子を複数の識別情報管理サーバISVで管理することができるので、負荷を分散することが可能となる。
また、本第3の実施例のドメイン管理テーブル68は、サービス識別情報65を正規表現で記載できるため、すべてのサービス識別情報65の管理ドメインを登録する必要がなく、ドメイン管理テーブル68のサイズが肥大するのを抑えることができる。
なお、本発明は、第3の実施例の構成には限定されず、以下のように構成しても良い。
例えば、ドメイン管理テーブル68には、すべての種類のサービス識別情報65を記載した一つのテーブルを使用している。しかし、サービス識別情報65の種類ごとにドメイン管理テーブル68を分けてもよい。こうにすることで、高速にサービス識別情報65の管理ドメインを検索することができる。
また、ドメイン管理テーブル68には、サービス識別情報65の管理ドメインを検索するごとに、エントリ毎にサービス識別情報65が正規表現に一致するかを計算している。しかし、ドメイン管理サーバDSVの起動時にドメイン管理テーブル68の各エントリを計算して、すべてのサービス識別情報65のエントリに展開し、テーブルやツリーとしてメモリ上に保持してもよい。こうにすることで、高速にサービス識別情報65の管理ドメインを検索することができる。
さらには、ドメイン管理テーブル68では、各エントリの管理ドメイン情報は、当該エントリのサービス識別情報65を管理している管理ドメインを記載するようにしている。しかし、ドメイン管理サーバDSVを階層型に構築し、ドメイン管理テーブル68のエントリが自ドメイン以外の管理ドメインの場合に、当該管理ドメインが下位のドメイン管理サーバDSVで管理されている場合には、下位のドメイン管理サーバDSVの管理ドメインを、それ以外の場合には上位のドメイン管理サーバDSVの管理ドメインを、記載してもよい。こうにすることで、ドメイン管理テーブル68の管理が容易になる。
また、SIPサーバSIPとドメイン管理サーバDSVは、ドメイン検索クエリおよびその応答をTLSによって直接送受している。しかし、ドメイン検索クエリおよびその応答をSIPメッセージのボディ部に格納して送受してもよい。
次に、本発明による暗号化データ通信の第4の実施例について説明する。第4の実施例では、識別情報管理サーバISVがドメイン管理サーバDSVを検索する。
本第4の実施例のネットワーク構成は、上述した第3の実施例と同じであるので説明を省略する。
次に、本第4の実施例の動作について説明する。第4の実施例でクライアントCL、SIPサーバSIP、識別情報管理サーバISV、サーバSVの間で送受されるメッセージは、非特許文献3で定義されたSIPメッセージに準拠したメッセージであり、SIPメッセージのボディに暗号化通信設定など暗号化通信を確立、または切断するための情報を格納している。
まず、サーバSV1bやクライアントCL1aのTLS部52がレジストラRGとの間でTLSネゴシェーションを実行し、TLSセッションを確立すると、SIPメッセージ処理部53がロケーションサーバLSV、識別情報管理サーバISVにロケーション情報、識別情報を登録する。当該処理の詳細は、上述した第3の実施例に倣うので説明を省略する。
次に、クライアントCL1aのユーザが、アプリケーションプログラムを立ち上げ、サーバSV1bのURL「http://www.bbb.com/」宛に通信を要求する操作を行った場合の動作について説明する。
図34は、本発明の第4の実施例において、クライアントCL1aのユーザが、アプリケーションプログラムを立ち上げ、サーバSV1bのURL「http://www.bbb.com/」宛に通信を要求する操作を行った場合に暗号化通信を確立するためのシーケンス図である。
クライアントCL1aのユーザが、アプリケーションプログラムを立ち上げ、サーバSV1bのURL「http://www.bbb.com/」宛に通信を要求する操作を行った場合、クライアントCL1aの暗号化機能部30Cが、当該要求を検出し、暗号化通信制御部51Cに当該通信のためのSA情報の作成を依頼する。暗号化通信制御部51Cは、SIPメッセージ処理部53Cに指示して、AOR取得要求メッセージ(SIPメッセージ:INFO)M401を、SIPサーバSIPaを介して識別情報管理サーバISVaに送信し、識別情報管理サーバISVaからの応答を待ち受ける。
上記AOR取得要求メッセージM401は、例えば、図38に示すように、スタートラインに、SIPメッセージ種類を示す「INFO」と、識別情報管理サーバISVaのSIP−URIである「sips:agent@aaa.com」を含み、Viaヘッダは、クライアントCL1aのFQDNの値を示している。また、Toヘッダには、識別情報管理サーバISVaのSIP−URI「sips:agent@aaa.com」が設定され、Fromヘッダには、クライアントCL1aのURI「sips:cl1@aaa.com」が設定されている。さらに、SIPメッセージのボディ部にはAORの取得対象の識別情報「http://www.bbb.com/」が設定されている。
AOR取得要求メッセージM401を受信した識別情報管理サーバISVaは、識別情報管理サービス66がAOR取得要求メッセージM401のボディ部に記載されている識別情報、すなわち、「http://www.bbb.com/」が識別情報管理テーブル64に記載されているかを確認する(S401)。
ここで、識別情報が識別情報管理テーブル64に記載されていた場合には、AOR取得応答M404を作成し、SIPサーバSIPaを介してクライアントCL1aにAOR取得応答M404を送信する。AOR取得応答メッセージM404は、図38に示すように、スタートラインに、メッセージ種類が応答メッセージであることを示す「200 OK」を含み、メッセージヘッダ部にはAOR取得要求メッセージM401と同一内容のヘッダ情報が記載され、ボディ部には識別情報管理テーブル64から検索されたサーバSV1bのSIP−URIの値「sv1@bbb.com」を示す値が記述されている。
一方、S401で識別情報が識別情報管理テーブル64に記載されていない場合、識別情報管理サービス66は、上記識別情報を検索キーとして、ドメイン管理サーバDSVaにドメイン検索クエリを送信する(S402)。ドメイン管理サーバDSVaはドメイン情報管理サービス67がドメイン管理テーブル68を検索して、検索結果を返す(S403)。
検索結果を受信した識別情報管理サーバISVaの識別情報管理サービス66は、AOR取得要求メッセージM402を作成し、ドメイン検索結果に含まれる管理ドメインの識別情報管理サーバISV、すなわち識別情報管理サーバISVb(SIP−URI:agent@bbb.com)にSIPサーバSIPaおよびSIPサーバSIPbを介してAOR取得要求メッセージM402を送信すると、識別情報管理サーバISVbの応答を待ち受ける。
なお、AOR取得要求メッセージM402は、AOR取得要求メッセージM401のスタートラインおよびToヘッダの識別情報管理サーバISVaのSIP−URIを識別情報管理サーバISVbのSIP−URI「sips:agent@bbb.com」に変更し、FromヘッダのクライアントCL1aのSIP−URIを識別情報管理サーバISVaのSIP−URI「sips:agent@aaa.com」に変更したものである。
AOR取得要求メッセージM402を受信した識別情報管理サーバISVbは、識別情報管理サービス66がAOR取得要求メッセージM401のボディ部に記載されている識別情報が識別情報管理テーブル64に記載されているかを確認する(S404)。
ここで、識別情報が識別情報管理テーブル64に記載されていた場合には、識別情報管理サーバISVbは、AOR取得応答M403を作成し、SIPサーバSIPbおよびSIPサーバSIPaを介して識別情報管理サーバISVaにAOR取得応答M403を送信する。
AOR取得応答メッセージM403は、スタートラインに、メッセージ種類が応答メッセージであることを示す「200 OK」を含み、メッセージヘッダ部にはAOR取得要求メッセージM402と同一内容のヘッダ情報が記載され、ボディ部には識別情報管理テーブル64から検索されたサーバSV1bのSIP−URIの値「sv1@bbb.com」を示す値が記述されている。
なお、S401で識別情報が識別情報管理テーブル64に記載されていない場合には、識別情報管理サーバISVbは、上記識別情報を検索キーとして、ドメイン管理サーバDSVbにドメイン検索を要求し、ドメイン検索結果に含まれる管理ドメインの識別情報管理サーバISVにAOR取得要求メッセージを送信し、当該識別情報管理サーバISVの応答を待ち受ける。
AOR取得応答M403を受信した識別情報管理サーバISVaの識別情報管理サービス66は、AOR取得応答M403からAOR取得応答M404を作成し、SIPサーバSIPaを介してクライアントCL1aにAOR取得応答M404を送信する。
上記AOR取得応答メッセージM404の受信によって接続先サーバSV1bのSIP−URIを取得したクライアントCL1aは、SIPメッセージ処理部53がSIPプロキシPRaを介して、識別情報管理サーバISVaにサーバSV1bへの接続要求メッセージM405を送信する。
接続要求メッセージM405は、図39に示すように、接続要求メッセージのヘッダ部M405−1とボディ部M405−2とからなり、接続要求メッセージのヘッダ部M405−1は、スタートラインに、メッセージ種類「INVITE」と、Request−URIとして、メッセージ宛先となる識別情報管理サーバISVaのSIP−URI「agent@aaa.com」を含む。また、メッセージヘッダ部には、クライアントCL1aにおけるSIPメッセージ処理部53CのSIP−URIを示すViaヘッダ、識別情報管理サーバISVaのSIP−URI「agent@aaa.com」を含むToヘッダ、クライアントCL1aのSIP−URI「cl1@aaa.com」を含むFromヘッダと、Content−Typeヘッダ、Content−Lengthヘッダ、その他の情報を含む。Content−Typeヘッダは、ボディ部M5−2が関係するアプリケーションプログラムを示し、Content−Lengthヘッダは、ボディ部M405−2の長さを示している。
接続要求メッセージM5のボディ部M405−2は、MIMEで定義されたマルチパートの形式で記述されている。例えば、「--BOUNDARY」で囲まれた最初のパートはサーバSV1bのSIP−URIを含み、次のパートはクライアントCL1aとサーバSV1bとの間での暗号化通信設定を含む。クライアントCL1aとサーバSV1bとの間での暗号化通信設定は、例えば、図13に示すような、IKEにおける通常のIPsec用SA設定時と同様、暗号化プロトコルの識別情報を示すプロポーザルペイロード91と、トランスフォーム識別情報を示すトランスフォームペイロード92、鍵交換ペイロード93、要求元の識別情報を示す第1IDペイロード94と、接続先の識別情報を示す第2IDペイロード95を含んでいる。
接続要求メッセージM405を受信した識別情報管理サーバISVaは、接続要求メッセージM405から接続要求メッセージM406を作成し、SIPサーバSIPaおよびSIPサーバSIPbを介して識別情報管理サーバISVbに接続要求メッセージM406を送信すると、識別情報管理サーバISVbからの応答を待ち受ける。
なお、接続要求メッセージM406は、接続要求メッセージM405のRequest−URIおよびToヘッダを識別情報管理サーバISVaのSIP−URIから識別情報管理サーバISVbのSIP−URI「sips:agent@bbb.com」に変更し、ViaヘッダおよびFromヘッダをクライアントCL1aのSIP−URIから識別情報管理サーバISVaのSIP−URI「sips:agent@aaa.com」に変更したものである。
接続要求メッセージM406を受信した識別情報管理サーバISVbは、SIPメッセージ処理部53Iが接続要求メッセージM406から接続要求メッセージM407を作成し、SIPサーバSIPbを介して接続先サーバSV1bに接続要求メッセージM407を送信すると、接続先サーバSV1bからの応答を待ち受ける。
なお、接続要求メッセージM407は、接続要求メッセージM406のRequest−URIおよびToヘッダを識別情報管理サーバISVbのSIP−URIから接続先サーバSV1b「sips:sv1@bbb.com」に変更し、ViaヘッダおよびFromヘッダを識別情報管理サーバISVaのSIP−URIから識別情報管理サーバISVbのSIP−URI「sips:agent@bbb.com」に変更したものである。
SIPメッセージ処理部53Sで接続要求メッセージM407を受信したサーバSV1bは、暗号化通信制御部51Sで接続要求メッセージM407に記載されている暗号通信設定から1つを選択し、暗号化通信機能部31Sに選択した暗号通信設定を適用すると、SIPメッセージ処理部53Sが接続応答メッセージM408をSIPサーバSIPbを介して識別情報管理サーバISVbに返信する。
接続応答メッセージM408は、図39に示すように、ヘッダ部M408−1とボディ部M408−2とからなり、ヘッダ部M408−1のスタートラインには、メッセージ種類として、応答メッセージであることを示す「200 OK」を含み、メッセージヘッダ部には接続要求メッセージM407と同様の複数項目のヘッダ情報を含む。
また、ボディ部M408−2の最初のパートはサーバSV1bのSIP−URIが「<AOR>」と「</AOR>」にはさまれて記載されており、さらに、当該接続応答メッセージM408によって確立される暗号化通信セッションを一意に識別するためのセッション識別情報が「<SESSION>」と「</SESSION>」とにはさまれて記載されている。また、ボディ部M408−2の次のパートは、接続要求メッセージM407のボディ部M407−2で提案された暗号通信設定のうち、サーバSV1bが選択した暗号通信設定を含む。
接続応答メッセージM408を受信した識別情報管理サーバISVbは、SIPメッセージ処理部53Iが接続応答メッセージM408から接続応答メッセージM409を作成し、SIPサーバSIPbおよびSIPサーバSIPaを介して、識別情報管理サーバISVaに接続応答メッセージM409を送信する。
なお、接続応答メッセージM409は、接続要求メッセージM406に対する応答メッセージであり、接続応答メッセージM408からヘッダ部M408−1のスタートラインに続くメッセージヘッダ部を接続要求メッセージM406と同様のヘッダ情報に置き換えたものである。
接続応答メッセージM409を受信した識別情報管理サーバISVaは、SIPメッセージ処理部53Iが接続応答メッセージM409から接続応答メッセージM410を作成し、SIPサーバSIPaを介して、クライアントCL1aに接続応答メッセージM410を送信する。
なお、接続応答メッセージM410は、接続要求メッセージM405に対する応答メッセージであり、接続応答メッセージM409からヘッダ部M409−1のスタートラインに続くメッセージヘッダ部を接続要求メッセージM405と同様のヘッダ情報に置き換えたものである。
接続応答メッセージM410を受信したクライアントCL1aは、暗号化通信制御部51Cを介して暗号エンジン31Cに、接続応答メッセージM410に記載されている暗号通信設定を適用すると、接続先サーバSL1bとアプリケーションデータ通信を開始する。
クライアントCL1aの暗号化通信制御部51SがサーバSV1bとの間でのデータ通信が終了したことを検出すると、SIPメッセージ処理部53CがSIPサーバSIPaを介して識別情報管理サーバISVaに対して、図40に示す切断開始要求メッセージM411を送信し、通信切断処理を開始する。
なお、切断要求メッセージM411は、スタートラインに、メッセージ種類「UPDATE」と識別情報管理サーバISVaのSIP−URIを含み、メッセージヘッダ部には、接続要求メッセージM405と同様、Via、To、From、Call−ID、CSec、Routeヘッダを含み、メッセージボディ部には接続先サーバSV1bのSIP−URIと、切断する暗号化通信セッションを一意に識別するためのセッション識別情報と、を含む。
なお、サーバSV1bの暗号化通信制御部51SがクライアントCL1aとの間でのデータ通信が終了したことを検出した場合には、サーバSV1bからクライアントCL1aに切断開始要求メッセージM411を送信し、切断処理を行う。
図41は、クライアントCL1aは、サーバSV1bとの間でのデータ通信が終了した場合の通信切断の処理フローを示した図である。
切断開始要求メッセージM411を受信した識別情報管理サーバISVaは、SIPメッセージ処理部53Iが切断開始要求メッセージM411から切断開始要求メッセージM412を作成し、SIPサーバSIPaおよびSIPサーバSIPbを介して識別情報管理サーバISVbに切断開始要求メッセージM412を送信すると、識別情報管理サーバISVbからの応答を待ち受ける。
なお、切断開始要求メッセージM412は、切断開始要求メッセージM411のRequest−URIおよびToヘッダを識別情報管理サーバISVaのSIP−URIから識別情報管理サーバISVbのSIP−URI「sips:agent@bbb.com」に変更し、ViaヘッダおよびFromヘッダをクライアントCL1aのSIP−URIから識別情報管理サーバISVaのSIP−URI「sips:agent@aaa.com」に変更したものである。
切断開始要求メッセージM412を受信した識別情報管理サーバISVbは、SIPメッセージ処理部53Iが切断開始要求メッセージM412から切断開始要求メッセージM413を作成し、SIPサーバSIPbを介して接続先サーバSV1bに切断開始要求メッセージM413を送信すると、接続先サーバSV1bからの応答を待ち受ける。
なお、切断開始要求メッセージM413は、切断開始要求メッセージM412のRequest−URIおよびToヘッダを識別情報管理サーバISVbのSIP−URIから接続先サーバSV1b「sips:sv1@bbb.com」に変更し、ViaヘッダおよびFromヘッダを識別情報管理サーバISVaのSIP−URIから識別情報管理サーバISVbのSIP−URI「sips:agent@bbb.com」に変更したものである。
切断開始要求メッセージM413を受信したサーバSV1bは、暗号化通信制御部51SでクライアントCL1aとの通信の切断処理を開始したことを記録すると、SIPメッセージ処理部53Sが切断開始応答メッセージM414を、SIPサーバSIPbを介して識別情報管理サーバISVbに返信する。
切断開始応答メッセージM414は、図40に示すように、ヘッダ部M414−1とボディ部M414−2とからなり、ヘッダ部M414−1のスタートラインには、メッセージ種類として、応答メッセージであることを示す「200 OK」を含み、メッセージヘッダ部には切断開始要求メッセージM413と同様の複数項目のヘッダ情報を含む。また、ボディ部M408−2には切断開始要求メッセージM407のボディ部M407−2と同じ内容を含む。
切断開始応答メッセージM414を受信した識別情報管理サーバISVbは、SIPメッセージ処理部53Iが切断開始応答メッセージM414から切断開始応答メッセージM415を作成し、SIPサーバSIPbおよびSIPサーバSIPaを介して、識別情報管理サーバISVaに切断開始応答メッセージM415を送信する。
なお、切断開始応答メッセージM415は、切断開始要求メッセージM412に対する応答メッセージであり、切断開始応答メッセージM414からヘッダ部M414−1のスタートラインに続くメッセージヘッダ部を切断開始要求メッセージM412と同様のヘッダ情報に置き換えたものである。
切断開始応答メッセージM415を受信した識別情報管理サーバISVaは、SIPメッセージ処理部53Iが切断開始応答メッセージM415から切断開始応答メッセージM416を作成し、SIPサーバSIPaを介して、クライアントCL1aに切断開始応答メッセージM416を送信する。
なお、切断開始応答メッセージM416は、切断開始要求メッセージM411に対する応答メッセージであり、切断開始応答メッセージM415からヘッダ部M415−1のスタートラインに続くヘッダ情報を切断開始要求メッセージM411と同様のヘッダ情報に置き換えたものである。
切断開始応答メッセージM416を受信したクライアントCL1aは、SIPメッセージ処理部53Cが切断要求メッセージM417を、SIPサーバSIPaを介して識別情報管理サーバISVaに送信すると、識別情報管理サーバISVaからの応答を待ち受ける。
切断要求メッセージM417は、切断要求メッセージM20に似ており、スタートラインに、メッセージ種類「BYE」と識別情報管理サーバISVaのSIP−URIを含み、メッセージヘッダ部には、切断開始要求メッセージM411と同様、Via、To、From、Call−ID、CSec、Routeヘッダを含み、メッセージボディ部は省略される。
切断要求メッセージM417を受信した識別情報管理サーバISVaは、SIPメッセージ処理部53Iが切断応答メッセージM418を作成し、SIPサーバSIPaを介してクライアントCL1aに送信する。
切断応答メッセージM418は、切断応答メッセージM25に似ており、スタートラインに、メッセージ種類として、応答を示す「200 OK」を含み、ヘッダ部に、切断要求メッセージM417から抽出されたVia、To、From、Call−ID、CSec等の数項目のヘッダ情報を含み、メッセージボディ部は省略されている。
切断応答メッセージM418を受信したクライアントCL1aは、暗号化通信制御部51Cが暗号エンジン31Cに指示して、SADB33CからサーバSV1bとの暗号通信設定を削除する。暗号エンジン31CはIPsec暗号化/復号化を終了し、同一または別のアプリケーションによる新たなパケット送信要求を待つ。
一方、切断応答メッセージM418を送信した識別情報管理サーバISVaは、SIPメッセージ処理部53Iが切断要求メッセージM417から切断要求メッセージM419を作成し、SIPサーバSIPaおよびSIPサーバSIPbを介して識別情報管理サーバISVbに切断要求メッセージM419を送信すると、識別情報管理サーバISVbからの応答を待ち受ける。
なお、切断要求メッセージM419は、切断要求メッセージM417のスタートラインおよびToヘッダの、識別情報管理サーバISVaのSIP−URIを識別情報管理サーバISVbのSIP−URI「sips:agent@bbb.com」に変更し、ViaヘッダおよびFromヘッダの、クライアントCL1aのSIP−URIを識別情報管理サーバISVaのSIP−URI「sips:agent@aaa.com」に変更したものである。
切断要求メッセージM419を受信した識別情報管理サーバISVbは、SIPメッセージ処理部53Iが切断応答メッセージM420を作成し、SIPサーバSIPbおよびSIPサーバSIPaを介して識別情報管理サーバISVaに送信する。
切断応答メッセージM420は、切断応答メッセージM25に似ており、スタートラインに、メッセージ種類として、応答を示す「200 OK」を含み、メッセージヘッダ部に、切断要求メッセージM419から抽出されたVia、To、From、Call−ID、CSec等の数項目のヘッダ情報を含み、メッセージボディ部は省略されている。
次に、識別情報管理サーバISVbは切断応答メッセージM420を送信すると、SIPメッセージ処理部53Iが切断要求メッセージM419から切断要求メッセージM421を作成し、SIPサーバSIPbを介して接続先サーバSV1bに切断要求メッセージM421を送信すると接続先サーバSV1bからの応答を待ち受ける。
なお、切断要求メッセージM421は、切断要求メッセージM419のスタートラインおよびToヘッダの、識別情報管理サーバISVbのSIP−URIを接続先サーバSV1bのSIP−URI「sips:sv1@bbb.com」に変更し、ViaヘッダおよびFromヘッダの、識別情報管理サーバISVaのSIP−URIを識別情報管理サーバISVbのSIP−URI「sips:agent@bbb.com」に変更したものである。
切断要求メッセージM421を受信した接続先サーバSV1bは、暗号化通信制御部51Sが暗号エンジン31Sに指示して、SADB33SからクライアントCL1aとの暗号通信設定を削除する。次に、SIPメッセージ処理部53Sが切断応答メッセージM422を作成し、SIPサーバSIPbを介して識別情報管理サーバISVbに送信する。
切断応答メッセージM422は、切断応答メッセージM25に似ており、スタートラインに、メッセージ種類として、応答を示す「200 OK」を含み、メッセージヘッダ部に、切断要求メッセージM421から抽出されたVia、To、From、Call−ID、CSec等の数項目のヘッダ情報を含み、メッセージボディ部は省略されている。
次に、図34における、識別情報管理サーバISV、ドメイン管理サーバDSV、および図41における、識別情報管理サーバISV、クライアントCLの制御動作について説明する。
なお、図34および図41におけるSIPサーバSIPの動作は、非特許文献3で開示されているSIPプロキシおよびレジストラの動作に倣うので説明を省略する。また、図34および図41におけるサーバSVの動作は、図19および図24のサーバSVの動作フローに倣うので説明を省略する。
さらに、図34におけるクライアントCLの動作は、ステップ116においてRequest-URIとToヘッダに接続先サーバのSIP−URIの代わりに所属ドメインの識別情報管理サーバISVのSIP−URIを設定し、かつ、SIPメッセージのボディ部に接続先サーバのSIP−URIを記載した接続要求メッセージを作成する以外は、図15および図16におけるクライアントCLの動作フローに倣うので説明を省略する。
図42は、図34において、識別情報管理サーバSIPaがAOR取得要求メッセージM401を受信した場合の動作フローを示した図である。なお、識別情報管理サーバSIPbがAOR取得要求メッセージM402を受信した場合も同様の動作を行う。
識別情報管理サーバSIPaは、AOR取得要求メッセージM401を受信すると、SIPメッセージ処理部53IがAOR取得要求メッセージM401を解析し、AOR取得要求メッセージM401のToヘッダに記載された内容を識別情報管理サービス66に渡す(701)。
識別情報管理サービス66は、Toヘッダの記載内容から識別情報検索クエリを作成し(702)、識別情報管理DBに識別情報管理テーブル64の検索を指示する(703、図34のS401)。
次に、識別情報管理サービス66は識別情報管理DBから検索結果を受信すると(704)、検索結果を解析し、AOR62が取得できたかどうかを確認する(705)。
ここで、AOR62が取得できていた場合(706でYES)には、識別情報管理サービス66は、AOR62をSIPメッセージ処理部53Iに渡す。AOR62を受け取ったSIPメッセージ処理部53Iは、AOR62を含むAOR取得応答メッセージM404を作成し(717)、AOR取得要求メッセージM401の送信元に送信し(718)、処理を終了する。
一方、ステップ706でAOR62が取得できていなかった場合(706でNO)には、識別情報管理サービス66は、Toヘッダの記載内容からドメイン検索クエリを作成して(707)、ドメイン管理サーバDSVaに送信する(708、図34のS402)と、ドメイン管理サーバDSVaからの応答を待ち受ける(709でNO)。
識別情報管理サービス66がドメイン管理サーバDSVaからドメイン検索結果を受信する(709でYES、図34のS403)と、ドメイン検索結果を解析してメッセージの転送先となる識別情報管理サーバISVを決定する(710)。
ここで、転送先の識別情報管理サーバISVが自分自身であった場合(711でYES)には、識別情報管理サービス66は、SIPメッセージ処理部53Iに検索失敗を通知する。検索失敗を通知されたSIPメッセージ処理部53Iは、エラー発生を示すAOR取得応答メッセージM404をステップ717で作成し、AOR取得要求メッセージM401の送信元に送信して(718)、処理を終了する。
なお、エラー発生を示すAOR取得応答メッセージM404は、ヘッダ部M404−1のスタートラインには、メッセージ種類として、エラー応答メッセージであることを示す「404 Not Found」を含み、スタートラインに続いて、AOR取得要求メッセージM401と同様の複数項目のヘッダ情報を含む。また、ボディ部M404−2は空である。
一方、転送先の識別情報管理サーバISVが他のドメインの識別情報管理サーバISVであった場合(711でNO)には、識別情報管理サービス66は、SIPメッセージ処理部53IにToヘッダの記載内容と、転送先の識別情報管理サーバISVのSIP−URIを指定して、Toヘッダの記載内容のAOR取得を要求する。
SIPメッセージ処理部53Iは、Toヘッダの記載内容と、転送先の識別情報管理サーバISVのSIP−URIからAOR取得要求メッセージM402を作成し(712)、AOR取得要求メッセージM402をSIPサーバSIPaに送信する(713)と、SIPサーバSIPaからの応答を待ち受ける(714でNO)。
SIPメッセージ処理部53Iは、SIPサーバSIPaからAOR取得応答メッセージM403を受信する(714でYES)と、AOR取得応答メッセージM403を解析して、識別情報管理サービス66にAOR62を渡す。
なお、AOR取得応答メッセージM403がエラーを示すメッセージであった場合には、AOR62として空文字列を渡す(715)。
識別情報管理サービス66は、AOR62をSIPメッセージ処理部53Iに渡し、AOR取得応答メッセージM404の作成を指示する(716)。SIPメッセージ処理部53Iは、AOR62を含むAOR取得応答メッセージM404を作成し、AOR取得要求メッセージM401の送信元に送信し(717)、処理を終了する。
図43は、図34において、識別情報管理サーバISVaが接続要求メッセージM405を受信した場合の動作フローを示した図である。
なお、識別情報管理サーバISVbが接続要求メッセージM406を受信した場合にも同じフローに従った動作を行う。
識別情報管理サーバISVaは接続要求メッセージM405を受信すると、SIPメッセージ処理部53Iが接続要求メッセージM405を解析し、識別情報管理サービス66に接続要求メッセージM405のボディ部を渡す(801)。
接続要求メッセージM405のボディ部を受け取った識別情報管理サービス66は、当該ボディ部に含まれる接続先サーバSV1bのSIP−URIのドメインを確認する(802)。
ここで、接続先サーバSV1bのSIP−URIのドメインが他ドメインであった場合には、識別情報管理サービス66は、接続先サーバSV1bの属するドメインの識別情報管理サーバISVを決定し、当該識別情報管理サーバISV(ISVb)のSIP−URIと、接続要求メッセージM405のボディ部と、を指定して、SIPメッセージ処理部53Iに当該識別情報管理サーバISV(ISVb)に接続要求メッセージを送信するように指示する(804)。
SIPメッセージ処理部53Iは、当該識別情報管理サーバISV(ISVb)のSIP−URIと、接続要求メッセージM405のボディ部とから接続要求メッセージM406を作成する(805)と、接続要求メッセージM406をSIPサーバSIPaに送信し(806)、SIPサーバSIPaからの応答を待ち受ける(807)。
ここで、SIPサーバSIPaから接続中メッセージを受信した場合には、接続中メッセージを処理して(808)、ステップ807に戻る。
一方、SIPサーバSIPaから接続応答メッセージM409を受信した場合には、SIPメッセージ処理部53Iは接続応答メッセージM409を解析し、メッセージ種類と、接続応答メッセージM409のボディ部とを識別情報管理サービス66に渡す(809)。
また、SIPメッセージ処理部53Iは接続応答メッセージM409のメッセージ種類を確認して、通信要求が受け入れられた場合には接続確認メッセージを作成し、接続応答メッセージM409の送信元に送信する(810)
識別情報管理サービス66は、上記メッセージ種類を確認して、通信要求が受け入れられたのかどうかをチェックすると、上記メッセージ種類と、上記ボディ部とをSIPメッセージ処理部53Iに渡し、接続要求メッセージM401の送信元に接続応答メッセージM409を送信するように指示する。
SIPメッセージ処理部53Iは、識別情報管理サービス66から受け取った上記メッセージ種類と、上記ボディ部とから、接続応答メッセージM410を作成すると、SIPサーバSIPaに送信し(811)、SIPサーバSIPaからの応答を待ち受ける(812)。
SIPサーバSIPaから接続確認メッセージを受信したSIPメッセージ処理部53Iは、接続確認メッセージを解析し、メッセージ種類を識別情報管理サービス66に渡す。識別情報管理サービス66は、接続確認メッセージを確認して、通信が確立したかどうかをチェックすると、処理を終了する。
図46は、図34において、識別情報管理サーバISVからドメイン検索クエリを受信した場合の、ドメイン管理サーバDSVの動作フローを示した図である。
識別情報管理サーバISVからドメイン検索クエリを受信したドメイン管理サーバDSVは、ドメイン情報管理サービス67がドメイン検索クエリを解析し、管理ドメインを検索するサービス識別情報65を取り出して、検索キーに設定する(731)。
次に、ドメイン情報管理サービス67は、ドメイン管理テーブル68の最初のエントリを検索対象エントリとして設定し(732)、当該エントリのサービス識別情報65に検索キーが含まれるかどうかを計算し、評価する(733)。
ここで、検索キーが含まれると判定する(734でYES)と、検索対象エントリの管理ドメイン69を含むドメイン検索応答を作成して、要求元に送信する(735)と、処理を終了する。
一方、検索キーが含まれないと判定した場合(734でNO)には、ドメイン管理テーブル68に未検索のエントリが存在するかどうかを確認(736)して、未検索のエントリが残っている場合には、次のエントリを検索対象エントリとして設定し(737)、ステップ733以降の処理を繰り返す。
一方、未検索のエントリが存在していない場合には、該当する管理ドメインは存在しない旨のエラーメッセージを含むドメイン検索応答を作成して、要求元に送信する(738)と、処理を終了する。
ただし、図33のドメイン管理テーブル68では、最後のエントリ(DEN−9)に任意のサービス識別情報65を意味する「*」という正規表現が記載されているため、どのようなサービス識別情報65を検索キーとして設定しても必ず対応する管理ドメインが応答されるようになっている。
図45は、図41において、クライアントCL1aのSIPメッセージ処理部53Cが暗号化通信制御部51Cから切断処理要求を受信した場合の動作フローを示した図である。
クライアントCL1aのSIPメッセージ処理部53Cが暗号化通信制御部51Cから切断処理要求を受信すると、所属ドメインの識別情報管理サーバISV(識別情報管理サーバISVa)のSIP−URIをRequest-URIに適用し、かつ、接続時に取得した接続先のSIP−URIをボディ部に適用して、切断開始要求メッセージM411を作成する(941)。
切断開始要求メッセージM411を自ドメインのSIPサーバ(SIPサーバSIPa)に送信する(942)と、SIPサーバからの応答を待ち受ける(943)。
SIPサーバから接続開始応答メッセージM416を受信すると、切断開始応答メッセージを解析し(944)、所属ドメインの識別情報管理サーバISV(識別情報管理サーバISVa)のSIP−URIをRequest-URIに適用し、かつ、接続時に取得した接続先のSIP−URIをボディ部に適用して、切断要求メッセージM417を作成する(945)。
切断要求メッセージM417を作成すると、図22のステップ142以降の処理を実行する。
図44は、図41において、識別情報管理サーバISVaが切断開始要求メッセージM411を受信した場合の動作フローを示した図である。なお、識別情報管理サーバISVbが接続要求メッセージM412を受信した場合にも同じフローに従った動作を行う。
識別情報管理サーバISVaが切断開始要求メッセージM411を受信すると、SIPメッセージ処理部53Iが切断開始要求メッセージM411を解析し、切断開始要求メッセージM411のボディ部を識別情報管理サービス66に渡す(901)。
切断開始要求メッセージM411のボディ部を受け取った識別情報管理サービス66は、当該ボディ部に含まれている切断先サーバのSIP−URIやセッション識別情報を確認して、切断開始要求メッセージの送信先ドメインをチェックする(902)。
ここで、送信先ドメインが他ドメインであった場合には、上記ボディ部を指定して、SIPメッセージ処理部53Iに、送信先ドメインの識別情報管理サーバISV宛の切断開始開始要求メッセージを送信するように指示する(904)。
SIPメッセージ処理部53Iは、識別情報管理サービス66から受け取った上記ボディ部を含む切断開始要求メッセージM412を作成する(905)と、SIPサーバSIPaに切断開始要求メッセージM412を送信し(906)、応答を待ち受ける(907)。
SIPサーバSIPaから切断開始応答メッセージM415を受信すると、SIPメッセージ処理部53Iは切断開始応答メッセージM415を解析して、メッセージ種類と、ボディ部を識別情報管理サービス66に渡す(908)。
識別情報管理サービス66は、メッセージ種類を確認して、切断開始要求が受け入れられたかどうかを確認すると、上記メッセージ種類とボディ部とをSIPメッセージ処理部53Iに渡して、切断開始応答メッセージM416の作成と送信を指示する(909)。
SIPメッセージ処理部53Iは、切断開始応答メッセージM416をSIPサーバSIPaに送信して、応答を待ち受ける(910)。
SIPメッセージ処理部53Iは、SIPサーバSIPaから切断要求メッセージM417を受信すると、切断要求メッセージM417の送信元に切断応答メッセージM418を送信し(911)、識別情報管理サービス66に切断要求メッセージM417を受信した旨を通知する。識別情報管理サービス66は、SIPメッセージ処理部53Iに切断要求メッセージM418を作成と送信を指示する(912)。
SIPメッセージ処理部53Iは、切断要求メッセージM419をSIPサーバSIPaに送信して、応答を待ち受ける(913)。
ここで、切断中メッセージを受信すると、当該メッセージを処理してステップ913に戻る。
一方、切断応答メッセージM420を受信した場合には、SIPメッセージ処理部53Iは切断応答メッセージM420を解析してメッセージ種類を識別情報管理サービス66に通知する。識別情報管理サービス66は、上記メッセージ種類を確認して、切断処理が正しく完了したかどうかを確認する(914)と、処理を終了する。
なお、ステップ903で切断開始要求メッセージM411の送信先が自ドメインであると判定された場合には、識別情報管理サービス66は、切断開始要求メッセージM411のボディ部を指定して、SIPメッセージ処理部53Iに切断先サーバのSIP−URI宛に切断開始要求メッセージを作成・送信するように指示する(917)。
SIPメッセージ処理部53Iは、作成した切断開始要求メッセージをSIPサーバSIPaに送信し、ステップ906以降の処理を実行する。
以上が、図34における、識別情報管理サーバISV、ドメイン管理サーバDSV、および図41における、識別情報管理サーバISV、クライアントCLの制御動作である。
本第4の実施例では、クライアントCLは、AOR取得要求メッセージをクライアントCLと同じドメインに属する識別情報管理サーバISV宛に送信するようにしている。かつ、AOR取得要求メッセージを受信した識別情報管理サーバISVは、識別情報管理テーブル64を検索して、対応するエントリが存在しなかった場合に、ドメイン管理サーバDSVを検索してAOR取得要求メッセージを送信すべき識別情報管理サーバISVを決定するようにしている。
このため、クライアントCLやサーバSVのサービス識別子を複数の識別情報管理サーバISVで分散して管理することができる。また、SIPサーバは、受信したSIPメッセージのヘッダ情報に従って、当該SIPメッセージを送信する先を決定するメッセージ転送機能を持てばよいため、一般的なSIPサーバを使用することができる。
さらに、識別情報管理サーバISVはSIP−URIが割り当てられているため、ある識別情報管理サーバISVにクライアントCLやサーバSVや他の識別情報管理サーバISVがSIPメッセージを送信する場合には、SIPサーバSIPのメッセージ転送機能を利用することができる。
また、本第4の実施例では、識別情報管理サーバISVが受信した接続要求メッセージのボディ部の内容に基づいて、送信する接続要求メッセージを作成するため、接続先サーバSVが受信する接続要求メッセージにはクライアントCLのSIP−URIが記載されていない。従って、クライアントCLがSIPサーバに認証されていることは保証しながら、クライアントCLのSIP−URIを接続先サーバSVに公開することなく、暗号通信を実施することができる。
なお、本発明は、第4の実施例の構成には限定されず、以下のように構成しても良い。
例えば、識別情報管理サーバISVは、切断要求メッセージの受信を契機として他の識別情報管理サーバISVや接続先サーバSVに切断要求メッセージを送信している。しかし、切断応答メッセージの受信を契機として切断要求メッセージを送信してもよい。
また、識別情報管理サーバISVは、識別情報管理テーブル64を検索して、検索に失敗した場合にドメイン管理サーバDSVに問合せを行っている。しかし、ドメイン管理サーバDSVに問合せを行い、自ドメインであると判定された場合に識別情報管理テーブル64を検索してもよいし、それぞれを並行して行ってもよい。
また、識別情報管理サーバISVは受信した接続要求メッセージのボディのドメイン名を確認して送信先を決定している。しかし、接続要求メッセージを送信してよいかどうかの判定を行い、送信してよいと判断した場合に、上記送信先に新たに作成した接続要求メッセージを送信してもよい。
さらには、AOR取得要求メッセージまたは接続要求メッセージに接続元の権限に関する情報や接続ポリシーに関する情報を記載し、識別情報管理サーバISVにおいてアクセス判定を行ってもよい。
また、識別情報管理サーバISVにおいて識別情報管理テーブル64を保持している。しかし、識別情報管理テーブル64を保持するデータベース装置を設置し、識別情報管理サーバISVはネットワークを介して上記テーブルにアクセスしてもよい。
また、本発明は、暗号化通信の開始および終了のための、接続要求メッセージから切断応答メッセージまでのSIPメッセージを識別情報管理サーバISVが送受している。しかし、上記のSIPメッセージを送受するための新たなサーバを設置してもよい。
さらに、本第4の実施例では、1つの管理ドメインを、1つのSIPサーバSIPと、1つの識別情報管理サーバISVと、で構成しているが、本発明はこれに限定されない。
例えば、クライアントCLやサーバSVとの間でSIPメッセージを送受するSIPサーバSIPと、他の管理ドメインのSIPサーバとの間でSIPメッセージを送受するSIPサーバSIPとを分け、識別情報管理サーバISVがSIPメッセージの送信先によってSIPメッセージを送信先となるSIPサーバを変更するようにしてもよい。
このようにすることで、SIPサーバSIPへの負荷集中を防止することができる。さらには、1つの管理ドメインを、複数のSIPサーバSIPと、複数の識別情報管理サーバISVと、で構成し、SIPサーバSIPや、識別情報管理サーバISVの負荷に応じて、SIPメッセージの送信先を変更するようにしてもよい。
さらに、本第4の実施例では、暗号化通信機能部がクライアントCLのアプリケーションとサーバSVのアプリケーションとの間の通信をIPsecで暗号化しているが、本発明はこれに限定されず、様々な暗号化通信プロトコルを適用することができる。
例えば、IPsecの代わりにTLSを用いて暗号化するようにしてもよい。TLSを用いて暗号化する場合には、暗号通信設定として、TLS Handshakeプロトコルで確立される接続情報を含む。すなわち、当該接続情報を識別するために使用するセッション識別子、通信相手のIPアドレスとポート番号、通信相手との通信に使用するIPアドレスとポート番号、アプリケーションデータを暗号化するための暗号アルゴリズム、アプリケーションデータのメッセージ認証を行うためのメッセージ認証アルゴリズム、暗号化やメッセージ認証に使用する鍵を計算するためのマスターシークレット、などが含まれる。
クライアントCL1は、暗号エンジン31Cに上記暗号通信設定を適用すると、接続先サーバSL1とTLSセッションを確立し、アプリケーションデータ通信を開始する。このとき、クライアントCLとサーバSVの間でTLSセッションを確立する場合には、RFC2246で規定されたセッション再開(Session Resume)機能を使用することができる。すなわち、クライアントCLは、暗号化通信機能部30Cが上記暗号通信設定のセッション識別子を含むClient Helloメッセージを接続先サーバSVに送信して、接続先サーバSVの暗号化通信機能部30Sにアプリケーションデータ通信に使用する暗号通信設定を通知する。
Client Helloメッセージを受信した接続先サーバSVの暗号化通信機能部30Sは、SADBを検索して、セッション識別子に対応する暗号通信設定が存在することを確認すると、セッション識別子を含むServer HelloメッセージをクライアントCLに送信する。Server Helloメッセージを受信したクライアントCLの暗号化通信機能部30CはClient Helloメッセージに含めたセッション識別子がServer Helloメッセージに含まれていることを確認すると、TLSセッションが確立したと判断し、アプリケーションデータ通信を開始する。
また、上記各実施例を適宜組み合わせて実施することも可能である。
SIPプロキシを適用した認証システムを説明するための図。
実施形態におけるセッション管理サーバ(SIPサーバ)を含むネットワーク構成を例示する図。
図2に示したロケーションサーバLSVが備えるロケーションサービステーブルを例示する図。
図2に示したSIPプロキシPRaのハードウェア構成を例示するブロック図。
図2に示したクライアントCL1aの基本的なソフトウェア構造を例示する図。
図2に示したサーバSV1bの基本的なソフトウェア構造を例示する図。
図2に示したSIPプロキシPRaの基本的なソフトウェア構造を例示する図。
図2に示したレジストラRGaの基本的なソフトウェア構造を例示する図。
第1の実施例における暗号化通信のシーケンスを例示する図(その1)。
第1の実施例における暗号化通信のシーケンスを例示する図(その2)。
図9におけるロケーション登録要求メッセージM1およびロケーション登録応答メッセージM2のフォーマットを例示する図。
図9におけるロケーションAOR取得要求メッセージM3およびロケーションAOR取得応答メッセージM4のフォーマットを例示する図。
接続要求メッセージM5のボディ部M5−2のフォーマットを例示する図。
接続応答メッセージM10のボディ部M10−2のフォーマットを例示する図。
鍵交換要求を受信した時、クライアントCL1aの暗号化通信制御部51Cが実行する制御動作を例示するフローチャート。
接続要求メッセージのボディ部を受信した時、クライアントCL1aのSIPメッセージ処理部53Cが実行する制御動作を例示するフローチャート。
AOR取得要求メッセージを受信した時、レジストラRGaのSIPメッセージ処理部53Rが実行する制御動作を例示するフローチャート。
接続要求メッセージを受信した時、SIPプロキシPRaのSIPメッセージ処理部53Pが実行する制御動作を例示するフローチャート。
接続要求メッセージを受信した時、サーバSV1bのSIPメッセージ処理部53Sが実行する制御動作を例示するフローチャート。
接続要求メッセージのボディ部を受信した時、サーバSV1bの暗号化通信制御部51Sが実行する制御動作を例示するフローチャート。
鍵消去要求を受信した時、クライアントCL1aの暗号化通信制御部51Cが実行する制御動作を例示するフローチャート。
切断処理要求を受信した時、クライアントCL1aのSIPメッセージ処理部53Cが実行する制御動作を例示するフローチャート。
切断要求メッセージを受信した時、SIPプロキシPRaのSIPメッセージ処理部53Pが実行する制御動作を例示するフローチャート。
切断要求メッセージを受信した時、サーバSV1bのSIPメッセージ処理部53Sが実行する制御動作を例示するフローチャート。
切断要求の発生通知を受信した時、サーバSV1bの暗号化通信制御部51Sが実行する制御動作を例示するフローチャート。
第2の実施例のネットワーク構成を例示する図。
第2の実施例を説明するためのシーケンスを例示する図。
図27における識別情報登録要求メッセージM101および識別情報登録応答メッセージM103のフォーマットを例示する図。
を例示する識別情報管理サーバISVの基本的なソフトウェア構造を例示する図。
図27におけるAOR取得要求メッセージM105およびAOR取得応答メッセージM107のフォーマットを例示する図。
第3、第4の実施例のネットワーク構成を例示する図。
第3の実施例における暗号化通信のシーケンスを例示する図。
第3の実施例のロケーション管理テーブル60、識別情報管理テーブル64、ドメイン管理テーブル68の構成を例示する図。
第4の実施例における通信の開始処理シーケンスを例示する図。
ドメイン管理サーバDSVの基本的なソフトウェア構造を例示する図。
第3の実施例のSIPサーバSIPがAOR取得要求メッセージを受信した場合の動作を例示するフローチャート。
第3の実施例の識別情報管理サーバISVがAOR取得要求メッセージを受信した場合の動作を例示するフローチャート。
第4の実施例におけるAOR取得要求メッセージM401およびAOR取得応答メッセージM404のフォーマットを例示する図。
第4の実施例における接続要求メッセージM405および接続応答メッセージM408のフォーマットを例示する図。
第4の実施例における切断開始要求メッセージM411および切断開始応答メッセージM414のフォーマットを例示する図。
第4の実施例における通信の切断処理を説明するためのシーケンスを例示する図。
第4の実施例の識別情報管理サーバISVがAOR取得要求メッセージを受信した場合の動作を例示するフローチャート。
第4の実施例の識別情報管理サーバISVが接続要求メッセージを受信した場合の動作を例示するフローチャート。
第4の実施例の識別情報管理サーバISVが切断開始要求メッセージを受信した場合の動作を例示するフローチャート。
切断処理要求を受信した時、クライアントCL1aのSIPメッセージ処理部53Cが実行する制御動作を例示するフローチャート。
ドメイン検索要求を受信した時、ドメイン管理サーバDSVが実行する制御動作を例示するフローチャート。
符号の説明
CL1a〜CL2b:クライアント、SV1a〜SV2b:サーバ、SIPa、SIPb:SIPサーバ、PRa、PRb:SIPプロキシ、RGa、RGb:レジストラ、LSV、LSVa、LSVb:ロケーションサーバ、ISV、ISVa、ISVb:識別情報管理サーバ、DSVa、DSVb:ドメイン管理サーバ、20:ネットワークインタフェースカード部、30:暗号化通信機能部、31:暗号エンジン、40:アプリケーションソフト、50:鍵管理プロセス、51:暗号化通信制御部、52:TLS部、53:SIPメッセージ処理部、60:レジストラ処理部、61:ロケーションサービステーブル、62:AOR、63:IPアドレス、64:識別情報管理テーブル、65:識別情報、66:識別情報管理サービス、67:ドメイン管理サービス、68:ドメイン管理テーブル、69:ドメイン。