説明

データ通信網のセキュアな連合

【課題】データ通信網のセキュアな連合のための技術を提供する。
【解決手段】エッジプロキシサーバを使用して、フェデレーションモードに依存してメッセージをルーティングする。直接フェデレーションモードでは、ネットワークのエッジプロキシサーバは、他のネットワーク(複数)、サーバ(複数)、他のデバイス(複数)、またはユーザ(複数)などの指定されたセットのエンティティとメッセージを交換するように構成される。自動フェデレーションモードでは、エッジプロキシサーバは、有効な証明書を有するエンティティからのすべての着信メッセージを受け入れることができる。クリアリングハウスフェデレーションモードでは、エッジプロキシサーバは、すべての送信メッセージを指定された信頼されるクリアリングハウスサーバに転送する。

【発明の詳細な説明】
【技術分野】
【0001】
ここで説明する技術は、全体としてはデータ通信網に関する。より詳細には、データ通信網のセキュアな連合(secure federation)に関する。
【背景技術】
【0002】
アプリケーションは、ときとして、コンピューティングデバイス間でセッションを確立し、管理する必要がある。セッションは、ある期間にわたって行われるコンピューティングデバイス間の対話のセットである。一例として、MICROSOFT MESSENGER(登録商標)または「ボイスオーバーインターネットプロトコル」であるVoIPなどのリアルタイム通信アプリケーションは、ユーザのために通信デバイス間でセッションを確立する。これらのアプリケーションは、「セッション開始プロトコル」である「SIP」などの様々な機構を使用して、セッションを確立することができる。SIPは、デバイスが、互いを検出し、デバイス間でセッションを確立し、変更し、終了するのに使用することができるアプリケーションレイヤ制御プロトコルである。SIPは、インターネット提案標準(internet proposed standard)である。SIPの仕様である「RFC3261」は、非特許文献1より入手可能である。イベント通知に関連するSIPの拡張に関する仕様である「RFC3265」は、非特許文献2より入手可能である。SIPサーバを探し出すことに関する仕様である「RFC3263」は、非特許文献3より入手可能である。以上の仕様の3つすべては、参照により全体が本明細書に組み込まれている。
【0003】
アプリケーションは、SIPを別のプロトコルとともに使用して、情報を送受信することができる。一例として、アプリケーションは、セッション中にリアルタイムデータを転送するために「リアルタイムトランスポートプロトコル」であるRTPとともにSIPを使用することができる。他のプロトコルとともにSIPを使用することにより、アプリケーションは、セッションを作成し、管理し、セッション中に情報を交換することができる。情報を交換するためにSIPとともに使用されるプロトコルは、情報をメッセージにセグメント化することがある。一例として、VoIPアプリケーションは、長いナレーション(narration)をより短いメッセージにセグメント化することができる。セッション中にメッセージを交換することは「ダイアログ」と呼ばれる。SIPは、一般に使用されるトランスポートレイヤプロトコルおよびネットワークレイヤプロトコルであるTCP/IP(伝送制御プロトコル/インターネットプロトコル)などの、より低レベルの通信レイヤを使用して、ダイアログのメッセージを転送することができる。
【0004】
SIPネットワークは、クライアントとして、サーバとして、または両方としてダイアログに参加することができるエンティティを含む。SIPは、次の4つのタイプのエンティティ、すなわち、ユーザエージェント、プロキシサーバ、リダイレクト(redirect)サーバ、およびレジストラ(registrar)をサポートする。ユーザエージェントは、他のSIPエンティティとメッセージを交換することにより、セッションの開始および終了を行う。ユーザエージェントは、一般に、SIP要求(例えば、セッションを開始する)を開始するデバイスであるユーザエージェントクライアント、または、一般に、SIP要求を受信し、そのような要求に応答するデバイスであるユーザエージェントサーバとすることができる。一例として、「IP電話」、パーソナルデジタルアシスタント、および他の任意のタイプのコンピューティングデバイスは、ユーザエージェントとすることができる。デバイスは、あるダイアログではユーザエージェントクライアントとし、別のダイアログではユーザエージェントサーバとすることができ、あるいはダイアログ中で役割を変更することができる。プロキシサーバは、クライアント(複数)に対しサーバとして動作し、サーバ(複数)に対してはクライアントとして動作するエンティティである。このように動作する際、プロキシサーバは、クライアントとサーバ間でメッセージの代行受信、解釈または転送を行う。プロキシサーバは、例えば、メッセージの送信者および受信者を検証することにより、ネットワークセキュリティに貢献する。リダイレクトサーバは、SIP要求を受け入れ、SIP応答を生成して、要求を送信したクライアントに代替のネットワークリソースと接触するように指示する。一例として、リダイレクトサーバは、幾つかのデバイスのいずれにおいて特定のユーザが現在、応対可能かを示すことができる。レジストラは、SIPクライアント(複数)から登録情報を受け入れ、ロケーションサービス、またはその他のエンティティに受け取られた登録情報を知らせるサーバである。
【0005】
SIPは次の2つのメッセージタイプをサポートする。クライアントからサーバに送信される要求、および、一般に、要求に応答する際にサーバからクライアントに送信される応答である。SIPメッセージは3つの部分を含む。SIPメッセージの第1の部分は、メッセージタイプを示すフィールド、およびプロトコルバージョンを示すフィールドを含む「開始行」である。SIPメッセージの第2の部分は、値が名前−値のペアとして表されるヘッダフィールド(複数)を含む。SIPメッセージの第3の部分は、開始されるべきセッションを記述する、またはセッションに関連するデータを含むのに使用されるメッセージの本文である。メッセージ本文は、要求中または応答中に現れることができる。
【0006】
SIPメッセージは、SIPメッセージのヘッダフィールド(複数)の内容に基づいてルーティングされる。適正には、SIP要求は少なくとも次の6つのヘッダフィールドを含まなければならない。すなわち、Toフィールド、Fromフィールド、CSeqフィールド、Call−IDフィールド、Max−Forwardsフィールド、Viaフィールドである。Toヘッダフィールドは要求の受信者の論理的IDを示す。Fromヘッダフィールドは要求の開始者の論理的IDを示す。Max−Forwardsヘッダフィールドは、要求の宛先に着信するまでに要求が行うことができるホップの回数を示す。一例として、デバイスAからのメッセージが宛先デバイスCに着信する前にデバイスBを通過する場合、そのメッセージは2回のホップ(例えば、デバイスBおよびC)を行ったという言い方をされる。Viaヘッダフィールドは、それまでに要求が辿ってきたパス(例えば、要求が通過してきたデバイスのネットワークアドレスのシーケンス)を示し、応答をルーティングする際に辿るべきパスを示す。ヘッダは、将来の要求および応答が示されたデバイス経由でルーティングされるべきことを示すのに使用されるRecord−Routeフィールド(複数)も含むことができる。ネットワークデバイス(複数)は、ダイアログの中の後続のメッセージが指定されたデバイスを介してルーティングされるように強制しようとして、SIPメッセージを転送する際にデバイス(複数)を指定するRecord−Routeヘッダフィールド(複数)を挿入することができる。Record−Routeヘッダフィールドは、デバイスおよびパラメータに関する識別子(例えば、ネットワークアドレス)を含むことができる。以上、およびその他のヘッダフィールド(複数)は、前述したSIP仕様書中で説明されている。
【0007】
幾つかの組織(organizations)がそれぞれ、SIPサーバ(複数)をネットワークリソースとして提供することができる。それらの組織は、それらの組織のネットワークの外部から、例えば、インターネットから、または他の組織からのSIPクライアント(複数)およびSIPサーバ(複数)が、それらの組織のSIPサーバ(複数)に接続して、メッセージを交換できるようにすることができる。組織は、組織のSIPサーバに関する証明書を信頼されるエンティティから獲得して、組織のSIPサーバが送信するメッセージを他の組織が認証できるようにすることができる。SIPサーバは、「TLS」(トランスポートレイヤセキュリティ)などのプロトコルを使用して、その証明書の指示をSIPサーバが送信するメッセージに追加することができる。
【0008】
組織は、組織のSIPサーバ(複数)またはSIPネットワーク(複数)を連合させる(federate)ことを所望することがある。組織のSIPサーバ(複数)またはSIPネットワーク(複数)を連合させることにより、組織は、組織のネットワーク(複数)の参加者が、その連合(federation)内の他の信頼される組織のSIPサーバ(複数)と通信できるようにする。一例として、組織は、アプリケーションレベル「VPN」(仮想プライベートネットワーク)をセットアップして、組織によって実行されているアプリケーション(複数)が、別の組織のネットワークに位置しているであろうSIPサーバ(複数)とセキュアに通信できるようにすることを所望することがある。SIPサーバ(複数)の管理者らが、管理者らのSIPサーバ(複数)をセキュアに連合させることができるようにする有効なアプローチは、重要な有用性を有する。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】RFC3261,<http://www.ietf.org/rfc/rfc3261.txt>
【非特許文献2】RFC3265,<http://www.ietf.org/rfc/rfc3265.txt>
【非特許文献3】RFC3263,<http://www.ietf.org/rfc/rfc3263.txt>
【発明の概要】
【発明が解決しようとする課題】
【0010】
従来、データ通信網のセキュアな連合のための技術が必要とされている。
【課題を解決するための手段】
【0011】
データ通信網のセキュアな連合のための技術を提供する。この技術は、エッジプロキシサーバを使用して、フェデレーションモードに依存してメッセージをルーティングする。直接フェデレーションモード(Direct federation mode)では、ネットワークのエッジプロキシサーバは、メッセージを、他のネットワーク(複数)、サーバ(複数)、デバイス(複数)、またはユーザ(複数)などの指定されたエンティティのセットと交換するように構成される。自動フェデレーションモード(Automatic federation mode)では、エッジプロキシサーバは、有効な証明書を有するエンティティからのすべての着信メッセージを受け入れることができる。クリアリングハウスフェデレーションモード(Clearinghouse federation mode)では、エッジプロキシサーバは、すべての送信メッセージを、指定された信頼されるクリアリングハウスサーバに転送する。
【図面の簡単な説明】
【0012】
【図1】データ通信網のセキュアな連合のためのシステムの一実施形態を示すブロック図である。
【図2】図1のネットワークの実施形態を示すブロック図である。
【図3】図2のエッジプロキシサーバの実施形態を示すブロック図である。
【図4】別の連合させられたネットワーク上のデバイス(複数)と交換されるメッセージを扱うためにエッジプロキシサーバによって実行されるルーチンの実施形態を示す流れ図である。
【発明を実施するための形態】
【0013】
一実施形態では、データ通信網のセキュアな連合のための技術が提供される。この技術は、エッジプロキシサーバを使用して、フェデレーションモードに依存してメッセージをルーティングする。エッジプロキシサーバは、エッジプロキシサーバのネットワーク「外部の」コンピューティングデバイスが、エッジプロキシサーバを介してエッジプロキシサーバのネットワーク「内部の」コンピューティングデバイスと通信するように、また同様にその逆を行うように、2つのネットワーク(例えば、イントラネットとインターネット、または2つのイントラネット)間にまたがるネットワークリソースである。エッジプロキシサーバは、エッジプロキシサーバのネットワークの両側のコンピューティングデバイス間における仲介役として動作する。そのように動作する際、エッジプロキシサーバは、クライアントやサーバなどのエンティティ間で、メッセージの代行受信、解釈、または転送を行う。管理者は、ダイレクトモード、オートモード、またはクリアリングハウスモードを含む幾つかのフェデレーションモードの1つまたは複数において、エッジプロキシサーバを有するデータ通信網を連合させることを選択することができる。管理者は、エッジプロキシサーバのネットワーク外部のコンピューティングデバイスのユーザによるエッジプロキシサーバのネットワーク内部のコンピューティングデバイスへのアクセスを許す、または拒否することを選択することもできる。
【0014】
直接フェデレーションモードでは、ネットワークのエッジプロキシサーバは、メッセージを、他のネットワーク(複数)、サーバ(複数)、デバイス(複数)、またはユーザ(複数)などの指定されたエンティティのセットと交換するように構成される。ネットワーク管理者は、エッジプロキシサーバがメッセージを交換することが許可される相手である、サーバまたはドメインなどの許可されたエンティティを指定することができる。管理者は、「URI」(ユニフォームリソースアイデンティファイア)を使用して、それらのエンティティを指定することができる。一例として、管理者は、管理者のエッジプロキシサーバ「edge.partnera.com」を介するダイレクトフェデエレーションに関してパートナー(「PartnerA」)を許可するように示し、PartnerAにドメイン「partnera.com」に関してだけ責任および許可を与えることができる。この構成は、「edge.partnera.com」が、接続し、「<任意のユーザ>@partnera.com」のパターンとマッチするURIを有する任意のユーザに関するメッセージを送信、または受信することを許可する。エッジプロキシサーバは、例えば、証明書、共有鍵、秘密で交換される公開鍵/秘密鍵ペア、Kerberos、またはその他の資格証明書ベースの認証を含む、様々な認証モデルを使用して、エッジプロキシサーバのネットワーク外部のコンピューティングデバイス(複数)を認証することもできる。エッジプロキシサーバによって使用される認証モデルを選択する管理者は、「DNS」(ドメインネームサービス)以外の認証が使用されてはならないことを示すこともできる。この認証は、接続が確立された際に受け取られた、または着信メッセージのヘッダフィールドの中で現れる証明書が、取り消された証明書のリスト中に現れるかどうかを判定することを含むことができる。証明書が使用される場合、取り消された証明書のこのリストは、ときどき、自動的に、または手動で更新されることができる。許可されたエンティティを認証することは、許可されたエンティティが有効な(例えば、認証済みの)接続上でメッセージを送信したかどうかを判定することも含むことができる。認証検査および許可検査が完了すると、エッジプロキシサーバは、認証されていない、または許可されていないエンティティからの、またはそのようなエンティティへのすべてのメッセージを無視することができる。メッセージが許可されたエンティティ(認証済みであることも可能な)から着信すると、エッジプロキシサーバは、そのメッセージを送信したエンティティ、またはそのメッセージの受信者であるエンティティが、「拒否リスト」の中に現れるかどうかを検査することができる。一例として、「X.COM」は、許可されたエンティティであるが、「JOE@X.COM」は拒否リストの中にある可能性がある。そのようなケースでは、「SALLY@X.COM」からのメッセージは受け入れられるが、「JOE@X.COM」からのメッセージは無視される。次に、エッジプロキシサーバは、無視されなかったメッセージを適切な「次のホップ(next hop)」に転送することができる。次のホップは、そのメッセージが次にルーティングされるコンピューティングデバイスである。エッジプロキシサーバは、メッセージのヘッダフィールド(複数)の内容に基づいて、次のホップの管理者構成により、またはそのメッセージの受信に関連する登録サーバなどの別のサーバにクエリを行うことにより、そのメッセージに関する次のホップを特定する。このため、直接フェデレーションモードでは、メッセージは管理者によって許可されるように指示されたエンティティとだけ交換されることがあり、認証されることができる。
【0015】
自動フェデレーションモードでは、エッジプロキシサーバは、エッジプロキシサーバの管理者によって容認できると示された形で自らを認証することができるエンティティからのすべての着信メッセージを受け入れることができる。エッジプロキシサーバは、例えば、証明書、共有鍵、秘密で交換される公開鍵/秘密鍵ペア、Kerberos、またはその他の資格証明書ベースの認証を含む、様々な認証モデルを使用して、エッジプロキシサーバのネットワーク外部のコンピューティングデバイス(複数)を認証することができる。一例として、エンティティは、メッセージをエッジプロキシサーバに送信する際、すべてのメッセージに証明書を追加すること、または接続に関連する証明書を提供することにより、自らをエッジプロキシサーバに対して認証することができる。認証済みの接続上でメッセージを受信すると、エッジプロキシサーバは、その証明書に基づいてメッセージを受け入れることを選択することができる。これとは別に、メッセージは、認証されていない接続上のメッセージを認証する証明書を含むこともできる。認証は、例えば、メッセージの中で示された証明書が、取り消された証明書のリストの中で現れるかどうかを判定することによって証明書を検証することを含むことができ、これは、メッセージまたは接続を無効にする指示とすることができる。この取り消された証明書のリストは、ときどき、自動的に、または手動で更新される。エッジプロキシサーバは、メッセージの送信者に関して示されたURIが、メッセージを実際に送信したドメイン(送信側エンティティを認証するのに使用される証明書で識別される)とマッチすることを検証することができる。エッジプロキシサーバは、エッジプロキシサーバのネットワーク内部のコンピューティングデバイスから送信メッセージを受信すると、DNSのクエリサービスである「SRV」を使用して、宛先サーバがどのようなサービスを提供するかを知ることができる。この機構は、合わせて「DNS−SRV」と呼ばれる。次に、エッジプロキシサーバは、宛先サーバが相互認証トランスポートレイヤセキュリティ(Mutually authenticated Transport Layer Security)である「MTLS」を提供する場合、MTLSを使用して、宛先サーバに対してセキュリアなセッションを要求することができる。自動フェデレーションモードは、そこからのメッセージが拒否される、またはそこにメッセージが送信されないことが可能なエンティティを含む拒否リストも有することができる。このため、自動フェデレーションモードでは、エッジプロキシサーバは、メッセージが実際に受信されるか、または送信されるまで、その連合(federation)の他のネットワーク(複数)またはサーバ(複数)について知る必要がない。
【0016】
クリアリングハウスフェデレーションモードでは、エッジプロキシサーバは、すべての送信メッセージを、指定された信頼されるクリアリングハウスサーバに転送する。クリアリングハウスサーバは、クリアリングハウスサーバが受信するメッセージを、メッセージの中で指定された受信者に転送することができる。一実施形態では、クリアリングハウスサーバは、セッションの中で接続されたコンピューティングデバイス間でメッセージをルーティングすることを続ける。一実施形態では、メッセージの受信者は、セッションの中の後続のメッセージに関してクリアリングハウスを迂回して、送信者に対して直接にセッションを確立することができる。クリアリングハウスを使用することにより、エッジプロキシサーバは、その連合(federation)の他のネットワーク(複数)またはサーバ(複数)について知る必要がなく、信頼されるクリアリングハウスサーバについてだけ知っていればよい。ある連合のネットワーク(複数)またはサーバ(複数)は、クリアリングハウスによってメッセージが転送されたすべてのエンティティを黙示的に信頼することができる。ただし、自動フェデレーションモードおよび直接フェデレーションモードと同様に、クリアリングハウスフェデレーションモードは、そこからのメッセージが拒否されるエンティティを含む拒否リストも有することができる。クリアリングハウスフェデレーションモードでは、エッジプロキシサーバは、そのメッセージ交換を円滑にする管理されたクリアリングハウスの使用を介して、最小限の構成で多数のネットワークとメッセージを交換するように容易に構成することができる。
【0017】
クリアリングハウスフェデレーションモードの代替の実施形態では、クリアリングハウスサーバは、いずれのドメインにクリアリングハウスサーバがメッセージを転送することができるかを示すことができる。この指示(indication)により、クリアリングハウスサーバのサブセットが管理者のエッジプロキシサーバ(複数)にメッセージを転送するのを管理者が許可することができるようになる。
【0018】
複数のフェデレーションモードを、様々な「ハイブリッド」フェデレーションモードにおいて同時に使用することもできる。一例として、幾つかの直接フェデレーションモードのパートナーが構成されている場合でも、オートフェデエレーションを使用することができる。エッジプロキシサーバは、エッジプロキシサーバが対話する相手のエンティティを、管理者が後に改良してエントリを追加する、または削除することができる許可リストに動的に追加することにより、追加のエンティティを自動的に許可することもできる。クリアリングハウスフェデレーションモードを直接フェデレーションモードと一緒に使用することもできる。この構成では、エッジプロキシサーバは、許可されたエンティティと直接にメッセージを交換することができ、クリアリングハウスサーバを使用して他のエンティティを認証することができる。既知のエンティティを指定し、より大きいセットのエンティティとのメッセージ交換も可能にすることにより、システムは、管理者側の相当な手作業を要求することなしに、大きいセットのエンティティとの通信が可能になる。
【0019】
次に図を参照すると、図1は、データ通信網をセキュアに連合させる(federating data communications networks securely)ためのシステムの実施形態を示すブロック図である。このシステムは、1つまたは複数のクライアント102、1つまたは複数のネットワーク104、並びにインターネットなどのクライアント(複数)およびネットワーク(複数)114を接続するネットワークを有することができる。クライアント(複数)は、ネットワーク接続108を介してインターネットに接続することができる。ネットワーク(複数)104は、様々な形態のデータ通信リンク110を使用してインターネットに接続することができる。クライアント(複数)は、例えば、コンピュータ(複数)、携帯電話(複数)、またはインターネットに接続された他のデバイス(複数)であって良い。ネットワーク(複数)は、例えば、イントラネット(複数)とすることができる。クライアント(複数)は、専用データ通信リンク112を使用してネットワーク(複数)に直接に接続することもできる。同様に、ネットワーク(複数)も、専用データ通信リンク112を使用して他のネットワーク(複数)に直接に接続することができる。システムは、データ通信リンク118を介してインターネットに接続されたクリアリングハウス116も有することができる。インターネットは、他の様々なコンピューティングデバイス(図示せず)にも接続することができる。本明細書で説明する接続は、物理的とすることが可能であり、ワイアレスとすることが可能であり、実際、任意の形態のデータ通信網接続とすることができる。
【0020】
図2は、図1のネットワークの実施形態を示すブロック図である。ネットワーク200は、1つまたは複数のクライアント202、サーバ204、ディレクトリサーバ206、ダイレクタ(director)208、DNS210、およびエッジプロキシサーバ212を含む。ネットワークは、その他のデバイス(複数)(図示せず)も含むことができる。ネットワークの図示したデバイス(複数)(および図示していないデバイス(複数))は、ネットワーク200に関連するデータ通信網を介して互いに接続することができる。クライアント(複数)202およびサーバ204は、SIPメッセージを交換することを含め、様々な活動を実行することができる。ディレクトリサービス206は、デバイス(複数)、ユーザ(複数)、およびその他のネットワークリソース(複数)に関するロケーションサービスを提供することができる。一例として、ディレクトリサービスは、ACTIVE DIRECTORYサービスとすることができる。ダイレクタ208は、例えば、クライアント(複数)をクライアント(複数)が関連するサーバに、またはサーバのプールにリダイレクトすること、ネットワークトラフィックのログをとること、およびネットワークの一部ではないコンピューティングデバイスからネットワークに接続するユーザ(複数)を認証することを含め、様々なサーバ関連機能を実行する。DNSは、ネットワークリソース名(例えば、デバイス名)をネットワークロケーション(例えば、IPアドレス)にマップするデータベースを有する。ネットワークのデバイス(複数)は、DNSを使用して、「フレンドリな」デバイス名を、そのデバイスがメッセージをルーティングするのに使用することができるネットワークアドレスに帰着(resolve)することができる。エッジプロキシサーバ212は、ネットワーク200(「内部」ネットワーク)と「外部」ネットワーク、例えば、インターネット(図示せず)の両方に接続される。クライアントがサーバに対するセッションを開くことを所望する場合、エッジプロキシサーバは、例えば、セッションが開かれるべきかどうか、およびいずれの通信リンクが使用されるべきかを判定することができる。
【0021】
図3は、図2のエッジプロキシサーバに関連するコンポーネント(複数)の実施形態を示すブロック図である。コンポーネント(複数)は、トランスポートコンポーネント302、DNS−SRVコンポーネント304、ルーティングコンポーネント306、およびリストコンポーネント308を含む。エッジプロキシサーバは、着信メッセージ(すなわち、「外部」ネットワークから着信するメッセージ)を受信し、送信メッセージ(すなわち、「外部」ネットワークに向かうメッセージ)を転送する。エッジプロキシサーバは、メッセージに関連する様々な操作を実行した後、着信メッセージまたは送信メッセージを次のホップ(すなわち、メッセージが次にルーティングされるデバイス)に転送する。これらの操作には、メッセージが、メッセージヘッダフィールド中に示されたサーバから受信されたかどうかを確認すること、メッセージの送信者が、エッジプロキシサーバのネットワークにメッセージを送信することを許可されているかどうかを判定すること、いずれのデバイスにメッセージが次にルーティングされるべきかを判定することが含まれ得る。これらの操作は、トランスポートコンポーネント302、ルーティングコンポーネント306、ドメインネームサービスクエリサービスコンポーネント304、リストコンポーネント308などの、ネットワークの様々なコンポーネント、およびエッジプロキシサーバによって、またはそれらを使用して実行される。
【0022】
トランスポートコンポーネント302はエッジプロキシサーバがメッセージを交換する相手のコンピューティングデバイス(複数)に対してセッションを確立する。一例として、トランスポートコンポーネントはメッセージをネットワークに送り込むコンピューティングデバイスに対してMTLS接続を確立することができる。トランスポートコンポーネントは、例えば、エッジプロキシサーバが指定された機能を実行するのを妨げようとする、悪意のあるユーザまたはデバイスによる試みである「DoS攻撃」からエッジプロキシサーバを保護しようと努めて、トランスポートコンポーネントが他のコンピューティングデバイス(複数)に対して確立するセッション数または接続数を制御することもできる。トランスポートコンポーネントは、ネットワーク外部のデバイスからのメッセージ中に現れる、またはネットワーク外部のデバイスに対して接続を確立する際に受け取られた証明書が、無効な証明書のリストに現れないことを確認することもできる。トランスポートコンポーネントは、システムがネットワーク外部のデバイス(複数)に転送するまたはそのようなデバイス(複数)に対して接続を確立するメッセージに独自の証明書を追加することもできる。
【0023】
ルーティングコンポーネント306は、着信メッセージおよび送信メッセージが、メッセージのヘッダフィールド(複数)の内容に基づいて転送されるべきかどうかを判定する。ルーティングコンポーネントは、メッセージの送信者のURIが、メッセージのヘッダに含まれる認証情報、およびその他の情報とマッチするかどうかを判定することにより、着信メッセージを検証する。エッジプロキシサーバが直接フェデレーションモードで動作しているか、自動フェデレーションモードで動作しているか、またはハイブリッドフェデレーションモードで動作しているかに関わらず、ルーティングコンポーネントは、送信者または受信者のエンティティ(またはエンティティのドメイン)が、許可されたエンティティまたはドメインのリストに現れるかどうかを判定する。エッジプロキシサーバが自動フェデレーションモード(または自動フェデレーションモードを含むハイブリッドフェデレーションモード)で動作している場合、ルーティングコンポーネントは、URIのドメインがメッセージのヘッダに含まれる他の情報とマッチするかどうかも判定する。
【0024】
ルーティングコンポーネントは、メッセージのヘッダフィールド(複数)の内容に基づき、送信メッセージの検証も行う。直接フェデレーションモードで動作している場合、ルーティング機構は、送信メッセージに関して示されたドメインが許可されているかどうかを判定する。そのドメインが許可されていない場合、ルーティングコンポーネントは、そのメッセージを無視するか、またはそのドメインが許可されていないことを示す応答メッセージを戻す。自動フェデレーションモードで動作している場合、ルーティングコンポーネントは、メッセージの中で示された宛先エンティティのドメインが許可されているかどうかをまず確認する。そのドメインが許可されていない場合、メッセージは、DNS−SRVコンポーネントに転送され、そのメッセージを転送することができるかどうか判定することができる。メッセージは、DNS−SRVコンポーネントが、そのメッセージを受信する適切なエンティティを探し出すことができない場合は転送されないことができる。
【0025】
「DNS−SRV」(ドメインネームサービスクエリサービスコンポーネント)304は、メッセージに関する宛先サーバ(複数)を特定する。このコンポーネントを送信メッセージに関して使用して、メッセージをどのようにルーティングするかを特定することができる。DNS−SRVコンポーネントは、いずれのサーバにメッセージをルーティングするかをコンポーネントが特定することができない場合、メッセージを無視するか、または失敗を示す応答メッセージを戻すことができる。メッセージがルーティングされるべき適切なサーバを探し出すことができないことは、メッセージが、許可されていないサーバを宛先としていることを示す可能性がある。DNS−SRVコンポーネントは、DNSサーバにクエリを行うことにより、そのメッセージをルーティングすることができるサーバのセットを獲得する。DNS−SRVコンポーネントは、トランスポートコンポーネントによって要求された場合、このクエリを実行して、例えば、URIに基づいてメッセージに関するサーバを示す。すると、トランスポートコンポーネントが、示されたサーバにメッセージを送信しようと試みる。トランスポートコンポーネントは、示されたサーバと接触することができない場合、代替のサーバを提供するようにDNS−SRVコンポーネントに要求することができる。このプロセスは、トランスポートコンポーネントが接触することができるサーバをDNS−SRVコンポーネントが明らかにするまで繰り返される。これとは別に、DNS−SRVコンポーネントは、サーバのリストをトランスポートコンポーネントに提供し、トランスポートコンポーネントは、トランスポートコンポーネントが接触することができるサーバを探し出すまで、独立にリストを反復処理する(iterate)。DNS−SRVコンポーネントは、エッジプロキシサーバが直接フェデレーションモードで動作している場合は、以上のステップを実行しなくてもよいことがある。というのは、サーバアドレスが明示的に示されることができるからである。
【0026】
リストコンポーネント308は、エッジプロキシがメッセージを交換する相手のエンティティの関連リスト(「受け入れリスト」)及びエッジプロキシがメッセージを交換しない相手のエンティティの関連リスト(「拒否リスト」)を有することができる。リストは、ハードディスクドライブ、ランダムアクセスメモリまたは接続されたファイルサーバ(図示せず)などの、エッジプロキシサーバに関連する、または接続された記憶装置に格納できる。一実施形態では、システムは、受け入れリスト(すなわち、許可済みのエンティティを含む)を調べてから拒否リスト(すなわち、許可されていないエンティティを含む)を調べることができる。代替実施形態では、システムは逆の順序でリストを調べることができる。いずれのリストが先に調べられるかは、あるエンティティが両方のリストに現れる場合、異なる結果をもたらす可能性がある。一例として、あるエンティティが両方のリストに現れ拒否リストが先に調べられる場合、そのエンティティからのメッセージは、そのエンティティが受け入れリストに後で追加された場合でも受け入れられない可能性がある。
【0027】
リストは、探索をサポートする様々なスキームを使用して指定されたエンティティを含むことができる。一例として、管理者が、完全修飾ドメイン名、IPアドレス、DNR−SRVクエリ、並びにサーバまたはドメインを示す他の一般に使用される手段を使用して、エンティティを指定することができる。リスト中の情報は、式(expression)を使用して示される。一例として、管理者は、「MICROSOFT(登録商標).COM」で終わるすべてのドメインが許可されることを示すことができる。リストコンポーネントが、パターン探索機構を使用して、リストの中でエンティティを探索することができる。このようなパターンは、ワイルドカードを含むことができる。一例として、「.MICROSOFT(登録商標).COM」を、「MICROSOFT(登録商標).COM」で終わるドメインへの、またはそのようなドメインからのすべてのメッセージが許可される指示(indication)とすることができる。
【0028】
許可されたエンティティと許可されていないエンティティの組み合わせを使用して、ドメイン内の特定のエンティティが、メッセージを送信する、または受信することができるようにすることができる。一例として、「.x.com」は、「x.com」で終わるすべてのドメインが許可されていないが、「ceo.x.com」は許されることができることを示すことができる。このようなケースでは、ドメイン「x.com」を有するいずれのエンティティへの、またはそのようないずれのエンティティからのメッセージも、「ceo.x.com」への、または「ceo.x.com」からのメッセージを除き、すべて無視される。
【0029】
システムは、以上のコンポーネントを使用して、送信メッセージを様々な形でルーティングするかどうか、またはどのようにルーティングするかを判定することができる。システムは、メッセージを受信するエンティティが許可されたドメイン内にあるかどうかをまず判定することができる。エンティティが許可されていないドメイン内にある場合、システムは、そのエンティティが許可されたエンティティのリストに現れるかどうかを判定することができる。一例として、「X.COM」ドメインは、許可されていないが、「CEO.X.COM」エンティティは、許可されていることができる。ドメインが許可されていないわけではなく(明示的に許可されていない)場合、システムは、DNSと接触して、そのメッセージをどのようにルーティングするかを判定することができる。受信者に関するDNSエントリが存在しない場合、システムは、そのメッセージをルーティングするようにクリアリングハウスと接触することができる。これとは別に、システムは、メッセージをどのようにルーティングするか(例えば、「既定の」経路)を独立に知っていることが可能な信頼されるパーティにメッセージを送信することができる。
【0030】
エッジプロキシサーバは、メッセージをルーティングするための企業のビジネスモデルに関連する許可論理を実施することもできる。一例として、エッジプロキシサーバは、一部のユーザおよびデバイスがSIPメッセージを交換できるようにするが、他のユーザおよびデバイスがそうできるようにはしないように構成することができる。この許可論理は、あらゆるフェデレーションモードを使用して、メッセージを許可し、ルーティングすることができる。別の例として、エッジプロキシサーバは、ダイレクトフェデレーションルーティングをまず試みることができる。それが失敗した場合、エッジプロキシサーバは、次にオートフェデレーションルーティングを試みることができる。これらのフェデレーションルーティング機構のいずれも、メッセージが転送されることを可能にしなかった場合、エッジプロキシサーバは、クリアリングハウスが「既定の」経路として示されるクリアリングハウスフェデレーションモデルを使用することができる。
【0031】
図4は、別の連合させられたネットワーク上のデバイス(複数)と交換されるメッセージを扱うためにエッジプロキシサーバによって実行されるルーチンの実施形態を示す流れ図である。一例として、ルーチンは、異なるネットワークにそれぞれが結合された2つのデバイス間でセッションに関連するメッセージの許可、認証、および転送を行うことができる。ルーチンはブロック502で始まり、メッセージをパラメータとして受け取る。ブロック504で、メッセージが内部サーバから受信されたかどうかを判定する。メッセージが内部サーバから受信されている場合はブロック506に進み、そうでない場合はブロック514に進む。ブロック506で、メッセージが要求であるか、応答であるかを判定する。メッセージが要求である場合はブロック508に進み、要求ではない場合はブロック512に進む。ブロック508で、ルーチンは、送信者または受信者が許可されているかどうかを判定する。許可されている場合、ルーチンは、メッセージからのRouteヘッダフィールド(複数)を検証し、Record−RouteヘッダフィールドおよびViaヘッダフィールドに署名し、要求を転送する。Record−RouteヘッダフィールドおよびViaヘッダフィールドには、ルーティングのためにRouteヘッダおよびViaヘッダを使用するデバイス(複数)が、デバイス(複数)が受信する将来のメッセージの中のメッセージヘッダ(複数)を信頼することができるように署名が行われる。
【0032】
ブロック512で、応答の中で示された送信者または受信者が許可されているかどうかを判定する。許可されている場合、応答の署名済みのViaヘッダフィールド(複数)に基づいて応答をルーティングする。
【0033】
ブロック514で、メッセージが要求であるか、応答であるかを判定する。メッセージが要求であった場合はブロック516に進み、要求ではなかった場合はブロック518に進む。ブロック516で、要求が転送されるべきサーバを認証する。サーバが認証された場合、FromヘッダフィールドおよびURIヘッダフィールドを検証する。これらのヘッダフィールド(複数)が有効であった場合、メッセージを次のホップに転送する。
【0034】
ブロック518で、メッセージのViaヘッダフィールド(複数)を検証する。これらのフィールドが有効であった場合、応答をサーバに転送する。
【0035】
ルーチンは、ブロック510でルーチンの呼び出し元に戻る。
【0036】
本明細書で説明した特定の実施例はSIPを使用することに関し述べているが、代替の実施形態では、他の均等なプロトコルまたは類似のプロトコルを使用することもできる。
【0037】
データ通信網のセキュアな連合のためのシステムが実施されるコンピューティングデバイスは、中央処理装置、メモリ、入力デバイス(複数)(例えば、キーボードおよびポインティングデバイス)、出力デバイス(複数)(例えば、ディスプレイデバイス(複数))、および記憶装置(複数)(例えば、ディスクドライブ(複数))を含むことができる。メモリおよび記憶装置(複数)は、本システムを実施する命令を含むことが可能なコンピュータ可読媒体である。さらに、データ構造およびメッセージ構造は、通信リンク上の信号などのデータ伝送媒体を介して格納または伝送することができる。インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、またはポイントツーポイントダイヤルアップ接続などの様々な通信リンクを使用することができる。
【0038】
図1は、データ通信網のセキュアな連合のためのシステムを実施することができる適切な動作環境の実施例を示す。この動作環境は、適切な動作環境の一例に過ぎず、本システムの用法または機能の範囲について何ら限定するものではない。使用に適する可能性がある他の周知のコンピューティングシステム、コンピューティング環境、およびコンピューティング構成には、パーソナルコンピュータ、サーバコンピュータ、「スマート」携帯電話を含むハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、以上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【0039】
データ通信網のセキュアな連合のためのシステムは、1つまたは複数のコンピュータまたは他のデバイスによって実行される、プログラムモジュール(複数)などの、コンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュール(複数)には、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通常、プログラムモジュール(複数)の機能は、様々な実施形態において所望に応じて組み合わせること、または分散させることができる。
【0040】
以上から、本発明の特定の実施形態を例示の目的で本明細書で説明してきたが、本発明の趣旨および範囲を逸脱することなく、様々な変更形態を実施できることが認められよう。したがって、本発明は、特許請求の範囲による他、限定されるものでない。
【符号の説明】
【0041】
102,202 クライアント
104,200 ネットワーク
114 インターネット
116 クリアリングハウス
204 サーバ
206 ディレクトリ
208 ダイレクタ
210 DNS
212,300 エッジプロキシ
302 トランスポートコンポーネント
304 DNS−SRVコンポーネント
306 ルーティングコンポーネント
308 リストコンポーネント

【特許請求の範囲】
【請求項1】
クリアリングハウスフェデレーションモードでネットワークを連合させるための、中央処理装置を備えたエッジプロキシサーバにより実行する方法において、
信頼されるエンティティのリストを受信すること、
前記中央処理装置が、受取先を示すメッセージを送信用コンピューティングデバイスから受信すること、
該コンピューティングデバイスから該メッセージを受信するとすぐに、該メッセージが示す前記受取先が、前記受信したリストにより指定された信頼されるエンティティに関連するかを判定すること、並びに、
該受取先が該リストにより指定された信頼されるエンティティに関連する場合は、前記受信したメッセージのための次のホップとして前記信頼されるエンティティに関連するコンピューティングデバイスを識別し及び該メッセージを前記信頼されるエンティティに関連する、識別した前記コンピューティングデバイスに転送し、或いは、該受取先が該リストにより指定された信頼されるエンティティに関連しない場合は、前記受信したメッセージが次にルーチングされるコンピューティングデバイスを識別するホップであって該メッセージのための次のホップを、ネットワーク連合をイネーブルするように構成されたクリアリングハウスサーバによって識別でき、該メッセージにおいて指定された前記受取先に該メッセージが転送されるように、該メッセージを前記クリアリングハウスサーバに転送すること、
を含むことを特徴とする方法。
【請求項2】
請求項1の方法において、さらに、
前記メッセージが有効な接続上で受信されたことを検証することを含むことを特徴とする方法。
【請求項3】
請求項1の方法において、
前記受信したメッセージのヘッダフィールドがデジタル証明書を含むことを特徴とする方法。
【請求項4】
請求項1の方法において、さらに、
前記受信したメッセージの送り手と該メッセージにおいて指定された前記受取先の間に、セッション開始プロトコルを用いてセッションを確立することを含むことを特徴とする方法。
【請求項5】
請求項4の方法において、
前記セッション開始プロトコルセッションにおける後続のメッセージが、前記クリアリングハウスサーバを通過することを特徴とする方法。
【請求項6】
請求項4の方法において、
前記セッション開始プロトコルセッションにおける後続のメッセージが、前記クリアリングハウスサーバを通過せずに前記エッジプロキシサーバを通過することを特徴とする方法。
【請求項7】
請求項1の方法において、
前記エッジプロキシサーバは、該サーバが前記クリアリングハウスサーバから受け取るメッセージを信頼し、そして、該メッセージがデジタル証明書を含むかをチェックしないことを特徴とする方法。
【請求項8】
請求項1の方法において、
前記受取先を示すメッセージが示す前記受取先が前記受信したリストにより指定された信頼されるエンティティに関連しない場合は、前記受信したメッセージのための次のホップとして前記クリアリングハウスサーバを識別して、該メッセージを該クリアリングハウスサーバに転送することを特徴とする方法。
【請求項9】
請求項1の方法において、
前記クリアリングハウスサーバは、該サーバがどのドメインにメッセージを転送できるかを指し示すことを特徴とする方法。
【請求項10】
請求項9の方法において、さらに、
前記クリアリングハウスサーバ(該サーバからそれがメッセージを受信することができる)のリストを受信すること及び該リストに挙げられたクリアリングハウスサーバから受信されないどんなメッセージでも無視することを含むことを特徴とする方法。
【請求項11】
コンピュータが実行可能な命令であって実行されるとエッジプロキシサーバにクリアリングハウスフェデレーションモードでネットワークを連合させるための方法を行わせる命令をストアしたコンピュータ可読媒体であって、該方法が、
信頼されるエンティティのリストを受信すること、
受取先を示すメッセージを送信用コンピューティングデバイスから受信すること、
該メッセージが示す前記受取先が、前記受信したリストにより指定された信頼されるエンティティに関連するかを判定すること、並びに、
該受取先が該リストにより指定された信頼されるエンティティに関連する場合は、前記受信したメッセージのための次のホップとして前記信頼されるエンティティに関連するコンピューティングデバイスを識別し及び該メッセージを前記信頼されるエンティティに関連する、識別した前記コンピューティングデバイスに転送し、或いは、該受取先が該リストにより指定された信頼されるエンティティに関連しない場合は、前記受信したメッセージのための次のホップとしてクリアリングハウスサーバを識別し、及び、前記受信したメッセージが次にルーチングされるコンピューティングデバイスを識別するホップであって該メッセージのための前記次のホップを、ネットワーク連合をイネーブルするように構成された前記クリアリングハウスサーバによって識別でき、該メッセージにおいて指定された前記受取先に該メッセージが転送されるように、該メッセージを前記クリアリングハウスサーバに転送すること、
を含むことを特徴とするコンピュータ可読媒体。
【請求項12】
請求項11のコンピュータ可読媒体において、
前記受信したメッセージの送り手と前記受取先の間のセッションにおける後続のメッセージが、前記クリアリングハウスサーバを通過することを特徴とする媒体。
【請求項13】
請求項11のコンピュータ可読媒体において、
前記受信したメッセージの送り手と前記受取先の間のセッションにおける後続のメッセージが、前記クリアリングハウスサーバを通過せずに前記エッジプロキシサーバを通過することを特徴とする媒体。
【請求項14】
請求項11のコンピュータ可読媒体において、
前記エッジプロキシサーバは、該サーバが前記クリアリングハウスサーバから受け取るメッセージがデジタル証明書を含むかをチェックしないことを特徴とする媒体。
【請求項15】
請求項11のコンピュータ可読媒体において、
前記エッジプロキシサーバは、該サーバが前記クリアリングハウスサーバから受け取るメッセージが含むどんなデジタル証明書の妥当性も検証しないことを特徴とする媒体。
【請求項16】
クリアリングハウスフェデレーションモードでネットワークを連合させるための、中央処理装置を備えたエッジプロキシサーバにおいて、
プロセッサ、
メモリ、
受取先を示すメッセージを送信用コンピューティングデバイスから受信するように構成されたコンポーネント、及び、
前記受信したメッセージが次にルーチングされるコンピューティングデバイスを識別するホップであって該メッセージのための次のホップを、ネットワーク連合をイネーブルするように構成された前記クリアリングハウスサーバによって識別でき、該メッセージにおいて指定された前記受取先に該メッセージが転送されるように、該メッセージを前記クリアリングハウスサーバに転送するように構成されたコンポーネント、
を備えることを特徴とするエッジプロキシサーバ。
【請求項17】
請求項16のエッジプロキシサーバにおいて、さらに、
本エッジプロキシサーバとメッセージ交換することができるコンピューティングデバイスとのセッションを確立するように構成されたトランスポートコンポーネントを備えることを特徴とするエッジプロキシサーバ。
【請求項18】
請求項17のエッジプロキシサーバにおいて、
前記トランスポートコンポーネントは、該コンポーネントが前記コンピューティングデバイスとの間で確立したセッションを制御することを特徴とするエッジプロキシサーバ。
【請求項19】
請求項16のエッジプロキシサーバにおいて、さらに、
前記受信したメッセージ中のヘッダフィールドの内容に基づいて該メッセージが転送されるべきかどうかを判定するように構成されたルーティングコンポーネントを備えることを特徴とするエッジプロキシサーバ。
【請求項20】
請求項19のエッジプロキシサーバにおいて、
前記ルーティングコンポーネントは、本エッジプロキシサーバが動作するように構成されているフェデレーションモードの指示に基づいて前記受信したメッセージが転送されるべきかどうかを判定することを特徴とするエッジプロキシサーバ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2009−219129(P2009−219129A)
【公開日】平成21年9月24日(2009.9.24)
【国際特許分類】
【出願番号】特願2009−101150(P2009−101150)
【出願日】平成21年4月17日(2009.4.17)
【分割の表示】特願2005−155900(P2005−155900)の分割
【原出願日】平成17年5月27日(2005.5.27)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】