(57)【特許請求の範囲】
【請求項１】
コンピュータに、
ウェブドメインに関連するウェブページのためのウェブブラウザにセッションを作成することに関するユーザ情報であって、ユーザ認証情報を含む前記ユーザ情報を送信させ、
前記セッションを第２ユーザと共有することに関する情報を送信させ、
前記第２ユーザから、前記第２ユーザの公開鍵を用いて暗号化された共有セッション情報を受信させ、
前記セッションを終了することに関するログアウト情報を送信させることにより、終了したセッションを作成させ、
前記終了したセッションを取得するための要求を送信させ、
前記終了したセッションを前記ウェブブラウザに挿入することに関するセッション情報を受信させることにより、アクティブなセッションを作成させる、
コンピュータプログラム。
【請求項２】
ログアウト情報を送信させることは、前記コンピュータに、さらに、
前記ログアウト情報を送信することに応答して、前記セッションに関するセッションデータを格納させ、
前記セッションに関する複数のセッションクッキーを前記ウェブブラウザから削除させる、
ことを含む、請求項１に記載のコンピュータプログラム。
【請求項３】
前記コンピュータに、さらに、モバイルデバイスに関連する前記ウェブブラウザに前記セッションを作成させる、請求項１または請求項２に記載のコンピュータプログラム。
【請求項４】
前記コンピュータに、さらに、前記第２ユーザに関する、共有セッションに対する複数の制限を送信させる、請求項１から請求項３のいずれか１項に記載のコンピュータプログラム。
【請求項５】
前記コンピュータに、さらに、前記終了したセッションを取得するための前記要求を送信することに応答して前記ユーザ認証情報が送信されることを防止させ、前記ユーザ認証情報は、ユーザのユーザ名およびパスワードのうちの少なくとも一方を含む、請求項１から請求項４のいずれか１項に記載のコンピュータプログラム。
【請求項６】
前記コンピュータに、さらに、前記セッションをアライブに保つための要求を前記ウェブドメインへ送信させ、前記要求は非セッション変更要求である、請求項１から請求項５のいずれか１項に記載のコンピュータプログラム。
【請求項７】
前記終了したセッションを取得することに関するセッション情報を受信させることは、前記コンピュータに、さらに、前記ウェブドメインに関連する前記ウェブページに対して以前のセッションが存在するかどうかを判断させることを含む、請求項１から請求項６のいずれか１項に記載のコンピュータプログラム。
【請求項８】
前記コンピュータに、さらに、第１デバイスにおける前記セッションを終了させ、第２デバイスにおいて前記終了したセッションを取得させ、前記第１デバイスおよび前記第２デバイスは一のユーザに関連する、請求項１から請求項５のいずれか１項に記載のコンピュータプログラム。
【請求項９】
セッションを回復および共有するための方法であって、
ウェブドメインに関連するウェブページのためのウェブブラウザにセッションを作成することに関するユーザ情報であって、ユーザ認証情報を含む前記ユーザ情報を送信する段階と、
前記セッションを第２ユーザと共有することに関する情報を送信する段階と、
前記第２ユーザから、前記第２ユーザの公開鍵を用いて暗号化された共有セッション情報を受信する段階と、
前記セッションを終了することに関するログアウト情報をセッションマネージャから送信する段階であって、これにより、終了したセッションを作成する、送信する段階と、
前記終了したセッションを取得するための要求を前記セッションマネージャで送信する段階と、
前記終了したセッションを前記ウェブブラウザに挿入することに関するセッション情報を前記セッションマネージャで受信する段階であって、これにより、アクティブなセッションを作成する、受信する段階と、
を有する方法。
【請求項１０】
前記ログアウト情報を送信することに応答して、前記セッションに関するセッションデータを格納する段階と、
前記セッションに関する複数のセッションクッキーを前記ウェブブラウザから削除する段階と、
をさらに有する、請求項９に記載の方法。
【請求項１１】
モバイルデバイスに関連する前記ウェブブラウザに前記セッションを作成する段階をさらに有する、請求項９または請求項１０に記載の方法。
【請求項１２】
前記第２ユーザに関する、共有セッションに対する複数の制限を送信する段階をさらに有する、請求項９から１１のいずれか１項に記載の方法。
【請求項１３】
前記終了したセッションを取得するための前記要求を送信することに応答して前記ユーザ認証情報が送信されることを防止する段階をさらに有し、前記ユーザ認証情報は、ユーザのユーザ名およびパスワードのうちの少なくとも一方を含む、請求項９から請求項１２のいずれか１項に記載の方法。
【請求項１４】
前記セッションをアライブに保つための要求を前記ウェブドメインに送信する段階、または、前記セッション情報を直接に変更する段階をさらに有し、前記要求は非セッション変更要求である、請求項９から請求項１３のいずれか１項に記載の方法。
【請求項１５】
前記ウェブドメインに関連する前記ウェブページに対して以前のセッションが存在するかどうかを判断する段階をさらに有する、請求項９から請求項１４のいずれか１項に記載の方法。
【請求項１６】
第１デバイスにおける前記セッションを終了する段階、および、第２デバイスにおいて前記終了したセッションを取得する段階をさらに有し、前記第１デバイスおよび前記第２デバイスは一のユーザに関連する、請求項９から請求項１３のいずれか１項に記載の方法。
【請求項１７】
セッションを回復および共有するためのコンピュータシステムであって、
１または複数のプロセッサと、
前記１または複数のプロセッサに結合され、複数の命令が格納されたメモリと、
を備え、
前記複数の命令は、実行された場合に、前記１または複数のプロセッサに、
ウェブドメインに関連するウェブページのためのウェブブラウザにセッションを作成することに関するユーザ情報であって、ユーザ認証情報を含む前記ユーザ情報を送信させ、
前記セッションを第２ユーザと共有することに関する情報を送信させ、
前記第２ユーザから、前記第２ユーザの公開鍵を用いて暗号化された共有セッション情報を受信する段階と、
前記セッションを終了することに関するログアウト情報をセッションマネージャから送信させることにより、終了したセッションを作成させ、
前記終了したセッションを取得するための要求を前記セッションマネージャで送信させ、
前記終了したセッションを前記ウェブブラウザに挿入することに関するセッション情報を前記セッションマネージャで受信させることにより、アクティブなセッションを作成させる、
コンピュータシステム。
【請求項１８】
ログアウト情報を送信させる前記複数の命令は、実行された場合に、前記１または複数のプロセッサに、
前記ログアウト情報を送信することに応答して、前記セッションに関するセッションデータを格納させ、
前記セッションに関する複数のセッションクッキーを前記ウェブブラウザから削除させる、
複数の命令をさらに含む、請求項１７に記載のコンピュータシステム。
【請求項１９】
前記複数の命令は、実行された場合に、前記１または複数のプロセッサに、モバイルデバイスに関連する前記ウェブブラウザに前記セッションを作成させる複数の命令をさらに含む、請求項１７または請求項１８に記載のコンピュータシステム。
【請求項２０】
前記複数の命令は、実行された場合に、前記１または複数のプロセッサに、前記第２ユーザに関する、共有セッションに対する複数の制限を送信させる複数の命令をさらに含む、請求項１７から１９のいずれか１項に記載のコンピュータシステム。
【請求項２１】
前記複数の命令は、実行された場合に、前記１または複数のプロセッサに、前記終了したセッションを取得するための前記要求を送信することに応答して前記ユーザ認証情報が送信されることを防止させる複数の命令をさらに含み、前記ユーザ認証情報は、ユーザのユーザ名およびパスワードのうちの少なくとも一方を含む、請求項１７から請求項２０のいずれか１項に記載のコンピュータシステム。
【請求項２２】
前記複数の命令は、実行された場合に、前記１または複数のプロセッサに、前記セッションをアライブに保つための要求を前記ウェブドメインへ送信させる複数の命令をさらに含み、前記要求は非セッション変更要求である、請求項１７から請求項２１のいずれか１項に記載のコンピュータシステム。
【請求項２３】
請求項１から請求項８のいずれか１項に記載のコンピュータプログラムを格納する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、「Transparent management, suspension, restoration, sharing, limiting and migration of user sessions without access to user credentials」という名称で２０１４年４月１４日に出願された、米国特許仮出願第６１／９７９，２８９号からの優先権を主張する。上記出願の開示内容全体が、参照により本明細書に組み込まれる。
【０００２】
本発明は、概して、複数のクライアントデバイスにわたって、並びに、認証および承認された他の複数のユーザと、複数のパスワードを共有することなく、ユーザがセキュアに複数のセッションを共有することを可能にする複数の方法およびプロセスに関する。
【背景技術】
【０００３】
あるアプリケーションまたはウェブサイトからログアウトしたいユーザは、通常、少なくともユーザ名およびパスワードが必要である。また、ユーザは、１つのアプリケーション当たり、１つよりも多くのアカウントを持っているかもしれない。自分の複数のアプリケーション、ウェブサイト、およびデータにアクセスすることを認証されたユーザについて言うと、自分のアカウントの全てに対してではないとしても、通常は、その大部分に対して実質的に同様な手段を採用している。また、ユーザが他の複数のデバイスおよび／または複数のユーザと複数のセッションを共有することを望む場合、少なくとも、関連する複数のユーザ名およびパスワードを共有することによってこれを行う必要がある。これは、複数のシステムにおける危険な状態、および、個人情報漏洩のための手段をもたらす。現在、常に、複数のウェブサイトおよびアプリケーションが、自身のアプリケーションおよびデータの一部分または別の部分にユーザがアクセスすることを許可する前に、より破られにくいユーザ名およびパスワード、並びに、情報および相互作用の複数の層を使用することを主張している。これは、１または複数のセッションを複数のデバイスにおいて開いておくこと、または、標準的な複数のネットワーク接続下で複数のユーザの間で複数のセッションを共有することに対する障害となる。また、複数のウェブサイトおよびアプリケーションは、信頼できる人である複数のユーザのみがアクセスを許可されることを確実にすべく、それらのロギング方法およびプロセスを時々変更している。これは、アクセスおよび取得をセキュアにするものの、いわゆるマスターである開始ユーザにとってのみでなく、マスターユーザおよびマスターユーザの開始デバイスとセキュアにセッションを共有することが許可された、それらのデバイスおよびサードパーティユーザにとっても、より一層、イライラさせるものである。
【０００４】
任意のデバイスおよび／またはユーザがひとたび適切に認証されると、システムは、複数の正規のユーザが複数のアプリケーションおよびデータにシームレスにアクセスできることを保証しながらも、望ましくない侵入および操作から保護する必要がある。これらの問題に対処すべく、様々な方法およびプロセスが提案されてきた。
【０００５】
「Systems and methods for cookie proxy jar management across cores in a multi-core system」という名称の米国特許第８，４８４，２８７号明細書は、マルチコアデバイスによって複数のクッキーを管理するための複数のシステムおよび方法を開示する。デバイスが、クライアントおよび１または複数のサーバに対する媒介手段である。マルチコアデバイスの第１コアが、ユーザセッションを通じたクライアントの要求に対するサーバからの応答を受信する。この応答がクッキーを含む。第１コアは、この応答からクッキーを取り除き、このセッションに対して対応するストレージに、このクッキーを格納する。第１コアは、クッキーの無いこの応答をクライアントに転送する。その後、第２コアが、あるセッションを介して、このクライアントから第２の要求を受信する。第２コアは、第２の要求から、このセッションのオーナとして第１コアを識別するように判断する。その後第２コアは、このセッションについてのクッキー情報に関する第３の要求を第１コアへ通信する。
【０００６】
「Systems and methods for AAA-traffic management information sharing across cores in a multi-core system」という名称の米国特許第８，６６７，５７５号明細書は、マルチコアデバイスの複数のコアに対する認証セッション情報を伝播するための複数の方法を開示し、少なくとも１つのクライアントおよびサーバに対する媒介手段であるデバイスの第１コアにて実行される認証仮想サーバによって、ユーザに対してセッションを確立することを含む。認証仮想サーバは、このセッションを認証する。トラフィック管理仮想サーバがデバイスの第２コアにおいて実行され、このセッションを介してサーバにアクセスするための要求を受信する。トラフィック管理仮想サーバは、このセッションが第２コアによって格納されていないという判断に応答して、このセッションの識別子から、第１コアがこのセッションを確立したことを特定してよい。第２コアは、この識別子によって識別されたセッションについてのデータに対する要求を第１コアに送信してよい。第２コアは、このセッションが有効であるかどうかを特定する第２の要求に対する応答を、第１コアから受信してよい。
【０００７】
「Cloud based service logout using cryptographic challenge response」という名称の米国特許第８，６５６，１５４号明細書は、複数のクライアントデバイスを通じて同時にサービスにログインされ得るクラウドベースのサービスの使用を開示する。効率的且つセキュアに、このユーザに関連する１つまたは多くのログインされたクライアントデバイスにおける、クラウドベースのサービスからのログアウトを同時に発効させるべく、暗号式チャレンジレスポンスに基づいた複数の方法、システム、およびコンピュータプログラムプロダクトが提供される。有効なログアウト要求がクラウドベースのサービスによって受信された場合、このユーザに関連する現在の鍵が無効化され、いくつかの場合においては、新たな鍵と置き換えられる。ユーザがこのクラウドベースのサービスの使用を後に試みると、このユーザに関連する、以前にログインされたあらゆるクライアントデバイスに存在する１または複数のトークンが、ユーザがこのクラウドベースのサービスに有効にログインし、それぞれのクライアントデバイスにおける新たな鍵に基づいた１または複数の新たなトークンを受信するまで、クラウドベースのサービスの使用を許可しないであろう。
【０００８】
「Authenticating an auxiliary device from a portable electronic device」という名称の米国特許第８，５７８，４６１号明細書は、携帯型電子デバイスにて実行されるウェブサービスによる、補助デバイスにおいて実行されるブラウザを認証するための方法を開示する。この方法は、ブラウザからリソースに対する要求を受信すること、この要求が保護リソースを特定するかどうかを判断すること、および、この要求が保護リソースを特定するかどうかに基づいて、この要求を選択的に認証することを含む。
【０００９】
「Systems and methods for configuration driven rewrite of SSL VPN clientless sessions」という名称の米国特許第８，６６７，１４６号明細書は、様々なクライアントにサービスを提供している企業にとって、この企業によって提供される複数のリソースをクライアントが使用することを可能にするための複数の解決法を開示する。これは、受信された複数のＵＲＬ、およびクライアントの複数の要求に対する複数のサーバからの複数の応答からの複数のＵＲＬを、意図された複数の送り先に対してこれらの要求および応答を転送する前に変更することによって成される。媒介手段が、クライアントレスＳＳＬ  ＶＰＮセッションを介してサーバにアクセスするためのクライアントの要求に対して、アクセスプロファイルを特定し得る。この媒介手段は、この要求に応答して、このアクセスプロファイルの１または複数の正規表現を使用して、サーバによってサービスされるコンテンツにおける１または複数のＵＲＬを検出し得る。この媒介手段は、検出することに応答して、このアクセスプロファイルの１または複数の書き換え方針により特定されるＵＲＬ変換に従って、１または複数の検出されたＵＲＬを書き換え得る、または変更し得る。変更されたＵＲＬによるこの応答がクライアントに転送され得る。
【００１０】
「Methods and apparatus for browsing using alternative linkbases」という名称の米国特許第８，６６１，４９５号明細書は、連携された複数の入出力デバイスセットを使用して、ハイパーメディアをナビゲートする複数のシステムおよび方法を開示する。開示される複数のシステムおよび方法は、ユーザおよび／または作者が、どのようなリソースがどのデバイスセットに提示されるのか（それらが統合されていようとなかろうと）を制御することを許可し、複数の独立なシステムにわたってそのようなユーザインタフェースが使用されることを可能にすべく、閲覧するアクティビティを調整することを提供する。開示される複数のシステムおよび方法はまた、ハイパーメディア閲覧および関連した複数のビジネスアクティビティの、新たな、そして強化された複数の態様およびアプリケーションをサポートする。
【００１１】
しかしながら、ユーザ認証情報にアクセスすること無く、あるデバイスにおける複数のユーザセッションを、意識されること無く管理、一時中断、回復、共有、限定、および移行するための複数の方法およびプロセスが必要とされている。
【図面の簡単な説明】
【００１２】
【図１】少なくとも１つの実施形態に従った、アプリケーションのインストールおよび複数のユーザ登録セッションを説明するフロー図である。
【００１３】
【図２Ａ】少なくとも１つの実施形態に従った、仮想プライベートネットワークの無い認証セッションを説明するフロー図である。
【００１４】
【図２Ｂ】少なくとも１つの実施形態に従った、仮想プライベートネットワークを通じた認証セッションを説明するフロー図である。
【００１５】
【図３Ａ】少なくとも１つの実施形態に従った、仮想プライベートネットワークの無いログアウトセッションを説明するフロー図である。
【００１６】
【図３Ｂ】少なくとも１つの実施形態に従った、仮想プライベートネットワークを通じたログアウトセッションを説明するフロー図である。
【００１７】
【図４Ａ】少なくとも１つの実施形態に従った、アクティブな仮想プライベートネットワークによるログイン／ログアウトセッションのフロー図である。
【００１８】
【図４Ｂ】少なくとも１つの実施形態に従った、アクティブな仮想プライベートネットワークの無いログイン／ログアウトセッションを説明するフロー図である。
【００１９】
【図５】少なくとも１つの実施形態に従った、共有セッションの開始を説明するフロー図である。
【００２０】
【図６】少なくとも１つの実施形態に従った、仮想プライベートネットワークの機能性を説明するフロー図である。
【００２１】
【図７Ａ】少なくとも１つの実施形態に従った、アクティブな仮想プライベートネットワークにより共有セッションを受信することを説明するフロー図である。
【００２２】
【図７Ｂ】少なくとも１つの実施形態に従った、アクティブな仮想プライベートネットワーク無しに共有セッションを受信することを説明するフロー図である。
【００２３】
【図８】少なくとも１つの実施形態に従った、マスターユーザによるアクティブなセッション管理の機能を説明するフロー図である。
【００２４】
【図９】一実施形態に従った、本明細書に説明される複数の技術と共に使用するためのコンピューティングデバイスを説明する図である。
【００２５】
【図１０】別の実施形態に従った、本明細書に説明される複数の技術と共に使用するためのコンピューティングデバイスを説明するブロック図である。
【００２６】
【図１１】一実施形態に従った、複数のプログラマブルデバイスによるネットワークを説明する図である。
【発明を実施するための形態】
【００２７】
以下の説明において、説明を目的として、本発明の完全な理解を提供すべく多数の具体的な詳細が説明される。しかしながら、これらの具体的な詳細が無くとも本発明が実施され得ることは、当業者には明らかだろう。その他複数の場合においては、本発明を不明瞭にすることを回避すべく、構造および複数のデバイスがブロック図の形で示されている。下付き文字または添え字の無い数字に対する参照は、参照されたその数字に対応する下付き文字および添え字の全ての場合を参照するものと理解される。さらに、本開示において使用される言語は、主として読みやすさおよび教示的な目的で選択されており、本発明の主題を記述または制限すべく選択されたものではあり得ず、そのような本発明の主題を判断するためには、複数の請求項を用いることが必要である。本明細書における"一実施形態"または"ある実施形態"という参照は、複数の実施形態と関連して説明される特定の機能、構造、または特性が、本発明の少なくとも１つの実施形態に含まれることを意味し、"一実施形態"または"ある実施形態"に対する複数の参照は、必ずしも全てが同じ実施形態を参照するものとは理解されるべきでない。
【００２８】
少なくとも１つの実施形態において、本発明は、ユーザのログイン認証情報にアクセスすること無く、あるデバイスにおける複数のユーザセッションを、意識されること無く管理、一時中断、回復、共有、限定、および移行するための複数の方法およびプロセスを提供することができる。ユーザが、複数のセッションを共有し、複数の承認されたユーザに対して読み出し専用のアクセスを提供してよい。その他複数の実施形態が、アクティブなセッションの存続期間を伸ばすことを含むことができる。
【００２９】
本明細書にて使用されるように、"コンピュータシステム"という用語は、コンピュータシステムにおいて、またはコンピュータシステムによって実行されるように説明される機能を実行するための、単一のコンピュータまたは一緒に動作する複数のコンピュータを指すことができる。
【００３０】
本明細書にて使用されるように、"プログラマブルデバイス"という用語は、プログラマブルデバイスにおいて、またはプログラマブルデバイスによって実行されるように説明される機能を実行するための、単一のプログラマブルデバイスまたは一緒に動作する複数のプログラマブルデバイスを指すことができる。同様に、"機械可読媒体"とは、機械可読媒体に格納されるように説明される題材を格納し得る、単一の物理的な媒体または一緒になった複数の媒体を指すことができる。
【００３１】
本明細書にて使用されるように、"セッション"という用語は、ユーザのブラウザと、リモートサーバにおいて動作している特定のウェブサービスとの間で共有され得るデータを指すことができ、いくつかの実施形態においては、どの要求にてもパススルーされる。複数のセッションは、当業者によって容易に理解されるであろういくつもの構成の中でも、そのブラウザにおけるクッキーまたは利用可能な任意の他のローカルストレージとして格納されてよい。
【００３２】
本明細書にて使用されるように、"認証情報"という用語は、ウェブ上の特定のサービスでの認証に使用される、あるユーザに対して固有であり得るデータを指すことができる。これらは、限定されるものではないが、ユーザ名およびパスワードを含むことができる。
【００３３】
本明細書にて使用されるように、"セッションマネージャ"という用語は、ユーザがセッションデータをセッションサーバと同期させること、および、複数のセッションを中断および回復させるべくユーザのブラウザと通信することを可能にし得る、ユーザのデバイスにおいて動作しているサービスを指すことができる。
【００３４】
本明細書にて使用されるように、"仮想プライベートネットワーク"（ＶＰＮ）という用語は、インターネットのようなパブリックネットワークにわたってプライベートネットワークを拡張することを指すことができる。これは、当業者によって容易に理解されるであろういくつものプライベートネットワーク機能の中でも、プライベートネットワークの機能性、セキュリティ、および管理方針からの恩恵を受けながら、あたかもプライベートネットワークに直接に接続されているかのように、複数の共有ネットワークまたはパブリックネットワークにわたって、コンピュータがデータを送信および受信することを可能にできる。ＶＰＮは、当業者によって容易に理解されるであろういくつもの構成の中でも、例えば、複数の専用接続、複数の仮想的なトンネリングプロトコル、またはトラフィック暗号化の使用によって、仮想的なポイントツーポイント接続を確立することによって形成され得る。
【００３５】
本明細書にて使用されるように、"ＶＰＮクライアント"という用語は、ユーザがＶＰＮにアクセスすることを許可し得る、ユーザのデバイスにおいて動作しているサービスを指すことができる。
【００３６】
本明細書にて使用されるように、"マスターパスワード（ＭＰ）"という用語は、例えば、セッションマネージャ、ＶＰＮクライアント、およびＶＰＮによる認証に使用され得る、ユーザにより供給されたパスワードを指すことができる。これは、ユーザ名および派生メカニズムと組み合わされて、認証情報を生じさせる。
【００３７】
本明細書にて使用されるように、"承認トークン"という用語は、ユーザの真正性を有効にするため、およびユーザのデータを復号化するために使用され得る、マスターパスワードの派生バージョンを指すことができる。承認トークンは、ユーザのデバイスからセッションサーバへと送信されることができ、その特定のユーザについて、セッションサーバに格納された真正性トークンのバージョンと比較されることができる。
【００３８】
本明細書にて使用されるように、"暗号鍵"という用語は、１つが秘密（またはプライベート）であることができ、１つが公開されたものであることのできる、２つの別個な鍵（公開／秘密鍵のペア）を必要とし得る暗号化アルゴリズムを指すことができる。この鍵のペアの２つの部分は、異なるものではあるが、数学的にはリンクされている。
【００３９】
本明細書にて使用されるように、"公開鍵"という用語は、平文を暗号化すべく、またはデジタル署名を検証すべく使用され得る鍵を指すことができる。
【００４０】
本明細書にて使用されるように、"秘密鍵"という用語は、暗号化テキストを復号化すべく、またはデジタル署名を作成すべく使用され得る鍵を指すことができる。
【００４１】
本明細書にて使用されるように、"セッションサーバ"という用語は、複数のデバイスおよび複数のユーザにわたってセッションデータを同期させるための集中ストレージを指すことができる。少なくとも１つの実施形態において、これは、複数のユーザの暗号化されたセッションデータへのアクセスを提供することができる。
【００４２】
本明細書にて使用されるように、"セッションサーバアプリケーションプログラミングインタフェース（ＡＰＩ）"という用語は、セッションマネージャおよびＶＰＮクライアントが複数のユーザを認証し、暗号化されたセッションデータをリモートに同期させるためのプログラマチックインタフェースを指すことができる。これはまた、セッションマネージャおよびＶＰＮクライアントが、セッションデータを共有するための複数のユーザの公開鍵を取得する方法を提供する。
【００４３】
本明細書にて使用されるように、"メンバファイル"という用語は、特定のユーザに関連すると共に、セッションサーバに格納され得るデータを指すことができる。これは、（限定されるものではないが）ユーザ名、認証トークン、暗号化された秘密鍵および公開鍵を含むことができる。
【００４４】
本明細書にて使用されるように、"認証情報"という用語は、少なくとも１つの実施形態において、セッションマネージャ、ＶＰＮクライアント、およびＶＰＮによりユーザを認証するために使用される、ユーザ名とマスターパスワードの派生バージョンとの組み合わせを指すことができる。
【００４５】
本明細書にて使用されるように、"セッションデータ"という用語は、複数のユーザの複数のセッションに関するデータの集合を指すことができる。ユーザのデバイスに位置される、およびＶＰＮに位置される場合、これらは、暗号化されていない平文形式であり得る。セッションサーバに同期される場合、これらは、暗号化されたフォーマットであり得る。
【００４６】
本明細書にて使用されるように、"暗号化されたユーザデータ"という用語は、承認トークンによって暗号化され得る、ユーザのセッションデータを指すことができる。
【００４７】
本明細書にて使用されるように、"暗号化された秘密鍵"という用語は、ユーザによって共有される複数のセッションを復号化すべく使用され得る、このユーザの暗号化された秘密鍵を指すことができる。これは、暗号化された状態でセッションサーバに格納されることができ、承認トークンを使用して、ユーザのデバイスにおいて復号化され得る。
【００４８】
本明細書にて使用されるように、"クッキー"という用語は、ユーザがウェブサイトを閲覧している間に、このウェブサイトから送信され、このユーザのウェブブラウザに格納され得る、小さなデータ片を指すことができる。クッキーはまた、ハイパーテキスト転送プロトコル（ＨＴＴＰ）クッキー、ウェブクッキー、またはブラウザクッキーとしても知られている。いくつかの実施形態においては、ユーザがこのウェブサイトを読み込んだ場合に、このブラウザがサーバへとクッキーを返信して、このユーザの以前のアクティビティをこのウェブサイトに通知する。
【００４９】
本明細書にて使用されるように、"ブラウザストレージ"という用語は、ウェブブラウザにデータを格納するために使用される複数のウェブアプリケーションソフトウェア方法およびプロトコルである、ウェブストレージおよび／またはＤＯＭ（ドキュメントオブジェクトモデル）ストレージを指すことができる。ウェブストレージは、クッキーと同様に、永続的なデータストレージをサポートするものの、大幅に強化された容量を有し、ＨＴＴＰ要求ヘッダに情報が格納されない。ローカルストレージおよびセッションストレージという、２つの主なウェブストレージタイプが存在し、それぞれ、永続的なクッキーおよびセッションクッキーと同様に振る舞う。
【００５０】
本明細書にて使用されるように、"セッション共有"という用語は、１つまたは複数のセッションを、受信するユーザの公開鍵によってそれらを暗号化することにより、複数のユーザが他の複数のユーザと共有できると考えられていることを指し得る。複数の共有セッションが、セッションサーバを通じて同期され得る。
【００５１】
本明細書にて使用されるように、"共有制限"という用語は、第１ユーザが第２ユーザと共有するセッションに対して、複数のユーザが複数の制限を適用してよいと考えられていることを指し得る。これらの制限は、セッションごとに適用されることができ、共有セッションの状態を受信者が変更する能力を制限することができる。
【００５２】
本明細書にて使用されるように、"共有セッションデータ"という用語は、別のユーザから受信され得るセッションデータを指すことができる。これは、２つの状態、ロックされたまたはアンロックされた状態であることができる（以下を参照のこと）。
【００５３】
本明細書にて使用されるように、"ロックされた共有セッションデータ"という用語は、少なくとも１つの実施形態において、受信者によって見られない、または変更され得ない共有セッションデータを指すことができる。少なくとも１つの実施形態において、受信者は、このデータを使用すべく、ＶＰＮを使用することができる。
【００５４】
本明細書にて使用されるように、"アンロックされた共有セッションデータ"という用語は、少なくとも１つの実施形態において、動機付けられた受信者によって見られる、または変更され得る共有セッションデータを指すことができる。少なくとも１つの実施形態において、受信者は、このデータを使用すべく、セッションマネージャまたはＶＰＮのいずれかを使用してよい。
【００５５】
本明細書にて使用されるように、"入力フィルタ"という用語は、複数の共有セッションにおける複数の特定のタイプのＨＴＴＰ要求を制限すべく、入ってくる要求に対してＶＰＮによって適用され得る複数のフィルタを指すことができる。例えば、共有セッションは、このセッションから受信者がログアウトすることを許可しないように制限されてよい。この場合、ログアウトするためのＰＯＳＴがフィルタリングされ、許可され得ない。
【００５６】
本明細書にて使用されるように、"出力フィルタ"という用語は、特定のハイパーテキストマークアップ言語（"ＨＴＭＬ"）コンテンツがユーザに対して表示されることを制限すべく、複数の共有セッションにおける複数のＨＴＴＰ応答に対して、ＶＰＮおよびセッションマネージャによって適用され得る複数のフィルタを指すことができる。例えば、出力フィルタが、返されるＨＴＭＬコンテンツから"ログアウト"ボタンを取り除くこと、または、共有セッションの受信者がセッション状態を変更することを許可するであろうリンクを隠すことができるだろう。
【００５７】
本明細書にて使用されるように、"制限無く"という用語は、あるセッションが制限無く共有されており、複数の入ってくる要求および複数の出て行く応答に対して入力フィルタまたは出力フィルタが適用されない場合を指すことができる。
【００５８】
本明細書にて使用されるように、"セキュアソケットレイヤ（ＳＳＬ）"という用語は、ＳＳＬハンドシェイクと呼ばれる複数のメッセージの交換から始まることのできるセキュアソケットレイヤ（"ＳＳＬ"）セッションを指すことができる。このハンドシェイクは、サーバが、複数の公開鍵技術を使用してクライアントに対してサーバ自身を認証することを許可し、その後、続くセッションの間、迅速な暗号化、復号化、および不正な改ざんの検出用に使用される対称鍵の作成において、クライアントとサーバが連携することを許可する。任意に、このハンドシェイクはまた、クライアントが、サーバに対してクライアント自身を認証することを許可する。
【００５９】
本明細書にて使用されるように、"ドキュメントオブジェクトモデル（ＤＯＭ）"という用語は、ＨＴＭＬ、拡張可能ハイパーテキストマークアップ言語（"ＸＨＴＭＬ"）、および拡張可能マークアップ言語（"ＸＭＬ"）ドキュメントにおける複数のオブジェクトを表すため、およびこれらと相互作用するための、クロスプラットフォームおよび言語に依存しない規定を指すことができる。ＤＯＭツリーにおける複数のオブジェクトは、複数のオブジェクトに対する複数の方法を使用することによって、対処および操作されてよい。
【００６０】
本明細書にて説明される全ての暗号化および復号化は、当業者によって容易に理解されるように、任意の既知の手段によって実現され得る。
【００６１】
ユーザ認証情報にアクセスすること無く、あるデバイスにおける複数のユーザセッションを、意識されること無く管理、一時中断、回復、共有、限定、および移行することを可能にする技術である。ユーザは、即座に、自身のオンラインアカウントのそれぞれまたは全てに自動的にログインおよびログアウトし得る。また、そのようにすることにおいて、ユーザは、複数のクライアントデバイスにわたって、並びに認証および承認された他の複数のユーザと、複数のパスワードを共有することなく複数のセッションを共有し得る。共有は、開始ユーザが、共有セッションの権限を制限できるように、並びに、複数の共有セッションのそれぞれに対するアクセスを取り除くことができるように、セキュアな態様で行われ得る。複数の技術的な効果として、ユーザの認証情報にアクセスすること無く、あるウェブサイトへのユーザのログインをセーブする、回復する、または拡張された期間にわたってキープアライブにし得るシステムを含む。
【００６２】
ここで図１を参照すると、本発明の一実施形態がプロセス１００に図示されている。ここでは、例えば、図１１のモバイルデバイス１１１４のようなユーザデバイスにアプリケーションが格納されてよく、ユーザが登録されてよい。一実施形態に従うと、１０２においてユーザは、スタンドアロンのアプリケーションとして、または、（当業者によって容易に考慮されるであろういくつもの構成の中でも）少なくとも１つの他のサードパーティアプリケーションとバンドルされた状態で、ユーザクライアントデバイス１１１４（図１１）にセッションマネージャをインストールしてよい。代替的に、複数の他の実施形態においてユーザは、仮想プライベートネットワーク（"ＶＰＮ"）クライアント（またはセッションマネージャＶＰＮクライアント）をクライアントデバイス１１１４（図１１）にインストールしてよい。
【００６３】
その後１０４において、クライアントデバイス１１１４（図１１）のユーザが、当業者によって容易に理解されるであろういくつものログイン情報の中でも、例えば、ユーザ名およびマスターパスワード（"ＭＰ"）を与えるように促されてよい。
【００６４】
その後１０６において、ユーザから受信されたこのログイン情報に基づいて、承認トークンが生成されてよい。
【００６５】
一実施形態においては、１０８において、公開および秘密暗号鍵が生成されてよい。
【００６６】
１１０において、生成されたこの秘密鍵が暗号化され得る。
【００６７】
１１２において、クライアントデバイス１１１４（図１１）のユーザは、例えば、ネットワーク１１０２（図１１）のようなネットワークを介し、セッションサーバのアプリケーションプログラミングインタフェース（ＡＰＩ）を通じて承認トークンおよび公開鍵をリモートセッションサーバ（例えば、サーバ１１０４（図１１））へ送信することにより、このセッションサーバに登録されてよい。セッションサーバがログイン情報を受信すると、ユーザは登録されることができる。
【００６８】
一実施形態においては、１１４において、セッションサーバが、例えばスクリプトのような、パスワードベースの鍵派生関数を使用して承認トークンをアルゴリズムで保護してよい。さらに、一実施形態においてセッションサーバは、クライアントデバイス１１１４（図１１）から受信された、保護されていない承認トークンのあらゆるコピーを削除してよい。
【００６９】
１１６において、当業者によって容易に理解されるであろういくつものユーザ情報の中で、限定されるものではないが、ユーザ名、アルゴリズムで保護された承認トークン、公開鍵、および暗号化された秘密鍵のようなユーザ情報から成るメンバファイルが生成されてよい。
【００７０】
その後１１８において、このメンバファイルは、当業者によって容易に理解されるであろういくつもの類似した位置の中でもセッションサーバに、セキュアな、またはセキュアでない方式で格納され得る。１２０において、クライアントデバイス１１１４（図１１）に関連するこのユーザは、メンバファイルの作成に応答して、ここで登録されてよい。図１１のデバイス１１１４を参照して図１が説明されているものの、デバイス１１０６、１１１０、または１１１２（図１１に示されている）を含めて、プロセス１００での使用に向けて、その他複数のデバイスもまた考えられる。
【００７１】
ここで図２Ａを参照すると、ＶＰＮ無しでユーザの認証が行われる、本発明の一実施形態が図示されている。２０４においてユーザは、クライアントデバイス１１１４（図１１）にインストールされたセッションマネージャ２０２を介して、当業者によって容易に理解されるであろういくつものタイプの認証情報の中でも、限定されるものではないが、ユーザ名およびマスターパスワード（ＭＰ）のようなユーザの認証情報を提出してよい。２０６において、この入力された認証情報が、当業者には容易に明らかであろう任意のその他の適切な情報と共に、承認トークンを生成するために使用され得る。２０８において、セッションサーバ２１０でセッションを認証するために、承認トークンが使用されてよい。一実施形態において、ユーザ名が、承認トークンと共に、セッションサーバＡＰＩを通じて、セッションサーバ２１０においてユーザを認証するために使用されてよい。
【００７２】
２１２においてセッションサーバ２１０は、比較のために、セッションマネージャ２０２から承認トークンを受信する。２１４においてセッションサーバ２１０は、セッションマネージャ２０２から受信した承認トークンが、（図１のステップ１１８で説明された）メンバファイルに格納されている、アルゴリズムで保護された承認トークンと一致するかどうかを判断する。受信した承認トークンが、セッションサーバ２１０中のアルゴリズムで保護された承認トークンと一致する場合（すなわち、ステップ２１４＝"Ｙ"）、２２０において、このユーザは認証され、以下に説明されるように、暗号化された秘密鍵が復号化に向けて受信されてよい。代替的に、受信した承認トークンが、メンバファイルに格納されている、アルゴリズムで保護された承認トークンと一致しない場合（すなわち、ステップ２１４＝"Ｎ"）、２１８において、セッションマネージャ２０２またはクライアントデバイス１１１４（図１１）における他のユーザインタフェースを介して、ユーザが承認されないこと、および／または、認証情報が誤っていることを示すメッセージが、このユーザに返され得る。同様の態様で、認証セッションにおいて受信される任意の情報が、この認証判断ステップのために、メンバファイルに格納された情報と比較され得る。
【００７３】
ユーザが認証された場合、２２０において、限定されるものではないが、公開鍵のようなユーザ情報および暗号化された秘密鍵が、対応するメンバファイルから取得されてよい。クライアントデバイス１１１４（図１１）における暗号化された秘密鍵およびクライアントデバイス１１１４（図１１）における暗号化された秘密鍵が復号化されてよい。
【００７４】
２２２において、セッションデータがセッションサーバ２１０から取得されてよい。一例において、ユーザ名と関連するセッションマネージャ２０２が、セッションサーバＡＰＩを通じてセッションサーバ２１０に要求することにより、セッションサーバ２１０からのセッションデータが要求されてよい。この要求に応答してセッションサーバ２１０は、以下に示される図５に関して後で説明されるように、例えば、暗号化されたユーザデータ、および暗号化され、アンロックされた任意の共有セッションを返すことができる。
【００７５】
２２６において、暗号化されたユーザデータが受信され、承認トークンにより復号化されてよい。同様の態様で、２２８において、暗号化された共有セッションは、ユーザの秘密鍵によって復号化され得る。２３０において、ユーザ自身のセッションデータ、およびユーザと共有されたセッションデータが、セッションマネージャ２０２による使用に対して利用可能であってよい。
【００７６】
ここで図２Ｂを参照すると、ＶＰＮを通じて認証が行われる、本発明の一実施形態が図示されている。２３６においてユーザは、ＶＰＮクライアント２３２を通じて、当業者によって容易に理解されるであろういくつものタイプの認証情報の中でも、限定されるものではないが、ユーザ名およびマスターパスワード（ＭＰ）のような認証情報を提出してよい。２３８において、この入力された認証情報は、限定されるものではないが、当業者には容易に明らかであろう個人情報のような、任意のその他の適切な情報と共に、承認トークンを生成するために使用され得る。２４０において、セッションサーバ２１０でセッションを認証するために、生成された承認トークンが使用されてよい。ある実施形態において、ユーザ名および承認トークンが、セッションサーバＡＰＩを通じて、セッションサーバ２１０においてユーザを認証するために使用されてよい。
【００７７】
２４６において、この承認トークンがセッションサーバ２１０に受信され、格納されてよい。ある実施形態において、２４８においてセッションサーバ２１０は、受信した承認トークンが、（図１のステップ１１８で示され、説明された）メンバファイルに格納されている、アルゴリズムで保護された承認トークンと一致するかどうかを判断してよい。トークンが一致する場合（すなわち、ステップ２４８＝"Ｙ"）、２５２において、クライアントデバイスにおける秘密鍵が、セッションサーバ２１０より取得された情報から復号化されてよい。複数の実施形態において、限定されるものではないが、公開鍵、およびセッションサーバ２１０からの暗号化された秘密鍵のような情報が、対応するメンバファイルからセキュアに取得され得る。また、取得されたこの暗号化された秘密鍵は、承認トークンにより復号化されてよい。
【００７８】
しかし、受信した承認トークンが、メンバファイルに格納されている、アルゴリズムで保護された承認トークンと一致しない場合（すなわち、ステップ２４８＝"Ｎ"）、２５０において、ユーザ認証情報が誤っているのでユーザは承認されないことを示すメッセージが、このユーザに返されてよい。ある実施形態において、認証セッションにおいて受信される任意の情報が、この認証判断ステップ２４８にて、メンバファイルに格納された情報と比較され得る。
【００７９】
次に、２５４において、以下の図５においてさらに詳細に説明されるように、アンロックされた共有セッションと、ロックされた共有セッションとの両者が、ＶＰＮクライアント２３２を介してセッションサーバ２１０から取得されてよい。ある実施形態においては、セッションサーバＡＰＩを通じて共有セッションデータ要求をセッションサーバ２１０へ提出すると取得が行われる。要求されたデータが取得され、ＶＰＮクライアント２３２へ送信され得る。このデータは、非限定的ないくつかの例においては、暗号化され、ロックされた共有セッションデータ、および、暗号化され、アンロックされた共有セッションデータを含んでよい。２５８において、この暗号化された共有セッションデータは、復号化された秘密鍵によって復号化されてよい。これにより、復号化され、ロックされたセッションデータ、および復号化され、アンロックされたセッションデータを生じさせる。復号化され、ロックされたセッションデータは、図５においてさらに詳細に説明されるように、セッションマネージャ２０２（図２Ａ）の公開鍵によってさらに暗号化されてよいことが理解されるべきである。
【００８０】
２６０においてＶＰＮクライアント２３２認証がＶＰＮ２３４により行われてよい。これは、当業者によって容易に理解されるであろういくつもの承認データの中でも、限定されるものではないが、承認トークンに関する情報、ユーザ名、および復号化され、アンロックされたセッションデータのような承認情報を、ＶＰＮ  ＡＰＩへと送信することを含んでよい。２６４において、承認トークンを使用してユーザデータが復号化されてよい。さらに、２６６において、この復号化され、ロックされた共有セッションデータは、セッションマネージャ公開鍵を使用して復号化されてよい。２６８において、セッションデータが、ＶＰＮ２３４によって使用すべくここで利用可能となってよい。ここでＶＰＮ２３４は、複数の要求を受け入れる準備ができている。
【００８１】
ここで図３Ａを参照すると、ＶＰＮ無しにセッションのログアウトが実行されてよい、本発明のある実施形態が図示されている。ユーザがＶＰＮを使用していない場合、セッションマネージャ２０２がログアウトを開始してよい３０４。ある実施形態においてセッションマネージャ２０２は、セッションデータ３０６がユーザのブラウザ３０２から読み出されることを要求してよく、この取得されたセッションデータは、暗号化されたセッションデータ３１０を形成すべく暗号化され得る。ある実施形態において、このセッションデータ３０６は、暗号化されたユーザデータ３１０（または暗号化されたセッションデータ３１０）を作成すべく、承認トークンによって暗号化されてよい。一実施形態において、この暗号化されたユーザデータ３１０は、ストレージ用にセッションサーバ２１０へと通信されてよい。ストレージは、当業者によって容易に理解されるであろう任意の適切なデータストレージ構成で構成されてよく、容易に理解されるであろういくつもの構成の中でも、リモートストレージ、ローカルストレージ、セキュアストレージ、セキュアでないストレージ、および揮発性ストレージを含む。
【００８２】
次に、一実施形態においては、ブラウザ３０２のセッションデータがクリア３１４されてよい。これは、ブラウザ３０２のストレージから複数のクッキーを削除することを含んでよい。その後、セッションサーバ２１０へログアウトコマンドを送信することによって、セッションサーバからのログアウト３１６が始まってよい。ここでユーザは、ブロック３１８において、ブラウザ３０２におけるセッションから上手くログアウトされてよい。
【００８３】
ここで図３Ｂを参照すると、ＶＰＮによってセッションのログアウトが実行されてよい、本発明の一実施形態が図示されている。ＶＰＮクライアント２３２のユーザがＶＰＮ２３４を使用している場合、ユーザは、ＶＰＮ２３４からのログアウトを開始３４０してよい。ＶＰＮクライアント２３２からＶＰＮ  ＡＰＩ３４４に対してログアウト要求３４３を開始することにより、ＶＰＮからログアウト３４２されてよい。ここからは、全てのセッションデータがメモリからクリア３４６されてよい。複数の実施形態においてメモリは、容易に認識されるであろういくつもの構成の中でも、揮発性メモリまたは永続メモリ、セキュアなまたはセキュアでないメモリのいずれかであってよい。ユーザのステータスは、ログアウトされたものとして設定されてよい。ひとたびユーザのステータスが変更され、セッションデータがクリアされると、ユーザログアウト３４８は成功である。
【００８４】
ここで図４Ａを参照すると、アクティブなＶＰＮ２３４を通じてログイン／ログアウトセッションが実行される、本発明の一実施形態が図示されている。ユーザのブラウザ３０２を通じたセッションの前に、ユーザはログアウト４１０され、図２Ｂに関して上記にて説明されたように、ＶＰＮを通じて認証４０２してよい。ユーザは、ＶＰＮクライアント２３２を使用して、ログオン４１２する。ブラウザ３０２にはセッションが存在しなくてよい４０４。また、以前のセッションが、ＶＰＮ２３４のメモリに存在してよい４１４。（ユーザが、ブラウザ３０２を使用してウェブページ４０６を訪れた場合）このセッションが開始されてよい。要求４０７が、ＶＰＮへのプロキシ４０８としてＶＰＮ２３４へと送信されてよい。ＶＰＮクライアント２３２は、（図６でさらに詳細に説明されるように）以前のセッションが存在するかどうかを判断すべく、ウェブページサーバ４１７における、同じドメイン名に関連する複数のセッションをチェック４１６してよい。適切なセッションが存在する場合、ＶＰＮへのプロキシ４０８の応答として、応答４１５が、プロキシ応答４１８として、ＶＰＮ２３４を通じてブラウザ３０２へ返信されてよい。
【００８５】
一実施形態においては、ブロック４０８におけるＶＰＮへのプロキシによって、ＶＰＮ２３４を通じて要求４０７が送信されてよい。ＶＰＮ２３４は、同じウェブページに関連する複数の以前のセッションが存在４１４するかどうかを確かめるべくチェックしてよい。適切なセッションが存在する場合、このセッションが、要求４０７でセッションを効果的に可能にさせる要求４０７に追加されてよい。ある実施形態において、その後要求４０７は、ＶＰＮクライアント２３２によって、通常、ウェブページサーバ４１７にプロキシされてよい。以下の図６にさらに説明されるように、ＶＰＮプロキシ応答４１８を通じて応答４１５が受信され、ユーザへと直接に返信される。
【００８６】
ここで、特定のウェブページに関連するセッションがアクティブであり４２０、このウェブページが適切なセッションを通じてレンダリングされてよい４２２。（図３Ａに示されるように）ユーザがＶＰＮ２３４からログアウトする場合４２４、セッションデータがメモリからクリアされてよい４２８。そして、いくつかの実施形態においては、ユーザがその後このウェブページ４０６を訪れた場合、ＶＰＮプロキシ要求４３１が送信されてよい。要求４３１は、ＶＰＮクライアント２３２を介し、ＶＰＮへのプロキシ４３２として、ウェブページサーバ４１７へと通常プロキシされてよい。応答４３５が、ウェブページサーバ４１７から取得され、ブロック４３４において、ＶＰＮプロキシ応答４１８を通じて、ＶＰＮクライアント２３２によってブラウザ３０２へと直接返信されてよい。この特定のウェブページは、アクティブな関連するウェブページセッション無しで、ブラウザ３０２にレンダリング４４０され得る。
【００８７】
ここで図４Ｂを参照すると、アクティブなＶＰＮ無しでログイン／ログアウトセッションが実行されてよい、本発明の一実施形態が図示されている。ある実施形態においてこのプロセスは、ブラウザ３０２にセッションが存在していない状態４５０で始まる。図２Ａにおいて既に詳述されたように、ユーザは、セッションマネージャ２０２にログインし、全ての以前のセッションを取得し４５２、それらをユーザのブラウザ３０２に挿入４５３できる。このセッションは、その後、ブラウザ３０２においてアクティブ化４５４され得る。
【００８８】
次に、一実施形態においてユーザは、図３Ａに示され、説明されたように、ブロック４５６においてセッションマネージャ２０２からログアウトし、進行中の全てのセッションを中断してよい。これらのセッションは、その後、応答４５７を通じて、ブラウザ３０２において中断４５８され得る。
【００８９】
ここで図５を参照すると、例えば、セッション作成者（例えば、ユーザＡ）および受信者ユーザ（例えば、ユーザＢ）のような複数のユーザの間でセッションを共有するための、本発明の一実施形態が図示されている。ここで共有セッションが開始されてよい。一実施形態において、ユーザＡは、直接にセッションマネージャ２０２を通じて、または、ＶＰＮクライアント２３２を通じてのいずれかで認証５０２してよい（図２Ａまたは２Ｂに示されるように）。ユーザＡは、その後、現在のセッションをユーザＢと共有することを開始５０４してよい。ある実施形態において、ユーザＡはまた、進行中であり得るこの共有セッションに対して適用されるべき複数の制限またはアクセスを選択５０６してよい。１つの非限定的な例として、当業者によって容易に考慮されるであろういくつもの構成の中でも、ユーザＡは、特定のセッションに挿入されたあらゆるクッキーにユーザＢがアクセスすることを制限してよい。または代替的に、ユーザＡは、この共有セッションに関連するコードをユーザＢが変更することを制限してよい。
【００９０】
本発明の一実施形態においてユーザＡは、これらの共有セッションの読み出し、またはそれらのセッションもしくは共有制限に対する修正をユーザＢができないようにするかどうか５０８を規定してよい。ユーザＡが共有セッションを制限し、セッションの修正を防止することを決定した場合（すなわち、ステップ５０８＝"Ｙ"）、この共有セッションは"ロックされた"ものとして説明される。複数の実施形態において、セッションマネージャ２０２またはユーザＡのＶＰＮクライアント２３２は、セッションサーバ２１０におけるセッションサーバＡＰＩから、セッションマネージャの公開鍵５１０を要求してよい。複数の実施形態において、セッションマネージャ２０２またはＶＰＮクライアント２３２は、応答５１３としてセッションマネージャ２０２の公開鍵５１０を取得してよく、これを使用して共有セッションを暗号化５１４してよい。共有セッションを暗号化することにより、ロックされたセッションを作成５１５する。しかしながら、ユーザＡが共有セッションを制限しないと決定した場合（すなわち、ステップ５０８＝"Ｎ"）、これは"アンロックされた"ものとして説明され５１６、可能な受信者が、このセッションおよび／または関連する複数の制限を見ること／変更することができるものと仮定される。
【００９１】
次に、セッションマネージャ２０２またはＶＰＮクライアント２３２は、ユーザＢの公開鍵５１８を要求してよい。ある実施形態において、ユーザＢの公開鍵５１８は、限定されるものではないが、セッションサーバ２１０のような、相互にアクセス可能な位置に格納されてよい。ユーザＢの公開鍵は、その後、セッションサーバ２１０から取得５１９されてよい。ユーザＢの公開鍵は、ユーザＡとユーザＢとの間で、共有セッションを暗号化５２０すべく使用されてよい。一実施形態において、ユーザＢの公開鍵は、後で使用するために、当業者によって容易に考慮されるであろうその他のあらゆる構成の中でも、限定されるものではないが、リモートに、ローカルに、セキュアに、またはセキュアではないようにを含め、任意の適切な位置に格納されてよい。
【００９２】
ユーザＡおよびＢの間で暗号化されたセッションは、セッションサーバ２１０へ送信５２４され、セッションサーバ２１０に格納されてよい。暗号化されたセッションは、この共有セッションに関与するユーザＡおよびＢのいずれか、または両者に関連するものであってよい。
【００９３】
図６は、一実施形態に従った、ＶＰＮ機能性についての技術を示すプロセス６００を示す。ある実施形態においては、あるＶＰＮ、例えばＶＰＮ２３４が、６０２において、セッションに対する要求を第２ユーザ（すなわち、セッション受信者）から受信してよい。６０４において、セッションマネージャ、例えばセッションマネージャ２０２に第２ユーザがログインされているかどうか判断してよい。第２ユーザがセッションマネージャにログインされていた場合（ステップ６０４＝"Ｙ"）、６０６において、その接続がセキュアプロトコルを通じて形成されているかどうか判断してよい。その接続がセキュアプロトコルを通じて形成されている場合（ステップ６０６＝"Ｙ"）、６０８において、ＳＳＬハンドシェイクが第２ユーザとネゴシエートされてよい。６１０において、ステップ６０２からのユーザセッション要求に対する以前のセッションが存在するかどうか判断してよい。
【００９４】
しかしながら、その接続がセキュアプロトコルを通じたものでない場合（すなわち、ステップ６０６＝"Ｎ"）、プロセス６００はステップ６１０に進み、そこで、この要求に対する以前のセッションが存在するかどうか判断してよい。この特定のセッション要求に対する以前のセッションが存在しない場合（すなわち、ステップ６１０＝"Ｎ"）、６１２において、プロキシ要求が生成されてよい。同様に、ステップ６０４において、第２ユーザがセッションマネージャにログインされていない場合、６１２においてプロキシ要求が生成されてよい。
【００９５】
特定の要求に対応する以前のセッションが存在する場合（すなわち、ステップ６１０＝"Ｙ"）、６１６において、この以前のセッションが共有されていたかどうかが判断される。このセッションが共有されていなかった場合（すなわち、ステップ６１６＝"Ｎ"）、６１８において、以前に存在していたであろう複数のセッションクッキーが、生成されたプロキシ要求に挿入されてよい。しかしながら、この以前のセッションが共有されていた場合（すなわち、ステップ６１６＝"Ｙ"）、６２０において、共有セッションの複数のパラメータによってＨＴＴＰまたはＨＴＴＰＳ要求が承認されるかどうかが判断される。ＨＴＴＰまたはＨＴＴＰＳ要求が承認される場合（すなわち、ステップ６２０＝"Ｙ"）、６１８において、このプロキシ要求に複数のセッションクッキーが挿入されてよい。しかしながら、ＨＴＴＰまたはＨＴＴＰＳ要求が、共有セッション許可によって承認されない場合（すなわち、ステップ６２０＝"Ｎ"）、６２２において、"要求が承認されない"というメッセージが第２ユーザに返されてよい。このメッセージは、第２ユーザが、第１ユーザ（すなわち、セッション作成者）との共有セッションに参加することが承認されないことを示す。複数の実施形態において、複数の入力フィルタが、特定の共有セッションと関連するものであってよく、一実施形態においては、このセッションをアクティブに共有している第１ユーザによって設定されてよい。
【００９６】
ステップ６１２から続いて、ひとたびプロキシ要求が生成されると、６１４において、このプロキシ要求がウェブサーバ（例えば、ＨＴＴＰまたはＨＴＴＰＳサーバ）へ送信されてよく、６２４において、そのＨＴＴＰまたはＨＴＴＰＳサーバからセッションマネージャに対して応答が取得されてよい。６２６において、第２ユーザがこのセッションマネージャにログインされているかどうかを判断してよい。第２ユーザがこのセッションマネージャにログインされている場合（すなわち、ステップ６２６＝"Ｙ"）、６３０において、このセッションが第２ユーザと共有されているかどうかが判断されてよい。このセッションが第２ユーザと共有されていない場合（すなわち、ステップ６３０＝"Ｎ"）、ステップ６２８において、このセッションは第２ユーザと共有されないことを第２ユーザに指示する応答が、第２ユーザに対して返されてよい。同様に、第２ユーザがこのセッションマネージャにログインされていない場合（すなわち、ステップ６２６＝"Ｎ"）、６２８において、この応答が第２ユーザに対して送信されてよい。
【００９７】
一方、このセッションが第２ユーザと共有されている場合（すなわち、ステップ６３０＝"Ｙ"）、６３２において、この特定の共有セッションに関連する複数のパラメータおよび複数の出力フィルタが、この応答に対して適用されてよい。６２８において、この応答がサーバから取得されてよく、変更された、またはフィルタリングされた応答が第２ユーザに送信されてよい。一実施形態においては、限定されるものではないが、ログアウトすることのような、このページにおけるいくつかのアクションを第２ユーザが実行することを禁止してよいこと、もしくは、共有第２ユーザにとって利用可能とならないように、この応答から複数のセッションクッキーが取り除かれてよいことのような、複数の直接的な修正が、この応答に関連するＨＴＭＬに対して成され得ることが考えられよう。一実施形態において、これらの出力フィルタは、このセッションを共有する第１ユーザによって設定されることが考えられよう。図６は第２ユーザに関して説明されているものの、任意の数の追加の共有ユーザもまた、図６の説明において考えられることが理解されるべきである。
【００９８】
ここで図７Ａを参照すると、共有セッションがアクティブなＶＰＮ２３４を通じて受信されてよい、本発明の一実施形態が図示されている。ある実施形態において、第１ユーザＡが、特定のウェブページまたはドメイン名に関するセッションを共有第２ユーザＢと共有７１０してよい（既に図５に示されたように）。また、既にユーザＢは登録７０８しており、共有のための公開鍵および秘密鍵を作成していてよい（図１において既に示されたように）。共有セッションを受信すべく、ユーザＢは、ブロック７１２においてＶＰＮクライアント７０４を使用してＶＰＮ２３４にログインし、特定のウェブサイトに関連する共有セッションを取得および復号化してよい（図２Ｂにおいて既に示されたように）。
【００９９】
共有セッションがブラウザ７０６に以前に存在していなかった場合（すなわち、セッションが存在しない７１４）、ユーザＢは、ユーザＢのブラウザ７０６を通じて、共有セッションに関連するウェブページまたはドメイン名へと要求７１６を送信してよい。この要求は、ＶＰＮ２３４を通じたプロキシにより送信されてよく、任意の必要な入力フィルタが要求７１６に対してＶＰＮ２３４によって適用されてよい（図６において既に説明されたように）。このプロキシ要求は、ウェブページまたはドメイン名サーバ７２０へ送信されてよく、この要求に基づいて応答が取得７２２され、ブロック７２４において、ＶＰＮ２３４を通じたプロキシによりブラウザ７０６へと送信される。ある実施形態においてＶＰＮ２３４は、ブラウザ７０６に送信された要求に対して、適宜、任意の出力フィルタを適用してよい（図６において既に説明されたように）。ＶＰＮ２３４は、適切な複数の出力フィルタに基づいて応答をレンダリング７２６してよい。共有セッションは、適用されたこれらの適切な制限およびフィルタにより、ブラウザ７０６においてアクティブ化されてよい。このセッションはその後、ブラウザ７０６においてアクティブ化７２８されてよい。
【０１００】
ここで図７Ｂを参照すると、アクティブなＶＰＮ無しに共有セッションが受信されてよい、本発明の一実施形態が図示されている。ある実施形態において、第１ユーザＡが、特定のウェブページまたはドメイン名に関するセッションを、共有ユーザまたは第２ユーザＢと共有７１１してよい（既に図５に示されたように）。また、既に、ユーザＢは登録７０９しており、共有のための公開鍵および秘密鍵を作成していてよい（図１において既に示されたように）。共有セッションを受信すべく、ユーザＢは、セッションマネージャにログイン７３０してよく、特定のウェブサイトに関連する共有セッションを取得および復号化７３２してよい（図２Ａにおいて既に示されたように）。ある実施形態においては、共有セッションがブラウザ７０６に以前に存在していなかった場合（セッションが存在しない７３２）、ユーザＢは、復号化された共有セッション７３２をブラウザ７０６に挿入７３３してよく、これは、ブラウザ７０６において何の制限も無くアクティブ化７３４されてよい。
【０１０１】
ある実施形態においては、ブラウザ７０６を使用して、ユーザＢが、ＨＴＴＰサーバ７２０に関連するウェブページに対する要求を送信７３６してよい。関連する応答がサーバから取得され、ブラウザ７０６により受信７３８されてよい。応答が受信７３８された場合、セッションマネージャ７０２は、通知７３９を介してブラウザ７０６により通知されてよい。セッションマネージャ７０２は、同時に、ブラウザ７０６からの応答をリッスン７４０してよい。ブラウザ７０６は、ウェブサーバ７２０からの応答をレンダリング７４２してよい。セッションマネージャ７０２は、任意の必要な制限を応答７４２に対して適用７４４してよい。ある実施形態においてセッションマネージャ７０２は、レンダリングされたウェブページにおいて複数のドキュメントオブジェクトモデル（"ＤＯＭ"）エレメント７４５を変更することによって、複数の制限を適用してよい。しかしながら、当業者には容易に明らかであろう、その他複数の構成もまた考えられる。このウェブページは、ブロック７４６において、レンダリングされたウェブページに適用される共有セッションにより、ブラウザ７０６においてレンダリングされてよい。
【０１０２】
図８は、一実施形態に従ったアクティブなセッション管理を示す。ある実施形態において、第１ユーザ、例えばユーザＡは、セッションマネージャ２０２により認証８０２してよい（図２Ａにおいて既に示されたように）。ユーザはその後、続いて、ブラウザ３０２における特定のドメイン名に関連するウェブページに、新たなセッションを作成８０４してよい。ブラウザ３０２におけるこのセッションの期限が満了する場合、セッションマネージャ２０２は、この期限の満了を検出８０８し、このセッションの存続期間を増大させることができる。ある実施形態において、当業者によって容易に考慮されるであろういくつもの構成の中でも、例えば、ブラウザ３０２において特定のドメイン名に関連するその後の全てのセッションが拡張された存続期間を有し得るように、または代替的に、あるセッションの存続期間が個々の場合に応じて増大され得るように、存続期間を増大させることが変更されてよい。
【０１０３】
ユーザがセッションマネージャ２０２からログアウトする場合、全てのアクティブなセッションが、セッションマネージャ２０２によって中断８１０され得る（図３Ａに示され、説明されたように）。
【０１０４】
その後、幾分かの時間が経ってから、ユーザは、ブラウザ３０２における同じ特定のドメイン名に関連するウェブページにおいて、以前にログインしたことが無くても、またはセッションマネージャ２０２による認証が無くても、新たなセッションを作成８１２してよい。セッションマネージャ２０２にログインするその後の試みが成された場合（図２Ａに示され、説明されたように）、セッションマネージャ２０２は、そのドメイン名に関連する新たなセッションと以前に中断されたセッションとの間のコンフリクトを検出８１４してよい。ある実施形態において、ユーザはその後、新たに作成されたセッションを中断されたセッションによってオーバーライドするか、または代替的に、新たに作成されたセッションを維持するかどうかを判断８１６してよい。代替的に、図２Ａ−２Ｂに示されたように、ユーザが、以前に作成されたセッションを取得してよい。
【０１０５】
一例において、オンライン銀行アプリケーションに対し、ユーザが、ブラウザ３０２を介して銀行のウェブサイトにおいて新たなセッションを作成８１８してよい。そしてセッションマネージャ２０２は、銀行のウェブサイトにおいてこのセッションをアライブに保つべく、非セッション変更要求を送信８２０することによって、定期的に銀行サーバを"くすぐる（tickle）"ことをしてよい。従って、アクティブでない短い期間があった後に通常であればこのセッションがタイムアウトするような状況においても、アクティブなセッションが維持されてよい。
【０１０６】
一実施形態において、ユーザは、容易に明らかであろういくつもの構成の中でも、限定されるものではないが、Ｇｏｏｇｌｅ（登録商標）のような、マルチアカウントウェブサイトにおいて第１セッションＡを作成８２２してよい（ＧＯＯＧＬＥは、Ｇｏｏｇｌｅ社の登録商標である）。その後、続いてユーザは、同じこのマルチアカウントウェブサイトに第２セッションＢを作成８２４してよい。複数の実施形態において、セッションマネージャ２０２は、ユーザが複数の異なるセッションにログインまたはログアウトする必要無く、共有セッションにアクセスすることにより、ユーザが、別個な複数のマルチアカウントセッションの間をシームレスな態様で切り換えることを可能とするユーザインタフェースを提供８２６してよい。
【０１０７】
ここで図９を参照すると、一実施形態に従った、図１−８で説明された複数のプロセスに使用され得るプログラマブルデバイス９００をブロック図で示す。図９に示されたプログラマブルデバイス９００は、マルチプロセッサプログラマブルデバイスであり、第１処理エレメント９７０および第２処理エレメント９８０を含む。２つの処理エレメント９７０および９８０が示されているものの、プログラマブルデバイス９００のある実施形態はまた、そのような処理エレメントを１つだけ含んでもよい。
【０１０８】
プログラマブルデバイス９００は、第１処理エレメント９７０および第２処理エレメント９８０が、ポイントツーポイント相互接続９５０を介して結合された、ポイントツーポイント相互接続システムとして図示されている。図９に示された複数の相互接続の任意のもの、または全てが、複数のポイントツーポイント相互接続ではなく、むしろマルチドロップバスとして実装されてもよい。
【０１０９】
図９に示されるように、処理エレメント９７０および９８０のそれぞれは、第１および第２プロセッサコア（すなわち、プロセッサコア９７４ａおよび９７４ｂ、並びにプロセッサコア９８４ａおよび９８４ｂ）を含むマルチコアプロセッサであってよい。そのようなコア９７４ａ、９７４ｂ、９８４ａ、９８４ｂは、図１−８と関連して上記にて説明されたものと同様な態様で、命令コードを実行するように構成されてよい。しかしながら、その他複数の実施形態において、所望されるのであれば、複数のシングルコアプロセッサである複数の処理エレメントを使用してもよい。複数の処理エレメント９７０、９８０を有する複数の実施形態において、それぞれの処理エレメントは、所望されるのであれば、異なる数のコアにより実装されてよい。
【０１１０】
各処理エレメント９７０、９８０は、少なくとも１つの共有キャッシュ９４６を含んでよい。共有キャッシュ９４６ａ、９４６ｂは、それぞれコア９７４ａ、９７４ｂおよび９８４ａ、９８４ｂのような、処理エレメントの１または複数のコンポーネントによって利用されるデータ（例えば、複数の命令）を格納してよい。例えば、共有キャッシュは、処理エレメント９７０、９８０の複数のコンポーネントによるより速いアクセスのために、メモリ９３２、９３４に格納されるデータをローカルにキャッシュしてよい。１または複数の実施形態において、共有キャッシュ９４６ａ、９４６ｂは、レベル２（Ｌ２）、レベル３（Ｌ３）、レベル４（Ｌ４）のような１または複数の中間レベルキャッシュ、またはその他複数のレベルのキャッシュ、ラストレベルキャッシュ（ＬＬＣ）、またはそれらの組み合わせを含んでよい。
【０１１１】
図９は、図面を明確にするために２つの処理エレメント９７０、９８０を有するプログラマブルデバイスを示すものの、本発明の範囲はそのように限定されるものではなく、任意の数の処理エレメントが存在してよい。代替的に１または複数の処理エレメント９７０、９８０は、グラフィックス処理ユニット（ＧＰＵ）、デジタル信号処理（ＤＳＰ）ユニット、フィールドプログラマブルゲートアレイ、または、任意の他のプログラマブル処理エレメントのような、プロセッサ以外のエレメントであってよい。処理エレメント９８０は、処理エレメント９７０に対して異種または非対称であってよい。処理エレメント９７０、９８０の間には、アーキテクチャ、マイクロアーキテクチャ、熱、電力消費特性等を含む様々な価値基準の観点において、様々な差異があってよい。これらの差異は、実際的には、処理エレメント９７０、９８０の中で、非対称性および異種性として現れてよい。いくつかの実施形態において、様々な処理エレメント９７０、９８０は、同じダイパッケージに存在してよい。
【０１１２】
第１処理エレメント９７０は、メモリコントローラロジック（ＭＣ）９７２並びにポイントツーポイント（Ｐ−Ｐ）相互接続９７６および９７８をさらに含んでよい。同様に、第２処理エレメント９８０もＭＣ９８２並びにＰ−Ｐ相互接続９８６および９８８を含んでよい。図９に示されるように、ＭＣ９７２および９８２は、処理エレメント９７０、９８０を対応するメモリ、すなわちメモリ９３２およびメモリ９３４に結合する。これらのメモリは、対応するプロセッサにローカルに取り付けられたメインメモリの一部分であってよい。ＭＣロジック９７２および９８２は処理エレメント９７０、９８０に統合されるものとして図示されているものの、いくつかの実施形態において、メモリコントローラロジックは、そこに統合されるよりもむしろ、処理エレメント９７０、９８０の外部のディスクリートなロジックであってよい。
【０１１３】
処理エレメント９７０および処理エレメント９８０は、リンク９５２および９５４を通じ、対応するＰ−Ｐ相互接続９７６および９８６を介して、Ｉ／Ｏサブシステム９９０に結合されてよい。図９に示されるように、Ｉ／Ｏサブシステム９９０はＰ−Ｐ相互接続９９４および９９８を含む。さらに、Ｉ／Ｏサブシステム９９０は、Ｉ／Ｏサブシステム９９０を高性能グラフィックスエンジン９３８と結合するためのインタフェース９９２を含む。一実施形態において、グラフィックスエンジン９３８をＩ／Ｏサブシステム９９０に結合すべく、バス（図示せず）が使用されてよい。代替的に、ポイントツーポイント相互接続９３９がこれらのコンポーネントを結合してよい。
【０１１４】
次に、Ｉ／Ｏサブシステム９９０は、インタフェース９９６を介して第１リンク９１６に結合されてよい。本発明の範囲がそのように限定されるものではないが、一実施形態において第１リンク９１６は、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、または、ＰＣＩエクスプレスバスもしくは別のＩ／Ｏ相互接続バスのようなバスであってよい。
【０１１５】
図９に示されるように、様々なＩ／Ｏデバイス９１４、９２４が、第１リンク９１６を第２リンク９２０へ結合し得るブリッジ９１８と共に、第１リンク９１６に結合されてよい。一実施形態において第２リンク９２０は、ローピンカウント（ＬＰＣ）バスであってよい。例えば、一実施形態においては、キーボード／マウス９１２、通信デバイス９２６（これは次にコンピュータネットワーク９０３と通信し得る）、およびコード９３０を含み得るディスクドライブまたはその他の大容量ストレージデバイスのようなデータストレージユニット９２８を含む、様々なデバイスが第２リンク９２０に結合されてよい。コード９３０は、上記にて説明された複数の技術のうちの１または複数の実施形態を実行するための複数の命令を含んでよい。さらに、オーディオＩ／Ｏ９２４が第２バス９２０に結合されてよい。
【０１１６】
その他複数の実施形態も考えられることに留意されたい。例えば、図９のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバスまたは別のそのような通信トポロジを実装してよい。リンク９１６および９２０はバスとして図９に示されているものの、任意の所望されるタイプのリンクが使用されてよい。また、図９の複数のエレメントが、代替的に、図９に示されるものよりも多い、または少ない数の統合チップを使用して分割されてよい。
【０１１７】
ここで図１０を参照すると、別の実施形態に従ったプログラマブルデバイス１０００をブロック図で示す。図９のいくつかの態様が、図１０のその他複数の態様を不明瞭にすることを回避すべく、図１０からは省略されている。
【０１１８】
図１０は、処理エレメント１０７０、１０８０が、統合されたメモリ並びにＩ／Ｏ制御ロジック（"ＣＬ"）１０７２および１０８２をそれぞれ含んでよいことを示す。いくつかの実施形態において、１０７２、１０８２は、図９と関連して上記にて説明されたもののようなメモリ制御ロジック（ＭＣ）を含んでよい。さらに、ＣＬ１０７２、１０８２はまた、Ｉ／Ｏ制御ロジックも含んでよい。図１０は、メモリ１０３２、１０３４が１０７２、１０８２に結合されてよいことのみでなく、複数のＩ／Ｏデバイス１０４４もまた、この制御ロジック１０７２、１０８２に結合されてよいことも示す。複数のレガシーＩ／Ｏデバイス１０１５が、インタフェース１０９６によってＩ／Ｏサブシステム１０９０に結合されてよい。各処理エレメント１０７０、１０８０は、プロセッサコア１０７４Ａ、１０７４Ｂ、１０８４Ａ、および１０８４Ｂとして図１０に示される、複数のプロセッサコアを含んでよい。図１０に示されるように、Ｉ／Ｏサブシステム１０９０は、リンク１０５２および１０５４によって処理エレメント１０７０および１０８０のＰ−Ｐ相互接続１０７６および１０８６へ接続するＰ−Ｐ相互接続１０９４および１０９８を含む。処理エレメント１０７０および１０８０はまた、リンク１０５０並びにそれぞれ相互接続１０７８および１０８８によって相互接続されてよい。
【０１１９】
図９および１０に示されるプログラマブルデバイスは、本明細書にて説明された様々な実施形態を実装すべく利用されてよい、プログラマブルデバイスの複数の実施形態の概略図である。図９および１０に示されるプログラマブルデバイスの様々なコンポーネントが、システムオンチップ（ＳｏＣ）アーキテクチャにおいて組み合わされてよい。
【０１２０】
ここで図１１を参照すると、上記にて説明された複数の技術が実装されてよい、例示的なインフラストラクチャ１１００が概略的に図示されている。インフラストラクチャ１１００は複数のコンピュータネットワーク１１０２を含む。複数のコンピュータネットワーク１１０２は、インターネット、企業ネットワーク、またはローカルエリアネットワーク（ＬＡＮ）のような、現在利用可能な多くの異なるタイプのコンピュータネットワークを含んでよい。これらのネットワークのそれぞれは、複数の有線または無線プログラマブルデバイスを含むこと、および、任意の数のネットワークプロトコル（例えば、ＴＣＰ／ＩＰ）を使用して動作することができる。複数のネットワーク１１０２は、複数のゲートウェイおよび複数のルータ（１１０８で表されている）、複数のエンドユーザコンピュータ１１０６、および複数のコンピュータサーバ１１０４に接続されてよい。インフラストラクチャ１１００はまた、複数のモバイル通信デバイスと共に使用するためのセルラーネットワーク１１０３を含む。複数のモバイルセルラーネットワークは、複数の携帯電話およびその他多くのタイプのモバイルデバイスをサポートする。インフラストラクチャ１１００における複数のモバイルデバイスは、携帯電話１１１０、ラップトップ１１１２、およびタブレット１１１４として図示されている。携帯電話１１１０のようなモバイルデバイスは、セルラーネットワーク１１０３に接続するために、通常、複数のモバイルネットワークタワー１１２０、１１３０および１１４０と相互作用しながら、このモバイルデバイスが移動するに連れて、１または複数のモバイルプロバイダネットワークと相互作用してよい。図１１においてはセルラーネットワークとして参照されているものの、モバイルデバイスは、１つよりも多くのプロバイダネットワークのタワー、並びに、複数の無線アクセスポイントおよびルータ１１０８のような、複数のセルラーではないデバイスと相互作用してよい。さらに、モバイルデバイス１１１０、１１１２、および１１１４は、所望されるサービスのためのコンピュータ１１０４および１１０６のような、複数の非モバイルデバイスと相互作用してよく、これは、上記にて説明されたユーザ認証情報を提供すること無く、複数のクライアントデバイスにわたって、および、その他複数の承認されたユーザとセッションを共有することを含み得る。複数のクライアントデバイスの機能性が、図１１に示される任意のデバイスまたは複数のデバイスの組み合わせによって実装されてよい。しかしながら、最も一般的には、ゲートウェイまたはルータにおけるファイアウォールまたは侵入防護システムに実装される。
【０１２１】
以下の複数の例は、さらなる複数の実施形態に関する。
【０１２２】
例１は、複数の命令が格納された機械可読媒体であり、実行された場合に、機械に、ウェブドメインに関連するウェブページのためのウェブブラウザにセッションを作成することに関するユーザ情報であって、ユーザ認証情報を含むユーザ情報を送信させ、このセッションを終了することに関するログアウト情報を送信させることにより、終了したセッションを作成させ、この終了したセッションを取得するための要求を送信させ、終了したセッションをこのウェブブラウザに挿入することに関するセッション情報を受信させることにより、アクティブなセッションを作成させる複数の命令を有する。
【０１２３】
例２において、例１の主題は、任意で以下を含むことができる。ログアウト情報を送信させる複数の命令は、実行された場合に、機械に、ログアウト情報を送信することに応答して、このセッションに関するセッションデータを格納させ、このセッションに関する複数のセッションクッキーをウェブブラウザから削除させる複数の命令をさらに含む。
【０１２４】
例３において、例１または２の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、機械に、モバイルデバイスに関連するウェブブラウザにセッションを作成させる複数の命令をさらに含む。
【０１２５】
例４において、例１から３の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、機械に、このセッションを第２ユーザと共有することに関する情報を送信させることにより、共有セッションを作成させる複数の命令をさらに含む。
【０１２６】
例５において、例４の主題は、任意で以下を含むことができる。セッションを共有させる複数の命令は、実行された場合に、機械に、第２ユーザに関する、共有セッションに対する複数の制限を送信させる複数の命令をさらに含む。
【０１２７】
例６において、例１から５の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、機械に、終了したセッションを取得するための要求を送信することに応答して、ユーザ名およびパスワードのうちの１または複数が送信されることを防止させる複数の命令をさらに含む。
【０１２８】
例７において、例１から６の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、機械に、このセッションをアライブに保つために、要求をウェブドメインへ送信させるまたはこのセッション情報を変更する複数の命令をさらに含む。この要求は非セッション変更要求である。
【０１２９】
例８において、例１から７の主題は、任意で以下を含むことができる。終了したセッションを取得することに関するセッション情報を受信させる複数の命令は、実行された場合に、機械に、ウェブドメインに関連するウェブページに対して以前のセッションが存在するかどうかを判断させる複数の命令をさらに含む。
【０１３０】
例９において、例１から６の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、機械に、第１デバイスにおけるセッションを終了させ、第２デバイスにおいてこの終了したセッションを取得させる複数の命令をさらに含み、第１デバイスおよび第２デバイスは、あるユーザに関連する。
【０１３１】
例１０は、セッションを回復および共有するための方法であって、ウェブドメインに関連するウェブページのためのウェブブラウザにセッションを作成することに関するユーザ情報であって、ユーザ認証情報を含むユーザ情報を送信する段階と、このセッションを終了することに関するログアウト情報をセッションマネージャから送信する段階であって、これにより、終了したセッションを作成する、送信する段階と、この終了したセッションを取得するための要求をセッションマネージャで送信する段階と、終了したセッションをこのウェブブラウザに挿入することに関するセッション情報をセッションマネージャで受信する段階であって、これにより、アクティブなセッションを作成する、受信する段階と、を有する。
【０１３２】
例１１において、例１０の主題は、ログアウト情報を送信することに応答して、このセッションに関するウェブブラウザデータを格納する段階と、このセッションに関する複数のセッションクッキーをウェブブラウザから削除する段階とを任意で含むことができる。
【０１３３】
例１２において、例１０から１１の主題は、モバイルデバイスに関連するウェブブラウザにセッションを作成する段階を任意で含むことができる。
【０１３４】
例１３において、例１０から１２の主題は、このセッションを第２ユーザと共有することに関する情報を送信する段階であって、これにより、共有セッションを作成する、送信する段階を任意で含むことができる。
【０１３５】
例１４において、例１０から１３の主題は、終了したセッションを取得するための要求を送信することに応答してユーザ認証情報が送信されることを防止する段階を任意で含むことができ、このユーザ認証情報は、ユーザのユーザ名およびパスワードのうちの少なくとも一方を含む。
【０１３６】
例１５において、例１０から１４の主題は、セッションをアライブに保つための要求をウェブドメインに送信する段階を任意で含むことができる。
【０１３７】
例１６は、セッションを回復および共有するための方法であって、ウェブドメインに関連するウェブページのためのウェブブラウザにセッションを作成することに関するユーザ情報であってユーザ認証情報を含むユーザ情報を送信する段階と、このセッションを終了することに関するログアウト情報をセッションマネージャから送信する段階であって、これにより、終了したセッションを作成する、送信する段階と、この終了したセッションを取得するための要求をセッションマネージャで送信する段階と、終了したセッションをこのウェブブラウザに挿入することに関するセッション情報をセッションマネージャで受信する段階であって、これにより、アクティブなセッションを作成する、受信する段階と、を有する。
【０１３８】
例１７において、例１６の主題は、ログアウト情報を送信することに応答して、このセッションに関するウェブブラウザデータを格納する段階と、このセッションに関する複数のセッションクッキーをウェブブラウザから削除する段階とを任意で含むことができる。
【０１３９】
例１８において、例１６から１７の主題は、モバイルデバイスに関連するウェブブラウザにセッションを作成する段階を任意で含むことができる。
【０１４０】
例１９において、例１６から１７の主題は、このセッションを第２ユーザと共有することに関する情報を送信する段階であって、これにより、共有セッションを作成する、送信する段階を任意で含むことができる。
【０１４１】
例２０において、例１９の主題は、第２ユーザに関する、共有セッションに対する複数の制限を送信する段階を任意で含むことができる。
【０１４２】
例２１において、例１６から１７の主題は、終了したセッションを取得するための要求を送信することに応答してユーザ認証情報が送信されることを防止する段階を任意で含むことができ、このユーザ認証情報は、ユーザのユーザ名およびパスワードのうちの少なくとも一方を含む。
【０１４３】
例２２において、例１６から１７の主題は、セッションをアライブに保つための要求をウェブドメインに送信する段階を任意で含むことができ、この要求は非セッション変更要求である。
【０１４４】
例２３において、例１６から１７の主題は、このウェブドメインに関連するウェブページに対して以前のセッションが存在するかどうかを判断する段階を任意で含むことができる。
【０１４５】
例２４において、例１６から１７の主題は、第１デバイスにおけるセッションを終了する段階、および、第２デバイスにおいてこの終了したセッションを取得する段階を任意で含むことができ、これらの第１デバイスおよび第２デバイスは、このユーザに関連する。
【０１４６】
例２５は、セッションを回復および共有するためのコンピュータシステムであって、１または複数のプロセッサと、１または複数のプロセッサに結合され、複数の命令が格納されたメモリとを備える。このメモリは、実行された場合に、１または複数のプロセッサに、ウェブドメインに関連するウェブページのためのウェブブラウザにセッションを作成することに関するユーザ情報であって、ユーザ認証情報を含むユーザ情報を送信させ、このセッションを終了することに関するログアウト情報をセッションマネージャから送信させることにより、終了したセッションを作成させ、この終了したセッションを取得するための要求をセッションマネージャで送信させ、終了したセッションをこのウェブブラウザに挿入することに関するセッション情報をセッションマネージャで受信させることにより、アクティブなセッションを作成させる、複数の命令を含む。
【０１４７】
例２６において、例２５の主題は、任意で以下を含むことができる。ログアウト情報を送信させる複数の命令は、実行された場合に、１または複数のプロセッサに、ログアウト情報を送信することに応答して、このセッションに関するセッションデータを格納させ、このセッションに関する複数のセッションクッキーをウェブブラウザから削除させる複数の命令をさらに含む。
【０１４８】
例２７において、例２５から２６の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、１または複数のプロセッサに、モバイルデバイスに関連するウェブブラウザにセッションを作成させる複数の命令をさらに含む。
【０１４９】
例２８において、例２５から２６の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、１または複数のプロセッサに、このセッションを第２ユーザと共有することに関する情報を送信させることにより、共有セッションを作成させる複数の命令をさらに含む。
【０１５０】
例２９において、例２８の主題は、任意で以下を含むことができる。セッションを共有させる複数の命令は、実行された場合に、１または複数のプロセッサに、第２ユーザに関する、共有セッションに対する複数の制限を送信させる複数の命令をさらに含む。
【０１５１】
例３０において、例２５から２６の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、１または複数のプロセッサに、終了したセッションを取得するための要求を送信することに応答してユーザ認証情報が送信されることを防止させる複数の命令をさらに含む。
【０１５２】
例３１において、例２５から２６の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、１または複数のプロセッサに、このセッションをアライブに保つための要求をウェブドメインへ送信させる複数の命令をさらに含み、この要求は非セッション変更要求である。
【０１５３】
例３２は、セッションを共有するための方法であって、サーバにおいてユーザを認証することに関する認証情報を送信する段階と、第２ユーザとの共有セッションを作成するための要求を送信する段階と、この共有セッションを暗号化するための暗号鍵であって、第２ユーザと関連する暗号鍵を受信する段階と、暗号鍵を受信する段階に応答して暗号化されたセッションを作成すべく、この共有セッションを暗号化する段階と、暗号化されたセッションを作成する段階に応答して、この暗号化されたセッションをサーバへ送信する段階を含む。
【０１５４】
例３３において、例３２の主題は、第２ユーザに関する、共有セッションに対する複数の制限を送信する段階を任意で含むことができる。
【０１５５】
例３４において、例３３の主題は、共有セッションに対する複数の制限を送信する段階に応答して、サーバ公開鍵を受信する段階を任意で含むことができる。
【０１５６】
例３５において、例３２から３３の主題は、共有セッションに対する複数の制限を送信する段階に応答して、第２ユーザが、共有セッションにおける複数のクッキーにアクセスすることまたはコードを変更することを制限する段階をさらに含むことを、任意で含むことができる。
【０１５７】
例３６は、セッションを回復および共有するためのコンピュータシステムであって、１または複数のプロセッサと、１または複数のプロセッサに結合され、複数の命令が格納されたメモリとを備える。このメモリは、実行された場合に、１または複数のプロセッサに、サーバにおいてユーザを認証することに関する認証情報を送信させ、第２ユーザとの共有セッションを作成するための要求を送信させ、この共有セッションを暗号化するための暗号鍵であって、第２ユーザと関連する暗号鍵を受信させ、暗号鍵を受信することに応答して暗号化されたセッションを作成すべく、この共有セッションを暗号化させ、暗号化されたセッションを作成することに応答して、この暗号化されたセッションをサーバへ送信させる、複数の命令を含む。
【０１５８】
例３７において、例３６の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、１または複数のプロセッサに、第２ユーザに関する、共有セッションに対する複数の制限を送信させる複数の命令をさらに含む。
【０１５９】
例３８において、例３７の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、１または複数のプロセッサに、共有セッションに対する複数の制限を送信することに応答して、サーバ公開鍵を受信させる複数の命令をさらに含む。
【０１６０】
例３９において、例３６から３７の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、１または複数のプロセッサに、共有セッションに対する複数の制限を送信することに応答して、第２ユーザが、共有セッションにおける複数のクッキーにアクセスすることまたはコードを変更することを制限させる複数の命令をさらに含む。
【０１６１】
例４０において、例３６から３７の主題は、任意で以下を含むことができる。複数の命令は、実行された場合に、１または複数のプロセッサに、ユーザに関連するモバイルデバイスからこの要求を送信させる複数の命令をさらに含む。
【０１６２】
上記の説明は例示であり、限定的ではないことが意図されていることが理解されるべきである。例えば、上記にて説明された複数の実施形態は、互いに組み合わせて使用されてよい。上記の説明を検討すれば、その他多くの実施形態が当業者には明らかとなるであろう。従って、本発明の範囲は、添付の複数の請求項を参照し、そのような請求項が権利を与えられる均等物の全範囲と共に判断されるべきである。
【図１】
0006358549.tif 000002
【図２Ａ】
0006358549.tif 000003
【図２Ｂ】
0006358549.tif 000004
【図３Ａ】
0006358549.tif 000005
【図３Ｂ】
0006358549.tif 000006
【図４Ａ】
0006358549.tif 000007
【図４Ｂ】
0006358549.tif 000008
【図５】
0006358549.tif 000009
【図６】
0006358549.tif 000010
【図７Ａ】
0006358549.tif 000011
【図７Ｂ】
0006358549.tif 000012
【図８】
0006358549.tif 000013
【図９】
0006358549.tif 000014
【図１０】
0006358549.tif 000015
【図１１】
0006358549.tif 000016