(57)【特許請求の範囲】
【請求項１】
モバイルデバイスのプロセッサによって、前記モバイルデバイス上で実行しているモバイルアプリケーションが私設網との通信を要求していることを判定することと、
前記プロセッサによって、前記モバイルデバイス上で実行している前記モバイルアプリケーションによって発行された、前記私設網と通信するための、１つ以上のシステムコールを傍受することと、
前記プロセッサによって、及び前記モバイルデバイスのポート上で、前記モバイルアプリケーションから前記私設網へ通信を送信するための仮想私設網（ＶＰＮ）サーバーへの通信リンクを生成することと、
前記プロセッサによって、１つ以上のメッセージを、前記モバイルアプリケーションから、前記私設網に転送するためのアクセスゲートウェイに送信するように、前記ＶＰＮサーバーに命令することと、を含み、
前記ポートは前記モバイルデバイスの動的ポートであり、前記ＶＰＮサーバーは、伝送制御プロトコル（ＴＣＰ）サーバーであり、
前記ＶＰＮサーバーへの前記通信リンクの生成は、前記プロセッサによって、前記動的ポート上に前記ＴＣＰサーバーを生成することと、前記プロセッサによって、前記動的ポートを前記ＴＣＰサーバーにＴＣＰ接続することと、をさらに含む、方法。
【請求項２】
前記プロセッサによって、前記私設網との通信を要求している複数のモバイルアプリケーションの各々に、異なる動的ポートをアサインすることにより、前記モバイルアプリケーションからの通信をルーティングするために使用される前記動的ポートを割り当てることをさらに含む、請求項１に記載の方法。
【請求項３】
前記プロセッサによって、前記１つ以上のシステムコールに関連付けられた少なくとも１つのメッセージの宛先ネットワークアドレスを特定することと、
前記プロセッサによって、前記モバイルデバイスのポートへの宛先ネットワークアドレスのマッピングを使用して、前記モバイルアプリケーションから前記私設網に通信をルーティングするために使用される前記ポートを特定することと、をさらに含み、前記特定されたポートが、前記マッピングの前記少なくとも１つのメッセージの前記宛先ネットワークアドレスに対応する、請求項１に記載の方法。
【請求項４】
モバイルデバイスのプロセッサによって、前記モバイルデバイス上で実行しているモバイルアプリケーションが私設網との通信を要求していることを判定することと、
前記プロセッサによって、前記モバイルデバイス上で実行している前記モバイルアプリケーションによって発行された、前記私設網と通信するための、１つ以上のシステムコールを傍受することと、
前記プロセッサによって、及び前記モバイルデバイスのポート上で、前記モバイルアプリケーションから前記私設網へ通信を送信するための仮想私設網（ＶＰＮ）サーバーへの通信リンクを生成することと、
前記プロセッサによって、１つ以上のメッセージを、前記モバイルアプリケーションから、前記私設網に転送するためのアクセスゲートウェイに送信するように、前記ＶＰＮサーバーに命令することと、
前記プロセッサによって、前記１つ以上のメッセージが、複数の異なるネットワークアドレス宛であると判定することと、
前記プロセッサによって、複数のＴＣＰサーバーを生成することであって、前記複数のＴＣＰサーバーの各ＴＣＰサーバーは、前記モバイルデバイスの異なる動的ポート上で生成され、複数の動的ポートの各動的ポートは、前記複数の異なるネットワークアドレスの各々について、前記モバイルアプリケーションから前記私設網に通信を送信するために生成される、生成することと、
前記プロセッサによって、複数のＴＣＰ接続を生成することと、
をさらに含み、
それぞれの前記ＴＣＰ接続は、前記複数の動的ポートの各々から前記私設網に、前記モバイルアプリケーションからの通信を送信するための通信リンクに対応している、方法。
【請求項５】
前記プロセッサによって、前記モバイルアプリケーションからの前記１つ以上のメッセージが、前記私設網宛てであると判定することと、
前記プロセッサによって、前記１つ以上のメッセージのペイロードを、前記モバイルデバイスの前記ポートの前記ＶＰＮサーバーに送信することと、をさらに含む、請求項１に記載の方法。
【請求項６】
前記１つ以上のメッセージを、前記モバイルアプリケーションから前記アクセスゲートウェイに送信するように、前記ＶＰＮサーバーに命令することは、
前記プロセッサによって、前記１つ以上のメッセージを、前記私設網に送信するために使用される前記通信リンクのトンネリングプロトコルに従って、前記１つ以上のメッセージから１つ以上のパケットを生成するように、前記ポートの前記ＶＰＮサーバーに命令することと、
前記プロセッサによって、前記トンネリングプロトコルに従って処理された前記１つ以上のパケットを、前記通信リンクを介して前記私設網に送信するように、前記ＶＰＮサーバーに命令することと、をさらに含む、請求項１に記載の方法。
【請求項７】
モバイルデバイスのプロセッサによって、前記モバイルデバイス上で実行しているモバイルアプリケーションが私設網との通信を要求していると判定することと、
前記プロセッサによって、前記モバイルデバイス上で実行している前記モバイルアプリケーションによって発行された前記私設網と通信するための１つ以上のシステムコールを傍受することと、
前記１つ以上のシステムコールが、ドメインソケットパスにアドレス指定されているという判定に応答して、前記１つ以上のシステムコールの前記ドメインソケットパスを、前記モバイルアプリケーションに対応するサンドボックスパスと置換することと、
前記プロセッサによって、前記モバイルアプリケーションから前記私設網へ通信を送信するための前記サンドボックスパスの仮想私設網（ＶＰＮ）サーバーへの通信リンクを生成することと、
前記プロセッサによって、１つ以上のメッセージを、前記モバイルアプリケーションから、前記私設網に転送するためのアクセスゲートウェイに送信するように、前記ＶＰＮサーバーに命令することと、
前記プロセッサによって、前記１つ以上のシステムコールがシステムレベルのＤＮＳプロセスにアドレス指定されている少なくとも１つのドメインネームシステム（ＤＮＳ）クエリを含むことを判定することと、を含み、
前記１つ以上のシステムコールの前記ドメインソケットパスを、前記サンドボックスパスと置換することは、さらに、
前記プロセッサによって、前記モバイルアプリケーションから前記私設網に通信を送信するためのローカルドメインソケットに前記サンドボックスパスを生成することと、前記プロセッサによって、及び前記モバイルアプリケーションに対して、前記ローカルドメインソケットに通信可能に連結された前記ＶＰＮサーバーを生成することと、を含む、方法。
【請求項８】
前記プロセッサによって、アプリケーション固有のＤＮＳプロセスを、前記ローカルドメインソケットに通信可能に連結された前記ＶＰＮサーバーで生成することをさらに含む、請求項７に記載の方法。
【請求項９】
前記プロセッサによって、前記１つ以上のシステムコールに関連付けられた少なくとも１つのメッセージの宛先ネットワークアドレスを特定することと、
前記プロセッサによって、前記少なくとも１つのメッセージを、ＤＮＳ解決のために、前記ローカルドメインソケットに通信可能に連結された前記ＶＰＮサーバーに送信することと、
前記プロセッサによって、前記１つ以上のメッセージを、前記私設網に転送するための前記アクセスゲートウェイに送信するように、前記ＶＰＮサーバーのアプリケーション固有のＤＮＳプロセスに命令することと、をさらに含む、請求項７に記載の方法。
【請求項１０】
前記１つ以上のメッセージを、前記モバイルアプリケーションから前記アクセスゲートウェイに送信するように前記ＶＰＮサーバーに命令することは、
前記プロセッサによって、前記１つ以上のメッセージを前記私設網に送信するために使用される前記通信リンクのＤＮＳプロトコルに従って、前記１つ以上のメッセージから、１つ以上のパケットを生成するように、前記サンドボックスパスの前記ＶＰＮサーバーに命令することと、
前記プロセッサによって、前記ＤＮＳプロトコルに従って処理された前記１つ以上のパケットを、前記通信リンクを介して、前記私設網に送信するように、前記ＶＰＮサーバーに命令することと、をさらに含む、請求項７に記載の方法。
【請求項１１】
前記プロセッサによって、前記モバイルデバイス上で実行している複数の異なるモバイルアプリケーションからの複数の異なるメッセージが前記私設網宛てであることを判定することと、
前記プロセッサによって、複数のサンドボックスパスを生成することであって、前記複数のサンドボックスパスの各サンドボックスパスは、前記複数の異なるモバイルアプリケーションの対応するモバイルアプリケーションから、前記私設網に通信を送信するために、複数のローカルドメインソケットの異なるローカルドメインソケットに生成される、生成することと、
前記プロセッサによって、及び前記モバイルアプリケーションに対して、複数のＶＰＮサーバーを生成することであって、前記複数のＶＰＮサーバーの各々は、前記複数のローカルドメインソケットの対応するローカルドメインソケットに通信可能に連結される、生成することと、
前記プロセッサによって、複数のアプリケーション固有のＤＮＳプロセスを生成することであって、各アプリケーション固有のＤＮＳプロセスは、前記複数のローカルドメインソケットの対応するローカルドメインソケットに通信可能に連結された前記複数のＶＰＮサーバーの対応するＶＰＮサーバーで実行する、生成することと、をさらに含む、請求項７に記載の方法。
【請求項１２】
前記少なくとも１つのＤＮＳクエリが前記システムレベルのＤＮＳプロセスによって解決される必要があるという判定に応答して、前記プロセッサによって、前記１つ以上のシステムコールに関連付けられた少なくとも１つのメッセージを、ＤＮＳ解決のための前記システムレベルのＤＮＳプロセスに送信することをさらに含む、請求項７に記載の方法。
【請求項１３】
機器であって、
少なくとも１つのプロセッサと、
少なくとも１つの通信ポートと、
コンピュータ可読命令を記憶する少なくとも１つのメモリと、を備え、前記コンピュータ可読命令は、前記少なくとも１つのプロセッサによって実行されたとき、前記機器に、次の各手順を実行させる、機器：
前記機器上で実行しているモバイルアプリケーションが私設網との通信を要求していることを判定すること、
前記機器上で実行している前記モバイルアプリケーションによって発行された前記私設網と通信するための１つ以上のシステムコールを傍受すること、
前記モバイルアプリケーションから前記私設網に通信を送信するための仮想私設網（ＶＰＮ）サーバーへの通信リンクを、前記少なくとも１つの通信ポートに生成すること、
１つ以上のメッセージを、前記モバイルアプリケーションから、前記私設網に転送するためのアクセスゲートウェイに送信するように、前記ＶＰＮサーバーに命令すること、
前記１つ以上のメッセージが複数の異なるネットワークアドレス宛てであることを判定すること、
複数のＴＣＰサーバーを生成すること、ここにおいて前記複数のＴＣＰサーバーの各々は、前記機器の異なる動的通信ポート上で生成され、複数の動的通信ポートのうちの各動的通信ポートは、前記複数の異なるネットワークアドレスの各々に対して、前記モバイルアプリケーションから前記私設網に通信を送信するために生成され、ならびに
複数のＴＣＰ接続を生成すること、ここにおいて、各ＴＣＰ接続は、前記モバイルアプリケーションからの通信を、前記複数の動的通信ポートの各々から前記私設網に送信する通信リンクに対応する。
【請求項１４】
前記命令は、前記少なくとも１つのプロセッサによって実行されたとき、前記機器に、次の各手順を実行させる、請求項１３に記載の機器：
前記１つ以上のシステムコールに関連付けられた少なくとも１つのメッセージの宛先ネットワークアドレスを特定すること、
前記機器の通信ポートへの宛先ネットワークアドレスのマッピングを使用して、前記モバイルアプリケーションから前記私設網に通信をルーティングするために使用される通信ポートを特定すること、ここにおいて、前記特定された通信ポートは、前記マッピングの前記少なくとも１つのメッセージの前記宛先ネットワークアドレスに対応する。
【請求項１５】
前記モバイルアプリケーションから前記アクセスゲートウェイに前記１つ以上のメッセージを送信するように前記ＶＰＮサーバーに命令するための前記命令は、前記少なくとも１つのプロセッサによって実行されたとき、前記機器に、次の各手順を実行させる、請求項１３に記載の機器：
前記１つ以上のメッセージを前記私設網に送信するために使用される前記通信リンクのトンネリングプロトコルに従って、前記１つ以上のメッセージから１つ以上のパケットを生成するように、前記少なくとも１つの通信ポートの前記ＶＰＮサーバーに命令すること、
前記トンネリングプロトコルに従って処理された前記１つ以上のパケットを、前記通信リンクを介して、前記私設網に送信するように、前記ＶＰＮサーバーに命令すること。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の態様は、一般に、モバイルコンピューティングデバイスのためのモバイルアプリケーションに関する。より具体的には、本明細書に記載の態様は、アプリケーションごとに、モバイルデバイスにセキュアなトンネリングを提供するための技術に関する。
【背景技術】
【０００２】
ますます多くの人々が、個人的に及びビジネスシーンで様々な目的のためにモバイルデバイスを使用している。会社のリソースにアクセスするために、従業員はこれらのデバイスを時には遠隔地や普段と違う場所からアクセスすることがしばしばある。企業や他の組織はますます、スマートフォン、タブレットコンピュータ、及び他のモバイルコンピューティングデバイスなどのモバイルデバイスを提供し、及び／または従業員やその他の関係者がスマートフォン、タブレットコンピュータ、及び他のモバイルコンピューティングデバイスなどのモバイルデバイスの機能を有効にすることができる。これらのデバイスの人気が高まり続け、ビジネスアプリケーションがますます増えつつあるため、事業者モバイルアプリケーションは、従業員に、彼らのモバイルデバイスからネットワーク化されたエンタープライズアプリケーションにアクセスする手段を提供している。
【０００３】
多くのモバイルユーザーは、仮想私設網（ＶＰＮ）を介して、モバイルデバイスから私設網上で実行されている企業サーバーに接続する。従来のＶＰＮシステムは、モバイルデバイスからモバイルアプリケーションによって発行されたすべてのネットワークトラフィックが私設網に送られるように、デバイスレベルのＶＰＮ接続を使用する。このような従来のデバイスレベルのＶＰＮシステムでは、プライベートネットワークの任意の部分と通信する必要のないモバイルデバイス上で実行しているアプリケーションからネットワークアドレスを公開する可能性が高いアプリケーショントラフィックもまた自動的に傍受される。このような私設網宛てでないアプリケーショントラフィックの傍受は、不必要にＶＰＮ接続及びデバイスバッテリに負担を与え、しばしばエンドユーザにプライバシーリスクをもたらす。従来のデバイスレベルのＶＰＮシステムでは、パケットが傍受される必要のない非エンタープライズアプリケーションを含むモバイルデバイス上にインストールされたすべてのアプリケーションからパケットが傍受される。このようなエンタープライズＶＰＮシステムによるモバイルデバイス上での個人的なアプリケーションの傍受は、個々のモバイルユーザーの私的なアプリケーションデータが、企業のデバイスレベルのＶＰＮによって傍受されているため、プライバシーに関する懸念を引き起こす。さらに、従来のデバイスレベルのＶＰＮシステムでは、各モバイルアプリケーションは、パケット傍受及びトンネリングネットワークインターフェースを作成することに、モバイルデバイスのオペレーティングシステムに依存しており、このようなシステムでは、すべてのネットワークトラフィックを傍受してトンネリングする必要がある特定の時間において、１つのデバイスレベルのＶＰＮしか実行できない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以下に、本明細書に記載の種々の態様の簡易要約を提示する。本要約は、詳細な概要ではなく、主要もしくは重大な要素を特定するか、または特許請求の範囲を描写することを意図するものではない。以下の要約は単に、下記で提供されるより詳細な説明に対する紹介用の前置きとして、簡易形態でいつくかの概念を提示する。
【０００５】
上述した従来技術における制限を克服し、本明細書を読んで理解することによって明らかになるであろう他の制限を克服するために、本明細書に記載の態様は、アプリケーションごとにモバイルデバイスにセキュアなトンネリングを提供することに向けられる。
【課題を解決するための手段】
【０００６】
本明細書に記載の第１の態様は、モバイルデバイス上で実行しているモバイルアプリケーションが私設網との通信を要求していることを判定する方法を提供する。モバイルデバイス上で実行されるモバイルアプリケーションによって発行された、私設網と通信するための、１つ以上のシステムコールが傍受される可能性がある。仮想私設網（ＶＰＮ）サーバーへの通信リンクは、モバイルアプリケーションから、私設網へ通信を送信するモバイルデバイスのポート上で生成され得る。ＶＰＮサーバーは、１つ以上のメッセージを、私設網に転送するために、モバイルアプリケーションからアクセスゲートウェイに送信するように命令され得る。
【０００７】
幾つかの実施形態では、１つ以上のシステムコールに関連付けられた少なくとも１つのメッセージの宛先ネットワークアドレスを特定することができる。モバイルアプリケーションから、私設網に通信をルーティングするために使用されるポートは、宛先ネットワークアドレスをモバイルデバイスのポートにマッピングすることによって特定することができ、識別されたポートが、マッピングにおける少なくとも１つのメッセージの宛先ネットワークアドレスに対応するようになっている。
【０００８】
幾つかの実施形態では、ポートはモバイルデバイスの動的ポートであり得る。動的ポートは、私設網と通信することを要求している複数のモバイルアプリケーションの各々に、異なる動的ポートをアサインすることによって、モバイルアプリケーションからの通信をルーティングするために使用されるように割り当てることができる。ＶＰＮサーバーは、伝送制御プロトコル（ＴＣＰ）サーバーであり得る。ＶＰＮサーバーへの通信リンクを生成するには、動的ポート上にＴＣＰサーバーが生成され、動的ポートとＴＣＰサーバー間にＴＣＰ接続が生成され得る。
【０００９】
幾つかの実施形態では、１つ以上のメッセージが複数の異なるネットワークアドレス宛てであると判定され得る。複数のＴＣＰサーバーの各ＴＣＰサーバーがモバイルデバイスの異なる動的ポート上で生成され、複数の異なるネットワークアドレスの各々について、複数の動的ポートの各動的ポートがモバイルアプリケーションから私設網に通信を送信するために生成されるように、複数のＴＣＰサーバーが生成され得る。各ＴＣＰ接続が、複数の動的ポートの各々のモバイルアプリケーションから私設網に通信を送信する、通信リンクに対応するように、複数のＴＣＰ接続を生成することができる。
【００１０】
幾つかの実施形態では、ポートはモバイルデバイスの固定ポートであり得、ＶＰＮサーバーは、ユーザデータグラムプロトコル（ＵＤＰ）サーバーであり得る。ＶＰＮサーバーへの通信リンクを生成するには、固定ポート上でＵＤＰサーバーが生成され、固定ポートとＵＤＰサーバー間でＵＤＰ接続が生成されることがある。
【００１１】
幾つかの実施形態では、モバイルアプリケーションからの１つ以上のメッセージが私設網宛てであると判定され得る。１つ以上のメッセージのペイロードは、モバイルデバイスのポートでＶＰＮサーバーに送信され得る。
【００１２】
幾つかの実施形態では、モバイルアプリケーションからアクセスゲートウェイへ１つ以上のメッセージを送信するようにＶＰＮサーバーに命令するために、ＶＰＮサーバーは、１つ以上のメッセージを私設網に送信するために使用される通信リンクのトンネリングプロトコルに従って、１つ以上のメッセージから１つ以上のパケットを生成するように命令され得る。ＶＰＮサーバーは、トンネリングプロトコルに従って処理された１つ以上のパケットを、通信リンクを介して私設網に送信するように命令され得る。
【００１３】
本明細書に記載の別の態様は、ドメインネームシステム（ＤＮＳ）のメッセージを私設網にトンネリングする方法を提供する。モバイルデバイス上で実行されているモバイルアプリケーションが、私設網と通信することを要求していると判定することができる。モバイルデバイス上で実行されるモバイルアプリケーションによって発行された私設網と通信するために、１つ以上のシステムコールが傍受される可能性がある。１つ以上のシステムコールがドメインソケットパスにアドレス指定されているという決定に応じて、１つ以上のシステムコールのドメインソケットパスを、モバイルアプリケーションに対応するサンドボックスパスに置換することができる。通信リンクは、モバイルアプリケーションから私設網へ通信を送信するサンドボックスパスのＶＰＮサーバーに生成され得る。ＶＰＮサーバーは、１つ以上のメッセージを私設網に転送することについて、モバイルアプリケーションからアクセスゲートウェイに送信するように命令され得る。
【００１４】
幾つかの実施形態では、１つ以上のシステムコールが、システムレベルのＤＮＳプロセスに宛てられた少なくとも１つのＤＮＳクエリを含むと判定され得る。１つ以上のシステムコールのドメインソケットパスをサンドボックスパスと置換するには、モバイルアプリケーションから私設網に通信を送信するローカルドメインソケットでサンドボックスパスを生成することができる。ＶＰＮサーバーがローカルドメインソケットに通信可能に連結されるように、そのモバイルアプリケーションに対するＶＰＮサーバーを生成することができる。
【００１５】
幾つかの実施形態では、アプリケーション固有のＤＮＳプロセスが、ローカルドメインソケットに通信可能に連結されたＶＰＮサーバーで生成され得る。１つ以上のシステムコールに関連付けられた少なくとも１つのメッセージの宛先ネットワークアドレスを特定することができる。少なくとも１つのメッセージは、ＤＮＳ解決のために、ローカルドメインソケットに通信可能に連結されたＶＰＮサーバーに送信され得る。ＶＰＮサーバーのアプリケーション固有のＤＮＳプロセスは、１つ以上のメッセージを私設網に転送するために、アクセスゲートウェイに送信するように命令され得る。少なくとも１つのＤＮＳクエリがシステムレベルのＤＮＳプロセスによって解決される必要があると判定したことに応答して、１つ以上のシステムコールに関連付けられた少なくとも１つのメッセージを、ＤＮＳ解決のためにシステムレベルのＤＮＳプロセスに送信することができる。
【００１６】
幾つかの実施形態では、モバイルアプリケーションからアクセスゲートウェイへ１つ以上のメッセージを送信するようにＶＰＮサーバーに命令するために、サンドボックスパスのＶＰＮサーバーは、１つ以上のメッセージを私設網に送信するために使用される通信リンクのＤＮＳプロトコルに従って、１つ以上のパケットを１つ以上のメッセージから生成するように命令され得る。ＶＰＮサーバーは、ＤＮＳプロトコルに従って処理された１つ以上のパケットを、通信リンクを介して私設網に送信するように命令され得る。
【００１７】
幾つかの実施形態では、モバイルデバイス上で実行している複数の異なるモバイルアプリケーションからの複数の異なるメッセージが私設網宛てであると判定され得る。複数のサンドボックスパスの各サンドボックスパスが、複数のローカルドメインソケットのうちの異なるローカルドメインソケットで生成され、複数の異なるモバイルアプリケーションから私設網に通信を送信するように、複数のサンドボックスパスが生成され得る。複数のＶＰＮサーバーの各々が複数のローカルドメインソケットの対応するローカルドメインソケットに通信可能に連結されるように、モバイルアプリケーションに対する複数のＶＰＮサーバーを生成することができる。各アプリケーション固有のＤＮＳプロセスが、複数のローカルドメインソケットの対応するローカルドメインソケットに通信可能に連結された複数のＶＰＮサーバーの対応するＶＰＮサーバーで実行しているように、複数のアプリケーション固有のＤＮＳプロセスを生成することができる。
【００１８】
本明細書で説明される付加的態様は、１つ以上のプロセッサ、１つ以上のディスプレイスクリーン、及びプロセッサのうちの少なくとも１つによって実行されると、コンピューティングデバイスに上記の方法を実行させるという命令を記憶するメモリを有する装置を提供する。
【００１９】
これら及び追加の態様は、下記のさらなる詳細で論じられる開示により理解されるであろう。
【００２０】
本明細書に記載の態様及びこれらの利点をより詳細に理解することは、添付図面を考慮した以下の説明を参照することによって得ることができ、この中で、参照番号などは特性などを指す。
【図面の簡単な説明】
【００２１】
【図１】本明細書に記載の１つ以上の例示的な態様に従って使用され得る例示的なコンピュータシステムアーキテクチャを示す。
【図２】本明細書に記載の１つ以上の例示的な態様に従って使用され得る例示的な遠隔アクセスシステムアーキテクチャを示す。
【図３】本明細書に記載の１つ以上の例示的な態様による、例示的な企業モビリティ管理システムを示す。
【図４】本明細書に記載の１つ以上の例示的な態様による、別の例示的な企業モビリティ管理システムを示す。
【図５】本明細書に記載の１つ以上の例示的な態様による、ＴＣＰトンネリングプロトコルを使用してモバイルＶＰＮを管理する例示的なモバイルアプリケーションＶＰＮシステムを示す。
【図６】本明細書に記載の１つ以上の例示的な態様による、ＵＤＰトンネリングプロトコルを使用してモバイルＶＰＮを管理する例示的なモバイルアプリケーションＶＰＮシステムを示す。
【図７】本明細書に記載の１つ以上の例示的な態様による、ＤＮＳトンネリングプロトコルを使用してモバイルＶＰＮを管理する例示的なモバイルアプリケーションＶＰＮシステムを示す。
【図８Ａ】本明細書に記載の１つ以上の例示的な態様による、アプリケーションごとにモバイルＴＣＰ  ＶＰＮ接続を生成する方法を解説するフローチャートを示す。
【図８Ｂ】本明細書に記載の１つ以上の例示的な態様による、アプリケーションごとにモバイルＵＤＰ  ＶＰＮ接続を生成する方法を解説するフローチャートを示す。
【図８Ｃ】本明細書に記載の１つ以上の例示的な態様による、アプリケーションごとにモバイルＤＮＳ  ＶＰＮ接続を生成する方法を解説するフローチャートを示す。
【発明を実施するための形態】
【００２２】
種々の実施形態の以下の説明において、上記で特定された添付図面に対する参照がなされ、これらは、本明細書の一部を形成し、その中で、本明細書に記載の態様が実施され得る種々の実施形態の説明として示される。他の実施形態が利用され得、かつ構造的及び機能的な変形が本明細書に記載の範囲を逸脱することなくなされ得ることが理解されるべきである。種々の態様は、他の実施形態が可能であり、種々の異なる手法で実施または実行されることが可能である。
【００２３】
以下でより詳細に説明される主題の一般的な紹介として、本明細書で説明する態様は、モバイルデバイス上で実行している移動式事業者のアプリケーションから、モバイルデバイスが利用できる公衆網接続を介して、事業者の私設網にモバイルＶＰＮ接続を生成することに向けられる。デバイスからのすべてのアウトバウンドトラフィックを傍受する従来のデバイスレベルのＶＰＮ接続とは異なり、本明細書に記載のモバイルＶＰＮ接続は、管理されているアプリケーションのみのトラフィックを傍受してトンネリングすることができる。モバイルデバイス管理（ＭＤＭ）プロファイルまたはモバイルアプリケーション管理（ＭＡＭ）ポリシーは、モバイルデバイス上にインストールされたモバイルアプリケーションが、事業者の私設網へのモバイルＶＰＮ接続の生成に適していることを指定する。いったん生成されると、以下マイクロＶＰＮ及び／またはマイクロＶＰＮとも呼ばれるモバイルＶＰＮ接続は、１つ以上の指定されている事業者モバイルアプリケーションから事業者の私設網へのトラフィックをトンネリングするだけである。他のモバイルアプリケーションからのトラフィックは、事業者モバイルアプリケーション用に生成されたモバイルＶＰＮを介して傍受されることも、トンネリングされることもない。複数のモバイルＶＰＮ接続は、複数の移動式事業者アプリケーションを有するモバイルデバイス上で同時に動作することができ、各モバイルＶＰＮ接続は、特定の通信プロトコルに従って、それぞれの事業者モバイルアプリケーション用のデータをトンネリングする。開示の全体を通じて、このようなアプリケーションごとのモバイルＶＰＮを生成する異なる実装形態が説明される。異なるモバイルアプリケーションは、伝送制御プロトコル（ＴＣＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、及びドメインネームシステム（ＤＮＳ）アドレス指定プロトコルなどの異なるデータ転送／通信プロトコルを使用して、データを通信することができる。マイクロＶＰＮを生成するシステムアーキテクチャ及び方法は、これらのデータ転送プロトコルの各々に応じて異なる場合がある。
【００２４】
現在のＶＰＮシステムは、単一デバイスレベルのＶＰＮ接続を介して、デバイス（例えば、モバイルデバイス）上で実行しているすべてのアプリケーションからトラフィックを傍受する。このような従来のＶＰＮシステムでは、エンタープライズアプリケーションと同様にパケットを傍受する必要のない非エンタープライズアプリケーションからパケットが傍受される。加えて、現在のＶＰＮシステムは、システムレベルのデーモンを使用して、管理されているアプリケーションと管理されていないアプリケーションの両方からのすべてのパケットを傍受する。このようなシステムレベルのデーモンによるパケットの連続的な傍受は、バッテリの消耗を引き起こす。しかしながら、本明細書に記載のモバイルＶＰＮの実装形態は、管理されているアプリケーション、管理されているアプリケーションと、サードパーティーのライブラリ間で交換されるシステムコール及びすべてのアプリケーショントラフィック（直接及び間接の両方）が宛先に確実にトンネリングされるように、エンタープライズモバイルアプリケーションが参照するサードパーティーライブラリによって発行された任意のシステムコールからの低レベルのシステムコールを傍受する。
【００２５】
本明細書で使用される語法及び用語法は、説明の目的のためであり、限定するものとみなされるべきではないことが理解されるべきである。その代わりに、本明細書で使用される語句及び用語には、それらの最も広い解釈及び趣旨が所与されるべきである。「含む（ｉｎｃｌｕｄｉｎｇ）」及び「含む（ｃｏｍｐｒｉｓｉｎｇ）」、ならびにそれらの派生語の使用は、これ以降に列挙される項目及びその等価物、ならびに追加の項目及びその等価物を包含することを意味するものである。用語「装着される（ｍｏｕｎｔｅｄ）」、「接続される（ｃｏｎｎｅｃｔｅｄ）」、「連結される（ｃｏｕｐｌｅｄ）」、「位置付けられる（ｐｏｓｉｔｉｏｎｅｄ）」、「係合される（ｅｎｇａｇｅｄ）」、ならびに同様の用語は、直接と間接との両方で装着する、接続する、連結する、位置付ける、及び係合することを意味するものである。
〈コンピューティングアーキテクチャ〉
コンピュータのソフトウェア、ハードウェア、及びネットワークは、とりわけ、スタンドアロン環境、ネットワーク化された環境、遠隔アクセス（別名遠隔デスクトップ）環境、仮想化環境、及び／またはクラウドベースの環境を含む、種々の異なるシステム環境において利用され得る。図１は、スタンドアロン環境及び／またはネットワーク化された環境において、本明細書に記載の１つ以上の例示的な態様を実装するために使用され得る、システムアーキテクチャ及びデータ処理デバイスの一例を説明する。種々のネットワークノード１０３、１０５、１０７、及び１０９は、インターネットなどのワイドエリアネットワーク（ＷＡＮ）１０１を介して相互接続され得る。専用イントラネット、企業ネットワーク、ＬＡＮ、メトロポリタンエリアネットワーク（ＭＡＮ）、無線ネットワーク、パーソナルネットワーク（ＰＡＮ）などを含む、他のネットワークも使用され得るか、または代替的に使用され得る。ネットワーク１０１は、例示目的のためであり、少数または追加のコンピュータネットワークと置換され得る。ローカルエリアネットワーク（ＬＡＮ）は、１つ以上の任意の既知のＬＡＮトポロジーを有し得、イーサネット（登録商標）など１つ以上の種々の異なるプロトコルを使用し得る。デバイス１０３、１０５、１０７、１０９、及び他のデバイス（図示せず）は、ツイストペア配線、同軸ケーブル、光ファイバー、電波、または他の通信媒体を介して１つ以上のネットワークに接続され得る。
【００２６】
用語「ネットワーク」は、本明細書で使用され、かつ図面に示されるとき、システム内で遠隔ストレージデバイスが１つ以上の通信経路を介して一緒に連結されるシステムだけでなく、ストレージ能力を有するシステムなどにしばしば連結され得るスタンドアロン型デバイスも意味する。したがって、用語「ネットワーク」は、「物理ネットワーク」だけでなく、物理ネットワーク全体に存在する（単一のエンティティに帰属可能な）データから構成される「コンテンツネットワーク」も含む。
【００２７】
コンポーネントは、データサーバー１０３、ウェブサーバー１０５、及びクライアントコンピュータ１０７、１０９を含み得る。データサーバー１０３は、本明細書に記載の１つ以上の例示的な態様を行うためのデータベース及び制御ソフトウェアの全体のアクセス、制御、及び管理を提供する。データサーバー１０３は、ユーザがデータと相互作用し、必要に応じてデータを取得するためのウェブサーバー１０５に接続され得る。代替的に、データサーバー１０３は、ウェブサーバー自体として機能してもよく、インターネットに直接接続されてもよい。データサーバー１０３は、直接もしくは間接的な接続を介して、または幾つかの他のネットワークを介して、ネットワーク１０１（例えば、インターネット）経由でウェブサーバー１０５に接続され得る。ユーザは、遠隔コンピュータ１０７、１０９を使用して、例えば、ウェブサーバー１０５によってホスティングされた１つ以上の外部に露出されたウェブサイトを介して、データサーバー１０３に接続するためのウェブブラウザを使用して、データサーバー１０３と相互作用し得る。クライアントコンピュータ１０７、１０９は、データサーバー１０３に格納されたデータにアクセスするようにデータサーバー１０３と協調して使用され得るか、または他の目的のために使用され得る。例えば、クライアントデバイス１０７から、ユーザは、当該技術分野で既知のように、インターネットブラウザを使用して、またはウェブサーバー１０５及び／もしくはデータサーバー１０３とコンピュータネットワーク（インターネットなど）上で通信するソフトウェアアプリケーションを実行していることによって、ウェブサーバー１０５にアクセスし得る。
【００２８】
サーバー及びアプリケーションは、同じ物理マシン上で組み合わせされてもよく、別個の仮想アドレスもしくは論理アドレスを保持してもよく、または別個の物理マシン上に存在してもよい。
【００２９】
図１は、使用され得るネットワークアーキテクチャの一例のみを説明するものであり、本明細書でさらに記載されるように、使用される具体的なネットワークアーキテクチャ及びデータ処理デバイスが変更されてもよく、それらが提供する機能には二次的なものであるということを当業者は理解するであろう。例えば、ウェブサーバー１０５及びデータサーバー１０３によって提供されるサービスは、単一のサーバー上で組み合わされ得る。
【００３０】
各コンポーネント１０３、１０５、１０７、１０９は、任意のタイプの既知のコンピュータ、サーバー、またはデータ処理デバイスであり得る。データサーバー１０３は、例えば、レートサーバー１０３の全体の動作を制御するプロセッサ１１１を含み得る。データサーバー１０３は、ランダムアクセスメモリ（ＲＡＭ）１１３、リードオンリーメモリ（ＲＯＭ）１１５、ネットワークインターフェース１１７、入出力インターフェース１１９（例えば、キーボード、マウス、ディスプレイ、プリンタなど）、及びメモリ１２１をさらに含み得る。入出力（Ｉ／Ｏ）１１９は、データまたはファイルを読み取り、書き込み、表示し、及び／または印刷するための種々のインターフェースユニット及びドライブを含み得る。メモリ１２１は、データ処理デバイス１０３の全体の動作を制御するためのオペレーティングシステムソフトウェア１２３、本明細書に記載の態様を行うようにデータサーバー１０３に命令するための制御論理１２５、及び本明細書に記載の態様と共に使用されてもよいか、または使用されなくてもよい二次的なサポート及び／または他の機能を提供する他のアプリケーションソフトウェア１２７をさらに含み得る。制御論理はまた、データサーバーソフトウェア１２５としても本明細書では称され得る。データサーバーソフトウェアの機能は、制御論理に符号化された規則に基づいて自動的になされる動作または決定、入力をシステムに提供するユーザによって手動でなされる動作または決定、及び／またはユーザ入力（例えば、クエリ、データ更新など）に基づいた自動処理の組み合わせによってなされる動作または決定を意味する。
【００３１】
メモリ１２１は、第１のデータベース１２９及び第２のデータベース１３１など、本明細書で説明される１つ以上の態様の実行において使用されるデータも記憶し得る。幾つかの実施形態おいて、第１のデータベースは、第２のデータベースを（例えば、別個のテーブル、レポートなどとして）含み得る。つまり、情報を、単一のデータベースに格納できるか、またはシステム設計に依存して、異なる論理データベース、仮想データベース、もしくは物理データベースに分散できる。デバイス１０５、１０７、１０９は、デバイス１０３に関して記載されるように、同様のまたは異なるアーキテクチャを有し得る。本明細書に記載のデータ処理デバイス１０３（またはデバイス１０５、１０７、１０９）の機能が、例えば、複数のコンピュータにわたって処理負荷を分配したり、地理的な位置、ユーザアクセスレベル、サービス品質（ＱｏＳ）などに基づいてトランザクションを分離したりするために、複数のデータ処理デバイスにわたって分散され得ることを当業者は理解するであろう。
【００３２】
１つ以上の態様は、１つ以上のコンピュータまたは本明細書に記載の他のデバイスによって実行される１つ以上のプログラムモジュールにおいてなど、コンピュータ使用可能データもしくは可読データ及び／またはコンピュータ実行可能命令において具現化され得る。一般に、プログラムモジュールは、コンピュータまたは他のデバイス内のプロセッサによって実行されたときに、特定のタスクを実行しているか、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。モジュールは、実行用に後でコンパイルされるソースコードプログラミング言語で書き込まれ得るか、または（限定はされないが）ハイパーテキストマークアップ言語（ＨＴＭＬ）もしくは拡張可能マークアップ言語（ＸＭＬ）などのスクリプト言語で書き込まれ得る。コンピュータ実行可能命令は、不揮発性ストレージデバイスなどのコンピュータ可読媒体に格納され得る。ハードディスク、ＣＤ−ＲＯＭ、光学ストレージデバイス、磁気ストレージデバイス、及び／またはこれらの任意の組み合わせを含む、任意の好適なコンピュータ可読ストレージ媒体が利用され得る。加えて、本明細書に記載のデータまたはイベントを表す種々の伝送（非ストレージ）媒体は、金属配線、光ファイバー、及び／または無線伝送媒体（例えば、空気及び／または空間）などの信号伝導媒体を経由して移動する電磁波の形態で、送信元と送信先との間で転送され得る。本明細書に記載の種々の態様は、方法、データ処理システム、またはコンピュータプログラム製品として具現化され得る。したがって、種々の機能が、ソフトウェア、ファームウェア、及び／またはハードウェアもしくは集積回路などのハードウェア等価物、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの全体または一部において具現化され得る。特定のデータ構造を使って、本明細書に記載の１つ以上の態様をより効率的に実装してもよく、かかるデータ構造は、本明細書に記載のコンピュータ実行可能命令及びコンピュータ使用可能データの範囲内であると企図される。
【００３３】
図２をさらに参照すると、本明細書に記載の１つ以上の態様は、遠隔アクセス環境で実装され得る。図２は、本明細書に記載の１つ以上の例示的な態様に従って使用され得る例示的なコンピューティング環境２００における汎用コンピューティングデバイス２０１を含むシステムアーキテクチャの例を示す。汎用コンピューティングデバイス２０１は、管理されているアプリケーションへのアクセスをそのユーザにセキュアな環境で提供するように構成されたモバイルコンピューティングデバイスであってもよい。汎用コンピューティングデバイス２０１は、サーバー、ならびにＲＡＭ２０５、ＲＯＭ２０７、Ｉ／Ｏモジュール２０９、及びメモリ２１５を含むサーバー関連のコンポーネントの全体の動作を制御するためのプロセッサ２０３を有し得る。
【００３４】
Ｉ／Ｏモジュール２０９としては、汎用コンピューティングデバイス２０１のユーザが入力を提供し得るためのマウス、キーパッド、タッチ画面、スキャナ、光学読取デバイス、及び／またはスタイラス（または他の入力デバイス（複数可））が挙げられ、また、音声出力を提供するための１つ以上のスピーカ、ならびにテキスト出力、視聴覚出力、及び／またはグラフィカルな出力を提供するための映像ディスプレイデバイスも挙げられる。ソフトウェアは、メモリ２１５及び／または他のストレージデバイス内に格納されて、本明細書に記載の種々の機能を行うために、汎用コンピューティングデバイス２０１を専用コンピューティングデバイスに構成するために命令をプロセッサ２０３に提供し得る。例えば、メモリ２１５は、オペレーティングシステム２１７、アプリケーションプログラム２１９、及び関連付けられたデータベース２２１などのコンピューティングデバイス２０１によって使用されるソフトウェアを格納してもよい。
【００３５】
コンピューティングデバイス２０１は、端末２４０などの１つ以上の遠隔コンピュータ（クライアントデバイスとも称される）への接続をサポートするネットワーク化された環境内で動作し得る。端末２４０は、汎用コンピューティングデバイス１０３または２０１に対して、上に記載の要素の多くまたはすべてを含むパーソナルコンピュータ、モバイルデバイス、ラップトップ型コンピュータ、タブレット、またはサーバーであり得る。図２に示されるネットワーク接続には、ローカルエリアネットワーク（ＬＡＮ）２２５及びワイドエリアネットワーク（ＷＡＮ）２２９が含まれるが、他のネットワークを含むこともできる。ＬＡＮネットワーキング環境で使用される場合、コンピューティングデバイス２０１は、ネットワークインターフェースまたはアダプタ２２３を経由してＬＡＮ２２５に接続され得る。ＷＡＮネットワーキング環境で使用される場合、コンピューティングデバイス２０１は、コンピュータネットワーク２３０（例えば、インターネット）などのＷＡＮ２２９上で通信を確立するためのモデム２２７または他のワイドエリアネットワークインターフェースを含み得る。示されるネットワーク接続が例示的なものであり、通信リンクをコンピュータ間に確立する他の手段が使用され得るということが理解されるであろう。コンピューティングデバイス２０１及び／または端末２４０はまた、バッテリ、スピーカ、及びアンテナ（図示せず）など種々の他のコンポーネントを含むモバイル端末（例えば、携帯電話、スマートフォン、パーソナルデジタルアシスタント（ＰＤＡ）、ノート型パソコンなど）でもあり得る。
【００３６】
本明細書に記載の態様はまた、多くの他の汎用または専用コンピューティングシステムの環境または構成でも動作可能であり得る。本明細書に記載の態様での使用のために好適であり得る他のコンピューティングシステム、環境、及び／または構成の実施例としては、限定はされないが、パーソナルコンピュータ、サーバーコンピュータ、携帯型またはラップトップ型デバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家電製品、ネットワークパーソナルコンピュータ（ＰＣ）、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスなどのいずれかを含む分散型コンピューティング環境が挙げられる。
【００３７】
図２に示されるように、１つ以上のクライアントデバイス２４０は、１つ以上のサーバー２０６ａ〜２０６ｎ（「サーバー２０６（複数可）」として本明細書では概して称される）と通信し得る。一実施形態において、コンピューティング環境２００は、サーバー２０６（複数可）とクライアントマシン２４０（複数可）との間に設置されるネットワーク機器を含み得る。ネットワーク機器は、クライアント／サーバー接続を管理し得、場合によって、複数のバックエンドサーバー２０６間でクライアント接続の負荷を分散することができる。
【００３８】
クライアントマシン２４０（複数可）は、幾つかの実施形態において、単一のクライアントマシン２４０または単一グループのクライアントマシン２４０と称され得る一方、サーバー２０６（複数可）は、単一のサーバー２０６または単一グループのサーバー２０６と称され得る。一実施形態において、単一のクライアントマシン２４０は、２つ以上のサーバー２０６と通信するが、別の実施形態では、単一のサーバー２０６は、２つ以上のクライアントマシン２４０と通信する。また別の実施形態では、単一のクライアントマシン２４０は、単一のサーバー２０６と通信する。
【００３９】
クライアントマシン２４０は、幾つかの実施形態において、完全に網羅しているわけではないが、クライアントマシン（複数可）、クライアント（複数可）、クライアントコンピュータ（複数可）、クライアントデバイス（複数可）、クライアントコンピューティングデバイス（複数可）、ローカルマシン、遠隔マシン、クライアントノード（複数可）、エンドポイント（複数可）、またはエンドポイントノード（複数可）といった用語のいずれか１つによって参照することができる。サーバー２０６は、幾つかの実施形態において、完全に網羅しているわけではないが、サーバー（複数可）、ローカルマシン、遠隔マシン、サーバーファーム（複数可）、またはホストコンピューティングデバイス（複数可）といった用語のいずれか１つによって参照され得る。
【００４０】
一実施形態において、クライアントマシン２４０は、仮想マシンであり得る。仮想マシンは、任意の仮想マシンであり得るが、幾つかの実施形態では、仮想マシンは、例えば、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ、ＩＢＭ、ＶＭｗａｒｅによって開発されたハイパーバイザーなどのタイプ１もしくはタイプ２のハイパーバイザー、または任意の他のハイパーバイザーによって管理される任意の仮想マシンであってもよい。幾つかの態様において、仮想マシンは、ハイパーバイザーによって管理され得るが、態様では、仮想マシンは、サーバー２０６上で実行しているハイパーバイザーまたはクライアント２４０上で実行しているハイパーバイザーによって管理されてもよい。
【００４１】
幾つかの実施形態では、サーバー２０６または他の遠隔に位置するマシン上で遠隔で実行しているアプリケーションによって生成されるアプリケーション出力を表示するクライアントデバイス２４０が含まれる。これらの実施形態では、クライアントデバイス２４０は、仮想マシンの受信側プログラム（ｒｅｃｅｉｖｅｒ  ｐｒｏｇｒａｍ）またはアプリケーションを実行して、アプリケーションウィンドウ、ブラウザ、または他の出力ウィンドウに出力を表示し得る。一実施例において、アプリケーションは、デスクトップであるが、他の実施例では、アプリケーションは、デスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルアプリケーション及び／または遠隔アプリケーションを組み込むことができるオペレーティングシステムのインスタンス用のユーザインターフェースを提供するグラフィカルシェルを含み得る。アプリケーションは、本明細書で使用されるとき、オペレーティングシステム（及び任意選択でデスクトップも）のインスタンスがロードされた後で実行しているプログラムである。
【００４２】
サーバー２０６は、幾つかの実施形態において、遠隔プレゼンテーションプロトコルまたは他のプログラムを使用して、データを、クライアント上で実行しているシンクライアントまたは遠隔ディスプレイアプリケーションに送信し、サーバー２０６上で実行しているアプリケーションによって生成されるディスプレイ出力を提示する。シンクライアントまたは遠隔ディスプレイプロトコルは、完全に網羅しているわけではないが、フロリダ州フォートローダーデールのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって開発されたＩｎｄｅｐｅｎｄｅｎｔ  Ｃｏｍｐｕｔｉｎｇ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＣＡ）プロトコル、またはワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されたＲｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ（ＲＤＰ）といった、プロトコルリストのうちのいずれか１つであり得る。
【００４３】
遠隔コンピューティング環境は、サーバー２０６ａ〜２０６ｎが、サーバーファーム２０６、例えば、クラウドコンピューティング環境に、論理的に一緒にグループ化されるように、２つ以上のサーバー２０６ａ〜２０６ｎを含み得る。サーバーファーム２０６は、地理的に分散される一方、論理的にグループ化されるサーバー２０６、または互いに近接して位置する一方、論理的にグループ化されるサーバー２０６を含み得る。サーバーファーム２０６内の地理的に分散されたサーバー２０６ａ〜２０６ｎは、幾つかの実施形態において、ＷＡＮ（ワイド）、ＭＡＮ（メトロポリタン）、またはＬＡＮ（ローカル）を使用して通信することができ、その場合、異なる地理的領域は、異なる大陸、大陸の異なる領域、異なる国、異なる州、異なる都市、異なるキャンパス、異なる部屋、または前述の地理的位置の任意の組み合わせとして特徴付けることができる。幾つかの実施形態において、サーバーファーム２０６は、単一のエンティティとして管理され得るが、他の実施形態では、サーバーファーム２０６は、複数のサーバーファームを含むことができる。
【００４４】
幾つかの実施形態では、サーバーファームは、実質的に同様のタイプのオペレーティングシステムプラットフォーム（例えば、ＷＩＮＤＯＷＳ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ、ｉＯＳ、ＡＮＤＲＯＩＤ（登録商標）、ＳＹＭＢＩＡＮなど）を実行しているサーバー２０６を含むことができる。他の実施形態において、サーバーファーム２０６は、第１のタイプのオペレーティングシステムプラットフォームを実行している１つ以上のサーバーの第１のグループと、第２のタイプのオペレーティングシステムプラットフォームを実行している１つ以上のサーバーの第２のグループとを含み得る。
【００４５】
サーバー２０６は、必要に応じて、例えば、ファイルサーバー、アプリケーションサーバー、ウェブサーバー、プロキシサーバー、機器、ネットワーク機器、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバー、仮想化サーバー、展開サーバー、セキュアなソケット層（ＳＳＬ）ＶＰＮサーバー、ファイアウォール、ウェブサーバー、アプリケーションサーバーなどの任意のタイプのサーバーとして、あるいはマスタアプリケーションサーバー、アクティブディレクトリを実行しているサーバー、またはファイアウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション高速化プログラムを実行しているサーバーとして構成されてもよい。また他のタイプのサーバーが使用されてもよい。
【００４６】
幾つかの実施形態では、クライアントマシン２４０から要求を受信し、要求を第２のサーバー１０６ｂに転送し、第２のサーバー１０６ｂからの応答でクライアントマシン２４０によって生成された要求に応答する、第１のサーバー１０６ａが含まれる。第１のサーバー１０６ａは、クライアントマシン２４０に対して利用可能なアプリケーションのリスト、及びアプリケーションのリスト内で特定されたアプリケーションをホスティングするアプリケーションサーバー２０６と関連付けられたアドレス情報を獲得し得る。次いで、第１のサーバー１０６ａは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、クライアント２４０と直接通信して、クライアント２４０に、特定されたアプリケーションへのアクセスを提供することができる。１つ以上のクライアント２４０及び／または１つ以上のサーバー２０６は、ネットワーク２３０、例えば、ネットワーク１０１上でデータを送信し得る。
【００４７】
図２は、デスクトップ仮想化システムのハイレベルアーキテクチャを示す。示されるように、デスクトップ仮想化システムは、仮想デスクトップ及び／または仮想アプリケーションを１つ以上のクライアントアクセスデバイス２４０に提供するように構成された少なくとも１つの仮想化サーバー２０６を含む、単一のサーバーシステムもしくは複数のサーバーシステム、またはクラウドシステムであってもよい。本明細書で使用されるとき、デスクトップは、１つ以上のアプリケーションがホスティング及び／または実行され得るグラフィカル環境または空間を意味する。デスクトップは、ローカルアプリケーション及び／または遠隔アプリケーションを組み込むことができるオペレーティングシステムのインスタンス用のユーザインターフェースを提供するグラフィカルシェルを含み得る。アプリケーションは、オペレーティングシステム（及び任意選択でデスクトップも）のインスタンスがロードされた後で実行しているプログラムを含み得る。オペレーティングシステムの各インスタンスは、物理的（例えば、デバイスごとに１つのオペレーティングシステム）であっても、仮想（例えば、単一のデバイス上で実行しているＯＳの多くのインスタンス）であってもよい。各アプリケーションは、ローカルデバイス上で実行されても、遠隔に位置するデバイス（例えば、遠隔型）上で実行されてもよい。
【００４８】
示された第１のモビリティアプリケーション及び第２のモビリティアプリケーションは第１の及び
〈企業モビリティ管理アーキテクチャ〉
図３は、ＢＹＯＤ環境で使用するための企業モビリティ技術アーキテクチャ３００を表す。本アーキテクチャは、モバイルデバイス３０２のユーザが、企業リソースまたは個人リソースにモバイルデバイス３０２からアクセスすること、及び個人での使用のためにモバイルデバイス３０２を使用することの両方を可能にする。ユーザは、ユーザによって購入されるモバイルデバイス３０２、または企業によってユーザに提供されるモバイルデバイス３０２を使用して、かかる企業リソース３０４または企業サービス３０８にアクセスし得る。ユーザは、ビジネスでの使用のみのため、またはビジネス及び個人での使用のためにモバイルデバイス３０２を利用してもよい。モバイルデバイスは、ｉＯＳオペレーティングシステム、Ａｎｄｒｏｉｄ（登録商標）オペレーティングシステムなどにおいて実行し得る。企業は、ポリシーを実装するように選び、モバイルデバイス３０４を管理してもよい。ポリシーは、モバイルデバイスが特定され、セキュア化されるかまたはセキュリティが検証され、かつ企業リソースに選択的または完全なアクセスが提供され得るようにファイアウォールまたはゲートウェイを通して埋め込まれ得る。ポリシーは、モバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーション、及びデータ管理ポリシーの幾つかの組み合わせであり得る。モバイルデバイス管理ポリシーのアプリケーションを通して管理されるモバイルデバイス３０４は、登録されたデバイスと称され得る。
【００４９】
幾つかの実施形態において、モバイルデバイスのオペレーティングシステムは、管理される区分３１０及び管理されない区分３１２に分離され得る。管理される区分３１０は、それに適用されるポリシーを有して、管理される区分上で実行しているアプリケーション及び管理される区分に格納されたデータをセキュア化し得る。管理される区分上で実行しているアプリケーションは、セキュアなアプリケーションであり得る。他の実施形態において、すべてのアプリケーションは、アプリケーションから別々に受信され、１つ以上のセキュリティパラメータ、特性、リソース制限、及び／またはアプリケーションがデバイス上で実行しているときにモバイルデバイス管理システムによって実施される他のアクセス制御を定義する１つ以上のポリシーファイルのセットに従って実行し得る。それぞれのポリシーファイルに従って動作することによって、各アプリケーションは、１つ以上の他のアプリケーション及び／もしくはリソースとの通信が許容または制限され、それによって仮想区分を作成し得る。したがって、本明細書で使用されるとき、区分は、メモリの物理的に区分された部分（物理区分）、メモリの論理的に区分された部分（論理区分）、ならびに／または本明細書に記載の複数のアプリケーション上の１つ以上のポリシー及び／もしくはポリシーファイルの実施結果として作成された仮想区分（仮想区分）を意味し得る。言い換えると、管理されているアプリケーション上でポリシーを実施することによって、それらのアプリケーションは、他の管理されているアプリケーション及び信頼された企業リソースと通信することのみができるように制限され、それによって管理されないアプリケーション及びデバイスによって入り込めない仮想区分を作成し得る。
【００５０】
セキュアなアプリケーションは、電子メールアプリケーション、ウェブブラウザアプリケーション、サービスとしてのソフトウェア（ＳａａＳ）アクセスアプリケーション、Ｗｉｎｄｏｗｓ（登録商標）  Ａｐｐｌｉｃａｔｉｏｎアクセスアプリケーションなどであり得る。セキュアなアプリケーションは、セキュアなネイティブアプリケーション３１４、セキュアなアプリケーションランチャー３１８によって実行されるセキュアな遠隔アプリケーション３２２、セキュアなアプリケーションランチャー３１８によって実行される仮想化アプリケーション３２６などであり得る。セキュアなネイティブアプリケーション３１４は、セキュアなアプリケーションラッパ３２０によってラッピングされ得る。セキュアなアプリケーションラッパ３２０は、セキュアなネイティブアプリケーションがデバイス上で実行されるとき、モバイルデバイス３０２上で実行される組み込まれたポリシーを含み得る。セキュアなアプリケーションラッパ３２０は、モバイルデバイス３０２上で実行しているセキュアなネイティブアプリケーション３１４を、セキュアなネイティブアプリケーション３１４がセキュアなネイティブアプリケーション３１４の実行の際に要求されたタスクを完了することを要求し得る、企業においてホスティングされたリソースに向けるメタデータを含み得る。セキュアなアプリケーションランチャー３１８によって実行されるセキュアな遠隔アプリケーション３２２は、セキュアなアプリケーションランチャーアプリケーション３１８内で実行され得る。セキュアなアプリケーションランチャー３１８によって実行される仮想化アプリケーション３２６は、企業リソース３０４などにおいて、モバイルデバイス３０２上のリソースを利用し得る。セキュアなアプリケーションランチャー３１８によって実行される仮想化アプリケーション３２６によってモバイルデバイス３０２上で使用されるリソースは、ユーザインタラクションリソース、処理リソースなどを含み得る。ユーザインタラクションリソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、視覚入力、ジェスチャ入力などを収集し、送信するように使用さ得る。処理リソースは、ユーザインターフェース、企業リソース３０４から受信した処理データなどを提示するように使用され得る。セキュアなアプリケーションランチャー３１８によって実行される仮想化アプリケーション３２６によって企業リソース３０４において使用されるリソースは、ユーザインターフェース生成リソース、処理リソースなどを含み得る。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブリングする、ユーザインターフェースを修正する、ユーザインターフェースを最新にするなどのように使用され得る。処理リソースは、情報を作成する、情報を読み取る、情報を更新する、情報を消去するなどのように使用され得る。例えば、仮想化アプリケーションは、グラフィカルユーザインターフェース（ＧＵＩ）に関連するユーザインタラクションを記録し、それらをサーバープリケーションに通信し得、サーバープリケーションは、ユーザインタラクションデータを、サーバー上で動作するアプリケーションへの入力として使���する。この配置では、企業は、サーバー側のアプリケーションならびにアプリケーションに関連するデータ、ファイルなどを維持するように選出し得る。企業は、モバイルデバイス上での展開のためにアプリケーションをセキュア化することによって、本明細書の原則に従って、幾つかのアプリケーションを「可動化」するように選出し得るが、本配置はまた、ある特定のアプリケーションのために選出され得る。例えば、幾つかのアプリケーションは、モバイルデバイス上での使用のためにセキュア化されてもよいが、他のアプリケーションは、モバイルデバイス上での展開のために用意されていないか、または適切でない場合があるため、企業は、モバイルユーザアクセスを、仮想化技術によって用意されていないアプリケーションに提供することを選出し得る。別の例として、企業は、大容量で複雑なデータセット（例えば、マテリアルリソースプランニングアプリケーション）を含む大容量で複雑なアプリケーションを有し得、その場合、モバイルデバイスのためのアプリケーションをカスタマイズすることは非常に困難であるか、またはそうでなければ望ましくないため、企業は、アプリケーションへのアクセスを仮想化技術によって提供することを選出し得る。また別の例として、企業は、企業によって、セキュア化されているモバイル環境に対してもあまりに機密性が高いとみなされ得る高度にセキュア化されているデータ（例えば、人材データ、顧客データ、工学データ）を維持するアプリケーションを有し得るため、企業は、仮想化技術を使用することを選出して、かかるアプリケーション及びデータへのモバイルアクセスを許可し得る。企業は、モバイルデバイス上の完全にセキュア化されているアプリケーション及び完全に機能的なアプリケーションの両方、ならびに仮想化アプリケーションを提供して、サーバー側でより適切に動作されるとみなされるアプリケーションへのアクセスを可能にすることを選出し得る。一実施形態において、仮想化アプリケーションは、セキュアなストレージ位置のうちの１つにおける携帯電話の幾つかのデータ、ファイルなどを格納し得る。例えば、企業は、ある特定の情報が電話に格納されることを可能にする一方で、他の情報を許可しないことを選出し得る。
【００５１】
仮想化アプリケーションに関連して、本明細書に記載の通り、モバイルデバイスは、ＧＵＩを提示し、次いでＧＵＩとのユーザインタラクションを記録するように設計されている仮想化アプリケーションを有し得る。アプリケーションは、ユーザインタラクションを、アプリケーションとのユーザインタラクションとしてサーバー側のアプリケーションによって使用されるようにサーバー側に通信し得る。応答して、サーバー側のアプリケーションは、モバイルデバイスに新しいＧＵＩを返送し得る。例えば、新しいＧＵＩは、静的ページ、動的ページ、アニメーションなどであり、それによって遠隔に位置するリソースへのアクセスを提供し得る。
【００５２】
セキュアなアプリケーションは、モバイルデバイスの管理される区分３１０におけるセキュアなデータコンテナ３２８に格納されたデータにアクセスし得る。セキュアなデータコンテナ内でセキュア化されているデータは、セキュアなラッピングされたアプリケーション３１４、セキュアなアプリケーションランチャー３２２によって実行されるアプリケーション、セキュアなアプリケーションランチャー３２２によって実行される仮想化アプリケーション３２６などによってアクセスされ得る。セキュアなデータコンテナ３２８内に格納されるデータとしては、ファイル、データベースなどが挙げられ得る。セキュアなデータコンテナ３２８内に格納されるデータは、特定のセキュアなアプリケーション３３０、共有されたセキュアなアプリケーション３３２などに制限されるデータを含み得る。セキュアなアプリケーションに制限されたデータは、セキュアな一般データ３３４及び非常にセキュアなデータ３３８を含み得る。セキュアな一般データは、高度暗号化標準（ＡＥＳ）１２８ビット暗号化などの強い形式の暗号化を使用し得るが、非常にセキュアなデータ３３８は、ＡＥＳ２５６ビット暗号化などの非常に強い形式の暗号化を使用し得る。セキュアなデータコンテナ３２８内に格納されたデータは、デバイスマネージャ３２４からのコマンド受信時にデバイスから消去さ得る。セキュアなアプリケーションは、デュアルモードオプション３４０を有し得る。デュアルモードオプション３４０は、ユーザに、セキュア化されているアプリケーションを、セキュア化されていないモードまたは管理されないモードで動作するためのオプションを提示し得る。セキュア化されていないモードまたは管理されないモードでは、セキュアなアプリケーションは、モバイルデバイス３０２の管理されない区分３１２上のセキュア化されていないデータコンテナ３４２内に格納されるデータにアクセスし得る。セキュア化されていないデータコンテナ内に格納されるデータは、パーソナルデータ３４４であり得る。セキュア化されていないデータコンテナ３４２内に格納されるデータはまた、モバイルデバイス３０２の管理されない区分３１２上で実行しているセキュア化されていないアプリケーション３４８によってアクセスもされ得る。セキュア化されていないデータコンテナ３４２内に格納されたデータは、セキュアなデータコンテナ３２８内に格納されたデータがモバイルデバイス３０２から消去された場合にモバイルデバイス３０２上に残存し得る。企業は、モバイルデバイスから、企業によって所有、ライセンス取得、または制御されている選択のもしくはすべてのデータ、ファイル、及び／またはアプリケーション（企業データ）を消去することを望む一方で、ユーザによって所有、ライセンス取得、または制御さているパーソナルデータ、ファイル、及び／またはアプリケーション（パーソナルデータ）をそのままにするか、または別様に保存することを望み得る。この動作は、選択的ワイプと称され得る。本明細書に記載の態様に従って配置された企業データ及びパーソナルデータで、企業は選択的ワイプを実行し得る。
【００５３】
モバイルデバイスは、企業において、企業リソース３０４及び企業サービス３０８をパブリックインターネット３４８などに接続し得る。モバイルデバイスは、仮想私設網接続を経由して企業リソース３０４及び企業サービス３０８に接続し得る。マイクロＶＰＮまたはアプリケーション特定ＶＰＮとも称される仮想私設網接続は、特定のアプリケーション３５０、特定のデバイス、モバイルデバイスの特定のセキュア化されている領域、及び同種のもの３５２に特定され得る。例えば、電話のセキュア化されている領域におけるラッピングされたアプリケーションの各々は、おそらくユーザまたはデバイスの属性情報に関連して、ＶＰＮへのアクセスがアプリケーションに関連した属性に基づいて容認されるように、アプリケーション特定ＶＰＮを経由して企業リソースにアクセスし得る。仮想私設網接続は、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅトラフィック、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙトラフィック、ハイパーテキスト転送プロトコル  （ＨＴＴＰ）トラフィック、ハイパーテキスト転送プロトコルセキュア（ＨＴＴＰＳ）トラフィック、アプリケーション管理トラフィックなどを実行し得る。仮想私設網接続は、シングルサインオン認証プロセス３５４をサポートし、可能にし得る。シングルサインオンプロセスは、ユーザが認証資格情報の単一のセットを提供することを可能にし得、次いで、資格情報が認証サービス３５８によって検証される。次いで、認証サービス３５８は、ユーザに認証資格情報を各個人の企業リソース３０４に提供することを要求していることなく、複数の企業リソース３０４へのユーザアクセスを容認し得る。
【００５４】
仮想私設網接続は、アクセスゲートウェイ３６０によって確立及び管理され得る。アクセスゲートウェイ３６０は、企業リソース３０４のモバイルデバイス３０２への配信を管理し、加速し、かつ向上させる性能向上特性を含み得る。アクセスゲートウェイは、モバイルデバイス３０２からパブリックインターネット３４８までのトラフィックを再ルーティングし、モバイルデバイス３０２が、パブリックインターネット３４８上で動作する公衆利用可能でセキュア化されないアプリケーションにアクセスすることを可能にし得る。モバイルデバイスは、転送ネットワーク３６２を介してアクセスゲートウェイに接続し得る。転送ネットワーク３６２は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、私設網などであり得る。
【００５５】
企業リソース３０４は、電子メールサーバー、ファイル共有サーバー、ＳａａＳアプリケーション、ウェブアプリケーションサーバー、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバーなどを含み得る。電子メールサーバーは、Ｅｘｃｈａｎｇｅサーバー、Ｌｏｔｕｓ  Ｎｏｔｅｓサーバーなどを含み得る。ファイル共有サーバーは、ＳｈａｒｅＦｉｌｅサーバーなどを含み得る。ＳａａＳアプリケーションは、Ｓａｌｅｓｆｏｒｃｅなどを含み得る。Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバーは、ローカルのＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムなどで動作するように意図されているアプリケーションを提供するように構築されている任意のアプリケーションサーバーを含み得る。企業リソース３０４は、プレミスベースのリソース、クラウドベースのリソースなどであり得る。企業リソース３０４は、直接またはアクセスゲートウェイ３６０を経由して、モバイルデバイス３０２によってアクセスされ得る。企業リソース３０４は、転送ネットワーク３６２を介してモバイルデバイス３０２によってアクセスされ得る。転送ネットワーク３６２は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、私設網などであり得る。
【００５６】
企業サービス３０８は、認証サービス３５８、脅威検出サービス３６４、デバイスマネージャサービス３２４、ファイル共有サービス３６８、ポリシーマネージャサービス３７０、ソーシャルインテグレーションサービス３７２、アプリケーションコントローラサービス３７４などを含み得る。認証サービス３５８は、ユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービスなどを含み得る。認証サービス３５８は、証明書を使用し得る。証明書は、企業リソース３０４などによってモバイルデバイス３０２上に格納され得る。モバイルデバイス３０２上に格納される証明書は、モバイルデバイス上の暗号化された位置に格納され得、証明書は、認証時などにおける使用のためにモバイルデバイス３０２上に一時的に格納され得る。脅威検出サービス３６４には、侵入検出サービス、認証されていないアクセス試行検出サービスなどが含まれ得る。認証されていないアクセス試行検出サービスには、デバイス、アプリケーション、データなどにアクセスする認証されていない試行が含まれ得る。デバイス管理サービス３２４には、構成、プロビジョニング、セキュリティ、サポート、監視、報告、及びデコミッショニングサービスが含まれ得る。ファイル共有サービス３６８には、ファイル管理サービス、ファイルストレージサービス、ファイル協働サービスなどが含まれ得る。ポリシーマネージャサービス３７０には、デバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービスなどが含まれ得る。ソーシャルインテグレーションサービス３７２には、連絡先組み込みサービス、協働サービス、ならびにＦａｃｅｂｏｏｋ、Ｔｗｉｔｔｅｒ、及びＬｉｎｋｅｄＩｎなどのソーシャルネットワークの組み込みなどが含まれ得る。アプリケーションコントローラサービス３７４には、管理サービス、プロビジョニングサービス、展開サービス、割り当てサービス、取り消しサービス、ラッピングサービスなどが含まれ得る。
【００５７】
企業モビリティの技術アーキテクチャ３００は、アプリケーションストア３７８を含み得る。アプリケーションストア３７８は、ラッピングされていないアプリケーション３８０、事前にラッピングされたアプリケーション３８２などを含み得る。アプリケーションは、アプリケーションコントローラ３７４からアプリケーションストア３７８内に置かれ得る。アプリケーションストア３７８は、パブリックインターネット３４８などを経由して、アクセスゲートウェイ３６０を経由してモバイルデバイス３０２によってアクセスされ得る。アプリケーションストアには、直感的で、かつ使いやすいユーザインターフェースが提供され得る。
【００５８】
ソフトウェア開発キット３８４は、本説明において前述されたようなアプリケーションをラッピングすることによって、ユーザによって選択されたアプリケーションをセキュア化する能力をユーザに提供し得る。次いで、ソフトウェア開発キット３８４を使用してラッピングされたアプリケーションが、アプリケーションコントローラ３７４を使用してアプリケーションストア３７８内に置かれることによってモバイルデバイス３０２に対して利用可能になり得る。
【００５９】
企業モビリティのテクニカルアーキテクチャ３００は、管理及び分析能力５８８を含み得る。管理及び分析能力５８８は、どのようにリソースが使用されるか、どれほどの頻度でリソースが使用されるかなどに関する情報を提供し得る。リソースには、デバイス、アプリケーション、データなどが含まれ得る。どのようにリソースが使用されるかには、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするかなどが含まれ得る。どれほどの頻度でリソースが使用されるかには、どれほどの頻度でアプリケーションがダウンロードされたか、アプリケーションによってデータの特定のセットが何回アクセスされたかなどが含まれ得る。
【００６０】
図４は、別の例示的な企業モビリティ管理システム４００である。図３に関して上に記載のモビリティ管理システム３００のコンポーネントのうちの幾つかは、簡潔性のために省略されている。図４に示されるシステム４００のアーキテクチャは、図３に関して上に記載のシステム３００のアーキテクチャに関する多くの点で同様であり、上で述べられていない追加の特性を含み得る。
【００６１】
この場合、左手側は、ゲートウェイサーバー４０６（アクセスゲートウェイ及びアプリケーションコントローラ機能を含む）と相互作用して、種々の企業リソース４０８、及び右手側上方に示されるような、Ｅｘｃｈａｎｇｅ、Ｓｈａｒｅｐｏｉｎｔ、公開鍵基盤（ＰＫＩ）リソース、Ｋｅｒｂｅｒｏｓリソース、証明書発行サービスなどのサービス４０９にアクセスする、クライアントエージェント４０４を備えた、登録されたモバイルデバイス４０２を表す。詳細に示されないが、モバイルデバイス４０２はまた、アプリケーションの選択及びダウンロード用に企業アプリケーションストア（ＳｔｏｒｅＦｒｏｎｔ）と相互作用もし得る。
【００６２】
クライアントエージェント４０４は、Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｕｓｅｒ  Ｅｘｐｅｒｉｅｎｃｅ（ＨＤＸ）／ＩＣＡ表示リモーティングプロトコルを使用してアクセスされる企業データセンタにおいてホスティングされる、Ｗｉｎｄｏｗｓ（登録商標）アプリケーション／デスクトップ用のＵＩ（ユーザインターフェース）仲介として作用する。クライアントエージェント４０４はまた、ネイティブｉＯＳまたはＡｎｄｒｏｉｄ（登録商標）アプリケーションなどの、モバイルデバイス４０２上でのネイティブアプリケーションのインストール及び管理もサポートする。例えば、上の図で示される管理されているアプリケーション４１０（メール、ブラウザ、ラッピングされたアプリケーション）は、デバイス上においてローカルで実行しているすべてネイティブアプリケーションである。クライアントエージェント４０４及びこのアーキテクチャのアプリケーション管理フレームワークは、企業リソース／サービス４０８への接続性及びＳＳＯ（シングルサインオン）など、ポリシー駆動型管理の能力及び特性を提供するように作用する。クライアントエージェント４０４は、他のゲートウェイサーバーコンポーネントへのＳＳＯを含む通常アクセスゲートウェイ（ＡＧ）へ、企業への一次ユーザ認証を扱う。クライアントエージェント４０４は、ゲートウェイサーバー４０６からポリシーを取得して、モバイルデバイス４０２上での管理されているアプリケーション４１０の行動を制御する。
【００６３】
ネイティブアプリケーション４１０とクライアントエージェント４０４との間のセキュアなプロセス間通信（ＩＰＣ）リンク４１２は、クライアントエージェントが、各アプリケーションを「ラッピング」するアプリケーション管理フレームワーク４１４によって実施されるポリシーを提供することを可能にする管理チャネルを表す。ＩＰＣチャネル４１２はまた、クライアントエージェント４０４が、企業リソース４０８への接続性及びＳＳＯを可能にする資格情報及び認証情報を提供することも可能にする。最後に、ＩＰＣチャネル４１２は、アプリケーション管理フレームワーク４１４が、オンライン及びオフライン認証など、クライアントエージェント４０４によって実装されるユーザインターフェース機能を呼び出すことを可能にする。
【００６４】
クライアントエージェント４０４とゲートウェイサーバー４０６との間の通信は、本質的に、ネイティブの管理されているアプリケーション４１０の各々をラッピングするアプリケーション管理フレームワーク４１４の管理チャネルの延長である。アプリケーション管理フレームワーク４１４は、クライアントエージェント４０４にポリシー情報を要求し、次にゲートウェイサーバー４０６にポリシー情報を要求している。アプリケーション管理フレームワーク４１４は、認証を要求し、クライアントエージェント４０４は、ゲートウェイサーバー４０６（ＮｅｔＳｃａｌｅｒ  Ａｃｃｅｓｓ  Ｇａｔｅｗａｙとしても知られる）のゲートウェイサービス部分にログインする。クライアントエージェント４０４はまた、ゲートウェイサーバー４０６上のサポートサービスを呼び出し、サポートサービスは、入力素材を生成してローカルデータボルト４１６用の暗号化鍵を導出し得るか、または下記でより完全に説明されるように、ＰＫＩ保護リソースへの直接認証を有効にし得るクライアント証明書を提供し得る。
【００６５】
より詳細には、アプリケーション管理フレームワーク４１４は、管理されているアプリケーション４１０の各々を「ラッピング」する。これは、明確な構築ステップを介して、または構築後処理ステップを介して組み込まれ得る。アプリケーション管理フレームワーク４１４は、アプリケーション４１０の最初の起動においてクライアントエージェント４０４と「対」になって、セキュアなＩＰＣチャネルを開始し、そのアプリケーション用のポリシーを取得し得る。アプリケーション管理フレームワーク４１４は、クライアントエージェントのログイン依存性など、ローカルに適用するポリシーの関連する部分、及びローカルＯＳサービスがどのように使用され得るか、またはローカルＯＳサービスがアプリケーション４１０とどのように相互作用し得るかを制限する格納ポリシーの幾つかを実施し得る。
【００６６】
アプリケーション管理フレームワーク４１４は、セキュアなＩＰＣチャネル４１２上でクライアントエージェント４０４によって提供されるサービスを使用して、認証及び内部ネットワークアクセスを容易にし得る。プライベート及び共有データボルト４１６（コンテナ）のための鍵管理はまた、管理されているアプリケーション４１０とクライアントエージェント４０４との間の適切なインタラクションによって管理され得る。ボルト４１６は、オンライン認証後のみに利用可能であり得るか、またはポリシーによって許容される場合、オフライン認証後に利用可能にされ得る。ボルト４１６の最初の使用は、オンライン認証を要求し得、オフラインアクセスは、オンライン認証が再度要求される前に、最大でもポリシー最新化期間に限定され得る。
【００６７】
内部リソースへのネットワークアクセスは、個々の管理されているアプリケーション４１０からアクセスゲートウェイ４０６を通じて直接生じ得る。アプリケーション管理フレームワーク４１４は、各アプリケーション４１０の代わりに、ネットワークアクセスを組織化することを担う。クライアントエージェント４０４は、オンライン認証に続いて取得される好適な時間が限定された二次資格情報を提供することによってこれらのネットワーク接続を容易にし得る。リバースウェブプロキシ接続、及びエンドツーエンドＶＰＮ様式トンネル４１８などネットワーク接続の複数のモードが使用され得る。
【００６８】
メール及びブラウザの管理されているアプリケーション４１０は、特別な状態を有し、任意のラッピングされたアプリケーションに対して一般的に利用可能でない場合がある設備を利用し得る。例えば、メールアプリケーションは、完全なＡＧログオンを要求せずに、延長された期間にわたってＥｘｃｈａｎｇｅにアクセスすることを許容する特別なバックグラウンドネットワークアクセス機構を使用し得る。ブラウザアプリケーションは、複数のプライベートデータボルトを使用して異なる種類のデータを分離し得る。
【００６９】
このアーキテクチャは、種々の他のセキュリティ特性の組み込みをサポートする。例えば、ゲートウェイサーバー４０６（ゲートウェイサーバー４０６のゲートウェイサービスも含む）は、場合によって、アクティブディレクトリ（ＡＤ）パスワードを妥当性確認する必要がない。ＡＤパスワードがある状況下において一部のユーザのための認証要因として使用されるか否かは、企業の裁量に委ねられることができる。ユーザがオンラインまたはオフラインである（すなわち、ネットワークに接続されているか、または接続されていない）場合、異なる認証方法が使用され得る。
【００７０】
ステップアップ認証は、強い認証を要求している高度に分類されたデータへのアクセスを有することを許容された、管理されているネイティブアプリケーション４１０をゲートウェイサーバー４０６が特定し、以前のさらに弱いレベルのログインの後、これが、再認証がユーザによって要求されることを意味する場合でも、これらのアプリケーションへのアクセスが適切な認証を実行した後のみに許可されることを確実にし得る、特性である。
【００７１】
この解決方法の別のセキュリティ特性は、モバイルデバイス４０２上でのデータボルト４１６（コンテナ）の暗号化である。ボルト４１６は、ファイル、データベース、及び構成を含むデバイス上のすべてのデータが保護されるように暗号化され得る。オンラインボルトについて、鍵はサーバー（ゲートウェイサーバー４０６）上に格納され得、オフラインボルトについて、鍵のローカルコピーは、ユーザパスワードまたは生体妥当性確認によって保護され得る。データがセキュアなコンテナ４１６内のデバイス４０２上にローカルに格納される場合、ＡＥＳ２５６暗号化アルゴリズムの最小限が利用されることが好ましい。
【００７２】
他のセキュアなコンテナ特性も実装され得る。例えば、アプリケーション４１０内で起こるすべてのセキュリティ事象がログされ、バックエンドに報告される、ロギング特性が含まれ得る。アプリケーション４１０がタンパリングを検出した場合、関連付けられた暗号化鍵がランダムデータで上書きされ、ユーザデータが破壊されたファイルシステム上にヒントを残さなくてもよいなどのデータ消去がサポートされ得る。スクリーンショット保護は別の特性であり、アプリケーションが、任意のデータがスクリーンショットに格納されることを防止し得る。例えば、鍵ウィンドウの隠された特徴が、はい、に設定され得る。これにより、画面上に現在表示されているすべてのコンテンツが隠され、その結果、任意のコンテンツが通常は存在するはずである空白のスクリーンショットがもたらされ得る。
【００７３】
例えば、データをコピーするか、または外部アプリケーションへ送信することによって、任意のデータがアプリケーションコンテナの外部にローカルに転送されることを防止することによって、ローカルなデータ転送を防止し得る。キーボードキャッシュ特性は、センシティブなテキストフィールドのためのオートコレクト機能を無効にするように動作し得る。ＳＳＬ証明書の妥当性確認が動作可能であり得るため、アプリケーションは、サーバーＳＳＬ証明書を、キーチェーンに格納する代わりに、特別に妥当性確認する。デバイス上でデータを暗号化するために使用される鍵が、ユーザによって提供されるパスフレーズまたは生体データを使用して生成される（オフラインアクセスが要求される場合）ように、暗号化鍵生成特性が使用され得る。オフラインアクセスが要求されない場合、ランダムに生成され、サーバー側に格納された別の鍵で排他的論理和がとられてもよい。ユーザパスワードから生成された鍵が、その暗号学的ハッシュを作成するのではなく、ＫＤＦ（鍵導出機能、とりわけパスワードベースの鍵導出機能２（ＰＢＫＤＦ２））を使用するように、鍵導出機能が動作し得る。後者は鍵を総当たり攻撃または辞書攻撃に対して脆弱にする。
【００７４】
さらに、１つ以上の初期化ベクトルが暗号化方法において使用され得る。初期化ベクトルは、同じ暗号化データの複数のコピーに異なる暗号文出力を生成させ、反射攻撃及び暗号解読攻撃の両方を防ぐ。これはまた、データを暗号化するために使用される特定の初期化ベクトルが知られていない場合、攻撃者が、盗まれた暗号化鍵ででも、任意のデータを解読することを防止する。さらに、ユーザがアプリケーション内で認証した後のみアプリケーションデータが解読される、認証後の解読が使用され得る。別の特性は、必要とされる場合のみにメモリ内に（及びディスク内ではなく）保持され得る、メモリ内のセンシティブなデータに関し得る。例えば、ログイン資格情報は、ログイン後にメモリから消去され得、暗号化鍵及びＯｂｊｅｃｔｉｖｅ−Ｃ事象変数の中の他のデータは、容易に参照され得るため、格納されない。その代わりに、メモリがこれらのために手動で割り当てられ得る。
【００７５】
非アクティビティのポリシーが定義された期間の後、ユーザセッションが終了される、非アクティブタイムアウトが実装され得る。
【００７６】
アプリケーション管理フレームワーク４１４からのデータ漏洩は、他の方法で防止され得る。例えば、アプリケーション４１０がバックグラウンドに置かれる場合、メモリは所定の（構成可能な）期間の後に削除され得る。バックグラウンド化される場合、アプリケーションの最後に表示された画面のスナップショットが撮られて、フォアグラウンドプロセスを固定し得る。スクリーンショットは、機密データを含み得るゆえに削除されるべきである。
【００７７】
別のセキュリティ特性は、１つ以上のアプリケーションにアクセスするためのＡＤ（アクティブディレクトリ）４２２パスワードの使用を伴わないＯＴＰ（ワンタイムパスワード）４２０の使用に関する。場合によって、一部のユーザは自分のＡＤパスワードを知らない（または知ることが許可されていない）ので、これらのユーザは、ＳｅｃｕｒＩＤのようなハードウェアＯＴＰシステム（ＯＴＰは、ＥｎｔｒｕｓｔまたはＧｅｍａｌｔｏなどの異なる販売者によって提供され得る）を使用することによってなど、ＯＴＰ４２０を使用して認証し得る。場合によっては、ユーザがユーザＩＤで認証した後、テキストがＯＴＰ４２０を有するユーザに送信される。場合によっては、これは、単一のフィールドであるプロンプトで、オンライン使用のためだけに実装され得る。
【００７８】
オフライン使用が企業ポリシーを介して許可される、それらのアプリケーション４１０に対するオフライン認証のためのオフラインパスワードが実装され得る。例えば、企業は、ＳｔｏｒｅＦｒｏｎｔがこの方式でアクセスされることを望み得る。この場合、クライアントエージェント４０４は、ユーザがカスタムオフラインパスワードを設定することを要求し得、ＡＤパスワードは使用されない。ゲートウェイサーバー４０６は、ポリシーを提供して、標準Ｗｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒの複雑性要件は修正されてもよいが、これらの要件に説明されるような最小限の長さ、文字クラスの構成、ならびにパスワードの経過年に関するパスワード標準を制御及び実施し得る。
【００７９】
別の特性は、（アプリケーション管理フレームワークマイクロＶＰＮ特性を介してＰＫＩ保護ウェブリソースにアクセスする目的のための）二次資格情報としてのある特定のアプリケーション４１０のためのクライアント側の証明書の有効化に関するに。例えば、アプリケーションは、かかる証明書を利用してもよい。この場合、クライアントエージェント４０４からの証明書がゲートウェイサーバー４０６によって回収され、キーチェーンにおいて使用され得る、ＡｃｔｉｖｅＳｙｎｃプロトコルを使用する証明書ベースの認証がサポートされ得る。管理されているアプリケーションの各々は、ゲートウェイサーバー４０６において定義されているラベルによって特定される、１つの関連付けられたクライアント証明書を有し得る。
【００８０】
ゲートウェイサーバー４０６は、企業の特定用途ウェブサービスと相互作用し、クライアント証明書の発行をサポートして、関連する管理されているアプリケーションが内部ＰＫＩ保護リソースを認証することを許容し得る。
【００８１】
クライアントエージェント４０４及びアプリケーション管理フレームワーク４１４は、内部ＰＫＩ保護ネットワークリソースに対する認証のためのクライアント証明書を取得及び使用することをサポートするように強化され得る。種々の度合いのセキュリティ及び／または分離要件に合致するように、１つ以上の証明書がサポートされ得る。証明書は、メール及びブラウザの管理されているアプリケーションによって、及び最終的に任意のラッピングされたアプリケーション（もし、それらのアプリケーションが、アプリケーション管理フレームワークがｈｔｔｐｓ要求を仲介することが合理的である、ウェブサービススタイル通信パターンを使用するのであれば）によって使用され得る。
【００８２】
ｉＯＳ上でのアプリケーション管理クライアント証明書サポートは、公開鍵暗号化標準（ＰＫＣＳ）１２ＢＬＯＢ（バイナリラージオブジェクト）を、管理されているアプリケーションの各々のｉＯＳキーチェーンの中に、使用期間ごとに、インポートすることに依存し得る。プリケーション管理フレームワークのクライアント証明書サポートは、プライベートメモリ内の鍵ストレージでのＨＴＴＰＳ実装を使用し得る。クライアント証明書は、ｉＯＳキーチェーン内には決して存在することはなく、潜在的に、強力に保護されている「オンラインのみ」のデータ値以外、持続されない。
【００８３】
また相互ＳＳＬが実装され、モバイルデバイス４０２が企業に対して及びその逆に対して認証されることを要求していることによって追加のセキュリティを提供し得る。またゲートウェイサーバー４０６に対する認証のための仮想スマートカードが実装され得る。
【００８４】
Ｋｅｒｂｅｒｏｓの限定されたサポート及び完全なサポートの両方が追加の特性であってもよい。完全なサポート特性は、ＡＤパスワードまたは信頼されたクライアント証明書を使用する、アクティブディレクトリ（ＡＤ）４２２への完全なＫｅｒｂｅｒｏｓログインを行い、かつＫｅｒｂｅｒｏｓサービスチケットを取得してＨＴＴＰ交渉認証チャレンジに応答するための能力に関する。限定されたサポート特性は、ＨＴＴＰ交渉認証チャレンジに応答して、（制約付き委任の対象である）Ｋｅｒｂｅｒｏｓサービスチケットを取得及び使用できるようにＡＧＥＥがＫｅｒｂｅｒｏｓプロトコルの移行を呼び出すことをサポートするＣｉｔｒｉｘ  Ａｃｃｅｓｓ  Ｇａｔｅｗａｙ  Ｅｎｔｅｒｐｒｉｓｅ  Ｅｄｉｔｉｏｎ（ＡＧＥＥ）における制約付き委任に関する。この機構は、リバースウェブプロキシ（別名、コーポレート仮想私設網（ＣＶＰＮ））モードで、ｈｔｔｐ（ｈｔｔｐｓではない）接続がＶＰＮ及びＭｉｃｒｏＶＰＮモードでプロキシされるときに、作動する。
【００８５】
別の特性は、脱獄またはルーティングの検出の際に自動的に生じ、管理コンソールからのプッシュされたコマンドとして生じ得、かつアプリケーション４１０が実行していないときでも遠隔消去機能を含み得る、アプリケーションコンテナのロッキング及び消去に関する。
【００８６】
エンタープライズアプリケーションストア及びアプリケーションコントローラのマルチサイトアーキテクチャまたは構成がサポートされ得、これにより、故障の場合、ユーザが幾つかの異なる位置のうちの１つからサービスを受けることを許容する。
【００８７】
場合によっては、管理されているアプリケーション４１０は、ＡＰＩ（例はＯｐｅｎＳＳＬ）を介して証明書及びプライベート鍵にアクセスすることが許容され得る。企業の信頼されている管理されているアプリケーション４１０は、アプリケーションのクライアント証明書及びプライベート鍵によって特定の公開鍵動作を実行しているように許容され得る。アプリケーションがブラウザのように挙動し、証明書アクセスが要求されない場合、アプリケーションが「私は誰」に対する証明書を読み取る場合、アプリケーションが証明書を使用してセキュアなセッショントークンを構築する場合、及びアプリケーションが重要なデータ（例えば、取引ログ）のデジタル署名のために、または一時的なデータ暗号化のためにプライベート鍵を使用する場合など、種々の使用の状況が特定され、適切に処理され得る。
【００８８】
本開示の種々の態様を提供及び／または実施する際に使用され得る、コンピューティングアーキテクチャ及び企業モビリティ管理アーキテクチャの幾つかの実施例を論じたが、多くの実施形態をここでより詳細に説明する。特に、上で紹介したように、本開示の幾つかの態様は、一般に、アプリケーション固有のＶＰＮサーバーを介して、各モバイルアプリケーションのアプリケーションネットワークトラフィックを、私設網にトンネリングすることに関する。アプリケーション固有のＶＰＮサーバーは、所与の１つのモバイルアプリケーションに対してのみ、ＶＰＮ接続を管理し、それぞれのモバイルアプリケーションによって発行されたシステムコールを傍受して、関連するすべてのネットワークトラフィックを私設網にトンネリングすることができる。
〈モバイルＶＰＮトンネリング〉
図５は、ＴＣＰトンネリングプロトコルを使用するモバイルＶＰＮ接続を管理する例示的なモバイルＶＰＮシステム５００を示す。図５に示す実施形態によると、ＭＤＭシステムによって管理されているエンタープライズモバイルアプリケーションは、私設網へのセキュアなＶＰＮ接続を介して、企業リソースにアクセスすることができる。例えば、管理されているアプリケーション５０２は、例えばマイクロＶＰＮを使用して、公衆回線を介してアクセスゲートウェイ５１６に接続し、図４の企業モビリティ管理システム４００のようなＭＤＭシステムによって管理されていないモバイルアプリケーションのような、セキュリティ対策が施されていないモバイルアプリケーション及び／または管理されていないモバイルアプリケーションによってアクセスできないアクセスゲートウェイ５１６を介して、セキュアなポータルにアクセスすることができる。
【００８９】
幾つかの実施形態では、モバイルＶＰＮシステム５００は、インバウンドトラフィック及びアウトバウンドトラフィックを、管理されているアプリケーション５０２から管理することができる。管理されているアプリケーション５０２が実行しているモバイルデバイス（例えば、図４のモバイルデバイス４０２）は、管理されているアプリケーション５０２が、５２０へのアクセスを有するデバイスによってアクセスできない私設網５２０と通信することを要求しているか否かを監視することができる。例えば、私設回線５２０は、アクセスを備えた企業アプリケーションのみが仮想私設網接続を介してアクセスすることができるファイアウォールによって公衆網（例えば、インターネット）から分離されてもよい。管理されているアプリケーション５０２のモバイルデバイスは、公衆網に接続され得る。モバイルデバイス上で実行している管理されていないモバイルアプリケーションは、公衆網にアクセスすることができる管理されているアプリケーション５２０もまた、公衆網にアクセスすることができる。私設網５２０にアクセスするために、管理されているアプリケーション５２０は、公衆網を介して、私設網５２０へのＶＰＮ接続を確立する必要があり得る。例えば、管理されているアプリケーションは、管理されているアプリケーション５０２のアウトバウンドトラフィックを私設網５２０に転送することができるモバイルデバイスのポートを介して、アクセスゲートウェイ５１６にＶＰＮ接続をセットアップする要求を発行することができる。これに加えて、またはこれに代えて、アクセスゲートウェイ５１６はまた、管理されているアプリケーション５０２宛ての私設網５２０からの通信を送信し、管理されているアプリケーション５０２に返送することもできる。
【００９０】
管理されているアプリケーション５０２は、幾つかの異なる通信プロトコルを使用して私設網５２０と通信することができる。例えば、管理されているアプリケーション５０２は、異なるトンネリング及び／または通信プロトコルを使用して、私設網５２０とトンネリング接続及び／または仮想私設網接続を確立することができる。管理されているアプリケーション５０２と私設網５２０との間のＶＰＮ接続を確立するために使用されるモバイルＶＰＮシステムのシステムアーキテクチャは、管理されているアプリケーション５０２によってサポートされるトンネリング及び／または通信プロトコルのタイプに応じて変化し得る。ＶＰＮ接続によって私設網５２０と通信するための各管理されているアプリケーション５０２については、モバイルデバイスが使用するトンネリングプロトコルのタイプを決定することができる。トンネリングプロトコルを決定すると、モバイルデバイスは、ＶＰＮ接続を介してトンネリングされるアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８をどのように処理するかを適切に決定することができる。図５に示す実施形態は、ＴＣＰ私設網接続及びＴＣＰトンネリングプロトコルと同様のネットワークアーキテクチャに依存する他の私設網接続を容易にするために使用されるモバイルＶＰＮシステム５００を示す。図６は、ＵＤＰ私設網接続及びＵＤＰトンネリングプロトコルと同様のネットワークアーキテクチャに依存する他の私設網接続を容易にするために使用されるモバイルＶＰＮシステム６００を示す。図７は、ＤＮＳ私設網接続及びＤＮＳトンネリングプロトコルと同様のネットワークアーキテクチャに依存する他の私設網接続を容易にするために使用されるモバイルＶＰＮシステム６００を示す。ＵＤＰ私設網接続及びＤＮＳ私設網接続については、それぞれ以下の図６及び７でより詳しく説明する。
【００９１】
幾つかの実施形態では、モバイルデバイス及び／または管理されているアプリケーション５０２は、管理されているアプリケーション５０２及び管理されているアプリケーション５０２が通信する任意の関連する動的ライブラリ５０４によって行われるすべてのシステムコールを傍受する。管理されているアプリケーション５０２によって呼び出される動的ライブラリ５０４が生成するすべてのアプリケーションネットワークトラフィック５０６及びライブラリネットワークトラフィック５０８を傍受するために、管理されているアプリケーション５０２及び関連する動的ライブラリ５０４によって行われるすべてのシステムコールが傍受され得る。従来のシステムとは異なり高レベルのアプリケーショントラフィックを傍受する代わりに、モバイルＶＰＮシステム５００は、アプリケーショントラフィック（例えばシステムコール）の最低レベルを傍受することができる。管理されているアプリケーション５０２及びその関連ライブラリがモバイルデバイスのオペレーティングシステムに行うすべてのシステムコールを傍受することによって、モバイルデバイスは、ローカルデバイスソケット５１８上の接続を開始するためにすべてのシステムコールを特定することができる。例えば、モバイルデバイスは、モバイルデバイスのローカルデバイスソケット５１８上の私設仮想網５２０へのトンネル及び／または仮想私設網接続を開始するために、ｃｏｎｎｅｃｔ（）及びｃｏｎｎｅｃｔｘ（）など、すべてのシステムコールを特定することができる。管理されているアプリケーション５０２及びその関連する動的ライブラリ５０４によって作られたモバイルデバイス上のソケット接続のこのようなすべてのインスタンスを特定することにより、モバイルデバイスは、管理されているアプリケーション５０２によるすべての要求及び／または試みを傍受して、私設仮想網５２０と通信する、及び／または仮想私設網接続を介して、アプリケーションネットワークトラフィック５０６及びライブラリネットワークトラフィック５０８をトンネリングすることを実現する。アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワーク５０６は、私設網５２０に伝達するトラフィックペイロードを含むメッセージと共にＶＰＮに接続するためのこのようなシステムコールを含むことができる。アプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィック５０８内に存在するＶＰＮ（例えば、この例ではｃｏｎｎｅｃｔ（）及びｃｏｎｎｅｃｔｘ（）システムコール）に接続するためのシステムコールを傍受することにより、モバイルデバイスは、管理されているアプリケーション５０２からすべてのＶＰＮトラフィックを傍受することができる。本開示では、ｃｏｎｎｅｃｔ（）及びｃｏｎｎｅｃｔｘ（）が例として使用されるが、モバイルデバイスは、様々な異なるタイプのモバイルオペレーティングシステム（例えば、ｉＯＳ、Ａｎｄｒｏｉｄ（登録商標）、Ｆｉｒｅｆｏｘ  ＯＳ、Ｗｉｎｄｏｗｓ（登録商標）  Ｐｈｏｎｅ  ＯＳ、Ｂｌａｃｋｂｅｒｒｙ  ＯＳ、Ｔｉｚｅｎ  ＯＳ、Ｕｂｕｎｔｕ  Ｔｏｕｃｈ  ＯＳなど）によって行われることが知られているすべてのシス���ムコールについて、アプリケーションネットワークトラフィック５０６及びライブラリネットワークトラフィック５０８におけるシステムコールを監視することができる。
【００９２】
幾つかの実施形態では、ＶＰＮに接続するシステムコールが傍受されると、このようなシステムを使用するアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８は、動的ポートにリダイレクトされる。モバイルデバイスは、私設網５２０への傍受されたＶＰＮシステムコールに関連するアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８をトンネリングするために、モバイルデバイスからＴＣＰ接続が確立される動的ポートを生成することができる。モバイルデバイスは、複数の異なる動的ポート５１０ａ〜ｎをローカルデバイスソケット５１８上に生成することができる。各モバイルデバイスは、私設網５２０との通信を要求している管理されているアプリケーション５０２のような複数の管理されているモバイルアプリケーションを有することができる。各管理されているアプリケーション５０２について、モバイルデバイスは、モバイルデバイス上のすべての動的ポート５１０ａ〜ｎからの１つ以上の動的ポート５１０ａ〜５１０ｃを割り振ることができる。動的ポートは、トラフィックの宛先ネットワークアドレスを決定することによって、特定のタイプのアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８にアサインすることができる。モバイルデバイスは、マッピングテーブル５２０を参照して、１つ以上のメッセージの宛先ネットワークアドレスに基づいて、１つ以上のメッセージ（例えば、アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８）をアサインする動的ポートを決定することができる。マッピングテーブル５２０は、異なる宛先ネットワークアドレス５１２ａ〜ｎを備えたモバイルデバイスのすべての動的ポート５１０ａ〜５１０ｎのマッピングを含むことができる。傍受されたシステムコールから異なる宛先ネットワークアドレスに対する新たな要求が受信されると、モバイルデバイスは、モバイルデバイスのローカルデバイスソケット５１８に新しい動的ポートを生成して、そのような宛先ネットワークアドレスにトラフィックをルーティングし、新たに生成された動的ポートと、新たに生成された動的ポートがトラフィックをトンネリングするように作成される私設網５２０内の対応する宛先ネットワークアドレスとの間の関連付けを行うためにマッピングテーブル５２０をアップデートする。
【００９３】
幾つかの実施形態では、私設網へのトラフィックを処理するために、アプリケーション固有のプロキシＴＣＰサーバー５１４が各動的ポートで生成される。各動的ポートで、ローカルデバイスソケット５１８の動的ポートからの接続が生成され、動的ポートをプロキシＴＣＰサーバー５１４に接続して、私設網５２０への各ＴＣＰ  ＶＰＮ接続のトラフィックメッセージのルーティングを処理する。プロキシサーバー５１４は、オンラインウェブサーバーを使用して、アプリケーションネットワークトラフィック５０６を管理されているモバイルアプリケーション５０２から私設網５２０にトンネリングするためのプロキシを作成することができる。プロキシサーバー５１４は、アプリケーション固有のサーバーであってもよく、それが役割を果たすように構成されているモバイルアプリケーションのアプリケーションネットワークトラフィックのみを処理してもよい。これに加えて、またはこれに代えて、モバイルデバイスの動的ポートで生成される各ＴＣＰ接続及び／またはＴＣＰトンネルは、管理されているアプリケーション５０２にのみ専用にサービスを提供することができる。したがって、ＶＰＮ接続は、管理されているモバイルアプリケーションのみに対してアプリケーションネットワークトラフィックをトンネリングするアプリケーション固有のＶＰＮである。
【００９４】
幾つかの実施形態では、モバイルＶＰＮシステム５００は、各管理されているアプリケーション５０２について１つ以上のＴＣＰトンネリング接続をセットアップ及び維持することができる。アクセスゲートウェイ５１６へのＴＣＰ接続が確立されると、すでにマッピングテーブル５２０内で行われた、及びローカルデバイスソケット５１８内ですでに生成された動的ポートに対応する、宛先ネットワークアドレスを特定するアプリケーションネットワークトラフィック及び／またはシステムコールは、マッピングテーブル５２０内で特定された関連性に従って、宛先ネットワークアドレスに対応する動的ポートにルーティングされ得る。ＴＣＰ接続が作成されると（例えば、アプリケーション固有のＴＣＰプロキシサーバー５１４へのソケット接続がローカルデバイスソケット５１８内の動的ポート５１０ｂで生成された、及びプロキシサーバー５１４がアクセスゲートウェイ５１６にソケットを開いた）、動的ポート５１０ｂからアクセスゲートウェイ５１６への（例えば、ＶＰＮトンネル）間のＴＣＰ接続は、モバイルＶＰＮシステム５００によって積極的に維持される。例えば、ＴＣＰ肯定応答メッセージ及び他のネットワーク管理メッセージは、ＴＣＰ接続の状況、帯域幅の使用量、及びセキュリティを監視するためのＴＣＰ接続に対応するアクセスゲートウェイ５１６と動的ポートとの間で交換され得る。ＴＣＰ接続は、そのＴＣＰ接続の使用を必要とする将来的なアプリケーションネットワークトラフィックがある場合に使用され得る。
【００９５】
幾つかの実施形態では、各モバイルデバイス上のＭＤＭプロファイル（またはＭＡＭポリシー）は、私設網５２０とのＶＰＮ接続を必要とする企業に管理されているアプリケーションのリストを維持することができる。管理されているモバイルアプリケーション５０２のソースコードは、私設網５２０への管理されているアプリケーション５０２のトラフィックのみをトンネリングするために専用のＴＣＰマイクロＶＰＮ接続を生成するためのプログラミング及び／または命令を含むことができる。幾つかの実施形態では、管理されているアプリケーション５０２がモバイルデバイス上で起動されると、モバイルデバイス５０２は、管理されているアプリケーション５０２が通信するように構成された様々な異なる宛先ネットワークに対して、モバイルデバイスの複数の異なる動的ポート（例えば、動的ポート５１０ａ〜ｃ）上で複数の異なるマイクロＶＰＮ接続を開始することができる。モバイルデバイスは、宛先ネットワークアドレス５１２ａ〜ｃと、動的ポート５１０ａ〜ｃと、これらの動的ポート上の対応するアプリケーション固有のＴＣＰプロキシサーバー５１４との間の関連付けを行うことができる。管理されているアプリケーション５０２が起動すると、管理されているアプリケーション５０２が追加の宛先ネットワークアドレス用のアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８を生成するので、モバイルデバイスは、モバイルデバイスのローカルデバイスソケット５１８上に追加の動的ポートを生成し、要求された新たな宛先ネットワークアドレスへのトラフィックをトンネリングするために、追加の専用プロキシサーバーへのソケット接続を作成し、新たな宛先ネットワークアドレス及び新たに割り当てられた動的ポートとの間の関連付けを行うために、マッピングテーブル５２０を更新する。
【００９６】
幾つかの実施形態では、複数の異なるＶＰＮ接続は、同一のモバイルアプリケーションに対して存在し得る。複数の異なる動的ポート及びそれらに関連するプロキシサーバーは、同一のモバイルアプリケーションのアプリケーションネットワークを使用可能にするために存在し得る。各動的ポート及びその動的ポート上で起動するプロキシサーバー５１４は、管理されているアプリケーションに対する所与のＴＣＰ接続のアプリケーションネットワークトラフィックを処理することができる。モバイルデバイスは２つ以上の管理されているアプリケーションを含むことができるので、複数の異なる組の動的ポート及びＴＣＰプロキシサーバーが、モバイルデバイス上で実行しているこれらの異なる管理されているアプリケーション用のＴＣＰトンネルを同時にセットアップして、私設網５２０にトラフィックをトンネリングすることができる。
【００９７】
幾つかの実施形態では、アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８がローカルデバイスソケット５１８上の動的ポートに達すると、管理されているアプリケーション５０２からのそのようなネットワークトラフィックのペイロードは、動的ポートのプロキシサーバー５１４に転送され得る。例えば、図５の例示的な実施形態に示すように、管理されているアプリケーション５０６からのアプリケーションネットワークトラフィック５０６は、宛先ＩＰアドレス５１２ｂの宛先ネットワークアドレスを含むことができる。宛先ＩＰアドレス５１２ｂが動的ポート５１０ｂと関連していると特定することにより、宛先ＩＰアドレス５１２ｂに接続するシステムコールに関連するアプリケーションネットワークトラフィックは、動的ポート５１０ｂにルーティングされ得る。ソケット接続は、動的ポート５１０ｂのローカルデバイスソケット５１８から作成され、アプリケーション固有のプロキシＴＣＰサーバー５１４に接続し得る。アプリケーション固有のプロキシＴＣＰサーバー５１４は、マイクロＶＰＮサーバーであり得る。アプリケーション固有のプロキシＴＣＰサーバー５１４は、モバイルデバイスにアクセス可能な公衆網から私設網５２０へのルーティングトラフィックを処理することができるアクセスゲートウェイ５１６へのソケット接続を生成することができる。アプリケーション固有のプロキシＴＣＰサーバー５１４で、管理されているアプリケーション５０２からのアプリケーションネットワークトラフィック５０６は、アクセスゲートウェイ５１６を介して、私設網５２０にトンネリングされるために再パケット化され得る。例えば、アプリケーションネットワークトラフィック５０６のペイロードは、私設網５２０へのＴＣＰ接続によって使用されるＴＣＰプロトコルに従って抽出されフォーマットされ得る。アクセスゲートウェイ５１６は、私設網５２０に送信されるトンネリングプロトコルに従って再パケット化される着信ペイロードを要求していることができる。したがって、アプリケーション固有のプロキシＴＣＰサーバー５１４は、アクセスゲートウェイ５１６及び／または私設網５２０によって使用されるプロトコルを特定し、私設網５２０に送信するために正しくフォーマットされる着信アプリケーションネットワークトラフィック５０６のパケットを再パケット化することができる。
【００９８】
モバイルＶＰＮシステム５００によれば、宛先ネットワークアドレスを指定するシステムコールが管理されているモバイルアプリケーション５０２から傍受されると、アプリケーション固有のＴＣＰ  ＶＰＮトンネルが生成されて、アプリケーションネットワークトラフィック５０６及び／または傍受されたシステムコールに関連するライブラリネットワークトラフィック５０８をトンネリングして、ＶＰＮトンネルに接続する。宛先ネットワークアドレスを指定するＶＰＮ接続システムコールを傍受すると、モバイルＶＰＮシステム５００は、ＶＰＮ接続システムコールに関連するアプリケーションネットワークトラフィックをトンネリングするために、ローカルデバイスソケット５１８内の動的ポートを自動的に生成して割り当てて、ＶＰＮ接続システムコールの宛先ネットワークアドレスに対応する割り振られた動的ポート上にアプリケーション固有のプロキシＴＣＰサーバー５１４を生成し、そのアプリケーションネットワークトラフィックをトンネリングするために、アクセスゲートウェイ５１６へのソケット接続を生成してし、そのトラフィックをアクセスゲートウェイ５１６にトンネリングするために、アプリケーション固有のプロキシＴＣＰサーバー５１４でネットワークトラフィックの再パケット化を処理することができる。
【００９９】
図６は、ＵＤＰトンネリングプロトコルを使用してモバイルＶＰＮを管理する例示的なモバイルＶＰＮシステム６００を示す。モバイルＶＰＮシステム６００のシステムアーキテクチャは、モバイルＶＰＮシステム５００のそれと類似しているが、モバイルＶＰＮシステム５００の主要な特徴とは異なる。管理されているアプリケーション５０２がＵＤＰプロトコルを使用して通信し、及び／またはアクセスゲートウェイ５１６がＵＤＰトンネリング接続を必要とすると判定すると、管理されているアプリケーション５０２は、モバイルＶＰＮシステム６００を使用して、アクセスゲートウェイ５１６を介して私設網５２０へのトンネリング接続を作成する。ＵＤＰは、ＴＣＰと異なりコネクションレスプロトコルであるため、ＴＣＰモバイルＶＰＮシステム５００とは異なり、アクセスゲートウェイ５１６を備えたモバイルデバイスによってアクティブなＵＤＰ接続を維持する必要はない。それに加えて、ＴＣＰモバイルＶＰＮシステム５００でのような動的ポートの代わりに、モバイルデバイス上の固定ポート（例えば、固定ポート６１０）を介してモバイルデバイスとアクセスゲートウェイ５１６との間にＵＤＰ  ＶＰＮ接続が確立される。さらに、ＵＤＰはコネクションレスプロトコルであり、１つの固定ポートのみが各モバイルアプリケーションのトラフィックを私設網５２０にトンネリングするのに使用されるため、アクセスゲートウェイ５１６を介して私設網５２０にトラフィックをトンネリングするために、モバイルアプリケーションごとに１つのプロキシＶＰＮサーバーのみが使用される。
【０１００】
幾つかの実施形態では、管理されているアプリケーション５０２がＵＤＰ通信プロトコルを使用することをモバイルデバイスが決定すると、ＶＰＮに接続するために管理されているアプリケーション５０２によって作られるＵＤＰシステムコールは、傍受され得る。管理されているアプリケーション５０２及びそれに関連するライブラリがモバイルデバイスのオペレーティングシステムに行うすべてのシステムコールを傍受することにより、モバイルデバイスは、ソケット上の接続を開始するためにすべてのシステムコールを特定することができる。例えば、モバイルデバイスは、ｃｏｎｎｅｃｔ（）及びｓｅｎｄｔｏ（）のようなすべてのシステムコールを特定することができ、モバイルデバイスのデバイスソケット上で私設仮想網５２０へのトンネル及び／または仮想私設網接続を開始することができる。モバイルデバイスは、管理されているアプリケーション５０２及びそれに関連する動的ライブラリ５０４によって作られたモバイルデバイス上のソケット接続のすべてのインスタンスを特定することによって、管理されているアプリケーション５０２によるすべての要求及び／または試みを傍受して、私設仮想網５２０と通信する及び／またはアプリケーションネットワークトラフィック５０６及びライブラリネットワークトラフィック５０８を、仮想私設網接続を通じてトンネリングすることを実現する。アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワーク５０６は、私設網５２０に伝達するためのトラフィックペイロードを含むメッセージと共にＶＰＮに接続するためのシステムコールを含むことができる。アプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィック５０８に存在するＶＰＮに接続するためのＵＤＰシステムコール（例えば、この例ではｃｏｎｎｅｃｔ（）及びｓｅｎｄｔｏ（）システムコール）を傍受することによって、モバイルデバイスは、管理されているアプリケーション５０２からすべてのＶＰＮトラフィックを傍受することができる。ｃｏｎｎｅｃｔ（）及びｓｅｎｄｔｏ（）が本開示において実施例として使用されているが、モバイルデバイスは、様々な異なるタイプのモバイルオペレーションシステム（例えば、ｉＯＳ、Ａｎｄｒｏｉｄ（登録商標）、Ｆｉｒｅｆｏｘ  ＯＳ、Ｗｉｎｄｏｗｓ（登録商標）  Ｐｈｏｎｅ  ＯＳ、Ｂｌａｃｋｂｅｒｒｙ  ＯＳ、Ｔｉｚｅｎ  ＯＳ、Ｕｂｕｎｔｕ  Ｔｏｕｃｈ  ＯＳなど）によって作られる既知のすべてのＵＤＰシステムコールについて、アプリケーションネットワークトラフィック５０６及びライブラリネットワークトラフィック５０８におけるシステムコールを監視することができる。
【０１０１】
幾つかの実施形態では、ＶＰＮに接続するためのシステムコールが傍受されると、管理されているアプリケーション５０２に対してこのようなシステムコールを使用するアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８は、固定ポート６１０にリダイレクトされる。モバイルデバイスは、私設網５２０への傍受されたＶＰＮシステムコールに関連するアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８をトンネリングするために、モバイルデバイスからＵＤＰ  ＶＰＮ接続が確立される固定ポートを割り振ることができる。各モバイルデバイスは、私設網５２０との通信を要求している管理されているアプリケーション５０２のような管理されているモバイルアプリケーションを有することができる。各管理されているアプリケーション５０２について、モバイルデバイスは、モバイルデバイス上のすべての固定ポートから１つの固定ポートを割り振ることができる。各ＵＤＰシステムコールは、各アプリケーショントラフィックパケットが向けられるべき実際の宛先ＩＰアドレスを指定するので、モバイルＵＤＰ  ＶＰＮシステム６００は、固定ポート６１０上のアプリケーション固有のプロキシＵＤＰサーバー６１４を使用して、アクセスゲートウェイ５１６を介してシステムコールに関連するトラフィックを直接宛先に向けることができる。ＶＰＮ接続及びＵＤＰシステムコールが傍受されると、モバイルデバイスは、このようなアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８を固定ポート６１０にリダイレクトすることができる。
【０１０２】
幾つかの実施形態では、アプリケーション固有のプロキシＵＤＰサーバー６１４は、固定ポート６１０で生成され、私設網５２０へのトラフィックのルーティングを処理する。モバイルデバイスの固定ポート６１０のような各固定ポートでは、固定ポートをプロキシＵＤＰサーバー６１４に接続して、私設網５２０への各ＵＤＰ  ＶＰＮ接続のトラフィックメッセージのルーティングを処理するためのソケットが生成される。プロキシサーバー６１４は、オンラインウェブサーバーを使用して、管理されているアプリケーション５０２から私設網５２０にアプリケーションネットワークトラフィック５０６をトンネリングするためのプロキシを生成することができる。プロキシサーバー６１４は、アプリケーション固有のサーバーであり得、それが役割を果たすように構成されたモバイルアプリケーションのアプリケーションネットワークトラフィックのみを処理することができる。これに加えて、またはこれに代えて、モバイルデバイスの固定ポートで生成される各ＵＤＰ接続及び／またはＵＤＰトンネルは、管理されているアプリケーション５０２のみにその役割を果たすことができる。したがって、ＶＰＮ接続は、管理されているアプリケーションのみのアプリケーションネットワークトラフィックをトンネリングするアプリケーション固有のＶＰＮであり得る。
【０１０３】
幾つかの実施形態では、管理されているアプリケーション５０２がＵＤＰ接続要求でアプリケーショントラフィック及び／またはシステムコールを傍受する場合、モバイルデバイス５０２は、モバイルデバイスの固定ポート６１０上で１つのマイクロＶＰＮ接続を開始することができる。モバイルデバイスが２つ以上の管理されているアプリケーションを含むことができるので、複数の異なる固定ポート及びＵＤＰプロキシサーバーは、私設網５２０へのトラフィックをトンネリングするために、モバイルデバイス上で実行しているこれらの異なる管理されているアプリケーションの各々に対して１つのＵＤＰトンネルを同時にセットアップすることができる。
【０１０４】
幾つかの実施形態では、アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８が固定ポート６１０に達すると、管理されているアプリケーション５０２からのこのようなネットワークトラフィックのペイロードは、固定ポート６１０のＵＤＰ  ＶＰＮプロキシサーバー６１４に転送され得る。ソケットは、動的ポート６１０で作成され得、アプリケーション固有のプロキシＵＤＰサーバー６１４に接続することができる。アプリケーション固有のプロキシＵＤＰサーバー６１４は、マイクロＶＰＮサーバーであり得る。アプリケーション固有のプロキシＵＤＰサーバー６１４は、モバイルデバイスにアクセス可能な公衆網から私設網５２０へのトラフィックのルーティングを処理することができるアクセスゲートウェイ５１６にソケットを生成することができる。アプリケーション固有のプロキシＵＤＰサーバー６１４では、管理されているアプリケーション５０２からのアプリケーションネットワークトラフィック５０６は、アクセスゲートウェイ５１６を介して私設網５２０にトンネリングされるように再パケット化され得る。例えば、アプリケーションネットワークトラフィック５０６のペイロードは、私設網５２０へのＵＤＰ接続によって使用されるＵＤＰプロトコルに従って抽出されフォーマットされ得る。アクセスゲートウェイ５１６は、私設網５２０に送信されるトンネリングプロトコルに従って再パケット化される着信ペイロードパケットを要求することができる。したがって、アプリケーション固有のプロキシＵＤＰサーバー６１４は、アクセスゲートウェイ５１６及び／または私設網５２０によって使用されるプロトコルを識別して、私設網５２０への送信用に正しくフォーマットされるべき着信アプリケーションネットワークトラフィック５０６を再パケット化することができる。
【０１０５】
モバイルＶＰＮシステム５００によると、宛先ネットワークアドレスを指定するシステムコールが管理されているアプリケーション５０２から傍受されると、アプリケーション固有のＵＤＰ  ＶＰＮトンネルが作成され得、傍受されたシステムコールに関連するアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８をトンネリングして、ＶＰＮトンネルに接続することができる。宛先ネットワークアドレスを指定するＶＰＮ接続システムコールを傍受すると、モバイルＶＰＮシステム６００は、ＶＰＮ接続システムコールに関連するアプリケーションネットワークトラフィックをトンネリングするために、自動的に固定ポートを割り振ることができ、管理されているアプリケーションに対応する割り振られたポート上にアプリケーション固有のプロキシＵＤＰサーバー６１４を生成し、そのアプリケーションネットワークトラフィックをトンネリングするために、アクセスゲートウェイ５１６にソケットを生成し、そのトラフィックをアクセスゲートウェイ５１６にトンネリングするために、アプリケーション固有のプロキシＵＤＰサーバー６１４でネットワークトラフィックの再パケット化を処理することができる。
【０１０６】
幾つかの実施形態では、モバイルＶＰＮシステム６００は、ＶＰＮ接続システムコールから直接私設網５２０に向けられるアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８をリダイレクトすることができる。例えば、モバイルＶＰＮシステム６００は、ＵＤＰ  ＶＰＮ接続システムコール（例えば、ｃｏｎｎｅｃｔ（）及びｓｅｎｄｔｏ（）ＵＤＰシステムコール）内で見いだされる実際の宛先ＩＰアドレスを抽出して、そのようなトラフィックを固定ポート６１０上のアプリケーション固有のプロキシＵＤＰサーバー６１４に直接リダイレクトすることができる。ＵＤＰ  ＶＰＮ接続システムコールには宛先ＩＰアドレスがすでに含まれているため、実際の宛先ＩＰアドレスを解決するために、ＴＣＰシステムコールとは異なり、動的ポートにリダイレクトする必要はない。アプリケーション固有のプロキシＵＤＰサーバー６１４は、アクセスゲートウェイ５１６を介して、私設網５２０にＵＤＰトラフィックをフォーマットすることができる。アプリケーショントラフィックが私設網５２０に送信されると、管理されているアプリケーション５０２とアクセスゲートウェイ５１６及び／または私設網５２０との間でアクティブなＵＤＰ接続が維持されないことがある。
【０１０７】
図７は、ＤＮＳトンネリングプロトコルを使用するモバイルＶＰＮを管理する例示的なモバイルＶＰＮシステム７００を示す。図７に示す実施形態によると、管理されているアプリケーション５０２は、例えば、マイクロＶＰＮを使用して公衆網を介してアクセスゲートウェイ５１６に接続し、アクセスゲートウェイ５１６を介して、セキュアなポータルにアクセスすることができる。
【０１０８】
幾つかの実施形態では、モバイルデバイス及び／または管理されているアプリケーション５０２は、管理されているアプリケーション５０２及び管理されているアプリケーション５０２が通信する任意の関連する動的ライブラリ５０４によって行われるすべてのシステムコールを傍受する。モバイルＶＰＮシステム７００は、管理されているアプリケーション５０２が、私設網５２０に接続するためにＤＮＳトンネリングプロトコル及び／またはＤＮＳ通信プロトコルを使用することを決定することができる。管理されているアプリケーション５０２がＤＮＳプロトコルを使用するという決定に応答して、モバイルＶＰＮシステムは、ＶＰＮに接続するためのすべてのＤＮＳシステムコールを監視することができる。従来のＤＮＳ  ＶＰＮシステムでは、管理されているアプリケーション５０２、その関連する動的ライブラリ５０４、及びモバイルデバイス上で実行している他のモバイルアプリケーションからすべてのＤＮＳクエリを受信するグローバル（例えば、システムレベルの）ＤＮＳデーモン７１４が存在し得る。従来のシステムでは、すべてのモバイルアプリケーションからの各ＤＮＳクエリは、グローバルＤＮＳデーモン７１４宛てである。しかしながら、本開示では、単一のモバイルアプリケーションのＤＮＳトラフィックのみを処理するアプリケーション固有のＤＮＳサーバー７０８を生成するシステム及び方法について説明する。
【０１０９】
幾つかの実施形態では、モバイルＶＰＮシステム７００は、ＶＰＮに接続するためのすべてのシステムコールを傍受するために、管理されているアプリケーション５０２及びその関連する動的ライブラリ５０４によって発行されたすべてのシステムコールを傍受することができる。管理されているアプリケーション５０２及び／または動的ライブラリ５０４によって行われるＤＮＳ  ＶＰＮシステムコールは、システムコールに関連するＤＮＳクエリのＤＮＳ解決のためのグローバルＤＮＳデーモン７１４へのパスを含むことができる。グローバルＤＮＳデーモン７１４及びアプリケーション固有のＤＮＳデーモン７１０などのＤＮＳデーモンは、管理されているアプリケーション５０２及び動的ライブラリ５０４からのＤＮＳクエリを解決し、そのようなシステムコールに関連するアプリケーションネットワークトラフィック５０６及びライブラリネットワークトラフィック５０８を命令するように構成され得る。
【０１１０】
幾つかの実施形態では、モバイルＶＰＮシステム７００が私設網５２０に接続する、及び／または私設網５２０と通信する、管理されているアプリケーション５０２及び動的ライブラリ５０４によって発行されたＤＮＳシステムコールを傍受すると、モバイルＶＰＮシステムは、アプリケーション固有のＤＮＳデーモン７１０へのこのようなＤＮＳシステムコールと関連するアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８をリダイレクトすることができる。各管理されているモバイルアプリケーション５０２について、モバイルＶＰＮシステム７００は、ローカルデーモンソケット７０６を、アプリケーションサンドボックスパス７０４に生成することができる。モバイルＶＰＮシステム７００は、アプリケーション固有のＤＮＳプロキシサーバー７０８を、ローカルドメインソケット７０６に通信可能に連結されたアプリケーションサンドボックスパス７０４に生成することができる。アプリケーション固有のＤＮＳプロキシサーバー７０８は、私設網５２０へのアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィックのルーティングを処理するために使用され得るアプリケーション固有のＤＮＳデーモン７１０を含むことができる。例えば、アプリケーション固有のＤＮＳデーモン７１０は、リダイレクトされたアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８内のＤＮＳクエリ上でＤＮＳ解決を実行して、さらなるＤＮＳ解決のために、私設網５２０及び／またはグローバルＤＮＳデーモン７１４に転送するために、公衆網７１６（例えば、インターネット）を介してアクセスゲートウェイ５１６にそのようなトラフィックを向けることができる。
【０１１１】
幾つかの実施形態では、モバイルＶＰＮシステム７００は、各ＤＮＳ  ＶＰＮ接続システムコール内に含まれるＤＮＳパスを、アプリケーション固有のＤＮＳプロキシサーバー７０８が位置するアプリケーションサンドボックスパス７０４と置換及び／または書き換えすることができる。管理されているアプリケーション５０２によって発行された各ＤＮＳ  ＶＰＮ接続システムコールに関連するアプリケーションネットワークトラフィック５０６及びライブラリネットワークトラフィック５０８を、アプリケーションサンドボックスパス７０４のローカルドメインソケット７０６にリダイレクトすることによって、モバイルＶＰＮシステム７００は、各モバイルアプリケーションのアプリケーショントラフィックを、外部ユーザ／外部プロセスが悪意のある目的（例えば、トラフィックをリダイレクトするためにＤＮＳデーモンをハッキングすること）を追跡及び／または検出することができない固有のサンドボックスパスにリダイレクトすることができる。モバイルＶＰＮシステム７００は、ローカルドメインソケット７０６を生成して、アプリケーション固有のＤＮＳプロキシサーバー７０８に接続し、私設網５２０への管理されているアプリケーション５０２に対するトラフィックメッセージのルーティングを処理することができる。プロキシサーバー７０８は、オンラインウェブサーバーを使用して、管理されているモバイルアプリケーション５０２から私設網５２０へのアプリケーションネットワークトラフィック５０６をトンネリングするためのプロキシを作成することができる。プロキシサーバー７０８は、アプリケーション固有のサーバーであり得、それが役割を果たすように構成されたモバイルアプリケーションのアプリケーションネットワークトラフィックのみを処理することができる。それに加えて、またはこの代わりに、ローカルドメインソケット７０６で生成される各ＤＮＳ接続及び／またはＤＮＳトンネルは、管理されているアプリケーション５０２のみの役割を果たすために専用であり得る。したがって、ＶＰＮ接続は、管理されているモバイルアプリケーションのみのアプリケーションネットワークトラフィックをトンネリングするアプリケーション固有のＶＰＮであり得る。
【０１１２】
幾つかの実施形態では、各モバイルデバイス上のＭＤＭプロファイルは、私設網５２０でＶＰＮ接続を必要とする企業に管理されているアプリケーションのリストを維持することができる。管理されているモバイルアプリケーション５０２のソースコードは、管理されているアプリケーション５０２から発行されたＤＮＳ  ＶＰＮ接続システムコールの受信時に、私設網５２０への管理されているアプリケーション５０２のトラフィックのみをトンネリングするために専用のＤＮＳマイクロＶＰＮ接続を生成するプログラミング及び／または命令を含むことができる。
【０１１３】
幾つかの実施形態では、複数の異なる管理されているアプリケーションは、同一のモバイルデバイス上で実行していることができ、私設網５２０にＤＮＳトンネルを要求することができる。モバイルデバイスは２つ以上の管理されているアプリケーションを含むことができるので、複数の異なる組のローカルドメインソケット及びアプリケーション固有のＤＮＳプロキシサーバーは、私設網５２０へのトラフィックをトンネリングするために、モバイルデバイス上で実行しているこれらの異なる管理されているアプリケーションのＤＮＳトラフィック転送を同時にセットアップすることができる。
【０１１４】
幾つかの実施形態では、リダイレクトの成功時に、アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８がアプリケーションサンドボックスパス７０４のローカルドメインソケット７０６に達すると、管理されているアプリケーション５０２からのそのようなネットワークトラフィックのペイロードは、ローカルドメインソケット７０８によってアプリケーション固有のＤＮＳプロキシサーバー７０８に伝送され得る。例えば、図５の例示的な実施形態に示すように、管理されているアプリケーション５０６からのアプリケーションネットワークトラフィック５０６は、私設網５２０でドメインネームを指定するＤＮＳクエリを含むことができる。アプリケーション固有のＤＮＳプロキシサーバー７０８は、そのようなネットワークトラフィック内でＤＮＳクエリを処理して、ネットワークトラフィックの宛先ネットワークアドレスを指定することができる。アプリケーション固有のＤＮＳプロキシサーバー７０８は、マイクロＶＰＮサーバーであり得る。アプリケーション固有のＤＮＳプロキシサーバー７０８は、モバイルデバイスにアクセス可能な公衆網から私設網５２０にトラフィックのルーティングを処理することができる、アクセスゲートウェイ５１６にソケットを生成することができる。アプリケーション固有のＤＮＳプロキシサーバー７０８では、管理されているアプリケーション５０２からのアプリケーションネットワークトラフィック５０６は、アクセスゲートウェイ５１６を介して、私設網５２０トンネリングされるように再パケット化され得る。例えば、アプリケーションネットワークトラフィック５０６のペイロードは、私設網５２０へのＤＮＳ接続によって使用されるＤＮＳプロトコルに従って抽出及びフォーマットされ得る。アプリケーション固有のＤＮＳプロキシサーバー７０８は、アプリケーションネットワークトラフィック５０６のこれらのフォーマットされたペイロードを、公衆網７１６を介してアクセスゲートウェイ５１６に送信することができる。例えば、アプリケーション固有のＤＮＳプロキシサーバー７０８は、アクセスゲートウェイ５１６がアクセスされ得る公衆網７１６と直接通信することができる。したがって、アプリケーション固有のＤＮＳプロキシサーバー７０８は、公衆網７１６によってアクセスゲートウェイ５１６に送信され得るアプリケーションネットワークトラフィック５０６のペイロードをフォーマットすることができる。アクセスゲートウェイ５１６は、私設網５２０に送信されるトンネリングプロトコルに従って再パケット化される着信ペイロードパケットを要求していることができる。したがって、アプリケーション固有のＤＮＳプロキシサーバー７０８は、アクセスゲートウェイ５１６及び／または私設網５２０によって使用されるプロトコルを識別して、私設網５２０に伝送するために正しくフォーマットされる着信アプリケーションネットワークトラフィック５０６を再パケット化することができる。
【０１１５】
幾つかの実施形態では、アプリケーション固有のＤＮＳデーモン７１０は、アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８を、さらなるＤＮＳ解決及び／または処理のために、グローバルＤＮＳデーモンに向けることができる。アプリケーション固有のＤＮＳデーモン７１０は、アクセスゲートウェイ５１６及び／またはモバイルＶＰＮシステム７００によって使用されるポリシーを使用して、アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８の関連するＤＮＳクエリを処理することができる。例えば、アプリケーション固有のＤＮＳデーモン７１０は、アプリケーション５０２のアプリケーションサンドボックスパス７０４を通じて受信された、ＤＮＳ要求及び／または関連するアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８が、アプリケーション固有のＤＮＳデーモン７１０によってローカルに解決され得るか否かを判定することができる。アプリケーション固有のＤＮＳデーモン７１０で実行され得ないアクセスゲートウェイ５１６のポリシーに従ってさらなる再フォーマットを要求しているＤＮＳ要求は、グローバルＤＮＳデーモン７１４に転送され得る。アプリケーション固有のＤＮＳデーモン７１０は、クライアントソケット７１２がグローバルＤＮＳデーモン７１４に接続するために存在することができる、ローカルドメインソケット７０６からシステムレベルのＤＮＳパス７０２に受信されたアプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８をリダイレクトすることができる。アプリケーション固有のＤＮＳデーモン７１０は、アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８のＤＮＳクエリ内の宛先パスを、システムレベルのＤＮＳパス７０２に置換して、トラフィックをパス７０２のクライアントソケット７１２に送信することができる。アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８がクライアントソケット７１２に達すると、トラフィックは、クライアントソケット７１２に通信可能に連結されたグローバルＤＮＳデーモン７１４によって受信され得る。グローバルＤＮＳデーモン７１４は、アクセスゲートウェイ５１６のポリシーに従って、アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８を処理及び／または再フォーマットして、アクセスゲートウェイ５１６を介して私設網５２０に伝送するトラフィックを準備することができる。グローバルＤＮＳデーモン７１４は、公衆網７１６によって間接的にアクセスゲートウェイと通信することができる。グローバルＤＮＳデーモン７１４は、公衆網７１６を介してアクセスゲートウェイ５１６にネットワークトラフィックを送信するために、モバイルデバイス上に構成されたＤＮＳウェブサーバーを使用することができる。グローバルＤＮＳデーモン７１４は、アクセスゲートウェイ５１６がアクセスされ得る公衆網７１６と直接通信することができる。したがって、グローバルＤＮＳデーモン７１４は、モバイルデバイス上に構成されたＤＮＳサーバーに、アプリケーションネットワークトラフィック５０６のペイロードをフォーマットして、公衆網７１６を介してアクセスゲートウェイ５１６に送信するように命令することができる。
【０１１６】
グローバルＤＮＳデーモン７１４は、アプリケーション固有のＤＮＳデーモン７１０がそのようなリダイレクトされたトラフィックパケットに対して実行しなかったＤＮＳクエリを解決することができる。アプリケーションネットワークトラフィック５０６及び／またはライブラリネットワークトラフィック５０８の処理時に、グローバルＤＮＳデーモン７１４は、それらをアクセスゲートウェイ５１６に送信することができる。
【０１１７】
図８は、本明細書で説明する１つ以上の例示的な態様による、アプリケーションごとにモバイルＴＣＰ  ＶＰＮ接続を生成する方法を示すフローチャートを表示する。１つ以上の実施形態では、図８の方法及び／またはその１つ以上のステップは、コンピューティングデバイス（例えば、汎用コンピューティングデバイス２０１）によって実行され得る。他の実施形態では、図８に示す方法及び／またはその１つ以上のステップは、非一時的なコンピュータ可読メモリのような、コンピュータ可読媒体に記憶されたコンピュータに実行可能な命令において具現化され得る。
【０１１８】
図８Ａに示すように、この方法は、モバイルデバイスがモバイルアプリケーションによって使用されるトンネルプロトコルを決定することができるステップ８０２で開始することができる。例えば、モバイルデバイスは、モバイルアプリケーションのソースコード及び／または通信プロトコルを調べて、公衆網及び／または私設網と通信するモバイルアプリケーションによって使用される通信プロトコルを決定することができる。モバイルアプリケーションは、それがアクセスする公衆網を使用してアクセスゲートウェイにアクセスして、私設網へのＶＰＮトンネルを作成することができる。これに加えて、またはこれに代えて、公衆網から私設網にアクセスするために使用されるアクセスゲートウェイの通信プロトコル及び／またはトンネリングプロトコルを検査して、モバイルアプリケーションがＶＰＮ接続をセットアップするために、アクセスゲートウェイと通信するために使用する通信プロトコルを決定することができる。
【０１１９】
ステップ８０４では、モバイルデバイスは、モバイルアプリケーションがＴＣＰトンネリングプロトコルを使用するか否かを判定することができる。モバイルデバイスは、ステップ８０２で検査されたシステムコール及び／または通信プロトコルが、使用されているＴＣＰ通信及び／またはトンネリングプロトコルのインジケータを含むか否かを監視することにより、モバイルＶＰＮシステムがＴＣＰトンネリングプロトコルを使用するか否かを判定することができる。例えば、モバイルデバイスは、既知のＴＣＰシステムコール、通信プロセス、及び／またはＴＣＰ通信プロトコルを示すフックについて、モバイルアプリケーションからの通信及び／またはシステムコールを検査することができる。モバイルアプリケーションがＴＣＰトンネリングプロトコルを使用しないと判定する場合、この方法は、図８Ｂのステップ８３２に進むことができる。
【０１２０】
ステップ８０６では、モバイルアプリケーションがＴＣＰトンネリングプロトコルを使用すると判定する場合、モバイルデバイスは、モバイルアプリケーションからのシステムコール及びモバイルアプリケーションによって使用される任意のサードパーティーライブラリを傍受することができる。モバイルデバイスは、ＶＰＮネットワーク（例えば、ｃｏｎｎｅｃｔ（）及びｃｏｎｎｅｃｔ（）システムコール）に接続するための特定のＴＣＰシステムコールについて、モバイルアプリケーション及び／またはその関連するライブリによって発行されたすべてのシステムコールを検査することができる。モバイルデバイスは、ＶＰＮネットワークに接続するためのすべてのシステムコールを識別し、またそのような傍受されたシステムコールに関連するすべてのアプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックを特定することもできる。
【０１２１】
ステップ８０８では、モバイルデバイスは、モバイルアプリケーション及び／またはその関連するサードパーティーライブラリによって行われる各傍受されたシステムコールから宛先ネットワークを特定することができる。例えば、ＶＰＮ接続システムコール及び／またはそれらに関連するトラフィックメッセージは、１つ以上の宛先ネットワークアドレス及び／または中間アドレスを含むことができる。モバイルデバイスは、モバイルアプリケーション及び／またはその関連するライブラリからのアプリケーショントラフィックメッセージ及び／またはシステムコール内に含まれるそのようなネットワークアドレスを識別して、そのようなアプリケーショントラフィックを最適にルーティングする方法を決定することができる。その特定のアプリケーションについて、以前にモバイルデバイスによって遭遇されていない宛先アドレスが検出された場合、新しい宛先ネットワークを提供するために、新しい動的ポートを生成することができる。具体的には、モバイルデバイスは、動的ポートを生成して、その動的ポートとトラフィックにルーティングするために生成されたネットワークアドレスを関連付けることができる。モバイルデバイスは、新たに生成された動的ポートとそれに対応する宛先ネットワークアドレスとの関連付けによって、モバイルデバイスの動的ポートと宛先ネットワークアドレスとのマッピングを更新することができる。
【０１２２】
ステップ８１０では、モバイルデバイスは、宛先ネットワークアドレスを使用することにより、トラフィックをルーティングするための動的ポートを特定することができる。動的ポートの宛先ネットワークアドレスへのマッピングを参照することによって、モバイルデバイスは、モバイルアプリケーション及び／またはその関連する動的ライブラリから宛先ネットワークアドレスへトラフィックをルーティングするために使用されるべき動的ポートを特定することができる。
【０１２３】
ステップ８１２では、モバイルデバイスは、アプリケーション固有のプロキシサーバーを識別された動的ポートで生成することができる。動的ポートでは、アクセスゲートウェイを介した私設網への管理されているアプリケーションのトラフィックのＴＣＰ接続を維持するように構成されたプロキシサーバーにソケットを作成することができる。例えば、プロキシサーバーは、対応する動的ポート上のモバイルデバイスと、私設網へアプリケーショントラフィックを導かねばならないアクセスゲートウェイとの間でＴＣＰ接続を開始して維持するように生成することができる。アプリケーション固有のプロキシサーバーは、管理されているモバイルアプリケーションによって行われるシステムコールを傍受し、役割を果たすように構成されたネットワークアドレス宛てのトラフィックを選択するように構成することができる。アプリケーション固有のプロキシサーバーは、モバイルデバイスにアクセス可能な公衆網から私設網へのトラフィックのルーティングを処理するアクセスゲートウェイにソケットを生成することができる。アプリケーション固有のプロキシサーバーでは、管理されているアプリケーションからのアプリケーションネットワークトラフィックは、アクセスゲートウェイを介して、私設網にトンネリングされるように再パケット化され得る。例えば、アプリケーションネットワークトラフィックのペイロードは、私設網へのＴＣＰ接続によって使用されるＴＣＰプロトコルに従って抽出されてフォーマットされ得る。アクセスゲートウェイは、私設網に送信されるトンネリングプロトコルに従って再パケット化される着信ペイロードパケットを要求することができる。したがって、アプリケーション固有のプロキシサーバーは、アクセスゲートウェイ及び／または私設網によって使用されるプロトコルを識別して、私設網に伝送するために正しくフォーマットされる着信アプリケーションネットワークトラフィックメッセージを再パケット化することができる。
【０１２４】
ステップ８１４では、モバイルデバイスは、識別された動的ポートのプロキシサーバーとアクセスゲートウェイとの間にＴＣＰ接続を確立することができる。例えば、アプリケーション固有のＴＣＰ  ＶＰＮトンネルは、プロキシサーバーによって生成されて、アクセスゲートウェイを介して私設網へのＶＰＮトンネルを接続するために、アプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックをトンネリングすることができる。モバイルデバイスはまた、関連するアプリケーション固有のプロキシサーバーに、アクセスゲートウェイにソケットを生成するように命令することもできる。モバイルデバイスは、アプリケーション固有のプロキシサーバーに、対応する動的ポートに向けられ得る将来のＴＣＰトラフィック用のアクセスゲートウェイとの確立されたＴＣＰ接続を維持するように命令することができる。モバイルデバイスは、アプリケーション固有のプロキシサーバーに、モバイルアプリケーションがモバイルデバイス上で実行している限り、将来の使用のためにＴＣＰ接続を維持するためにネットワーク管理メッセージを交換するよう命令することができる。
【０１２５】
ステップ８１６では、モバイルデバイスは、ターゲット宛先ネットワークアドレス宛てのアプリケーショントラフィックを検出することができる。例えば、アプリケーション固有のプロキシサーバー及び／またはモバイルデバイスは、管理されているアプリケーションがＶＰＮ接続に接続するために、システムコールを発行したことを検出することができる。これに加えて、またはこれに代えて、アプリケーション固有のプロキシサーバーは、役割を果たすように構成された宛先アドレスが管理されているアプリケーションによって生成されたアプリケーションネットワークトラフィックを検出することができる。管理されているアプリケーションは、モバイルデバイス及び／またはアプリケーション固有のプロキシサーバーの命令の下で、アプリケーショントラフィックを、プロキシサーバーへの対応する動的ポートのソケットを介してアプリケーション固有のプロキシサーバーに向けることができる。
【０１２６】
ステップ８１８では、モバイルデバイスは、動的ポートで検出されたアプリケーショントラフィックのペイロードを、プロキシサーバーに伝えることができる。例えば、モバイルデバイスは、関連するアプリケーション固有のプロキシサーバーに、アプリケーションゲートウェイによって使用されるＴＣＰプロトコル及び／または通信規格に従って、アプリケーションネットワークトラフィックのペイロードを再パケット化するように命令することができる。
【０１２７】
ステップ８２０では、モバイルデバイスは、ペイロードがアプリケーショントラフィックの宛先アドレスに直接送信され得るか否かを判定することができる。モバイルデバイスは、ネットワークトラフィックが公衆網アドレス及び／またはモバイルデバイスにアクセス可能な公衆網を介して私設網に送信されるか否かを判定することができる。例えば、幾つかの実施形態では、アプリケーショントラフィックの宛先ネットワークアドレスは、公衆網（例えば、インターネット）によってモバイルデバイスにアクセス可能なアクセスゲートウェイを介してのみアクセス可能な私設網アドレスであり得る。他の実施形態では、アプリケーショントラフィックの宛先ネットワークアドレスは、アクセスゲートウェイを介してトラフィックをルーティングせずに、モバイルデバイスにアクセス可能であり得る。モバイルデバイスは、アプリケーションネットワークトラフィックの宛先ネットワークアドレスを検査して、アプリケーショントラフィックを、その最終宛先に送信するためにさらなる処理及び／または再パケット化が必要か否かを判定することができる（例えば、アクセスゲートウェイを介してその宛先にルーティングされるアプリケーショントラフィックをフォーマットする）。ペイロードが宛先ネットワークアドレスに直接送信できるか否か、またはアクセスゲートウェイを介してトンネリングする必要があるか否かを判定する際に、モバイルデバイスは、アプリケーション固有のＴＣＰサーバーが、アプリケーショントラフィックの宛先ネットワークアドレスにアクセスできるか否か、及び／または宛先ネットワークアドレスの要件に従って、アプリケーションネットワークをフォーマットすることができるか否かを判定することができる。アプリケーション固有のＴＣＰサーバーが実行できないようにさらに再フォーマットする必要のあるアプリケーションネットワークトラフィックは、アクセスゲートウェイに転送される可能性がある。
【０１２８】
ステップ８２２では、ペイロードがモバイルデバイスから宛先ネットワークアドレスに直接送信され得ると判定したことに応答して、モバイルデバイスは、アプリケーショントラフィックを、その宛先ネットワークアドレスに直接送信することができる。例えば、アプリケーション固有のＴＣＰプロキシサーバーは、トラフィックがアドレス指定されるべき宛先ネットワークアドレスを指定することができる。アプリケーション固有のデーモンは、アプリケーショントラフィックを適切に転送するために、宛先ネットワークアドレスによって使用される通信プロトコルに従って、受信されたアプリケーショントラフィックのペイロードを再パケット化することができる。
【０１２９】
ステップ８２４では、ペイロードが宛先アドレスに直接送信できないと判定したことに応答して、モバイルデバイスは、アプリケーショントラフィックを、プロキシサーバーからアクセスゲートウェイに送信することができる。アプリケーショントラフィックがアプリケーション固有のプロキシサーバーによって適切にフォーマットされると、モバイルデバイスは、プロキシサーバーに、再パケット化されたアプリケーショントラフィックをアクセスゲートウェイに送信するように命令することができる。アクセスゲートウェイは、アプリケーショントラフィックを私設網に送信するように、モバイルデバイスによって命令され得る。アプリケーション固有のＴＣＰプロキシサーバーは、アプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックの宛先パスを、アクセスゲートウェイの宛先パスに置換することができる。アプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックが、アクセスゲートウェイに達すると、モバイルデバイスは、アクセスゲートウェイのポリシーに従って、アプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックを処理及び／または再フォーマットして、アクセスゲートウェイを介して私設網に伝送するために、そのようなトラフィックを準備するようにアクセスゲートウェイに命令することができる
図８Ｂは、本明細書に記載された１つ以上の例示的な態様に従って、アプリケーションごとにモバイルＵＤＰ  ＶＰＮ接続を生成する方法を示すフローチャートを表示する。１つ以上の実施形態では、図８Ｂの方法及び／またはその１つ以上のステップは、コンピューティングデバイス（例えば、汎用コンピューティングデバイス２０１）によって実行され得る。他の実施形態では、図８Ｂ及び／またはその１つ以上のステップは、非一時的なコンピュータ可読メモリのようなコンピュータ可読媒体に記憶されたコンピュータに実行可能な命令において具現化され得る。
【０１３０】
図８Ｂに示すように、ステップ８３２では、モバイルデバイスは、モバイルアプリケーションがＵＤＰトンネリングプロトコルを使用するか否かを判定することができる。モバイルデバイスは、ステップ８０２で検査されたシステムコール及び／または通信プロトコルが、使用されているＵＤＰ通信及び／またはトンネリングプロトコルのインジケータを含むか否かを監視することにより、モバイルＶＰＮシステムがＵＤＰトンネリングプロトコルを使用するか否かを判定することができる。例えば、モバイルデバイスは、既知のＵＤＰシステムコール、通信プロセス、及び／またはＵＤＰ通信プロトコルを示すフックについて、モバイルアプリケーションからの通信及び／またはシステムコールを検査することができる。モバイルアプリケーションがＵＤＰトンネリングプロトコルを使用しないと判定する場合、この方法は、図８Ｃのステップ８５２に進む。
【０１３１】
ステップ８３４では、モバイルアプリケーションがＵＤＰトンネリングプロトコルを使用すると判定する場合、モバイルデバイスは、モバイルアプリケーションからのシステムコール及びモバイルアプリケーションによって使用される任意のサードパーティーライブラリを傍受することができる。モバイルデバイスは、ＶＰＮネットワーク（例えば、ｃｏｎｎｅｃｔ（）及びｓｅｎｄｔｏ（）システムコール）に接続するための特定のＵＤＰシステムコールについて、モバイルアプリケーション及び／またはその関連するライブリによって発行されたすべてのシステムコールを検査することができる。モバイルデバイスは、ＶＰＮネットワークに接続するためのすべてのシステムコールを識別し、またそのような傍受されたシステムコールに関連するすべてのアプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックを特定することもできる。
【０１３２】
ステップ８３６では、モバイルデバイスは、モバイルアプリケーション及び／またはその関連するサードパーティーライブラリによって行われる各傍受システムコールから宛先ネットワークを特定することができる。例えば、ＶＰＮ接続システムコール及び／またはそれらに関連するトラフィックメッセージは、１つ以上の宛先ネットワークアドレス（例えば、私設網アドレスのＩＰアドレス）を含むことができる。モバイルデバイスは、モバイルアプリケーション及び／またはその関連するライブラリからのアプリケーショントラフィックメッセージ及び／またはシステムコールに含まれるネットワークアドレスを識別して、そのようなアプリケーショントラフィックを最適にルーティングする方法を決定する。
【０１３３】
ステップ８３８では、モバイルデバイスは、宛先ネットワークアドレスに対応する固定ポートのマッピングを使用して、アプリケーショントラフィックをルーティングする固定ポートを特定することができる。例えば、モバイルデバイスは、モバイルデバイスのどの固定通信ポートが、トラフィックを、対応する管理されているアプリケーションからアクセスゲートウェイにトラフィックを転送するために使用されるプロキシサーバーにトンネリングするために割り当てられたかを特定することができる。管理されているアプリケーションからアプリケーショントラフィックをトンネリングするために使用する固定ポートを特定する際に、モバイルデバイスは、どの通信ポートが利用可能であるか、及び／または管理されているアプリケーションを提供するためにすでに専用化されているかを判定することができる。
【０１３４】
ステップ８４０では、モバイルデバイスは、アプリケーション固有のＵＤＰプロキシサーバーを、識別された固定ポートに生成することができる。モバイルデバイスの識別された固定通信ポートでは、管理されているアプリケーションのトラフィックを処理し、アクセスゲートウェイを介して前記トラフィックを私設網にトンネリングするように構成されたプロキシサーバーにソケットを生成することができる。アプリケーション固有のプロキシサーバーは、それが役割を果たすように構成された管理されているモバイルアプリケーションに対して行われるシステムコールを傍受するように構成され得る。アプリケーション固有のプロキシサーバーは、モバイルデバイスにアクセス可能な公衆網から私設網へのトラフィックのルーティングを処理することができるアクセスゲートウェイにソケットを生成することができる。アプリケーション固有のプロキシサーバーでは、管理されているアプリケーションからのアプリケーションネットワークトラフィックは、アクセスゲートウェイを介して私設網にトンネリングされるように再パケット化され得る。例えば、アプリケーションネットワークトラフィックのペイロードは、私設網と通信するアクセスゲートウェイによって使用されるＵＤＰプロトコルに従って抽出及びフォーマットされ得る。アクセスゲートウェイは、私設網に送信されるＵＤＰトンネリングプロトコルに従って、再パケット化される着信ペイロードパケットを要求することができる。したがって、アプリケーション固有のプロキシサーバーは、アクセスゲートウェイ及び／または私設網によって使用されるプロトコルを識別して、私設網に送信するために正しくフォーマットされる着信アプリケーションネットワークトラフィックを再パケット化することができる。
【０１３５】
ステップ８４２では、モバイルデバイスは、ターゲット宛先アドレス宛てのアプリケーショントラフィックを検出することができる。例えば、アプリケーション固有のプロキシサーバー及び／またはモバイルデバイスは、管理されているアプリケーションがＶＰＮ接続に接続するためのシステムコールを発行したことを検出することができる。これに加えて、またはこれに代えて、アプリケーション固有のプロキシサーバーは、役割を果たすように構成された宛先アドレスを備えたアプリケーションネットワークトラフィックが管理されているアプリケーションによって生成されたことを検出することができる。管理されているアプリケーションは、モバイルデバイス及び／またはアプリケーション固有のプロキシサーバーの命令の下で、アプリケーショントラフィックを、プロキシサーバーへの対応する固定ポートのソケットを介してアプリケーション固有のプロキシサーバーに向けることができる。
【０１３６】
ステップ８４４では、モバイルデバイスは、固定ポートのアプリケーショントラフィックのペイロードを、ＵＤＰプロキシサーバーに伝送することができる。例えば、モバイルデバイスは、関連するアプリケーション固有のプロキシサーバーに、アプリケーションゲートウェイによって使用されるＴＣＰプロトコル及び／または通信規格に従って、アプリケーションネットワークトラフィックのペイロードを再パケット化するように命令することができる。
【０１３７】
ステップ８４６では、モバイルデバイスは、ペイロードが、アプリケーショントラフィックの宛先アドレスに直接送信されるか否かを判定することができる。モバイルデバイスは、ネットワークトラフィックがモバイルデバイスにアクセス可能な公衆網を介して、公衆網アドレス及び／または私設網に送信されるか否かを判定することができる。例えば、幾つかの実施形態では、アプリケーショントラフィックの宛先ネットワークアドレスは、公衆網（例えば、インターネット）によってモバイルデバイスにアクセス可能なアクセスゲートウェイを介してのみアクセス可能な私設網アドレスであり得る。他の実施形態では、アプリケーショントラフィックの宛先ネットワークアドレスは、アクセスゲートウェイを介してトラフィックをルーティングせずにモバイルデバイスにアクセス可能であり得る。モバイルデバイスは、アプリケーションネットワークトラフィックの宛先ネットワークアドレスを検査して、アプリケーショントラフィックを、その最終宛先に送信するためにさらなる処理及び／または再パケット化が必要か否かを判定することができる（例えば、アクセスゲートウェイを介してその宛先にルーティングされるアプリケーショントラフィックをフォーマットする）。ペイロードが宛先ネットワークアドレスに直接送信できるか否か、またはアクセスゲートウェイを介してトンネリングする必要があるか否かを判定する際に、モバイルデバイスは、アプリケーション固有のＵＤＰプロキシサーバーが、アプリケーショントラフィックの宛先ネットワークアドレスにアクセスできるか否か、及び／または宛先ネットワークアドレスの要件に従って、アプリケーションネットワークをフォーマットすることができるか否かを判定することができる。アプリケーション固有のＵＤＰプロキシサーバーが実行できないようにさらに再フォーマットすることを必要とするアプリケーションネットワークトラフィックは、アクセスゲートウェイに転送され得る。
【０１３８】
ステップ８４８では、ペイロードがモバイルデバイスから宛先ネットワークアドレスに直接送信され得ると判定したことに応答して、モバイルデバイスは、アプリケーショントラフィックを、その宛先ネットワークアドレスに直接送信することができる。例えば、アプリケーション固有のＵＤＰプロキシサーバーは、トラフィックがアドレス指定されるべき宛先ネットワークアドレスを指定することができる。アプリケーション固有のデーモンは、アプリケーショントラフィックを適切に転送するために、宛先ネットワークアドレスによって使用される通信プロトコルに従って、受信されたアプリケーショントラフィックのペイロードを再パケット化することができる。
【０１３９】
ステップ８５０では、ペイロードが宛先アドレスに直接送信できないと判定したことに応答して、モバイルデバイスは、アプリケーショントラフィックを、ＵＤＰプロキシサーバーからアクセスゲートウェイに送信することができる。アプリケーショントラフィックがアプリケーション固有のプロキシサーバーによって適切にフォーマットされると、モバイルデバイスは、プロキシサーバーに、再パケット化されたアプリケーショントラフィックをアクセスゲートウェイに送信するように命令することができる。アクセスゲートウェイは、アプリケーショントラフィックを私設網に送信するように、モバイルデバイスによって命令され得る。アプリケーション固有のＵＤＰプロキシサーバーは、アプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックの宛先パスを、アクセスゲートウェイの宛先パスに置換することができる。アプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックが、アクセスゲートウェイに達すると、モバイルデバイスは、アクセスゲートウェイのポリシーに従って、アプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックを処理及び／または再フォーマットして、アクセスゲートウェイを介して私設網に伝送するために、そのようなトラフィックを準備するようにアクセスゲートウェイに命令することができる
図８Ｃは、本明細書に記載の１つ以上の例示的な態様による、アプリケーションごとにモバイルＤＮＳ  ＶＰＮ接続を生成する方法を解説するフローチャートを示す。１つ以上の実施形態では、図８Ｃの方法及び／またはその１つ以上のステップは、コンピューティングデバイス（例えば、汎用コンピューティングデバイス２０１）によって実行され得る。他の実施形態では、図８Ｃに示す方法及び／またはその１つ以上のステップは、非一時的なコンピュータ可読メモリのような、コンピュータ可読媒体に記憶されたコンピュータに実行可能な命令において具現化され得る。
【０１４０】
図８Ｃに示すように、ステップ８５２では、モバイルデバイスは、モバイルアプリケーションがＤＮＳトンネリングプロトコルを使用するか否かを判定することができる。モバイルデバイスは、ステップ８０２で検査されたシステムコール及び／または通信プロトコルがＤＮＳのインジケータを含むか否かを監視することにより、モバイルＶＰＮシステムが、ＤＮＳトンネリングプロトコルを使用するか否かを判定することができる。例えば、モバイルデバイスは、既知のＤＮＳシステムコール、ＤＮＳクエリ、通信プロセス、及び／またはＤＮＳ通信プロトコルを示すフックについて、モバイルアプリケーションからの通信及び／またはシステムコールを検査することができる。モバイルアプリケーションがＤＮＳトンネリングプロトコルを使用しないと判定し、モバイルアプリケーションもＴＣＰまたはＵＤＰトンネリングプロトコルを使用しないと判定した場合、この方法は終了することができる。
【０１４１】
ステップ８５４では、モバイルアプリケーションがＤＮＳトンネリングプロトコルを使用すると判定する場合、モバイルデバイスは、モバイルアプリケーションからのシステムコール及びモバイルアプリケーションによって使用される任意のサードパーティーライブラリを傍受することができる。モバイルデバイスは、ＶＰＮネットワークに接続するための特定のＤＮＳシステムコールについて、モバイルアプリケーション及び／またはその関連するライブラリによって発行されたすべてのシステムコールを検査することができる。モバイルデバイスは、ＶＰＮネットワークに接続するためのすべてのシステムコールを識別し、またそのような傍受されたシステムコールに関連するすべてのアプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックを特定することもできる。
【０１４２】
ステップ８５６では、モバイルデバイスは、アプリケーション固有のプロキシサーバーを、ローカルドメインソケットで生成することができる。モバイルデバイスは、アプリケーション固有のＤＮＳプロキシサーバーが私設網にトンネリングされるトラフィックを受信することができるアプリケーションサンドボックスパスを生成することができる。モバイルデバイスは、管理されているアプリケーションのトラフィックを処理して、前記トラフィックを、アクセスゲートウェイを介して私設網にトンネリングするように構成されたプロキシサーバーにローカルソケットを生成することができる。モバイルデバイスはまた、アプリケーションサンドボックスで生成されたローカルソケットに通信可能に連結されたアプリケーション固有のプロキシサーバーを生成することもできる。アプリケーション固有のプロキシサーバーは、１つの管理されているアプリケーション専用に生成され、アクセスゲートウェイを介してそのトラフィックを私設網にトンネリングすることができる。アプリケーション固有のプロキシサーバーは、役割を果たすように構成された管理されているモバイルアプリケーションに対して行われたシステムコールを傍受するように構成され得る。アプリケーション固有のプロキシサーバーは、モバイルデバイスにアクセス可能な公衆網から私設網へのトラフィックのルーティングを処理することができるアクセスゲートウェイにソケットを生成することができる。モバイルデバイスは、アプリケーション固有のデーモンを、アプリケーション固有のＤＮＳプロキシサーバーで生成して、それに向けられたＤＮＳアプリケーショントラフィックのＤＮＳクエリを解決することができる。アプリケーション固有のプロキシサーバーでは、管理されているアプリケーションからのアプリケーションネットワークトラフィックは、アクセスゲートウェイを介して、私設網にトンネリングされるように再パケット化され得る。例えば、プロキシサーバーは、アプリケーションネットワークトラフィックのペイロードを抽出して、私設網と通信するアクセスゲートウェイによって使用されるＤＮＳプロトコルに従ってそれをフォーマットするように構成され得る。アクセスゲートウェイは、私設網に送信されるＤＮＳトンネリングプロトコルに従って再パケット化される着信ペイロードパケットを要求していることができる。したがって、アプリケーション固有のプロキシサーバーは、アクセスゲートウェイ及び／または私設網によって使用されるプロトコルを識別して、私設網に伝送するために正しくフォーマットされる着信アプリケーションネットワークトラフィックメッセージを再パケット化することができる。
【０１４３】
ステップ８５８では、モバイルデバイスは、アプリケーションサーバーとシステム全体のＤＮＳデーモンとの間にリンクを生成することができる。例えば、モバイルデバイスは、アプリケーション固有のプロキシＤＮＳサーバーとシステム全体のＤＮＳデーモンとの間にソケットを生成することができる。このようなリンクは、アプリケーション固有のＤＮＳデーモンが解決できない可能性のあるアプリケーショントラフィックを転送するために生成され、システム全体のＤＮＳデーモンの支援を必要とする可能性がある。
【０１４４】
ステップ８６０では、モバイルデバイスは、傍受されたシステムコールからのＤＮＳデーモンアドレスを特定することができる。このような傍受されたシステムコールに関連するＶＰＮ接続及び／またはアプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックは、システムコール及び／またはアプリケーショントラフィックが向けられるＤＮＳデーモンのアドレスを特定するために検査され得る。ＤＮＳトラフィック及び／またはシステムコールは、ＤＮＳデーモンによって解決される必要があるＤＮＳクエリを含み、ＤＮＳデーモンのパス及び／またはアドレスを含むことができる。
【０１４５】
ステップ８６２では、モバイルデバイスは、ＤＮＳデーモンアドレスとローカルドメインソケットへのアプリケーションサンドボックスパスを置換して、アプリケーション固有のプロキシサーバーに接続することができる。ステップ８６０で、傍受されたシステムコールからＤＮＳデーモンアドレス及び／またはパスを特定すると、モバイルデバイスは、システムコール及び／またはアプリケーションネットワークトラフィック内のＤＮＳデーモンのパスと、アプリケーション固有のＤＮＳデーモンが実行できるアプリケーションサンドボックスパスを置換することができる。モバイルデバイスは、アプリケーションがＶＰＮを介して送信されるシステムコール及び／またはアプリケーショントラフィックを生成して、対応する識別されたモバイルアプリケーションのアプリケーション固有ＤＮＳデーモンが実行しているアプリケーションプロキシサーバーを特定する。モバイルデバイスは、このようなシステムコール及び／または関連するアプリケーショントラフィックを、識別されたプロキシサーバーに向けることができる。
【０１４６】
ステップ８６４では、アプリケーション固有のＤＮＳデーモンのアプリケーションからのＤＮＳクエリは、ローカルドメインソケットで受信され得る。モバイルデバイスは、所与のアプリケーションのＤＮＳクエリ、システムコール、及び／またはアプリケーショントラフィックを転送するために使用するアプリケーション固有のプロキシサーバーを決定すると、モバイルデバイスは、そのモバイルアプリケーションからのＤＮＳクエリを、識別されたプロキシサーバーのアプリケーション固有のＤＮＳデーモンに転送する。アプリケーション固有のプロキシサーバーのローカルソケットは、このようなトラフィックメッセージを受信することができ、具体的には、このようなトラフィックメッセージに対するＤＮＳクエリを受信することができる。
【０１４７】
ステップ８６６では、モバイルデバイスは、アプリケーション固有のデーモンが受信されたＤＮＳクエリを解決するか否かを判定することができる。モバイルデバイスは、アプリケーション固有のプロキシサーバーに、ステップ８６４で受信したＤＮＳクエリを解決できるか否かを判定するように命令することができる。例えば、アプリケーション固有のＤＮＳデーモンは、アクセスゲートウェイによって使用されるポリシーを使用して、アプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックの関連するＤＮＳクエリを処理するように命令され得る。例えば、アプリケーション固有のＤＮＳデーモンは、対応するアプリケーションのアプリケーションサンドボックスパスを介して受信された、ＤＮＳ要求及び／または関連するアプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックがアプリケーション固有のＤＮＳデーモンによってローカルに解決され得るか否かを判定することができる。アクセスゲートウェイのポリシーに従ってさらに再フォーマットする必要があり、アプリケーション固有のＤＮＳデーモンで実行できないＤＮＳ要求は、システムレベルのＤＮＳデーモンに転送され得る。
【０１４８】
ステップ８６８では、アプリケーション固有のデーモンがＤＮＳクエリを解決できないという判定に応答して、モバイルデバイスは、ＤＮＳクエリを、システムレベルのＤＮＳデーモンに送信することができる。例えば、アプリケーション固有のＤＮＳデーモンは、ローカルドメインソケットから受信したアプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックを、ステップ８５８で生成されたリンク（例えば、ソケット）によってシステムレベルのＤＮＳパスにリダイレクトすることができる。アプリケーション固有のＤＮＳデーモンは、プロキシサーバーで解決できないアプリケーションネットワークトラフィック及び／ライブラリネットワークトラフィックのＤＮＳクエリ内の宛先パスを、システムレベルのＤＮＳパスの宛先パスと置換して、システムレベルのデーモンにトラフィックを送信することができる。アプリケーションネットワークトラフィック及び／ライブラリネットワークトラフィックがシステムレベルのＤＮＳデーモンに達すると、モバイルデバイスは、システムレベルのＤＮＳデーモンに、アクセスゲートウェイのポリシーに従ってアプリケーションネットワークトラフィック及び／またはライブラリネットワークトラフィックを処理及び／または再フォーマットして、アクセスゲートウェイを介して私設網に伝送するためにそのようなトラフィックを準備するように命令することができる。システムレベルのＤＮＳデーモンは、アプリケーション固有のＤＮＳデーモンがこのようなリダイレクトされたトラフィックパケットに対して実行しなかったＤＮＳクエリを解決することができる。
【０１４９】
ステップ８７０では、アプリケーション固有のデーモンがＤＮＳクエリを解決することができるという判定に応答して、モバイルデバイスは、アプリケーション固有のプロキシサーバーのアプリケーション固有のデーモンに、アクセスゲートウェイのＶＰＮプロトコルに従ってＤＮＳクエリを解決するように命令することができる。例えば、アプリケーション固有のデーモンは、トラフィックがアドレス指定されるべき私設網の宛先ネットワークアドレスを指定することができる。アプリケーション固有のデーモンは、アクセスゲートウェイを介してアプリケーショントラフィックを私設網に転送するために、アクセスゲートウェイによって使用されるＤＮＳ及び／または通信プロトコルに従って受信されたアプリケーショントラフィックのペイロードを再パケット化することができる。
【０１５０】
ステップ８７２では、モバイルデバイスは、ＤＮＳ解決時に、アプリケーション固有のプロキシサーバーからアクセスゲートウェイにアプリケーショントラフィックを送信することができる。アプリケーショントラフィックが適切にフォーマット及び解決されると、モバイルデバイスは、プロキシサーバーに、再パケット化されたアプリケーショントラフィックをアクセスゲートウェイに送信するように命令することができる。アクセスゲートウェイは、アプリケーショントラフィックを私設網に送信するように、モバイルデバイスによって命令され得る。
【０１５１】
主題は、構造的特徴及び／または方法的な作用に特化した言語で説明されたが、付属の請求項において定義された主題は、上記で説明された特定の機能または作用に必ずしも限定されないことが理解されるべきである。むしろ、上記で説明された特定の特徴及び作用は、下記の請求項の例示の実施例として説明される。
【０１５２】
関連出願の相互参照
本出願は、「ＭＩＣＲＯ  ＶＰＮ  ＴＵＮＮＥＩＮＧ  ＦＯＲ  ＭＯＢＩＬＥ  ＰＬＡＴＦＯＲＭ」と題する、２０１５年５月１１日に出願された。米国非仮特許出願第１４／７０８，４６４号の優先権を主張するこの先行出願は、その全体が参照により本明細書に組み込まれる。
【図１】
0006594449.tif 000002
【図２】
0006594449.tif 000003
【図３】
0006594449.tif 000004
【図４】
0006594449.tif 000005
【図５】
0006594449.tif 000006
【図６】
0006594449.tif 000007
【図７】
0006594449.tif 000008
【図８Ａ】
0006594449.tif 000009
【図８Ｂ】
0006594449.tif 000010
【図８Ｃ】
0006594449.tif 000011