図1は、プライベートデータを保護するシステムが実装された例示的なネットワーク環境100の簡略ブロック図である。プライベートデータとしては、ネットワークを介して提供される複数のサービスを認証するべく用いられるクレデンシャル(例えば、インターネットを閲覧するときにクライアントデバイス上でユーザにより入力されるデータ)が挙げられ得るが、これに限定されない。ネットワーク環境100は、ネットワーク110、サーバ120、クライアントデバイス130およびプロキシ140を含む。プロキシ140としては、メモリ素子148およびプロセッサ149等の適切なハードウェアが挙げられ得るが、これらに限定されない。いくつかの実施形態において、プロキシ140は、ユーザがプロキシ140とインタラクトし得るユーザインターフェース147も含み得る。データストア145は、ユーザ名、パスワードおよびプライベートデータとして指定された他の情報等のプライベートデータを格納するプロキシ140と統合されてもよく、またはプロキシ140の外部にあってもよい。保護されたデータストレージモジュール143は、データストア145のポピュレートを可能にするように構成され得る。プロキシ140は、データストア145内に格納されたプライベートデータを保護するように構成された1または複数のモジュールも含む。少なくとも一実施形態において、これらのモジュールは、変更モジュール141および応答モジュール142を含み得る。クライアントデバイス130は、サーバ120およびプロキシ140等、他の複数のノードとの電子通信を開始することができるデバイスである。いくつかの実施形態において、クライアントデバイス130は、ブラウザ132、ユーザインターフェース137、メモリ素子138およびプロセッサ139を含む。いくつかの実施形態において、クライアントデバイス130は、サーバ120等のサーバを自動的に認証するように構成されたクライアントアプリケーション134を含む。サーバ120はサービス122を含み、サービス122はリソースをクライアントデバイス130に提供し得る。
図1の複数の要素は、任意の好適な複数の接続(有線または無線)を使用して、1または複数のインターフェースを介して互いに結合され、それにより複数のネットワーク通信のための実行可能な経路を提供し得る。更に、図1におけるこれらの要素のうち任意の1または複数のものは、必要とされる特定の構成に基づいて組み合わされ、またはアーキテクチャから除去され得る。一例として、クライアントデバイス130は、ブラウザを用いずにサーバ120と通信するユーザインターフェースを有しないエンベデッドコントローラであってもよい。ネットワーク環境100は、ネットワークにおいて複数のパケットを送信および/または受信する伝送制御プロトコル/インターネットプロトコル(TCP/IP)通信が可能な構成を含み得る。また、ネットワーク環境100は、具体的な必要性に基づき、かつ適切である場合に、ユーザデータグラムプロトコル/IP(UDP/IP)またはその他の好適なプロトコルと共に動作し得る。
プライベートデータを保護するシステムの特定の例示的な複数の技術を図示する目的のためには、ネットワーク環境100において行われ得るアクティビティを理解することが重要である。以下の基礎的情報は、本開示が適切に説明される上での基礎とみなされ得る。
通常、携帯電話、ラップトップ、デスクトップ、ゲームシステム、タブレット、エンベデッドコントローラ、スマートセンサ、自動車インフォテインメントシステム等のクライアントデバイスは、インターネット等のネットワークインフラストラクチャを介してネットワークサーバおよび複数の他のシステムに通信するように構成されている。ブラウザは、インターネットを介して複数のウェブページにアクセスするのに用いられるソフトウェアアプリケーションである。ブラウザは、ウェブサーバにより提供される複数の情報リソースを取得し、提示し、トラバースするべく用いられ得る。通常、ブラウザは、ハイパーテキスト転送プロトコル(HTTP)を用いて情報にアクセスし、データを受信および送信するように構成されている。勿論、いずれのアプリケーションも、ブラウザを使用することなく、直接にHTTPを介して通信し得る。また、複数の他のプロトコルは、例えば、SPDYプロトコル、ファイル転送プロトコル(FTP)、シンプルメッセージング転送プロトコル(SMTP)、および拡張マークアップ言語(XML)、非同期JavaScript(登録商標)およびXML(AJAX)、簡易オブジェクトアクセスプロトコル(SOAP)、JavaScript(登録商標) Object Notation(JSON)、RESTful等の様々な他のプロトコルおよびデータフォーマットを含め、インターネットを介する情報を流布させるべく用いられ得る。
多くの場合、クライアントデバイスのユーザは、複数のウェブサーバまたは他のシステムのコンテンツおよびサービスに対するアクセスを得るべく、ユーザ名およびパスワード等の複数のクレデンシャルを含むプライベートデータを、そのクライアントデバイス(例えば、ユーザインターフェースによるユーザ入力、格納済みデータからアクセスされた入力)を介して提供する。また、ユーザは例えば、サービスを提供するべく、ウェブサーバまたは他のシステムにより要求された様々な他のプライベートデータを提供し得る。ヒューマンユーザは、クライアントデバイスとインタラクトし、ネットワークを介して複数のリソースおよびサービスにアクセスするべく、いくつかの形態のソフトウェア(例えば、ブラウザ、ネットワークに接続されたアプリケーション)を駆動または動作させ得る。「サービス」は、サーバからクライアントデバイスに対して利用可能にされたプログラミングおよびデータの任意の組み合わせを含むことを意図する。本明細書のおいて用いられるように、「プライベートデータ」という用語は、ユーザまたはエンティティが機密を保持することを希望する任意のデータまたは情報を含むことを意図する。プライベートデータとしては、ウェブサーバまたは他のシステムのコンテンツおよびサービスに対する許可されたアクセスを得るべく用いられるパスワード、パスフレーズ、ユーザ名、個人識別番号(PIN)およびその他のデータが挙げられ得る。また、プライベートデータは、口座番号(例えば、金融機関、保健機関、学校等の)、クレジットカード番号、個人データ(例えば、性別、体重等)、社会保障番号、住所、特定の写真等を含むがこれらに限定されない、ユーザもしくはエンティティにより指定されたその他のデータもしくは情報も含み得る。
複数のウェブサーバまたは他のシステムと通信する場合に、プライバシーおよびプライベートデータのセキュリティの保持は、重大な問題である。ハイパーテキストマークアップ言語(HTML)プロトコルは、ユーザ名およびパスワード等のプライベートデータの入力を要求し得るウェブページをユーザに提供するべく、HTTPと共に用いられる一般的なプロトコルである。例えば、暗号化されていないプライベートデータがクライアントデバイスのブラウザを介して提供されてHTML形式になる場合、データはネイティブ形式であり、ネイティブ形式でサーバに送信され得る。例えば、ネイティブ形式は、キー押しまたはボタン、文字を選択するドロップダウンメニュー、ストレージの位置からの自動入力等によりクライアントデバイスに提供されるデータを含み得る。従って、プライベートデータは、クライアントデバイスから見える。たとえクライアントデバイスとサーバとの間の通信が(例えば、HTTPSプロトコルにより)暗号化されても、最初にブラウザに提供されるプライベートデータは、いまだにネイティブ形式であり、従ってクライアントデバイス上に見え、マルウェア、ハードウェア、キーロガー等による傍受を受けることがある。プライベートデータは、ブラウザが通信を暗号化する前に見え、および/またはアクセス可能である。
いくつかの場合に、ソフトウェアは、要求された情報を、ウェブサーバにより提供されたHTML形式等のフォームに自動的に入力するべく用いられ得る。また、パスワードボールト(パスワードコンセントレータ)は、パスワードを提示するように要求するフォームを都度、手動で入力するようにユーザに要求することなく、パスワードを要求するHTML形式にパスワードを挿入するべく用いられ得る。また、いくつかのブラウザは、パスワードを「記憶」し、同一のパスワードに対する次の要求を認識し、要求される場合にパスワードを自動的に提供するように構成されている。更に、いくつかの外部ソフトウェアは、類似の機能を有する。しかし、これらの解決法において、最終的な結果は、ユーザの代わりにプライベートデータをフォームに挿入するいくつかのタイプのソフトウェアである。このプライベートデータには、傍受および悪用されるリスクがある。同様に、複数の他のプロトコル(例えば、SPDY、FTP、SMTP、TELNET等)も、クライアントデバイスとのネットワーク通信中にプライベートデータの入力を要求することがある。そのような複数の要求に応答して手動または自動的に提供されるプライベートデータにも、傍受および悪用されるリスクがあり得る。ハイパーテキスト転送プロトコルセキュア(HTTPS)、FTPセキュア(FTPS)、セキュアシェル(SSH)およびSSHファイル転送プロトコル(SFTP)のような暗号化されたプロトコルであっても、通信中のデータを保護するだけであり、それが暗号化されるまでは保護しない。
一定のマルウェアは、クライアントデバイスおよび/またはクライアントデバイスのユーザから情報を窃取するべく、クライアントデバイスを感染させるように設計されている。例えば、キーロガーマルウェアは、コンピュータにおいて全てのキー押しの記録を実行するように設計されている。別のクラスのマルウェアは、マン・イン・ザ・ブラウザと称され、ユーザがブラウザに入力するデータを止め得るか、または別のやり方で(例えばソフトウェアにより)ブラウザに挿入される悪意のあるブラウザ拡張機能である。特に、ウェブフォームを直接にポピュレートするパスワードボールトは、マン・イン・ザ・ブラウザの攻撃によりパスワードをリークし得る。しかし、ブラウザに入力されたデータを保護するための現在のアプローチは、ブラウザの変更(強化)に依存し、コストがかかることがある。
図1において概説されるネットワーク環境においてプライベートデータを保護するシステムは、これらおよび他の問題を解消することができる。図1のネットワーク環境100において、プロキシは、サーバ(例えば、ウェブサーバ)からクライアントデバイスに送信され、プライベートデータ(例えば、ユーザ名、パスワード等)を要求するオブジェクト(例えば、HTMLウェブページ)を急いで変更するように構成されている。変更済みオブジェクトは、関係するプライベートデータのアンロック(すなわち、アクセス/取得)およびプライベートデータの要求サーバへの提供に対する許可の要求を含む。プロキシは、クライアントデバイスに許可要求を含む変更済みオブジェクトを提供する。少なくともいくつかの実施形態において、関係するプライベートデータは、プロキシ内に格納され得、プロキシは、セキュアな環境において動作され得る。許可がクライアントデバイスから受信されると、プロキシは、プライベートデータを取得し、プライベートデータと共に応答をサーバに送信し得る。いくつかの例において、プロキシは、プライベートデータを直接に元のオブジェクトに挿入し、入力された元のオブジェクト(例えば、HTTP POST形式)をサーバにアップロードし得る。
図示を容易にするべく、本明細書におけるいくつかの実施形態は、特定のタイプのオブジェクト(またはサーバ送信)、すなわちHTMLウェブページにおいて要求および提供されるプライベートデータを保護するシステムの文脈で説明されている。HTML形式を含み得る複数のHTMLウェブページは、ウェブサーバにより、クライアントデバイスに提供される。いくつかのHTMLウェブページは、応答して提供されるプライベートデータに対する要求を含む。しかし、本明細書において説明されるプライベートデータを保護するシステムの様々な実施形態に関する広範な教示は、プライベートデータを送信する媒体として用いられるいずれの通信プロトコルにも適用され得る。従って、「オブジェクト」という用語は、送信のためにフォーマット化(例えば、HTML、XML、FTP、SMTP、SPDY、ウェブメール等)され、要求されたデータの入力または要求されたデータを伴う他の応答を可能にするように構成され得る任意のファイルもしくはデータを含むことを意図する。例えば、オブジェクトは、ユーザがクライアントデバイスのスクリーンを介して要求されたデータを入力することを可能にし得、またはクライアントデバイスもしくはクライアントアプリケーションが要求されたデータと共に応答(例えば、ウェブサービスに対して自動的に認証するクライアントデバイスもしくはクライアントアプリケーション)を生成することを可能にし得る。本明細書において用いられる「クライアントアプリケーション」は、クライアントデバイス上で1もしくは複数のプロセッサにより、一定のタスクを実行するように実行され得、ソフトウェア、コード、ロジック、命令、関数、アルゴリズム等を含み得るコンピュータプログラム、もしくはコンピュータプログラムの集合を意味することを意図する。これらのタスクは、サービスに対して自動的に認証するなど、ネットワークを介して複数のサービスにプライベートデータを提供することを含む。
再び図1を参照すると、ネットワーク環境100は、複数のクライアントデバイスとウェブサーバ(または複数の他のシステム)との間におけるネットワーク通信中にプライベートデータを保護するシステムを提供する。図1のアーキテクチャに関連する可能性のある複数のフローを検討する前に、ネットワーク環境100に関連し得る可能なコンポーネントおよびインフラストラクチャのいくつかについて、簡単な検討が提供される。
一般に、ネットワーク環境100は、ネットワーク110により示される任意のタイプまたはトポロジのネットワークを含み得る。ネットワーク110は、ネットワーク環境100を介して伝搬するネットワーク通信を受信および送信する相互接続された通信経路の一連のポイントまたはノードを表す。ネットワーク110は、複数のノード間に通信インターフェースを提供し、無線(例えば、3G/4G/5G/nGネットワーク、WiFi、2012年3月29日に発行された米国電気電子学会(IEEE)Std802.11(登録商標)―2012、WiMAX、2012年8月17日に発行されたIEEE Std802.16(登録商標)―2012、無線周波数識別(RFID)、近距離通信(NFC)、Bluetooth(登録商標)等)、および/または有線(例えば、イーサネット(登録商標)等)通信を含む、任意のローカルエリアネットワーク(LAN)、仮想ローカルエリアネットワーク(VLAN)、ワイドエリアネットワーク(WAN)、無線ローカルエリアネットワーク(WLAN)、メトロポリタンエリアネットワーク(MAN)、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、およびインターネット等のネットワーク環境において通信を容易にするその他の適切なアーキテクチャもしくはシステム、またはこれらの任意の好適な組み合わせとして構成されてもよい。一般に、電気、音声、光、赤外線、無線(例えば、WiFi、ブルートゥース(登録商標)またはNFC)など、通信の任意の好適な手段が用いられ得る。
ネットワークフロー(「ネットワーク通信」および「ネットワーク伝送」とも称される)は、パケット、フレーム、信号、データ、オブジェクト等を含み得、任意の好適な通信メッセージングプロトコルにより送信および受信され得る。好適な通信メッセージングプロトコルとしては、開放型システム間相互接続(OSI)モデル等のマルチレイヤスキーム、またはその任意の派生物もしくは変形形態(例えば、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル/IP(UDP/IP))が挙げられ得る。接続は、ソフトウェア・デファインド・ネットワーク(SDN)を介して動的に行われ得る。本明細書において用いられる「データ」という用語は、コンピューティングデバイス(例えば、クライアントデバイス、サーバ、プロキシ)および/またはネットワークにおいてあるポイントから別のポイントへと通信され得る任意のタイプのバイナリ、数値、音声、動画、テキスト、写真もしくはスクリプトのデータ、または任意のタイプのソースもしくはオブジェクトコード、または任意の適切なフォーマットのその他の好適な情報を指す。更に、メッセージ、要求、応答、返信、クエリ等は、ネットワークフローの形態である。
クライアントデバイス130等のクライアントデバイスは、ネットワーク環境においてネットワーク通信を開始するべく用いられ得、プライベートデータが通信され得る任意のタイプのコンピューティングデバイスを表すことを意図する。いくつかの実施形態において、クライアントデバイスは、いくつかのネットワークを介して、ネットワーク環境100においてネットワークセッションを確立することを希望するエンドユーザと関連し得る。また「クライアントデバイス」という用語は、ユーザインタラクションを用いずにネットワーク環境においてサーバを通信する任意のタイプのコンピューティングデバイス(例えば、ネットワークを介して複数のサービスを自動的に認証するエンベデッドコントローラ、ネットワークを介して複数のサービスを自動的に認証するクライアントアプリケーションを有するコンピューティングデバイス)を含むことを意図する。クライアントデバイスとしては、ネットワーク環境100内で音声、オーディオ、動画、媒体もしくはデータの交換を開始し得るワークステーション、端末、ラップトップ、デスクトップ、タブレット、ゲームシステム、モバイルデバイス、スマートフォン、スマートセンサ、インフォテインメントシステム、エンベデッドコントローラ、スマートアプライアンス、全地球測位システム(GPS)、またはその他のデバイス、コンポーネントまたは要素が挙げられ得るが、これらに限定されない。またいくつかの実施形態において、クライアントデバイス130は、ディスプレイ、キーボード、タッチパッド、遠隔制御器、他の端末機器、またはこれらの任意の好適な組み合わせ等、ヒューマンユーザに対する好適なインターフェース(例えば、ユーザインターフェース137)を含み得る。
プロキシ140等のプロキシは、クライアントデバイスとウェブサーバ(または他のコンピューティングデバイスもしくはシステム)との間の通信の中継として機能するネットワーク要素である。本明細書において用いられるように、「ネットワーク要素」という用語は、ネットワーク環境において情報を交換するように動作可能なルータ、スイッチ、ゲートウェイ、ブリッジ、負荷分散装置、ファイアウォール、インラインサービスのノード、プロキシ、サーバ、プロセッサ、モジュール、SDNコントローラ/スイッチ、またはその他の好適なデバイス、コンポーネント、要素もしくは専用アプライアンスを含むものとする。このネットワーク要素としては、任意の好適なハードウェア、ソフトウェア、ファームウェア、コンポーネント、モジュール、インターフェース、またはこれらの動作を容易にするオブジェクトが挙げられ得る。これは、データまたは情報の効果的な交換を可能にする適切なアルゴリズムおよび通信プロトコルを含み得る。プロキシ140は、任意のネットワーク要素に含まれ得る。
いくつかの実施形態において、プロキシ140は、図1に図示されるようにクライアントデバイス130とは別個であり得、適切で具体的な必要性に基づく場合にはクライアントデバイス130とサーバ120との間のいずれかの箇所に実装され得る。プロキシ140がクライアントデバイス130とは別個のデバイスに実装される場合、プロキシ140のコードは、セキュアな環境で動作し、サーバ120からプライベートデータに対する要求に応答して提供されるプライベートデータを保護し得る。
例示的な実装において、プロキシ140は、保護された企業ネットワークにおけるセキュアなルータまたはゲートウェイであり得る。プロキシ140は、保護された企業ネットワーク内において、サーバと複数のクライアントデバイスと間の途中にある複数のネットワークフローを止めるように構成され得る。プロキシ140は、例えばインターネットを介してサーバ120に接続するように構成され得る。別の例において、プロキシ140は、ホームネットワークのセキュアなルータに実装され得る。プロキシ140は、ホームネットワークにおける複数のクライアントデバイス(例えば、クライアントデバイス130)とインターネット等のネットワークを介してアクセス可能な複数のサーバ(例えば、サーバ120)との間の途中にある複数のネットワークフローを止めるように構成され得る。なおも別の実装において、プロキシ140は、信頼できるクラウドに実装され得る。サーバ120への接続を開始するクライアントデバイスはまず、インターネットを介してプロキシ140に接続し得る。従って、プロキシ140は、様々なネットワーク(例えば、企業ネットワーク、ホームネットワーク、学校のネットワーク等)およびスタンドアロンクライアントデバイス(例えば、セルラー技術を用いるモバイルデバイス、無線技術を用いるモバイルデバイス等)から、複数のクライアントデバイスのプライベートデータを保護し得る。本明細書において提供される例は、プロキシ140の可能な複数の実装を専ら図示するものであり、本開示の広範な教示、ならびに本明細書において開示される可能な用途および複数の実施形態の他の実装を限定することを意図しない。
少なくとも一例において、プロキシ140は、本明細書において概説されるように、プライベートデータ保護を実現する(または促進)するソフトウェアを含む。これらの要素の各々は、本明細書において説明される複数の動作のいくつかを容易にする内部構造物(例えば、プロセッサ、メモリ素子等)を有し得る。複数の他の実施形態において、これらのプライベートデータ保護は、これらの要素の外部で実行され、またはこの意図される機能を実現するいくつかの他のネットワーク要素に含まれ得る。あるいは、プロキシ140は、このソフトウェア(または往復ソフトウェア)を含み得、ソフトウェハは、本明細書において概説されるように、複数の動作を実現するべく、複数の他のネットワーク要素と調整し得る。なおも複数の他の実施形態において、1つまたはいくつかのデバイスは、任意の好適なアルゴリズム、ハードウェア、ソフトウェア、ファームウェア、コンポーネント、モジュール、インターフェース、またはこれらの動作を容易にするオブジェクトを含み得る。
図1のサーバ120等のサーバは、ネットワーク110等の1もしくは複数のネットワークを介して、複数のクライアントデバイスもしくは他のコンピューティングデバイスに複数のサービスを提供し得るネットワーク要素である。サーバ120により提供されたサービス122は、サービスを認証するべく必要とされるクレデンシャル等のプライベートデータを要求するように構成され得る。サービス122は例えば、様々なリソースまたはアカウント(例えば、財務、医療、小売り、組織、ビジネス等)へのアクセス、ファイル転送、電子メール、ウェブコンテンツ等を含み得る。少なくともいくつかの実施形態において、サーバ120は、ウェブコンテンツを配信するウェブサーバ、要求された場合に複数のファイルをクライアントデバイスに転送するファイル転送サーバ、複数の電子メールメッセージをクライアントデバイスから宛先に転送する電子メールサーバ、ニュースグループにアクセスするニュースサーバ、複数のインタラクションゲームを提供するゲームサーバ、アプリケーションおよび/またはデータベースに対するアクセスを提供するアプリケーションサーバ、またはこれらの任意の組み合わせを含み得るが、これらに限定されない。
プロキシ140は、プライベートなものと指定されたデータを保護するように構成された1または複数のモジュールを含む、セキュアプロキシである。データストアは、1または複数のネットワークエージェントに関連するプライベートデータのレポジトリとして構成され得る。本明細書において用いられるように、「ネットワークエージェント」という用語は、ユーザ、クライアントアプリケーションおよびクライアントデバイスを含むことを意図する。データは、データストア145に格納されると、プライベートなものとして指定される。少なくともいくつかの実施形態において、プライベートデータは、少なくとも1つのネットワークエージェントに加えて、少なくとも1つのサービス(および対応するサーバ)に「関連」し得る。データストア145におけるプライベートデータアイテム(またはプライベートデータアイテムのセット)は、特定のサービスの1または複数の識別子にマッピングされ、サービスに対する関連性を示し得る。これらの識別子としては、サーバのドメイン名、サービスのユニフォームリソースロケータ(URL)(例えば、HTMLウェブページのURL)、サーバのネットワークアドレス等が挙げられ得るが、これらに限定されない。また、プライベートデータアイテム(もしくはプライベートデータアイテムのセット)は、1もしくは複数のネットワークエージェントの複数の識別子にマッピングされ、1もしくは複数のネットワークエージェントの関連性を示し得る。これらの識別子としては、媒体アクセス制御(MAC)アドレス等のクライアントデバイス識別子、セキュリティ識別子(SID)等のユーザ識別子、ファイル名等のクライアントアプリケーション識別子などが挙げられ得るが、これらに限定されない。プライベートデータアイテムのセットの例は、1もしくは複数の特定のクライアントデバイス上で特定のユーザにより特定のサービスにアクセスする、ユーザ名およびパスワードであり得る。プライベートデータアイテムの複数のセットは、同一のネットワークエージェント(または複数のエージェント)に関連し得、プライベートデータアイテムの各セットは、異なるサービスに関連する。また、個々のプライベートデータアイテムは、当該アイテムがどのタイプのプライベートデータを表すか(例えば、ユーザ名、パスワード、パスフレーズ、口座番号、個人識別番号(PIN)、セキュリティ上の質問に対する回答等)を示す任意の好適な記述子またはタグに関連し得る。
少なくともいくつかの実施形態において、複数のサービスおよび/もしくはネットワークエージェントの識別子は、任意の好適なマッピング、マーキング、もしくはリンク技術(例えば、リスト、テーブル、連想配列、ポインタ、インデックス、グラフ、リンクされたリスト、ファイル名、リレーショナルデータベース、ハッシュテーブル等)、または複数のプライベートデータアイテムと識別子との間の関係、接続またはリンクを表すその他の技術もしくはメカニズムを用いて、プライベートデータアイテム(またはプライベートデータアイテムの複数のセット)にマッピングされ得る。例えば、単純なテーブル構成は一般に、電子情報を編成するべく用いられるデータ構造であり、すでに説明されたように、データストア145を実装する1つの可能な態様である。しかし、データストア145は、様々な他の態様でモデル化され得、これらの他の構成は、所与の実装の特定の選好および必要性に基づき得ることが理解されよう。また、プライベートデータアイテムは、そのタイプを示すタグまたは記述子にマッピングされ得る。
少なくともいくつかの実施形態において、プロキシが同一のプライベートデータ(例えば、1もしくは複数のクライアントデバイスを用いるシングルユーザ、シングルクライアントアプリケーションを用いるシングルクライアントデバイス等)に関連する1もしくは複数のネットワークエージェントに対するプライベートデータを処理するように構成される場合、プライベートデータアイテムは、(可能ではあるが)関連する複数のネットワークエージェントの任意の識別子に必ずしもマッピングされない場合がある。プロキシが異なるプライベートデータに関連する複数のネットワークエージェントに対するプライベートデータを処理するように構成される場合、特定のネットワークエージェントに関連するプライベートデータアイテム(またはプライベートデータアイテムの複数のセット)は、当該ネットワークエージェントの識別子にマッピングされ得る。更に、いくつかの例において、複数のネットワークエージェントは、プライベートデータアイテム(またはプライベートデータアイテムのセット)に関連し得る。例えば、クライアントデバイスを介してユーザにより(すなわち、手動または自動的に)サービスに提供されたプライベートデータアイテムは、ユーザおよびクライアントデバイスに関連する。ユーザが複数のクライアントデバイスを介して、サービスにプライベートデータアイテムを提供する場合、プライベートデータアイテムは、ユーザおよびユーザにより用いられるクライアントデバイスの全てに関連し得る。この例において、データストア145におけるプライベートデータアイテムは、ユーザにより用いられる1もしくは複数のクライアントデバイスの各々の識別子、ユーザの識別子、またはこれらの任意の組み合わせにマッピングされ得る。別の例において、プライベートデータアイテムがクライアントデバイスを介してクライアントアプリケーションによりサービスに提供される場合、プライベートデータアイテムは、クライアントアプリケーションおよびクライアントデバイスに関連する。この例において、データストア145におけるプライベートデータアイテムは、クライアントアプリケーションの識別子、クライアントデバイスの識別子、またはこれらの組み合わせにマッピングされ得る。なおも別の例において、プライベートデータアイテムが、エンベデッドコントローラであるクライアントデバイスによりサービスに提供される場合、プライベートデータアイテムは、エンベデッドコントローラに関連し、エンベデッドコントローラの識別子にマッピングされ得る。
図示として、金融機関等の特定のエンティティが、金融機関のウェブサーバを介してアカウントへのアクセスを可能にする前に提供されるべき登録済みのユーザ名およびパスワードを要求する場合、ユーザ1により所有されるアカウントのユーザ名およびパスワードは、プロキシ140のデータストア145内の金融機関に関連し得る。少なくとも一実施形態において、ユーザ名およびパスワードは、ユーザ名およびパスワードを要求する金融機関のドメイン名またはウェブページのユニフォームリソースロケータ(URL)にマッピングされ得る。プロキシが複数のユーザに対するプライベートデータを含む場合、ユーザ名およびパスワードは、ユーザ1の識別子、ユーザ1により用いられる1もしくは複数のクライアントデバイスの識別子、またはこれらの組み合わせにもマッピングされ得る。
いくつかの実施形態において、一定のプライベートデータは、特定のサービスおよび対応するサーバに必ずしも直接に関連しないことがある。例えば、より一般的な性質であり、多数のサービスにより要求されるプライベートデータは、好適な記述子またはタグによりデータストア145に格納されるのみであり、当該アイテムがどのタイプのプライベートデータを表すかを示し得る。例えば、ホームアドレス、電話番号、性別、婚姻の状態等は、任意の適切な記述子、タグ等を用いてデータストア145に格納され得る。サービス122がこの一般的なプライベートデータについてクライアントデバイス130に要求を送信する場合、プロキシ140は、特定のタイプのプライベートデータが要求されていると解釈するように構成され得る。また、プロキシ140は、データストア145において、サーバからの要求に対応するクライアントデバイスおよび/または別のネットワークエージェント(例えば、ユーザ、クライアントアプリケーション)に関連するプライベートデータを検索し得る。また、プロキシ140は、データストア140におけるどのプライベートデータアイテムが、サーバ120により要求された特定のタイプのデータを表す記述子またはタグに関連するかを識別し得る。
少なくとも一実施形態において、データストア145は、プロキシ140内に統合および固定されるプライベートデータのセキュアなボールトである。複数の他の実施形態において、データストア145は、別個のストレージデバイス内において固定され得、別個のストレージデバイスは、プロキシ140によりアクセス可能である。任意の好適な技術は、データストア145をポピュレートするように構成され得る。一例において、任意の1または複数の通信チャネル(例えば、書かれたメール、暗号化されたファイル転送、口頭の通信等)は、複数のプライベートデータアイテムおよびそれらの関連するサービスのリストを、許可された人もしくはエンティティ(例えば、サービスプロバイダ、ネットワークアドミニストレータ等)に提供するべく、使用され得る。次に、データストア145は、複数のプライベートデータアイテムを用いてポピュレートされ得る。例えば、企業ネットワーク環境において、ユーザは、データストア145に入るために、複数の関連するサービスの複数のプライベートデータアイテムおよび識別子をネットワークアドミニストレータに提供し得る。各ユーザは、企業ネットワーク環境内で当該ユーザにより用いられる全てのクライアントデバイスのリストも提供し得る。複数のクライアントデバイスの識別子は、データストア145に入力されて、ユーザのプライベートデータアイテムにマッピングされ得る。少なくとも一実施形態において、保護されたデータストレージモジュール143は、(例えば、プライベートデータアイテムの手入力用のユーザインターフェースにより、特定のタイプのファイルを読み取り、ファイルからの複数のデータアイテムを格納するソフトウェアによるなどして)プライベートデータアイテムをデータストア145に格納することを容易にするように構成され得る。複数の他の例において、一定のプライベートデータアイテムは、データストア145において製造者によりポピュレートされ得る。例えば、エンベデッドコントローラの製造者は、エンベデッドコントローラが製造者のサービスを認証することを可能にするべく、パスワードおよびユーザデバイス識別子を用いてデータストアをポピュレートし得る。
いくつかの実施形態において、データストア145をポピュレートおよび/または更新するインクリメンタルなアプローチが用いられ得る。プロキシ140は、サーバにより要求されたプライベートデータが利用可能ではないことを自動的に検出するように構成され得る。このシナリオにおいて、プロキシ140は、クライアントデバイス130に要求を送信して、要求されたプライベートデータに対するエントリを作成することができる。サーバからのプライベートデータの要求に対応する任意のネットワークエージェント(すなわち、ユーザ、クライアントアプリケーションまたはクライアントデバイス)は、要求されたプライベートデータを作成することができる。一例において、プロキシ140は、ユーザがプロキシ140に対して、どのウェブ要素をユーザがプライベートなものとみなすかを示すことを可能にするように構成され得る。例えば、ユーザは、プロキシ140との帯域外通信を行い、どのデータアイテムがプライベートなものとして扱われるべきかを示すことができる。別の例において、未変更のHTMLウェブページ等の情報の未変更の要求がクライアントデバイス130に提供され得、ユーザは、複数の要求されたデータアイテムに対する入力を提供し得る。プロキシ140は、次のネットワークフローにおいてこれらの新しい要素を認識および処理するように構成され得る。また、少なくともいくつかの実施形態において、プロキシ140は、ユーザにより示されたこの新しいプライベートデータを用いてデータストア145をポピュレートし得る。
プロキシ140は、ユーザに関連付けてクライアントデバイスを記憶するようにも構成され得る。この関連性は、構成時に記憶されて、一連のMACアドレスとして格納され得、一連のMACアドレスは、同一ユーザにより用いられる全てのクライアントデバイスをグループ化する。また、関連性は、自動的に記憶され得る。例えば、特定のサービスのパスワードが存在しない場合、ユーザは、パスワードの要求により不変のオブジェクトを得ることができる。ユーザは、1つを提供し得る。同一のパスワードが複数のクライアントデバイスから入力されると、複数のクライアントデバイスは、将来において同一ユーザと自動的に関連付けられ得る。
データストア145が最初にポピュレートされるとき、アンロックメカニズムが開始され、ネットワークエージェントがプロキシ140に、データストア145から関係するプライベートデータを用いることを許可することができる。少なくとも一実施形態において、反復しないパスワードのシーケンスが用いられ、プライベートデータの使用を許可するワンタイムパスワード(OTP)技術が用いられ得る。ワンタイムパスワードは、アルゴリズムにより事前に生成され(またはランダムに生成され)、任意の適切な通信チャネル(例えば、ショートメッセージサービス(SMS)のメッセージ等の帯域外チャネル、セキュリティトークン、携帯電話等の別個のデバイス上で実行されるソフトウェア等)を用いてネットワークエージェントと共有され得る。別の実施形態において、プロキシ140に対する1または複数のセキュアな通信チャネルは、認証(例えば、多因子認証、人の存在等)を提供するべく使用され得る。また、いくつかの実施形態において、プライベートデータをアンロックするべく、バイオメトリックデータ(例えば、指紋、目の網膜および虹彩、音声認識等)が用いられ得る。いくつかの実施形態において、プライベートデータの自動的アンロックは、一定のシナリオの下で(例えば、ユーザの存在の検証、以前の許可の履歴、特定のHTML形式に対する許可を要求しないようにプロキシ140に要求したユーザの履歴等)許可され得る。HTTPSプロトコルを用いるネットワークフローについては、プロキシ140は、セキュアソケットレイヤ(SSL)の中間者(man−in−the−middle、MitM)としても動作して、セキュリティ警告を生成することなくHTTPネットワークフローを処理し得る。少なくとも一実施形態において、データストア145は、暗号化された通信(例えば、プロキシ140のパブリックキーを用いて暗号化された)によりポピュレートされ、プロキシ140内において対応するプライベートキーを用いる場合にのみ復号化可能であり得る。本明細書において開示されるプライベートデータを保護するシステムの複数の実施形態において、任意の数の他のアンロックメカニズムが実装され得るので、これらのアプローチは、例示的なものであり、限定することを意図しない。更に、これらのアンロックメカニズムのうち1または複数は、HTTP、SPDY、FTP、SMTP、ポストオフィスプロトコル(POP)、インターネットメッセージアクセスプロトコル(IMAP)等を含むが、これらに限定されない任意の複数のプロトコルとも機能し得る。
少なくとも一実施形態において、アンロックメカニズムは、別個のセキュリティプロトコルまたは通信リンクにより実行され得る。許可要求は、異なる媒体、チャネルまたはプロトコルを用いてクライアントデバイスに提供され得る。例えば、プロキシは、UDPプロトコルによりクライアントデバイス内の信頼できる実行環境(TEE)に、クライアントを操作するヒューマンユーザのバイオメトリックを検証するように要求し得る。TEEは、ユーザに非表示でこれを行うことができ(例えば、顔認識)、従って許可を提供して、ユーザフレンドリにプライベートデータのアンロックを可能にする。別の例において、プロキシは、ログインするべくクレデンシャルを要求するウェブページの文脈を無視して指紋のスキャンを要求し得る。そして、サーバ送信のプロキシの変更は、ログイン要求ページを完全に除去することを含み得、バイオメトリックは、プロキシがユーザに対してトランスペアレントにログインを行うことを可能にする。
動作の観点から、プロキシ140は、変更モジュール141を用いて、サーバ120からクライアントデバイス130に送信されたプライベートデータの要求を含むオブジェクトを急いで変更するように構成され得る。変更モジュール141は、任意のレベルのネットワーク通信に実装され得る。例えば、変更モジュール141は、アプリケーションレイヤの送信において動作し得、またはトランスポート(例えば、TCP/IPパケット)レベルで動作し得る。その他の好適な変更方法も使用され得る。要求されたプライベートデータは、クライアントデバイス130のユーザまたはサーバからのネットワークフローに対応する他のネットワークエージェントに関連する1または複数のプライベートデータアイテム(例えば、ユーザ名、パスワード、口座番号、パスフレーズ、ホームアドレス、個人データ、宗教団体への加入、一定の写真等)を含み得る。変更モジュール141は、どのサービスが当該要求に関連するか、およびどのタイプのプライベートデータアイテムがオブジェクトにおいて要求されるかを判断するように構成され得る。また、変更モジュール141は、データストア145がクライアントデバイス130(および/またはサーバからのネットワークフローに対応する別のネットワークエージェント)に関連し、要求されたプライベートデータアイテムと同一のタイプを有し、当該特定のサービス(例えば、サービス122)に関連する複数のプライベートデータアイテムを含むか否かを判断し得る。データストア145に格納されたプライベートデータアイテムの全ては、1ユーザ、1つのクライアントアプリケーションまたは1つのエンベデッドコントローラに潜在的に関連し得る。これらのシナリオにおいて、変更モジュール141は、ネットワークエージェントと格納済みプライベートデータアイテムとの間の関連性を判断する必要がない場合がある。
サーバにより要求されたプライベートデータアイテムがデータストア145において見つかった場合、変更モジュール141は、要求されたプライベートデータのアンロックに対する許可を要求することにより変更済みオブジェクトを作成し得る。変更済みオブジェクトは、元のオブジェクトのコピーを変更し、新しいオブジェクトを生成し、または元のオブジェクトを変更することにより作成され得る。いくつかのシナリオにおいて、元のオブジェクトのコピーは、要求されたプライベートデータを要求サーバに提供するときに、後で用いるために保存される必要がある場合がある。プライベートデータ要求を伴う元のオブジェクトに代えて、許可要求を伴う変更済みオブジェクトが宛先クライアントデバイスに提供され得る。少なくとも一実施形態において、許可要求は、クライアントデバイスのスクリーン上に表示され得、必要とされる許可を入力するように、ユーザに対するプロンプトを提供し得る。ユーザは、要求サービスに関連するユーザのプライベートデータをアンロックするように許可する、適切な許可(例えば、予め共有されているワンタイムパスワード、バイオメトリックデータ、多因子認証等の入力)をプロキシ140に提供し得る。
プロキシ140は、複数の許可要求に応答してクライアントデバイスからの通信を処理する応答モジュール142を含み得る。応答モジュール142は、クライアントデバイス130からの応答を受信して、応答に含まれる任意の許可情報を検証するように構成され得る。許可情報が有効であることを許可情報の検証が示すと、プロキシ140は、データストア145から関係するプライベートデータアイテムを取得し得る。応答モジュール142は、要求サービス(例えば、サーバ120のサービス122)にプライベートデータアイテムを提供し得る。
例示的なシナリオにおいて、サービス122によりクライアントデバイス130に送信されたオブジェクトがユーザ名およびパスワードを要求するHTMLウェブページであると仮定する。プロキシ140は、HTMLウェブページがユーザ名およびパスワードのユーザ入力を受け取るように構成されたフィールドを含むと認識する。プロキシ140は、データストア145を探索して、ユーザ名およびパスワードが宛先クライアントデバイス(および/またはユーザ)に関連し、またサービス120に関連しているか否かを判断し得る。ユーザ名およびパスワードが見つかった場合、プロキシ140は、許可の要求を伴う変更済みHTMLウェブページを作成し得る。許可の要求は、ユーザ名およびパスワードをアンロックする許可メカニズムを含む。プロキシ140は、変更済みHTMLウェブページをクライアントデバイス130に送信し得、クライアントデバイス130からの応答を受信し得る。応答における許可情報が有効である場合、プロキシ140は、データストア145から関連するユーザ名およびパスワードデータアイテムを取得し得る。また、プロキシは、元のHTMLウェブページのユーザ名およびパスワードフィールドに、データストア145から取得されたユーザ名およびパスワードデータアイテムを入力し得る。次に、完成されたHTMLウェブページに基づいて、応答(例えば、HTML POST要求)がサーバ120に送信され得る。
図2は、システムがプライベートデータを保護するように構成されたネットワーク環境200を提供する、代替的な実施形態を図示する。ネットワーク環境200は、ネットワーク210およびサービス222を有するサーバ220を含み得、これらは、図1を参照してすでに示され、説明されたネットワーク110およびサービス122を有するサーバ120に類似する。ネットワーク環境200は、クライアントデバイス230も含み、クライアントデバイス230は、図1のクライアントデバイス130と類似するいくつかのコンポーネントを有し得る。例えば、クライアントデバイス230は、ブラウザ232、ユーザインターフェース237、メモリ素子238およびプロセッサ239を含み得る。いくつかの実施形態において、クライアントデバイス230は、サーバ220等のサーバを自動的に認証するように構成されたクライアントアプリケーション234も含み得る。しかし、クライアントデバイス130と異なり、クライアントデバイス230は、クライアントデバイス230の信頼できる実行環境235においてプロキシ240およびデータストア245により構成されている。信頼できる実行環境の少なくともいくつかの構成については、プロキシ240は、デバイス製造者により署名されたソフトウェアを用いてクライアントデバイス(例えば、携帯電話)に実装され、プロキシ240のコードが悪意のソフトウェアにより危害を加えられないことを保証し得る。プロキシ240は、信頼できる実行環境235内のみで実行されるように構成され得る。
少なくとも一実施形態において、プロキシ240は、図1を参照して説明されたものに類似する複数のモジュール(例えば、変更モジュール141、応答モジュール142、保護されたデータストレージモジュール143)を用いて構成され得る。特に、プロキシ240は、プロキシ140がクライアントデバイス130とサーバ120との間の中継として機能するのと実質的に同じように、クライアントデバイス230とサーバ220との間の中継として機能し得る。プロキシ240のモジュールは、サーバ220からプライベートデータを要求するオブジェクトを有するクライアントデバイス230への途中で流れるネットワークフローを止め、関係するプライベートデータにアクセスすることに対する許可を要求する変更済みオブジェクトを作成して、有効な許可情報を受信すると、要求されたプライベートデータをサーバ220に提供するコードを含み得る。
信頼できる実行環境235は、プロキシ240のコードがクライアントデバイス230内のセキュアな環境において動作することを可能にすることにより、(例えば、マルウェアによる)悪意の攻撃からプロキシ240およびデータストア245を保護する。信頼できる実行環境235の少なくともいくつかの実施形態において、信頼できるコードのみが実行される。信頼できる実行環境235は、クライアントデバイス230の他のソフトウェアからプロキシ240およびデータストア245を実質的に隔離し得る。従って、データストア245におけるプライベートデータは、依然として保護され、セキュアであり得る。信頼できる実行環境の例としては、カリフォルニア州サンタクララのインテル(登録商標)コーポレーションにより提供されるインテル(登録商標)vPro(登録商標)技術、インテル(登録商標)コーポレーションにより提供されるインテル(登録商標)ソフトウェアガード拡張(登録商標)、モバイルデバイス上のセキュアエレメントもしくはトラストゾーン、セキュアエンクレーブ、Java(登録商標)環境で動作するスマートカード等が挙げられるが、これらに限定されない。信頼できる実行環境235におけるプロキシ240等、セキュアプロキシは、プライベートデータがセキュアプロキシのみにより送信されることを保証する。結果として、セキュアプロキシがネットワーク通信を制御する場合、プロキシ240によりサーバ220に通信されるプライベートデータは、カーネルレベル、ハイパーバイザレベルで動作するマルウェア、または更にファームウェアもしくはハードウェア(例えば、ルートキットおよびブートキット)からのマルウェアを含むマルウェアにアクセス可能ではない。
本明細書において開示される複数の実施形態は、いくつかの利点を有するプライベートデータの保護を提供する。まず、プロキシ140、240は、クライアントデバイスの任意のブラウザを変更することなく、クライアントデバイスと共に用いるべく実装され得るが、これは多くの場合、コストがかかり得る。また、他の複数の通信プロトコルにより用いられるソフトウェアに対する変更も回避され得る。更に、プロキシ140、240の実装も、サーバ側(例えば、120または220)に変更を必要とせず、プロキシ(例えば、140または240)の動作は、サーバに対して完全にトランスペアレントである。プライベートデータが要求された場合に適切な許可を提供するべく、ユーザの動作(またはクライアントアプリケーションもしくはエンベデッドコントローラの動作)における単純な変更が必要とされる。少なくとも一実施形態において、クライアントデバイスに提供される変更済みHTMLウェブページは、クライアントデバイス上に表示され得る。変更済みHTMLウェブページに含まれる許可要求は、ユーザのプライベートデータへのアクセスを許可するのに必要とされることに関して、ユーザに対する複数の命令を提供し得る(例えば、「ログイン:」および「パスワード:」要求に代えて、ユーザは、「ログインおよびパスワードをアンロックするためにOTP番号を提供:」を見かける場合がある)。更に、プロキシにより受信されたプライベートデータの元の要求を送信したサービスに関連するプライベートデータアイテムが存在しない場合に、許可要求は、データストアをポピュレートする手順に関して、ユーザに複数の命令も提供し得る。
認証クレデンシャルに加えて、別の利点としては、任意のタイプのプライベートデータを保護する柔軟性が挙げられる。実際には、データをプライベートとして指定する段階は、プライベートデータを用いてデータストアをポピュレートする段階と、格納済みプライベートデータとの適切な関連性(例えば、サーバ、クライアントデバイス、ユーザ、クライアントアプリケーション、エンベデッドコントローラにより提供されるサービス)を作成する段階と、格納済みプライベートデータを、そのタイプを示す適切なタグまたは記述子に関連付ける段階とを含む。必要であれば、プロキシは、ネットワーク通信における当該タイプのプライベートデータに対する要求をサーバから認識するように容易に構成され得る。
本明細書において開示される少なくともいくつかの実施形態の別の利益は、パスワード変更に対する周期的なサーバの要求がプロキシの内部で、ユーザに対してトランスペアレントに処理され得ることである。プロキシは、サーバにより提供された特定のサービスに関連する1もしくは複数のプライベートデータアイテムに対応する1もしくは複数のクレデンシャル(例えば、失効パスワード)を変更する要求を、サーバから識別し得る。プロキシは、失効パスワードの変更を開始して、ユーザの関与を伴うことなくこのトランザクションを処理し、データストア145に新しい複数のクレデンシャルを反映し得る。このシナリオにおいて、ユーザは、パスワードを知っていることすら必要ではなく、これにより賄賂、強要または拷問に基づいた攻撃に対して追加のセキュリティを提供する。
また、システムの実装は、企業環境または他のマルチユーザ環境において複数の利点を提供する。セキュアプロキシ(例えば、プロキシ140)は、周囲のデバイスに実装され得、これによりプライベートデータを喪失するエンドポイント(例えば、クライアントデバイス130)のリスクを減少させる。企業におけるシステムの実装は、極めてコスト効率がよく、複数のエンドポイントに既存の複数のブラウザを収容し、bring−your−own−device(BYOD)のシナリオに適合し得る。システムを開始すると、セキュアなストレージボールト(例えば、データストア145)は、セキュアな態様で別個にポピュレートされる。セキュアなストレージボールトをポピュレートするべく用いられる複数のデータアイテムは、各ユーザにより、自身が用いる全てのクライアントデバイスデバイスに提供され得る。セキュアなストレージボールトがポピュレートされると、システムは、識別されたクライアントデバイスが用いられる場合にプライベートデータの保護を提供することを開始し得る。企業環境において、本明細書において開示される複数の実施形態は、複数の外部サービス(例えば、122または222)へのアクセスを集中的およびトランスペアレントに管理することを可能にし得る。クレデンシャルは非表示で提供され得るので、全ての従業員が迅速なアクセスを享受する。要求されるクレデンシャルは、管理者により作成され、ユーザに対して完全にトランスペアレントに管理され得る。クライアントデバイス/ユーザ識別/認証の外部手段は、アクセス(例えば、入室ログ、ドメインログイン、ダイナミックホスト構成プロトコル(DHCP)によるIPアドレスの割り当て、バイオメトリック、多因子認証等)をアンロックするべく、使用され得る。
クライアントデバイス130、230、プロキシ140およびサーバ120、220に関連する内部構造物に関して、これらのデバイスは、本明細書において概説される複数の動作において用いられる複数の命令、ロジックおよび/もしくはコードを含む、データおよび情報を格納する揮発性および/もしくは不揮発性メモリ素子(例えば、メモリ素子138、148、238)を含み得る。適切であり、特定の必要性に基づく場合に、クライアントデバイス130、230、プロキシ140およびサーバ120、220は、任意の好適なメモリ素子(例えば、データおよび情報を格納することができるランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的EPROM(EEPROM)、ディスクドライブ、フロッピー(登録商標)ディスク、コンパクトディスクROM(CD―ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、光磁気ディスク、特定用途向け集積回路(ASIC)、もしくは他のタイプの不揮発性機械可読媒体)、ソフトウェア、ハードウェア、ファームウェア、またはその他の好適なコンポーネント、デバイス、素子もしくはオブジェクト内にデータおよび情報を保持し得る。本明細書において検討される複数のメモリアイテム(例えば、メモリ素子138、148、238)のいずれも、「メモリ素子」という広範な用語に包含されるものと解釈されるべきである。更に、クライアントデバイス130、230、プロキシ140およびサーバ120、220において用いられ、格納され、追跡され、送信され、もしくは受信される情報は、レポジトリ、データベース、レジスタ、キュー、テーブルもしくはキャッシュを含むが、これらに限定されない任意のストレージ構造で提供され得、これらの全てが、任意の好適な時間軸において参照され得る。また、任意のそのような複数のストレージ構造(例えば、データストア145、245)は、本明細書において用いられる「メモリ素子」という広範な用語に含まれ得る。
例示的な実装において、プロキシ140、240は、本明細書において概説される複数の動作を実現または促進するべく、複数のソフトウェアモジュール(例えば、変更モジュール141、応答モジュール142、保護されたデータストレージモジュール143)を含み得る。これらのモジュールは、任意の適切な態様で好適に組み合わされ、または分割され得、これは、具体的な構成および/またはプロビジョニングの必要性に基づき得る。いくつかの実施形態において、そのような動作の1または複数は、意図される機能を実現するべくこれらの要素外部に実装され、またはいくつかの他のコンピューティングデバイスに含まれたハードウェアおよび/またはファームウェアにより実行され得る。これらの要素は、本明細書において概説されるように、複数の動作を実現するべく、複数の他のコンピューティングデバイスと調整し得るソフトウェア(または往復ソフトウェア)を含む。
一定の例示的な実装において、本明細書において概説される複数の機能は、1もしくは複数の有形媒体(例えば、ASICにおいて提供されるエンベデッドロジック、デジタル信号プロセッサ(DSP)命令、1もしくは複数のプロセッサにより実行されるソフトウェア(潜在的にはオブジェクトコードおよびソースコードを含む)、または他の類似のマシン等)においてエンコードされたロジックにより実装され得、これらは非一時的機械可読ストレージ媒体を含み得る。クライアントデバイス130、230、プロキシ140およびサーバ120、220は、本明細書において検討される複数のアクティビティを実行するロジックもしくはアルゴリズムを実行し得る1もしくは複数のプロセッサ(例えば、プロセッサ139、149、239)を含み得る。プロセッサは、データに関連付けられた任意のタイプの複数の命令を実行して、本明細書において詳述される複数の動作を実現し得る。一例において、複数のプロセッサは、要素または物品(例えば、データ)を、ある状態もしくは物から別の状態もしくは物へと変換し得る。別の例において、本明細書において概説される複数のアクティビティは、固定ロジックまたはプログラマブルロジック(例えば、プロセッサが実行する複数のソフトウェア/コンピュータ命令)で実装され、本明細書において特定される複数の要素は、いくつかのタイプのプログラマブルプロセッサ、プログラマブルデジタルロジック(例えば、フィールドプログラマブルゲートアレイ(FPGA)、EPROM、EEPROM)、または、デジタルロジック、ソフトウェア、コード、複数の電子命令、またはそれらの任意の好適な組み合わせを含むASICであり得る。本明細書において説明される複数の潜在的処理要素、モジュールおよび機械のいずれも、「プロセッサ」という広範な用語に包含されるものと解釈されるべきである。
図3を参照すると、簡略化されたインタラクション図が、少なくとも一実施形態による、クライアントデバイス130と、プロキシ140とサーバ120との間のネットワーク環境100において行われ得る可能なインタラクションを図示する。少なくとも一実施形態において、プロキシ140の変更モジュール141および応答モジュール142は、プロキシ140に関連する1または複数のインタラクションおよびアクティビティを実行し得る。ブラウザ132は、クライアントデバイス130に関連する1または複数のインタラクションおよびアクティビティを実行し得る。サービス122は、プライベートデータに対する複数の要求を有する複数のオブジェクトを提供し得る。一般に、図3を参照して示され、説明される複数のインタラクションおよびアクティビティは、プロキシ240がクライアントデバイス230の信頼できる実行環境235に統合されている実施形態を図示する、図2のネットワーク環境200の複数のインタラクションおよびアクティビティにも適用可能である。図3の例は、専ら潜在的なインタラクションの一例であり、特許請求の範囲を限定するものではない。例えば、モジュールの数が変わることがあり、コンポーネントの数が変わることがあり、特定のインタラクションが変わることがあり、インタラクションの順序が変わることがある、等である。
図3は、ユーザがインターネットを閲覧するべく、クライアントデバイス130のブラウザ132を用いている例示的なシナリオを図示する。この例示的なシナリオにおいて、サーバ120はウェブサーバであり、ネットワーク通信はHTMLウェブページを伴う。更に、データストア145がクライアントデバイス130のユーザのプライベートデータを用いて既にポピュレートされているものと仮定される。
最初に、クライアントデバイス130のブラウザ132を介して、ユーザは、アクセスする特定のウェブサーバ(例えば、特定のドメイン名、ネットワークアドレス、URL)を選択し得る。302において、クライアントデバイス130は、ハイパーテキスト転送プロトコル(HTTP)の要求メッセージ等、ネットワーク通信を選択されたウェブサーバに送信する。プロキシ140は、ネットワーク通信を止める。通信は、プライベートデータのアンロックに対する許可の要求への応答ではないので、プロキシ140は、304において要求を宛先ウェブサーバであるサーバ120に転送する。
この例示的なシナリオにおいて、サーバ120は、ウェブサイト上にアカウントを作成した複数のユーザによるサービス(例えば、サービス122)へのアクセスのみを可能にする。306において、サーバ120は、サービスを用いて登録されたアカウント用のユーザ名およびパスワード等、ユーザのプライベートデータアイテムの要求を含む、HTMLウェブページを送信することによりクライアントデバイス130に応答する。HTMLウェブページがブラウザにより表示される場合、それは例えば、「ユーザ名:」および「パスワード:」の後に続く2つの空のボックスを含み、これは、特定のサービスに対してユーザ名およびパスワードを入力する命令として、ユーザに認識され得る。HTMLウェブページ自体は、例えば金融機関のドメイン名であり得るHTMLウェブページに関連するサービスの識別子も含み得る。
プロキシ140は、HTMLウェブページを用いてサーバ120からネットワークフローを止める。プロキシ140は、HTMLウェブページを評価して、どのプライベートデータアイテムが要求されているかを判断し得る。次に、プロキシ140は、データストア145を探索して、クライアントデバイス130(および/またはユーザ)が、サーバ120のサービスに(例えば、ドメイン名、ウェブページのURLにより)やはり関連付けられたユーザ名およびパスワードに関連付けられているか否かを判断する。ユーザ名およびパスワードが見つかった場合、プロキシ140は、308においてサーバ120により要求されたプライベートデータアイテムにアクセスするべく、許可の要求を伴う変更済みHTMLウェブページを作成し得る。310において、プロキシ140は、クライアントデバイス130に対する許可の要求を含む変更済みHTMLウェブページを送信し得る。
クライアントデバイス130のブラウザ132は、プロキシ140から受信された変更済みHTMLウェブページを表示し得る。ウェブページは、ユーザがプロキシ140に、サーバ120により要求された複数のプライベートデータアイテムにアクセスして、それらをサーバ120に提供することを許可する複数の命令を提供し得る。一実施形態において、ユーザが帯域外通信において受信したワンタイムパスワードを提供するように、ユーザは命令され得る。312において、クライアントデバイス130は、ユーザにより提供された許可情報を有する応答を送信し得る。プロキシ140は、応答を止めて、許可情報が有効か否かを判断する。許可情報が有効であると判断されると、プロキシ140は、データストア145から要求された複数のプライベートデータアイテムを取得し得る。314において、プロキシ140は、サーバ120から、複数のプライベートデータアイテムを直接に元のHTMLウェブページに挿入することができる。316において、プロキシ140は、完成されたHTMLウェブページをサーバ120にアップロードし得る。従って、サーバ120により要求されたプライベートデータを保護するプロキシ140の動作は、サーバ120に対してトランスペアレントである。
図4は、本明細書において説明される複数の実施形態に関連し得る複数の動作の可能なフロー400のフローチャートである。少なくとも一実施形態において、1または複数のセットの動作は、図4のアクティビティに対応する。プロキシ140、240、またはそれらの一部は、1もしくは複数のセットの動作を使用し得る。プロキシ140、240は、複数の動作を実行する、プロセッサ149、239等の手段を備え得る。一実施形態において、フロー400の少なくともいくつかの動作は、変更モジュール(例えば141)により実行され得、フロー400の少なくともいくつかの他の動作は、応答モジュール(例えば142)により実行され得る。図4のフロー400は、データストア145、245が1または複数のサービスおよびネットワークエージェント(すなわち、ユーザ、クライアントデバイス、クライアントアプリケーション、エンベデッドコントローラ)に関連するプライベートデータを用いてポピュレートされている場合に、ネットワーク環境100、200において行われ得る。
フロー400は、402において開始し得、プロキシは、ネットワーク通信(例えば、HTTP要求、FTP要求等)をクライアントデバイスから受信する。ネットワーク通信は例えば、インターネットにおける特定のサーバに向けられ得、プロキシは、通信を止め得る。404において、プロキシは、ネットワーク通信を適切な宛先サーバ(例えば、ウェブサーバ、FTPサーバ等)に転送し得る。406において、プロキシは、クライアントデバイスへのサーバのネットワークフローを止め得る。サーバのネットワークフローは、クライアントデバイスにより送信され、プロキシにより転送されたネットワーク通信への応答であってもよい。
408において、プロキシは、ネットワークフローのオブジェクトにおいて、1または複数のプライベートデータアイテムがサーバから要求されているか否かを判断し得る。この判断は、オブジェクトの実際のコンテンツを評価する(例えば、「ユーザ名」、「パスワード」、「口座番号」等、プライベートデータの記載に続く空白のボックス等、プライベートデータ要求の表示のためのHTMLウェブページを検索すること)により行われ得る。応答がプライベートデータ要求を含まない場合、409において、プロキシは、不変のオブジェクトを有するネットワークフローをクライアントデバイスに転送し得、フロー400は終了する。
408において、オブジェクトが1または複数のプライベートデータアイテムに対する要求を含まないと判断された場合、410においてプロキシは、対応する複数のプライベートデータアイテムがデータストアに格納されているか否かを判断し得る。プロキシは、要求されるプライベートデータのタイプ(例えば、ユーザ名、パスワード等)およびオブジェクトに関連するサービスの識別子(例えば、ドメイン名、サービスのURL等)を判断し得る。プロキシが複数のユーザに対するプライベートデータを処理する場合、プロキシは、サーバからのネットワークフローに関連する宛先クライアントデバイスに対する識別子も判断し得る。いくつかの実施形態において、プロキシは、ネットワークフローに関連するユーザまたはクランアントアプリケーションの識別子を判断し得る。従って、プロキシは、データストアを探索して、サービス、プライベートデータのタイプ、および場合によってはクライアントデバイスとの関連性に少なくとも部分的に基づいて、対応するプライベートデータアイテムを識別し得る。また、いくつかの実施形態において、プロキシは、特定のユーザまたはクランアントアプリケーションとの関連性に基づいて、対応するプライベートデータアイテムを識別し得る。
対応するプライベートデータアイテムが見つからない場合、412においてプロキシは、適切な行動を取り得る。プロキシは、複数の不明のプライベートデータアイテムを用いてデータストアをポピュレートする手順に関して、ユーザに複数の命令を提供し得る。可能な一実施形態において、オブジェクトがクライアントデバイスのユーザにより要求されたHTMLウェブページである場合、プロキシは、ユーザを導いて複数の不明のプライベートデータアイテムを用いてデータストアをポピュレートする複数の命令により、クライアントデバイスのブラウザにより表示されるHTML文書を送信し得る。別の実施形態において、プロキシは、適切なエラーメッセージをクライアントデバイスに送信し得る。別の実施形態において、プロキシは、プライベートデータアイテムに対する要求を含む、オブジェクトに対する変更をすることなく、クライアントデバイスに応答を単に転送するだけでよい。フロー400は、プロキシが412において示される行動を取った後、終了し得る。
410において、複数の対応するプライベートデータアイテムがデータストアにおいて見つかった場合、414においてプロキシは、要求された複数のプライベートデータアイテムにアクセスして当該複数のアイテムをサーバに提供することに対する許可の要求を有する変更済みオブジェクトを作成し得る。許可の要求は、任意の数のアンロックメカニズム(例えば、ワンタイムパスワード、バイオメトリック許可、多因子認証等)を用いて構成され得る。プライベートデータアイテムに用いられる特定のアンロックメカニズムは、プロキシにより判断され得、プライベートデータアイテムに関連する特定のネットワークエージェントに基づき得る。416において、変更済みオブジェクトは、クライアントデバイスに提供され得る。一実装において、図1に示されるように、変更済みオブジェクトは、ネットワークフローにおいてクライアントデバイスに送信され得る。図2に示される実装において、変更済みオブジェクトは、(例えば、ブラウザ、クライアントアプリケーションにより)信頼できる実行環境からクライアントデバイスに提供され得る。
418においてプロキシは、許可情報(例えば、ワンタイムパスワード、バイオメトリックデータ等)を含む応答を、クライアントデバイスから受信し得る。具体的な実装に応じて、この許可情報は、ユーザにより(例えば、クライアントデバイスのスクリーンを介して)、またはクライアントデバイスもしくはクライアントアプリケーション(例えば、特定のサービスを自動的に認証するクライアントデバイスもしくはクライアントアプリケーション)により、提供され得る。420においてプロキシは、許可情報の検証を試みる(例えば、ワンタイムパスワードが有効であるか否かを判断し、バイオメトリックデータが予期されるバイオメトリックデータに一致するか否かを判断するなど)。許可情報を検証する段階は、許可情報が有効であるか否かを判断する段階を有する。420において許可情報が有効でないと判断された場合、422においてプロキシは、エラーメッセージをクライアントデバイスに送信し得、フローは、新しい許可情報が受信されると、418に戻り得る。無効の許可情報が予め定められた回数(例えば、1または複数回)、受信された場合、プロキシは、追加の複数のメカニズムを呼び出して、許可されたユーザ(またはクライアントデバイスもしくはクライアントアプリケーション)が関係するプライベートデータへの許可されたアクセスを試みていることを保証し得る。
420において、許可情報が有効であると判断された場合、424においてプロキシは、サーバから受信された元のオブジェクトにおける1もしくは複数の要求されたプライベートデータアイテムに対応する、データストアからの1もしくは複数のプライベートデータアイテムを取得し得る。426においてプロキシは、1または複数のプライベートデータアイテムを用いてサーバに対する応答を準備し得る。例えば、プライベートデータ要求がHTMLウェブページを介して送信された場合、プロキシは、適切な箇所(例えば、データ入力ボックス)において、複数のプライベートデータアイテムを直接にHTMLウェブページに挿入し得る。428において、複数のプライベートデータアイテムを含む応答は、(例えば、HTTP POST形式として)サーバに送信され得、フロー400は終了する。
図5は、一実施形態によるプロセッサの例示的な図示である。プロセッサ500は、クライアントデバイス130および230のプロセッサ139および239の各々のうち1もしくは複数、ならびにプロキシ140のプロセッサ149の可能な一実施形態である。プロセッサ500は、マイクロプロセッサ、エンベデッドプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、マルチコアプロセッサ、シングルコアプロセッサ、またはコードを実行する他のデバイス等、任意のタイプのプロセッサであり得る。1つのプロセッサ500のみが図5に図示されているが、あるいは、処理要素は図5に図示されるプロセッサ500のうち2つ以上を含んでもよい。プロセッサ500は、シングルスレッドコアであってもよく、少なくとも一実施形態については、プロセッサ500は、1コア当たり2つ以上のハードウェアスレッドコンテキスト(または「ロジックプロセッサ」)を含み得るように、マルチスレッド化されてもよい。
また、図5は、一実施形態によるプロセッサ500に結合されたメモリ502を図示する。メモリ502は、クライアントデバイスプラットフォーム100におけるメモリ素子114の一実施形態である。メモリ502は、既知の、またはそうでなければ当業者に入手可能な、多種多様なメモリ(メモリ階層の様々なレイヤを含む)のうちのいずれかであってよい。そのような複数のメモリ素子としては、ランダムアクセスメモリ(RAM)リードオンリメモリ(ROM)、フィールドプログラマブルゲートアレイ(FPGA)のロジックブロック、消去可能プログラマブルリードオンリメモリ(EPROM)および電気的消去可能プログラマブルROM(EEPROM)が挙げられ得るが、これらに限定されない。
コード504は、プロセッサ500により実行される1または複数の命令であってもよく、メモリ502に格納されてもよい。コード504は、適切であり、具体的な必要性に基づく場合に、ソフトウェア、ハードウェア、ファームウェアまたはこれらの任意の好適な組み合わせに格納され、またはその他内部もしくは外部コンポーネント、デバイス、エレメント、またはオブジェクトに格納され得る様々なモジュール(例えば、変更モジュール141、応答モジュール、保護されたデータストレージモジュール143等)の命令を含み得る。一例において、プロセッサ500は、コード504により示された複数の命令のプログラムシーケンスに従い得る。各命令は、フロントエンドロジック506に入力され、1または複数のデコーダ508により処理される。デコーダは、その出力として、予め定義されたフォーマットの固定幅のマイクロオペレーション等のマイクロオペレーションを生成してもよく、または元のコード命令を反映する他の複数の命令、マイクロ命令もしくは制御信号を生成してもよい。フロントエンドロジック506は、一般に複数のリソースを割り当て、実行のために命令に対応するオペレーションをキューに登録する、レジスタリネーミングロジック510およびスケジューリングロジック512も含む。
また、プロセッサ500は、1セットの実行ユニット516―1〜516―Mを有する実行ロジック514を含み得る。いくつかの実施形態は、特定の複数の機能または複数のセットの機能に専用のいくつかの実行ユニットを含み得る。複数の他の実施形態は、特定の機能を実行し得る1つの実行ユニット、またはそのような1つの実行ユニットのみを含んでよい。実行ロジック514は複数のコード命令により指定された複数の動作を実行し得る。
複数のコード命令により指定された複数の動作の実行が完了した後、バックエンドロジック518はコード504の複数の命令をリタイアし得る。一実施形態において、プロセッサ500はアウトオブオーダ実行を可能にするが、複数の命令のインオーダリタイアメントを要求する。リタイアメントロジック520は、様々な既知の形態(例えば、リオーダバッファ等)を取り得る。このように、プロセッサ500は、少なくとも、レジスタリネーミングロジック510により使用されるデコーダ、複数のハードウェアレジスタおよび複数のテーブル、ならびに実行ロジック514により変更される複数の任意のレジスタ(図示せず)が生成する出力に関して、コード504の実行中に変換される。
図5には示されないが、処理要素は、プロセッサ500を有するチップ上に他の複数の要素を含み得る。例えば、処理要素は、プロセッサ500と共にメモリ制御ロジックを含んでもよい。処理要素は、I/O制御ロジックを含んでもよく、および/または、メモリ制御ロジックと統合されるI/O制御ロジックを含んでもよい。また、処理要素は、1または複数のキャッシュを含んでもよい。またいくつかの実施形態において、不揮発性メモリ(フラッシュメモリまたはヒューズ等)は、プロセッサ500を有するチップに含まれ得る。図2を参照して示され、説明される実施形態において、信頼できる実行環境235を提供してデータストア245を保護するべく、メモリ502の一部は暗号化され、プロキシコード240以外のいずれのコードにもアクセス不可能になる場合がある。(例えば、デジタル方式で署名された)特別に作成されたコードのみが、環境235内で実行されるように構成され得る。
図6は、コンピューティングシステム600が一実施形態によるポイントツーポイント(PtP)構成で配置されたコンピューティングデバイスの1つの可能な例であることを図示する。具体的には、図6は、プロセッサ、メモリおよび入力/出力デバイスがいくつかのポイントツーポイントインターフェースにより相互接続されたシステムを示す。少なくとも一実施形態において、本明細書において示され、説明されるクライアントデバイス130、230、プロキシ140およびサーバ120、220のうち1または複数は、例示的なコンピューティングシステム600と同一であるかまたは類似する態様で構成され得る。
プロセッサ670および680も各々、集積メモリコントローラロジック(MC)672および682を含み、メモリ素子632および634と通信し得る。代替的な実施形態において、メモリコントローラロジック672および682は、プロセッサ670および680とは独立した別個のロジックであってもよい。本明細書において概説されるように、メモリ素子632および/または634は、プライベートデータの保護に関連する複数の動作を実現する際にプロセッサ670および680により用いられる様々なデータを格納し得る。
プロセッサ670および680は、図5のプロセッサ500、図1のプロセッサ139、149および図2のプロセッサ239を参照して検討されたもの等、任意のタイプのプロセッサであってもよい。プロセッサ670および680は各々、ポイントツーポイントインターフェース回路678及び688を用いて、ポイントツーポイント(PtP)インターフェース650を介してデータを交換し得る。プロセッサ670および680は各々、ポイントツーポイントインターフェース回路676、686、694および698を用い、個々のポイントツーポイントインターフェース652および654を介して制御ロジック690とデータを交換し得る。本明細書において示されるように、制御ロジックは、処理要素670および680とは別個である。しかし、一実施形態において、制御ロジック690は同一のチップ上に処理要素670および680として統合されている。また、制御ロジック690は、より少ないか、またはより多い集積回路を用いて異なる分割をされ得る。更に、制御ロジック690も、PtPインターフェース回路であり得るインターフェース回路692を用い、高性能グラフィックスインターフェース639を介して高性能グラフィックス回路638とデータを交換し得る。複数の代替的な実施形態において、図6に図示される複数のPtPリンクのうちのいずれかまたは全てが、PtPリンクではなくマルチドロップバスとして実装され得る。
制御ロジック690は、インターフェース回路696を介してバス620と通信し得る。バス620は、バスブリッジ618およびI/Oデバイス616等、バスを介して通信する1または複数のデバイスを有し得る。バス610を介して、バスブリッジ618は、キーボード/マウス612(もしくはタッチスクリーン、トラックボール、ジョイスティック等の他の入力デバイス)、通信デバイス626(モデム、ネットワークインターフェースデバイスもしくはコンピュータネットワーク660を介して通信し得る他のタイプの通信デバイス等)、オーディオI/Oデバイス614、および/またはデータストレージデバイス628等、複数の他のデバイスと通信し得る。データストレージデバイス628は、プロセッサ670および/または680により実行され得るコード630を格納し得る。複数の代替的な実施形態において、複数のバスアーキテクチャのうちの任意の部分は、1または複数のPtPリンクを用いて実装され得る。
図6に図示されるコンピュータシステムは、本明細書において検討される様々な実施形態を実装するべく使用され得るコンピューティングシステムの一実施形態の概略図である。本明細書において提供される様々な実施形態により、図6に図示されるシステムの様々なコンポーネントは、プライベートデータの保護を実現することができるシステムオンチップ(SoC)アーキテクチャまたはその他の好適な構成で組み合わされされ得ることが理解されるであろう。
本明細書において提供される複数の例において、インタラクションは、2つ、3つまたはそれより多いコンピューティングデバイスに関して説明される場合があることに留意されたい。しかし、これは、明確さおよび例示のみの目的でそのようにしている。一定の場合に、限定された数のコンピューティングデバイスのみを参照することにより、所与のセットのフローの複数の機能のうち1または複数を記載する方がより容易な場合がある。更に、プライベートデータ保護システムは、容易にスケーラブルであり、多数のコンポーネント、ならびにより複雑化/高性能の配置および構成全体で実装され得る。従って、提供される複数の例は、無数の他のアーキテクチャに潜在的に適用されるプライベートデータ保護システムの広範な教示の範囲を限定し、またはこれを阻むべきではない。
また、図1〜6を参照して説明された複数の動作は、ネットワーク環境100および200により、もしくはこれらの内部において実行され得る、可能なプライベートデータ保護の複数のアクティビティのいくつかのみを図示するものであることに留意するのが重要である。これらの動作のいくつかは、適切な場合には削除もしくは除去されてよく、またはこれらの動作は、本開示の範囲を逸脱することなく相当に修正もしくは変更されてもよい。更にこれらの動作のタイミングは、相当に変更されてもよい。前述の複数の動作フローは、例示および検討の目的のために提供されている。本開示の教示を逸脱することなく、任意の好適な配置、時系列、構成およびタイミングメカニズムを提供し得るように、実質的な柔軟性が本明細書において説明される複数の実施形態により提供されている。
本開示は、特定の配置および構成を参照して詳細に説明されているが、これらの例示的な構成および配置は、本開示の範囲を逸脱することなく相当に変更されてもよい。更に、ネットワーク環境100および200は、プライベートデータ保護のアクティビティを容易にする特定の要素および動作を参照して図示されているが、これらの要素および動作は、プライベートデータ保護システムの意図される機能を実現する任意の好適なアーキテクチャ、プロトコルおよび/または処理により代替され得る。 他の注記および例
以下の複数の例は、本明細書による実施形態に関する。また、上記の装置およびシステムの全ての任意選択の機能は、本明細書において説明される方法もしくは処理に対して実装されてもよく、例における具体的な事柄は、1もしくは複数の実施形態のいずれかの箇所において用いられてもよいことに留意されたい。
例1は、プライベートデータを保護するべく、複数の命令が格納された少なくとも1つの機械可読ストレージ媒体であって、複数の命令は、少なくとも1つのプロセッサにより実行されると、少なくとも1つのプロセッサに、サーバからクライアントデバイスへの途中でネットワークフローを止めさせ、ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別し、データストアにおけるプライベートデータアイテムを識別させ、クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供させ、有効な許可情報が受信されたときに、プライベートデータアイテムをサーバに送信させる、少なくとも1つの機械可読ストレージ媒体である。
例2において、例1の主題は、少なくとも1つのプロセッサにより実行されると、少なくとも1つのプロセッサに更に、クライアントデバイスから許可情報を受信させ、許可情報が有効か否かを判断させ、許可情報が有効であると判断された場合に、プライベートデータアイテムを取得させる複数の命令を任意選択で含み得る。
例3において、例1〜2のいずれか1つの主題は、少なくとも1つのプロセッサにより実行されると、少なくとも1つのプロセッサに更に、プライベートデータアイテムのためのアンロックメカニズムを決定させ、アンロックメカニズムに少なくとも部分的に基づいて、許可要求を含む変更済みオブジェクトを作成させる複数の命令を任意選択で含み得る。
例4において、例3の主題は、ワンタイムパスワード、ユーザのバイオメトリック識別および多因子認証処理を含む複数のアンロックメカニズムの群から選択されるアンロックメカニズムを任意選択で含み得る。
例5において、例1〜4のいずれか1つの主題は、少なくとも1つのプロセッサにより実行されると、少なくとも1つのプロセッサに更に、プライベートデータアイテムの要求により示されたデータのタイプを判断させ、データストアにおけるプライベートデータアイテムは、データのタイプおよびサーバにより提供されたサービスに関連付けられる複数の命令を任意選択で含み得る。
例6において、例1〜5のいずれか1つの主題は、クライアントデバイス、クライアントデバイスのユーザおよびクライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも1つに関連付けられる、データストアにおけるプライベートデータアイテムを任意選択で含み得る。
例7において、例1〜6のいずれか1つの主題は、パスワードであるプライベートデータアイテムを任意選択で含み得る。
例8において、例1〜7のいずれか1つの主題は、許可情報が有効でない場合に、サーバに提供されないプライベートデータアイテムを任意選択で含み得る。
例9において、例1〜8のいずれか1つの主題は、ハイパーテキストマークアップ言語(HTML)ウェブページであるオブジェクトを任意選択で含み得る。
例10において、例9の主題は、少なくとも1つのプロセッサにより実行されると、少なくとも1つのプロセッサに更に、プライベートデータアイテムをデータストアから取得させ、
有効な許可情報が受信されたときに、プライベートデータアイテムをHTMLウェブページに挿入することによりHTMLウェブページを完成させ、完成されたHTMLウェブページに基づいて、サーバに応答を送信させる命令を任意選択で含み得る。
例11において、例1〜10のいずれか1つの主題は、複数のセットの1または複数のプライベートデータアイテムを含むデータストアを任意選択で含み得、複数のセットは、各々、複数のサービスに関連付けられる。
例12において、例1〜10のいずれか1つの主題は、複数のセットのデータを含むプロキシを任意選択で含み得、複数のセットのデータの各々は、少なくとも1つのネットワークエージェントに関連付けられ、データの各セットは、少なくとも1つのプライベートデータアイテムの1または複数のセットを含み、特定のセットのデータにおける少なくとも1つのプライベートデータアイテムの1または複数のセットは、各々、複数の異なるサービスに関連付けられる。
例13において、例1〜12のいずれか1つの主題は、ユーザがブラウザを介してサーバにアクセスすることを可能にするように構成されたコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたクライアントアプリケーションを含むコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたエンベデッドコントローラとを含む複数のクライアントデバイスの群から選択されるクライアントデバイスを任意選択で含み得る。
例14において、例1〜13のいずれか1つの主題は、少なくとも1つのプロセッサにより実行されると、少なくとも1つのプロセッサに更に、サーバからクライアントデバイスへの途中で別のネットワークフローを止めさせ、サーバにより提供された特定のサービスに関連する1または複数の特定のプライベートデータアイテムに対応する1または複数のクレデンシャルを変更する要求を識別させ、ネットワークフローをクライアントデバイスに転送することなく、1または複数の新しいクレデンシャルを選択させ、1または複数の新しいクレデンシャルを用いて、データストアにおける1または複数の特定のプライベートデータアイテムを更新させる複数の命令を任意選択で含み得る。
例15において、例1〜14のいずれか1つの主題は、信頼できる実行環境においてクライアントデバイス上での実行のために構成される複数の命令を任意選択で含み得る。
例16において、例1〜14のいずれか1つの主題は、クライアントデバイスとは別個のプロキシにおいて実装される少なくとも1つの機械可読ストレージ媒体を任意選択で含み得る。
例17は、データを保護する装置であって、少なくとも1つのメモリ素子と、少なくとも1つのメモリ素子に結合された少なくとも1つのプロセッサと、少なくとも1つのプロセッサにより実行されると、ネットワークフローがサーバからクライアントデバイスへの途中にある場合に、装置により止められたネットワークフローのオブジェクトにおけるプライベートデータアイテムに対する要求を識別し、データストアにおけるプライベートデータアイテムを識別し、クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供するように構成された変更モジュールと、少なくとも1つのプロセッサにより実行されると、有効な許可情報が受信される場合に、プライベートデータアイテムをサーバに送信するように構成された応答モジュールとを備える装置である。
例18において、例17の主題は、許可情報をクライアントデバイスから受信し、許可情報が有効であるか否かを判断し、許可情報が有効であると判断された場合にプライベートデータアイテムを取得するように更に構成される応答モジュールを任意選択で含み得る。
例19において、例17〜18のいずれか1つの主題は、プライベートデータアイテムのためのアンロックメカニズムを決定し、アンロックメカニズムに少なくとも部分的に基づいて、許可要求を含む変更済みオブジェクトを作成するように更に構成される変更モジュールを任意選択で含み得る。
例20において、例19の主題は、ワンタイムパスワード、ユーザのバイオメトリック識別および多因子認証処理を含む複数のアンロックメカニズムの群から選択されるアンロックメカニズムを任意選択で含み得る。
例21において、例17〜20のいずれか1つの主題は、プライベートデータアイテムに対する要求により示されたデータのタイプを判断するように更に構成された変更モジュールを任意選択で含み得、データストアにおけるプライベートデータアイテムは、データのタイプおよびサーバにより提供されたサービスに関連付けられる。
例22において、例17〜21のいずれか1つの主題は、クライアントデバイス、クライアントデバイスのユーザおよびクライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも1つに関連付けられる、データストアにおけるプライベートデータアイテムを任意選択で含み得る。
例23において、例17〜22のいずれか1つの主題は、パスワードであるプライベートデータアイテムを任意選択で含み得る。
例24において、例17〜23のいずれか1つの主題は、許可情報が有効でない場合に、サーバに提供されないプライベートデータアイテムを任意選択で含み得る。
例25において、例17〜24のいずれか1つの主題は、ハイパーテキストマークアップ言語(HTML)ウェブページであるオブジェクトを任意選択で含み得る。
例26において、例25の主題は、有効な許可情報が受信された場合に、プライベートデータアイテムをデータストアから取得し、有効な許可情報が受信された場合に、プライベートデータアイテムをHTMLウェブページに挿入することによりHTMLウェブページを完成させ、完成されたHTMLウェブページに基づいて、サーバに応答を送信するように更に構成された応答モジュールを任意選択で含み得る。
例27において、例17〜26のいずれか1つの主題は、複数のセットの1または複数のプライベートデータアイテムを含むデータストアを任意選択で含み得、複数のセットは、各々、複数のサービスに関連付けられる。
例28において、例17〜26のいずれか1つの主題は、複数のセットのデータを含むプロキシを任意選択で含み得、複数のセットのデータの各セットは、少なくとも1つのネットワークエージェントに関連付けられ、データの各セットは、少なくとも1つのプライベートデータアイテムの1または複数のセットを含み、特定のセットのデータにおける少なくとも1つのプライベートデータアイテムの1または複数のセットは、各々、複数の異なるサービスに関連付けられる。
例29において、例17〜28のいずれか1つの主題は、ユーザがブラウザを介してサーバにアクセスすることを可能にするように構成されたコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたクライアントアプリケーションを含むコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたエンベデッドコントローラとを含む複数のクライアントデバイスの群から選択されるクライアントデバイスを任意選択で含み得る。
例30において、例17〜29のいずれか1つの主題は、サーバからクライアントデバイスへの途中で別のネットワークフローを止め、サーバにより提供された特定のサービスに関連する1または複数の特定のプライベートデータアイテムに対応する1または複数のクレデンシャルを変更する要求を識別し、ネットワークフローをクライアントデバイスに転送することなく、1または複数の新しいクレデンシャルを選択し、1または複数の新しいクレデンシャルを用いて、データストアにおける1または複数の特定のプライベートデータアイテムを更新するように更に構成された変更モジュールを任意選択で含み得る。
例31において、例17〜30のいずれか1つの主題は、任意選択でクライアントデバイスを更に有する装置を備え、クライアントデバイスは、信頼できる実行環境を含み、変更モジュールおよび応答モジュールは、信頼できる実行環境のみにおいて実行される。
例32において、例17〜30のいずれか1つの主題は、前記クライアントデバイスとは別個のプロキシである装置を任意選択で含み得る。
例33は、プライベートデータを保護する方法であって、サーバからクライアントデバイスへの途中でネットワークフローをプロキシにより止める段階と、ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する段階と、データストアにおけるプライベートデータアイテムを識別する段階と、クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供させて、有効な許可情報が受信されたときに、プライベートデータアイテムをサーバに送信する段階とを備える、方法である。
例34において、例33の主題は、クライアントデバイスから許可情報を受信する段階と、許可情報が有効か否かを判断する段階と、許可情報が有効であると判断された場合に、プライベートデータアイテムを取得する段階とを任意選択で含み得る。
例35において、例33−34のいずれか1つの主題は、プライベートデータアイテムのためのアンロックメカニズムを決定する段階と、アンロックメカニズムに少なくとも部分的に基づいて、許可要求を含む変更済みオブジェクトを作成する段階とを任意選択で含み得る。
例36において、例35の主題は、ワンタイムパスワード、ユーザのバイオメトリック識別および多因子認証処理を含む複数のアンロックメカニズムの群から選択されるアンロックメカニズムを任意選択で含み得る。
例37において、例33〜36のいずれか1つの主題は、プライベートデータアイテムに対する要求により示されたデータのタイプを判断するように更に構成された変更モジュールを任意選択で含み得、データストアにおけるプライベートデータアイテムは、データのタイプおよびサーバにより提供されたサービスに関連付けられる。
例38において、例33〜37のいずれか1つの主題は、クライアントデバイス、クライアントデバイスのユーザおよびクライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも1つに関連付けられる、データストアにおけるプライベートデータアイテムを任意選択で含み得る。
例39において、例33〜38のいずれか1つの主題は、パスワードであるプライベートデータアイテムを任意選択で含み得る。
例40において、例33〜39のいずれか1つの主題は、許可情報が有効でない場合に、サーバに提供されないプライベートデータアイテムを任意選択で含み得る。
例41において、例33−40のいずれか1つの主題は、ハイパーテキストマークアップ言語(HTML)ウェブページであるオブジェクトを任意選択で含み得る。
例42において、例41の主題は、有効な許可情報が受信された場合に、プライベートデータアイテムをデータストアから取得する段階と、有効な許可情報が受信された場合に、プライベートデータアイテムをHTMLウェブページに挿入することによりHTMLウェブページを完成させる段階と、完成されたHTMLウェブページに基づいて、サーバに応答を送信する段階とを任意選択で含み得る。
例43において、例33〜42のいずれか1つの主題は、複数のセットの1または複数のプライベートデータアイテムを含むデータストアを任意選択で含み得、複数のセットは、各々、複数のサービスに関連付けられる。
例44において、例33〜42のいずれか1つの主題は、複数のセットのデータを含むプロキシを任意選択で含み得、複数のセットのデータの各セットは、少なくとも1つのネットワークエージェントに関連付けられ、データの各セットは、少なくとも1つのプライベートデータアイテムの1または複数のセットを含み、特定のセットのデータにおける少なくとも1つのプライベートデータアイテムの1または複数のセットは、各々、複数の異なるサービスに関連付けられる。
例45において、例33〜44のいずれか1つの主題は、ユーザがブラウザを介してサーバにアクセスすることを可能にするように構成されたコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたクライアントアプリケーションを含むコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたエンベデッドコントローラとを含む複数のクライアントデバイスの群から選択されるクライアントデバイスを任意選択で含み得る。
例46において、例33〜45のいずれか1つの主題は、サーバからクライアントデバイスへの途中で別のネットワークフローを止める段階と、サーバにより提供された特定のサービスに関連する1または複数の特定のプライベートデータアイテムに対応する1または複数のクレデンシャルを変更する要求を識別する段階と、ネットワークフローをクライアントデバイスに転送することなく、1または複数の新しいクレデンシャルを選択する段階と、1または複数の新しいクレデンシャルを用いて、データストアにおける1または複数の特定のプライベートデータアイテムを更新する段階とを任意選択で含み得る。
例47において、例33−46のいずれか1つの主題は、プライベートデータアイテムに対する要求を識別する段階と、データストアにおけるプライベートデータアイテムを識別する段階と、信頼できる実行環境において、クライアントデバイス上で実行されるクライアントデバイスに変更済みオブジェクトを提供する段階とを任意選択で含み得る。
例48において、例33〜46のいずれか1つの主題は、クライアントデバイスとは別個のプロキシを任意選択で含み得る。
例49は、プライベートデータを保護する装置であり、装置は、例33〜48のいずれか1つの方法を実行する手段を備える。
例50において、例49の主題は、少なくとも1つのプロセッサと、少なくとも1つのメモリ素子を有する方法を実行する手段を任意選択で含み得る。
例51において、例50の主題は、実行されると、装置に例33〜48のいずれか1つの方法を実行させる複数の機械可読命令を有する少なくとも1つのメモリ素子を任意選択で備え得る。
例52において、例49〜51のいずれか1つの主題は、コンピューティングデバイスである装置を任意選択で備え得る。
例53は、プライベートデータを保護する複数の命令を備える少なくとも1つの機械可読ストレージ媒体であり、複数の命令は、実行されると、例17〜48のいずれか1つに列記された方法もしくは装置を実装もしくは実現する。
例54は、プライベートデータを保護する装置であって、装置は、サーバからクライアントデバイスへの途中でネットワークフローをプロキシにより止めるための手段と、ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別するための手段と、データストアにおけるプライベートデータアイテムを識別するための手段と、クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供するための手段と、有効な許可情報が受信されたときに、プライベートデータアイテムをサーバに送信するための手段とを備える。
(項目1)
プライベートデータを保護するべく、複数の命令が格納された少なくとも1つの機械可読ストレージ媒体であって、
上記複数の命令は、少なくとも1つのプロセッサにより実行されると、上記少なくとも1つのプロセッサに、
サーバからクライアントデバイスへの途中でネットワークフローを止めさせ、
上記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別し、
データストアにおける上記プライベートデータアイテムを識別させ、
上記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供させ、
有効な許可情報が受信されたときに、上記プライベートデータアイテムを上記サーバに送信させる、少なくとも1つの機械可読ストレージ媒体。
(項目2)
上記複数の命令は、上記少なくとも1つのプロセッサにより実行されると、上記少なくとも1つのプロセッサに更に、
上記クライアントデバイスから許可情報を受信させ、
上記許可情報が有効か否かを判断させ、
上記許可情報が有効であると判断された場合に、上記プライベートデータアイテムを取得させる、項目1に記載の少なくとも1つの機械可読ストレージ媒体。
(項目3)
上記複数の命令は、上記少なくとも1つのプロセッサにより実行されると、上記少なくとも1つのプロセッサに更に、
上記プライベートデータアイテムのためのアンロックメカニズムを決定させ、
上記アンロックメカニズムに少なくとも部分的に基づいて、上記許可要求を含む上記変更済みオブジェクトを作成させる、項目1に記載の少なくとも1つの機械可読ストレージ媒体。
(項目4)
上記アンロックメカニズムは、ワンタイムパスワード、ユーザのバイオメトリック識別および多因子認証処理を含む複数のアンロックメカニズムの群から選択される、項目3に記載の少なくとも1つの機械可読ストレージ媒体。
(項目5)
上記複数の命令は、上記少なくとも1つのプロセッサにより実行されると、上記少なくとも1つのプロセッサに更に、
上記プライベートデータアイテムの上記要求により示されたデータのタイプを判断させ、
上記データストアにおける上記プライベートデータアイテムは、データの上記タイプおよび上記サーバにより提供されたサービスに関連付けられる、項目1に記載の少なくとも1つの機械可読ストレージ媒体。
(項目6)
上記データストアにおける上記プライベートデータアイテムは、上記クライアントデバイス、上記クライアントデバイスのユーザ、および上記クライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも1つに関連付けられる、項目1に記載の少なくとも1つの機械可読ストレージ媒体。
(項目7)
上記プライベートデータアイテムは、パスワードである、項目1に記載の少なくとも1つの機械可読ストレージ媒体。
(項目8)
上記プライベートデータアイテムは、上記許可情報が有効でない場合に、上記サーバに提供されない、項目1に記載の少なくとも1つの機械可読ストレージ媒体。
(項目9)
上記オブジェクトは、ハイパーテキストマークアップ言語(HTML)ウェブページである、項目1に記載の少なくとも1つの機械可読ストレージ媒体。
(項目10)
上記複数の命令は、上記少なくとも1つのプロセッサにより実行されると、上記少なくとも1つのプロセッサに更に、
上記プライベートデータアイテムを上記データストアから取得させ、
上記有効な許可情報が受信されたときに、上記プライベートデータアイテムを上記HTMLウェブページに挿入することにより上記HTMLウェブページを完成させ、
上記完成されたHTMLウェブページに基づいて、上記サーバに応答を送信させる、項目9に記載の少なくとも1つの機械可読ストレージ媒体。
(項目11)
上記データストアは、複数のセットの1または複数のプライベートデータアイテムを含み、
上記複数のセットは、各々、複数のサービスに関連付けられる、項目1〜10のいずれか一項に記載の少なくとも1つの機械可読ストレージ媒体。
(項目12)
プロキシは、複数のセットのデータを含み、
上記複数のセットのデータの各セットは、少なくとも1つのネットワークエージェントに関連付けられ、
データの各セットは、少なくとも1つのプライベートデータアイテムの1または複数のセットを含み、
特定のセットのデータにおける上記少なくとも1つのプライベートデータアイテムの1または複数のセットは、各々、複数の異なるサービスに関連付けられる、項目1〜10のいずれか一項に記載の少なくとも1つの機械可読ストレージ媒体。
(項目13)
上記クライアントデバイスは、
ユーザがブラウザを介して上記サーバにアクセスすることを可能にするように構成されたコンピューティングデバイスと、
上記サーバにより提供されたサービスを自動的に認証するように構成されたクライアントアプリケーションを含むコンピューティングデバイスと、
上記サーバにより提供された上記サービスを自動的に認証するように構成されたエンベデッドコントローラとを含む複数のクライアントデバイスの群から選択される、項目1〜10のいずれか一項に記載の少なくとも1つの機械可読ストレージ媒体。
(項目14)
上記複数の命令は、上記少なくとも1つのプロセッサにより実行されると、上記少なくとも1つのプロセッサに更に、
上記サーバから上記クライアントデバイスへの途中で別のネットワークフローを止めさせ、
上記サーバにより提供された特定のサービスに関連する1または複数の特定のプライベートデータアイテムに対応する1または複数のクレデンシャルを変更する要求を識別させ、
上記ネットワークフローを上記クライアントデバイスに転送することなく、1または複数の新しいクレデンシャルを選択させ、
上記1または複数の新しいクレデンシャルを用いて、上記データストアにおける上記1または複数の特定のプライベートデータアイテムを更新させる、項目1〜10のいずれか一項に記載の少なくとも1つの機械可読ストレージ媒体。
(項目15)
上記複数の命令は、信頼できる実行環境において上記クライアントデバイス上での実行のために構成される、項目1〜10のいずれか一項に記載の少なくとも1つの機械可読ストレージ媒体。
(項目16)
上記少なくとも1つの機械可読ストレージ媒体は、上記クライアントデバイスとは別個のプロキシにおいて実装される、項目1〜10のいずれか一項に記載の少なくとも1つの機械可読ストレージ媒体。
(項目17)
データを保護する装置であって、
少なくとも1つのメモリ素子と、
上記少なくとも1つのメモリ素子に結合された少なくとも1つのプロセッサと、
上記少なくとも1つのプロセッサにより実行されると、
ネットワークフローがサーバからクライアントデバイスへの途中にある場合に、上記装置により止められた上記ネットワークフローのオブジェクトにおけるプライベートデータアイテムに対する要求を識別し、
データストアにおける上記プライベートデータアイテムを識別し、
上記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供するように構成された変更モジュールと、
少なくとも1つのプロセッサにより実行されると、有効な許可情報が受信される場合に、上記プライベートデータアイテムを上記サーバに送信するように構成された応答モジュールとを備える装置。
(項目18)
上記応答モジュールは更に、
許可情報を上記クライアントデバイスから受信し、
上記許可情報が有効であるか否かを判断し、
上記許可情報が有効であると判断された場合に、上記プライベートデータアイテムを取得するように構成される、項目17に記載の装置。
(項目19)
上記変更モジュールは更に、
上記プライベートデータアイテムのためのアンロックメカニズムを決定し、
上記アンロックメカニズムに少なくとも部分的に基づいて、上記許可要求を含む上記変更済みオブジェクトを作成するように構成される、項目17に記載の装置。
(項目20)
上記変更モジュールは更に、
上記プライベートデータアイテムに対する上記要求により示されたデータのタイプを判断するように構成され、
上記データストアにおける上記プライベートデータアイテムは、データの上記タイプおよび上記サーバにより提供されたサービスに関連付けられる、項目17に記載の装置。
(項目21)
上記クライアントデバイスを更に備え、
上記クライアントデバイスは、信頼できる実行環境を含み、
上記変更モジュールおよび上記応答モジュールは、上記信頼できる実行環境のみにおいて実行される、項目17〜20のいずれか一項に記載の装置。
(項目22)
上記装置は、上記クライアントデバイスとは別個のプロキシである、項目17〜20のいずれか一項に記載の装置。
(項目23)
プライベートデータを保護する方法であって、
サーバからクライアントデバイスへの途中でネットワークフローをプロキシにより止める段階と、
上記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する段階と、
データストアにおける上記プライベートデータアイテムを識別する段階と、
上記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する段階と、
有効な許可情報が受信されたときに、上記プライベートデータアイテムを上記サーバに送信する段階とを備える、方法。
(項目24)
上記データストアにおける上記プライベートデータアイテムは、上記クライアントデバイス、上記クライアントデバイスのユーザ、および上記クライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも1つに関連付けられる、項目23に記載の方法。
(項目25)
上記データストアは、複数のセットの1または複数のプライベートデータアイテムを含み、
上記複数のセットは、各々、複数のサービスに関連付けられる、項目23または24に記載の方法。