(57)【要約】      （修正有）【課題】プライベートデータを保護するセキュアプロキシを提供する。【解決手段】サーバからクライアントデバイスへの途中で、ネットワークフローのオブジェクトにおけるプライベートデータアイテムに対する要求を識別し、データストアにおけるプライベートデータアイテムを識別し、クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供し、有効な許可情報が受信される場合に、プライベートデータアイテムをサーバに送信する。許可情報をクライアントデバイスから受信し、許可情報が有効か否かを判断し、許可情報が有効であると判断された場合にプライベートデータアイテムを取得するように構成される。プライベートデータアイテムに対するアンロックメカニズムを決定し、アンロックメカニズムに少なくとも部分的に基づいて、許可要求を含む変更済みオブジェクトを作成するように構成される。【選択図】図３
2018067327.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
サーバからクライアントデバイスへの途中でネットワークフローを止める手順と、
前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する手順と、
データストアにおける前記プライベートデータアイテムを識別する手順と、
前記クライアントデバイスに、前記プライベートデータアイテムを前記サーバに提供することに対する許可要求を含む変更済みオブジェクトを提供する手順と、
前記クライアントデバイスから前記許可要求に対する有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記サーバに送信する手順とを実行させる、プログラム。
【請求項２】
前記コンピュータに、
前記クライアントデバイスから許可情報を受信する手順と、
前記許可情報が有効か否かを判断する手順と、
前記許可情報が有効であると判断された場合に、前記プライベートデータアイテムを取得する手順とを更に実行させる、請求項１に記載のプログラム。
【請求項３】
前記コンピュータに、
前記プライベートデータアイテムのためのアンロックメカニズムを決定する手順と、
前記アンロックメカニズムに少なくとも部分的に基づいて、前記許可要求を含む前記変更済みオブジェクトを作成する手順とを更に実行させる、請求項１に記載のプログラム。
【請求項４】
前記アンロックメカニズムは、ワンタイムパスワード、ユーザのバイオメトリック識別および多因子認証処理を含む複数のアンロックメカニズムの群から選択される、請求項３に記載のプログラム。
【請求項５】
前記コンピュータに、
前記プライベートデータアイテムの前記要求により示されたデータのタイプを判断する手順を更に実行させ、
前記データストアにおける前記プライベートデータアイテムは、データの前記タイプおよび前記サーバにより提供されたサービスに関連付けられる、請求項１に記載のプログラム。
【請求項６】
前記データストアにおける前記プライベートデータアイテムは、前記クライアントデバイス、前記クライアントデバイスのユーザ、および前記クライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも１つに関連付けられる、請求項１に記載のプログラム。
【請求項７】
前記プライベートデータアイテムは、パスワードである、請求項１に記載のプログラム。
【請求項８】
前記プライベートデータアイテムは、前記許可情報が有効でない場合に、前記サーバに提供されない、請求項１に記載のプログラム。
【請求項９】
前記オブジェクトは、ハイパーテキストマークアップ言語ウェブページ（ＨＴＭＬウェブページ）である、請求項１に記載のプログラム。
【請求項１０】
前記コンピュータに、
前記プライベートデータアイテムを前記データストアから取得する手順と、
前記有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記ＨＴＭＬウェブページに挿入することにより前記ＨＴＭＬウェブページを完成する手順と、
前記完成されたＨＴＭＬウェブページに基づいて、前記サーバに応答を送信する手順とを更に実行させる、請求項９に記載のプログラム。
【請求項１１】
前記データストアは、複数のセットの１または複数のプライベートデータアイテムを含み、
前記複数のセットは、各々、複数のサービスに関連付けられる、請求項１〜１０のいずれか一項に記載のプログラム。
【請求項１２】
プロキシは、複数のセットのデータを含み、
前記複数のセットのデータの各セットは、少なくとも１つのネットワークエージェントに関連付けられ、
データの各セットは、少なくとも１つのプライベートデータアイテムの１または複数のセットを含み、
特定のセットのデータにおける前記少なくとも１つのプライベートデータアイテムの１または複数のセットは、各々、複数の異なるサービスに関連付けられる、請求項１〜１０のいずれか一項にプログラム。
【請求項１３】
前記クライアントデバイスは、
ユーザがブラウザを介して前記サーバにアクセスすることを可能にするコンピューティングデバイスと、
前記サーバにより提供されたサービスを自動的に認証するクライアントアプリケーションを含むコンピューティングデバイスと、
前記サーバにより提供された前記サービスを自動的に認証するエンベデッドコントローラとを含む複数のクライアントデバイスの群から選択される、請求項１〜１０のいずれか一項に記載のプログラム。
【請求項１４】
前記コンピュータに、
前記サーバから前記クライアントデバイスへの途中で別のネットワークフローを止める段階と、
前記サーバにより提供された特定のサービスに関連する１または複数の特定のプライベートデータアイテムに対応する１または複数のクレデンシャルを変更する要求を識別する段階と、
前記ネットワークフローを前記クライアントデバイスに転送することなく、１または複数の新しいクレデンシャルを選択する段階と、
前記１または複数の新しいクレデンシャルを用いて、前記データストアにおける前記１または複数の特定のプライベートデータアイテムを更新する段階とを更に実行させる、請求項１〜１０のいずれか一項に記載のプログラム。
【請求項１５】
複数の命令は、信頼できる実行環境において前記クライアントデバイス上で実行される、請求項１〜１０のいずれか一項に記載のプログラム。
【請求項１６】
前記プログラムは、前記クライアントデバイスとは別個のプロキシにおいて実装される、請求項１〜１０のいずれか一項に記載のプログラム。
【請求項１７】
データを保護する装置であって、
少なくとも１つのメモリ素子と、
前記少なくとも１つのメモリ素子に結合された少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行されると、
ネットワークフローがサーバからクライアントデバイスへの途中にある場合に、前記装置により止められた前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムに対する要求を識別し、
データストアにおける前記プライベートデータアイテムを識別し、
前記クライアントデバイスに、前記プライベートデータアイテムを前記サーバに提供することに対する許可要求を含む変更済みオブジェクトを提供する変更モジュールと、
少なくとも１つのプロセッサにより実行されると、前記クライアントデバイスから前記許可要求に対する有効な許可情報が受信される場合に、前記プライベートデータアイテムを前記サーバに送信する応答モジュールとを備える、装置。
【請求項１８】
前記応答モジュールは更に、
許可情報を前記クライアントデバイスから受信し、
前記許可情報が有効であるか否かを判断し、
前記許可情報が有効であると判断された場合に、前記プライベートデータアイテムを取得する、請求項１７に記載の装置。
【請求項１９】
前記変更モジュールは更に、
前記プライベートデータアイテムのためのアンロックメカニズムを決定し、
前記アンロックメカニズムに少なくとも部分的に基づいて、前記許可要求を含む前記変更済みオブジェクトを作成する、請求項１７に記載の装置。
【請求項２０】
前記変更モジュールは更に、
前記プライベートデータアイテムに対する前記要求により示されたデータのタイプを判断し、
前記データストアにおける前記プライベートデータアイテムは、データの前記タイプおよび前記サーバにより提供されたサービスに関連付けられる、請求項１７に記載の装置。
【請求項２１】
前記クライアントデバイスを更に備え、
前記クライアントデバイスは、信頼できる実行環境を含み、
前記変更モジュールおよび前記応答モジュールは、前記信頼できる実行環境のみにおいて実行される、請求項１７〜２０のいずれか一項に記載の装置。
【請求項２２】
前記装置は、前記クライアントデバイスとは別個のプロキシである、請求項１７〜２０のいずれか一項に記載の装置。
【請求項２３】
プライベートデータを保護する方法であって、
サーバからクライアントデバイスへの途中でネットワークフローをプロキシにより止める段階と、
前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する段階と、
データストアにおける前記プライベートデータアイテムを識別する段階と、
前記クライアントデバイスに、前記プライベートデータアイテムを前記サーバに提供することに対する許可要求を含む変更済みオブジェクトを提供する段階と、
前記クライアントデバイスから前記許可要求に対する有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記サーバに送信する段階とを備える、方法。
【請求項２４】
前記データストアにおける前記プライベートデータアイテムは、前記クライアントデバイス、前記クライアントデバイスのユーザ、および前記クライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも１つに関連付けられる、請求項２３に記載の方法。
【請求項２５】
前記データストアは、複数のセットの１または複数のプライベートデータアイテムを含み、
前記複数のセットは、各々、複数のサービスに関連付けられる、請求項２３または２４に記載の方法。
【請求項２６】
コンピュータに、
サーバからクライアントデバイスへの途中でネットワークフローを止める手順と、
前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する手順と、
データストアにおける前記プライベートデータアイテムを識別する手順と、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する手順と、
有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記サーバに送信する手順と、
前記プライベートデータアイテムのためのアンロックメカニズムを決定する手順と、
前記アンロックメカニズムに少なくとも部分的に基づいて、前記許可要求を含む前記変更済みオブジェクトを作成する手順とを実行させる、プログラム。
【請求項２７】
コンピュータに、
サーバからクライアントデバイスへの途中でネットワークフローを止める手順と、
前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する手順と、
データストアにおける前記プライベートデータアイテムを識別する手順と、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する手順と、
有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記サーバに送信する手順と、
前記プライベートデータアイテムの前記要求により示されたデータのタイプを判断する手順とを実行させ、
前記データストアにおける前記プライベートデータアイテムは、データの前記タイプおよび前記サーバにより提供されたサービスに関連付けられる、プログラム。
【請求項２８】
コンピュータに、
サーバからクライアントデバイスへの途中でネットワークフローを止める手順と、
前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する手順であり、前記オブジェクトはハイパーテキストマークアップ言語ウェブページ（ＨＴＭＬウェブページ）である、手順と、
データストアにおける前記プライベートデータアイテムを識別する手順と、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する手順と、
有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記サーバに送信する手順と、
前記プライベートデータアイテムを前記データストアから取得する手順と、
前記有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記ＨＴＭＬウェブページに挿入することにより前記ＨＴＭＬウェブページを完成する手順と、
前記完成されたＨＴＭＬウェブページに基づいて、前記サーバに応答を送信する手順とを実行させる、プログラム。
【請求項２９】
コンピュータに、
サーバからクライアントデバイスへの途中でネットワークフローを止める手順と、
前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する手順と、
データストアにおける前記プライベートデータアイテムを識別する手順と、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する手順と、
有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記サーバに送信する手順とを実行させ、
前記データストアは、複数のセットの１または複数のプライベートデータアイテムを含み、
前記複数のセットは、各々、複数のサービスに関連付けられる、プログラム。
【請求項３０】
コンピュータに、
サーバからクライアントデバイスへの途中でネットワークフローを止める手順と、
前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する手順と、
データストアにおける前記プライベートデータアイテムを識別する手順と、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する手順と、
有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記サーバに送信する手順とを実行させ、
プロキシは、複数のセットのデータを含み、
前記複数のセットのデータの各セットは、少なくとも１つのネットワークエージェントに関連付けられ、
データの各セットは、少なくとも１つのプライベートデータアイテムの１または複数のセットを含み、
特定のセットのデータにおける前記少なくとも１つのプライベートデータアイテムの１または複数のセットは、各々、複数の異なるサービスに関連付けられる、プログラム。
【請求項３１】
コンピュータに、
サーバからクライアントデバイスへの途中でネットワークフローを止める手順と、
前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する手順と、
データストアにおける前記プライベートデータアイテムを識別する手順と、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する手順と、
有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記サーバに送信する手順とを実行させ、
前記クライアントデバイスは、
ユーザがブラウザを介して前記サーバにアクセスすることを可能にするコンピューティングデバイスと、
前記サーバにより提供されたサービスを自動的に認証するクライアントアプリケーションを含むコンピューティングデバイスと、
前記サーバにより提供された前記サービスを自動的に認証するエンベデッドコントローラとを含む複数のクライアントデバイスの群から選択される、プログラム。
【請求項３２】
コンピュータに、
サーバからクライアントデバイスへの途中でネットワークフローを止める手順と、
前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する手順と、
データストアにおける前記プライベートデータアイテムを識別する手順と、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する手順と、
有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記サーバに送信する手順と、
前記サーバから前記クライアントデバイスへの途中で別のネットワークフローを止める手順と、
前記サーバにより提供された特定のサービスに関連する１または複数の特定のプライベートデータアイテムに対応する１または複数のクレデンシャルを変更する要求を識別する手順と、
前記ネットワークフローを前記クライアントデバイスに転送することなく、１または複数の新しいクレデンシャルを選択する手順と、
前記１または複数の新しいクレデンシャルを用いて、前記データストアにおける前記１または複数の特定のプライベートデータアイテムを更新する手順とを実行させる、プログラム。
【請求項３３】
データを保護する装置であって、
少なくとも１つのメモリ素子と、
前記少なくとも１つのメモリ素子に結合された少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行されると、
ネットワークフローがサーバからクライアントデバイスへの途中にある場合に、前記装置により止められた前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムに対する要求を識別し、
データストアにおける前記プライベートデータアイテムを識別し、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供し、
前記プライベートデータアイテムのためのアンロックメカニズムを決定し、
前記アンロックメカニズムに少なくとも部分的に基づいて、前記許可要求を含む前記変更済みオブジェクトを作成する変更モジュールと、
少なくとも１つのプロセッサにより実行されると、有効な許可情報が受信される場合に、前記プライベートデータアイテムを前記サーバに送信する応答モジュールとを備える装置。
【請求項３４】
データを保護する装置であって、
少なくとも１つのメモリ素子と、
前記少なくとも１つのメモリ素子に結合された少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行されると、
ネットワークフローがサーバからクライアントデバイスへの途中にある場合に、前記装置により止められた前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムに対する要求を識別し、
データストアにおける前記プライベートデータアイテムを識別し、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供し、
前記プライベートデータアイテムに対する前記要求により示されたデータのタイプを判断する変更モジュールと、
少なくとも１つのプロセッサにより実行されると、有効な許可情報が受信される場合に、前記プライベートデータアイテムを前記サーバに送信する応答モジュールとを備え、
前記データストアにおける前記プライベートデータアイテムは、データの前記タイプおよび前記サーバにより提供されたサービスに関連付けられる、装置。
【請求項３５】
データを保護する装置であって、
少なくとも１つのメモリ素子と、
前記少なくとも１つのメモリ素子に結合された少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行されると、
ネットワークフローがサーバからクライアントデバイスへの途中にある場合に、前記装置により止められた前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムに対する要求を識別し、
データストアにおける前記プライベートデータアイテムを識別し、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する変更モジュールと、
少なくとも１つのプロセッサにより実行されると、有効な許可情報が受信される場合に、前記プライベートデータアイテムを前記サーバに送信する応答モジュールと、
信頼できる実行環境を含む前記クライアントデバイスとを備え、
前記変更モジュールおよび前記応答モジュールは、前記信頼できる実行環境のみにおいて実行される、装置。
【請求項３６】
データを保護する装置であって、
少なくとも１つのメモリ素子と、
前記少なくとも１つのメモリ素子に結合された少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行されると、
ネットワークフローがサーバからクライアントデバイスへの途中にある場合に、前記装置により止められた前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムに対する要求を識別し、
データストアにおける前記プライベートデータアイテムを識別し、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する変更モジュールと、
少なくとも１つのプロセッサにより実行されると、有効な許可情報が受信される場合に、前記プライベートデータアイテムを前記サーバに送信する応答モジュールとを備え、
前記装置は、前記クライアントデバイスとは別個のプロキシである、装置。
【請求項３７】
プライベートデータを保護する方法であって、
サーバからクライアントデバイスへの途中でネットワークフローをプロキシにより止める段階と、
前記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する段階と、
データストアにおける前記プライベートデータアイテムを識別する段階と、
前記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する段階と、
有効な許可情報が受信されたときに、前記プライベートデータアイテムを前記サーバに送信する段階とを備え、
前記データストアは、複数のセットの１または複数のプライベートデータアイテムを含み、
前記複数のセットは、各々、複数のサービスに関連付けられる、方法。
【請求項３８】
請求項１〜１６及び２６〜３２のいずれか一項に記載のプログラムを格納した、少なくとも１つの機械可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概ねコンピュータネットワークのセキュリティの分野に関し、より具体的には、プライベートデータを保護するセキュアプロキシの提供に関する。
【背景技術】
【０００２】
コンピュータセキュリティの分野は、現在の社会にとり、ますます重要になってきている。毎日、世界中のユーザは、様々なタイプのクライアントデバイスを動作させてインターネットを閲覧する。クライアントデバイスは、様々なパブリックおよび／またはプライベートネットワークを介してインターネットにアクセスするべく、ソフトウェア（例えばウェブブラウザ）を用いて構成され得る。クライアントデバイスによりインターネットへのアクセスを提供するネットワークは多く、例えば、私企業のネットワーク、ホームネットワーク、事業所において提供されるパブリックネットワーク、セルラー通信ネットワーク、学校もしくはキャンパスネットワーク等が挙げられ得る。
【０００３】
クライアントデバイスを介してインターネットを閲覧する場合に情報のプライバシーおよびセキュリティを維持することは、重要な懸案事項である。多くの場合、クライアントデバイスのユーザは、インターネットを介して複数のウェブサーバまたは他のシステムにアクセスする場合、クライアントデバイスのユーザインターフェースを介してプライベートデータを提供する。具体的には、一定の悪意のソフトウェア（「マルウェア）は、インターネットにアクセスするべくブラウザを介するユーザにより入力されるプライベートデータをターゲットとする。そのようなマルウェアは、ブラウザ内のプライベートデータを止めてデータを盗むように構成され得る。また、マルウェアは、ネットワークを介して提供される複数のサービスを自動的に認証するエンベデッドデバイス、クライアントアプリケーションおよびパスワードマネージャにより提供される認証クレデンシャル等のプライベートデータを止めるようにも構成され得る。盗まれる具体的なデータに応じて、任意の数の許可されない、更には違法でさえあるアクティビティが企てられ得る。従って、ネットワークセキュリティの管理者および類似の個々人は、プライベートデータをクライアントデバイスから悪用しようとする悪意の人からクライアントデバイスを保護する上で重大な試練に直面している。
【図面の簡単な説明】
【０００４】
本開示、ならびにその機能および利点のより完全な理解を提供するべく、添付の図と併せて以下の説明を参照する。同一の参照番号は、同一の部分を表す。
【０００５】
【図１】本開示の一実施形態によりプライベートデータが保護される例示的なネットワーク環境の簡略ブロック図である。
【０００６】
【図２】本開示の別の実施形態によりプライベートデータが保護される例示的な別のネットワーク環境の簡略ブロック図である。
【０００７】
【図３】本開示によるネットワーク環境の複数の実施形態のうちの少なくとも１つに関連する、可能なインタラクションを図示するインタラクション図である。
【０００８】
【図４】本開示によるネットワーク環境の複数の実施形態のうちの少なくとも１つに関連する、潜在的なアクティビティを図示する簡略化フローチャートである。
【０００９】
【図５】一実施形態による、例示的なプロセッサに結合されたメモリのブロック図である。
【００１０】
【図６】一実施形態による、ポイントツーポイント（ＰｔＰ）構成で配置された例示的なコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【００１１】
図１は、プライベートデータを保護するシステムが実装された例示的なネットワーク環境１００の簡略ブロック図である。プライベートデータとしては、ネットワークを介して提供される複数のサービスを認証するべく用いられるクレデンシャル（例えば、インターネットを閲覧するときにクライアントデバイス上でユーザにより入力されるデータ）が挙げられ得るが、これに限定されない。ネットワーク環境１００は、ネットワーク１１０、サーバ１２０、クライアントデバイス１３０およびプロキシ１４０を含む。プロキシ１４０としては、メモリ素子１４８およびプロセッサ１４９等の適切なハードウェアが挙げられ得るが、これらに限定されない。いくつかの実施形態において、プロキシ１４０は、ユーザがプロキシ１４０とインタラクトし得るユーザインターフェース１４７も含み得る。データストア１４５は、ユーザ名、パスワードおよびプライベートデータとして指定された他の情報等のプライベートデータを格納するプロキシ１４０と統合されてもよく、またはプロキシ１４０の外部にあってもよい。保護されたデータストレージモジュール１４３は、データストア１４５のポピュレートを可能にするように構成され得る。プロキシ１４０は、データストア１４５内に格納されたプライベートデータを保護するように構成された１または複数のモジュールも含む。少なくとも一実施形態において、これらのモジュールは、変更モジュール１４１および応答モジュール１４２を含み得る。クライアントデバイス１３０は、サーバ１２０およびプロキシ１４０等、他の複数のノードとの電子通信を開始することができるデバイスである。いくつかの実施形態において、クライアントデバイス１３０は、ブラウザ１３２、ユーザインターフェース１３７、メモリ素子１３８およびプロセッサ１３９を含む。いくつかの実施形態において、クライアントデバイス１３０は、サーバ１２０等のサーバを自動的に認証するように構成されたクライアントアプリケーション１３４を含む。サーバ１２０はサービス１２２を含み、サービス１２２はリソースをクライアントデバイス１３０に提供し得る。
【００１２】
図１の複数の要素は、任意の好適な複数の接続（有線または無線）を使用して、１または複数のインターフェースを介して互いに結合され、それにより複数のネットワーク通信のための実行可能な経路を提供し得る。更に、図１におけるこれらの要素のうち任意の１または複数のものは、必要とされる特定の構成に基づいて組み合わされ、またはアーキテクチャから除去され得る。一例として、クライアントデバイス１３０は、ブラウザを用いずにサーバ１２０と通信するユーザインターフェースを有しないエンベデッドコントローラであってもよい。ネットワーク環境１００は、ネットワークにおいて複数のパケットを送信および／または受信する伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）通信が可能な構成を含み得る。また、ネットワーク環境１００は、具体的な必要性に基づき、かつ適切である場合に、ユーザデータグラムプロトコル／ＩＰ（ＵＤＰ／ＩＰ）またはその他の好適なプロトコルと共に動作し得る。
【００１３】
プライベートデータを保護するシステムの特定の例示的な複数の技術を図示する目的のためには、ネットワーク環境１００において行われ得るアクティビティを理解することが重要である。以下の基礎的情報は、本開示が適切に説明される上での基礎とみなされ得る。
【００１４】
通常、携帯電話、ラップトップ、デスクトップ、ゲームシステム、タブレット、エンベデッドコントローラ、スマートセンサ、自動車インフォテインメントシステム等のクライアントデバイスは、インターネット等のネットワークインフラストラクチャを介してネットワークサーバおよび複数の他のシステムに通信するように構成されている。ブラウザは、インターネットを介して複数のウェブページにアクセスするのに用いられるソフトウェアアプリケーションである。ブラウザは、ウェブサーバにより提供される複数の情報リソースを取得し、提示し、トラバースするべく用いられ得る。通常、ブラウザは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）を用いて情報にアクセスし、データを受信および送信するように構成されている。勿論、いずれのアプリケーションも、ブラウザを使用することなく、直接にＨＴＴＰを介して通信し得る。また、複数の他のプロトコルは、例えば、ＳＰＤＹプロトコル、ファイル転送プロトコル（ＦＴＰ）、シンプルメッセージング転送プロトコル（ＳＭＴＰ）、および拡張マークアップ言語（ＸＭＬ）、非同期ＪａｖａＳｃｒｉｐｔ（登録商標）およびＸＭＬ（ＡＪＡＸ）、簡易オブジェクトアクセスプロトコル（ＳＯＡＰ）、ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）、ＲＥＳＴｆｕｌ等の様々な他のプロトコルおよびデータフォーマットを含め、インターネットを介する情報を流布させるべく用いられ得る。
【００１５】
多くの場合、クライアントデバイスのユーザは、複数のウェブサーバまたは他のシステムのコンテンツおよびサービスに対するアクセスを得るべく、ユーザ名およびパスワード等の複数のクレデンシャルを含むプライベートデータを、そのクライアントデバイス（例えば、ユーザインターフェースによるユーザ入力、格納済みデータからアクセスされた入力）を介して提供する。また、ユーザは例えば、サービスを提供するべく、ウェブサーバまたは他のシステムにより要求された様々な他のプライベートデータを提供し得る。ヒューマンユーザは、クライアントデバイスとインタラクトし、ネットワークを介して複数のリソースおよびサービスにアクセスするべく、いくつかの形態のソフトウェア（例えば、ブラウザ、ネットワークに接続されたアプリケーション）を駆動または動作させ得る。「サービス」は、サーバからクライアントデバイスに対して利用可能にされたプログラミングおよびデータの任意の組み合わせを含むことを意図する。本明細書のおいて用いられるように、「プライベートデータ」という用語は、ユーザまたはエンティティが機密を保持することを希望する任意のデータまたは情報を含むことを意図する。プライベートデータとしては、ウェブサーバまたは他のシステムのコンテンツおよびサービスに対する許可されたアクセスを得るべく用いられるパスワード、パスフレーズ、ユーザ名、個人識別番号（ＰＩＮ）およびその他のデータが挙げられ得る。また、プライベートデータは、口座番号（例えば、金融機関、保健機関、学校等の）、クレジットカード番号、個人データ（例えば、性別、体重等）、社会保障番号、住所、特定の写真等を含むがこれらに限定されない、ユーザもしくはエンティティにより指定されたその他のデータもしくは情報も含み得る。
【００１６】
複数のウェブサーバまたは他のシステムと通信する場合に、プライバシーおよびプライベートデータのセキュリティの保持は、重大な問題である。ハイパーテキストマークアップ言語（ＨＴＭＬ）プロトコルは、ユーザ名およびパスワード等のプライベートデータの入力を要求し得るウェブページをユーザに提供するべく、ＨＴＴＰと共に用いられる一般的なプロトコルである。例えば、暗号化されていないプライベートデータがクライアントデバイスのブラウザを介して提供されてＨＴＭＬ形式になる場合、データはネイティブ形式であり、ネイティブ形式でサーバに送信され得る。例えば、ネイティブ形式は、キー押しまたはボタン、文字を選択するドロップダウンメニュー、ストレージの位置からの自動入力等によりクライアントデバイスに提供されるデータを含み得る。従って、プライベートデータは、クライアントデバイスから見える。たとえクライアントデバイスとサーバとの間の通信が（例えば、ＨＴＴＰＳプロトコルにより）暗号化されても、最初にブラウザに提供されるプライベートデータは、いまだにネイティブ形式であり、従ってクライアントデバイス上に見え、マルウェア、ハードウェア、キーロガー等による傍受を受けることがある。プライベートデータは、ブラウザが通信を暗号化する前に見え、および／またはアクセス可能である。
【００１７】
いくつかの場合に、ソフトウェアは、要求された情報を、ウェブサーバにより提供されたＨＴＭＬ形式等のフォームに自動的に入力するべく用いられ得る。また、パスワードボールト（パスワードコンセントレータ）は、パスワードを提示するように要求するフォームを都度、手動で入力するようにユーザに要求することなく、パスワードを要求するＨＴＭＬ形式にパスワードを挿入するべく用いられ得る。また、いくつかのブラウザは、パスワードを「記憶」し、同一のパスワードに対する次の要求を認識し、要求される場合にパスワードを自動的に提供するように構成されている。更に、いくつかの外部ソフトウェアは、類似の機能を有する。しかし、これらの解決法において、最終的な結果は、ユーザの代わりにプライベートデータをフォームに挿入するいくつかのタイプのソフトウェアである。このプライベートデータには、傍受および悪用されるリスクがある。同様に、複数の他のプロトコル（例えば、ＳＰＤＹ、ＦＴＰ、ＳＭＴＰ、ＴＥＬＮＥＴ等）も、クライアントデバイスとのネットワーク通信中にプライベートデータの入力を要求することがある。そのような複数の要求に応答して手動または自動的に提供されるプライベートデータにも、傍受および悪用されるリスクがあり得る。ハイパーテキスト転送プロトコルセキュア（ＨＴＴＰＳ）、ＦＴＰセキュア（ＦＴＰＳ）、セキュアシェル（ＳＳＨ）およびＳＳＨファイル転送プロトコル（ＳＦＴＰ）のような暗号化されたプロトコルであっても、通信中のデータを保護するだけであり、それが暗号化されるまでは保護しない。
【００１８】
一定のマルウェアは、クライアントデバイスおよび／またはクライアントデバイスのユーザから情報を窃取するべく、クライアントデバイスを感染させるように設計されている。例えば、キーロガーマルウェアは、コンピュータにおいて全てのキー押しの記録を実行するように設計されている。別のクラスのマルウェアは、マン・イン・ザ・ブラウザと称され、ユーザがブラウザに入力するデータを止め得るか、または別のやり方で（例えばソフトウェアにより）ブラウザに挿入される悪意のあるブラウザ拡張機能である。特に、ウェブフォームを直接にポピュレートするパスワードボールトは、マン・イン・ザ・ブラウザの攻撃によりパスワードをリークし得る。しかし、ブラウザに入力されたデータを保護するための現在のアプローチは、ブラウザの変更（強化）に依存し、コストがかかることがある。
【００１９】
図１において概説されるネットワーク環境においてプライベートデータを保護するシステムは、これらおよび他の問題を解消することができる。図１のネットワーク環境１００において、プロキシは、サーバ（例えば、ウェブサーバ）からクライアントデバイスに送信され、プライベートデータ（例えば、ユーザ名、パスワード等）を要求するオブジェクト（例えば、ＨＴＭＬウェブページ）を急いで変更するように構成されている。変更済みオブジェクトは、関係するプライベートデータのアンロック（すなわち、アクセス／取得）およびプライベートデータの要求サーバへの提供に対する許可の要求を含む。プロキシは、クライアントデバイスに許可要求を含む変更済みオブジェクトを提供する。少なくともいくつかの実施形態において、関係するプライベートデータは、プロキシ内に格納され得、プロキシは、セキュアな環境において動作され得る。許可がクライアントデバイスから受信されると、プロキシは、プライベートデータを取得し、プライベートデータと共に応答をサーバに送信し得る。いくつかの例において、プロキシは、プライベートデータを直接に元のオブジェクトに挿入し、入力された元のオブジェクト（例えば、ＨＴＴＰ  ＰＯＳＴ形式）をサーバにアップロードし得る。
【００２０】
図示を容易にするべく、本明細書におけるいくつかの実施形態は、特定のタイプのオブジェクト（またはサーバ送信）、すなわちＨＴＭＬウェブページにおいて要求および提供されるプライベートデータを保護するシステムの文脈で説明されている。ＨＴＭＬ形式を含み得る複数のＨＴＭＬウェブページは、ウェブサーバにより、クライアントデバイスに提供される。いくつかのＨＴＭＬウェブページは、応答して提供されるプライベートデータに対する要求を含む。しかし、本明細書において説明されるプライベートデータを保護するシステムの様々な実施形態に関する広範な教示は、プライベートデータを送信する媒体として用いられるいずれの通信プロトコルにも適用され得る。従って、「オブジェクト」という用語は、送信のためにフォーマット化（例えば、ＨＴＭＬ、ＸＭＬ、ＦＴＰ、ＳＭＴＰ、ＳＰＤＹ、ウェブメール等）され、要求されたデータの入力または要求されたデータを伴う他の応答を可能にするように構成され得る任意のファイルもしくはデータを含むことを意図する。例えば、オブジェクトは、ユーザがクライアントデバイスのスクリーンを介して要求されたデータを入力することを可能にし得、またはクライアントデバイスもしくはクライアントアプリケーションが要求されたデータと共に応答（例えば、ウェブサービスに対して自動的に認証するクライアントデバイスもしくはクライアントアプリケーション）を生成することを可能にし得る。本明細書において用いられる「クライアントアプリケーション」は、クライアントデバイス上で１もしくは複数のプロセッサにより、一定のタスクを実行するように実行され得、ソフトウェア、コード、ロジック、命令、関数、アルゴリズム等を含み得るコンピュータプログラム、もしくはコンピュータプログラムの集合を意味することを意図する。これらのタスクは、サービスに対して自動的に認証するなど、ネットワークを介して複数のサービスにプライベートデータを提供することを含む。
【００２１】
再び図１を参照すると、ネットワーク環境１００は、複数のクライアントデバイスとウェブサーバ（または複数の他のシステム）との間におけるネットワーク通信中にプライベートデータを保護するシステムを提供する。図１のアーキテクチャに関連する可能性のある複数のフローを検討する前に、ネットワーク環境１００に関連し得る可能なコンポーネントおよびインフラストラクチャのいくつかについて、簡単な検討が提供される。
【００２２】
一般に、ネットワーク環境１００は、ネットワーク１１０により示される任意のタイプまたはトポロジのネットワークを含み得る。ネットワーク１１０は、ネットワーク環境１００を介して伝搬するネットワーク通信を受信および送信する相互接続された通信経路の一連のポイントまたはノードを表す。ネットワーク１１０は、複数のノード間に通信インターフェースを提供し、無線（例えば、３Ｇ／４Ｇ／５Ｇ／ｎＧネットワーク、ＷｉＦｉ、２０１２年３月２９日に発行された米国電気電子学会（ＩＥＥＥ）Ｓｔｄ８０２．１１（登録商標）―２０１２、ＷｉＭＡＸ、２０１２年８月１７日に発行されたＩＥＥＥ  Ｓｔｄ８０２．１６（登録商標）―２０１２、無線周波数識別（ＲＦＩＤ）、近距離通信（ＮＦＣ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等）、および／または有線（例えば、イーサネット（登録商標）等）通信を含む、任意のローカルエリアネットワーク（ＬＡＮ）、仮想ローカルエリアネットワーク（ＶＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、無線ローカルエリアネットワーク（ＷＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、およびインターネット等のネットワーク環境において通信を容易にするその他の適切なアーキテクチャもしくはシステム、またはこれらの任意の好適な組み合わせとして構成されてもよい。一般に、電気、音声、光、赤外線、無線（例えば、ＷｉＦｉ、ブルートゥース（登録商標）またはＮＦＣ）など、通信の任意の好適な手段が用いられ得る。
【００２３】
ネットワークフロー（「ネットワーク通信」および「ネットワーク伝送」とも称される）は、パケット、フレーム、信号、データ、オブジェクト等を含み得、任意の好適な通信メッセージングプロトコルにより送信および受信され得る。好適な通信メッセージングプロトコルとしては、開放型システム間相互接続（ＯＳＩ）モデル等のマルチレイヤスキーム、またはその任意の派生物もしくは変形形態（例えば、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル／ＩＰ（ＵＤＰ／ＩＰ））が挙げられ得る。接続は、ソフトウェア・デファインド・ネットワーク（ＳＤＮ）を介して動的に行われ得る。本明細書において用いられる「データ」という用語は、コンピューティングデバイス（例えば、クライアントデバイス、サーバ、プロキシ）および／またはネットワークにおいてあるポイントから別のポイントへと通信され得る任意のタイプのバイナリ、数値、音声、動画、テキスト、写真もしくはスクリプトのデータ、または任意のタイプのソースもしくはオブジェクトコード、または任意の適切なフォーマットのその他の好適な情報を指す。更に、メッセージ、要求、応答、返信、クエリ等は、ネットワークフローの形態である。
【００２４】
クライアントデバイス１３０等のクライアントデバイスは、ネットワーク環境においてネットワーク通信を開始するべく用いられ得、プライベートデータが通信され得る任意のタイプのコンピューティングデバイスを表すことを意図する。いくつかの実施形態において、クライアントデバイスは、いくつかのネットワークを介して、ネットワーク環境１００においてネットワークセッションを確立することを希望するエンドユーザと関連し得る。また「クライアントデバイス」という用語は、ユーザインタラクションを用いずにネットワーク環境においてサーバを通信する任意のタイプのコンピューティングデバイス（例えば、ネットワークを介して複数のサービスを自動的に認証するエンベデッドコントローラ、ネットワークを介して複数のサービスを自動的に認証するクライアントアプリケーションを有するコンピューティングデバイス）を含むことを意図する。クライアントデバイスとしては、ネットワーク環境１００内で音声、オーディオ、動画、媒体もしくはデータの交換を開始し得るワークステーション、端末、ラップトップ、デスクトップ、タブレット、ゲームシステム、モバイルデバイス、スマートフォン、スマートセンサ、インフォテインメントシステム、エンベデッドコントローラ、スマートアプライアンス、全地球測位システム（ＧＰＳ）、またはその他のデバイス、コンポーネントまたは要素が挙げられ得るが、これらに限定されない。またいくつかの実施形態において、クライアントデバイス１３０は、ディスプレイ、キーボード、タッチパッド、遠隔制御器、他の端末機器、またはこれらの任意の好適な組み合わせ等、ヒューマンユーザに対する好適なインターフェース（例えば、ユーザインターフェース１３７）を含み得る。
【００２５】
プロキシ１４０等のプロキシは、クライアントデバイスとウェブサーバ（または他のコンピューティングデバイスもしくはシステム）との間の通信の中継として機能するネットワーク要素である。本明細書において用いられるように、「ネットワーク要素」という用語は、ネットワーク環境において情報を交換するように動作可能なルータ、スイッチ、ゲートウェイ、ブリッジ、負荷分散装置、ファイアウォール、インラインサービスのノード、プロキシ、サーバ、プロセッサ、モジュール、ＳＤＮコントローラ／スイッチ、またはその他の好適なデバイス、コンポーネント、要素もしくは専用アプライアンスを含むものとする。このネットワーク要素としては、任意の好適なハードウェア、ソフトウェア、ファームウェア、コンポーネント、モジュール、インターフェース、またはこれらの動作を容易にするオブジェクトが挙げられ得る。これは、データまたは情報の効果的な交換を可能にする適切なアルゴリズムおよび通信プロトコルを含み得る。プロキシ１４０は、任意のネットワーク要素に含まれ得る。
【００２６】
いくつかの実施形態において、プロキシ１４０は、図１に図示されるようにクライアントデバイス１３０とは別個であり得、適切で具体的な必要性に基づく場合にはクライアントデバイス１３０とサーバ１２０との間のいずれかの箇所に実装され得る。プロキシ１４０がクライアントデバイス１３０とは別個のデバイスに実装される場合、プロキシ１４０のコードは、セキュアな環境で動作し、サーバ１２０からプライベートデータに対する要求に応答して提供されるプライベートデータを保護し得る。
【００２７】
例示的な実装において、プロキシ１４０は、保護された企業ネットワークにおけるセキュアなルータまたはゲートウェイであり得る。プロキシ１４０は、保護された企業ネットワーク内において、サーバと複数のクライアントデバイスと間の途中にある複数のネットワークフローを止めるように構成され得る。プロキシ１４０は、例えばインターネットを介してサーバ１２０に接続するように構成され得る。別の例において、プロキシ１４０は、ホームネットワークのセキュアなルータに実装され得る。プロキシ１４０は、ホームネットワークにおける複数のクライアントデバイス（例えば、クライアントデバイス１３０）とインターネット等のネットワークを介してアクセス可能な複数のサーバ（例えば、サーバ１２０）との間の途中にある複数のネットワークフローを止めるように構成され得る。なおも別の実装において、プロキシ１４０は、信頼できるクラウドに実装され得る。サーバ１２０への接続を開始するクライアントデバイスはまず、インターネットを介してプロキシ１４０に接続し得る。従って、プロキシ１４０は、様々なネットワーク（例えば、企業ネットワーク、ホームネットワーク、学校のネットワーク等）およびスタンドアロンクライアントデバイス（例えば、セルラー技術を用いるモバイルデバイス、無線技術を用いるモバイルデバイス等）から、複数のクライアントデバイスのプライベートデータを保護し得る。本明細書において提供される例は、プロキシ１４０の可能な複数の実装を専ら図示するものであり、本開示の広範な教示、ならびに本明細書において開示される可能な用途および複数の実施形態の他の実装を限定することを意図しない。
【００２８】
少なくとも一例において、プロキシ１４０は、本明細書において概説されるように、プライベートデータ保護を実現する（または促進）するソフトウェアを含む。これらの要素の各々は、本明細書において説明される複数の動作のいくつかを容易にする内部構造物（例えば、プロセッサ、メモリ素子等）を有し得る。複数の他の実施形態において、これらのプライベートデータ保護は、これらの要素の外部で実行され、またはこの意図される機能を実現するいくつかの他のネットワーク要素に含まれ得る。あるいは、プロキシ１４０は、このソフトウェア（または往復ソフトウェア）を含み得、ソフトウェハは、本明細書において概説されるように、複数の動作を実現するべく、複数の他のネットワーク要素と調整し得る。なおも複数の他の実施形態において、１つまたはいくつかのデバイスは、任意の好適なアルゴリズム、ハードウェア、ソフトウェア、ファームウェア、コンポーネント、モジュール、インターフェース、またはこれらの動作を容易にするオブジェクトを含み得る。
【００２９】
図１のサーバ１２０等のサーバは、ネットワーク１１０等の１もしくは複数のネットワークを介して、複数のクライアントデバイスもしくは他のコンピューティングデバイスに複数のサービスを提供し得るネットワーク要素である。サーバ１２０により提供されたサービス１２２は、サービスを認証するべく必要とされるクレデンシャル等のプライベートデータを要求するように構成され得る。サービス１２２は例えば、様々なリソースまたはアカウント（例えば、財務、医療、小売り、組織、ビジネス等）へのアクセス、ファイル転送、電子メール、ウェブコンテンツ等を含み得る。少なくともいくつかの実施形態において、サーバ１２０は、ウェブコンテンツを配信するウェブサーバ、要求された場合に複数のファイルをクライアントデバイスに転送するファイル転送サーバ、複数の電子メールメッセージをクライアントデバイスから宛先に転送する電子メールサーバ、ニュースグループにアクセスするニュースサーバ、複数のインタラクションゲームを提供するゲームサーバ、アプリケーションおよび／またはデータベースに対するアクセスを提供するアプリケーションサーバ、またはこれらの任意の組み合わせを含み得るが、これらに限定されない。
【００３０】
プロキシ１４０は、プライベートなものと指定されたデータを保護するように構成された１または複数のモジュールを含む、セキュアプロキシである。データストアは、１または複数のネットワークエージェントに関連するプライベートデータのレポジトリとして構成され得る。本明細書において用いられるように、「ネットワークエージェント」という用語は、ユーザ、クライアントアプリケーションおよびクライアントデバイスを含むことを意図する。データは、データストア１４５に格納されると、プライベートなものとして指定される。少なくともいくつかの実施形態において、プライベートデータは、少なくとも１つのネットワークエージェントに加えて、少なくとも１つのサービス（および対応するサーバ）に「関連」し得る。データストア１４５におけるプライベートデータアイテム（またはプライベートデータアイテムのセット）は、特定のサービスの１または複数の識別子にマッピングされ、サービスに対する関連性を示し得る。これらの識別子としては、サーバのドメイン名、サービスのユニフォームリソースロケータ（ＵＲＬ）（例えば、ＨＴＭＬウェブページのＵＲＬ）、サーバのネットワークアドレス等が挙げられ得るが、これらに限定されない。また、プライベートデータアイテム（もしくはプライベートデータアイテムのセット）は、１もしくは複数のネットワークエージェントの複数の識別子にマッピングされ、１もしくは複数のネットワークエージェントの関連性を示し得る。これらの識別子としては、媒体アクセス制御（ＭＡＣ）アドレス等のクライアントデバイス識別子、セキュリティ識別子（ＳＩＤ）等のユーザ識別子、ファイル名等のクライアントアプリケーション識別子などが挙げられ得るが、これらに限定されない。プライベートデータアイテムのセットの例は、１もしくは複数の特定のクライアントデバイス上で特定のユーザにより特定のサービスにアクセスする、ユーザ名およびパスワードであり得る。プライベートデータアイテムの複数のセットは、同一のネットワークエージェント（または複数のエージェント）に関連し得、プライベートデータアイテムの各セットは、異なるサービスに関連する。また、個々のプライベートデータアイテムは、当該アイテムがどのタイプのプライベートデータを表すか（例えば、ユーザ名、パスワード、パスフレーズ、口座番号、個人識別番号（ＰＩＮ）、セキュリティ上の質問に対する回答等）を示す任意の好適な記述子またはタグに関連し得る。
【００３１】
少なくともいくつかの実施形態において、複数のサービスおよび／もしくはネットワークエージェントの識別子は、任意の好適なマッピング、マーキング、もしくはリンク技術（例えば、リスト、テーブル、連想配列、ポインタ、インデックス、グラフ、リンクされたリスト、ファイル名、リレーショナルデータベース、ハッシュテーブル等）、または複数のプライベートデータアイテムと識別子との間の関係、接続またはリンクを表すその他の技術もしくはメカニズムを用いて、プライベートデータアイテム（またはプライベートデータアイテムの複数のセット）にマッピングされ得る。例えば、単純なテーブル構成は一般に、電子情報を編成するべく用いられるデータ構造であり、すでに説明されたように、データストア１４５を実装する１つの可能な態様である。しかし、データストア１４５は、様々な他の態様でモデル化され得、これらの他の構成は、所与の実装の特定の選好および必要性に基づき得ることが理解されよう。また、プライベートデータアイテムは、そのタイプを示すタグまたは記述子にマッピングされ得る。
【００３２】
少なくともいくつかの実施形態において、プロキシが同一のプライベートデータ（例えば、１もしくは複数のクライアントデバイスを用いるシングルユーザ、シングルクライアントアプリケーションを用いるシングルクライアントデバイス等）に関連する１もしくは複数のネットワークエージェントに対するプライベートデータを処理するように構成される場合、プライベートデータアイテムは、（可能ではあるが）関連する複数のネットワークエージェントの任意の識別子に必ずしもマッピングされない場合がある。プロキシが異なるプライベートデータに関連する複数のネットワークエージェントに対するプライベートデータを処理するように構成される場合、特定のネットワークエージェントに関連するプライベートデータアイテム（またはプライベートデータアイテムの複数のセット）は、当該ネットワークエージェントの識別子にマッピングされ得る。更に、いくつかの例において、複数のネットワークエージェントは、プライベートデータアイテム（またはプライベートデータアイテムのセット）に関連し得る。例えば、クライアントデバイスを介してユーザにより（すなわち、手動または自動的に）サービスに提供されたプライベートデータアイテムは、ユーザおよびクライアントデバイスに関連する。ユーザが複数のクライアントデバイスを介して、サービスにプライベートデータアイテムを提供する場合、プライベートデータアイテムは、ユーザおよびユーザにより用いられるクライアントデバイスの全てに関連し得る。この例において、データストア１４５におけるプライベートデータアイテムは、ユーザにより用いられる１もしくは複数のクライアントデバイスの各々の識別子、ユーザの識別子、またはこれらの任意の組み合わせにマッピングされ得る。別の例において、プライベートデータアイテムがクライアントデバイスを介してクライアントアプリケーションによりサービスに提供される場合、プライベートデータアイテムは、クライアントアプリケーションおよびクライアントデバイスに関連する。この例において、データストア１４５におけるプライベートデータアイテムは、クライアントアプリケーションの識別子、クライアントデバイスの識別子、またはこれらの組み合わせにマッピングされ得る。なおも別の例において、プライベートデータアイテムが、エンベデッドコントローラであるクライアントデバイスによりサービスに提供される場合、プライベートデータアイテムは、エンベデッドコントローラに関連し、エンベデッドコントローラの識別子にマッピングされ得る。
【００３３】
図示として、金融機関等の特定のエンティティが、金融機関のウェブサーバを介してアカウントへのアクセスを可能にする前に提供されるべき登録済みのユーザ名およびパスワードを要求する場合、ユーザ１により所有されるアカウントのユーザ名およびパスワードは、プロキシ１４０のデータストア１４５内の金融機関に関連し得る。少なくとも一実施形態において、ユーザ名およびパスワードは、ユーザ名およびパスワードを要求する金融機関のドメイン名またはウェブページのユニフォームリソースロケータ（ＵＲＬ）にマッピングされ得る。プロキシが複数のユーザに対するプライベートデータを含む場合、ユーザ名およびパスワードは、ユーザ１の識別子、ユーザ１により用いられる１もしくは複数のクライアントデバイスの識別子、またはこれらの組み合わせにもマッピングされ得る。
【００３４】
いくつかの実施形態において、一定のプライベートデータは、特定のサービスおよび対応するサーバに必ずしも直接に関連しないことがある。例えば、より一般的な性質であり、多数のサービスにより要求されるプライベートデータは、好適な記述子またはタグによりデータストア１４５に格納されるのみであり、当該アイテムがどのタイプのプライベートデータを表すかを示し得る。例えば、ホームアドレス、電話番号、性別、婚姻の状態等は、任意の適切な記述子、タグ等を用いてデータストア１４５に格納され得る。サービス１２２がこの一般的なプライベートデータについてクライアントデバイス１３０に要求を送信する場合、プロキシ１４０は、特定のタイプのプライベートデータが要求されていると解釈するように構成され得る。また、プロキシ１４０は、データストア１４５において、サーバからの要求に対応するクライアントデバイスおよび／または別のネットワークエージェント（例えば、ユーザ、クライアントアプリケーション）に関連するプライベートデータを検索し得る。また、プロキシ１４０は、データストア１４０におけるどのプライベートデータアイテムが、サーバ１２０により要求された特定のタイプのデータを表す記述子またはタグに関連するかを識別し得る。
【００３５】
少なくとも一実施形態において、データストア１４５は、プロキシ１４０内に統合および固定されるプライベートデータのセキュアなボールトである。複数の他の実施形態において、データストア１４５は、別個のストレージデバイス内において固定され得、別個のストレージデバイスは、プロキシ１４０によりアクセス可能である。任意の好適な技術は、データストア１４５をポピュレートするように構成され得る。一例において、任意の１または複数の通信チャネル（例えば、書かれたメール、暗号化されたファイル転送、口頭の通信等）は、複数のプライベートデータアイテムおよびそれらの関連するサービスのリストを、許可された人もしくはエンティティ（例えば、サービスプロバイダ、ネットワークアドミニストレータ等）に提供するべく、使用され得る。次に、データストア１４５は、複数のプライベートデータアイテムを用いてポピュレートされ得る。例えば、企業ネットワーク環境において、ユーザは、データストア１４５に入るために、複数の関連するサービスの複数のプライベートデータアイテムおよび識別子をネットワークアドミニストレータに提供し得る。各ユーザは、企業ネットワーク環境内で当該ユーザにより用いられる全てのクライアントデバイスのリストも提供し得る。複数のクライアントデバイスの識別子は、データストア１４５に入力されて、ユーザのプライベートデータアイテムにマッピングされ得る。少なくとも一実施形態において、保護されたデータストレージモジュール１４３は、（例えば、プライベートデータアイテムの手入力用のユーザインターフェースにより、特定のタイプのファイルを読み取り、ファイルからの複数のデータアイテムを格納するソフトウェアによるなどして）プライベートデータアイテムをデータストア１４５に格納することを容易にするように構成され得る。複数の他の例において、一定のプライベートデータアイテムは、データストア１４５において製造者によりポピュレートされ得る。例えば、エンベデッドコントローラの製造者は、エンベデッドコントローラが製造者のサービスを認証することを可能にするべく、パスワードおよびユーザデバイス識別子を用いてデータストアをポピュレートし得る。
【００３６】
いくつかの実施形態において、データストア１４５をポピュレートおよび／または更新するインクリメンタルなアプローチが用いられ得る。プロキシ１４０は、サーバにより要求されたプライベートデータが利用可能ではないことを自動的に検出するように構成され得る。このシナリオにおいて、プロキシ１４０は、クライアントデバイス１３０に要求を送信して、要求されたプライベートデータに対するエントリを作成することができる。サーバからのプライベートデータの要求に対応する任意のネットワークエージェント（すなわち、ユーザ、クライアントアプリケーションまたはクライアントデバイス）は、要求されたプライベートデータを作成することができる。一例において、プロキシ１４０は、ユーザがプロキシ１４０に対して、どのウェブ要素をユーザがプライベートなものとみなすかを示すことを可能にするように構成され得る。例えば、ユーザは、プロキシ１４０との帯域外通信を行い、どのデータアイテムがプライベートなものとして扱われるべきかを示すことができる。別の例において、未変更のＨＴＭＬウェブページ等の情報の未変更の要求がクライアントデバイス１３０に提供され得、ユーザは、複数の要求されたデータアイテムに対する入力を提供し得る。プロキシ１４０は、次のネットワークフローにおいてこれらの新しい要素を認識および処理するように構成され得る。また、少なくともいくつかの実施形態において、プロキシ１４０は、ユーザにより示されたこの新しいプライベートデータを用いてデータストア１４５をポピュレートし得る。
【００３７】
プロキシ１４０は、ユーザに関連付けてクライアントデバイスを記憶するようにも構成され得る。この関連性は、構成時に記憶されて、一連のＭＡＣアドレスとして格納され得、一連のＭＡＣアドレスは、同一ユーザにより用いられる全てのクライアントデバイスをグループ化する。また、関連性は、自動的に記憶され得る。例えば、特定のサービスのパスワードが存在しない場合、ユーザは、パスワードの要求により不変のオブジェクトを得ることができる。ユーザは、１つを提供し得る。同一のパスワードが複数のクライアントデバイスから入力されると、複数のクライアントデバイスは、将来において同一ユーザと自動的に関連付けられ得る。
【００３８】
データストア１４５が最初にポピュレートされるとき、アンロックメカニズムが開始され、ネットワークエージェントがプロキシ１４０に、データストア１４５から関係するプライベートデータを用いることを許可することができる。少なくとも一実施形態において、反復しないパスワードのシーケンスが用いられ、プライベートデータの使用を許可するワンタイムパスワード（ＯＴＰ）技術が用いられ得る。ワンタイムパスワードは、アルゴリズムにより事前に生成され（またはランダムに生成され）、任意の適切な通信チャネル（例えば、ショートメッセージサービス（ＳＭＳ）のメッセージ等の帯域外チャネル、セキュリティトークン、携帯電話等の別個のデバイス上で実行されるソフトウェア等）を用いてネットワークエージェントと共有され得る。別の実施形態において、プロキシ１４０に対する１または複数のセキュアな通信チャネルは、認証（例えば、多因子認証、人の存在等）を提供するべく使用され得る。また、いくつかの実施形態において、プライベートデータをアンロックするべく、バイオメトリックデータ（例えば、指紋、目の網膜および虹彩、音声認識等）が用いられ得る。いくつかの実施形態において、プライベートデータの自動的アンロックは、一定のシナリオの下で（例えば、ユーザの存在の検証、以前の許可の履歴、特定のＨＴＭＬ形式に対する許可を要求しないようにプロキシ１４０に要求したユーザの履歴等）許可され得る。ＨＴＴＰＳプロトコルを用いるネットワークフローについては、プロキシ１４０は、セキュアソケットレイヤ（ＳＳＬ）の中間者（ｍａｎ−ｉｎ−ｔｈｅ−ｍｉｄｄｌｅ、ＭｉｔＭ）としても動作して、セキュリティ警告を生成することなくＨＴＴＰネットワークフローを処理し得る。少なくとも一実施形態において、データストア１４５は、暗号化された通信（例えば、プロキシ１４０のパブリックキーを用いて暗号化された）によりポピュレートされ、プロキシ１４０内において対応するプライベートキーを用いる場合にのみ復号化可能であり得る。本明細書において開示されるプライベートデータを保護するシステムの複数の実施形態において、任意の数の他のアンロックメカニズムが実装され得るので、これらのアプローチは、例示的なものであり、限定することを意図しない。更に、これらのアンロックメカニズムのうち１または複数は、ＨＴＴＰ、ＳＰＤＹ、ＦＴＰ、ＳＭＴＰ、ポストオフィスプロトコル（ＰＯＰ）、インターネットメッセージアクセスプロトコル（ＩＭＡＰ）等を含むが、これらに限定されない任意の複数のプロトコルとも機能し得る。
【００３９】
少なくとも一実施形態において、アンロックメカニズムは、別個のセキュリティプロトコルまたは通信リンクにより実行され得る。許可要求は、異なる媒体、チャネルまたはプロトコルを用いてクライアントデバイスに提供され得る。例えば、プロキシは、ＵＤＰプロトコルによりクライアントデバイス内の信頼できる実行環境（ＴＥＥ）に、クライアントを操作するヒューマンユーザのバイオメトリックを検証するように要求し得る。ＴＥＥは、ユーザに非表示でこれを行うことができ（例えば、顔認識）、従って許可を提供して、ユーザフレンドリにプライベートデータのアンロックを可能にする。別の例において、プロキシは、ログインするべくクレデンシャルを要求するウェブページの文脈を無視して指紋のスキャンを要求し得る。そして、サーバ送信のプロキシの変更は、ログイン要求ページを完全に除去することを含み得、バイオメトリックは、プロキシがユーザに対してトランスペアレントにログインを行うことを可能にする。
【００４０】
動作の観点から、プロキシ１４０は、変更モジュール１４１を用いて、サーバ１２０からクライアントデバイス１３０に送信されたプライベートデータの要求を含むオブジェクトを急いで変更するように構成され得る。変更モジュール１４１は、任意のレベルのネットワーク通信に実装され得る。例えば、変更モジュール１４１は、アプリケーションレイヤの送信において動作し得、またはトランスポート（例えば、ＴＣＰ／ＩＰパケット）レベルで動作し得る。その他の好適な変更方法も使用され得る。要求されたプライベートデータは、クライアントデバイス１３０のユーザまたはサーバからのネットワークフローに対応する他のネットワークエージェントに関連する１または複数のプライベートデータアイテム（例えば、ユーザ名、パスワード、口座番号、パスフレーズ、ホームアドレス、個人データ、宗教団体への加入、一定の写真等）を含み得る。変更モジュール１４１は、どのサービスが当該要求に関連するか、およびどのタイプのプライベートデータアイテムがオブジェクトにおいて要求されるかを判断するように構成され得る。また、変更モジュール１４１は、データストア１４５がクライアントデバイス１３０（および／またはサーバからのネットワークフローに対応する別のネットワークエージェント）に関連し、要求されたプライベートデータアイテムと同一のタイプを有し、当該特定のサービス（例えば、サービス１２２）に関連する複数のプライベートデータアイテムを含むか否かを判断し得る。データストア１４５に格納されたプライベートデータアイテムの全ては、１ユーザ、１つのクライアントアプリケーションまたは１つのエンベデッドコントローラに潜在的に関連し得る。これらのシナリオにおいて、変更モジュール１４１は、ネットワークエージェントと格納済みプライベートデータアイテムとの間の関連性を判断する必要がない場合がある。
【００４１】
サーバにより要求されたプライベートデータアイテムがデータストア１４５において見つかった場合、変更モジュール１４１は、要求されたプライベートデータのアンロックに対する許可を要求することにより変更済みオブジェクトを作成し得る。変更済みオブジェクトは、元のオブジェクトのコピーを変更し、新しいオブジェクトを生成し、または元のオブジェクトを変更することにより作成され得る。いくつかのシナリオにおいて、元のオブジェクトのコピーは、要求されたプライベートデータを要求サーバに提供するときに、後で用いるために保存される必要がある場合がある。プライベートデータ要求を伴う元のオブジェクトに代えて、許可要求を伴う変更済みオブジェクトが宛先クライアントデバイスに提供され得る。少なくとも一実施形態において、許可要求は、クライアントデバイスのスクリーン上に表示され得、必要とされる許可を入力するように、ユーザに対するプロンプトを提供し得る。ユーザは、要求サービスに関連するユーザのプライベートデータをアンロックするように許可する、適切な許可（例えば、予め共有されているワンタイムパスワード、バイオメトリックデータ、多因子認証等の入力）をプロキシ１４０に提供し得る。
【００４２】
プロキシ１４０は、複数の許可要求に応答してクライアントデバイスからの通信を処理する応答モジュール１４２を含み得る。応答モジュール１４２は、クライアントデバイス１３０からの応答を受信して、応答に含まれる任意の許可情報を検証するように構成され得る。許可情報が有効であることを許可情報の検証が示すと、プロキシ１４０は、データストア１４５から関係するプライベートデータアイテムを取得し得る。応答モジュール１４２は、要求サービス（例えば、サーバ１２０のサービス１２２）にプライベートデータアイテムを提供し得る。
【００４３】
例示的なシナリオにおいて、サービス１２２によりクライアントデバイス１３０に送信されたオブジェクトがユーザ名およびパスワードを要求するＨＴＭＬウェブページであると仮定する。プロキシ１４０は、ＨＴＭＬウェブページがユーザ名およびパスワードのユーザ入力を受け取るように構成されたフィールドを含むと認識する。プロキシ１４０は、データストア１４５を探索して、ユーザ名およびパスワードが宛先クライアントデバイス（および／またはユーザ）に関連し、またサービス１２０に関連しているか否かを判断し得る。ユーザ名およびパスワードが見つかった場合、プロキシ１４０は、許可の要求を伴う変更済みＨＴＭＬウェブページを作成し得る。許可の要求は、ユーザ名およびパスワードをアンロックする許可メカニズムを含む。プロキシ１４０は、変更済みＨＴＭＬウェブページをクライアントデバイス１３０に送信し得、クライアントデバイス１３０からの応答を受信し得る。応答における許可情報が有効である場合、プロキシ１４０は、データストア１４５から関連するユーザ名およびパスワードデータアイテムを取得し得る。また、プロキシは、元のＨＴＭＬウェブページのユーザ名およびパスワードフィールドに、データストア１４５から取得されたユーザ名およびパスワードデータアイテムを入力し得る。次に、完成されたＨＴＭＬウェブページに基づいて、応答（例えば、ＨＴＭＬ  ＰＯＳＴ要求）がサーバ１２０に送信され得る。
【００４４】
図２は、システムがプライベートデータを保護するように構成されたネットワーク環境２００を提供する、代替的な実施形態を図示する。ネットワーク環境２００は、ネットワーク２１０およびサービス２２２を有するサーバ２２０を含み得、これらは、図１を参照してすでに示され、説明されたネットワーク１１０およびサービス１２２を有するサーバ１２０に類似する。ネットワーク環境２００は、クライアントデバイス２３０も含み、クライアントデバイス２３０は、図１のクライアントデバイス１３０と類似するいくつかのコンポーネントを有し得る。例えば、クライアントデバイス２３０は、ブラウザ２３２、ユーザインターフェース２３７、メモリ素子２３８およびプロセッサ２３９を含み得る。いくつかの実施形態において、クライアントデバイス２３０は、サーバ２２０等のサーバを自動的に認証するように構成されたクライアントアプリケーション２３４も含み得る。しかし、クライアントデバイス１３０と異なり、クライアントデバイス２３０は、クライアントデバイス２３０の信頼できる実行環境２３５においてプロキシ２４０およびデータストア２４５により構成されている。信頼できる実行環境の少なくともいくつかの構成については、プロキシ２４０は、デバイス製造者により署名されたソフトウェアを用いてクライアントデバイス（例えば、携帯電話）に実装され、プロキシ２４０のコードが悪意のソフトウェアにより危害を加えられないことを保証し得る。プロキシ２４０は、信頼できる実行環境２３５内のみで実行されるように構成され得る。
【００４５】
少なくとも一実施形態において、プロキシ２４０は、図１を参照して説明されたものに類似する複数のモジュール（例えば、変更モジュール１４１、応答モジュール１４２、保護されたデータストレージモジュール１４３）を用いて構成され得る。特に、プロキシ２４０は、プロキシ１４０がクライアントデバイス１３０とサーバ１２０との間の中継として機能するのと実質的に同じように、クライアントデバイス２３０とサーバ２２０との間の中継として機能し得る。プロキシ２４０のモジュールは、サーバ２２０からプライベートデータを要求するオブジェクトを有するクライアントデバイス２３０への途中で流れるネットワークフローを止め、関係するプライベートデータにアクセスすることに対する許可を要求する変更済みオブジェクトを作成して、有効な許可情報を受信すると、要求されたプライベートデータをサーバ２２０に提供するコードを含み得る。
【００４６】
信頼できる実行環境２３５は、プロキシ２４０のコードがクライアントデバイス２３０内のセキュアな環境において動作することを可能にすることにより、（例えば、マルウェアによる）悪意の攻撃からプロキシ２４０およびデータストア２４５を保護する。信頼できる実行環境２３５の少なくともいくつかの実施形態において、信頼できるコードのみが実行される。信頼できる実行環境２３５は、クライアントデバイス２３０の他のソフトウェアからプロキシ２４０およびデータストア２４５を実質的に隔離し得る。従って、データストア２４５におけるプライベートデータは、依然として保護され、セキュアであり得る。信頼できる実行環境の例としては、カリフォルニア州サンタクララのインテル（登録商標）コーポレーションにより提供されるインテル（登録商標）ｖＰｒｏ（登録商標）技術、インテル（登録商標）コーポレーションにより提供されるインテル（登録商標）ソフトウェアガード拡張（登録商標）、モバイルデバイス上のセキュアエレメントもしくはトラストゾーン、セキュアエンクレーブ、Ｊａｖａ（登録商標）環境で動作するスマートカード等が挙げられるが、これらに限定されない。信頼できる実行環境２３５におけるプロキシ２４０等、セキュアプロキシは、プライベートデータがセキュアプロキシのみにより送信されることを保証する。結果として、セキュアプロキシがネットワーク通信を制御する場合、プロキシ２４０によりサーバ２２０に通信されるプライベートデータは、カーネルレベル、ハイパーバイザレベルで動作するマルウェア、または更にファームウェアもしくはハードウェア（例えば、ルートキットおよびブートキット）からのマルウェアを含むマルウェアにアクセス可能ではない。
【００４７】
本明細書において開示される複数の実施形態は、いくつかの利点を有するプライベートデータの保護を提供する。まず、プロキシ１４０、２４０は、クライアントデバイスの任意のブラウザを変更することなく、クライアントデバイスと共に用いるべく実装され得るが、これは多くの場合、コストがかかり得る。また、他の複数の通信プロトコルにより用いられるソフトウェアに対する変更も回避され得る。更に、プロキシ１４０、２４０の実装も、サーバ側（例えば、１２０または２２０）に変更を必要とせず、プロキシ（例えば、１４０または２４０）の動作は、サーバに対して完全にトランスペアレントである。プライベートデータが要求された場合に適切な許可を提供するべく、ユーザの動作（またはクライアントアプリケーションもしくはエンベデッドコントローラの動作）における単純な変更が必要とされる。少なくとも一実施形態において、クライアントデバイスに提供される変更済みＨＴＭＬウェブページは、クライアントデバイス上に表示され得る。変更済みＨＴＭＬウェブページに含まれる許可要求は、ユーザのプライベートデータへのアクセスを許可するのに必要とされることに関して、ユーザに対する複数の命令を提供し得る（例えば、「ログイン：」および「パスワード：」要求に代えて、ユーザは、「ログインおよびパスワードをアンロックするためにＯＴＰ番号を提供：」を見かける場合がある）。更に、プロキシにより受信されたプライベートデータの元の要求を送信したサービスに関連するプライベートデータアイテムが存在しない場合に、許可要求は、データストアをポピュレートする手順に関して、ユーザに複数の命令も提供し得る。
【００４８】
認証クレデンシャルに加えて、別の利点としては、任意のタイプのプライベートデータを保護する柔軟性が挙げられる。実際には、データをプライベートとして指定する段階は、プライベートデータを用いてデータストアをポピュレートする段階と、格納済みプライベートデータとの適切な関連性（例えば、サーバ、クライアントデバイス、ユーザ、クライアントアプリケーション、エンベデッドコントローラにより提供されるサービス）を作成する段階と、格納済みプライベートデータを、そのタイプを示す適切なタグまたは記述子に関連付ける段階とを含む。必要であれば、プロキシは、ネットワーク通信における当該タイプのプライベートデータに対する要求をサーバから認識するように容易に構成され得る。
【００４９】
本明細書において開示される少なくともいくつかの実施形態の別の利益は、パスワード変更に対する周期的なサーバの要求がプロキシの内部で、ユーザに対してトランスペアレントに処理され得ることである。プロキシは、サーバにより提供された特定のサービスに関連する１もしくは複数のプライベートデータアイテムに対応する１もしくは複数のクレデンシャル（例えば、失効パスワード）を変更する要求を、サーバから識別し得る。プロキシは、失効パスワードの変更を開始して、ユーザの関与を伴うことなくこのトランザクションを処理し、データストア１４５に新しい複数のクレデンシャルを反映し得る。このシナリオにおいて、ユーザは、パスワードを知っていることすら必要ではなく、これにより賄賂、強要または拷問に基づいた攻撃に対して追加のセキュリティを提供する。
【００５０】
また、システムの実装は、企業環境または他のマルチユーザ環境において複数の利点を提供する。セキュアプロキシ（例えば、プロキシ１４０）は、周囲のデバイスに実装され得、これによりプライベートデータを喪失するエンドポイント（例えば、クライアントデバイス１３０）のリスクを減少させる。企業におけるシステムの実装は、極めてコスト効率がよく、複数のエンドポイントに既存の複数のブラウザを収容し、ｂｒｉｎｇ−ｙｏｕｒ−ｏｗｎ−ｄｅｖｉｃｅ（ＢＹＯＤ）のシナリオに適合し得る。システムを開始すると、セキュアなストレージボールト（例えば、データストア１４５）は、セキュアな態様で別個にポピュレートされる。セキュアなストレージボールトをポピュレートするべく用いられる複数のデータアイテムは、各ユーザにより、自身が用いる全てのクライアントデバイスデバイスに提供され得る。セキュアなストレージボールトがポピュレートされると、システムは、識別されたクライアントデバイスが用いられる場合にプライベートデータの保護を提供することを開始し得る。企業環境において、本明細書において開示される複数の実施形態は、複数の外部サービス（例えば、１２２または２２２）へのアクセスを集中的およびトランスペアレントに管理することを可能にし得る。クレデンシャルは非表示で提供され得るので、全ての従業員が迅速なアクセスを享受する。要求されるクレデンシャルは、管理者により作成され、ユーザに対して完全にトランスペアレントに管理され得る。クライアントデバイス／ユーザ識別／認証の外部手段は、アクセス（例えば、入室ログ、ドメインログイン、ダイナミックホスト構成プロトコル（ＤＨＣＰ）によるＩＰアドレスの割り当て、バイオメトリック、多因子認証等）をアンロックするべく、使用され得る。
【００５１】
クライアントデバイス１３０、２３０、プロキシ１４０およびサーバ１２０、２２０に関連する内部構造物に関して、これらのデバイスは、本明細書において概説される複数の動作において用いられる複数の命令、ロジックおよび／もしくはコードを含む、データおよび情報を格納する揮発性および／もしくは不揮発性メモリ素子（例えば、メモリ素子１３８、１４８、２３８）を含み得る。適切であり、特定の必要性に基づく場合に、クライアントデバイス１３０、２３０、プロキシ１４０およびサーバ１２０、２２０は、任意の好適なメモリ素子（例えば、データおよび情報を格納することができるランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的ＥＰＲＯＭ（ＥＥＰＲＯＭ）、ディスクドライブ、フロッピー（登録商標）ディスク、コンパクトディスクＲＯＭ（ＣＤ―ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、フラッシュメモリ、光磁気ディスク、特定用途向け集積回路（ＡＳＩＣ）、もしくは他のタイプの不揮発性機械可読媒体）、ソフトウェア、ハードウェア、ファームウェア、またはその他の好適なコンポーネント、デバイス、素子もしくはオブジェクト内にデータおよび情報を保持し得る。本明細書において検討される複数のメモリアイテム（例えば、メモリ素子１３８、１４８、２３８）のいずれも、「メモリ素子」という広範な用語に包含されるものと解釈されるべきである。更に、クライアントデバイス１３０、２３０、プロキシ１４０およびサーバ１２０、２２０において用いられ、格納され、追跡され、送信され、もしくは受信される情報は、レポジトリ、データベース、レジスタ、キュー、テーブルもしくはキャッシュを含むが、これらに限定されない任意のストレージ構造で提供され得、これらの全てが、任意の好適な時間軸において参照され得る。また、任意のそのような複数のストレージ構造（例えば、データストア１４５、２４５）は、本明細書において用いられる「メモリ素子」という広範な用語に含まれ得る。
【００５２】
例示的な実装において、プロキシ１４０、２４０は、本明細書において概説される複数の動作を実現または促進するべく、複数のソフトウェアモジュール（例えば、変更モジュール１４１、応答モジュール１４２、保護されたデータストレージモジュール１４３）を含み得る。これらのモジュールは、任意の適切な態様で好適に組み合わされ、または分割され得、これは、具体的な構成および／またはプロビジョニングの必要性に基づき得る。いくつかの実施形態において、そのような動作の１または複数は、意図される機能を実現するべくこれらの要素外部に実装され、またはいくつかの他のコンピューティングデバイスに含まれたハードウェアおよび／またはファームウェアにより実行され得る。これらの要素は、本明細書において概説されるように、複数の動作を実現するべく、複数の他のコンピューティングデバイスと調整し得るソフトウェア（または往復ソフトウェア）を含む。
【００５３】
一定の例示的な実装において、本明細書において概説される複数の機能は、１もしくは複数の有形媒体（例えば、ＡＳＩＣにおいて提供されるエンベデッドロジック、デジタル信号プロセッサ（ＤＳＰ）命令、１もしくは複数のプロセッサにより実行されるソフトウェア（潜在的にはオブジェクトコードおよびソースコードを含む）、または他の類似のマシン等）においてエンコードされたロジックにより実装され得、これらは非一時的機械可読ストレージ媒体を含み得る。クライアントデバイス１３０、２３０、プロキシ１４０およびサーバ１２０、２２０は、本明細書において検討される複数のアクティビティを実行するロジックもしくはアルゴリズムを実行し得る１もしくは複数のプロセッサ（例えば、プロセッサ１３９、１４９、２３９）を含み得る。プロセッサは、データに関連付けられた任意のタイプの複数の命令を実行して、本明細書において詳述される複数の動作を実現し得る。一例において、複数のプロセッサは、要素または物品（例えば、データ）を、ある状態もしくは物から別の状態もしくは物へと変換し得る。別の例において、本明細書において概説される複数のアクティビティは、固定ロジックまたはプログラマブルロジック（例えば、プロセッサが実行する複数のソフトウェア／コンピュータ命令）で実装され、本明細書において特定される複数の要素は、いくつかのタイプのプログラマブルプロセッサ、プログラマブルデジタルロジック（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ）、または、デジタルロジック、ソフトウェア、コード、複数の電子命令、またはそれらの任意の好適な組み合わせを含むＡＳＩＣであり得る。本明細書において説明される複数の潜在的処理要素、モジュールおよび機械のいずれも、「プロセッサ」という広範な用語に包含されるものと解釈されるべきである。
【００５４】
図３を参照すると、簡略化されたインタラクション図が、少なくとも一実施形態による、クライアントデバイス１３０と、プロキシ１４０とサーバ１２０との間のネットワーク環境１００において行われ得る可能なインタラクションを図示する。少なくとも一実施形態において、プロキシ１４０の変更モジュール１４１および応答モジュール１４２は、プロキシ１４０に関連する１または複数のインタラクションおよびアクティビティを実行し得る。ブラウザ１３２は、クライアントデバイス１３０に関連する１または複数のインタラクションおよびアクティビティを実行し得る。サービス１２２は、プライベートデータに対する複数の要求を有する複数のオブジェクトを提供し得る。一般に、図３を参照して示され、説明される複数のインタラクションおよびアクティビティは、プロキシ２４０がクライアントデバイス２３０の信頼できる実行環境２３５に統合されている実施形態を図示する、図２のネットワーク環境２００の複数のインタラクションおよびアクティビティにも適用可能である。図３の例は、専ら潜在的なインタラクションの一例であり、特許請求の範囲を限定するものではない。例えば、モジュールの数が変わることがあり、コンポーネントの数が変わることがあり、特定のインタラクションが変わることがあり、インタラクションの順序が変わることがある、等である。
【００５５】
図３は、ユーザがインターネットを閲覧するべく、クライアントデバイス１３０のブラウザ１３２を用いている例示的なシナリオを図示する。この例示的なシナリオにおいて、サーバ１２０はウェブサーバであり、ネットワーク通信はＨＴＭＬウェブページを伴う。更に、データストア１４５がクライアントデバイス１３０のユーザのプライベートデータを用いて既にポピュレートされているものと仮定される。
【００５６】
最初に、クライアントデバイス１３０のブラウザ１３２を介して、ユーザは、アクセスする特定のウェブサーバ（例えば、特定のドメイン名、ネットワークアドレス、ＵＲＬ）を選択し得る。３０２において、クライアントデバイス１３０は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）の要求メッセージ等、ネットワーク通信を選択されたウェブサーバに送信する。プロキシ１４０は、ネットワーク通信を止める。通信は、プライベートデータのアンロックに対する許可の要求への応答ではないので、プロキシ１４０は、３０４において要求を宛先ウェブサーバであるサーバ１２０に転送する。
【００５７】
この例示的なシナリオにおいて、サーバ１２０は、ウェブサイト上にアカウントを作成した複数のユーザによるサービス（例えば、サービス１２２）へのアクセスのみを可能にする。３０６において、サーバ１２０は、サービスを用いて登録されたアカウント用のユーザ名およびパスワード等、ユーザのプライベートデータアイテムの要求を含む、ＨＴＭＬウェブページを送信することによりクライアントデバイス１３０に応答する。ＨＴＭＬウェブページがブラウザにより表示される場合、それは例えば、「ユーザ名：」および「パスワード：」の後に続く２つの空のボックスを含み、これは、特定のサービスに対してユーザ名およびパスワードを入力する命令として、ユーザに認識され得る。ＨＴＭＬウェブページ自体は、例えば金融機関のドメイン名であり得るＨＴＭＬウェブページに関連するサービスの識別子も含み得る。
【００５８】
プロキシ１４０は、ＨＴＭＬウェブページを用いてサーバ１２０からネットワークフローを止める。プロキシ１４０は、ＨＴＭＬウェブページを評価して、どのプライベートデータアイテムが要求されているかを判断し得る。次に、プロキシ１４０は、データストア１４５を探索して、クライアントデバイス１３０（および／またはユーザ）が、サーバ１２０のサービスに（例えば、ドメイン名、ウェブページのＵＲＬにより）やはり関連付けられたユーザ名およびパスワードに関連付けられているか否かを判断する。ユーザ名およびパスワードが見つかった場合、プロキシ１４０は、３０８においてサーバ１２０により要求されたプライベートデータアイテムにアクセスするべく、許可の要求を伴う変更済みＨＴＭＬウェブページを作成し得る。３１０において、プロキシ１４０は、クライアントデバイス１３０に対する許可の要求を含む変更済みＨＴＭＬウェブページを送信し得る。
【００５９】
クライアントデバイス１３０のブラウザ１３２は、プロキシ１４０から受信された変更済みＨＴＭＬウェブページを表示し得る。ウェブページは、ユーザがプロキシ１４０に、サーバ１２０により要求された複数のプライベートデータアイテムにアクセスして、それらをサーバ１２０に提供することを許可する複数の命令を提供し得る。一実施形態において、ユーザが帯域外通信において受信したワンタイムパスワードを提供するように、ユーザは命令され得る。３１２において、クライアントデバイス１３０は、ユーザにより提供された許可情報を有する応答を送信し得る。プロキシ１４０は、応答を止めて、許可情報が有効か否かを判断する。許可情報が有効であると判断されると、プロキシ１４０は、データストア１４５から要求された複数のプライベートデータアイテムを取得し得る。３１４において、プロキシ１４０は、サーバ１２０から、複数のプライベートデータアイテムを直接に元のＨＴＭＬウェブページに挿入することができる。３１６において、プロキシ１４０は、完成されたＨＴＭＬウェブページをサーバ１２０にアップロードし得る。従って、サーバ１２０により要求されたプライベートデータを保護するプロキシ１４０の動作は、サーバ１２０に対してトランスペアレントである。
【００６０】
図４は、本明細書において説明される複数の実施形態に関連し得る複数の動作の可能なフロー４００のフローチャートである。少なくとも一実施形態において、１または複数のセットの動作は、図４のアクティビティに対応する。プロキシ１４０、２４０、またはそれらの一部は、１もしくは複数のセットの動作を使用し得る。プロキシ１４０、２４０は、複数の動作を実行する、プロセッサ１４９、２３９等の手段を備え得る。一実施形態において、フロー４００の少なくともいくつかの動作は、変更モジュール（例えば１４１）により実行され得、フロー４００の少なくともいくつかの他の動作は、応答モジュール（例えば１４２）により実行され得る。図４のフロー４００は、データストア１４５、２４５が１または複数のサービスおよびネットワークエージェント（すなわち、ユーザ、クライアントデバイス、クライアントアプリケーション、エンベデッドコントローラ）に関連するプライベートデータを用いてポピュレートされている場合に、ネットワーク環境１００、２００において行われ得る。
【００６１】
フロー４００は、４０２において開始し得、プロキシは、ネットワーク通信（例えば、ＨＴＴＰ要求、ＦＴＰ要求等）をクライアントデバイスから受信する。ネットワーク通信は例えば、インターネットにおける特定のサーバに向けられ得、プロキシは、通信を止め得る。４０４において、プロキシは、ネットワーク通信を適切な宛先サーバ（例えば、ウェブサーバ、ＦＴＰサーバ等）に転送し得る。４０６において、プロキシは、クライアントデバイスへのサーバのネットワークフローを止め得る。サーバのネットワークフローは、クライアントデバイスにより送信され、プロキシにより転送されたネットワーク通信への応答であってもよい。
【００６２】
４０８において、プロキシは、ネットワークフローのオブジェクトにおいて、１または複数のプライベートデータアイテムがサーバから要求されているか否かを判断し得る。この判断は、オブジェクトの実際のコンテンツを評価する（例えば、「ユーザ名」、「パスワード」、「口座番号」等、プライベートデータの記載に続く空白のボックス等、プライベートデータ要求の表示のためのＨＴＭＬウェブページを検索すること）により行われ得る。応答がプライベートデータ要求を含まない場合、４０９において、プロキシは、不変のオブジェクトを有するネットワークフローをクライアントデバイスに転送し得、フロー４００は終了する。
【００６３】
４０８において、オブジェクトが１または複数のプライベートデータアイテムに対する要求を含まないと判断された場合、４１０においてプロキシは、対応する複数のプライベートデータアイテムがデータストアに格納されているか否かを判断し得る。プロキシは、要求されるプライベートデータのタイプ（例えば、ユーザ名、パスワード等）およびオブジェクトに関連するサービスの識別子（例えば、ドメイン名、サービスのＵＲＬ等）を判断し得る。プロキシが複数のユーザに対するプライベートデータを処理する場合、プロキシは、サーバからのネットワークフローに関連する宛先クライアントデバイスに対する識別子も判断し得る。いくつかの実施形態において、プロキシは、ネットワークフローに関連するユーザまたはクランアントアプリケーションの識別子を判断し得る。従って、プロキシは、データストアを探索して、サービス、プライベートデータのタイプ、および場合によってはクライアントデバイスとの関連性に少なくとも部分的に基づいて、対応するプライベートデータアイテムを識別し得る。また、いくつかの実施形態において、プロキシは、特定のユーザまたはクランアントアプリケーションとの関連性に基づいて、対応するプライベートデータアイテムを識別し得る。
【００６４】
対応するプライベートデータアイテムが見つからない場合、４１２においてプロキシは、適切な行動を取り得る。プロキシは、複数の不明のプライベートデータアイテムを用いてデータストアをポピュレートする手順に関して、ユーザに複数の命令を提供し得る。可能な一実施形態において、オブジェクトがクライアントデバイスのユーザにより要求されたＨＴＭＬウェブページである場合、プロキシは、ユーザを導いて複数の不明のプライベートデータアイテムを用いてデータストアをポピュレートする複数の命令により、クライアントデバイスのブラウザにより表示されるＨＴＭＬ文書を送信し得る。別の実施形態において、プロキシは、適切なエラーメッセージをクライアントデバイスに送信し得る。別の実施形態において、プロキシは、プライベートデータアイテムに対する要求を含む、オブジェクトに対する変更をすることなく、クライアントデバイスに応答を単に転送するだけでよい。フロー４００は、プロキシが４１２において示される行動を取った後、終了し得る。
【００６５】
４１０において、複数の対応するプライベートデータアイテムがデータストアにおいて見つかった場合、４１４においてプロキシは、要求された複数のプライベートデータアイテムにアクセスして当該複数のアイテムをサーバに提供することに対する許可の要求を有する変更済みオブジェクトを作成し得る。許可の要求は、任意の数のアンロックメカニズム（例えば、ワンタイムパスワード、バイオメトリック許可、多因子認証等）を用いて構成され得る。プライベートデータアイテムに用いられる特定のアンロックメカニズムは、プロキシにより判断され得、プライベートデータアイテムに関連する特定のネットワークエージェントに基づき得る。４１６において、変更済みオブジェクトは、クライアントデバイスに提供され得る。一実装において、図１に示されるように、変更済みオブジェクトは、ネットワークフローにおいてクライアントデバイスに送信され得る。図２に示される実装において、変更済みオブジェクトは、（例えば、ブラウザ、クライアントアプリケーションにより）信頼できる実行環境からクライアントデバイスに提供され得る。
【００６６】
４１８においてプロキシは、許可情報（例えば、ワンタイムパスワード、バイオメトリックデータ等）を含む応答を、クライアントデバイスから受信し得る。具体的な実装に応じて、この許可情報は、ユーザにより（例えば、クライアントデバイスのスクリーンを介して）、またはクライアントデバイスもしくはクライアントアプリケーション（例えば、特定のサービスを自動的に認証するクライアントデバイスもしくはクライアントアプリケーション）により、提供され得る。４２０においてプロキシは、許可情報の検証を試みる（例えば、ワンタイムパスワードが有効であるか否かを判断し、バイオメトリックデータが予期されるバイオメトリックデータに一致するか否かを判断するなど）。許可情報を検証する段階は、許可情報が有効であるか否かを判断する段階を有する。４２０において許可情報が有効でないと判断された場合、４２２においてプロキシは、エラーメッセージをクライアントデバイスに送信し得、フローは、新しい許可情報が受信されると、４１８に戻り得る。無効の許可情報が予め定められた回数（例えば、１または複数回）、受信された場合、プロキシは、追加の複数のメカニズムを呼び出して、許可されたユーザ（またはクライアントデバイスもしくはクライアントアプリケーション）が関係するプライベートデータへの許可されたアクセスを試みていることを保証し得る。
【００６７】
４２０において、許可情報が有効であると判断された場合、４２４においてプロキシは、サーバから受信された元のオブジェクトにおける１もしくは複数の要求されたプライベートデータアイテムに対応する、データストアからの１もしくは複数のプライベートデータアイテムを取得し得る。４２６においてプロキシは、１または複数のプライベートデータアイテムを用いてサーバに対する応答を準備し得る。例えば、プライベートデータ要求がＨＴＭＬウェブページを介して送信された場合、プロキシは、適切な箇所（例えば、データ入力ボックス）において、複数のプライベートデータアイテムを直接にＨＴＭＬウェブページに挿入し得る。４２８において、複数のプライベートデータアイテムを含む応答は、（例えば、ＨＴＴＰ  ＰＯＳＴ形式として）サーバに送信され得、フロー４００は終了する。
【００６８】
図５は、一実施形態によるプロセッサの例示的な図示である。プロセッサ５００は、クライアントデバイス１３０および２３０のプロセッサ１３９および２３９の各々のうち１もしくは複数、ならびにプロキシ１４０のプロセッサ１４９の可能な一実施形態である。プロセッサ５００は、マイクロプロセッサ、エンベデッドプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、マルチコアプロセッサ、シングルコアプロセッサ、またはコードを実行する他のデバイス等、任意のタイプのプロセッサであり得る。１つのプロセッサ５００のみが図５に図示されているが、あるいは、処理要素は図５に図示されるプロセッサ５００のうち２つ以上を含んでもよい。プロセッサ５００は、シングルスレッドコアであってもよく、少なくとも一実施形態については、プロセッサ５００は、１コア当たり２つ以上のハードウェアスレッドコンテキスト（または「ロジックプロセッサ」）を含み得るように、マルチスレッド化されてもよい。
【００６９】
また、図５は、一実施形態によるプロセッサ５００に結合されたメモリ５０２を図示する。メモリ５０２は、クライアントデバイスプラットフォーム１００におけるメモリ素子１１４の一実施形態である。メモリ５０２は、既知の、またはそうでなければ当業者に入手可能な、多種多様なメモリ（メモリ階層の様々なレイヤを含む）のうちのいずれかであってよい。そのような複数のメモリ素子としては、ランダムアクセスメモリ（ＲＡＭ）リードオンリメモリ（ＲＯＭ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）のロジックブロック、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）および電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）が挙げられ得るが、これらに限定されない。
【００７０】
コード５０４は、プロセッサ５００により実行される１または複数の命令であってもよく、メモリ５０２に格納されてもよい。コード５０４は、適切であり、具体的な必要性に基づく場合に、ソフトウェア、ハードウェア、ファームウェアまたはこれらの任意の好適な組み合わせに格納され、またはその他内部もしくは外部コンポーネント、デバイス、エレメント、またはオブジェクトに格納され得る様々なモジュール（例えば、変更モジュール１４１、応答モジュール、保護されたデータストレージモジュール１４３等）の命令を含み得る。一例において、プロセッサ５００は、コード５０４により示された複数の命令のプログラムシーケンスに従い得る。各命令は、フロントエンドロジック５０６に入力され、１または複数のデコーダ５０８により処理される。デコーダは、その出力として、予め定義されたフォーマットの固定幅のマイクロオペレーション等のマイクロオペレーションを生成してもよく、または元のコード命令を反映する他の複数の命令、マイクロ命令もしくは制御信号を生成してもよい。フロントエンドロジック５０６は、一般に複数のリソースを割り当て、実行のために命令に対応するオペレーションをキューに登録する、レジスタリネーミングロジック５１０およびスケジューリングロジック５１２も含む。
【００７１】
また、プロセッサ５００は、１セットの実行ユニット５１６―１〜５１６―Ｍを有する実行ロジック５１４を含み得る。いくつかの実施形態は、特定の複数の機能または複数のセットの機能に専用のいくつかの実行ユニットを含み得る。複数の他の実施形態は、特定の機能を実行し得る１つの実行ユニット、またはそのような１つの実行ユニットのみを含んでよい。実行ロジック５１４は複数のコード命令により指定された複数の動作を実行し得る。
【００７２】
複数のコード命令により指定された複数の動作の実行が完了した後、バックエンドロジック５１８はコード５０４の複数の命令をリタイアし得る。一実施形態において、プロセッサ５００はアウトオブオーダ実行を可能にするが、複数の命令のインオーダリタイアメントを要求する。リタイアメントロジック５２０は、様々な既知の形態（例えば、リオーダバッファ等）を取り得る。このように、プロセッサ５００は、少なくとも、レジスタリネーミングロジック５１０により使用されるデコーダ、複数のハードウェアレジスタおよび複数のテーブル、ならびに実行ロジック５１４により変更される複数の任意のレジスタ（図示せず）が生成する出力に関して、コード５０４の実行中に変換される。
【００７３】
図５には示されないが、処理要素は、プロセッサ５００を有するチップ上に他の複数の要素を含み得る。例えば、処理要素は、プロセッサ５００と共にメモリ制御ロジックを含んでもよい。処理要素は、Ｉ／Ｏ制御ロジックを含んでもよく、および／または、メモリ制御ロジックと統合されるＩ／Ｏ制御ロジックを含んでもよい。また、処理要素は、１または複数のキャッシュを含んでもよい。またいくつかの実施形態において、不揮発性メモリ（フラッシュメモリまたはヒューズ等）は、プロセッサ５００を有するチップに含まれ得る。図２を参照して示され、説明される実施形態において、信頼できる実行環境２３５を提供してデータストア２４５を保護するべく、メモリ５０２の一部は暗号化され、プロキシコード２４０以外のいずれのコードにもアクセス不可能になる場合がある。（例えば、デジタル方式で署名された）特別に作成されたコードのみが、環境２３５内で実行されるように構成され得る。
【００７４】
図６は、コンピューティングシステム６００が一実施形態によるポイントツーポイント（ＰｔＰ）構成で配置されたコンピューティングデバイスの１つの可能な例であることを図示する。具体的には、図６は、プロセッサ、メモリおよび入力／出力デバイスがいくつかのポイントツーポイントインターフェースにより相互接続されたシステムを示す。少なくとも一実施形態において、本明細書において示され、説明されるクライアントデバイス１３０、２３０、プロキシ１４０およびサーバ１２０、２２０のうち１または複数は、例示的なコンピューティングシステム６００と同一であるかまたは類似する態様で構成され得る。
【００７５】
プロセッサ６７０および６８０も各々、集積メモリコントローラロジック（ＭＣ）６７２および６８２を含み、メモリ素子６３２および６３４と通信し得る。代替的な実施形態において、メモリコントローラロジック６７２および６８２は、プロセッサ６７０および６８０とは独立した別個のロジックであってもよい。本明細書において概説されるように、メモリ素子６３２および／または６３４は、プライベートデータの保護に関連する複数の動作を実現する際にプロセッサ６７０および６８０により用いられる様々なデータを格納し得る。
【００７６】
プロセッサ６７０および６８０は、図５のプロセッサ５００、図１のプロセッサ１３９、１４９および図２のプロセッサ２３９を参照して検討されたもの等、任意のタイプのプロセッサであってもよい。プロセッサ６７０および６８０は各々、ポイントツーポイントインターフェース回路６７８及び６８８を用いて、ポイントツーポイント（ＰｔＰ）インターフェース６５０を介してデータを交換し得る。プロセッサ６７０および６８０は各々、ポイントツーポイントインターフェース回路６７６、６８６、６９４および６９８を用い、個々のポイントツーポイントインターフェース６５２および６５４を介して制御ロジック６９０とデータを交換し得る。本明細書において示されるように、制御ロジックは、処理要素６７０および６８０とは別個である。しかし、一実施形態において、制御ロジック６９０は同一のチップ上に処理要素６７０および６８０として統合されている。また、制御ロジック６９０は、より少ないか、またはより多い集積回路を用いて異なる分割をされ得る。更に、制御ロジック６９０も、ＰｔＰインターフェース回路であり得るインターフェース回路６９２を用い、高性能グラフィックスインターフェース６３９を介して高性能グラフィックス回路６３８とデータを交換し得る。複数の代替的な実施形態において、図６に図示される複数のＰｔＰリンクのうちのいずれかまたは全てが、ＰｔＰリンクではなくマルチドロップバスとして実装され得る。
【００７７】
制御ロジック６９０は、インターフェース回路６９６を介してバス６２０と通信し得る。バス６２０は、バスブリッジ６１８およびＩ／Ｏデバイス６１６等、バスを介して通信する１または複数のデバイスを有し得る。バス６１０を介して、バスブリッジ６１８は、キーボード／マウス６１２（もしくはタッチスクリーン、トラックボール、ジョイスティック等の他の入力デバイス）、通信デバイス６２６（モデム、ネットワークインターフェースデバイスもしくはコンピュータネットワーク６６０を介して通信し得る他のタイプの通信デバイス等）、オーディオＩ／Ｏデバイス６１４、および／またはデータストレージデバイス６２８等、複数の他のデバイスと通信し得る。データストレージデバイス６２８は、プロセッサ６７０および／または６８０により実行され得るコード６３０を格納し得る。複数の代替的な実施形態において、複数のバスアーキテクチャのうちの任意の部分は、１または複数のＰｔＰリンクを用いて実装され得る。
【００７８】
図６に図示されるコンピュータシステムは、本明細書において検討される様々な実施形態を実装するべく使用され得るコンピューティングシステムの一実施形態の概略図である。本明細書において提供される様々な実施形態により、図６に図示されるシステムの様々なコンポーネントは、プライベートデータの保護を実現することができるシステムオンチップ（ＳｏＣ）アーキテクチャまたはその他の好適な構成で組み合わされされ得ることが理解されるであろう。
【００７９】
本明細書において提供される複数の例において、インタラクションは、２つ、３つまたはそれより多いコンピューティングデバイスに関して説明される場合があることに留意されたい。しかし、これは、明確さおよび例示のみの目的でそのようにしている。一定の場合に、限定された数のコンピューティングデバイスのみを参照することにより、所与のセットのフローの複数の機能のうち１または複数を記載する方がより容易な場合がある。更に、プライベートデータ保護システムは、容易にスケーラブルであり、多数のコンポーネント、ならびにより複雑化／高性能の配置および構成全体で実装され得る。従って、提供される複数の例は、無数の他のアーキテクチャに潜在的に適用されるプライベートデータ保護システムの広範な教示の範囲を限定し、またはこれを阻むべきではない。
【００８０】
また、図１〜６を参照して説明された複数の動作は、ネットワーク環境１００および２００により、もしくはこれらの内部において実行され得る、可能なプライベートデータ保護の複数のアクティビティのいくつかのみを図示するものであることに留意するのが重要である。これらの動作のいくつかは、適切な場合には削除もしくは除去されてよく、またはこれらの動作は、本開示の範囲を逸脱することなく相当に修正もしくは変更されてもよい。更にこれらの動作のタイミングは、相当に変更されてもよい。前述の複数の動作フローは、例示および検討の目的のために提供されている。本開示の教示を逸脱することなく、任意の好適な配置、時系列、構成およびタイミングメカニズムを提供し得るように、実質的な柔軟性が本明細書において説明される複数の実施形態により提供されている。
【００８１】
本開示は、特定の配置および構成を参照して詳細に説明されているが、これらの例示的な構成および配置は、本開示の範囲を逸脱することなく相当に変更されてもよい。更に、ネットワーク環境１００および２００は、プライベートデータ保護のアクティビティを容易にする特定の要素および動作を参照して図示されているが、これらの要素および動作は、プライベートデータ保護システムの意図される機能を実現する任意の好適なアーキテクチャ、プロトコルおよび／または処理により代替され得る。  他の注記および例
【００８２】
以下の複数の例は、本明細書による実施形態に関する。また、上記の装置およびシステムの全ての任意選択の機能は、本明細書において説明される方法もしくは処理に対して実装されてもよく、例における具体的な事柄は、１もしくは複数の実施形態のいずれかの箇所において用いられてもよいことに留意されたい。
【００８３】
例１は、プライベートデータを保護するべく、複数の命令が格納された少なくとも１つの機械可読ストレージ媒体であって、複数の命令は、少なくとも１つのプロセッサにより実行されると、少なくとも１つのプロセッサに、サーバからクライアントデバイスへの途中でネットワークフローを止めさせ、ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別し、データストアにおけるプライベートデータアイテムを識別させ、クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供させ、有効な許可情報が受信されたときに、プライベートデータアイテムをサーバに送信させる、少なくとも１つの機械可読ストレージ媒体である。
【００８４】
例２において、例１の主題は、少なくとも１つのプロセッサにより実行されると、少なくとも１つのプロセッサに更に、クライアントデバイスから許可情報を受信させ、許可情報が有効か否かを判断させ、許可情報が有効であると判断された場合に、プライベートデータアイテムを取得させる複数の命令を任意選択で含み得る。
【００８５】
例３において、例１〜２のいずれか１つの主題は、少なくとも１つのプロセッサにより実行されると、少なくとも１つのプロセッサに更に、プライベートデータアイテムのためのアンロックメカニズムを決定させ、アンロックメカニズムに少なくとも部分的に基づいて、許可要求を含む変更済みオブジェクトを作成させる複数の命令を任意選択で含み得る。
【００８６】
例４において、例３の主題は、ワンタイムパスワード、ユーザのバイオメトリック識別および多因子認証処理を含む複数のアンロックメカニズムの群から選択されるアンロックメカニズムを任意選択で含み得る。
【００８７】
例５において、例１〜４のいずれか１つの主題は、少なくとも１つのプロセッサにより実行されると、少なくとも１つのプロセッサに更に、プライベートデータアイテムの要求により示されたデータのタイプを判断させ、データストアにおけるプライベートデータアイテムは、データのタイプおよびサーバにより提供されたサービスに関連付けられる複数の命令を任意選択で含み得る。
【００８８】
例６において、例１〜５のいずれか１つの主題は、クライアントデバイス、クライアントデバイスのユーザおよびクライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも１つに関連付けられる、データストアにおけるプライベートデータアイテムを任意選択で含み得る。
【００８９】
例７において、例１〜６のいずれか１つの主題は、パスワードであるプライベートデータアイテムを任意選択で含み得る。
【００９０】
例８において、例１〜７のいずれか１つの主題は、許可情報が有効でない場合に、サーバに提供されないプライベートデータアイテムを任意選択で含み得る。
【００９１】
例９において、例１〜８のいずれか１つの主題は、ハイパーテキストマークアップ言語（ＨＴＭＬ）ウェブページであるオブジェクトを任意選択で含み得る。
【００９２】
例１０において、例９の主題は、少なくとも１つのプロセッサにより実行されると、少なくとも１つのプロセッサに更に、プライベートデータアイテムをデータストアから取得させ、
有効な許可情報が受信されたときに、プライベートデータアイテムをＨＴＭＬウェブページに挿入することによりＨＴＭＬウェブページを完成させ、完成されたＨＴＭＬウェブページに基づいて、サーバに応答を送信させる命令を任意選択で含み得る。
【００９３】
例１１において、例１〜１０のいずれか１つの主題は、複数のセットの１または複数のプライベートデータアイテムを含むデータストアを任意選択で含み得、複数のセットは、各々、複数のサービスに関連付けられる。
【００９４】
例１２において、例１〜１０のいずれか１つの主題は、複数のセットのデータを含むプロキシを任意選択で含み得、複数のセットのデータの各々は、少なくとも１つのネットワークエージェントに関連付けられ、データの各セットは、少なくとも１つのプライベートデータアイテムの１または複数のセットを含み、特定のセットのデータにおける少なくとも１つのプライベートデータアイテムの１または複数のセットは、各々、複数の異なるサービスに関連付けられる。
【００９５】
例１３において、例１〜１２のいずれか１つの主題は、ユーザがブラウザを介してサーバにアクセスすることを可能にするように構成されたコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたクライアントアプリケーションを含むコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたエンベデッドコントローラとを含む複数のクライアントデバイスの群から選択されるクライアントデバイスを任意選択で含み得る。
【００９６】
例１４において、例１〜１３のいずれか１つの主題は、少なくとも１つのプロセッサにより実行されると、少なくとも１つのプロセッサに更に、サーバからクライアントデバイスへの途中で別のネットワークフローを止めさせ、サーバにより提供された特定のサービスに関連する１または複数の特定のプライベートデータアイテムに対応する１または複数のクレデンシャルを変更する要求を識別させ、ネットワークフローをクライアントデバイスに転送することなく、１または複数の新しいクレデンシャルを選択させ、１または複数の新しいクレデンシャルを用いて、データストアにおける１または複数の特定のプライベートデータアイテムを更新させる複数の命令を任意選択で含み得る。
【００９７】
例１５において、例１〜１４のいずれか１つの主題は、信頼できる実行環境においてクライアントデバイス上での実行のために構成される複数の命令を任意選択で含み得る。
【００９８】
例１６において、例１〜１４のいずれか１つの主題は、クライアントデバイスとは別個のプロキシにおいて実装される少なくとも１つの機械可読ストレージ媒体を任意選択で含み得る。
【００９９】
例１７は、データを保護する装置であって、少なくとも１つのメモリ素子と、少なくとも１つのメモリ素子に結合された少なくとも１つのプロセッサと、少なくとも１つのプロセッサにより実行されると、ネットワークフローがサーバからクライアントデバイスへの途中にある場合に、装置により止められたネットワークフローのオブジェクトにおけるプライベートデータアイテムに対する要求を識別し、データストアにおけるプライベートデータアイテムを識別し、クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供するように構成された変更モジュールと、少なくとも１つのプロセッサにより実行されると、有効な許可情報が受信される場合に、プライベートデータアイテムをサーバに送信するように構成された応答モジュールとを備える装置である。
【０１００】
例１８において、例１７の主題は、許可情報をクライアントデバイスから受信し、許可情報が有効であるか否かを判断し、許可情報が有効であると判断された場合にプライベートデータアイテムを取得するように更に構成される応答モジュールを任意選択で含み得る。
【０１０１】
例１９において、例１７〜１８のいずれか１つの主題は、プライベートデータアイテムのためのアンロックメカニズムを決定し、アンロックメカニズムに少なくとも部分的に基づいて、許可要求を含む変更済みオブジェクトを作成するように更に構成される変更モジュールを任意選択で含み得る。
【０１０２】
例２０において、例１９の主題は、ワンタイムパスワード、ユーザのバイオメトリック識別および多因子認証処理を含む複数のアンロックメカニズムの群から選択されるアンロックメカニズムを任意選択で含み得る。
【０１０３】
例２１において、例１７〜２０のいずれか１つの主題は、プライベートデータアイテムに対する要求により示されたデータのタイプを判断するように更に構成された変更モジュールを任意選択で含み得、データストアにおけるプライベートデータアイテムは、データのタイプおよびサーバにより提供されたサービスに関連付けられる。
【０１０４】
例２２において、例１７〜２１のいずれか１つの主題は、クライアントデバイス、クライアントデバイスのユーザおよびクライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも１つに関連付けられる、データストアにおけるプライベートデータアイテムを任意選択で含み得る。
【０１０５】
例２３において、例１７〜２２のいずれか１つの主題は、パスワードであるプライベートデータアイテムを任意選択で含み得る。
【０１０６】
例２４において、例１７〜２３のいずれか１つの主題は、許可情報が有効でない場合に、サーバに提供されないプライベートデータアイテムを任意選択で含み得る。
【０１０７】
例２５において、例１７〜２４のいずれか１つの主題は、ハイパーテキストマークアップ言語（ＨＴＭＬ）ウェブページであるオブジェクトを任意選択で含み得る。
【０１０８】
例２６において、例２５の主題は、有効な許可情報が受信された場合に、プライベートデータアイテムをデータストアから取得し、有効な許可情報が受信された場合に、プライベートデータアイテムをＨＴＭＬウェブページに挿入することによりＨＴＭＬウェブページを完成させ、完成されたＨＴＭＬウェブページに基づいて、サーバに応答を送信するように更に構成された応答モジュールを任意選択で含み得る。
【０１０９】
例２７において、例１７〜２６のいずれか１つの主題は、複数のセットの１または複数のプライベートデータアイテムを含むデータストアを任意選択で含み得、複数のセットは、各々、複数のサービスに関連付けられる。
【０１１０】
例２８において、例１７〜２６のいずれか１つの主題は、複数のセットのデータを含むプロキシを任意選択で含み得、複数のセットのデータの各セットは、少なくとも１つのネットワークエージェントに関連付けられ、データの各セットは、少なくとも１つのプライベートデータアイテムの１または複数のセットを含み、特定のセットのデータにおける少なくとも１つのプライベートデータアイテムの１または複数のセットは、各々、複数の異なるサービスに関連付けられる。
【０１１１】
例２９において、例１７〜２８のいずれか１つの主題は、ユーザがブラウザを介してサーバにアクセスすることを可能にするように構成されたコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたクライアントアプリケーションを含むコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたエンベデッドコントローラとを含む複数のクライアントデバイスの群から選択されるクライアントデバイスを任意選択で含み得る。
【０１１２】
例３０において、例１７〜２９のいずれか１つの主題は、サーバからクライアントデバイスへの途中で別のネットワークフローを止め、サーバにより提供された特定のサービスに関連する１または複数の特定のプライベートデータアイテムに対応する１または複数のクレデンシャルを変更する要求を識別し、ネットワークフローをクライアントデバイスに転送することなく、１または複数の新しいクレデンシャルを選択し、１または複数の新しいクレデンシャルを用いて、データストアにおける１または複数の特定のプライベートデータアイテムを更新するように更に構成された変更モジュールを任意選択で含み得る。
【０１１３】
例３１において、例１７〜３０のいずれか１つの主題は、任意選択でクライアントデバイスを更に有する装置を備え、クライアントデバイスは、信頼できる実行環境を含み、変更モジュールおよび応答モジュールは、信頼できる実行環境のみにおいて実行される。
【０１１４】
例３２において、例１７〜３０のいずれか１つの主題は、前記クライアントデバイスとは別個のプロキシである装置を任意選択で含み得る。
【０１１５】
例３３は、プライベートデータを保護する方法であって、サーバからクライアントデバイスへの途中でネットワークフローをプロキシにより止める段階と、ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する段階と、データストアにおけるプライベートデータアイテムを識別する段階と、クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供させて、有効な許可情報が受信されたときに、プライベートデータアイテムをサーバに送信する段階とを備える、方法である。
【０１１６】
例３４において、例３３の主題は、クライアントデバイスから許可情報を受信する段階と、許可情報が有効か否かを判断する段階と、許可情報が有効であると判断された場合に、プライベートデータアイテムを取得する段階とを任意選択で含み得る。
【０１１７】
例３５において、例３３−３４のいずれか１つの主題は、プライベートデータアイテムのためのアンロックメカニズムを決定する段階と、アンロックメカニズムに少なくとも部分的に基づいて、許可要求を含む変更済みオブジェクトを作成する段階とを任意選択で含み得る。
【０１１８】
例３６において、例３５の主題は、ワンタイムパスワード、ユーザのバイオメトリック識別および多因子認証処理を含む複数のアンロックメカニズムの群から選択されるアンロックメカニズムを任意選択で含み得る。
【０１１９】
例３７において、例３３〜３６のいずれか１つの主題は、プライベートデータアイテムに対する要求により示されたデータのタイプを判断するように更に構成された変更モジュールを任意選択で含み得、データストアにおけるプライベートデータアイテムは、データのタイプおよびサーバにより提供されたサービスに関連付けられる。
【０１２０】
例３８において、例３３〜３７のいずれか１つの主題は、クライアントデバイス、クライアントデバイスのユーザおよびクライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも１つに関連付けられる、データストアにおけるプライベートデータアイテムを任意選択で含み得る。
【０１２１】
例３９において、例３３〜３８のいずれか１つの主題は、パスワードであるプライベートデータアイテムを任意選択で含み得る。
【０１２２】
例４０において、例３３〜３９のいずれか１つの主題は、許可情報が有効でない場合に、サーバに提供されないプライベートデータアイテムを任意選択で含み得る。
【０１２３】
例４１において、例３３−４０のいずれか１つの主題は、ハイパーテキストマークアップ言語（ＨＴＭＬ）ウェブページであるオブジェクトを任意選択で含み得る。
【０１２４】
例４２において、例４１の主題は、有効な許可情報が受信された場合に、プライベートデータアイテムをデータストアから取得する段階と、有効な許可情報が受信された場合に、プライベートデータアイテムをＨＴＭＬウェブページに挿入することによりＨＴＭＬウェブページを完成させる段階と、完成されたＨＴＭＬウェブページに基づいて、サーバに応答を送信する段階とを任意選択で含み得る。
【０１２５】
例４３において、例３３〜４２のいずれか１つの主題は、複数のセットの１または複数のプライベートデータアイテムを含むデータストアを任意選択で含み得、複数のセットは、各々、複数のサービスに関連付けられる。
【０１２６】
例４４において、例３３〜４２のいずれか１つの主題は、複数のセットのデータを含むプロキシを任意選択で含み得、複数のセットのデータの各セットは、少なくとも１つのネットワークエージェントに関連付けられ、データの各セットは、少なくとも１つのプライベートデータアイテムの１または複数のセットを含み、特定のセットのデータにおける少なくとも１つのプライベートデータアイテムの１または複数のセットは、各々、複数の異なるサービスに関連付けられる。
【０１２７】
例４５において、例３３〜４４のいずれか１つの主題は、ユーザがブラウザを介してサーバにアクセスすることを可能にするように構成されたコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたクライアントアプリケーションを含むコンピューティングデバイスと、サーバにより提供されたサービスを自動的に認証するように構成されたエンベデッドコントローラとを含む複数のクライアントデバイスの群から選択されるクライアントデバイスを任意選択で含み得る。
【０１２８】
例４６において、例３３〜４５のいずれか１つの主題は、サーバからクライアントデバイスへの途中で別のネットワークフローを止める段階と、サーバにより提供された特定のサービスに関連する１または複数の特定のプライベートデータアイテムに対応する１または複数のクレデンシャルを変更する要求を識別する段階と、ネットワークフローをクライアントデバイスに転送することなく、１または複数の新しいクレデンシャルを選択する段階と、１または複数の新しいクレデンシャルを用いて、データストアにおける１または複数の特定のプライベートデータアイテムを更新する段階とを任意選択で含み得る。
【０１２９】
例４７において、例３３−４６のいずれか１つの主題は、プライベートデータアイテムに対する要求を識別する段階と、データストアにおけるプライベートデータアイテムを識別する段階と、信頼できる実行環境において、クライアントデバイス上で実行されるクライアントデバイスに変更済みオブジェクトを提供する段階とを任意選択で含み得る。
【０１３０】
例４８において、例３３〜４６のいずれか１つの主題は、クライアントデバイスとは別個のプロキシを任意選択で含み得る。
【０１３１】
例４９は、プライベートデータを保護する装置であり、装置は、例３３〜４８のいずれか１つの方法を実行する手段を備える。
【０１３２】
例５０において、例４９の主題は、少なくとも１つのプロセッサと、少なくとも１つのメモリ素子を有する方法を実行する手段を任意選択で含み得る。
【０１３３】
例５１において、例５０の主題は、実行されると、装置に例３３〜４８のいずれか１つの方法を実行させる複数の機械可読命令を有する少なくとも１つのメモリ素子を任意選択で備え得る。
【０１３４】
例５２において、例４９〜５１のいずれか１つの主題は、コンピューティングデバイスである装置を任意選択で備え得る。
【０１３５】
例５３は、プライベートデータを保護する複数の命令を備える少なくとも１つの機械可読ストレージ媒体であり、複数の命令は、実行されると、例１７〜４８のいずれか１つに列記された方法もしくは装置を実装もしくは実現する。
【０１３６】
例５４は、プライベートデータを保護する装置であって、装置は、サーバからクライアントデバイスへの途中でネットワークフローをプロキシにより止めるための手段と、ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別するための手段と、データストアにおけるプライベートデータアイテムを識別するための手段と、クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供するための手段と、有効な許可情報が受信されたときに、プライベートデータアイテムをサーバに送信するための手段とを備える。
（項目１）
プライベートデータを保護するべく、複数の命令が格納された少なくとも１つの機械可読ストレージ媒体であって、
上記複数の命令は、少なくとも１つのプロセッサにより実行されると、上記少なくとも１つのプロセッサに、
サーバからクライアントデバイスへの途中でネットワークフローを止めさせ、
上記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別し、
データストアにおける上記プライベートデータアイテムを識別させ、
上記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供させ、
有効な許可情報が受信されたときに、上記プライベートデータアイテムを上記サーバに送信させる、少なくとも１つの機械可読ストレージ媒体。
（項目２）
上記複数の命令は、上記少なくとも１つのプロセッサにより実行されると、上記少なくとも１つのプロセッサに更に、
上記クライアントデバイスから許可情報を受信させ、
上記許可情報が有効か否かを判断させ、
上記許可情報が有効であると判断された場合に、上記プライベートデータアイテムを取得させる、項目１に記載の少なくとも１つの機械可読ストレージ媒体。
（項目３）
上記複数の命令は、上記少なくとも１つのプロセッサにより実行されると、上記少なくとも１つのプロセッサに更に、
上記プライベートデータアイテムのためのアンロックメカニズムを決定させ、
上記アンロックメカニズムに少なくとも部分的に基づいて、上記許可要求を含む上記変更済みオブジェクトを作成させる、項目１に記載の少なくとも１つの機械可読ストレージ媒体。
（項目４）
上記アンロックメカニズムは、ワンタイムパスワード、ユーザのバイオメトリック識別および多因子認証処理を含む複数のアンロックメカニズムの群から選択される、項目３に記載の少なくとも１つの機械可読ストレージ媒体。
（項目５）
上記複数の命令は、上記少なくとも１つのプロセッサにより実行されると、上記少なくとも１つのプロセッサに更に、
上記プライベートデータアイテムの上記要求により示されたデータのタイプを判断させ、
上記データストアにおける上記プライベートデータアイテムは、データの上記タイプおよび上記サーバにより提供されたサービスに関連付けられる、項目１に記載の少なくとも１つの機械可読ストレージ媒体。
（項目６）
上記データストアにおける上記プライベートデータアイテムは、上記クライアントデバイス、上記クライアントデバイスのユーザ、および上記クライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも１つに関連付けられる、項目１に記載の少なくとも１つの機械可読ストレージ媒体。
（項目７）
上記プライベートデータアイテムは、パスワードである、項目１に記載の少なくとも１つの機械可読ストレージ媒体。
（項目８）
上記プライベートデータアイテムは、上記許可情報が有効でない場合に、上記サーバに提供されない、項目１に記載の少なくとも１つの機械可読ストレージ媒体。
（項目９）
上記オブジェクトは、ハイパーテキストマークアップ言語（ＨＴＭＬ）ウェブページである、項目１に記載の少なくとも１つの機械可読ストレージ媒体。
（項目１０）
上記複数の命令は、上記少なくとも１つのプロセッサにより実行されると、上記少なくとも１つのプロセッサに更に、
上記プライベートデータアイテムを上記データストアから取得させ、
上記有効な許可情報が受信されたときに、上記プライベートデータアイテムを上記ＨＴＭＬウェブページに挿入することにより上記ＨＴＭＬウェブページを完成させ、
上記完成されたＨＴＭＬウェブページに基づいて、上記サーバに応答を送信させる、項目９に記載の少なくとも１つの機械可読ストレージ媒体。
（項目１１）
上記データストアは、複数のセットの１または複数のプライベートデータアイテムを含み、
上記複数のセットは、各々、複数のサービスに関連付けられる、項目１〜１０のいずれか一項に記載の少なくとも１つの機械可読ストレージ媒体。
（項目１２）
プロキシは、複数のセットのデータを含み、
上記複数のセットのデータの各セットは、少なくとも１つのネットワークエージェントに関連付けられ、
データの各セットは、少なくとも１つのプライベートデータアイテムの１または複数のセットを含み、
特定のセットのデータにおける上記少なくとも１つのプライベートデータアイテムの１または複数のセットは、各々、複数の異なるサービスに関連付けられる、項目１〜１０のいずれか一項に記載の少なくとも１つの機械可読ストレージ媒体。
（項目１３）
上記クライアントデバイスは、
ユーザがブラウザを介して上記サーバにアクセスすることを可能にするように構成されたコンピューティングデバイスと、
上記サーバにより提供されたサービスを自動的に認証するように構成されたクライアントアプリケーションを含むコンピューティングデバイスと、
上記サーバにより提供された上記サービスを自動的に認証するように構成されたエンベデッドコントローラとを含む複数のクライアントデバイスの群から選択される、項目１〜１０のいずれか一項に記載の少なくとも１つの機械可読ストレージ媒体。
（項目１４）
上記複数の命令は、上記少なくとも１つのプロセッサにより実行されると、上記少なくとも１つのプロセッサに更に、
上記サーバから上記クライアントデバイスへの途中で別のネットワークフローを止めさせ、
上記サーバにより提供された特定のサービスに関連する１または複数の特定のプライベートデータアイテムに対応する１または複数のクレデンシャルを変更する要求を識別させ、
上記ネットワークフローを上記クライアントデバイスに転送することなく、１または複数の新しいクレデンシャルを選択させ、
上記１または複数の新しいクレデンシャルを用いて、上記データストアにおける上記１または複数の特定のプライベートデータアイテムを更新させる、項目１〜１０のいずれか一項に記載の少なくとも１つの機械可読ストレージ媒体。
（項目１５）
上記複数の命令は、信頼できる実行環境において上記クライアントデバイス上での実行のために構成される、項目１〜１０のいずれか一項に記載の少なくとも１つの機械可読ストレージ媒体。
（項目１６）
上記少なくとも１つの機械可読ストレージ媒体は、上記クライアントデバイスとは別個のプロキシにおいて実装される、項目１〜１０のいずれか一項に記載の少なくとも１つの機械可読ストレージ媒体。
（項目１７）
データを保護する装置であって、
少なくとも１つのメモリ素子と、
上記少なくとも１つのメモリ素子に結合された少なくとも１つのプロセッサと、
上記少なくとも１つのプロセッサにより実行されると、
ネットワークフローがサーバからクライアントデバイスへの途中にある場合に、上記装置により止められた上記ネットワークフローのオブジェクトにおけるプライベートデータアイテムに対する要求を識別し、
データストアにおける上記プライベートデータアイテムを識別し、
上記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供するように構成された変更モジュールと、
少なくとも１つのプロセッサにより実行されると、有効な許可情報が受信される場合に、上記プライベートデータアイテムを上記サーバに送信するように構成された応答モジュールとを備える装置。
（項目１８）
上記応答モジュールは更に、
許可情報を上記クライアントデバイスから受信し、
上記許可情報が有効であるか否かを判断し、
上記許可情報が有効であると判断された場合に、上記プライベートデータアイテムを取得するように構成される、項目１７に記載の装置。
（項目１９）
上記変更モジュールは更に、
上記プライベートデータアイテムのためのアンロックメカニズムを決定し、
上記アンロックメカニズムに少なくとも部分的に基づいて、上記許可要求を含む上記変更済みオブジェクトを作成するように構成される、項目１７に記載の装置。
（項目２０）
上記変更モジュールは更に、
上記プライベートデータアイテムに対する上記要求により示されたデータのタイプを判断するように構成され、
上記データストアにおける上記プライベートデータアイテムは、データの上記タイプおよび上記サーバにより提供されたサービスに関連付けられる、項目１７に記載の装置。
（項目２１）
上記クライアントデバイスを更に備え、
上記クライアントデバイスは、信頼できる実行環境を含み、
上記変更モジュールおよび上記応答モジュールは、上記信頼できる実行環境のみにおいて実行される、項目１７〜２０のいずれか一項に記載の装置。
（項目２２）
上記装置は、上記クライアントデバイスとは別個のプロキシである、項目１７〜２０のいずれか一項に記載の装置。
（項目２３）
プライベートデータを保護する方法であって、
サーバからクライアントデバイスへの途中でネットワークフローをプロキシにより止める段階と、
上記ネットワークフローのオブジェクトにおけるプライベートデータアイテムの要求を識別する段階と、
データストアにおける上記プライベートデータアイテムを識別する段階と、
上記クライアントデバイスに、許可要求を含む変更済みオブジェクトを提供する段階と、
有効な許可情報が受信されたときに、上記プライベートデータアイテムを上記サーバに送信する段階とを備える、方法。
（項目２４）
上記データストアにおける上記プライベートデータアイテムは、上記クライアントデバイス、上記クライアントデバイスのユーザ、および上記クライアントデバイス上で実行されるクライアントアプリケーションのうちの少なくとも１つに関連付けられる、項目２３に記載の方法。
（項目２５）
上記データストアは、複数のセットの１または複数のプライベートデータアイテムを含み、
上記複数のセットは、各々、複数のサービスに関連付けられる、項目２３または２４に記載の方法。
【図１】
2018067327.tif 000003
【図２】
2018067327.tif 000004
【図３】
2018067327.tif 000005
【図４】
2018067327.tif 000006
【図５】
2018067327.tif 000007
【図６】
2018067327.tif 000008
【手続補正書】
【提出日】平成29年12月28日(2017.12.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クライアントデバイスから、ウェブサーバにウェブページを要求するネットワーク通信を受信する段階と、
前記ウェブサーバから前記ウェブページを受信する段階と、
前記ウェブページにおいて、前記クライアントデバイスに対してデータの入力を求める要求を識別する段階と、
前記クライアントデバイスに、前記ウェブページに含まれる要求の少なくとも一部を変更した変更済みウェブページを送信する段階と、
前記クライアントデバイスから前記変更済みウェブページに含まれる要求に対する有効な情報が受信されたときに、前記データを前記ウェブサーバに送信する段階と、
を備える方法。
【請求項２】
前記ネットワーク通信を受信する段階は、前記ウェブページを要求するネットワーク通信を前記ウェブサーバに転送する段階を含む、請求項１に記載の方法。
【請求項３】
前記変更済みウェブページは、前記ウェブページに含まれる要求に、前記データを前記ウェブサーバに提供することについて許可を求める要求を含めることで生成される、請求項１又は２に記載の方法。
【請求項４】
前記データを前記ウェブサーバに送信する段階では、前記データをデータストアから取得する、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記クライアントデバイスとは別個のプロキシにより実行される、請求項１から４のいずれか一項に記載の方法。
【請求項６】
コンピュータに、
クライアントデバイスから、ウェブサーバにウェブページを要求するネットワーク通信を受信する手順と、
前記ウェブサーバから前記ウェブページを受信する手順と、
前記ウェブページにおいて、前記クライアントデバイスに対してデータの入力を求める要求を識別する手順と、
前記クライアントデバイスに、前記ウェブページに含まれる要求の少なくとも一部を変更した変更済みウェブページを送信する手順と、
前記クライアントデバイスから前記変更済みウェブページに含まれる要求に対する有効な情報が受信されたときに、前記データを前記ウェブサーバに送信する手順と、
を実行させるプログラム。
【請求項７】
前記ネットワーク通信を受信する手順は、前記ウェブページを要求するネットワーク通信を前記ウェブサーバに転送する手順を含む、請求項６に記載のプログラム。
【請求項８】
前記変更済みウェブページは、前記ウェブページに含まれる要求に、前記データを前記ウェブサーバに提供することについて許可を求める要求を含めることで生成される、請求項６又は７に記載のプログラム。
【請求項９】
前記データを前記ウェブサーバに送信する手順では、前記データをデータストアから取得する、請求項６から８のいずれか一項に記載のプログラム。
【請求項１０】
前記クライアントデバイスとは別個のプロキシに実装される、請求項６から９のいずれか一項に記載のプログラム。
【請求項１１】
請求項６から１０のいずれか一項に記載のプログラムを格納した、少なくとも１つの機械可読ストレージ媒体。