説明

信頼性および持続性のある通信セッションを介したクライアントの自動的な再接続

本発明は、信頼のおける持続的な通信セッションを通じて、クライアントを再接続し、ユーザー認証を提供する方法およびシステムに関する。複数の第2のプロトコルをカプセル化する第1のプロトコルが、ネットワークでの通信に使用される。第1のプロトコルを使用する第1のプロトコルサービスは、クライアントとホストサービス間のセッションの持続性および信頼のおける接続を提供する。クライアントとホストサービス間のネットワーク接続が切断した際には、接続が再確立され、ユーザーは、ユーザーの認証証明を再入力することなく、又は、ホストサービスとのユーザーセッションを再確立することなく、ホストサービスへ再認証される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、ネットワーク及びクライアントサーバ通信に関する。さらに特には、セッションの持続性及び信頼性を提供するために、他のプロトコルをカプセル化する通信プロトコルを使用し、クライアントの通信を再確立し、また、プロトコルのカプセル化を介し、サーバコンピュータと通信するために、クライアントコンピュータを使用し、ユーザーの再認証を促進するためのシステム及び方法に関する。
【背景技術】
【0002】
2台のコンピュータ間の通信、例えば、クライアントとサーバとの間のネットワークを通じた通信は、様々な周知の通信プロトコルを使用して行うことができる。しかし、ネットワーク接続は切断されることが多い。例えば、クライアントとサーバ間の無線接続は、しばしば信頼がおけない。その他の場合では、ネットワーク通信が中断される。そういうものであるため、エレベータやトンネルに入ると接続が失われ、そのエレベータやトンネルから出ないかぎり接続が回復されない場合がある。
【0003】
確立されたクライアントとサーバコンピュータ間の通信セッションが、異常に終了されると、クライアントは、一般に新たな通信セッションを開始することにより、接続を再確立しなくてはならない。新たな通信セッションを開始するためには、その新たな通信セッションのために、サーバコンピュータがユーザーを許可できるように、ユーザーは通常、サーバコンピュータにログイン/パスワードの組み合わせのような認証証明を再発信しなくてはならない。この数回の通信セッションにわたるユーザー認証証明の再発信は、潜在的な攻撃者へ繰り返し前記ユーザーの認証証明をさらすことになり、それにより認証証明のセキュリティレベルを低下させることになる。さらに、これは、度々時間がかかるプロセスなため、ユーザーは、苛立ち及び非効率を経験することになる。さらには、新たな通信セッションを確立する際に、インターネットプロトコルアドレスのような、新たなネットワーク識別子をクライアントが取得することをネットワークが要求することもあり得る。クライアントのネットワーク識別子における変更のため、クライアント側のアプリケーション、又はプログラムを再起動する必要もあり得る。このように、クライアントコンピュータとサーバコンピュータ間の通信セッションを再確立する際に、クライアントの認証証明を繰り返し発信したり、プログラムを再起動させたりすることなく、自動的にクライアントの再認証を行う技術の提供が望まれている。
【0004】
認証証明を繰り返し発信することなく、クライアントコンピュータとサーバコンピュータ間の通信セッションを再確立する改善されたシステムおよび方法が必要とされている。
【発明の開示】
【課題を解決するための手段】
【0005】
本発明は、持続した信頼のおけるホストサービスへの接続をクライアントに提供し、持続した信頼のおける接続にクライアントを再接続するための、システムおよび方法に関する。クライアントを再接続するということは、ホストサービスとのクライアントの通信セッションを再確立することと、ホストサービスへのクライアントのユーザーの再認証とを含む。持続した信頼のおけるホストサービスへの接続は、クライアントに代わる第1のプロトコルサービスにより維持される。第1のプロトコルサービスは、クライアントと第1のプロトコルサービス間のネットワーク接続において、いかなる切断中も、クライアントとホストサービス間の通信データが、バファリングされ、維持されることを確実にする。例えば、ネットワーク接続における一時的な切断は、モバイルクライアントのように、同じネットワーク内の異なるアクセスポイント間で、クライアントがローミングする時、又は、クライアントが異なるノードを行き来する時(例、有線ネットワークから無線ネットワーク)に起きることがある。異なるアクセスポイント間をローミングする際には、ネットワーク接続形態によって必要とされるインターネットプロコトルアドレスのように、クライアントに対し、異なるネットワーク識別子を割り当てる必要もあり得る。ネットワーク切断中にバッファリングされたデータを維持するのに加え、第1のプロトコルサービスは、クライアントの接続を第1のプロトコルサービスに再接続する際に、ホストサービスへのクライアントの再認証を行う。再認証後に、第1のプロトコルサービスは、クライアントのホストサービスへの接続を再度リンクする。これにより、ホストサービスとの接続を再確立するために、クライアントのユーザーが認証証明の再入力が回避される。さらに、第1のプロトコルサービスは、ネットワーク切断後に必要とされ得るクライアントのネットワーク識別子に対する変更を自動的に管理する。これにより、クライアントの割り当てられたネットワーク識別子の変更時に、通常再起動が必要とされるアプリケーション、又はプログラムの再起動が回避される。ユーザーは、クライアントの割り当てられたネットワーク識別子に対するネットワークによる変更により切断されることなく、ネットワークアクセスポイント間をローミングしている間は、引き続きクライアントを使用することができる。要約すると、本発明は、ユーザーが認証証明を再入力することなく再認証されることを含め、アプリケーションの再起動、又はセッションの再確立をすることなく、自動的に切断されたクライアントをホストサービスに再接続することを提供する。
【0006】
1つの観点において、本発明は、ネットワーク接続への切断後、クライアントをホストサービスに再接続する方法に関する。その方法は、クライアントとホストサービス間の接続を再確立する第1のプロトコルサービスを使用する。その方法には、クライアントと第1のプロトコルサービス間の第1の接続、及び、第1のプロトコルサービスとホストサービス間の第2の接続を提供することが含まれる。第1の接続において、切断が検出された際には、第1のプロトコルサービスとホストサービス間の第2の接続が維持される。そして、クライアントと第1のプロトコルサービス間の第1の接続が再確立される。第1のプロトコルサービスは、クライアントに付随するチケットを受け取り、そのチケットを検証する。チケットの検証後に、再確立された第1の接続は、維持された第2の接続にリンクされる。
【0007】
本発明のある実施態様において、その方法は、再確立された第1の接続を維持された第2の接続にリンクする前に、チケットをさらに検証することを含む。その検証方法は、さらに、第1のプロトコルサービスにより受け取られたチケットから、セッション識別子及びキーを得ることを含む。チケットから得られたセッション識別子は、クライアントの暗号化され、保持された認証証明を検索するために使用される。そして、チケットから得られたキーは、検索された認証証明の解読に使用される。
【0008】
別の実施態様において、本発明は、ホストサービスへのクライアントの接続を再確立する際、ホストサービスへのクライアントの再認証を提供する。その方法は、さらに、クライアントと第1のプロトコルサービス間の第1の接続、及び、第1のプロトコルサービスとホストサービス間の第2の接続を提供する際のホストサービスにおけるクライアントの認証を含む。接続における切断が検出された後、第1の接続を再確立する際、その方法は、さらにホストサービスにおけるクライアントの再認証を含む。
【0009】
本発明の別の実施態様において、その方法は、クライアントに付随するチケットを発行する第1のプロトコルサービスを含む。さらに、その方法はまた、検証後にチケットを削除することを含む。別の実施態様では、所定の時間経過後、チケットを自動的に削除することもできる。さらには、チケット削除後、代替チケットを発行することができる。別の実施態様では、チケットのコピーを第1のプロトコルサービスに保存することができる。また、チケットを第1のプロトコルサービスからクライアントに発信することができる。
【0010】
別の観点において、本発明は、ネットワーク接続への切断後、ホストサービスへクライアントを再接続するシステムに関する。そのシステムは、第1のプロトコルサービスを使用し、クライアントとホストサービス間の接続を再確立する。前記クライアントは、第1のプロトコルサービスによる第1の接続を維持するように構成される。第1のプロトコルサービスは、クライアントによる第1の接続、および、前記ホストサービスによる第2の接続を維持するように構成される。本システムによると、第1の接続において切断が検出され、クライアントと第1のプロトコルサービス間で第1の接続が再確立される一方、第1のプロトコルサービスとホストサービス間の第2の接続は維持される。クライアントは、クライアントに付随するチケットを、第1のプロトコルサービスに発信する。そのチケットは検証され、検証後、第1のプロトコルサービスが、維持された第2の接続と再確立された第1の接続をリンクする。
【0011】
本発明のある実施態様において、システムは、再確立された第1の接続と維持された第2の接続をリンクする前に、さらにチケットを検証することを含む。チケットの検証は、さらに、第1のプロトコルサービスにより受け取られたチケットからセッション識別子、およびキーを得ることを含む。チケットから得られたセッション識別子は、クライアントの暗号化され、保持された認証証明を検索するのに使用される。そして、チケットから得られたキーを利用することにより、システムは、検索された認証証明を解読する。
【0012】
別の実施態様において、本発明は、ホストサービスへクライアントを再接続する際に、ホストサービスにおけるクライアントの再認証のためのシステムを提供する。システムは、さらに、クライアントと第1のプロトコルサービス間の第1の接続、及び、第1のプロトコルサービスとホストサービス間の第2の接続を提供する際、ホストサービスにおけるクライアントの認証を含む。接続における切断検出後、接続を再確立する際に、システムは、ホストサービスにおけるクライアントの再認証のために、検索した認証証明を利用する。
【0013】
別の実施態様において、システムはさらに、クライアントに付随するチケットを発行する第1のプロトコルサービスを含む。さらに、そのシステムはまた、検証後にチケットを削除することを含む。別の実施態様では、所定の時間経過後、第1のプロトコルサービスにより、チケットを自動的に削除することができる。さらには、チケット削除後、代替チケットを発行することができる。一実施態様では、チケットのコピーを第1のプロトコルサービスに保存することができる。また、第1のプロトコルサービスは、チケットをクライアントに発信することができる。
【発明を実施するための最良の形態】
【0014】
以下、本発明の特定の実施態様について説明する。しかし、本発明は、これらの実施態様に限定されるものではなく、本願明細書に明白に開示した内容への追加および変更が本発明の範囲に明白に含まれることを意図していることに留意されたい。さらに、本願明細書に開示される種々の実施態様の特徴は排他的でなく、本願明細書に組み合わせまたは置き換えが明示されていなくても、本発明の精神と範囲から逸脱することなくそのような組み合わせおよび置き換えが存在しうると理解されたい。
【0015】
図1Aを参照すると、一般に本発明は、ネットワーク通信に関し、特にクライアントにホストサービスへの信頼できる接続の提供に有用となりうる。概観すると、ネットワーク通信のシステム100は、ネットワーク104を通じて第1のプロトコルサービス112(例えば、第2のコンピュータ)と通信を行うリモートクライアント108(例えば、第1のコンピュータ)を含む。システム100は、ネットワーク104’を通じて第1のプロトコルサービス112と通信を行い、ネットワーク104を通じて第1のプロトコルサービス112を介してクライアント108と通信を行う、複数のホストサービス116a乃至116n(例えば、第3のコンピュータ)も含む。あるいは、本発明の別の実施態様では、図1Bを参照すると、第1のプロトコルサービス112およびホストサービス116a乃至116nは、独立したコンピュータとして使用されるのではなく、むしろ図1Aのように、例えばホストノード118aのような同じコンピュータに組み込まれる。システム100は、1つ、2つ、または任意のホストノード118a乃至118nを含むことができる。
【0016】
一実施態様では、図1Aに示すように、ネットワーク104および104’は独立したネットワークである。図1Bに示すように、ネットワーク104および104’は同じネットワーク104とすることができる。一実施態様では、ネットワーク104および/またはネットワーク104’は、例えば、会社のイントラネットのようなローカルエリアネットワーク(LAN)または、例えば、インターネットまたはワールドワイドウェブのようなワイドエリアネットワーク(WAN)である。リモートクライアント108、第1のプロトコルサービス112、ホストサービス116a乃至116n、および/またはホストノード118a乃至118nは、これらに限定されないが、標準電話回線、LANまたはWANのリンク(例えば、802.11、T1、T3、56kb、X.25)、ブロードバンド接続(例えば、ISDN,Frame Relay、ATM)、無線接続、あるいはこれらのいずれかまたはすべてを組み合わせたものなど、様々な接続を介してネットワーク104および/またはネットワーク104’に接続することができる。
【0017】
さらに、クライアント108は、ワークステーション、デスクトップコンピュータ、ラップトップ、ハンドヘルドコンピュータ、携帯電話、または通信が可能で、本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する他の形態のコンピュータまたはテレコミュニケーション装置とすることができる。加えて、クライアント108はローカルネットワーク104上のローカルデスクトップクライアント、あるいは、個別のネットワーク104のリモートディスプレイクライアントであることもできる。クライアント108は、例えば、視覚的表示装置(例えば、コンピュータ用モニタ)、データ入力装置(例えば、キーボード)、持続的および/または揮発性記憶装置(例えば、コンピュータメモリ)、プロセッサ、およびマウスを備えることができる。ユーザーインターフェイスを持つクライアントエージェント128の例は、ウェブブラウザ(例えば、Microsoft(登録商標)Internet Explorerブラウザおよび/またはNetscape(商標)TMブラウザ)である。
【0018】
同様に、図1Aを参照すると、第1のプロトコルサービス112およびホストサービス116a乃至116nのそれぞれは、通信が可能で本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有するいずれかのコンピュータ上に提供することができる。あるいは、第1のプロトコルサービス112およびホストサービス116乃至116nの機能を、図1Bに示すように、例えばホストノード118a乃至118nのような同じコンピュータに組み込む場合は、第1のプロトコルサービス112および/またはホストサービス116乃至116nを、汎用コンピュータおよび/または、例えば、ASICまたはFPGAのような特殊用途向けハードウェア装置上で実行されるソフトウェアプログラムとして使用することができる。
【0019】
クライアント108と同様に、ホストノード118a乃至118nのそれぞれは、通信が可能で、本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する上述の任意のコンピュータデバイス(例えば、パーソナルコンピュータ)であってよい。ホストノード118a乃至118nのそれぞれは、様々な通信プロトコル(例えば、ICA、HTTP、TCP/IP、およびIPX)を使用して通信チャネル124a乃至124n上に通信を確立することができる(SPX、NetBIOS、イーサネット(登録商標)、RS232、および直接非同期接続)。
【0020】
一実施態様では、ホストサービス116a乃至116nのそれぞれは、クライアント108に対して遠隔で利用可能な1つ以上のアプリケーションプログラムをホストする。1つまたは複数のホストサービス116a乃至116nが同じアプリケーションプログラムをホストすることができる。このようなアプリケーションの例には、MICROSOFT WORDなどのワード処理プログラム、およびMICROSOFT EXCELなどの表計算プログラムなどが挙げられ、そのどちらもMicrosoft社(Redmond、Washingotn)から入手可能である。任意またはすべてのホストサービス116a乃至116nがホスト可能な他のアプリケーションプログラムの例には、財務報告プログラム、顧客登録プログラム、技術的なサポート情報を提供するプログラム、顧客データベースアプリケーション、およびアプリケーションの設定マネージャが挙げられる。さらに、一実施態様では、ホストサービス116a乃至116nの1つ以上は、ストリーミングオーディオおよび/またはストリーミングビデオをクライアント108に提供するオーディオ/ビデオストリーミングサーバである。別の実施態様では、ホストサービス116a乃至116nは、任意/すべてのファイルタイプをクライアント108に提供するファイルサーバを備える。
【0021】
引き続き図1Aおよび図1Bを参照すると、クライアント108は、第1のプロトコルを使用してネットワーク104を通じてクライアント108と第1のプロトコルサービス112との間の接続120を確立するように構成される。第1のプロトコルサービス112は、その役割として、接続120を受け入れるように構成される。従って、クライアント108および第1のプロトコルサービス112は、図2A、2B、および図3を参照して以下に説明する、第1のプロトコルを使用して互いに通信を行うことができる。
【0022】
一部の実施態様では、図1Aおよび図1Bに示すように、クライアントエージェント128は、クライアント108内に含まれる。クライアントエージェント128は、例えば、ソフトウェアプログラムおよび/または、例えば、ASICまたはFPGAなどのようなハードウェア装置として使用することができる。クライアントエージェント128は、あらゆるタイプのプロトコルを使用することができ、それには、例えば、HTTPクライアントエージェント、FTPクライアントエージェント、Oscarクライアントエージェント、Telnetクライアントエージェント、Citirix Systems社(Fort Lauderdale、Florida)製のIndependent Computing Archtecture(ICA)クライアントエージェント、またはMicrosoft社(Redmond、Washington)製のRemote Desktop Procedure (RDP)クライアントエージェントが挙げられる。一部の実施態様では、クライアントエージェント128は、それ自体が第1のプロトコルを使用して通信を行うように構成される。一部の実施態様では(図示せず)、クライアント108は、複数のクライアントエージェント128a乃至128nを含み、それぞれがホストサービス116a乃至116nとそれぞれ通信を行う。
【0023】
別の実施態様では、スタンドアロンのクライアントエージェントは、第1のプロトコルを使用してクライアント108が通信できるように構成される。スタンドアロンのクライアントエージェントはクライアント108内に組み込まれるか、またはスタンドアロンのクライアントエージェントをクライアント108から独立させることができる。スタンドアロンのクライアントエージェントは、例えば、ローカルホストのプロキシである。一般に、スタンドアロンのクライアントエージェントは、クライアントエージェント128に関する本願明細書に開示された機能のいずれかを実行することができる。
【0024】
さらに下記のように、第1のプロトコルサービス112は、一実施態様では、それ自体が第1のプロトコルを使用して通信を行うように構成される。第1のプロトコルサービス112は、第1のプロトコルサービス112とホストサービス116a乃至116nとの間の接続124a乃至124nを確立するようにそれぞれ構成される。例えば、第1のプロトコルサービス112は、第1のプロトコルサービス112とホストサービス116aとの間の接続124a、および第1のプロトコルサービス112と別のホストサービス116bとの間の接続124bを確立することができる。一実施態様では、第1のプロトコルサービス108は、このような接続124a乃至124nを別々に確立する(すなわち、第1のプロトコルサービス112は、一度に1つの接続を確立する)。別の実施態様では、第1のプロトコルサービス112は、このような接続124a乃至124nのうちの2つ以上を同時に確立する。
【0025】
さらに別の実施態様において、第1のプロトコルサービス112は複数の接続124a乃至124nを同時に確立し保持することができる。第1のプロトコルサービス112は、接続120を中断せずに2つ以上の接続124a乃至124nをクライアント108に提供するように構成される。例えば、第1のプロトコルサービス112は、クライアント108のユーザーがホストサービスに116aに存在する第1のアプリケーションプログラムの実行を要求した場合、第1のプロトコルサービス112とホストサービス116aとの間の接続124aを確立するように構成することができる。ユーザーが第1のアプリケーションプログラムの実行を終了し、例えばホストサービス116bに存在する第2のアプリケーションプログラムの実行を開始する場合、一実施態様では、第1のプロトコルサービス112は、接続124aを中断して、第1のプロトコルサービス112とクライアント108との間の接続120を中断させずに第1のプロトコルサービス112とホストサービス116bとの間の接続124bを確立するように構成される。
【0026】
第1のプロトコルサービス112およびホストサービス116a乃至116nは、限定されないが、HTTP、FTP、Oscar、Telnet、Citrix Systems社(Fort Lauderale、Florida)製のICAリモートディスプレイプロトコルおよび/またはMicrosoft社(Redmond、Washington)製のRDPリモートディスプレイプロトコルを含む、様々な第2のプロトコルのうちのいずれか1つを使用して、接続124a乃至124nを通じて通信を行うことができる。例えば、第1のプロトコルサービス112およびホストサービス116aは、ICAリモートディスプレイプロトコルを使用して接続124aを通じて通信を行いながら、第1のプロトコルサービス112およびホストサービス116bは、RDPリモートディスプレイプロトコルを使用して接続124bを通じて通信を行うことができる。
【0027】
一実施態様では、第1のプロトコルサービス112とホストサービス116との間の通信を行うために使用する、例えばICAリモートディスプレイプロトコルのような第2のプロトコルは、複数の仮想チャネルを含む。仮想チャネルは、データを交換するためのコマンドを発行するためにアプリケーション層コードが使用するセッション指向の送信接続である。例えば、複数の仮想チャネルのそれぞれは、リモートクライアント108での機能を可能にする複数のプロトコルパケットを含むことができる。一実施態様では、複数の仮想チャネルのうちの1つが、クライアント108にグラフィカルユーザーインターフェイスを表示させるために、第1のプロトコルサービス112を介して、グラフィックスクリーンコマンドをホストサービス116からクライアント108に送信するためのプロトコルパケットを含む。別の実施態様では、複数の仮想チャネルのうちの1つが、クライアント108で文書を印刷させるために、第1のプロトコルサービス112を介して、プリンタコマンドをホストサービス116からクライアント108に送信するためのプロトコルパケットを含む。
【0028】
一実施態様では、第1のプロトコルは、トンネリングプロトコルである。第1のプロトコルサービス112は、それぞれがホストサービス116a乃至116nと第1のプロトコルサービス112との間の通信に使用する、複数の第2のプロトコルを第1のプロトコル内にカプセル化する。このように、ホストサービス116a乃至116nおよび第1のプロトコルサービス112は、複数の第2のプロトコルを介してクライアント108と通信を行う。一実施態様では、第1のプロトコルは、例えば、TCP/IP接続を通じて複数の第2のプロトコルのトンネリングが可能な、アプリケーションレベルのトランスポートプロトコルである。
【0029】
図2Aを参照すると、接続120を介したクライアント108と第1のプロトコルサービス112との間の通信は、第1のプロトコル204内にカプセル化された複数の第2のプロトコル200a乃至200n(例えば、HTTP、FTP、Oscar、Telnet、ICA、および/またはRDP)の形をとる。これは、第1のプロトコル204の中の第2のプロトコル200a乃至200nの位置によって示される。セキュアな通信が要求されない場合は、図2Aに示すように、第1のプロトコル204は、セキュアでないTCP/IP接続208を通じて通信を行うことができる。
【0030】
図2Bを参照すると、セキュアな通信を使用する場合、第1のプロトコル204は、例えば、セキュアソケットレイヤー(SSL)のようなセキュアなプロトコル216を使用して保護されるTCP/IP接続212などのような暗号化された接続を通じて通信を行う。SSLは、Netscape Communication社(Mountain View、California)がまず開発し、Transport Layer Security(TSL)プロトコルとしてインターネット技術特別調査委員会(IETF)が広め、IETF RFC−2246に記載された、現在の標準である。
【0031】
従って、複数の第2のプロトコル200a乃至200nは、接続120を通じてセキュアなプロトコル216有り(図2B)またはなし(図2A)で第1のプロトコル204内で通信を行う。接続124a乃至124nを通じて通信を行うために使用できる第2のプロトコルは、HTTP、FTP、Oscar、Telnet、ICA、および、RDPを含むがこれらに限定されない。さらに、一実施態様では、上述のように、少なくとも1つの第2のプロトコルは、複数の仮想チャネルを含むが、それぞれリモートクライアント108での機能を可能にする複数のプロトコルパケットを含むことができる。例えば、一実施態様では、一方のホストサービス116aはウェブサーバであり、HTTPプロトコルを使用し、接続124aを通じて第1のプロトコルサービス112と通信を行い、別のホストサービス116bはアプリケーションサーバであり、ICAプロトコルを使用し、接続124bを通じて第1のプロトコルサービス112と通信を行う。ホストサービス116bは、クライアント108にグラフィカルユーザーインターフェイスを表示させるグラフィックスクリーンコマンドをクライアント108に伝送するためのプロトコルパケット、およびクライアント108で文書が印刷されるようにするプリンタコマンドをクライアント108に伝送するためのプロトコルパケットの両方を生成する。
【0032】
本発明の別の局面は、本願明細書に記載されている、ネットワーク接続の開閉回数を減らす方法およびシステムである。一実施態様において、第1のプロトコル204は、その中にトンネリングした、例えば、HTTP接続200nなどのような第2のプロトコル接続200a乃至200nが、繰り返し、また第1のプロトコル204がそれを通じて通信を行うトランスポート接続(例えば、TCP接続208および/または212)や、セキュアなプロトコル接続216、あるいは第1のプロトコル接続204自体に、同様に繰り返して開くおよび/または閉じることを要求することなく、開くおよび/または閉じることを可能にする。第1のプロトコル204のカプセル化なしに、第2のプロトコル200a乃至200nは、TCP接続のようなネットワーク接続を頻繁に開閉できる。これは大きな遅延および間接費をシステムに追加するであろう。このような遅延および間接費は、ネットワーク接続の確立において大きな間接費のかかるSSL等のセキュアなカプセル化プロトコル214の使用によってさらに増加するであろう。第1のプロトコル204内において第2のプロトコル200a乃至200nをカプセル化し、トランスポート接続(208、212)の接続を保持することによって、第2のプロトコル200a乃至200nは、第1のプロトコル204のペイロードの一部として、頻繁で費用のかかるネットワーク接続120の開閉を行う必要がない。さらに、第2のプロトコル200a乃至200nは第1のプロトコル204内でセキュアなプロトコル216と通信を行えるため、第2のプロトコル200a乃至200nはSSL等とのセキュアな接続を開閉する必要もない。トランスポート接続(208、212)は、カプセル化された第2のプロトコル200a乃至200nがセキュアなまたはセキュアでないネットワーク接続120を繰り返し開閉することなく通信を行えるよう、ネットワーク接続120を確立し保持する。これにより第2のプロトコル200a乃至200nの通信における動作速度が大幅に増す。
【0033】
上述のように、第2のプロトコル200a乃至200nはアプリケーションに関連するプロトコルパケットを、HTTP、FTP、Oscar、Telnet、RDAまたはICA等のプロトコルを使用して運搬する。第2のプロトコルパケット304a乃至304nは、クライアント108とホストサービス116a乃至116nの間で取引されるアプリケーション機能に関連するデータを輸送する。例えば、クライアント108上のユーザーは、ホストサービス116a乃至116nによって提供されるウェブページと情報のやりとりを行うことができる。クライアント108とホストサービス116a乃至116nの間のトランザクションにおいて、第1のプロトコル204内でカプセル化された第2のプロトコル200a乃至200nは、ホストサービス116a乃至116nと通信を行うため、ウェブページの表示および任意のユーザー対話の受信に関連するhttpプロトコルパケットを有することができる。トランスポート接続(218、212)は第2のプロトコル200a乃至200nによって保持されないため、第2のプロトコル200a乃至200nは任意のネットワーク接続中断に対処する必要がない。そのため、第2のプロトコル200a乃至200nは、そのペイロードにおいていずれのネットワーク接続中断情報も提供しなくてよい。上記の例において、クライアント108へ伝送される第2のプロトコル200a乃至200nの第2のプロトコルパケット304a乃至304nに関連するhttpは、例えばウェブページ上でのエラーメッセージ等、ネットワーク中断が発生したという通知を提供しないであろう。従って、クライアント108上のユーザーは、いかなるネットワークレベル接続の中断も第2のプロトコル200a乃至200nを介して通知されることはないであろう。これは、第2のプロトコル200a乃至200nに関連するアプリケーションの使用中、ネットワーク接続中断をユーザーから効果的に隠す。
【0034】
図3を参照すると、第1のプロトコルサービス112およびクライアント108のクライアントエージェント128が使用するプロセス例300は、接続120を介して通信を行うために、複数の第2のプロトコル200(例えば、HTTP、FTP、Oscar、Telnet、ICAおよび/またはRDP)を第1のプロトコル204内にカプセル化する。任意に、下記のように、第1のプロトコルサービス112およびクライアント108のクライアントエージェント128が使用するプロセス例300はまた、接続120を介した通信の前に、第1のプロトコルのレベルで通信を圧縮および/または暗号化する。第1のプロトコルサービス112の観点から、第2のプロトコルパケット304a乃至304nは、接続124a乃至124nを介して第1のプロトコルサービス112で受信する。例えば、2つの第2のプロトコルパケット304aおよび304bは、第1のプロトコルサービス112によって受信される。1つ、2つ、または任意の第2のプロトコルパケット304a乃至304nを受信することができる。一実施態様では、第2のプロトコルパケット304a乃至304nは、ホストサービス116によって接続124を通じて第1のプロトコルサービス112に送信される。第2のプロトコルパケット304a乃至304nは、ヘッダ308およびデータペイロードとも呼ばれるデータパケット312を含む。
【0035】
第2のプロトコルパケット304a乃至304nの受信の後に、第1のプロトコルサービス112は、1つ以上の第2のプロトコルパケット304を第1のプロトコルパケット316内にカプセル化する。一実施態様では、第1のプロトコルサービス112は、第1のプロトコルパケットヘッダ320を生成し、例えば、2つの第2のプロトコルパケット304aおよび304bなどのような、1つ以上の第2のプロトコルパケット304a乃至304nを第1のプロトコルパケット316のデータペイロード324内にカプセル化する。別の実施態様では、1つの第2のプロトコルパケット304aだけが、各第1のプロトコルパケット316内にカプセル化される。
【0036】
一実施態様では、第1のプロトコルパケット316は、次いで接続120、例えば図2Aを参照して説明される接続208を通じて、クライアント108のクライアントエージェント128に送信される。あるいは、別の実施態様では、第1のプロトコルサービス112は、いずれの第1のプロトコルパケット316の送信の前に、第1のプロトコル204のレベルでの通信を暗号化するようにさらに構成される。このような一実施態様では、第1のプロトコルパケット316は、例えば、図2Bを参照して説明されるSSLプロトコルを使用して暗号化される。その結果、ヘッダ332と、データペイロード336としての暗号化された第1のプロトコルパケット316’を含むセキュアなパケット328が生成される。セキュアなパケット328は、次いで接続120、例えば図2Bを参照して説明されるセキュアなTCP/IP接続212を通じて、クライアント108のクライアントエージェント128に送信される。
【0037】
別の実施態様では、第1のプロトコルサービス112は、いずれの第1のプロトコルパケット316の送信の前に、第1のプロトコル204のレベルで通信を暗号化するようにさらに構成される。一実施態様では、第1のプロトコルサービス112は、第1のプロトコルパケット316を暗号化する前に、標準的な圧縮技術を使用して第1のプロトコルパケット316を圧縮する。このように、システム100の効率が改善される。
【0038】
図1Aおよび図1Bを再び参照すると、本発明のシステム100は、一実施態様では、例えばホストサービス116aのようなホストサービス116へ持続的な接続を有するリモートクライアント108を提供する。例えば、クライアント108がクライアント108と第1のプロトコルサービス112との間の接続120を確立し、第1のプロトコルサービス112が第1のプロトコルサービス112とホストサービス116aとの間の接続124aを確立する場合は、次いでクライアントエージェント128または第1のプロトコルサービス112のいずれか、またはその両方が、接続120を介して直近に送信された第1のプロトコルデータパケットのキューを維持するように構成される。例えば、キューに入れたデータパケットは、接続120の前でも失敗時でもクライアントエージェント128および/または第1のプロトコルサービス112によって維持されることができる。さらに、接続120の失敗時には、第1のプロトコルサービス112、および同様にホストサービス116aは、接続124aを維持するように構成される。
【0039】
接続120の失敗を受けて、クライアント108は、いずれのデータも失わずに第1のプロトコルサービス112による新しい接続120を確立する。より具体的には、接続120の失敗時に接続124aが維持されるので、新しく確立された接続120は、維持された接続124aにリンクされることができる。さらに、直近に送信された第1のプロトコルデータパケットがキューに入っているので、クライアント108によってそれらを第1のプロトコルサービス112に再び送信することができ、および/または第1のプロトコルサービス112によって新しく確立された接続120を通じてクライアント108に再び送信することができる。このように、ホストサービス116aとクライアント108との間の通信セッションは、第1のプロトコルサービス112を介して、いずれのデータも失われずに持続的に進められる。
【0040】
一実施態様では、クライアント108のクライアントエージェント128および/または第1のプロトコルサービス112は、それらが接続120を通じて送信するデータパケットに番号を付ける。例えば、クライアントエージェント128および第1のプロトコルサービス112それぞれに、他のものがそのデータパケットにどのように番号を付けたかに関係なく、それ自身の送信データパケットに別々に番号を付ける。さらに、データパケットの番号付けは、データパケットの番号を付け直さずに絶対的なものとすることができる。すなわち、クライアントエージェント128および/または第1のプロトコルサービス112により送信された最初のデータパケットには、番号1を付けることができ、接続120を通じてクライアントエージェント128および/または第1のプロトコルサービス112により送信された各データパケットには、その後にそれぞれ連続した番号が付けられる。
【0041】
このような一実施態様では、接続120の中断および再確立を受けて、クライアントエージェント128および/または第1のプロトコルサービス112は、他方にそれが要求する次のデータパケットを通知する。例えば、クライアントエージェント128が、接続120の中断の前に番号1乃至10のデータパケットを受信した場合、接続120の再確立時に、クライアントエージェント128は第1のプロトコルサービス112に現在データパケット番号11を要求していることを通知する。同様に、第1のプロトコルサービス112は、このように機能することもできる。あるいは、別のこのような実施態様では、クライアントエージェント128および/または第1のプロトコルサービス112は、他方に受信した最後のパケットデータを通知する。例えば、クライアントエージェント128が、接続120の中断の前に番号1乃至10のデータパケットを受信した場合、接続120の再確立時に、クライアントエージェント128は第1のプロトコルサービス112に最後に受信したデータパケット番号10を通知する。第1のプロトコルサービス112も同様に機能することができる。さらに別の実施態様では、クライアントエージェント128および/または第1のプロトコルサービス112は、接続120の再確立時に、一方に受信した最後のデータパケットおよび要求する次のデータパケットの両方を通知する。
【0042】
このような実施態様では、接続120の再確立時に、クライアントエージェント128および/または第1のプロトコルサービス112は、他のものが受信していないバッファリングされたデータパケットを再送信することができ、第1のプロトコルサービス112を介して、ホストサービス116とクライアント108との間の通信セッションをいずれのデータも失わずに進めることができる。さらに、接続120の再確立時に、クライアントエージェント128および/または第1のプロトコルサービス112は、現在一方が受信したことがわかっているバッファリングされたデータパケットをそれぞれのバッファから消去することができる。
【0043】
クライアント108にホストサービス116a乃至116nとの信頼できる持続的な接続を提供することにより、本発明は、ネットワーク接続中断を通じてユーザーセッションを保持することでホストサービス116a乃至116nとの新しいユーザーセッションを開くプロセスを回避する。ホストサービス116a乃至116nとの各ユーザーセッションのため、クライアント108およびホストサービス116a乃至116nは、セッション固有のコンテキストおよびキャッシュ、ならびに本例のユーザーセッションに関連するその他のアプリケーション固有のメカニズムを維持する場合がある。確立した新しい各ユーザーセッションのために、これらのセッション固有のコンテキストおよびキャッシュを、新しいユーザーセッションを反映するため再配置および再確立する必要がある。例えば、クライアント108上のユーザーはホストサービス116a乃至116nとのhttpセッションを有する場合がある。ホストサービス116a乃至116nは、本例のクライアント108とのhttpセッションを提供するためのコンテキストを保持することができる。コンテキストはサーバのメモリ内、サーバのファイル内、データベースまたはホストサービス116a乃至116nの機能性の提供に関連するその他のコンポーネントに格納される。クライアント108は、ホストサービス116a乃至116nに対する未処理の要求のトラックを維持するためのメカニズム等、httpセッションの例に特有のローカルコンテキストを有する場合がある。このコンテキストは、クライアント108のメモリ内、クライアント108のファイル内、またはクライアント108と適合するその他のソフトウェアコンポーネントに格納される場合がある。クライアント108とホストサービス116a乃至116nの間の接続が持続的でない場合、ホストサービス116a乃至116nおよびクライアント108の新しいセッション特有コンテキストによって新しいユーザーセッションを確立する必要がある。本発明は、新しいセッション、またそれによって新しい特有のセッションコンテキストが再確立される必要のないよう、セッションを保持する。
【0044】
本発明は、ネットワークレベルの接続中断を通じて、クライアントのユーザーにセッションが中断されたことを通知することなく、ユーザーセッションを保持する。本発明のこの局面の動作において、第1のプロトコルサービス112は、クライアント108との第1の接続およびホストサービス116a乃至116nとの第2の接続を確立および保持する。第1の接続および第2の接続を経由して、クライアント108とホストサービス116a乃至116nの間のセッションは確立される。第1のプロトコルサービス112は、認証証明書のような任意のセッション関連情報ならびに確立されたセッションのためのクライアント108およびホストサービス116a乃至116nのコンテキストを格納および保持することができる。クライアント108上のユーザーは、確立されたセッションを通じて、ホストサービス116a乃至116nによって提供される機能性を行使するであろう。このように、関連する第2のプロトコルパケット304a乃至304nは、そのような機能性のトランザクションに関連するデータを含むであろう。これらの第2のプロトコルパケット304a乃至304nは、第2のプロトコル200a乃至200nの一部として、第1のプロトコル204内でカプセル化され、通信が行われる。第1の接続または第2の接続いずれかにおける中断検出時、第1のプロトコルサービス112は、中断されていないと思われるその他の接続を保持しながら、中断された接続を再確立することができる。ネットワーク接続中断は、クライアント108とホストサービス116a乃至116nの間のセッションを中断する場合がある。しかしながら、トランスポートメカニズムは第2のプロトコル200a乃至200nによって維持されていないため、クライアント108上のユーザーにセッションが中断されたという通知を与えることなく、ネットワーク接続が再確立された後にセッションを再確立することができる。第2のプロトコル200a乃至200nは、クライアント108に伝送するための情報に関連するいかなる中断も含む必要がない。従って、ネットワーク接続中断によって生じるセッションの中断は、第1のプロトコル204のカプセル化によって、効果的にユーザーから隠される。
【0045】
セッション関連情報を保持する第1のプロトコルサービス112は、クライアント108とホストサービス116a乃至116nの間のセッションを再確立することができる。例えば、クライアント108と第1のプロトコルサービス116の間のセッションが中断した場合、第1のプロトコルサービス112はクライアントの108セッションを第1のプロトコルサービス112とホストサービス116a乃至116nとの間でアクティブまたはオープンに保つことができる。第1の接続が再確立した後、第1のプロトコルサービス112はクライアント108のセッションを第1のプロトコルサービス112とホストサービス116の間で保持されているセッションにリンクすることができる。第1のプロトコルサービス112は、クライアント108に第1の接続における中断の前にキューに入っていた任意のデータを送信することができる。このように、クライアント108は中断前と同じセッションを使用しているだろうし、ホストサービス116a乃至116nおよびクライアント108はメモリ内またはほかの場所に格納されていると思われる任意のセッション固有コンテキストの使用を継続できる。さらに、第1のプロトコルサービス112の仲介により、ホストサービス116a乃至116nは、第1のプロトコルサービス112とクライアント108の間のネットワーク中断を認識しない場合がある。
【0046】
別の実施態様において、第1のプロトコルサービス112とホストサービス116a乃至116nとの間の第2の接続が中断した場合、第1のプロトコルサービスは、ホストサービス116a乃至116nとの第2の接続を再確立しながら、クライアント108との第1の接続を保持することができる。第2の接続を再確立した後、第1のプロトコルサービス112は、クライアントを代表し、ホストサービス116a乃至116nとのクライアントセッションを再確立することができる。第1のプロトコルサービス112が任意のセッション関連情報を保持していたため、第1のプロトコルサービスは、クライアント108が、第2の接続における中断およびその結果生じた第1のプロトコルサービス112とホストサービス116a乃至116nの間のセッションへの中断を認識しないよう、同じセッションまたは同様のセッションを再確立することができる。第2のネットワーク接続およびセッションを再確立する間、第1のプロトコルサービス112は、クライアント108から中断中に送信されてきた任意のセッショントランザクションをキューに入れることができる。次いで、ホストサービス116a乃至116nとのセッションを再確立後、第1のプロトコルサービス112はそのキューに入れたトランザクションをホストサービス116a乃至116nへ伝送することができ、セッションは正常に継続できる。このような方法で、クライアント108はあたかもセッションの中断などなかったかのように動作を継続する。
【0047】
また、信頼できる持続的な接続を提供することにより、本発明は、クライアント108とサーバ415またはホストサービス116a乃至116nの間で行使される機能性の一部として、トランザクション、コマンドまたは動作への中断を回避することもできる。例えば、Windows(登録商標) Explorerを使用するファイルコピー動作は、ネットワーク接続において中断があった後も動作を継続するようには設計されていない。クライアント108上のユーザーは、クライアント108のファイルをサーバ415へコピーするために、Windows(登録商標) Explorerのファイルコピー機能を使用することができる。ファイルのサイズにより、この動作が完了するまでには比較的長い時間がかかる。サーバ415へのファイルコピー動作の途中にクライアント108とサーバ415の間のネットワーク接続に中断があった場合、ファイルコピーは失敗するであろう。クライアント108のファイルをサーバ415へコピーするため、ネットワーク接続が再確立されてすぐに、ユーザーはもう一度Windows(登録商標) Explorerのファイルコピー動作を開始する必要がある。本発明の下では、ユーザーはもう一度ファイルコピー動作を開始する必要がないであろう。ネットワーク接続は第1のプロトコル204接続の一部として再確立されるであろう。ファイルコピー動作は第2のプロトコル200a乃至200nのペイロードにおいてカプセル化されるであろう。このように、Windows(登録商標) Explorerのファイルコピーは、ネットワーク接続における中断の通知を受けることなく、従って失敗することがないであろう。第1のプロトコルサービス112は、動作が失敗なく継続できるよう、任意の接続を再確立し、キューに入れた任意のデータを伝送する。第1のプロトコル112は、ネットワーク接続の中断によりサーバ415に転送されなかったファイルコピー動作に関連するデータのキューを保持するであろう。ネットワーク接続が再確立されるとすぐに、第1のプロトコルサービス112はキューに入れたデータを伝送し、やがてファイルコピー操作に関連するデータの転送を継続することができる。
【0048】
本発明のこの局面は、ファイルコピー動作例の観点で説明されているが、通常当業者には、クライアント108とサーバ415またはホストサービス116a乃至116n間で取引されるいかなる操作、トランザクション、コマンド、ファンクションコール等も、ネットワーク接続中断による失敗なく、またさらに、クライアント108が、中断があったことを認識したり中断の通知を受けたりすることなく、保持および継続できることが認識されるであろう。
【0049】
さらに、信頼できる持続的な接続を提供することにより、本発明は、クライアント108に、クライアント108上でセッションまたはアプリケーションを再開することなく、異なるネットワークトポロジーを通じて妨害させることもできる。例えば、クライアント108は無線ネットワーク接続可能なノート型パソコンであってよい。クライアント108が第1の無線ネットワークから第2の無線ネットワークへ移動する場合、第2の無線ネットワークによってネットワーク接続が確立される際に、クライアントのネットワーク接続120は、第1の無線ネットワークから一時的に中断される場合がある。第2の無線ネットワークは、クライアント108に、ホスト名またはインターネットプロトコルアドレスのような新しいネットワーク識別子を割り当てることができる。この新しいネットワーク識別子は、第1の無線ネットワークによってクライアント108に割り当てられたネットワーク識別子と異なる場合がある。別の実施態様において、クライアント108は、イーサネット(登録商標)ケーブルを介してネットワーク上のポートに物理的に接続される場合がある。物理的な接続はプラグを抜かれる場合があり、クライアント108はネットワーク上の異なるポートに接続するため別の場所に移動する場合がある。これは、ネットワーク接続102への中断および割り当てられたネットワーク識別子における潜在的な変化を引き起こすであろう。本発明がなければ、クライアント108におけるホストサービス116a乃至116nとのいかなるセッションも、またネットワークにアクセスするクライアント108上のアプリケーションも、ネットワークトポロジーの変化、ネットワーク接続120への中断、および/または割り当てられたネットワーク識別子の変化によって再開される必要があるかもしれない。本願明細書に記載の方法およびシステムによって、本発明はクライアントのためのネットワーク接続ならびに、ネットワークトポロジーおよびネットワーク識別子における変化の処理も含む自動的に再確立されたクライアント108のネットワーク接続を保持する。クライアント108およびクライアント108上の任意のアプリケーションまたはセッションは、あたかもネットワーク接続中断もネットワーク識別子における変化もなかったかのように動作を継続することができる。さらに、クライアント108上のユーザーは、いかなる中断や変化があったことも認識しない場合があり、クライアント108はそのような中断のいかなる通知も受信しない場合がある。
【0050】
上述のような信頼できる持続的な通信セッションがあったとしても、ネットワーク接続は中断されたままである。ホストサービスへのクライアントの接続を再確立する際、クライアント108はホストサービス116に対して再認証されることも必要である。本発明の一実施態様は、クライアント108をホストサービス116に対して認証するための、および認証証明書を再入力することなくクライアント108をホストサービス116に対して再認証するためのシステムおよび方法に関する。
【0051】
図4は、自動クライアント再接続サービスまたはACRサービス405と呼ばれる自動的なクライアント再接続サービスを使用して、クライアント108をホストサービス116に再接続することが可能な、システム400の実施態様を示す。つまり、クライアント108は、通信チャネル418上で、サーバとも呼ばれるコンピュータサーバ415と通信を行う。通信チャネル418は、ネットワーク104を含むことができる。例えば、通信チャネル418は、会社のイントラネットのようなローカルエリアネットワーク(LAN)または、インターネットまたはワールドワイドウェブのようなワイドエリアネットワーク(WAN)上にあってよい。サーバ415は、ACRサービス405により自動クライアント再接続サービスを提供する。クライアント108は通信チャネル418を通じてサーバ415にアクセスする。サーバ415のACRサービス405は、サーバ415に対してクライアント108を認証するための認証サービスを提供する。ネットワーク通信において中断がある場合、ACRサービス405は、サーバ415に対してクライアント108を認証するための再認証サービスをさらに提供する。単一のクライアント108および1つの通信チャネル418で説明しているが、多数のクライアント(例えば、108、108’)および多数の通信チャネル(例えば、418、418’)がシステム100の一部であってよい。
【0052】
一実施態様において、サーバ415は、システムバス432上で通信を行うプロセッサ425およびメモリ430を含む。メモリ430は、ランダムアクセスメモリ(RAM)および/またはリードオンリーメモリ(ROM)を含む場合がある。別の実施態様において、サーバ415は、リモートサイト(例えば、別のコンピュータ、外部記憶装置)からメモリ430にアクセスする。
【0053】
サーバ415上で動作するACRサービス405は、キージェネレータ435、セッション識別子(SID)ジェネレータ438、エンクリプター440、キーデストロイヤー445、およびデクリプター448を含む。キージェネレータ435は、サーバ415またはACRサービス405がクライアント108から認証証明書を受信した際にキーを生成する。一実施態様において、キージェネレータ435は、サーバ415の特性からキーを導き出す。具体的な例としては、プロセッサ425の温度からキーを導き出すキージェネレータ435、サーバ415が認証証明書を受信する時間、およびメモリ430に格納されているキーの数が挙げられる。さらなる実施態様において、キーおよび認証証明書は同じ大きさ(例えば、8ビット)である。一実施態様において、キージェネレータはソフトウェアモジュールである。別の実施態様において、キージェネレータ435は乱数ジェネレータである。
【0054】
SIDジェネレータ438は、サーバ415に特定の通信セッションを識別させる固有のSIDを生成する。一実施態様において、SIDジェネレータ438はソフトウェアモジュールである。別の実施態様において、SIDジェネレータ438は乱数ジェネレータである。別の遂行形態において、SIDジェネレータはSIDをホストサービス116へ伝送する。一実施態様において、SIDジェネレータ438はサーバ上で動作するホストサービス116からSIDを得る。さらなる実施態様において、SIDジェネレータは、ユーザーセッションを確立するホストサービス116からセッション識別子を受信することによって、SIDを生成する。
【0055】
エンクリプター440は、認証証明書を持つキーを暗号化し、暗号化した認証証明書を作成する。一実施態様において、エンクリプター440は、キーおよび認証証明書において排他的論理和演算(すなわち、XOR)を遂行することによって認証証明書を持つキーを暗号化する。別の実施態様において、エンクリプター440は、キーに認証証明書を加えて認証証明書を暗号化する、つまり、エンクリプター440は、キーをシフト値として使用することにより、認証証明書において「シーザー暗号」を遂行する。別の実施態様において、エンクリプター440は、認証証明書において、MD4、MD5、またはSHA‐1等のハッシュ関数を遂行する。エンクリプター440は、ACRサービス405が暗号化した認証証明書をキーによって解読できる限り、認証証明書においていかなるタイプの操作も遂行できることを明らかにする必要がある。
【0056】
一実施態様において、エンクリプター440は、暗号化した認証証明書を作成するために、キーおよび認証証明書において数学アルゴリズムを実行するソフトウェアモジュールである。別の実施態様において、エンクリプター440は、排他的論理和(XOR)ゲートのような、サーバコンピュータ415の論理ゲートである。
【0057】
一実施態様において、エンクリプター440はSIDを持つ暗号化した認証証明書をメモリ430内のテーブル455に格納する。別の実施態様において、エンクリプター440は、暗号化した認証証明書を、テーブル455およびテーブル455にSIDを格納するSIDジェネレータ438内に格納する。一実施態様において、テーブル455は、エンクリプター440が使用するために、プロセッサ455によって割り付けられたメモリ430内の領域にある。別の実施態様において、エンクリプター440は、SIDを持つ暗号化した認証証明書を、メモリ430から分離したデータベース(図4には示さず)内に格納する。
【0058】
一実施態様において、ACRサービス405はSIDを、テーブル455における暗号化した認証証明書の位置を指すベクトルとして使用する。別の実施態様において、ACRサービス405はSIDを、データベース(図4には示さず)内の暗号化した認証証明書を見つけ引き出すためのデータベースキーとして使用する。エンクリプター440により作成された、暗号化した認証証明書のそれぞれは、1つの固有のSIDにのみ関連している。従って、ACRサービス405は、特定のSIDを使用することで暗号化した認証証明書を見つけ引き出すことができる。
【0059】
キーデストロイヤー445は、ACRサービス405がそのキーはもはや必要ないと判断すると、キーを削除する。一実施態様において、キーデストロイヤー445はサーバ415のオペレーティングシステムのようなソフトウェアプログラムの削除機能である。
【0060】
デクリプター448は、ACRサービス405がクライアント108からキーおよびSIDを引き出すと、暗号化した認証証明書を解読する。一実施態様において、デクリプター448は、暗号化した証明書を作成するためにエンクリプター440が遂行した逆関数またはアルゴリズムを遂行するソフトモジュールである。別の実施態様において、デクリプター448は、エンクリプター440の逆演算を遂行するハードウェアコンポーネント(例えば、論理ゲート)である。
【0061】
一実施態様において、1つ以上のキージェネレータ435、SIDジェネレータ438、エンクリプター440、キーデストロイヤー445、およびデクリプター448は、ACRサービス405を代表する1つのソフトウェアモジュールに接合される。別の実施態様において、これらのコンポーネント(436、438、440、445、および448)は、論理ゲートのようなハードウェアコンポーネントであってよい。さらなる実施態様において、これらのコンポーネント(435、438、440、445、および448)は、単一の集積回路に含まれてよい。さらに別の実施態様において、例えばキージェネレータ435およびSIDジェネレータ438のような一部のコンポーネントはハードウェアコンポーネントであってよく、例えばエンクリプター440、キーデストロイヤー445およびデクリプター448のようなその他のコンポーネントはソフトウェアコンポーネントであってよい。
【0062】
別の実施態様において、本発明は、ネットワークへのクライアントの接続において中断がある場合に、クライアント108をホストサービス116に再接続するための方法も提供する。前記方法は、ホストサービス116へのクライアントの接続の再確立およびクライアントをホストサービスに対して再認証するためのACRサービス405の使用を含む。
【0063】
図5Aを参照して、クライアント108は、通信チャネル418上でサーバ415との第1の通信セッションを確立する。クライアント108はクライアント108のユーザーから認証証明書を得る(ステップ500)。クライアント108とサーバ415との間の通信のための伝送プロトコルのような開放型システム間相互接続(OSI)プロトコルを使用しないシステム100においては、認証証明書が第1の通信セッションを確立するために必要なログインパスワードとなる場合がある。一実施態様において、ユーザーから認証証明書を得ることは、通信セッションの確立に先行する。別の実施態様において、認証証明書は、第1の通信セッションが確立した後にクライアント108が得る、ユーザーの個人情報である。認証証明書の例としては、ログインパスワード、社会保障番号、電話番号、住所、生体認証情報、時間依存性パスコード、およびデジタル証明書が挙げられる。クライアント108はその後、サーバ415がクライアント108またはクライアント108のユーザーを認証できるよう、認証証明書を通信チャネル418上でサーバ415へ伝送する(ステップ505)。
【0064】
サーバ415が認証証明書を受信した後、ACRサービス405はその自動クライアント再接続サービスを提供する。キージェネレータ435は、認証証明書に使用するための第1の暗号化キーを作成する(ステップ510)。一実施態様において、暗号化キーは乱数である。別の実施態様において、暗号化キーは任意の標準的な暗号鍵である。エンクリプター440はその後、第1のキーで認証証明書を暗号化し(ステップ515)、暗号化した認証証明書を生成する。これは、サーバ415にアクセスする攻撃者がキーなしで認証証明書にアクセスするのを防止する。次いでSIDジェネレータ438は第1のSIDを作成し(ステップ520)、クライアント108とサーバ415との間の第1の通信セッションを識別する。一実施態様において、第1の通信セッションはサーバ415によりホストされるホストサービス116を伴う。エンクリプター440は次いで第1のSIDを持つ暗号化した認証証明書を上述のテーブル455内に格納する(ステップ525)。
【0065】
一実施態様において、エンクリプター440は第1のSIDを持つ暗号化した認証証明書を後のより効率的な検索のために一定の位置に格納する。例えば、エンクリプター440は、RAM30内において所定時間内で作成されたすべての暗号化した認証証明書およびSIDを格納する。ACRサービス405は、所定時間の前に作成されたすべての暗号化した認証証明書およびSIDを、第2の外部メモリ(図示せず)へ転送する。別の実施態様において、エンクリプター440は、SIDを持つ暗号化した認証証明書をデータベース(図示せず)内に格納する。
【0066】
メモリ430内に格納したSIDおよび暗号化した認証証明書は、任意の特定の順序および/またはフォーマットで配置することができる。例えば、SIDおよび暗号化した認証証明書は、暗号化した認証証明書の作成時に関連した時系列で格納することができる。
【0067】
サーバ415は次いで第1のキーおよび関連する第1のSIDを、ネットワーク104上でクライアント108へ伝送する(ステップ535)。クライアント108は、第1のキーおよび第1のSIDをクライアント108のメモリ(図示せず)内に格納する(ステップ540)。次いでACRサービス405のキーデストロイヤー445が、メモリ430内に格納されたキーを削除する(ステップ545)。
【0068】
別の実施態様において、ACRサービス405は、クライアント108がキーを受信したという通知をACRサービス405が受け取るまで、メモリ430から第1のキーを削除しない。例えば、クライアント108は、クライアント108が無事にキーを受信した後、確認応答メッセージをサーバ415へ伝送する。ACRサービス405が通知を受信すると、次いでキーデストロイヤー445がメモリ430からキーを削除する(ステップ545)。これは、クライアント108が無事にキーを受信する前にACRサービス405がキーを削除するのを防止する。応答確認メッセージまでキーを削除しないことにより、ACRサービス405は、伝送の失敗時にキーおよびSIDをクライアント108へ再伝送することができる。
【0069】
ステップ545においてキーを削除することにより、ACRサービス405は、テーブル455に格納されている暗号化した認証証明書を解読する必要のあるメカニズムを持たない。従って、攻撃者がサーバ415メモリの430にアクセスした場合、その攻撃者は暗号化した認証証明書を受信することはできるが、その暗号化した認証証明書を解読することはできない。そのため、攻撃者はその認証証明書を読み出すことができない。つまり、サーバ415に格納されている暗号化した認証証明書は、攻撃者が解釈または理解できるいかなる情報も提供しない。このように、サーバ415は、暗号化した認証証明書を解読するいかなる情報も所有しない。
【0070】
また、クライアント108は、暗号化した認証証明書のためのキーを提供できる唯一の機器である。ネットワーク104の一部として多くのクライアント108がある可能性のために、攻撃者は的確なキーを所有するクライアント108を発見するために各クライアント(例えば、108、108’)への個別アクセスを試みる必要がある可能性がある。これは、時間がかかり退屈であるため、結果として攻撃者が暗号化した認証証明書を解読しようとする試みを阻止することができる。
【0071】
別の実施態様において、サーバ415は暗号化した認証証明書へのアクセスに関してタイムアウト機能を有する。例えば、サーバ415は第1の通信が異常終了した場合にタイマーを開始する。クライアント108が第2の通信セッションを再確立する前にタイマーが所定値に達し、解読のためのキーをサーバ415へ伝送すると、ACRサービス405は暗号化した認証証明書をテーブル455から削除する。タイマーを使用しない場合、キーは今後のセッションのための事実上のパスワードとして作用する。
【0072】
図5Aを参照して上述したようにクライアント108がサーバ415から第1のキーおよび第1のSIDを受信すると、図5Bに示すように、ユーザーに自身の認証証明書を再入力するように要求することなくセッションを再確立することができる。クライアント108とサーバ415との間の第1の通信セッションにおいて中断または切断が発生(ステップ500)した際、第1の通信セッション418は再確立される必要があり、クライアント108はサーバ415に対して再認証される必要がある。ACRサービス405は、クライアント108を再確立しサーバ415に対して再認証するためのシステムおよび方法を提供する。
【0073】
クライアント108およびサーバ415が第2の通信セッションを確立すると、クライアント108は第1のキーおよび第1のSIDをサーバ415へ伝送する(ステップ555)。ACRサービス405は、サーバのメモリ430内の暗号化した認証証明書を見つけ引き出すためにSIDを使用(ステップ558)し、引き出した認証証明書を解読するためにキーを使用する(ステップ560)。次いでサーバ415は、クライアント108からの認証証明書を有効にすることによって、クライアント108をサーバ415に対して再認証する(ステップ565)。一実施態様において、認証および再認証はサーバ415のコンピュータデバイスのオペレーティングシステムによって提供されるセキュリティサービスにより容易になる。例えば、認証証明書はサーバ415に対するログインおよびパスワードである。別の実施態様において、認証および再認証は、サーバ415上のアプリケーションまたはソフトウェアプログラムのアプリケーションレベルのセキュリティサービスにより容易になる。例えば、認証証明書は特定のホストサーバ116に対するアプリケーションログインおよびパスワードである。
【0074】
例えば、ユーザーのログインパスワードが認証証明書であった第1の通信セッションが異常終了したとき(ステップ550)クライアント108はサーバ415との第2の通信セッションを確立しようと試みる。サーバ415との第2の通信セッションを確立するよう求めるサーバ415への要求の一部として、クライアント108は第1の終了した通信セッションのキーおよびSIDをサーバ415へ伝送する(ステップ555)。ユーザーにユーザーのログインパスワードを再び入力するよう促す代わりに、サーバ415は、ACRサービス405を介して、SIDを使用して(ステップ558)そのユーザーに関連する暗号化した認証証明書を見つけ引き出し、キーを使用して(ステップ560)引き出した認証証明書を解読し、その解読した認証証明書を使用することによってクライアントを再認証する(ステップ565)。
【0075】
一実施態様において、第2の通信セッション中に、ACRサービス405は認証証明書のための第2のキーを作成し(ステップ570)、次いでその第2のキーを使用して認証証明書を暗号化する(ステップ575)。第2の通信セッションを識別し、クライアント108と関連付けるために、第2のSIDが作成される(ステップ580)。第2の暗号化した認証証明書は、第2のSIDとともにテーブル455内に格納される(ステップ525)。
【0076】
この実施態様において、サーバはその後第2のキーおよび第2のSIDをクライアント108へ伝送する(ステップ585)。クライアント108は次いでその第2のキーおよび第2のSIDをその後の引き出しのためにメモリ(図示せず)内に格納する(ステップ590)。ACRサービス405は次いでメモリ430の第2のキーを削除する(ステップ595)。従って、ACRサービス405は、クライアント108から第2のキーおよび第2のSIDを得たとき、第2の暗号化した認証を解読できるだけである。ACRサービス405は、第1の通信セッション中にユーザーが伝送していたのと同じ認証証明書とともに使用される、第2の通信セッションのための新しいキーおよび新しいSIDを作成している。そのため、ユーザーの認証証明書は、第1の通信セッションの異常終了後に第2の通信チャネル上で再伝送される必要がない。
【0077】
本発明を認証証明書の観点で説明しているが、通信の失敗があった場合にセッション間で保持できる任意の機密情報を使用してもよい。従って、本発明の発表後であれば、アプリケーションがクレジットカード情報を要求しクレジットカード情報がサーバへ送られた場合、その後に起こるクライアントとサーバとの間の遮断はクレジットカード情報の再入力を要求しない。さらに、セッション識別子またはSIDは格納された認証証明書を指すポインタを提供するとして説明しているが、ポインタとして適合するいずれの数および値も使用してよい。
【0078】
図6は、中間ノード650を実行するACRサービス405を使用してクライアント108をサーバ415へ再接続できるシステム600の実施様態を示す。中間ノード650は、サーバ415とは異なるコンピュータデバイスであり、通信が可能で本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する、任意のコンピュータであってよい。つまり、クライアント108は、通信チャネル418上の中間ノード650と通信を行っている。通信チャネル418はネットワーク104を含んでよい。中間ノード650は、ACRサービス405を経由して、サーバ415へのクライアント108の接続のため、クライアント108に自動再接続サービスも提供する。中間ノード650は、通信チャネル418’上でサーバ415と通信を行っている。通信チャネル418’はネットワーク104’を含んでよい。クライアント108は中間ノード650を通じてサーバ415のサービスにアクセスする。中間ノード650上のACRサービス405は、クライアント108のサーバ415への接続のための自動クライアント再接続サービスを提供する。通信チャネル418上の単一のクライアント108を示したが、多数のクライアントおよび多数の通信チャネルをシステム600の一部とすることができる。
【0079】
さらなる実施態様(図示せず)において、システム600は、追加の通信チャネル418、418’上のネットワーク104を通じて1つ以上のクライアント108と通信を行う多数の中間ノード650を含む。図6において通信チャネル418上の単一の中間ノードを示したが、多数の中間ノード650および多数の通信チャネル418をシステム600の一部とすることができる。
【0080】
別の実施態様において、本発明は、1つ以上の中間ノード650を使用して、サーバ415に対するクライアント108の接続の確立および認証を容易にするための方法に関する。図7Aに示すように、中間ノード650は、サーバ415とのセッションを確立する(ステップ520A)。
【0081】
クライアント108は、通信チャネル418上に中間ノード650との第1の通信セッションを確立する。クライアント108は、クライアント108のユーザーから認証証明書を得る(ステップ500)。次いでクライアント108は、中間ノード650がサーバ415でユーザーを認証できるよう、その認証証明書を通信チャネル418上の中間ノード650へ伝送する(ステップ505)。
【0082】
中間ノード650が認証証明書を受信した後、ACRサービス405はその自動クライアント再接続サービスを提供する。ACRサービス405は認証証明書に使用するための第1の暗号化キーを作成し(ステップ510)、次いで暗号化した認証証明書を生成するためにその認証証明書を暗号化する(ステップ515)。これは、サーバ415へアクセスする攻撃者がキーなしで認証証明書にアクセスすることを防止する。次いでサーバ415によりセッションが確立され(ステップ520A)、クライアント108は認証証明書を使用してサーバ415に対し認証される。それにより、ACRサービス405は第1の通信セッションを識別するため、第1のSIDを作成する。暗号化した認証証明書は第1のSIDとともに上述のテーブル455内に格納される(ステップ525)。中間ノード650は次いで第1のキーおよび第1のSIDをネットワーク104上でクライアント108へ伝送する(ステップ535)。クライアント108は、第1のキーおよび第1のSIDをクライアント108のメモリ(図示せず)内に格納する(ステップ540)。ACRサービス405は次いでメモリ430に格納されたキーを削除する(ステップ545)。
【0083】
図7Aを参照して上述したようにクライアント108が中間ノード650から第1のキーおよび第1のSIDを受信すると、図7Bに示すように、ユーザーに自身の認証証明書を再入力するように要求することなく通信セッションを再確立および再認証することができる。例えば、クライアント108と中間ノード650との間の第1の通信セッションにおいて、異常終了による中断がある(ステップ705)場合がある。
【0084】
クライアント108および中間ノード650が第2の通信セッションを再確立する際、クライアント108は第1のキーおよび第1のSIDを中間ノード650へ伝送する(ステップ555)。中間ノード650のACRサービス405は、サーバのメモリ430内の暗号化した認証証明書を見つけ引き出すために、SIDを使用し(ステップ558)、引き出した認証証明書を解読するためにキーを使用する(ステップ560)。キージェネレータは認証証明書のための第2のキーを作成し(ステップ570)、キーエンクリプター440は次いで第2のキーを使用し認証証明書を暗号化する(ステップ575)。SIDジェネレータ438も、第2の通信セッションを識別しそれを中間ノード650とサーバ415との間の保持したセッションと関連付けるため、第2のSIDを作成する(ステップ580)。エンクリプター440は、第2の暗号化した認証証明書をSIDとともにテーブル455内に格納する。
【0085】
一実施態様において、サーバ415は次いで第2のキーおよび第2のSIDをクライアント108へ伝送する(ステップ585)。クライアント108はその後の引き出しのために第2のキーおよび第2のSIDを格納する(ステップ590)。次いでキーデストロイヤー445が第2のキーをメモリ430から削除する(ステップ595)。従って、ACRサービス405は、クライアント108から第2のキーおよび第2のSIDを得たとき、第2の暗号化した認証を解読できるだけである。ACRサービス405は、第1の通信セッション中にユーザーが伝送していたのと同じ認証証明書とともに使用される、第2の通信セッションのための新しいキーおよび新しいSIDを作成している。そのため、ユーザーの認証証明書は、第1の通信セッションの異常終了後に第2の通信チャネル上で再伝送される必要がない。
【0086】
別の実施態様において、中間ノード650とサーバ415との間の第2の通信セッションにおいて中断または異常終了がある(ステップ710)場合がある。図7Cに示すように、第2の通信セッションはユーザーに自身の認証証明書を再入力するよう要求することなく再確立および再認証できる。
【0087】
中間ノード650およびサーバ415が第2の通信セッションを再確立する際、中間ノード650は、クライアントを代表してサーバ415とのセッションを再確立するために、クライアント108から第1のキーおよび第1のSIDを要求する(ステップ550)。それに応えて、クライアント108は第1のキーおよび第1のSIDを中間ノード650へ伝送する(ステップ555)。中間ノード650のACRサービス405は、サーバのメモリ430内において暗号化した認証証明書を見つけ引き出すためにSIDを使用し(ステップ558)、引き出した認証証明書を解読するためにキーを使用する(ステップ560)。ACRサービス500はその後、サーバ415に対しクライアント108を再認証するため解読した認証証明書を使用してサーバとのクライアントのセッションを再確立する(ステップ565)。
【0088】
別の実施態様において、第2の通信セッション上でクライアントを再確立および再認証した後、中間ノード650のACRサービス405は、図7Bにおいて先に説明したように、代替の第2のSIDおよび第2のキーを作成する。図4に示すACRサービスの実施態様を参照して、キージェネレータは認証証明書のための第2のキーを作成し(ステップ570)、キーエンクリプター440は次いで第2のキーを使用し認証証明書を暗号化する(ステップ575)。SIDジェネレータ438も、第2の通信セッションを識別しそれを中間ノード650とサーバ415との間の保持したセッションと関連付けるため、第2のSIDを作成する(ステップ580)。エンクリプター440は、第2の暗号化した認証証明書をSIDとともにテーブル455内に格納する。この実施態様において、サーバはその後第2のキーおよび第2のSIDをクライアント108へ伝送する(ステップ585)。クライアント108は次いでその第2のキーおよび第2のSIDをその後の引き出しのために格納する(ステップ590)。キーデストロイヤー445は次いで第2のキーをメモリ430から削除する(ステップ595)。
【0089】
その他の実施形態において、1つ以上の第1のプロトコルサービス112およびACRサービス405は、任意のホストサービスノードにわたって配信されることができる。結果として、ホストサービス116に接続するクライアント108の再確立、再認証、または自動再接続の機能性は、ホストサービス116および/またはホストノード118にわたり、異なるシステムおよび配備アーキテクチャにおいて柔軟に配信されることができる。
【0090】
本発明のこの局面の一実施態様において、各ホストサービス116に専用の自動クライアント再接続サービスをそれぞれ提供するため、ACRサービス405をシステム100の各ホストノード116a乃至116nと関連付けることができる。単一の第1のプロトコルサービス112は、ホストサービス116a乃至116nのすべてを処理するよう配備することができる。図8Aに示すように、複数のACRサービス405a乃至405nは各ホストサービス116a乃至116nとそれぞれ関連付けられている。例示した方法により、クライアント108は第1のプロトコルサービス112を使用してホストサービス116aとの通信セッションを確立する。ホストサービス116aと関連付けられたACRサービス405aは、ホストサービス116aへのクライアント108の接続のため、自動クライアント再接続サービスを提供する。ネットワーク接続において中断がある場合、第1のプロトコルサービス112はクライアント108との接続を再確立し、ACRサービス405aはホストサービス116aに対してクライアント108を再認証するであろう。第2のクライアントサービス108’は、第1のクライアント108とともに、第1のプロトコルサービス112を使用してホストサービス116bとの通信セッションを確立することができる。ACRサービス405bは、ホストサービス116bへのクライアントの接続のために、自動クライアント再接続サービスを提供する。ネットワーク中断がある場合、ACRサービス405bに関連する第1のプロトコルサービス112は、クライアント108’をホストサービス116bに再接続するであろう。
【0091】
本発明のこの局面の別の実施態様において、ACRサービスは、システム100のホストノード118a乃至118nのそれぞれにおいて動作する複数のホストサービス116a乃至116nのそれぞれと関連付けることができる。第1のプロトコルサービス112は、ホストノード118上で動作する複数のホストサービス116a乃至116nのそれぞれにサービスを提供するよう、各ホストノード118上に配備することができる。図8Bに示すように、各ACRサービス405a乃至405nは、各ホストサービス116a乃至116nにそれぞれ関連付けられている。各ホストノード118は、そのホストサービス116およびACRサービス405のそれぞれにサービスを提供する専用の第1のプロトコルサービス112を有する。例えば、クライアント108は、第1のプロトコルサービス112aを使用することにより、ホストノード118a上にホストサービス116aとの通信セッションを確立する。ホストノード118a上のACRサービス405aは、ホストノード118a上のホストサービス116aへのクライアント108の接続のために、自動クライアント再接続サービスを提供する。
【0092】
ネットワーク中断が検出されると、第1のプロトコルサービス112aはホストノード118a上のホストサービス116aへのクライアントの接続を再確立し、ホストノード118a上のACRサービス405aはホストノード118a上のホストサービス116aに対してクライアント108を再認証する。第1のクライアント108と同時に、第2のクライアント108’は第1のプロトコルサービス112aおよびACRサービス405aを使用してホストノード118a上のホストサービス116bとの通信セッションを確立する。ネットワーク中断がある場合、ACRサービス405aに関連する第1のプロトコルサービス112aは、ホストノード118a上のホストサービス116bにクライアント108’を再接続する。第1のクライアント108および第2のクライアント108’と同時に、第3のクライアント108’’は、第1のプロトコルサービス112bおよびホストノード118b上のACRサービス405nを使用して、ホストノード118b上のホストサービス116nとの通信セッションを確立する。同様に、第1のプロトコルサービス112bおよびACRサービス405nは、クライアント108’’をホストノード118bのホストサービス116nに再接続することができる。
【0093】
その他の実施態様において、1つ以上のACRサービス405は、中間ノードまたは第1のプロトコルサービスノードのいずれかを通して、第1のプロトコルサービス112とともに配信されることができる。このように、クライアント108をホストサービス116へ再接続する機能性は、第1のプロトコルサービス112に関連する、異なるシステムおよび配備アーキテクチャにおいて柔軟に配信されることができる。
【0094】
本発明のこの局面の一実施態様において、ACRサービス405は、第1のプロトコルサービス112専用の自動クライアント再接続サービスを提供するため、各第1のプロトコルサービス112と関連付けることができる。単一の第1のプロトコルサービス112およびACRサービス405はホストサービス116a乃至116nのすべてを処理するように配備することができる。図9Aに示すように、ACRサービス405は、ホストサービス116a乃至116nに自動クライアント再接続サービスを提供するため、第1のプロトコルサービス112と同じコンピュータデバイス内に存在する。例えば、クライアント108は、第1のプロトコルサービス112およびACRサービス405を使用して、ホストサービス116a乃至116nのいずれかと通信セッションを確立する。第1のプロトコルサービス112およびACRサービス405は、クライアント108からホストサービス116a乃至116nのいずれかへの再接続機能性を提供する。
【0095】
本発明のこの局面の別の実施態様において、ACRサービス405a乃至405nのそれぞれは、複数の第1のプロトコルサービス116a乃至116nのそれぞれに関連付けることができる。例えば、図9Bに示すように、第1のプロトコルサービス112aおよびACRサービス405aは、ホストノード118a上で動作する複数のホストサービス116a乃至116nのそれぞれにサービスを提供するようホストノード118a上に配備されることができる。図9Bにさらに示すように、各ACRサービス405a乃至405nは、専用の自動クライアント再接続サービスを、各ホストノード118a乃至118nの複数のホストサービス116a乃至116nに提供するため、各第1のプロトコルサービス112a乃至112nと関連付けられている。例示したように、クライアント108は、ホストノード118a上のホストサービス116aとの通信セッションを、同じホストノード118a上の第1のプロトコルサービス112aおよびACRサービス405aを使用して確立する。ネットワーク中断がある場合、ACRサービス405aと関連する第1のプロトコルサービス112aは、クライアント108をホストノード118a上のホストサービス116aに再接続する。
【0096】
本発明を図8A、8Bおよび9A、9Bの様々なシステムおよび配備アーキテクチャの観点で説明しているが、ホストノード118のいずれかにある1つ以上の第1のプロトコルサービス112、ACRサービス405およびホストサービス116、中間ノード650、またはその他のコンピュータデバイスを組み合わせた、および/または配信する、その他任意のシステムおよび/または配備アーキテクチャを使用してもよい。
【0097】
さらに、認証および再認証サービスを提供するためACRサービス405を使用する代わりに、チケットオーソリティ1036サービスが使用できる。チケットオーソリティ1036は、接続および認証目的のためのチケットを生成し有効化する。チケットは、セッション識別子およびキーを備えることができる。乱数、アプリケーションサーバ証明書、その場限りの、恒常的な、または無効な値もしくはその他任意のタイプの識別子、機密情報、またはそのような目的に使用できるセキュリティベースの情報を備えることもできる。
【0098】
図10Aに示すようなクライアント108をホストサービス116に再接続するためのネットワーク通信システム1000の実施態様において、チケットオーソリティ1036は、中間ノード1032、第1のプロトコルサービス112、またはホストサービス116a乃至116nのいずれかから分離したノード上で動作できる。図10Aは、中間ノード1032およびチケットオーソリティ1036を示すものであり、これはシステム1000の一部として単一のコンピュータデバイスであってよい。ネットワーク104および104’に加え、システム1000は、すべて上述の、クライアント108、第1のプロトコルサービス112、およびホストサービス116a乃至116nを含む。一実施態様において、中間ノード1032は、ネットワーク104の構成上クライアント108と第1のプロトコルサービス112との間のメッセージが通過しなければならない、例えばファイアウォールおよび/またはルータのようなセキュリティゲートウェイである。チケットオーソリティ1036は、例えば、通信が可能で本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する、スタンドアロンのネットワークコンポーネントとすることができる。チケットオーソリティ1036は、サーバ415上でのチケット関連サービス提供専用の特定のホストサービス116とすることもできる。
【0099】
図10Aの実施態様に示すように、中間ノード1032は、クライアント108によって開始される接続120aを受け入れ、第1のプロトコルサービス112による第2の接続120bを確立するように構成される。合わせて、接続120aおよび第2の接続120bは、上述のように接続120を構成し、それらを通じて第1のプロトコルを使用してクライアント108および第1のプロトコルサービス112が通信を行う。
【0100】
図に示すように、中間ノード1032はまた、チケットオーソリティ1036と通信を行うように構成される。一実施態様では、チケットオーソリティ1036は、中間ノード1032からの第1の再接続チケットに対する要求を受信し、その後に第1の再構成チケットを生成するように構成される。第1の再接続チケットは、例えば、大きな乱数を含むことができる。第1の再接続チケットは、クライアント108に、サービスの異常中断後、クライアント108に再度認証証明書を要求することなく自動的にホストサービスとの通信を再確立させる。
【0101】
第1の再接続チケット生成後、チケットオーソリティ1036は、中間ノード1032またはチケットオーソリティ1036へアクセスできる攻撃者が第1の再接続チケットがなくては認証証明書にアクセスできないよう、第1の再接続チケットを使用してクライアント108により供給された認証証明書を暗号化する。チケットオーソリティ1036は、クライアント108と中間ノード1032との間に確立される通信セッションを認識するため、SIDを生成することもできる。チケットオーソリティ1036は、暗号化した認証証明書をSIDとともにメモリ内に格納し、SIDおよび第1の再接続チケットをネットワーク104上でクライアント108へ伝送する。クライアントがSIDおよび第1の再接続チケットを受信すると、チケットオーソリティ1036はそのメモリ(図示せず)からチケットを破壊(すなわち、削除)する。
【0102】
別の実施態様では、チケットオーソリティ1036は、ハンドルを生成するように構成される。ハンドルは、例えば、第1の再接続チケットと関連する(例えば、マップされ)乱数とすることができる。一実施態様では、ハンドルは、第1の再接続チケットを形成している乱数よりも小さな乱数である。例えば、ハンドルは、32ビット乱数としてよい。チケットオーソリティ1036は、第1の再接続チケットおよびハンドルを中間ノード1032に送信しながら、第1の再接続チケットのコピーおよびハンドルのコピーを維持する。第1の再接続チケットのコピーは、後にチケットオーソリティ1036が使用することができ、クライアント108の再接続プロセス中に、後にチケットオーソリティ1036にそのコピーを示す際に、元々はクライアント108に送信された第1の再接続チケットを検証する。一実施態様では、チケットオーソリティ1036は、第1のプロトコルサービス112に対するアドレスも維持するが、そのアドレスは、後述するように、第1の接続チケットに関連し、第1の再接続チケットの検証時に、中間ノード1032に送信される。
【0103】
一実施態様では、中間ノード1032は、チケットオーソリティ1036がそこに送信されたハンドルを使用して、チケットオーソリティ1036で維持された第1の接続チケットを削除するようにさらに構成される。別の実施態様では、下記のように、チケットオーソリティ1036は、クライアント108のホストサービス116への再接続プロセス中に、第1の再接続チケットを削除し、その後代替の第1の再接続チケットを生成するようにさらに構成される。加えて、別の実施態様では、第1の再接続チケットは、所定の時間の経過後に自動的に削除するように構成される。
【0104】
別の実施態様では、第1のプロトコルサービス112は、第1の再接続チケットなどの場合、例えば、大きな乱数を含むことができる第2の再接続チケットを生成するように構成される。第1のプロトコルサービス112は、第2の接続チケットをクライアント108に送信しながら、第2の再接続チケットのコピーおよびセッション番号を維持するようにも構成することができる。第2の再接続チケットのコピーは、後に第1のプロトコルサービス112が使用することができ、クライアント108の再接続プロセス中に、後に第1のプロトコルサービス112にそのコピーを示す際に、元々はクライアント108に送信された第2の再接続チケットを検証する。一実施態様では、第1のプロトコルサービス112は、中間ノード1032を介して第2の再接続チケットをクライアント108に送信する。別の実施態様では、第1のプロトコルサービス112は、第2の再接続チケットをクライアント108に直接送信する。さらに、下記にさらに詳しく説明するように、第1のプロトコルサービス112は、クライアント108のホストサービス116への再接続プロセス中に、第2の再接続チケットを削除し、その後代替の第2の再接続チケットを生成するようにさらに構成される。加えて、別の実施態様では、第2の再接続チケットは、所定の時間の経過後に自動的に削除するように構成される。
【0105】
一実施態様では、中間ノード1032は、第1および第2の再接続チケットに対する中間物としての機能を果たす。中間ノード1032は、例えば、チケットオーソリティ1036が生成する第1の再接続チケット、および第1のプロトコルサービス112が生成する第2の再接続チケットを受信する。中間ノード1032は、次いで第1の再接続チケットおよび第2の再接続チケットをクライアント108に送信することができる。さらに、クライアント108のホストサービス116への再接続プロセス中、中間ノード1032は、クライアント108から第1の再接続チケットおよび第2の再接続チケットを受け入れることができ、その後第1の再接続チケットをチケットオーソリティ1036に送信することができ、該当する場合は、第2の再接続チケットを第1のプロトコルサービス112に送信することができる。
【0106】
クライアント108とホストサービス116との間の第1の通信セッションが、例えば異常に終了した場合、ユーザーに自身の認証証明書を再入力するよう要求することなく新しいセッションを再確立できる。クライアント108およびホストサービス116が第2の通信セッションを再確立する際、クライアント108は第1および第2の再接続チケットならびにSIDを中間ノード1032へ再伝送する。中間ノード1032は第1および第2の再接続チケットならびにSIDをチケットオーソリティ1036へ伝送し、チケットオーソリティ1036は第1の接続のための暗号化した認証証明書を見つけ引き出すためにSIDを使用し、引き出した認証証明書を解読するために第1の再接続チケットを使用する。チケットオーソリティ1036は次いで解読された認証証明書を有効にすることにより、クライアントを認証する。再認証後、ホストサービス116との第2の接続124を再確立するため、第2の再接続チケットは第1のプロトコルサービス112へ転送される。
【0107】
図10Bに示すようなネットワーク通信システム1000の別の実施態様において、ACRサービス405は、クライアント108をホストサービス116a乃至116nのいずれかに再接続するチケットオーソリティ1036の代わりに使用することができる。この実施態様において、ACRサービス405は、チケットオーソリティ1036に関して上述したのと同様のサービスを提供することができる。先に説明したように、ACRサービス405はクライアント通信セッションを接続および再接続するためのSIDおよびキーを生成し、有効にし、管理する。SIDおよびチケットは、上述のようにチケットオーソリティ1036によって生成され、有効にされ、管理されるタイプのチケットのようなチケットを形成することができる。このように、別の実施態様において、チケットはセッション識別子およびキーと同義的に使用されてよい。
【0108】
中間ノード1032は、図10Bに示すように、ACRサービス405と通信を行うように構成される。一実施態様において、ACRサービス405は、第1のSIDおよび第1のキーのための要求を中間ノード1032から受信し、その後第1のSIDおよび第1のキーを生成するように構成される。ACRサービス405は、クライアント108とホストサービス116との間の通信セッションを識別するために第1のSIDを使用する。第1のSIDおよび第1のキーは、サービスの異常中断の後、クライアント108に再び認証証明書を提供するよう要求することなくクライアント108にホストサービス116と自動的に再接続させる。
【0109】
第1のSIDおよび第1のキーの生成後、ACRサービス405は、中間ノード1032またはACRサービス405へアクセスできる攻撃者が第1のキーがなくては認証証明書にアクセスできないよう、第1のキーを使用して、クライアント108により供給された認証証明書を暗号化する。ACRサービス405は次いで暗号化した認証証明書をSIDとともにメモリ430内に格納し、第1のSIDおよび第1のキーをネットワーク104上でクライアント108へ伝送する。クライアントがSIDおよびキーを受信すると、ACRサービス405はメモリ430からキーを破壊(すなわち、削除)する。
【0110】
別の実施態様において、第1のプロトコルサービス112は、第2のSIDおよび第2のキーを生成するよう構成される。第1のプロトコルサービス112は、第2のSIDおよび第2のキーのコピーを維持しながら、第2のSIDおよび第2のキーをクライアント108へ伝送するようにも構成できる。第2のSIDおよび第2のキーのコピーは、後に第1のプロトコルサービス112によって、元来は後でクライアント108への再接続プロセス中に第1のプロトコルサービス112に提示されるクライアント108へ伝送された第2のSIDおよび第2のキーを有効にするために使用されうる。一実施態様において、第1のプロトコルサービス112は第2のSIDおよび第2のキーを、中間ノード1032を経由してクライアント108へ伝送する。別の実施態様において、第1のプロトコルサービス112は第2のSIDおよび第2のキーをクライアント108へ直接伝送する。さらに、以下でさらに詳しく説明するように、第1のプロトコルサービス112は、ホストサービス116へのクライアント108の再接続プロセス中に第2のSIDおよび第2のキーを削除し、その後代替の第2のSIDおよび第2のキーを生成するようにさらに構成できる。また、別の実施態様において、第2のSIDおよび第2のキーは、所定時間の経過後に自動削除されるように構成される。
【0111】
一実施態様において、中間ノード1032は第1および第2のSIDおよびキーのための仲介としての役割を果たす。中間ノード1032は、例えばACRサービス405によって生成された第1のSIDおよび第1のキーならびに第1のプロトコルサービス112によって生成された第2のSIDおよび第2のキーを受信する。中間ノード1032はその後第1のSIDおよび第1のキーならびにSIDおよび第2のキーをクライアント108へ伝送する。さらに、ホストサービス116へのクライアント108の再接続プロセス中、中間ノード1032はクライアント108から第1のSIDおよび第1のキーならびに第2のSIDおよび第2のキーを受け取り、その後第1のSIDおよび第1のキーをACRサービス405へ、また適切な場合、第2のSIDおよび第2のキーを第1のプロトコルサービス112へ伝送することができる。
【0112】
クライアント108とホストサービス116との間の第1の通信セッションが、例えば異常に終了した場合、ユーザーに自身の認証証明書を再入力するように要求することなく新しいセッションを再確立できる。クライアント108およびホストサービス116が第2の通信セッションを再確立する際、クライアント108は第1および第2のSIDおよびキーを中間ノード1032へ再伝送する。中間ノード1032は第1のSIDおよび第1のキーをACRサービス405へ伝送し、ACRサービス405は、第1の接続のための暗号化した認証証明書を見つけ引き出すためにSIDを使用し、引き出した認証証明書を解読するために第1のキーを使用する。
【0113】
ACRサービス405はその後、解読された認証証明書を有効にすることによりクライアントを認証する。再認証後、第2のSIDおよび第2のキーは、ホストサービス116との第2の接続124を再確立するため、第1のプロトコルサービス112へ転送される。
【0114】
図11Aを参照すると、ネットワーク通信のためのシステム1100の別の実施態様は、上述のように、ネットワーク104および104’と、クライアント108と、第1のプロトコルサービス112と、ホストサービス116と、中間ノード1032と、チケットオーソリティ1036とを含み、さらに、一実施態様においてクライアント108をホストサービス116に最初に接続するためにどちらも使用される、第1の計算ノード1140および第2の計算ノード144を示す。さらに、図11Aの実施態様では、クライアント108は、例えば、Microsoft社(Redmond、WA)製のINTERNET EXPLORERなどのような、ワールドワイドウェブに接続するためのウェブブラウザ148をさらに含む。
【0115】
一実施態様では(図示せず)、システム1100は、2つ以上の中間ノード1032および/または2つ以上の第1のプロトコルサービス112を含む。クライアント108と第1のプロトコルサービス112との間のメッセージが通過すべき中間ノード1032および/または第1のプロトコルサービス112は、例えばロードバランシング式に基づいてそれぞれ選択することができる。
【0116】
第1の計算ノード1140および第2の計算ノード1144のそれぞれは、通信が可能で本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する、いずれのコンピュータとすることができる。例えば、一実施態様では、第1の計算ノード1140は、1つ以上のウェブサイトを提供するウェブサーバである。別の実施態様では、第2の計算ノード1144は、XMLサービスあるいはウェブサービスを提供する。
【0117】
一実施態様では、クライアント108およびネットワーク104は、外部ネットワーク1152を形成するが、破線で示される第1のファイアウォール1156によってシステム1100の他の部分から切り離される。中間ノード1032および第1の計算ノード1140は、「非武装地帯」1160(すなわち、会社のプライベートネットワークとパブリックネットワークとの間に配置されるネットワーク領域)内に置くことができ、同様に破線で示される第1のファイアウォール1156および第2のファイアウォール1164によってシステム1100の他の部分から切り離される。次いで、図に示すように、ネットワーク104’、第1のプロトコルサービス112、ホストサービス116a乃至116n、チケットオーソリティ1036、および、第2の計算ノード1144は、内部ネットワーク1168を形成するが、第2のファイアウォール1164によってシステム1100の他の部分から切り離される。
【0118】
あるいは、図11Aには示していない別の実施態様では、システム1100は、非武装地帯1160内でネットワーク104と中間ノード1032との間に配置される第3の計算ノード1146をさらに含む。第3の計算ノード1146は、ネットワーク化された通信が可能で本願明細書に開示した動作を行うには十分なプロセッサ能力とメモリ容量を有する、いずれのコンピュータとすることができる。下記のように、第3の計算ノード1146は、一部の実施態様では、クライアント108のホストサービス116への最初の接続プロセス中、および/またはクライアント108のホストサービス116への再接続プロセス中に使用する。より具体的には、下記のように、システム1100が2つ以上の中間ノード1032を含む際には、第3の計算ノード1146は、例えばロードバランシング式に基づいて、クライアント108のクライアントエージェント128と第1のプロトコルサービス112との間の通信が通過すべき中間ノード1032を選択することができる。
【0119】
さらに、図11Aを参照すると、中間ノード1032は、別の実施態様では、2つ以上のレベル「a」乃至「n」の中間ノード1032に置換することができる。図示するように、各レベル「a」乃至「n」は、2つ以上の中間ノード1032a乃至1032nを含むことができる。下記のように、クライアント108のクライアントエージェント128は、例えばロードバランシング式に基づいて、中間ノード1032のいずれの組み合わせを介して送ることができる。例えば、図示するように、クライアントエージェント128は、接続120を介して中間ノード1032を介して送ることができる。当業者にとって容易に明らかなように、他の構成のシステム1100も可能である。
【0120】
再び図11Aを参照すると、一実施態様では、ウェブブラウザ1148は、ネットワーク104を通じて第1の計算ノード1140と通信を行うが、これ自身が第2の計算ノード1144およびチケットオーソリティ1036と接続する。より具体的には、第1の計算ノード1140は、第2の計算ノード1144およびチケットオーソリティ1036のアドレスによって構成される。一実施態様では、下記にさらに説明するように、第1の計算ノード1140は、クライアント108のウェブブラウザ1148と、第2の計算ノード1144と、チケットオーソリティ1036との間の情報を中継し、それによってそれらの直接的な通信を防ぐように構成される。このような直接的な通信を防ぐことによって、第1の計算ノード140は、システム1100に更なるレベルのセキュリティを付加する。第1の計算ノード1140は、中間ノード1032のアドレス、または代わりに、2つ以上の中間ノード1032のアドレスによって構成することもできる。
【0121】
第2の計算ノード1144は、その役割として、ホストサービス116上で実行するどのアプリケーションプログラムをクライアント108のユーザーが利用できるのかを判断するように構成される。すなわち、第2の計算ノード1144は、ユーザーがアクセスを許可されたのはどのアプリケーションプログラムなのかを判断する。一実施態様では、ユーザーが自身の所望のアプリケーションプログラムを選択した後、さらに下記のように、第2の計算ノード1144は、ロードバランシングのためにユーザーの所望のアプリケーションを実行するために、どのホストサービス116を使用するのかを判断するように構成される。第2の計算ノード1144は、そのホストサービス116のアドレスを第1の計算ノード1140に返す。第2の計算ノード1144は、ロードバランシング式を使用して複数の第1のプロトコルサービス112の中からも選択される、第1のプロトコルサービス112のアドレスも第1の計算ノード1140に返す。次に、第1の計算ノード1140は、選択した第1のプロトコルサービス112および選択したホストサービス116のアドレスをチケットオーソリティ1036に送信する。
【0122】
チケットオーソリティ1036は、その役割として、接続チケットを生成する。一実施態様では、チケットオーソリティ1036は、クライアント108への送信に対する最初の接続チケットを第1の計算コード1140に送信する。別の実施態様では、チケットオーソリティは、第1の再接続チケットを中間ノード1032に送信する。
【0123】
図11Bに示されるようなネットワーク通信システム1100の別の実施態様において、ACRサービス405は、クライアント108をホストサービス116に再接続するチケットオーソリティ1036の代わりに使用することができる。チケットオーソリティ1036と同様にチケットを使用する代わりに、ACRサービス405は、クライアント通信セッションを接続および再接続するためのSIDおよびキーを生成し、有効にし、管理する。ACRサービス405は、クライアント108に関連するSIDおよびキー、またはチケットを使用し、ホストサービス116またはサーバ415に対してクライアントを認証および再認証する。前述のように、チケットはSIDとキーの組み合わせを参照することができ、またチケットはSIDおよびキーを備えることができる。
【0124】
図11Bのシステム1100は、上述のように、ネットワーク104および104’、クライアント108、第1のプロトコルサービス112、ホストサービス116、中間ノード1032、およびACRサービス405を含み、第1の計算ノード1140および第2の計算ノード1144をさらに描写したものであり、その両方がホストサービス116にクライアント108を最初に接続するための一実施態様において使用される。さらに、クライアント108は、ワールドワイドウェブに接続するためのウェブブラウザ148をさらに含む。
【0125】
一実施態様(図示せず)において、システム1100は、2つ以上の中間ノード1032および/または2つ以上の第1のプロトコルサービス112または2つ以上のACRサービス405を含む。それを介してクライアント108と第1のプロトコルサービス112との間のメッセージが通過しなければならない中間ノード1032、および/または第1のプロトコルサービス112および/またはACRサービス405は、以下に説明するように、例えばロードバランシング式に基づいてそれぞれ選択することができる。
【0126】
別の実施態様において、図11Bのシステム1100は、同様に内部ネットワーク1168から第2のファイアウォール1164によって分離された第1のファイアウォール1156によって、「非武装地帯」1160から分離された外部ネットワーク1152を含んでよい。本発明を図11Aおよび11Bにおける様々なネットワークの観点から上記で説明したが、例えば、内部ネットワーク、外部ネットワーク、サブネットワーク、イントラネット、ファイアウォール、セキュリティゾーン、単一サーバ、サーバネットワークまたはサーバファームの組み合わせを含むトポロジーのような、その他任意のネットワークトポロジーを使用することができる。
【0127】
あるいは、図11Bに示されていない別の実施態様において、システム1100は、非武装地帯1160内でネットワーク104と中間ノード1032との間に配置される第3の計算ノード1146をさらに含む。第3の計算ノード1146は、一部の実施態様において、ホストサービス116へのクライアント108の最初の接続プロセス中、またはホストサービス116へのクライアント108の再接続プロセス中に使用される。
【0128】
図11Bにおけるシステム1100の別の実施態様において、中間のノード1032は、2つ以上のレベル「a」乃至「n」の中間ノード1032a乃至1032nに置換することができる。クライアント108のクライアントエージェント128は、例えばロードバランシング式に基づいて、中間ノード1032のいずれかの組み合わせを介して送ることができる。
【0129】
一実施態様において、ウェブブラウザ1148は第1の計算ノード1144によるネットワーク104を通じて通信を行うが、それ自体が第2の計算ノード1144およびACRサービス405と接続する。第1の計算ノード1140には、第2の計算ノード1144およびACRサービス405のタイムアドレスによって構成される。システム1100におけるセキュリティの追加レベルを提供する別の実施態様において、第1の計算ノード1140は、クライアント108のウェブブラウザ1148と第2の計算ノード1144と、ACRサービス405の間の情報を中継し、それによってそれらの直接的な通信を防ぐように構成される。第1の計算ノード1140は、中間ノード1032a乃至1032nのいずれかのアドレスによって構成することもできる。
【0130】
その部分に関して、第2の計算ノード1144は、ホストサービス116上で実行するどのアプリケーションプログラムをクライアント108が利用できるのかを判断し、ユーザーによって選択されたホストサービス116のアドレスを第1の計算ノード1140に提供するように構成されている。第2の計算ノード1144は、ロードバランシング式の使用により、複数の第1のプロトコルサービス112のうち1つの第1の計算ノード1140に対するアドレスも提供する。同様に、第1の計算ノード1140は、選択した第1のプロトコルサービス112および選択したホストサービス116をACRサービス405へ伝送する。
【0131】
その部分に関して、ACRサービス405は、本願明細書に開示されるようなクライアントのホストサービス116またはサーバ415との通信セッションを再確立するための認証および再認証サービスを提供するために、接続SIDおよびキーを生成し、有効にし、管理する。一実施態様において、ACRサービス405は、クライアント108への伝送のために第1のSIDおよび第1のキーを第1の計算ノード1140へ伝送する。別の実施態様において、ACRサービス405は、第1のSIDおよび第1のキーを中間ノード1032の1つへ伝送する。
【0132】
別の局面において、本発明は、ネットワーク通信および第1のプロトコル内でカプセル化された複数の第2のプロトコルを使用してクライアント108をホストサービス116に再接続するための方法に関する。前記方法は、第1のプロトコルを使用し第1のプロトコル内でカプセル化された複数の第2のプロトコルを介してクライアント108と第1のプロトコルサービス112との間で通信を行うことによって、クライアント108と第1のプロトコルサービス112との間の第1の接続を確立するステップを含む。さらに、第2のプロトコルのうち少なくとも1つは複数の仮想チャネルを含む。
【0133】
本発明のこの局面の一実施態様において、第2の接続は、第2のプロトコルのうち1つを使用して、第1のプロトコル112とホストサービス116との間に確立される。第1のプロトコルサービス112とホストサービス116との間の通信は、第2のプロトコルのうち1つを介して発生する。特に、複数の第2の接続はそれぞれ第1のプロトコルサービス112と異なるホストサービス116との間に確立され、複数の第2の接続のそれぞれは複数の第2のプロトコルのそれぞれを使用して確立される。さらに別の実施態様において、クライアント108と第1のプロトコルサービス116との間の第1の接続は、1つ以上の中間ノード1032によって確立される。
【0134】
図12Aを参照して、ネットワークの失敗後にクライアントをホストサービスに再接続する方法1200の一実施態様を示す。ステップ1204で、クライアント108は、例えば、複数のホストサービス116の1つに接続する。概して、クライアント108は、通信セッションを開始するため、認証証明書をホストサービス116へ伝送するよう要求される。クライアント108のホストサービス116への接続後、クライアント108およびホストサービス116は、第1のプロトコルサービス112を介して、およびステップ1208で、図2A乃至2B、および図3を参照して上述したように、第1のプロトコル内にカプセル化された複数の第2のプロトコルを介して通信を行う。一実施態様では、第1のプロトコルサービス112は、いずれの第1のプロトコルパケットの送信前に、通信を第1のプロトコル204のレベルで暗号化し、それによって通信を保護する。別の実施態様では、第1のプロトコルサービス112は、いずれの第1のプロトコルパケットの送信前に、通信を第1のプロトコルのレベルで圧縮し、それによって通信効率を改善する。
【0135】
ステップ1212で、クライアントエージェント128は、クライアントエージェント128と第1のプロトコルサービス112との間の接続120が失敗したかどうかを判断する。例えば、クライアントエージェント128と中間ノード1032との間の接続120aが失敗した、中間ノード1032と第1のプロトコルサービス112との間の接続120bが失敗した、あるいは接続120aおよび120bの両方が失敗したという可能性がある。クライアントエージェント128が、接続120は失敗しなかったと判断した場合は、方法1200はステップ1220へ進む。一方で、クライアントエージェント128が、接続120は失敗したと判断した場合は、ステップ1216で、クライアント108にホストサービス116への信頼できる接続を提供し、ホストサービス116に再接続する。
【0136】
第1の通信セッションが異常終了した後、ステップ1216において再接続するステップは、システム1100にチケットオーソリティ1036およびSIDならびに第1および第2の再接続チケットを中間ノード1032へ伝送するクライアント108を配備するステップを含むことができる。中間ノード1032は、クライアント108を認証しクライアント108と中間ノード1032との間の接続120を再確立するため、第1の再接続チケットを使用する。中間ノード1032は次いで第2の再接続チケットを第1のプロトコルサービス112へ伝送し、そこではホストサービス116への接続124の再確立を認証するために第2の再接続チケットを使用する。再接続チケットは従って、認証証明書を2度再伝送することなくクライアント108にホストサービス116への第2の通信セッションを自動的に確立させる。
【0137】
別の実施態様において、ステップ1216の再接続するステップは、ACRサービス405を配備するシステム1100を備えることもできる。そのような実施態様において、クライアント108は、クライアント108を認証しクライアント108のホストサービス116への接続を再確立するため、第1のSIDおよび第1のキーを中間ノード1032へ伝送する。
【0138】
ステップ1220では、クライアント108がプロトコルサービス112との接続120を、そして結果的にホストサービス116a乃至116nとの接続124a乃至124nを完全に完了することを望んでいるかどうかを判断する。望んでいない場合には、ステップ1208で、第1のプロトコル内にカプセル化された複数の第2のプロトコルを介して、クライアント108と第1のプロトコルサービス112との間の通信を継続する。望んでいる場合は、次いでステップ1224で、すべての接続120a、120b、および124a乃至124nを中断し、すべての再接続チケットを削除する。ACRサービス405を使用する別の実施態様において、ステップ1224で、すべての接続120a、120b、および124a乃至124nは切断されすべてのSIDおよびキーは削除される。一実施態様では、中間ノード1032は、チケットオーソリティ1036から受信したハンドルを使用して、チケットオーソリティ1036に保存された第1の再接続チケットのコピーを削除する。チケットオーソリティ1036を配備する別の実施態様において、第1のプロトコルサービス112は、第1のプロトコルサービス112で維持されていた第2の再接続チケットのコピーを削除する。ACRサービス405を配備するさらに別の実施態様において、第1のプロトコルサービス112は、第1のプロトコルサービス112で維持されていた第2のSIDおよび第2のキーのコピーを削除する。
【0139】
チケットオーソリティ1036を使用する、更なる実施態様では、何らかの理由で第2のプロトコル接続124が失敗した場合、関連する第1のプロトコルサービス112で保存された第2の再接続チケットのコピーを第1のプロトコルサービス112によって削除する。さらに別の実施態様では、第1の再接続チケットおよび/または第2の再接続チケットは、ステップ1212でのように、接続120における失敗に続いて、および/またはステップ1220でのように、接続120の完全な終了に続いて、所定の時間の経過後に自動的に削除される。
【0140】
別の局面において、本発明は、ACRサービス405を使用してクライアント108をホストサービス116に再接続するための方法に関する。ここで図12Bを参照して、クライアント108をホストサービス116に再接続するための方法1216の一実施態様を説明する。クライアント108は、第1のSIDおよび第1のキーをACRサービス405へ伝送し、ホストサービスへ再接続する(ステップ1255)。ACRサービス405は、暗号化した認証証明書を見つけ引き出すためにSIDを使用し(ステップ1258)、引き出した認証証明書を解読するためにキーを使用する(ステップ1260)。一実施態様(図示せず)において、ACRサービス405は、保持した第1のプロトコルサービス113とホストサービス116との間のセッションに対してクライアント108を再認証するために、解読した認証証明書を使用する。再認証後、クライアント108の第1のプロトコルサービス116に対して再確立された接続は、第1のプロトコルサービス112とホストサービス116との間の保持したセッションに再リンクされる。
【0141】
別の実施態様において、第2の通信セッション中に、ACRサービス405は認証証明書のための第2のキーを生成し(ステップ1270)、次いでその認証証明書を第2のキーを使用して暗号化する(ステップ1275)。ACRサービス405は第2のSIDを作成する(ステップ1280)。次いで解読された認証証明書がホストサービス116で再認証され、第2のSIDが保持したホストサービス116との通信セッションと関連付けられる(ステップ1280a)。ACRサービス405は次いで第2のSIDおよび第2のキーをクライアント108へ伝送する(ステップ1285)。一実施態様において、ACRサービス405は中間ノード1032を通じて第2のSIDおよび第2のキーを伝送することができる。クライアント108は第2のSIDおよび第2のキーを格納する(ステップ1290)。ACRサービス405は次いで第2のキーを削除する(ステップ1295)。
【0142】
図13A乃至13Cを参照して、ACRサービス405を使用したクライアント108のホストサービス116への最初の接続のための方法1300の一実施態様を示す。ステップ1304で、クライアント108は、ブラウザ148を使用して、例えばHTTPリクエストなどのような、リクエストを第1の計算ノード1140に送信する。第1の計算ノード1140は、認証情報(例えば、ユーザー名およびパスワード)を要求する、例えばHTMLフォームなどのようなウェブページを返す。クライアント108のユーザーは、自分の認証を入力して完了したフォームを第1の計算ノード1140に送信する。
【0143】
ステップ1308で、第1の計算ノード1140は、次いでクライアント108のユーザーに実行可能なアプリケーションを通知する。一実施態様では、第1の計算ノード1140は、ユーザーの認証をログインページから取り出し、第2の計算ノード1144に対しユーザーが利用可能なアプリケーションを列挙するよう求める要求とともに、その認証を第2の計算ノード1144に送信する。ユーザーの認証に基づいて、第2の計算ノード1144は、ユーザーが利用可能な特定のアプリケーションのリストを第1の計算ノード1140に返し、次いでそのリストは、例えばウェブページの形態で、クライアント108のユーザーに転送される。
【0144】
ステップ1312で、ユーザーは、所望のアプリケーションと、そのアプリケーションを第1の計算ノード1140に送信する要求を選択する。例えば、一実施態様では、ユーザーは、第1の計算ノード1140がユーザーに示すウェブページにリストされた所望のアプリケーションと、そのアプリケーションを第1の計算ノード1140に転送するHTTP要求をクリックする。その要求は、第1の計算ノード140によって処理され、第2の計算ノード1144に転送される。
【0145】
ステップ1316で、第2の計算ノード144は、要求したアプリケーションを実行するホストサービス116を判断する。第2の計算ノード1144は、例えば、ロードバランシング式に基づいてその決定を行うことができる。一実施態様では、第2の計算ノード1144は、接続124を介してホストサービス116と通信を行うために使用する複数の第1のプロトコルサービス112の中から第1のプロトコルサービス112も判断する。また、第2の計算ノード1144は、例えば、ロードバランシング式に基づいてその決定を行うことができる。第2の計算ノード1144は、選択したホストサービス116および選択した第1のプロトコルサービス112のアドレスを第1の計算ノード1140に返す。
【0146】
ステップ1320で、クライアント108には、次いで最初の接続セッションIDおよびキー、第1のSID、および第1のキーと、中間ノード1032(下記のように、その実際のアドレスか、またはその仮想アドレスである)のためのアドレスが提供される。一実施態様では、第1の計算ノード1140は、最初の接続セッションIDおよびキーの要求とともに、選択したホストサービス116および選択した第1のプロトコルサービス112のアドレスをACRサービス405に提供する。ACRサービス405は、最初のセッションIDおよびキーを生成し、このセッションIDおよびキーを第1の計算ノード1140に送信しながら、自身のためのコピーを保存する。
【0147】
一実施態様において中間ノード1032の実際のアドレスによって構成される第1の計算ノード1140は、次いで中間ノード1032の実際のアドレスおよび最初の接続セッションIDおよびキーをクライアント108のブラウザ1148に送信する。第1の計算ノード1140は、例えば、中間ノード1032の実際のアドレスおよび最初の接続チケットを含むファイルをまず作成し、次いでそのファイルをクライアント108のブラウザ1148に送信することができる。随意的に、別の実施態様では、第1の計算ノード1140は、2つ以上の中間ノード1032の実際のアドレスによって構成される。このような実施態様では、第1の計算ノード1140は、クライアント108と第1のプロトコルサービス112との間のメッセージが通過すべき中間ノード1032を判断する。第1の計算ノード1140は、次いでその選択した中間ノード1032の実際のアドレスおよび最初の接続チケットを、例えば、上述のファイルを使用して、クライアント108のブラウザ1148に送信する。一実施態様では、第1の計算ノード1140は、ロードバランシング式を使用して中間ノード1032を選択する。次いでクライアント108のクライアントエージェント128が起動され、中間ノード1032のアドレスを使用して、ステップ1324で、クライアント108のクライアントエージェント128と中間ノード1032との間の第1のプロトコル接続120aを確立する。
【0148】
あるいは、別の実施態様では、第1の計算ノード1140は、中間ノード1032の仮想アドレスとしての機能を果たす第3の計算ノード1146の実際のアドレスによって構成される。このような実施態様では、ステップ1320で、第1の計算ノード1140は、第3の計算ノード1146の実際のアドレスおよび最初の接続セッションIDおよびキーを、例えば、上述のファイルを使用して、クライアント108のブラウザ1148に送信する。次いでクライアント108のクライアントエージェント128が起動され、第3の計算ノード1146の実際のアドレスを使用して、ステップ1324で、クライアント108のクライアントエージェント128と第3の計算ノード1146との間の第1のプロトコル接続を確立する。第3の計算ノード1146は、次いで、クライアント108と第1のプロトコルサービス112との間のメッセージが通過すべき中間ノード1032を判断する。一実施態様では、第3の計算ノード1146は、ロードバランシング式を使用して中間ノード1032を選択する。中間ノード1032を選択すると、第3の計算ノード1146は、中間ノード1032に対する第1のプロトコル接続を確立する。その結果、第3の計算ノード1146を介して、第1のプロトコル接続120aが、クライアント108のクライアントエージェント128と中間ノード1032との間に存在する。したがって、第3の計算ノード1146の実際のアドレスは、中間ノード1032の実際のアドレスにマップされる。その結果、クライアント108のクライアントエージェント128に対して、第3の計算ノード146の実際のアドレスが中間ノード1032の仮想アドレスとしての機能を果たす。
【0149】
一実施態様では、2つ以上のレベルの中間ノード1032a乃至1032nが存在する際には、上述のように、第1の計算ノード1140または第3の計算ノード1146はそれぞれ、クライアントエージェント128がレベル「a」で接続する中間ノード1032だけを選択する。このような実施態様では、各々のレベル「a」乃至「n−1」で、クライアントエージェント128がレベルで送られる中間ノード1032は、その後、例えばロードバランシング式に基づいて、次のレベルで接続する中間ノード132を判断する。あるいは、他の実施態様では、第1の計算ノード1140または第3の計算ノード146はそれぞれ、2つ以上またはすべてのレベル「a」乃至「n」に対して、クライアントエージェント128が送られる中間ノード1032を選択する。
【0150】
クライアント108のクライアントエージェント128と中間ノード1032との間の第1のプロトコル接続120a、例えば、レベル「n」の中間ノード1032(以下、方法1300において中間ノード1032と称する)を確立すると、次いでクライアントエージェント128は、最初の接続チケットを中間ノード1032に送信する。
【0151】
次いで、ステップ1328で、最初の接続セッションIDおよびキーが有効かどうかを判断する。一実施態様では、中間ノード1032は、検証のために最初の接続SIDおよびキーをACRサービス405に送信する。一実施態様では、ACRサービス405は、ステップ1320で保存したSIDおよび暗号化した認証証明書と比較することによって、SIDおよびキーを検証する。ACRサービス405がSIDおよびキーを有効であると判断した場合、ステップ1332で、ACRサービス405は、第1のプロトコルサービス112のアドレスおよび選択したホストサービス116のアドレスを中間ノード1032に送信する。第1のプロトコルサービス112は、前記SIDおよびキー、およびそのコピーを削除することもできる。一方で、ACRサービス405がSIDおよびキーを無効であると判断した場合、ステップ1330で、クライアント108は、第1のプロトコルサービス112への接続を拒否し、結果的に、ホストサービス116に接続する。
【0152】
ステップ1332に続いて、中間ノード1032は、選択した第1のプロトコルサービス112のアドレスを使用して、ステップ1336で、中間ノード1032と第1のプロトコルサービス112との間の第1のプロトコル接続120bを確立する。したがってここでは、中間ノード1032を介して、クライアント108のクライアントエージェント128と第1のプロトコルサービス112との間に、第1のプロトコル接続120が存在する。中間ノード1032は、選択したホストサービス116のアドレスを第1のプロトコルサービス112に渡すこともできる。
【0153】
一実施態様では、ステップ1340で、第1のプロトコルサービス112は、選択したホストサービス116のアドレスを使用して、第1のプロトコルサービス112と選択したホストサービス116との間の第2のプロトコル接続124を確立する。例えば、選択したホストサービス116は実際にホストサービス116aであり、第2のプロトコル接続124aが第1のプロトコルサービス112とホストサービス116bとの間に確立される。
【0154】
一実施態様では、ステップ1340に続いてステップ1344で、ユーザーは実行する第2のアプリケーションを選択し、ステップ1348で、第2の計算ノード1144は第2のアプリケーションが実行されるホストサービス116を判断する。例えば、ロードバランシング式を計算することによって、第2の計算ノード1144は、第2のアプリケーションプログラムを実行するためにホストサービス116bを選択することが可能である。第2の計算ノード1144は、次いで選択したホストサービス116bのアドレスを第1のプロトコルサービス112に送信する。一実施態様では、第2の計算ノード1144は、第1のプロトコルサービス112をによる直接的な通信状態にあり、そこにアドレスを直接送信する。別の実施態様では、選択したホストサービス116bのアドレスは、第1のプロトコルサービス112に間接的に送信される。例えば、第1の計算ノード1140、ACRサービス405、中間ノード1032、および第1のプロトコルサービス112のいずれの組み合わせを介して第1のプロトコルサービス112にアドレスを送信することができる。選択したホストサービス116bのアドレスを受信すると、第1のプロトコルサービス112は、ステップ1352で、第1のプロトコルサービス112と選択したホストサービス116bとの間の第2のプロトコル接続124bを確立する。
【0155】
ステップ1344、1348、および1352は、多数回繰り返すことができる。このように、多数のアプリケーションプログラムを多数のホストサービス116a乃至116n上で実行することができ、その出力は、多数の第2のプロトコルを使用して接続124a乃至124nを通じて第1のプロトコルサービス112へ通信を行うことができる。
【0156】
ステップ1356では、第1のプロトコルサービス112は、上述のように、第1のプロトコル内に複数の第2のプロトコルをカプセル化することができる。このように、クライアント108は、複数のホストサービス116に接続され、同時にそれらと通信を行う。
【0157】
別の実施態様では、ステップ1344、1348、および1352を行う前に、例えば、ホストサービス116bなどのようなホストサービス116上で新しいアプリケーションプログラムを実行するために、クライアント108のユーザーは、例えば、ホストサービス116a上で実行しているアプリケーションプログラムなどのような、別のアプリケーションプログラムの実行を終了する。そのような場合、第1のプロトコルサービス112は、第1のプロトコルサービス112とホストサービス116aとの間の接続124aを中断させる。次いで第1のプロトコルサービス112は、ステップ1344、1348、および1352を実行して、クライアント108と第1のプロトコルサービス112との間の接続120を中断せずに、第1のプロトコルサービス112とホストサービス116bとの間の接続124bを確立する。
【0158】
一実施態様では、第1のSIDおよびキーは、ステップ1360で生成される。例えば、中間ノード1032は、ACRサービス405から第1のSIDおよびキーを要求する。その要求を受信すると、ACRサービス405は、第1のSIDおよびキーを生成し、例えば乱数であるハンドルも生成することができる。次いでACRサービス405は、ステップ1364で、第1のSIDおよびキー、およびハンドルを中間ノード1032に送信し、一方で、第1のSIDおよびキーのコピーおよびハンドルのコピーを保存することができる。ACRサービス405は、ステップ1320で第1の計算ノード1140によってそこに送信された第1のプロトコルサービス112のアドレスの維持を継続する。次いで中間ノード1032は、ステップ1368で、第1の再接続チケットをクライアント108に送信する。
【0159】
ステップ1372では、次いで第2のSIDおよびキーを生成する。一実施態様では、第1のプロトコルサービス112は、第2のSIDおよびキーを生成する。次いで第1のプロトコルサービス112は、ステップ1376で、中間ノード1032を介して第2のSIDおよびキーをクライアント108に送信する。この際、第1のプロトコルサービス112は、接続120の中断に続いて再接続されるセッションを識別するために、キーのコピーおよびそれらに関連するセッション番号を保存する。一実施態様では、例えば、第1のプロトコルサービス112は、特定のセッション番号に対して、そのセッション番号に関連する第2のプロトコル接続124a乃至124nをリストしたテーブルを維持する。したがって、第1のプロトコルサービス112での第1のプロトコル接続120の再確立および第2のSIDおよびキーの検証に続けて、下記のように、第1のプロトコルサービス112は、クライアント108への通信のために、再確立された第1のプロトコル接続120内にカプセル化された第2のプロトコル接続124を識別することができる。
【0160】
図13A乃至13Cに示されていない実施態様において、チケットオーソリティ1136は、ACRサービス405の代わりにホストサービス116へのクライアント108の再接続を提供するために使用されることができる。方法1300において、チケットオーソリティ1326は、ACR405と同様にSIDおよびキーの代わりに再接続チケットを生成し伝送するであろう。例えば、ステップ1320において、チケットオーソリティ1036はクライアント108に最初の接続チケットおよび中間ノード1032のアドレスを提供するであろう。また、ステップ1328において、チケットオーソリティ1036は最初の接続チケットが有効か否かを判断し、ステップ1360において第1の再接続チケットを生成するであろう。また、ステップ1364、1368、1372、および1378において、チケットオーソリティは方法1300に関連する第1および第2の再接続チケットを生成し伝送するであろう。このように、チケットオーソリティ1036はホストサービス116へのクライアント108の再接続を容易にした。
【0161】
以下、図14を参照して、(例えば、図12Aのステップ1216で)クライアント108に1つ以上のホストサービス116への持続的で信頼できる接続を提供し、クライアント108をホストサービス116へ再接続する方法1400の一実施態様を示す。特に、ステップ1404で、第1のプロトコルサービス112と1つ以上のホストサービス116のそれぞれとの間の第2のプロトコル接続124を維持する。さらに、ステップ1408で、例えば、図12のステップ1216で中断していると判断された接続120を介して、クライアント108のクライアントエージェント128と第1のプロトコルサービス112との間の直近に送信されたデータパケットのキューを維持する。一実施態様では、データパケットは、接続120の前でも失敗時でもキューに入れられ維持される。キューに入れたデータパケットは、例えば、クライアントエージェント128によってバッファ内に維持することができる。あるいは、第1のプロトコルサービス112は、キューに入れたデータパケットをバッファ内に維持することができる。さらに別の実施態様では、クライアントエージェント128および第1のプロトコルサービス112のどちらも、キューに入れたデータパケットをバッファ内に維持する。
【0162】
ステップ1412で、新しい第1のプロトコル接続120が、クライアント108のクライアントエージェント128と第1のプロトコルサービス112との間に確立され、第1のプロトコルサービス112と1つ以上のホストサービス116のそれぞれとの間で維持された第2のプロトコル接続124にリンクされ、それによって、クライアント108をホストサービス116に再接続する。クライアント108の再接続後、ステップ1408で維持されたキューに入れたデータパケットは、ステップ1416で、新しく確立された第1のプロトコル接続120を介して送信することができる。このように、ホストサービス116とクライアント108との間の通信セッションは、第1のプロトコルサービス112を介して、いずれのデータも失わずに持続的に進められる。一実施態様において、ACRサービス405は、ホストサービス116にクライアント108を再接続する前に、ホストサービス116へのクライアント108を認証する。別の実施態様において、第1のプロトコルサービス112は、ホストサービス116にクライアント108を再接続する前に、チケットオーソリティ1036で再接続チケットを有効にする。
【0163】
図15A乃至15Bは、図11Bに示したシステム1100の実施態様のように、ACRサービス405を使用してクライアント108を1つ以上のホストサービス116に再接続するための方法1500の一実施態様を示す。
【0164】
ステップ1504で、クライアント108と第1のプロトコルサービス112との間のうちの残りの接続を中断する。例えば、接続120aは失敗したが、接続120bは失敗していない場合、接続120bを中断する。あるいは、接続120bは失敗したが、接続120aは失敗していない場合、接続120aを中断する。
【0165】
一実施態様では、クライアント108に提供した中間ノード1032の実際のアドレスを使用して、ステップ1508で、クライアント108のクライアントエージェント128は、次いでクライアントエージェント128と中間ノード1032との間の第1のプロトコル接続120aを再確立する。あるいは、別の実施態様では、クライアント108に提供した第3の計算ノード1146の実際のアドレスを使用して、ステップ1508で、クライアント108のクライアントエージェント128は、次いでクライアントエージェント128と第3の計算ノード1146との間の第1のプロトコル接続を再確立する。第3の計算ノード1146は、クライアント108と第1のプロトコルサービス112との間のメッセージが通過すべき中間ノード1032を判断する。一実施態様では、第3の計算ノード1146は、ロードバランシング式を使用して中間ノード1032を選択する。クライアント108の1つ以上のホストサービス116への再接続において、第3の計算ノード1146によって選択された中間ノード1032は、クライアント108を1つ以上のホストサービス116に最初に接続するために、その選択とは異なることができる。中間ノード1032を選択すると、第3の計算ノード1146は、中間ノード1032への第1のプロトコル接続を再確立する。したがって、第1のプロトコル接続120aは、第3の計算ノード1146を介して、クライアント108のクライアントエージェント128と中間ノード1032との間で再確立される。
【0166】
一実施態様では、2つ以上のレベルの中間ノード1032が存在する場合、クライアントエージェント128がレベル「a」乃至「n−1」で送られる中間ノード1032は、例えばロードバランシング式に基づいて、次のレベルで接続される中間ノード1032を判断する。あるいは、別の実施態様では、第3の計算ノード1146は、2つ以上またはすべてのレベル「a」乃至「n」に対して、クライアントエージェント128が送られる中間ノード1032を判断する。
【0167】
クライアント108のクライアントエージェント128と中間ノード1032との間の第1のプロトコル接続120a、例えば、レベル「n」の中間ノード1032(以下、方法1500において中間ノード1032と称する)を確立すると、次いでクライアントエージェント128は、ステップ1512で、第1のSIDおよびキーならびに第2のSIDおよびキーを中間ノード1032に送信する。
【0168】
次いで、ステップ1516で、第1のSIDおよびキーが有効かどうかを判断する。一実施態様では、第1のSIDおよびキーの有効性は、ACRサービス405を使用することによって判断される。例えば、中間ノード1032は、第1のSIDおよびキーをACRサービス405に送信する。一実施態様では、ACRサービス405は、第1のSIDおよびキーの有効性を、メモリ430に保存した第1のSIDおよびキーのコピーと比較することによって判断する。ACRサービス405が第1のSIDおよびキーを有効であると判断した場合、ステップ1520で、ACRサービス405は、ホストサービス116へのクライアント108を再認証し、第1のプロトコルサービス112のアドレスを中間ノード1032に送信する。さもなければ、ACRサービス405が第1のSIDおよびキーを無効であると判断した場合、ステップ1524で、クライアント108は、第1のプロトコルサービス112への再接続を拒否し、結果的に、ホストサービス116に接続する。
【0169】
ステップ1528で、第1の再SIDおよびキーは、例えばACRサービス405によって削除され、代替の第2のSIDおよびキーが、例えばACRサービス405により生成される。一部のこのような実施態様では、ACRサービス405は、第2のSIDおよびキーを中間ノード1032に送信する。一部の実施態様では、ACRサービス405は、クライアント108が第1のSIDおよびキーの削除に進む前に代替の第2のSIDおよびキーを受信したことを認識するまで待つ。
【0170】
第1のSIDおよびキーの検証後、中間ノード1032は、第1のプロトコルサービス112のアドレスを使用して、ステップ1532で、中間ノード1032と第1のプロトコルサービス112との間の第1のプロトコル接続120bを再確立する。中間ノード1032と第1のプロトコルサービス112との間の第1のプロトコル接続120bを再確立すると、次いでステップ1536で、第2のSIDおよびキーが有効かどうかを判断する。一実施態様では、第2のSIDおよびキーの有効性は、第1のプロトコルサービス112を使用することによって判断する。例えば、中間ノード1032は、第2のSIDおよびキーを第1のプロトコルサービス112に送信する。一実施態様では、第1のプロトコルサービス112は、第2のSIDおよびキーの有効性を、以前に保存した第2のSIDおよびキーのコピーおよび暗号化された認証証明書と比較することによって判断する。第1のプロトコルサービス112が第2のSIDおよびキーを有効であると判断した場合、第1の中間ノード132と第1のプロトコルサービス112との間で再確立された第1のプロトコル接続120bは、ステップ1540で、第1のプロトコルサービス112と1つ以上のホストサービス116のそれぞれとの間で維持された第2のプロトコル接続124にリンクされる。さもなければ、第1のプロトコルサービス112が第2のSIDおよびキーを無効であると判断した場合、再確立された第1のプロトコル接続120bは、1つ以上の維持された第2のプロトコル接続124にはリンクされず、クライアント108は、ステップ1544で、1つ以上のホストサービス116への再接続を拒否する。
【0171】
ステップ1548で、第2のSIDおよびキーは、例えば第1のプロトコルサービス112によって削除され、代替の第2のSIDおよびキーが、クライアント108への送信のために、例えば第1のプロトコルサービス112により生成される。このような実施態様では、第1のプロトコルサービス112は、代替の第2のSIDおよびキーのコピーを保存する。一部の実施態様では、第1のプロトコルサービス112は、クライアント108が第2のセッションIDおよびキーの削除に進む前に代替の第2のSIDおよびキーを受信したことを認識するまで待つ。
【0172】
ステップ1552で、代替の第2のSIDおよびキーは、クライアントに送信される。例えば、ACRサービス405は、中間ノード1032を介して、代替の第2のSIDおよびキーをクライアント108に送信することができる。さらに、一実施態様では、第1のプロトコルサービス112は、中間ノード1032を介して、代替の第2のSIDおよびキーをクライアント108に送信する
図15A乃至15Cに示されていない実施態様において、チケットオーソリティ1036はACRサービス405の代わりにホストサービス116へクライアント108を再接続するために使用される可能性もある。方法1500において、チケットオーソリティ1036はACRサービス405と同様、SDIおよびキーの代わりに再接続チケットを生成し伝送するであろう。例えば、ステップ1512において、チケットオーソリティ1036は、中間ノード1032からステップ1512で受信した第1の再接続チケットが有効か否かをステップ1516で判断するであろう。ステップ1528においてチケットオーソリティ1036は第1の再接続チケットを削除し、第2の再接続チケットをハンドルで生成する。このように、チケットオーソリティ1036は、ホストサービス116へのクライアント108の通信セッションの再確立および再認証を容易にする。
【0173】
本発明の趣旨および範囲から逸脱することなく、多くの修正および改良が当業者によってなされる場合がある。従って、例示的実施態様は例としての目的のみのために示されたものであり、以下の特許請求の範囲によって定義される本発明を限定するものと考えられるべきでないことは、明確に理解されなければならない。これらの特許請求の範囲は、上記の図に示し説明したものとその他の点で同一でないとしても、逐語的に説明するもの、また実質的に異ならない同等の要素を含むものとして読まれたい。
特許請求の範囲は以下の通りである。
【図面の簡単な説明】
【0174】
上述の本発明の他の目的、局面、特徴、および利点は、添付図面とともに以下の説明を参照することによって、より明らかになり、よりよく理解されるであろう。
【図1A】図1Aは、本発明の実施態様による、クライアントにホストサービスへの信頼できる接続を提供するシステムのブロック図である。
【図1B】図1Bは、本発明の別の実施態様による、クライアントにホストサービスへの信頼できる接続を提供するシステムのブロック図である。
【図2A】図2Aは、本発明の実施態様によるネットワークを通じて行われる通信を示す。
【図2B】図2Bは、本発明の他の実施態様によるネットワークを通じて行われる通信を示す。
【図3】図3は、本発明の実施態様によるネットワークを通じた通信のために第1のプロトコル内に複数の第2のプロトコルをカプセル化するプロセスを示す。
【図4】図4は、本発明による認証証明を維持するためのコンピュータシステムの、一実施態様のブロック図である。
【図5A】図5Aは、本発明による第1の通信セッション中における認証証明を維持するための、図4のコンピュータシステムの実施態様で踏まれる段階の流れ図である。
【図5B】図5Bは、本発明による図5Aの第1の通信セッションの終了につづく第2の通信セッション中における認証証明を維持するための、図4のコンピュータシステムの実施態様で踏まれる段階の流れ図である。
【図6】図6は、本発明の別の実施態様による認証証明を維持するための、コンピュータシステムの一実施態様のブロック図である。
【図7A】図7Aは、本発明による第1の通信セッション中における認証証明を維持するための、図6のコンピュータシステムの実施態様で踏まれる段階の流れ図である。
【図7B】図7Bは、本発明による図6の第1の通信セッション終了につづく第2の通信セッション中における認証証明を維持するための、図6のコンピュータシステムの実施態様で踏まれる段階の流れ図である。
【図7C】図7Cは、本発明による図6の第1の通信セッションの第2の通信チャンネル終了につづく第2の通信セッション中における認証証明を維持するための、図6のコンピュータシステムの実施態様で踏まれる段階の流れ図である。
【図8A】図8Aは、本発明の具体例による、認証証明を維持し、クライアントにホストサービスへの信頼のおける接続を提供するためのシステムのブロック図である。
【図8B】図8Bは、本発明の別の具体例による、認証証明を維持し、クライアントにホストサービスへの信頼のおける接続を提供するためのシステムのブロック図である。
【図9A】図9Aは、本発明の別の具体例による、認証証明を維持し、クライアントにホストサービスへの信頼のおける接続を提供するためのシステムのブロック図である。
【図9B】図9Bは、本発明の別の具体例による、認証証明を維持し、クライアントにホストサービスへの信頼のおける接続を提供するためのシステムのブロック図である。
【図10A】図10Aは、本発明の具体例による、クライアントにホストサービスへの信頼のおける接続を提供し、さらにホストサービスへクライアントを再接続するための構成要素を含むシステムのブロック図である。
【図10B】図10Bは、クライアントにホストサービスへの信頼のおける接続を提供し、さらにホストサービスへクライアントを再接続するための構成要素を含むシステムの一実施態様のブロック図である。
【図11A】図11Aは、本来クライアントをホストサービスに接続するための構成要素をさらに含む図10Aの実施態様のブロック図である。
【図11B】図11Bは、本発明の具体例による、認証証明を維持するための、本来クライアントをホストサービスに接続するための構成要素をさらに含む図10Bの具体的なシステムのブロック図である。
【図12A】図12Aは、本発明の具体例による、ネットワーク通信の方法の流れ図である。
【図12B】図12Bは、クライアントをホストサービスに再接続する方法の流れ図である。
【図13A】図13Aは、本発明の具体例による、クライアントを複数のホストサービスに接続する方法の流れ図である。
【図13B】図13Bは、本発明の具体例による、クライアントを複数のホストサービスに接続する方法の流れ図である。
【図13C】図13Cは、本発明の具体例による、クライアントを複数のホストサービスに接続する方法の流れ図である。
【図14】図14は、本発明の具体例による、クライアントにホストサービスへの信頼のおける接続を提供し、クライアントをホストサービスへ再接続する方法の流れ図である。
【図15A】図15Aは、本発明の実施態様によるクライアントのホストサービスへの再接続方法の流れ図である。
【図15B】図15Bは、本発明の実施態様によるクライアントのホストサービスへの再接続方法の流れ図である。

【特許請求の範囲】
【請求項1】
クライアントをホストサービスに再接続するための方法であって、
(a)クライアントと第1のプロトコルサービスとの間の第1の接続と、第1のプロトコルサービスとホストサービスとの間の第2の接続とを提供するステップと、
(b)前記第1の接続の中断を検出するステップと、
(c)前記第1のプロトコルサービスと前記ホストサービスとの間の前記第2の接続を保持しながら、前記クライアントと前記プロトコルサービスとの間の前記第1の接続を再確立するステップと、
(d)前記第1のプロトコルサービスにおいて前記クライアントに関連するチケットを受信するステップと、
(e)前記チケットを有効にするステップと、
(f)前記チケットが有効にされた後、前記再確立された第1の接続を前記保持した第2の接続にリンクさせるステップと、
を含む、方法。
【請求項2】
ステップ(a)が、前記クライアントと前記ホストサービスとの間の第1の通信セッション中に、前記クライアントを前記ホストサービスによって認証するステップをさらに含む、請求項1に記載の方法。
【請求項3】
ステップ(e)が、前記チケットからキーおよびセッションIDを得るステップをさらに含む、請求項1に記載の方法。
【請求項4】
ステップ(e)が、暗号化した認証証明書を引き出すために前記チケットからのセッションIDを使用するステップをさらに含む、請求項3に記載の方法。
【請求項5】
ステップ(e)が、前記引き出された認証証明書を解読するために前記チケットからの前記キーを使用するステップをさらに含む、請求項4に記載の方法。
【請求項6】
ステップ(e)が、前記解読した認証証明書を使用して、前記クライアントを前記ホストサービスによって再認証するステップをさらに含む、請求項5に記載の方法。
【請求項7】
ステップ(f)が、前記チケットが有効にされた後、前記チケットを削除するステップをさらに含む、請求項1に記載の方法。
【請求項8】
ステップ(f)が、前記チケットが削除された後、代替のチケットを生成するステップをさらに含む、請求項2に記載の方法。
【請求項9】
ステップ(a)が、前記第1のプロトコルサービスにおいてチケットを生成するステップをさらに含む、請求項1に記載の方法。
【請求項10】
ステップ(a)が、前記第1のプロトコルサービスにおいて、前記チケットのコピーを保存するステップをさらに含む、請求項9に記載の方法。
【請求項11】
ステップ(a)が、前記チケットを前記第1のプロトコルサービスから前記クライアントへ伝送するステップをさらに含む、請求項4に記載の方法。
【請求項12】
ステップ(a)が、前記チケットを所定時間の経過後に自動的に削除するステップをさらに含む、請求項1に記載の方法。
【請求項13】
クライアントをホストサービスに再接続するためのシステムであって、
第1のプロトコルサービスとの第1の接続を保持するように構成されたクライアントと、
前記クライアントとの前記第1の接続および前記ホストサービスとの第2の接続を保持するように構成された前記第1のプロトコルサービスとを含み、
前記第1の接続において中断が検出され、
前記第1のプロトコルサービスと前記ホストサービスとの間の前記第2の接続が保持されながら、前記第1の接続が前記クライアントと前記第1のプロトコルサービスとの間に再確立され、
前記クライアントに関連するチケットが前記クライアントから前記第1のプロトコルサービスに伝送され、
前記チケットが有効にされ、
前記チケットが有効にされた後、前記再確立された第1の接続が前記保持した第2の接続にリンクされる、システム。
【請求項14】
前記クライアントが、前記クライアントと前記ホストサービスとの間の第1の通信セッション中に前記ホストサービスによって認証される、請求項13に記載のシステム。
【請求項15】
前記チケットがキーおよびセッションIDを含む、請求項13に記載のシステム。
【請求項16】
前記チケットが、暗号化した認証証明書を引き出すために前記セッションIDを使用して前記第1のプロトコルサービスによって有効にされる、請求項15に記載のシステム。
【請求項17】
前記チケットが、さらに前記引き出された認証証明書を前記チケットからの前記キーで解読することによって有効にされる、請求項16に記載のシステム。
【請求項18】
前記クライアントが、前記解読した認証証明書を使用して前記ホストサービスによって再認証される、請求項17に記載のシステム。
【請求項19】
前記第1のプロトコルサービスが、前記チケットが有効にされた後、前記チケットを削除するようさらに構成される、請求項13に記載のシステム。
【請求項20】
前記第1のプロトコルサービスが、前記チケットが削除された後、代替のチケットを生成するようさらに構成される、請求項19に記載のシステム。
【請求項21】
前記第1のプロトコルサービスが、前記チケットを生成するようさらに構成される、請求項13に記載のシステム。
【請求項22】
前記第1のプロトコルサービスが、前記チケットのコピーを保存するようさらに構成される、請求項12に記載のシステム。
【請求項23】
前記第1のプロトコルサービスが、前記チケットを前記クライアントに伝送するようさらに構成される、請求項13に記載のシステム。
【請求項24】
前記第1のプロトコルサービスが、所定時間の経過後に前記チケットを削除するようさらに構成される、請求項13に記載のシステム。

【図1A】
image rotate

【図1B】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図7C】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図13A】
image rotate

【図13B】
image rotate

【図13C】
image rotate

【図14】
image rotate

【図15A】
image rotate

【図15B】
image rotate


【公表番号】特表2007−514337(P2007−514337A)
【公表日】平成19年5月31日(2007.5.31)
【国際特許分類】
【出願番号】特願2006−534409(P2006−534409)
【出願日】平成16年10月8日(2004.10.8)
【国際出願番号】PCT/US2004/033333
【国際公開番号】WO2005/036857
【国際公開日】平成17年4月21日(2005.4.21)
【出願人】(502239313)サイトリックス システムズ, インコーポレイテッド (36)
【Fターム(参考)】