(57)【特許請求の範囲】
【請求項１】
モバイルデバイス用のオペレーティングシステム上で動作するプロキシベースのアプリケーションのための方法であって、
ブラウザによるリクエストに応答してローカルプロキシをダウンロードするステップと、
アプリケーションに対応するコンフィグレーションプロファイル・ユニフォームリソースロケータへリダイレクトすることによって、コンフィグレーションプロファイルを取得するステップと、
仮想プライベートネットワーク設定と、モバイルデバイス情報と、ウェブページを提供する遠隔のサーバにより実行されるセキュアソケットレイヤハンドシェイクのためのシグニチャを生成するカスタム認証局とを含む前記コンフィグレーションプロファイルをインストールするステップと、
内部仮想プライベートネットワークサービスをアクティブにするステップと、
前記内部仮想プライベートネットワークサービスを通じて前記ローカルプロキシを確立するステップと、
前記ローカルプロキシを実行するステップと
を有する方法。
【請求項２】
前記リクエストはＨＴＴＰリクエストである、
請求項１に記載の方法。
【請求項３】
前記遠隔のサーバは仮想プライベートネットワークサーバであり、
前記ローカルプロキシは、前記仮想プライベートネットワークサーバと相互作用する、
請求項１又は２に記載の方法。
【請求項４】
命令を含むプログラムであって、
前記命令は、モバイルデバイス用のオペレーティングシステム上で動作するプロキシベースのアプリケーションのためのマシンによって実行される場合に、該マシンに、
ブラウザによるリクエストに応答してローカルプロキシをダウンロードするステップと、
アプリケーションに対応するコンフィグレーションプロファイル・ユニフォームリソースロケータへリダイレクトすることによって、コンフィグレーションプロファイルを取得するステップと、
仮想プライベートネットワーク設定と、モバイルデバイス情報と、ウェブページを提供する遠隔のサーバにより実行されるセキュアソケットレイヤハンドシェイクのためのシグニチャを生成するカスタム認証局とを含む前記コンフィグレーションプロファイルをインストールするステップと、
内部仮想プライベートネットワークサービスをアクティブにするステップと、
前記内部仮想プライベートネットワークサービスを通じて前記ローカルプロキシを確立するステップと、
前記ローカルプロキシを実行するステップと
を実行させる命令を有する、プログラム。
【請求項５】
前記リクエストはＨＴＴＰリクエストである、
請求項４に記載のプログラム。
【請求項６】
前記遠隔のサーバは仮想プライベートネットワークサーバであり、
前記ローカルプロキシは、前記仮想プライベートネットワークサーバと相互作用する、
請求項４又は５に記載のプログラム。
【請求項７】
モバイルデバイス用のオペレーティングシステム上で動作するプロキシベースのアプリケーションのためのプログラム可能なデバイスであって、
プロセッサと、
命令が記憶されているメモリと
を有し、
前記命令は、前記プロセッサによって実行される場合に、該プロセッサに、
ブラウザによるリクエストに応答してローカルプロキシをダウンロードするステップと、
アプリケーションに対応するコンフィグレーションプロファイル・ユニフォームリソースロケータへリダイレクトすることによって、コンフィグレーションプロファイルを取得するステップと、
仮想プライベートネットワーク設定と、モバイルデバイス情報と、ウェブページを提供する遠隔のサーバにより実行されるセキュアソケットレイヤハンドシェイクのためのシグニチャを生成するカスタム認証局とを含む前記コンフィグレーションプロファイルをインストールするステップと、
内部仮想プライベートネットワークサービスをアクティブにするステップと、
前記内部仮想プライベートネットワークサービスを通じて前記ローカルプロキシを確立するステップと、
前記ローカルプロキシを実行するステップと
を実行させる命令を有する、プログラム可能なデバイス。
【請求項８】
前記リクエストはＨＴＴＰリクエストである、
請求項７に記載のプログラム可能なデバイス。
【請求項９】
前記遠隔のサーバは仮想プライベートネットワークサーバであり、
前記ローカルプロキシは、前記仮想プライベートネットワークサーバと相互作用する、
請求項７又は８に記載のプログラム可能なデバイス。
【請求項１０】
請求項４乃至６のうちいずれか一項に記載のプログラムを記憶しているマシン読み出し可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
ここで記載される実施形態は、概して、モバイルデバイスの使用に関係があり、特に、セキュリティ及び秘密情報を保つ環境に秘密情報をセキュアに挿入する方法及びプロセスに関係がある。
【背景技術】
【０００２】
多くのモバイルデバイスアプリケーションは、アプリケーション及びそれと関連するデータにアクセスするために、ユーザ名及びパスワード、そして、場合により、より統語論的且つ意味論的な深さ及び広さを持った情報を求める。更に、ユーザは、彼らが使用しているモバイルデバイスと無関係にそのようなアクセスを使用したいと望む。認証されたユーザがそれらのアプリケーション、該アプリケーションに関連するデータ及びそれらの様々なアカウントにアクセスするために、アプリケーションは、通常、アクセスフィールド及びそれらのフィールドに必要とされる秘密データの命名規則への実質的に同様の識別アプローチを採用しようと試みる。ユーザはまた、関連する自身のキー情報を第三者がアクセス可能なリストにしばしば格納し、危険性がある攻撃者又は自身のデバイスに存在する悪意あるソフトウェアに自身のクレデンシャルをあらわにする傾向がある。いよいよ、ウェブサイト及びモバイルアプリケーションは、それらのアプリケーション並びに関連するユーザ及び／又はアプリケーションデータの１つ又は他の部分へのアクセスを認める前に、より強いユーザ名及びパスワード並びに情報及びインタラクションのレイヤの使用を要求している。これは、アクセス及び検索を安全にするが、ユーザにとってはフラストレーションを起こさせる。
【０００３】
米国特許第８４３８６３５号（Das  et  al.）（特許文献１）には、シングル・サインオンサービスによって生成されたトークン・ログオン・クレデンシャルを受け入れないクラウドベースのシステムに自動ログインするためのメカニズムが開示されている。一実施形態において、Dasは、自動的に生成されて持ち続けられるワンタイム・パスワードを開示する。生成されたパスワードは、ウェブＩＤプロバイダによって生成されたトークンを受け入れないクラウドベースのシステムへ自動的にログインするために、そして、他のサービスへ接続するために使用される。このメカニズムは、例えば、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）起動、及びｉＯＳ（登録商標）起動オペレーティングシステムのようなオペレーティングシステムに関連して使用されてよいと考えられる（Ｗｉｎｄｏｗｓはマイクロソフト・コーポレーションの登録商標であり、Ｌｉｎｕｘはリーナス・トーバルズ氏の登録商標であり、ｉＯＳは、アップル社によって彼らのオペレーティングシステムについて実施許諾を受けたシスコテクノロジー社の登録商標である。）。
【０００４】
米国特許第８５９５８１０号（Ayed）（特許文献２）には、ラップ関数を用いて多因子認証、インテリジェント自動ログイン、シングル・サインオン、近接ログアウト、プロアクティブな損失防止、及びインシデント通知により既存のアプリケーションにおいてアクセスセキュリティを自動アップデートする方法が開示されている。
【０００５】
米国特許第８３７０９３３号（Buckler）（特許文献３）には、ＤＨＣＰサーバへの毒入りＤＮＳサーバアドレスの挿入を検出するコンピュータ実装の方法が開示されている。方法は、１）ＤＨＣＰサーバによって与えられたＤＮＳサーバアドレスを識別し、２）ＤＨＣＰサーバによって与えられたＤＮＳサーバアドレスがＤＨＣＰサーバによって与えられた前のＤＮＳサーバアドレスと異なると判断し、３）ＤＮＳサーバアドレスが前のＤＮＳサーバアドレスと異なることに少なくとも部分的に起因して、ＤＨＣＰサーバによって与えられたＤＮＳサーバアドレスにあるＤＮＳサーバが潜在的なセキュリティリスクを表すと判断し、その場合に、４）潜在的なセキュリティリスクを除こうとしてセキュリティ動作を実行することを含んでよい。
【０００６】
米国特許第７８１８４４０号（Givoly）（特許文献４）には、ネットワーク上で通信されるデジタルアセットを監視するために提供されるシステム、方法及びコンピュータプログラム製品が開示されている。最初に、第１パーティと複数の他のパーティとの間でやり取りされるパケットに対してパッシブ・インスペクションが行われる。そのようなパケットは、集合的に、デジタルアセットに関連するデータの少なくとも一部を含む。その後に、インスペクションが行われたパケットに基づき、第１パーティに関連する少なくとも１つの局面及びデジタルアセットに関連する少なくとも１つの局面が識別される。
【０００７】
正当なユーザが適切に認証されるとシームレスにアプリケーション及びデータにアクセスできることを保証しながら、好ましくない侵入、攻撃、悪意のあるソフトウェア及びデータ操作を防ぐよう、安全で且つユーザにとって使い勝手がよい、カスタムコードをモバイルデバイスに挿入する技術が、好ましい。
【０００８】
この背景情報は、本発明に関係があり得ると本出願人によって信じられている情報として提供される。事実であることの承認が必ずしも意図されているわけでも、前述の情報のいずれも本発明に対する先行技術を構成すると解釈されるべきでもない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第８４３８６３５号（Das  et  al.）
【特許文献２】米国特許第８５９５８１０号（Ayed）
【特許文献３】米国特許第８３７０９３３号（Buckler）
【特許文献４】米国特許第７８１８４４０号
【図面の簡単な説明】
【００１０】
【図１】一実施形態に従うｉＯＳプロキシベースアプリケーションのインストールプロシージャを表すフローチャートである。
【００１１】
【図２】一実施形態に従うスクリプト挿入及び使用プロセスを表すフローチャートである。
【００１２】
【図３】一実施形態に従うリクエスト及びスクリプト挿入プロセスを表すフローチャートである。
【００１３】
【図４】一実施形態に従うログインプロセスを表すフローチャートである。
【００１４】
【図５】一実施形態に従うフォームフィリングプロセスのための技術を表すフローチャートである。
【００１５】
【図６】一実施形態に従ってここで記載される技術とともに使用されるコンピューティングデバイスを表す図である。
【００１６】
【図７】他の実施形態に従ってここで記載される技術とともに使用されるコンピューティングデバイスを表すブロック図である。
【００１７】
【図８】一実施形態に従うプログラム可能なデバイスのネットワークを表す図である。
【発明を実施するための形態】
【００１８】
以下の記載では、説明のために、多数の具体的な詳細が、本発明の完全な理解を提供するために示されている。なお、当業者に明らかなように、本発明は、それらの具体的な詳細によらずとも実施されてよい。他の事例では、構造及びデバイスは、本発明を不明りょうにしないようにブロック図形式において示されている。下付き文字又は添え字を伴わない数字の参照は、参照される数字に対応する下付き文字及び添え字の全てのインスタンスを参照すると理解される。更に、本開示において使用されている言語は、読みやすさ及び教育上の目的のために主に選択されており、発明対象を線引き又は制限し、そのような発明対象を決定するのに必要な特許請求の範囲に訴えるために選択されたものではない。「一実施形態」又は「実施形態」との明細書中の言及は、実施形態に関連して記載される特定の機構、構造、又は特性が本発明の少なくとも１つの実施形態に含まれることを意味し、「一実施形態」又は「実施形態」との複数回の参照は、必然的に全てが同じ実施形態に言及していると理解されるべきではない。
【００１９】
ここで使用されるように、語「コンピュータシステム」は、単一のコンピュータ、あるいは、コンピュータシステムにおいて又はそれによって実行されるものとして記載される機能を実行するよう協働する複数のコンピュータを指すことができる。
【００２０】
ここで使用されるように、語「プログラム可能なデバイス」は、単一のプログラム可能なデバイス、あるいは、プログラム可能なデバイスにおいて又はそれによって実行されるものとして記載される機能を実行するよう協働する複数のプログラム可能なデバイスを指すことができる。同様に、「マシン読み出し可能な媒体」は、単一の物理媒体、あるいは、マシン読み出し可能な媒体において記憶されているものとして記載される素材を一緒に記憶し得る複数の物理媒体を指すことができる。
【００２１】
ここで使用されるように、語「アプリケーション」は、プログラムが内蔵型のソフトウェアであろうが、あるいは、他のプログラムの又はそれによって含まれるコンポーネントであろうが、あらゆる実行可能なソフトウェアプログラムを指す。
【００２２】
ここで使用されるように、語「アセット」は、そのタスクのリストを完結するために使用され得るあらゆるデータ片を指す。アセットは、ユーザ・クレデンシャル、稼働統計及び個人情報を含むことができるがそれらに制限されないと考えられる。
【００２３】
ここで使用されるように、語「暗号キー」は、当業者によって容易に理解されるであろうように、平文を暗号文に又は逆に暗号文を平文に変換するために、暗号化アルゴリズム又は他の暗号化プロセス内で使用されるビットの連続を指す。
【００２４】
ここで使用されるように、語「ダミーストリング」は、有効なプレースホルダー、すなわち、とりわけ、実際の暗号キーのための有効なストリングとして使用され得るビットのシーケンスを指す。
【００２５】
ここで使用されるように、語「キー生成器」は、暗号キーを生成するために通常使用され得る乱数発生器を指す。
【００２６】
ここで使用されるように、語「変形Ｊａｖａｓｃｒｉｐｔ（登録商標）」は、スクリプト生成器の出力を指す。本明細書は、ＪＡＶＡＳＣＲＩＰＴスクリプティング言語を用いる実施に関して記載されるが、本発明はそのように制限されず、如何なる所望のスクリプティング言語においても実施されてよい（ＪＡＣＡＳＣＲＩＰＴは、オラクル・アメリカ・インコーポレイテッドの登録商標である。）。
【００２７】
ここで使用されるように、語「ワンタップ」は、タッチスクリーン上のアクティブ領域の１回のタッチを指す。
【００２８】
ここで使用されるように、語「スクリプト生成器」は、標準スクリプトを取って、セッションキーを所望の位置で挿入するソフトウェアを指す。
【００２９】
ここで使用されるように、語「セッションキー」は、デバイス又はネットワークにおいてアクティブセッションの限られた時間の存続期間に使用される暗号キーを指す。
【００３０】
ここで使用されるように、語「ＶＰＮ」は、仮想プライベートネットワークサービス及び関連する設定又はパラメータを指す。
【００３１】
以下の記載の大半は、ｉＯＳオペレーティングシステムに基づくモバイルデバイスでの実施に関して記載されるが、本発明はそのように制限されず、如何なる所望のオペレーティングシステム環境でも実施されてよい。
【００３２】
様々な実施形態は、ｉＯＳデバイスのための新規且つ安全なフォームフィリング技術を提供する。この技術は、ｉＯＳデバイスにおいてｉＯＳアプリケーション及びプロキシをインストールし、あらゆるブラウザページに基づくリクエスト及びデバイス応答を保護しながらプロキシをデバイス及びブラウザへリンクすることを進める。その場合に、ユーザ制御下で、アプリケーションは、ユーザ名、パスワード及び関連する秘密情報を自動的に入力することによって、実行されるべきアクションを選択する。
【００３３】
少なくとも１つの実施形態において、ローカルプロキシは、スクリプトをブラウザに挿入するために確立される。ローカルプロキシはダウンロードされ、コンフィグレーションプロファイルが取得されてインストールされ、内部仮想プライベートネットワークサービスがアクティブにされ、ローカルプロキシは内部仮想プライベートネットワークサービスを通じて確立される。次いで、ローカルプロキシは実行され得る。
【００３４】
他の実施形態では、ローカルプロキシは確立され、接続がローカルプロキシとブラウザとの間に形成される。接続は、遠隔のサーバとローカルプロキシとの間にも形成される。遠隔のサーバは、サーバプロキシを確立するようシミュレートされる。リクエストはブラウザ及びサーバプロキシのうちの少なくとも１つから受信され、応答は遠隔のサーバへ送られる。遠隔のサーバからブラウザへ送られたサーバ応答を受けると、肯定的なスクリプト挿入応答がサーバ応答に基づきブラウザから受信され、サーバ応答はバッファリングされる。挿入スクリプトが生成され、ブラウザによる使用のためにブラウザへ送られる。
【００３５】
実施形態は、機密をコードに挿入する選択肢を有さないｉＯＳにおいてそのような挿入を可能にする。これは、ネットワークフックを使用し、挿入されるコンポーネント、プロキシ及びアプリケーションの間のデータフローを制御することで、行われてよい。これは、ユーザが、どのクレデンシャルが使用されるのかを、それらをあらわにし且つ攻撃者の発見を最小限に抑えることなしに制御することを可能にする。
【００３６】
図１は、ｉＯＳプロキシベースのアプリケーションの一実施形態に従うインストールプロシージャを表すフロー図であり、如何にして環境がセットアップされるのかを表す。ブロック１１０で、アプリケーションは、通常はワンタップ・ログインによって、呼び出される。ブロック１２０で、ログインは、アプリケーションに対応するコンフィグレーションプロファイル・ユニフォームリソースロケータ（ＵＲＬ）へリダイレクトされる。コンフィグレーションプロファイル１８０は、カスタム認証局１８２及びＶＰＮ設定１８４並びにｉＯＳデバイスに関する情報１８６を含んでよい。
【００３７】
ブロック１３０で、コンフィグレーションプロファイル１８０はｉＯＳデバイスでインストールされ、次いで、ブロック１４０で、ログインは実際のアプリケーションへリダイレクトされて、アプリケーションを起動する。アプリケーションは、ブロック１５０で、ｉＯＳ  ＶＰＮサービスをアクティブにする。ＶＰＮサービスは、ブロック１６０で、ローカルプロキシをアクティブにし、次いで、ブロック１７０で、ログインプロキシをアクティブにする。
【００３８】
図２は、一実施形態に従うスクリプト挿入及び使用技術２０を表すフロー図である。表されるように、マン・イン・ザ・ミドル（ＭＩＴＭ）プロキシがセットアップされ、スクリプトが挿入のために準備される。決定技術は、挿入をトリガすべきかどうかを判断するために使用される。
【００３９】
スクリプト生成フェーズ２１０は、セッションキー２１４を生成するためにキー生成器２１２を使用する。セッションキー２１４は、次いで、カスタムスクリプト２２０を生成するためにスクリプト生成器２１６によって使用される。ブロック２３０で、スクリプトは、ブラウザのためのバッファリングされた応答に挿入される。
【００４０】
挿入プロセスはブロック２４０で起こる。ブロック２４２で、挿入プロセスは、応答の本文を待つ。ブロック２４４で、本文の終わりが見つけられ、次いで、ブロック２４６で、スクリプトは、本文の終わりを示した</body>タグの前に挿入される。
【００４１】
ブロック２３０の終わりに、ウェブページは、ｉＯＳデバイス１８６にあるパスワード管理アプリケーションと通信するために使用される挿入されたＪａｖａｓｃｒｉｐｔコードを含む。
【００４２】
制御の基本フローは、次の通りである。
【００４３】
パスワード管理アプリケーションは、ローカルＨＴＴＰプロキシをセットアップし、ブロック２５０で接続を待ち受ける。ブラウザが接続され、ユーザがウェブページへナビゲートされると、セキュアソケットレイヤ（ＳＳＬ；Secure  Socket  Layer）ハンドシェイクは、サーバがブロック２６０でウェブページを提供し、ブロック２７０で遠隔のサーバのアイデンティティのシミュレーションがマン・イン・ザ・ミドル（ＭＩＴＭ；man-in-the  middle）プロキシをセットアップすることができるようにすることで実行される。ブラウザは、このとき、ウェブページのリクエストを受信する準備ができている。
【００４４】
ブロック２７０でＨＴＴＰリクエストを受信すると、リクエストは読み出され、ブロック２７２でサーバへ中継される。これは、ブロック２８０で表されるように、証明書の生成をスプーフィングすることを伴う。この証明書生成プロセスにおいて、カスタム認証局２８４及び対象のホスト名の一般名を使用する生成された証明書は、ＳＳＬハンドシェイクのためのシグニチャを生成して、ＭＩＴＭプロキシをセットアップするよう遠隔のサーバのアイデンティティをシミュレートするために使用される。ブラウザは、このとき、ブロック２７０でＨＴＴＰリクエストを受信する準備ができている。ブロック２７２で、ＨＴＴＰリクエストはクライアントから読み出され、サーバへ中継される。
【００４５】
ブロック２９０は、一実施形態に従うハイジャック決定プロセスを表し、スクリプトを応答に挿入すべきかどうかを判断する。ブロック２９２で、プロキシは、サーバからの応答を待つ。ブロック２９４で、応答のコンテキストタイプがテキスト／ｈｔｍｌである場合には、ハイジャック決定プロセスは、ハイジャックが望ましいことを示す。コンテキストタイプがテキスト／ｈｔｍｌでない場合には、ハイジャックは行われない。ハイジャック（スクリプト挿入）が行われるべき場合には、サーバからの応答は、上述されたようにスクリプト挿入を可能にするよう、中継されバッファリングされる。ブロック２７４で、応答をハイジャックし、ブロック２１０で生成されたスクリプトを挿入すると決定される場合には、ブロック２７８で、ＨＴＴＰ応答が中継され、応答はバッファリングされ、上述されたようにスクリプトが挿入される。ハイジャックが望まれない場合には、ブロック２７６で、応答のバイト・ツー・バイト中継が実行されて、応答をブロック２７０へ渡す。
【００４６】
図３は、上記の図２で説明されたリクエスト及びスクリプト挿入プロセスのためのデータフローを表すフロー図である。図３乃至５は、ブラウザ３１０と、プロキシを提供するアプリケーション３２０と、遠隔のウェブサーバ３３０との間の詳細なデータフローを表す（遠隔のウェブサーバ３３０との間は、たとえただ１つの遠隔のウェブサーバ３３０しか必要とされないとしても、データフローを明りょうにするよう図３では二度表されている。）。
【００４７】
ブロック３４０で、ウェブページへナビゲートするとのユーザの決定があると、ブラウザ３１０はプロキシ３２０への接続を開始し、ブロック３４５で、対象サーバへ接続するためのリクエストを送信する。図３で表されている例では、接続はＳＳＬを使用したセキュア接続であるが、同様の技術は非セキュア接続に使用され得る。ブロック３５０で、ｉＯＳデバイス１８６は、ＳＳＬクライアントとして遠隔のウェブサーバ３３０とのＳＳＬハンドシェイクを開始する。一方、プロキシ３２０は、ブロック３４５で、ウェブブラウザ３１０とＳＳＬサーバモードにおいてＳＳＬハンドシェイクを行っている。
【００４８】
ブラウザ３１０は、ＨＴＴＰログイン３５５をプロキシ３２０へ与える。プロキシ３２０は、ログイン３５５を、遠隔サーバ３３０への配信のためにｉＯＳデバイス１８６へ中継する。遠隔サーバ３３０は応答３６０により応答する。応答３６０は、挿入プロセス２００の実行のためにプロキシ３２０へ送られる。変形された応答３６０は、ブラウザ３１０へ返送され、ブロック３７０で、ウェブページが表示される。
【００４９】
図４は、ログインフォーム検出及びセキュアアセットデータフローのための技術４００を表すフロー図である。ウェブページ４１０がブラウザ３１０でのロードを終えた後、ブロック４２０で、図２のスクリプト挿入プロセスによって挿入されたスクリプトは、ページがログインフォームを含むかどうかを判定する。多くのＨＴＴＰリクエストがページ４１０のために（例えば、画像、スタイルシート、などのために）作られ得るが、この判定は、現在ロードされているＨＴＭＬページ４１０に対して行われる。
【００５０】
ウェブページ４１０上にログインフォームがある場合には、ブロック４３０で、アセットのためにリクエストが生成される。ログインフォームがない場合には、ログインは断念される。
【００５１】
ブロック４３０〜４４０は、図２で表されているスクリプト生成プロセスにおいて生成された関連する対称暗号キー２１４による対称暗号化アルゴリズムを用いたＨＴＴＰリクエストの暗号化を表す。そのような暗号化アルゴリズムの例となる実施形態はＡＥＳ  ＣＣＭモードである。なお、如何なるタイプの対称暗号化も使用され得る。
【００５２】
暗号化されたリクエストはプロキシ３２０へ与えられる。プロキシ３２０は、ブロック４５０でリクエストを解読するために、セッションキー２１４を使用する。図４において、ブラウザ３１０とアプリケーション／プロキシ３２０との間の接続は、ウェブページ４１０とアプリケーション３２０との間の非同期Ｊａｖａｓｃｒｉｐｔ及びＸＭＬ（ＡＪＡＸ）を使用する。他の技術は、望まれるように使用され得る。ＲＥＳＴ  ＡＰＩ（Representational  State  Transfer  Application  Programming  Interface）４６０は、このプロセスのためにプロキシ３２０によって使用されてよい。ＲＥＳＴ  ＡＰＩは、動作が有限数であって、リソースがそれら自体の一意のリソースインジケータを有する標準のアプローチである。
【００５３】
図５は、一実施形態に従うセキュアなフォームフィリングプロセス５００を表すフロー図である。この例では、第１の応答はアカウントのリストを含み、ユーザはそれから選択するようプロンプトされる。応答はブロック５０５で解読され、次いで、ブロック５１０で、ブラウザ３１０はアカウントを表示し、ユーザに１つを選択するよう要求する。ブロック５１５で、ユーザは、例えば、アカウントに関連した領域をクリック又はタッチすることによって、アカウントを選択する。アカウントは、ウェブページ内でオーバーレイとして提示されてよい。ユーザがログインすると決めると、ログインリクエストは、ブロック５２０で暗号化され、ログインリクエストはアプリケーション３２０へ送信される。一実施形態において、リクエストは、同じ対称暗号キー２１４を用いて暗号化される。リクエストは、ユーザによるアカウントの選択を示す。
【００５４】
この例では、暗号化された応答は、ＡＪＡＸを介してプロキシ３２０へ与えられる。プロキシ３２０は、ブロック５２５で、ＲＥＳＴ  ＡＰＩを用いて応答を解読する。このリクエストに対する応答は、パスワードのプレースホルダーとなるダミーストリング５３０を含む。このストリング５３０は、プロキシによって暗号化され（ブロック５３５）、ブラウザによって解読され（５４０）、そして、ブロック５４５で、上記の技術を用いて正当なＨＴＭＬ入力に挿入される。次いで、ブロック５５０で、フォームが自動的にサブミットされる。このサブミッションは、ブラウザに、ユーザ名と、パスワードの一時的な代役であるダミーストリングとを含む新しいＨＴＴＰリクエストを生成させる。次いで、ブロック５５０で、ダミーストリングは、ログインリクエストがサーバ３３０へ送られる場合に、直接にネットワークストリームにおいて実時間でユーザのパスワード５５５によって置換される。
【００５５】
次いで、サーバ３３０はログイン応答５６０を与える。ログイン応答５６０は、ｉＯＳデバイス１８６を通じてプロキシ３２０へ、次いでブラウザ３１０へ送られる。次いで、ブロック５６５で、ユーザは、自身の１つ以上のアクティビティに復帰する。
【００５６】
上記の技術は、ｉＯＳデバイス１８６において実行される必要はなく、クラウドベースでありながら上記のスクリプト挿入のためにローカルアプリケーションプロキシ３２０と相互作用することが可能であるＶＰＮサーバによって提供されてよい。斯様な実施形態では、ＶＰＮサーバは、ウェブページに挿入されるべきセッションキー又はアセットのいずれかへのアクセスを有さなくてよい。ＶＰＮサーバは、望まれるようにキャリア・インフラストラクチャに組み込まれてよい。
【００５７】
これより図６を参照すると、ブロック図は、一実施形態に従って、ＣＲＤ５１０又はＤＷＤ５２０のいずれか一方のために使用され得るプログラム可能デバイス６００を表す。図６で表されているプログラム可能デバイスは、第１のプロセッシング要素６７０及び第２のプロセッシング要素６８０を含むマルチプロセッサプログラム可能デバイス６００である。２つのプロセッシング要素６７０及び６８０が示されているが、プログラム可能デバイス６００の実施形態は、そのようなプロセッシング要素をただ１つしか含まなくてもよい。
【００５８】
プログラム可能デバイス６００は、ポイント・ツー・ポイント相互接続システムとして表されている。当該システムにおいて、第１のプロセッシング要素６７０及び第２のプロセッシング要素６８０は、ポイント・ツー・ポイント・インターコネクト６５０を介して結合されている。図６で表されているインターコネクトのいずれか又は全ては、ポイント・ツー・ポイント・インターコネクトよりむしろ、マルチドロップ・バスとして実装されてよい。
【００５９】
図６で表されているように、プロセッシング要素６７０及び６８０の夫々は、第１及び第２のプロセッサコア（すなわち、プロセッサコア６７４Ａ及び６７４Ｂ並びにプロセッサコア６８４Ａ及び６８４Ｂ）を含むマルチコアプロセッサであってよい。そのようなコア６７４Ａ、６７４Ｂ、６８４Ａ、６８４Ｂは、図１乃至４に関連して上述されたのと同様に命令コードを実行するよう構成されてよい。なお、他の実施形態は、望まれるように、シングルコアプロセッサであるプロセッシング要素を使用してよい。複数のプロセッシング要素６７０、６８０を備える実施形態では、夫々のプロセッシング要素は、望まれるように、異なる数のコアを有して実装されてよい。
【００６０】
夫々のプロセッシング要素６７０、６８０は、少なくとも１つの共有キャッシュ６４６を含んでよい。共有キャッシュ６４６Ａ、６４６Ｂは、コア６７４Ａ、６７４Ｂ及び６８４Ａ、６８４Ｂのようなプロセッシング要素の１つ以上のコンポーネントによって夫々利用されるデータ（例えば、命令）を記憶してよい。例えば、共有キャッシュは、プロセッシング要素６７０、６８０のコンポーネントによるより高速なアクセスのために、メモリ６３２、６３４において記憶されているデータをローカルでキャッシングしてよい。１つ以上の実施形態において、共有キャッシュ６４６Ａ、６４６Ｂは、レベル２（Ｌ２）、レベル３（Ｌ３）、レベル４（Ｌ４）、又はキャッシュの他のレベルのような１つ以上のミッドレベルキャッシュ、ラストレベルキャッシュ（ＬＬＣ；last  level  cache）、あるいは、それらの組み合わせを含んでよい。
【００６１】
図６は、図面の明りょうさのために、２つのプロセッシング要素６７０、６８０を備えたプログラム可能デバイスを表すが、本発明の適用範囲はそのように制限されず、プロセッシング要素はいくつでも存在してよい。代替的に、プロセッシング要素６７０、６８０の１つ以上は、グラフィクスプロセッシングユニット（ＧＰＵ；graphics  processing  unit）、デジタル信号プロセッシング（ＤＳＰ：digital  signal  processing）ユニット、フィールドプログラマブルゲートアレイ、又は何らかの他のプログラム可能なプロセッシング要素のような、プロセッサ以外の他の要素であってよい。プロセッシング要素６８０は、プロセッシング要素６７０と異種又は非対称であってよい。アーキテクチャ上の、マイクロアーキテクチャ上の、熱的な、電力消費の特性、及び同様のものを含むメリットのメトリクスのスペクトルに関して、プロセッシング要素６７０、６８０の間には様々な違いが存在してよい。それらの違いは、プロセッシング要素６７０、６８０の間の非対称性及び異種性として有効に現れてよい。幾つかの実施形態において、様々なプロセッシング要素６７０、６８０は、同じダイ・パッケージに存在してよい。
【００６２】
第１のプロセッシング要素６７０は、メモリコントローラロジック（ＭＣ）６７２並びにポイント・ツー・ポイント（Ｐ−Ｐ）インターフェイス６７６及び６７８を更に有してよい。同様に、第２のプロセッシング要素６８０は、ＭＣ６８２並びにＰ−Ｐインターフェイス６８６及び６８８を有してよい。図６で表されているように、ＭＣ６７２及び６８２は、プロセッシング要素６７０、６８０を夫々のメモリ、すなわち、メモリ６３２及びメモリ６３４へ結合する。メモリ６３２及び６３４は、夫々のプロセッサへローカルで付属しているメインメモリの部分であってよい。ＭＣロジック６７２及び６８２は、プロセッシング要素６７０、６８０に組み込まれているものとして表されているが、幾つかの実施形態において、ＭＣロジックは、プロセッシング要素６７０、６８０に組み込まれるのではなく、それらの外にある個別ロジックであってよい。
【００６３】
プロセッシング要素６７０及びプロセッシング要素６８０は、Ｐ−Ｐインターフェイス６７６及び６８６並びにＰ−Ｐインターコネクト６５２及び６５４を夫々介して、Ｉ／Ｏサブシステム６９０へ結合されてよい。図６で表されているように、Ｉ／Ｏサブシステム６９０はＰ−Ｐインターフェイス６９４及び６９８を含む。更に、Ｉ／Ｏサブシステム６９０は、Ｉ／Ｏサブシステム６９０を高性能グラフィクスエンジン６３８と結合するインターフェイス６９２を含む。一実施形態において、バス６３９は、グラフィクスエンジン６３８をＩ／Ｏサブシステム６９０へ結合するために使用されてよい。交代に、ポイント・ツー・ポイント・インターコネクト６３９がそれらのコンポーネントを結合してよい。
【００６４】
次いで、Ｉ／Ｏサブシステム６９０は、インターフェイス６９６を介して第１のリンク６１６へ結合されてよい。一実施形態において、第１のリンク６１６は、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ；Peripheral  Component  Interconnect）バス、あるいは、ＰＣＩエクスプレスバス又は他のＩ／Ｏインターコネクトバスのようなバスであってよい。なお、本発明の適用範囲は、そのように制限されない。
【００６５】
図６で表されているように、様々なＩ／Ｏデバイス６１４は、第１のリンク６１６を第２のリンク６１０へ結合し得るブリッジ６１８に沿って、第１のリンク６１６へ結合されてよい。一実施形態において、第２のリンク６１０は、ローピンカウント（ＬＰＣ；low  pin  count）バスであってよい。様々なデバイスが第２のリンク６１０へ結合されてよく、例えば、キーボード／マウス６１２、通信デバイス６２６（コンピュータネットワーク６０３と通信してよい。）、及び、一実施形態においてコードを含み得るディスクドライブ又は他の大容量ストレージのようなデータ記憶ユニット６２８がある。コード６３０は、上記の技術のうちの１つ以上の実施形態を実行する命令を含んでよい。更に、オーディオＩ／Ｏ６２４は、第２のリンク６１０へ結合されてよい。
【００６６】
他の実施形態が考えられる点に留意されたい。例えば、図６のポイント・ツー・ポイント・アーキテクチャの代わりに、システムは、マルチドロップ・バス又は他のそのような通信トポロジを実装してよい。リンク６１６及び６１０は、図６では、バスとして表されているが、如何なる望ましいタイプのリンクが使用されてもよい。加えて、図６の要素は、代替的に、図６で表されているよりも多い又は少ない集積チップを用いて分割されてよい。例えば、コンポーネントは、ネットワーク化された（ＬＡＮ、企業ネットワーク、インターネット、及び／又はクラウドにおいて離散化された）コンピューティングデバイス（現実又は仮想）、あるいは、２３０の機能をまとまって実行するマイクロコントローラとして、実装されてよい。
【００６７】
これより図７を参照すると、ブロック図は、他の実施形態に従うプログラム可能デバイス７００を表す。図６の特定の態様は、図７の他の態様を不明りょうにしないように、図７から省略されている。
【００６８】
図７は、プロセッシング要素６７０、６８０が、集積メモリ及びＩ／Ｏ制御ロジック（“ＣＬ”）７７２及び７８２を夫々有してよいことを表す。幾つかの実施形態において、ＣＬ７７２、７８２は、図６に関連して記載されたもののようなメモリ制御ロジック（ＭＣ）を含んでよい。加えて、ＣＬ７７２、７８２は、Ｉ／Ｏ制御ロジックを更に含んでよい。図７は、メモリ７３２、７３４がＣＬ７７２、７８２へ結合され得ることだけでなく、Ｉ／Ｏデバイス７４４も制御ロジック７７２、７８２へ結合され得ることも表す。レガシーＩ／Ｏデバイス７１５は、インターフェイス７９６によってＩ／Ｏサブシステム７９０へ結合されてよい。夫々のプロセッシング要素７７０、７８０は、プロセッサコア７７４Ａ、７７４Ｂ、７８４Ａ及び７８４Ｂとして、図７で表されている複数のプロセッサコアを含んでよい。図７で表されているように、Ｉ／Ｏサブシステム７９０は、インターコネクト７５２及び７５４を用いてプロセッシング要素７７０及び７８０のＰ−Ｐインターフェイス７７６及び７８６へ接続するＰ−Ｐインターフェイス７９４及び７９８を含む。プロセッシング要素７７０及び７８０はまた、インターコネクト７５０並びに夫々インターフェイス７７８及び７８８によって相互接続されてよい。
【００６９】
図６及び７で表されているプログラム可能デバイスは、ここで論じられる様々な実施形態を実装するために用いられ得るプログラム可能デバイスの実施形態の略図である。図６及び７で表されているプログラム可能デバイスの様々なコンポーネントは、システム・オン・チップ（ＳｏＣ；system-on-a-chip）アーキテクチャにおいて結合されてよい。
【００７０】
これより図８を参照すると、上記の技術が実装され得る例となるインフラストラクチャ８００が概略的に表されている。インフラストラクチャ８００は、コンピュータネットワーク８０２を含む。コンピュータネットワーク８０２は、インターネット、コーポレートネットワーク、又はローカルエリアネットワーク（ＬＡＮ；Local  Area  Network）のような、今日利用可能な多種多様なコンピュータネットワークを含んでよい。それらのネットワークの夫々は、有線又は無線式のプログラム可能デバイスを含み、いくつのネットワークプロトコル（例えば、ＴＣＰ／ＩＰ）によっても動作することができる。ネットワーク８０２は、ゲートウェイ及びルータ（８０８によって表される。）、エンドユーザコンピュータ８０６、並びにコンピュータサーバ８０４へ接続されてよい。インフラストラクチャ８００は、モバイル通信デバイスとともに使用されるセルラーネットワーク８０３を更に含む。モバイルセルラーネットワークは、携帯電話機及び多くの他のタイプのデバイスをサポートする。インフラストラクチャ８００におけるモバイルデバイスは、携帯電話機８１０、ラップトップ８１２、及びタブレット８１４として表されている。携帯電話機８１０のようなモバイルデバイスは、モバイルデバイスが移動するにつれて１つ以上のモバイルプロバイダネットワークと相互作用してよく、通常は、セルラーネットワーク８０３へ接続するために複数のモバイルネットワーク塔（図示せず。）と相互作用する。図８ではセルラーネットワークと呼ばれているが、モバイルデバイスは、１よりも多いプロバイダネットワークの塔と、更には、無線アクセスポイント及びルータ８０８のような複数の非セルラーデバイスと相互作用してよい。加えて、モバイルデバイス８１０、８１２及び８１４は、所望のサービスのために、コンピュータ８０４及び８０６のような非モバイルデバイスと相互作用してよい。
【００７１】
以下の例は、更なる実施形態に関連する。
【００７２】
例１は、ブラウザによるリクエストに応答してローカルプロキシをダウンロードするステップと、コンフィグレーションプロファイルを取得しインストールするステップと、内部仮想プライベートネットワークサービスをアクティブにするステップと、前記内部仮想プライベートネットワークサービスを通じて前記ローカルプロキシを確立するステップと、前記ローカルプロキシを実行するステップとを有する方法である。
【００７３】
例２において、例１の対象は、任意に、前記リクエストがＨＴＴＰリクエストである、ことを含むことができる。
【００７４】
例３において、例１乃至２のいずれかの対象は、任意に、前記ローカルプロキシが遠隔の仮想プライベートネットワークサーバと相互作用する、ことを含むことができる。
【００７５】
例４は、命令が記憶されているコンピュータ可読媒体であって、前記命令は、実行される場合にマシンに、ローカルプロキシ及び該ローカルプロキシとブラウザとの間の接続を確立するステップと、遠隔のサーバと前記ローカルプロキシとの間の接続を確立するステップと、サーバプロキシを確立するよう前記遠隔のサーバをシミュレートするステップと、前記ブラウザ及び前記サーバプロキシのうちの少なくとも１つからリクエストを受け、該リクエストを前記遠隔のサーバへ送るステップと、前記遠隔のサーバから前記ブラウザへ送られたサーバ応答を受けるステップと、前記サーバ応答に基づく肯定的なスクリプトインジェクション応答を前記ブラウザから受けるステップと、前記サーバ応答をバッファリングするステップと、挿入スクリプトを生成するステップと、前記挿入スクリプトを前記ブラウザへ送るステップとを実行させる命令を有する、コンピュータ可読媒体である。
【００７６】
例５において、例４の対象は、任意に、実行される場合に前記マシンに前記挿入スクリプトを前記ブラウザへ送らせる前記命令が、実行される場合に前記マシンに、前記バッファリングされたサーバ応答を前記挿入スクリプトにより変更して、変形サーバ応答を生成するステップと、前記変形サーバ応答を前記ブラウザへ送るステップとを実行させる命令を有する、ことを含むことができる。
【００７７】
例６において、例４乃至５のいずれかの対象は、任意に、前記命令が、実行される場合に前記マシンに、変更されたウェブページを前記ブラウザでレンダリングさせる命令を更に有する、ことを含むことができる。
【００７８】
例７において、例４の対象は、任意に、前記命令が、実行される場合に前記マシンに、ロードされたウェブページにおいてログインフォームの存在を確立するステップと、アセットリクエストを生成するステップと、前記アセットリクエストを対称アルゴリズムにより暗号化するステップと、前記アセットリクエストを前記遠隔のサーバへ送るステップと、要求されたアセットを含むアセットリクエスト応答を前記遠隔のサーバから受けるステップと、前記アセットリクエスト応答を前記対称アルゴリズムにより解読するステップと、前記要求されたアセットを前記ローカルプロキシ及び前記ブラウザのうちの少なくとも１つへ送るステップとを実行させる命令を更に有する、ことを含むことができる。
【００７９】
例８において、例７の対象は、任意に、実行される場合に前記マシンに挿入スクリプトを生成させる前記命令が、実行される場合に前記マシンに暗号キーをセキュアに生成させる命令を有し、前記対称アルゴリズムが、前記セキュアに生成された暗号キーを用いて、前記アセットリクエストを暗号化し且つ前記アセットリクエスト応答を解読する、ことを含むことができる。
【００８０】
例９において、例７の対象は、任意に、実行される場合に前記マシンにロードされたウェブページにおいてログインフォームの存在を確立させる前記命令が、実行される場合に前記マシンに、少なくとも１つのアカウント選択を含むアカウント選択フォームを前記ブラウザへ送るステップと、前記少なくとも１つのアカウント選択の１つを含むアカウント選択リクエストを生成するステップと、前記アカウント選択リクエストを前記ブラウザから受けるステップとを実行させる命令を有する、ことを含むことができる。
【００８１】
例１０において、例９の対象は、任意に、前記アカウント選択リクエストが暗号化される、ことを含むことができる。
【００８２】
例１１において、例１０の対象は、任意に、前記アカウント選択リクエストが対称暗号化アルゴリズムを用いて暗号化される、ことを含むことができる。
【００８３】
例１２において、例１０の対象は、任意に、前記命令が、実行される場合に前記マシンに、ダミーストリングを含むアカウント選択応答を生成するステップと、前記アカウント選択応答を前記ブラウザへ送るステップと、前記ロードされたウェブページにおいてウェブページ入力フィールドに前記ダミーストリングを挿入するステップと、前記ダミーストリングを含む第２リクエストを前記ブラウザから受けるステップと、実時間において前記ダミーストリングを、前記遠隔のサーバから読み出されたパスワードにより置換するステップとを実行させる命令を更に有する、ことを含むことができる。
【００８４】
例１３は、プロセッサと、命令が記憶されているメモリとを有するプログラム可能なデバイスであって、前記命令が、実行される場合に前記プロセッサに、ローカルプロキシ及び該ローカルプロキシとブラウザとの間の接続を確立するステップと、遠隔のサーバと前記ローカルプロキシとの間の接続を確立するステップと、サーバプロキシを確立するよう前記遠隔のサーバをシミュレートするステップと、前記ブラウザ及び前記サーバプロキシのうちの少なくとも１つからリクエストを受け、該リクエストを前記遠隔のサーバへ送るステップと、前記遠隔のサーバから前記ブラウザへ送られたサーバ応答を受けるステップと、前記サーバ応答に基づく肯定的なスクリプトインジェクション応答を前記ブラウザから受けるステップと、前記サーバ応答をバッファリングするステップと、挿入スクリプトを生成するステップと、前記挿入スクリプトを前記ブラウザへ送るステップとを実行させる命令を有する、プログラム可能なデバイスである。
【００８５】
例１４において、例１３の対象は、任意に、実行される場合に前記プロセッサに前記挿入スクリプトを前記ブラウザへ送らせる前記命令が、実行される場合に前記プロセッサに、前記バッファリングされたサーバ応答を前記挿入スクリプトにより変更して、変形サーバ応答を生成するステップと、前記変形サーバ応答を前記ブラウザへ送るステップとを実行させる命令を有する、ことを含むことができる。
【００８６】
例１５において、例１３乃至１４のいずれかの対象は、任意に、前記命令が、実行される場合に前記プロセッサに、変更されたウェブページを前記ブラウザでレンダリングさせる命令を更に有する、ことを含むことができる。
【００８７】
例１６において、例１３乃至１４のいずれかの対象は、任意に、前記命令が、実行される場合に前記プロセッサに、ロードされたウェブページにおいてログインフォームの存在を確立するステップと、アセットリクエストを生成するステップと、前記アセットリクエストを対称アルゴリズムにより暗号化するステップと、前記アセットリクエストを前記遠隔のサーバへ送るステップと、要求されたアセットを含むアセットリクエスト応答を前記遠隔のサーバから受けるステップと、前記アセットリクエスト応答を前記対称アルゴリズムにより解読するステップと、前記要求されたアセットを前記ローカルプロキシ及び前記ブラウザのうちの少なくとも１つへ送るステップとを実行させる命令を更に有する、ことを含むことができる。
【００８８】
例１７において、例１６の対象は、任意に、実行される場合に前記プロセッサに挿入スクリプトを生成させる前記命令が、実行される場合に前記プロセッサに暗号キーをセキュアに生成させる命令を有し、前記対称アルゴリズムが、前記セキュアに生成された暗号キーを用いて、前記アセットリクエストを暗号化し且つ前記アセットリクエスト応答を解読する、ことを含むことができる。
【００８９】
例１８において、例１６の対象は、任意に、実行される場合に前記プロセッサにロードされたウェブページにおいてログインフォームの存在を確立させる前記命令が、実行される場合に前記プロセッサに、少なくとも１つのアカウント選択を含むアカウント選択フォームを前記ブラウザへ送るステップと、前記少なくとも１つのアカウント選択の１つを含むアカウント選択リクエストを生成するステップと、前記アカウント選択リクエストを前記ブラウザから受けるステップとを実行させる命令を有する、ことを含むことができる。
【００９０】
例１９において、例１８の対象は、任意に、前記アカウント選択リクエストが暗号化される、ことを含むことができる。
【００９１】
例２０において、例１９の対象は、任意に、前記アカウント選択リクエストが対称暗号化アルゴリズムを用いて暗号化される、ことを含むことができる。
【００９２】
例２１において、例１９の対象は、任意に、前記命令が、実行される場合に前記プロセッサに、ダミーストリングを含むアカウント選択応答を生成するステップと、前記アカウント選択応答を前記ブラウザへ送るステップと、前記ロードされたウェブページにおいてウェブページ入力フィールドに前記ダミーストリングを挿入するステップと、前記ダミーストリングを含む第２リクエストを前記ブラウザから受けるステップと、実時間において前記ダミーストリングを、前記遠隔のサーバから読み出されたパスワードにより置換するステップとを実行させる命令を更に有する、ことを含むことができる。
【００９３】
例２２は、プロセッサと、命令が記憶されているメモリとを有するプログラム可能なデバイスであって、前記命令が、実行される場合に前記プロセッサに、ローカルプロキシ及び該ローカルプロキシとブラウザとの間の接続を確立するステップと、遠隔のサーバと前記ローカルプロキシとの間の接続を確立するステップと、サーバプロキシを確立するよう前記遠隔のサーバをシミュレートするステップと、前記ブラウザ及び前記サーバプロキシのうちの少なくとも１つからリクエストを受け、該リクエストを前記遠隔のサーバへ送るステップと、前記遠隔のサーバから前記ブラウザへ送られたサーバ応答を受けるステップと、前記サーバ応答に基づく肯定的なスクリプトインジェクション応答を前記ブラウザから受けるステップと、前記サーバ応答をバッファリングするステップと、挿入スクリプトを生成するステップと、前記バッファリングされたサーバ応答を前記挿入スクリプトにより変更して、変形サーバ応答を生成するステップと、前記変形サーバ応答を前記ブラウザへ送るステップとを実行させる命令を有する、プログラム可能なデバイスである。
【００９４】
例２３において、例２２の対象は、任意に、前記命令が、実行される場合に前記プロセッサに、ロードされたウェブページにおいてログインフォームの存在を確立するステップと、アセットリクエストを生成するステップと、前記アセットリクエストを対称アルゴリズムにより暗号化するステップと、前記アセットリクエストを前記遠隔のサーバへ送るステップと、要求されたアセットを含むアセットリクエスト応答を前記遠隔のサーバから受けるステップと、前記アセットリクエスト応答を前記対称アルゴリズムにより解読するステップと、前記要求されたアセットを前記ローカルプロキシ及び前記ブラウザのうちの少なくとも１つへ送るステップとを実行させる命令を更に有する、ことを含むことができる。
【００９５】
例２４において、例２２乃至２３のいずれかの対象は、任意に、前記命令が、実行される場合に前記プロセッサに、ダミーストリングを含むアカウント選択応答を生成するステップと、前記アカウント選択応答を前記ブラウザへ送るステップと、前記ロードされたウェブページにおいてウェブページ入力フィールドに前記ダミーストリングを挿入するステップと、前記ダミーストリングを含む第２リクエストを前記ブラウザから受けるステップと、実時間において前記ダミーストリングを、前記遠隔のサーバから読み出されたパスワードにより置換するステップとを実行させる命令を更に有する、ことを含むことができる。
【００９６】
例２５において、例２３の対象は、任意に、実行される場合に前記プロセッサに挿入スクリプトを生成させる前記命令が、実行される場合に前記プロセッサに暗号キーをセキュアに生成させる命令を有し、前記対称アルゴリズムが、前記セキュアに生成された暗号キーを用いて、前記アセットリクエストを暗号化し且つ前記アセットリクエスト応答を解読する、ことを含むことができる。
【００９７】
例２６において、例２３の対象は、任意に、実行される場合に前記プロセッサにロードされたウェブページにおいてログインフォームの存在を確立させる前記命令は、実行される場合に前記プロセッサに、少なくとも１つのアカウント選択を含むアカウント選択フォームを前記ブラウザへ送るステップと、前記少なくとも１つのアカウント選択の１つを含むアカウント選択リクエストを生成するステップと、前記アカウント選択リクエストを前記ブラウザから受けるステップとを実行させる命令を有する、ことを含むことができる。
【００９８】
例２７は、プロセッサと、該プロセッサと結合され、命令が記憶されているメモリとを有するプログラム可能なデバイスであって、前記命令が、実行される場合に前記プロセッサに、ブラウザによるリクエストに応答してローカルプロキシをダウンロードするステップと、コンフィグレーションプロファイルを取得しインストールするステップと、内部仮想プライベートネットワークサービスをアクティブにするステップと、前記内部仮想プライベートネットワークサービスを通じて前記ローカルプロキシを確立するステップと、前記ローカルプロキシを実行するステップとを実行させる命令を有する、プログラム可能なデバイスである。
【００９９】
例２８において、例２７の対象は、任意に、前記リクエストがＨＴＴＰリクエストである、ことを含むことができる。
【０１００】
例２９において、例２７乃至２８のいずれかの対象は、任意に、前記ローカルプロキシが遠隔の仮想プライベートネットワークサーバと相互作用する、ことを含むことができる。
【０１０１】
上記の説明は、制限ではなく、実例であるよう意図されることが理解されるべきである。例えば、上記の実施形態は、お互いと組み合わされて使用されてよい。多くの他の実施形態は、上記の説明を読むことで当業者に明らかであろう。従って、本発明の適用範囲は、添付の特許請求の範囲を参照して、斯様な特許請求の範囲が権利を付与される等価な全範囲とともに決定されるべきである。
【０１０２】
［関連出願の相互参照］
本願は、２０１４年１月２４日付けで出願された、「Automatic  placeholder  finder-filler」と題された米国特許仮出願第６１／９３１２４７号に基づく優先権を主張するものである。なお、この先の特許出願は、その全文を参照により本願に援用される。
【図１】
0006449399.tif 000002
【図２】
0006449399.tif 000003
【図３】
0006449399.tif 000004
【図４】
0006449399.tif 000005
【図５】
0006449399.tif 000006
【図６】
0006449399.tif 000007
【図７】
0006449399.tif 000008
【図８】
0006449399.tif 000009