JP6594449B2 - モバイルプラットフォーム用のマイクロvpnトンネリング - Google Patents

モバイルプラットフォーム用のマイクロvpnトンネリング

Info

Publication number
JP6594449B2
JP6594449B2 JP2017559447A JP2017559447A JP6594449B2 JP 6594449 B2 JP6594449 B2 JP 6594449B2 JP 2017559447 A JP2017559447 A JP 2017559447A JP 2017559447 A JP2017559447 A JP 2017559447A JP 6594449 B2 JP6594449 B2 JP 6594449B2
Authority
JP
Japan
Prior art keywords
application
private network
processor
server
mobile
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017559447A
Other languages
English (en)
Other versions
JP2018525858A (ja
Inventor
カリグッド,ヴァギシュ
Original Assignee
サイトリックス システムズ,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by サイトリックス システムズ,インコーポレイテッド filed Critical サイトリックス システムズ,インコーポレイテッド
Publication of JP2018525858A publication Critical patent/JP2018525858A/ja
Application granted granted Critical
Publication of JP6594449B2 publication Critical patent/JP6594449B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/825Involving tunnels, e.g. MPLS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/12Setup of transport tunnels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本明細書に記載の態様は、一般に、モバイルコンピューティングデバイスのためのモバイルアプリケーションに関する。より具体的には、本明細書に記載の態様は、アプリケーションごとに、モバイルデバイスにセキュアなトンネリングを提供するための技術に関する。
ますます多くの人々が、個人的に及びビジネスシーンで様々な目的のためにモバイルデバイスを使用している。会社のリソースにアクセスするために、従業員はこれらのデバイスを時には遠隔地や普段と違う場所からアクセスすることがしばしばある。企業や他の組織はますます、スマートフォン、タブレットコンピュータ、及び他のモバイルコンピューティングデバイスなどのモバイルデバイスを提供し、及び/または従業員やその他の関係者がスマートフォン、タブレットコンピュータ、及び他のモバイルコンピューティングデバイスなどのモバイルデバイスの機能を有効にすることができる。これらのデバイスの人気が高まり続け、ビジネスアプリケーションがますます増えつつあるため、事業者モバイルアプリケーションは、従業員に、彼らのモバイルデバイスからネットワーク化されたエンタープライズアプリケーションにアクセスする手段を提供している。
多くのモバイルユーザーは、仮想私設網(VPN)を介して、モバイルデバイスから私設網上で実行されている企業サーバーに接続する。従来のVPNシステムは、モバイルデバイスからモバイルアプリケーションによって発行されたすべてのネットワークトラフィックが私設網に送られるように、デバイスレベルのVPN接続を使用する。このような従来のデバイスレベルのVPNシステムでは、プライベートネットワークの任意の部分と通信する必要のないモバイルデバイス上で実行しているアプリケーションからネットワークアドレスを公開する可能性が高いアプリケーショントラフィックもまた自動的に傍受される。このような私設網宛てでないアプリケーショントラフィックの傍受は、不必要にVPN接続及びデバイスバッテリに負担を与え、しばしばエンドユーザにプライバシーリスクをもたらす。従来のデバイスレベルのVPNシステムでは、パケットが傍受される必要のない非エンタープライズアプリケーションを含むモバイルデバイス上にインストールされたすべてのアプリケーションからパケットが傍受される。このようなエンタープライズVPNシステムによるモバイルデバイス上での個人的なアプリケーションの傍受は、個々のモバイルユーザーの私的なアプリケーションデータが、企業のデバイスレベルのVPNによって傍受されているため、プライバシーに関する懸念を引き起こす。さらに、従来のデバイスレベルのVPNシステムでは、各モバイルアプリケーションは、パケット傍受及びトンネリングネットワークインターフェースを作成することに、モバイルデバイスのオペレーティングシステムに依存しており、このようなシステムでは、すべてのネットワークトラフィックを傍受してトンネリングする必要がある特定の時間において、1つのデバイスレベルのVPNしか実行できない。
以下に、本明細書に記載の種々の態様の簡易要約を提示する。本要約は、詳細な概要ではなく、主要もしくは重大な要素を特定するか、または特許請求の範囲を描写することを意図するものではない。以下の要約は単に、下記で提供されるより詳細な説明に対する紹介用の前置きとして、簡易形態でいつくかの概念を提示する。
上述した従来技術における制限を克服し、本明細書を読んで理解することによって明らかになるであろう他の制限を克服するために、本明細書に記載の態様は、アプリケーションごとにモバイルデバイスにセキュアなトンネリングを提供することに向けられる。
本明細書に記載の第1の態様は、モバイルデバイス上で実行しているモバイルアプリケーションが私設網との通信を要求していることを判定する方法を提供する。モバイルデバイス上で実行されるモバイルアプリケーションによって発行された、私設網と通信するための、1つ以上のシステムコールが傍受される可能性がある。仮想私設網(VPN)サーバーへの通信リンクは、モバイルアプリケーションから、私設網へ通信を送信するモバイルデバイスのポート上で生成され得る。VPNサーバーは、1つ以上のメッセージを、私設網に転送するために、モバイルアプリケーションからアクセスゲートウェイに送信するように命令され得る。
幾つかの実施形態では、1つ以上のシステムコールに関連付けられた少なくとも1つのメッセージの宛先ネットワークアドレスを特定することができる。モバイルアプリケーションから、私設網に通信をルーティングするために使用されるポートは、宛先ネットワークアドレスをモバイルデバイスのポートにマッピングすることによって特定することができ、識別されたポートが、マッピングにおける少なくとも1つのメッセージの宛先ネットワークアドレスに対応するようになっている。
幾つかの実施形態では、ポートはモバイルデバイスの動的ポートであり得る。動的ポートは、私設網と通信することを要求している複数のモバイルアプリケーションの各々に、異なる動的ポートをアサインすることによって、モバイルアプリケーションからの通信をルーティングするために使用されるように割り当てることができる。VPNサーバーは、伝送制御プロトコル(TCP)サーバーであり得る。VPNサーバーへの通信リンクを生成するには、動的ポート上にTCPサーバーが生成され、動的ポートとTCPサーバー間にTCP接続が生成され得る。
幾つかの実施形態では、1つ以上のメッセージが複数の異なるネットワークアドレス宛てであると判定され得る。複数のTCPサーバーの各TCPサーバーがモバイルデバイスの異なる動的ポート上で生成され、複数の異なるネットワークアドレスの各々について、複数の動的ポートの各動的ポートがモバイルアプリケーションから私設網に通信を送信するために生成されるように、複数のTCPサーバーが生成され得る。各TCP接続が、複数の動的ポートの各々のモバイルアプリケーションから私設網に通信を送信する、通信リンクに対応するように、複数のTCP接続を生成することができる。
幾つかの実施形態では、ポートはモバイルデバイスの固定ポートであり得、VPNサーバーは、ユーザデータグラムプロトコル(UDP)サーバーであり得る。VPNサーバーへの通信リンクを生成するには、固定ポート上でUDPサーバーが生成され、固定ポートとUDPサーバー間でUDP接続が生成されることがある。
幾つかの実施形態では、モバイルアプリケーションからの1つ以上のメッセージが私設網宛てであると判定され得る。1つ以上のメッセージのペイロードは、モバイルデバイスのポートでVPNサーバーに送信され得る。
幾つかの実施形態では、モバイルアプリケーションからアクセスゲートウェイへ1つ以上のメッセージを送信するようにVPNサーバーに命令するために、VPNサーバーは、1つ以上のメッセージを私設網に送信するために使用される通信リンクのトンネリングプロトコルに従って、1つ以上のメッセージから1つ以上のパケットを生成するように命令され得る。VPNサーバーは、トンネリングプロトコルに従って処理された1つ以上のパケットを、通信リンクを介して私設網に送信するように命令され得る。
本明細書に記載の別の態様は、ドメインネームシステム(DNS)のメッセージを私設網にトンネリングする方法を提供する。モバイルデバイス上で実行されているモバイルアプリケーションが、私設網と通信することを要求していると判定することができる。モバイルデバイス上で実行されるモバイルアプリケーションによって発行された私設網と通信するために、1つ以上のシステムコールが傍受される可能性がある。1つ以上のシステムコールがドメインソケットパスにアドレス指定されているという決定に応じて、1つ以上のシステムコールのドメインソケットパスを、モバイルアプリケーションに対応するサンドボックスパスに置換することができる。通信リンクは、モバイルアプリケーションから私設網へ通信を送信するサンドボックスパスのVPNサーバーに生成され得る。VPNサーバーは、1つ以上のメッセージを私設網に転送することについて、モバイルアプリケーションからアクセスゲートウェイに送信するように命令され得る。
幾つかの実施形態では、1つ以上のシステムコールが、システムレベルのDNSプロセスに宛てられた少なくとも1つのDNSクエリを含むと判定され得る。1つ以上のシステムコールのドメインソケットパスをサンドボックスパスと置換するには、モバイルアプリケーションから私設網に通信を送信するローカルドメインソケットでサンドボックスパスを生成することができる。VPNサーバーがローカルドメインソケットに通信可能に連結されるように、そのモバイルアプリケーションに対するVPNサーバーを生成することができる。
幾つかの実施形態では、アプリケーション固有のDNSプロセスが、ローカルドメインソケットに通信可能に連結されたVPNサーバーで生成され得る。1つ以上のシステムコールに関連付けられた少なくとも1つのメッセージの宛先ネットワークアドレスを特定することができる。少なくとも1つのメッセージは、DNS解決のために、ローカルドメインソケットに通信可能に連結されたVPNサーバーに送信され得る。VPNサーバーのアプリケーション固有のDNSプロセスは、1つ以上のメッセージを私設網に転送するために、アクセスゲートウェイに送信するように命令され得る。少なくとも1つのDNSクエリがシステムレベルのDNSプロセスによって解決される必要があると判定したことに応答して、1つ以上のシステムコールに関連付けられた少なくとも1つのメッセージを、DNS解決のためにシステムレベルのDNSプロセスに送信することができる。
幾つかの実施形態では、モバイルアプリケーションからアクセスゲートウェイへ1つ以上のメッセージを送信するようにVPNサーバーに命令するために、サンドボックスパスのVPNサーバーは、1つ以上のメッセージを私設網に送信するために使用される通信リンクのDNSプロトコルに従って、1つ以上のパケットを1つ以上のメッセージから生成するように命令され得る。VPNサーバーは、DNSプロトコルに従って処理された1つ以上のパケットを、通信リンクを介して私設網に送信するように命令され得る。
幾つかの実施形態では、モバイルデバイス上で実行している複数の異なるモバイルアプリケーションからの複数の異なるメッセージが私設網宛てであると判定され得る。複数のサンドボックスパスの各サンドボックスパスが、複数のローカルドメインソケットのうちの異なるローカルドメインソケットで生成され、複数の異なるモバイルアプリケーションから私設網に通信を送信するように、複数のサンドボックスパスが生成され得る。複数のVPNサーバーの各々が複数のローカルドメインソケットの対応するローカルドメインソケットに通信可能に連結されるように、モバイルアプリケーションに対する複数のVPNサーバーを生成することができる。各アプリケーション固有のDNSプロセスが、複数のローカルドメインソケットの対応するローカルドメインソケットに通信可能に連結された複数のVPNサーバーの対応するVPNサーバーで実行しているように、複数のアプリケーション固有のDNSプロセスを生成することができる。
本明細書で説明される付加的態様は、1つ以上のプロセッサ、1つ以上のディスプレイスクリーン、及びプロセッサのうちの少なくとも1つによって実行されると、コンピューティングデバイスに上記の方法を実行させるという命令を記憶するメモリを有する装置を提供する。
これら及び追加の態様は、下記のさらなる詳細で論じられる開示により理解されるであろう。
本明細書に記載の態様及びこれらの利点をより詳細に理解することは、添付図面を考慮した以下の説明を参照することによって得ることができ、この中で、参照番号などは特性などを指す。
本明細書に記載の1つ以上の例示的な態様に従って使用され得る例示的なコンピュータシステムアーキテクチャを示す。 本明細書に記載の1つ以上の例示的な態様に従って使用され得る例示的な遠隔アクセスシステムアーキテクチャを示す。 本明細書に記載の1つ以上の例示的な態様による、例示的な企業モビリティ管理システムを示す。 本明細書に記載の1つ以上の例示的な態様による、別の例示的な企業モビリティ管理システムを示す。 本明細書に記載の1つ以上の例示的な態様による、TCPトンネリングプロトコルを使用してモバイルVPNを管理する例示的なモバイルアプリケーションVPNシステムを示す。 本明細書に記載の1つ以上の例示的な態様による、UDPトンネリングプロトコルを使用してモバイルVPNを管理する例示的なモバイルアプリケーションVPNシステムを示す。 本明細書に記載の1つ以上の例示的な態様による、DNSトンネリングプロトコルを使用してモバイルVPNを管理する例示的なモバイルアプリケーションVPNシステムを示す。 本明細書に記載の1つ以上の例示的な態様による、アプリケーションごとにモバイルTCP VPN接続を生成する方法を解説するフローチャートを示す。 本明細書に記載の1つ以上の例示的な態様による、アプリケーションごとにモバイルUDP VPN接続を生成する方法を解説するフローチャートを示す。 本明細書に記載の1つ以上の例示的な態様による、アプリケーションごとにモバイルDNS VPN接続を生成する方法を解説するフローチャートを示す。
種々の実施形態の以下の説明において、上記で特定された添付図面に対する参照がなされ、これらは、本明細書の一部を形成し、その中で、本明細書に記載の態様が実施され得る種々の実施形態の説明として示される。他の実施形態が利用され得、かつ構造的及び機能的な変形が本明細書に記載の範囲を逸脱することなくなされ得ることが理解されるべきである。種々の態様は、他の実施形態が可能であり、種々の異なる手法で実施または実行されることが可能である。
以下でより詳細に説明される主題の一般的な紹介として、本明細書で説明する態様は、モバイルデバイス上で実行している移動式事業者のアプリケーションから、モバイルデバイスが利用できる公衆網接続を介して、事業者の私設網にモバイルVPN接続を生成することに向けられる。デバイスからのすべてのアウトバウンドトラフィックを傍受する従来のデバイスレベルのVPN接続とは異なり、本明細書に記載のモバイルVPN接続は、管理されているアプリケーションのみのトラフィックを傍受してトンネリングすることができる。モバイルデバイス管理(MDM)プロファイルまたはモバイルアプリケーション管理(MAM)ポリシーは、モバイルデバイス上にインストールされたモバイルアプリケーションが、事業者の私設網へのモバイルVPN接続の生成に適していることを指定する。いったん生成されると、以下マイクロVPN及び/またはマイクロVPNとも呼ばれるモバイルVPN接続は、1つ以上の指定されている事業者モバイルアプリケーションから事業者の私設網へのトラフィックをトンネリングするだけである。他のモバイルアプリケーションからのトラフィックは、事業者モバイルアプリケーション用に生成されたモバイルVPNを介して傍受されることも、トンネリングされることもない。複数のモバイルVPN接続は、複数の移動式事業者アプリケーションを有するモバイルデバイス上で同時に動作することができ、各モバイルVPN接続は、特定の通信プロトコルに従って、それぞれの事業者モバイルアプリケーション用のデータをトンネリングする。開示の全体を通じて、このようなアプリケーションごとのモバイルVPNを生成する異なる実装形態が説明される。異なるモバイルアプリケーションは、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、及びドメインネームシステム(DNS)アドレス指定プロトコルなどの異なるデータ転送/通信プロトコルを使用して、データを通信することができる。マイクロVPNを生成するシステムアーキテクチャ及び方法は、これらのデータ転送プロトコルの各々に応じて異なる場合がある。
現在のVPNシステムは、単一デバイスレベルのVPN接続を介して、デバイス(例えば、モバイルデバイス)上で実行しているすべてのアプリケーションからトラフィックを傍受する。このような従来のVPNシステムでは、エンタープライズアプリケーションと同様にパケットを傍受する必要のない非エンタープライズアプリケーションからパケットが傍受される。加えて、現在のVPNシステムは、システムレベルのデーモンを使用して、管理されているアプリケーションと管理されていないアプリケーションの両方からのすべてのパケットを傍受する。このようなシステムレベルのデーモンによるパケットの連続的な傍受は、バッテリの消耗を引き起こす。しかしながら、本明細書に記載のモバイルVPNの実装形態は、管理されているアプリケーション、管理されているアプリケーションと、サードパーティーのライブラリ間で交換されるシステムコール及びすべてのアプリケーショントラフィック(直接及び間接の両方)が宛先に確実にトンネリングされるように、エンタープライズモバイルアプリケーションが参照するサードパーティーライブラリによって発行された任意のシステムコールからの低レベルのシステムコールを傍受する。
本明細書で使用される語法及び用語法は、説明の目的のためであり、限定するものとみなされるべきではないことが理解されるべきである。その代わりに、本明細書で使用される語句及び用語には、それらの最も広い解釈及び趣旨が所与されるべきである。「含む(including)」及び「含む(comprising)」、ならびにそれらの派生語の使用は、これ以降に列挙される項目及びその等価物、ならびに追加の項目及びその等価物を包含することを意味するものである。用語「装着される(mounted)」、「接続される(connected)」、「連結される(coupled)」、「位置付けられる(positioned)」、「係合される(engaged)」、ならびに同様の用語は、直接と間接との両方で装着する、接続する、連結する、位置付ける、及び係合することを意味するものである。
〈コンピューティングアーキテクチャ〉
コンピュータのソフトウェア、ハードウェア、及びネットワークは、とりわけ、スタンドアロン環境、ネットワーク化された環境、遠隔アクセス(別名遠隔デスクトップ)環境、仮想化環境、及び/またはクラウドベースの環境を含む、種々の異なるシステム環境において利用され得る。図1は、スタンドアロン環境及び/またはネットワーク化された環境において、本明細書に記載の1つ以上の例示的な態様を実装するために使用され得る、システムアーキテクチャ及びデータ処理デバイスの一例を説明する。種々のネットワークノード103、105、107、及び109は、インターネットなどのワイドエリアネットワーク(WAN)101を介して相互接続され得る。専用イントラネット、企業ネットワーク、LAN、メトロポリタンエリアネットワーク(MAN)、無線ネットワーク、パーソナルネットワーク(PAN)などを含む、他のネットワークも使用され得るか、または代替的に使用され得る。ネットワーク101は、例示目的のためであり、少数または追加のコンピュータネットワークと置換され得る。ローカルエリアネットワーク(LAN)は、1つ以上の任意の既知のLANトポロジーを有し得、イーサネット(登録商標)など1つ以上の種々の異なるプロトコルを使用し得る。デバイス103、105、107、109、及び他のデバイス(図示せず)は、ツイストペア配線、同軸ケーブル、光ファイバー、電波、または他の通信媒体を介して1つ以上のネットワークに接続され得る。
用語「ネットワーク」は、本明細書で使用され、かつ図面に示されるとき、システム内で遠隔ストレージデバイスが1つ以上の通信経路を介して一緒に連結されるシステムだけでなく、ストレージ能力を有するシステムなどにしばしば連結され得るスタンドアロン型デバイスも意味する。したがって、用語「ネットワーク」は、「物理ネットワーク」だけでなく、物理ネットワーク全体に存在する(単一のエンティティに帰属可能な)データから構成される「コンテンツネットワーク」も含む。
コンポーネントは、データサーバー103、ウェブサーバー105、及びクライアントコンピュータ107、109を含み得る。データサーバー103は、本明細書に記載の1つ以上の例示的な態様を行うためのデータベース及び制御ソフトウェアの全体のアクセス、制御、及び管理を提供する。データサーバー103は、ユーザがデータと相互作用し、必要に応じてデータを取得するためのウェブサーバー105に接続され得る。代替的に、データサーバー103は、ウェブサーバー自体として機能してもよく、インターネットに直接接続されてもよい。データサーバー103は、直接もしくは間接的な接続を介して、または幾つかの他のネットワークを介して、ネットワーク101(例えば、インターネット)経由でウェブサーバー105に接続され得る。ユーザは、遠隔コンピュータ107、109を使用して、例えば、ウェブサーバー105によってホスティングされた1つ以上の外部に露出されたウェブサイトを介して、データサーバー103に接続するためのウェブブラウザを使用して、データサーバー103と相互作用し得る。クライアントコンピュータ107、109は、データサーバー103に格納されたデータにアクセスするようにデータサーバー103と協調して使用され得るか、または他の目的のために使用され得る。例えば、クライアントデバイス107から、ユーザは、当該技術分野で既知のように、インターネットブラウザを使用して、またはウェブサーバー105及び/もしくはデータサーバー103とコンピュータネットワーク(インターネットなど)上で通信するソフトウェアアプリケーションを実行していることによって、ウェブサーバー105にアクセスし得る。
サーバー及びアプリケーションは、同じ物理マシン上で組み合わせされてもよく、別個の仮想アドレスもしくは論理アドレスを保持してもよく、または別個の物理マシン上に存在してもよい。
図1は、使用され得るネットワークアーキテクチャの一例のみを説明するものであり、本明細書でさらに記載されるように、使用される具体的なネットワークアーキテクチャ及びデータ処理デバイスが変更されてもよく、それらが提供する機能には二次的なものであるということを当業者は理解するであろう。例えば、ウェブサーバー105及びデータサーバー103によって提供されるサービスは、単一のサーバー上で組み合わされ得る。
各コンポーネント103、105、107、109は、任意のタイプの既知のコンピュータ、サーバー、またはデータ処理デバイスであり得る。データサーバー103は、例えば、レートサーバー103の全体の動作を制御するプロセッサ111を含み得る。データサーバー103は、ランダムアクセスメモリ(RAM)113、リードオンリーメモリ(ROM)115、ネットワークインターフェース117、入出力インターフェース119(例えば、キーボード、マウス、ディスプレイ、プリンタなど)、及びメモリ121をさらに含み得る。入出力(I/O)119は、データまたはファイルを読み取り、書き込み、表示し、及び/または印刷するための種々のインターフェースユニット及びドライブを含み得る。メモリ121は、データ処理デバイス103の全体の動作を制御するためのオペレーティングシステムソフトウェア123、本明細書に記載の態様を行うようにデータサーバー103に命令するための制御論理125、及び本明細書に記載の態様と共に使用されてもよいか、または使用されなくてもよい二次的なサポート及び/または他の機能を提供する他のアプリケーションソフトウェア127をさらに含み得る。制御論理はまた、データサーバーソフトウェア125としても本明細書では称され得る。データサーバーソフトウェアの機能は、制御論理に符号化された規則に基づいて自動的になされる動作または決定、入力をシステムに提供するユーザによって手動でなされる動作または決定、及び/またはユーザ入力(例えば、クエリ、データ更新など)に基づいた自動処理の組み合わせによってなされる動作または決定を意味する。
メモリ121は、第1のデータベース129及び第2のデータベース131など、本明細書で説明される1つ以上の態様の実行において使用されるデータも記憶し得る。幾つかの実施形態おいて、第1のデータベースは、第2のデータベースを(例えば、別個のテーブル、レポートなどとして)含み得る。つまり、情報を、単一のデータベースに格納できるか、またはシステム設計に依存して、異なる論理データベース、仮想データベース、もしくは物理データベースに分散できる。デバイス105、107、109は、デバイス103に関して記載されるように、同様のまたは異なるアーキテクチャを有し得る。本明細書に記載のデータ処理デバイス103(またはデバイス105、107、109)の機能が、例えば、複数のコンピュータにわたって処理負荷を分配したり、地理的な位置、ユーザアクセスレベル、サービス品質(QoS)などに基づいてトランザクションを分離したりするために、複数のデータ処理デバイスにわたって分散され得ることを当業者は理解するであろう。
1つ以上の態様は、1つ以上のコンピュータまたは本明細書に記載の他のデバイスによって実行される1つ以上のプログラムモジュールにおいてなど、コンピュータ使用可能データもしくは可読データ及び/またはコンピュータ実行可能命令において具現化され得る。一般に、プログラムモジュールは、コンピュータまたは他のデバイス内のプロセッサによって実行されたときに、特定のタスクを実行しているか、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。モジュールは、実行用に後でコンパイルされるソースコードプログラミング言語で書き込まれ得るか、または(限定はされないが)ハイパーテキストマークアップ言語(HTML)もしくは拡張可能マークアップ言語(XML)などのスクリプト言語で書き込まれ得る。コンピュータ実行可能命令は、不揮発性ストレージデバイスなどのコンピュータ可読媒体に格納され得る。ハードディスク、CD−ROM、光学ストレージデバイス、磁気ストレージデバイス、及び/またはこれらの任意の組み合わせを含む、任意の好適なコンピュータ可読ストレージ媒体が利用され得る。加えて、本明細書に記載のデータまたはイベントを表す種々の伝送(非ストレージ)媒体は、金属配線、光ファイバー、及び/または無線伝送媒体(例えば、空気及び/または空間)などの信号伝導媒体を経由して移動する電磁波の形態で、送信元と送信先との間で転送され得る。本明細書に記載の種々の態様は、方法、データ処理システム、またはコンピュータプログラム製品として具現化され得る。したがって、種々の機能が、ソフトウェア、ファームウェア、及び/またはハードウェアもしくは集積回路などのハードウェア等価物、フィールドプログラマブルゲートアレイ(FPGA)などの全体または一部において具現化され得る。特定のデータ構造を使って、本明細書に記載の1つ以上の態様をより効率的に実装してもよく、かかるデータ構造は、本明細書に記載のコンピュータ実行可能命令及びコンピュータ使用可能データの範囲内であると企図される。
図2をさらに参照すると、本明細書に記載の1つ以上の態様は、遠隔アクセス環境で実装され得る。図2は、本明細書に記載の1つ以上の例示的な態様に従って使用され得る例示的なコンピューティング環境200における汎用コンピューティングデバイス201を含むシステムアーキテクチャの例を示す。汎用コンピューティングデバイス201は、管理されているアプリケーションへのアクセスをそのユーザにセキュアな環境で提供するように構成されたモバイルコンピューティングデバイスであってもよい。汎用コンピューティングデバイス201は、サーバー、ならびにRAM205、ROM207、I/Oモジュール209、及びメモリ215を含むサーバー関連のコンポーネントの全体の動作を制御するためのプロセッサ203を有し得る。
I/Oモジュール209としては、汎用コンピューティングデバイス201のユーザが入力を提供し得るためのマウス、キーパッド、タッチ画面、スキャナ、光学読取デバイス、及び/またはスタイラス(または他の入力デバイス(複数可))が挙げられ、また、音声出力を提供するための1つ以上のスピーカ、ならびにテキスト出力、視聴覚出力、及び/またはグラフィカルな出力を提供するための映像ディスプレイデバイスも挙げられる。ソフトウェアは、メモリ215及び/または他のストレージデバイス内に格納されて、本明細書に記載の種々の機能を行うために、汎用コンピューティングデバイス201を専用コンピューティングデバイスに構成するために命令をプロセッサ203に提供し得る。例えば、メモリ215は、オペレーティングシステム217、アプリケーションプログラム219、及び関連付けられたデータベース221などのコンピューティングデバイス201によって使用されるソフトウェアを格納してもよい。
コンピューティングデバイス201は、端末240などの1つ以上の遠隔コンピュータ(クライアントデバイスとも称される)への接続をサポートするネットワーク化された環境内で動作し得る。端末240は、汎用コンピューティングデバイス103または201に対して、上に記載の要素の多くまたはすべてを含むパーソナルコンピュータ、モバイルデバイス、ラップトップ型コンピュータ、タブレット、またはサーバーであり得る。図2に示されるネットワーク接続には、ローカルエリアネットワーク(LAN)225及びワイドエリアネットワーク(WAN)229が含まれるが、他のネットワークを含むこともできる。LANネットワーキング環境で使用される場合、コンピューティングデバイス201は、ネットワークインターフェースまたはアダプタ223を経由してLAN225に接続され得る。WANネットワーキング環境で使用される場合、コンピューティングデバイス201は、コンピュータネットワーク230(例えば、インターネット)などのWAN229上で通信を確立するためのモデム227または他のワイドエリアネットワークインターフェースを含み得る。示されるネットワーク接続が例示的なものであり、通信リンクをコンピュータ間に確立する他の手段が使用され得るということが理解されるであろう。コンピューティングデバイス201及び/または端末240はまた、バッテリ、スピーカ、及びアンテナ(図示せず)など種々の他のコンポーネントを含むモバイル端末(例えば、携帯電話、スマートフォン、パーソナルデジタルアシスタント(PDA)、ノート型パソコンなど)でもあり得る。
本明細書に記載の態様はまた、多くの他の汎用または専用コンピューティングシステムの環境または構成でも動作可能であり得る。本明細書に記載の態様での使用のために好適であり得る他のコンピューティングシステム、環境、及び/または構成の実施例としては、限定はされないが、パーソナルコンピュータ、サーバーコンピュータ、携帯型またはラップトップ型デバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家電製品、ネットワークパーソナルコンピュータ(PC)、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスなどのいずれかを含む分散型コンピューティング環境が挙げられる。
図2に示されるように、1つ以上のクライアントデバイス240は、1つ以上のサーバー206a〜206n(「サーバー206(複数可)」として本明細書では概して称される)と通信し得る。一実施形態において、コンピューティング環境200は、サーバー206(複数可)とクライアントマシン240(複数可)との間に設置されるネットワーク機器を含み得る。ネットワーク機器は、クライアント/サーバー接続を管理し得、場合によって、複数のバックエンドサーバー206間でクライアント接続の負荷を分散することができる。
クライアントマシン240(複数可)は、幾つかの実施形態において、単一のクライアントマシン240または単一グループのクライアントマシン240と称され得る一方、サーバー206(複数可)は、単一のサーバー206または単一グループのサーバー206と称され得る。一実施形態において、単一のクライアントマシン240は、2つ以上のサーバー206と通信するが、別の実施形態では、単一のサーバー206は、2つ以上のクライアントマシン240と通信する。また別の実施形態では、単一のクライアントマシン240は、単一のサーバー206と通信する。
クライアントマシン240は、幾つかの実施形態において、完全に網羅しているわけではないが、クライアントマシン(複数可)、クライアント(複数可)、クライアントコンピュータ(複数可)、クライアントデバイス(複数可)、クライアントコンピューティングデバイス(複数可)、ローカルマシン、遠隔マシン、クライアントノード(複数可)、エンドポイント(複数可)、またはエンドポイントノード(複数可)といった用語のいずれか1つによって参照することができる。サーバー206は、幾つかの実施形態において、完全に網羅しているわけではないが、サーバー(複数可)、ローカルマシン、遠隔マシン、サーバーファーム(複数可)、またはホストコンピューティングデバイス(複数可)といった用語のいずれか1つによって参照され得る。
一実施形態において、クライアントマシン240は、仮想マシンであり得る。仮想マシンは、任意の仮想マシンであり得るが、幾つかの実施形態では、仮想マシンは、例えば、Citrix Systems、IBM、VMwareによって開発されたハイパーバイザーなどのタイプ1もしくはタイプ2のハイパーバイザー、または任意の他のハイパーバイザーによって管理される任意の仮想マシンであってもよい。幾つかの態様において、仮想マシンは、ハイパーバイザーによって管理され得るが、態様では、仮想マシンは、サーバー206上で実行しているハイパーバイザーまたはクライアント240上で実行しているハイパーバイザーによって管理されてもよい。
幾つかの実施形態では、サーバー206または他の遠隔に位置するマシン上で遠隔で実行しているアプリケーションによって生成されるアプリケーション出力を表示するクライアントデバイス240が含まれる。これらの実施形態では、クライアントデバイス240は、仮想マシンの受信側プログラム(receiver program)またはアプリケーションを実行して、アプリケーションウィンドウ、ブラウザ、または他の出力ウィンドウに出力を表示し得る。一実施例において、アプリケーションは、デスクトップであるが、他の実施例では、アプリケーションは、デスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルアプリケーション及び/または遠隔アプリケーションを組み込むことができるオペレーティングシステムのインスタンス用のユーザインターフェースを提供するグラフィカルシェルを含み得る。アプリケーションは、本明細書で使用されるとき、オペレーティングシステム(及び任意選択でデスクトップも)のインスタンスがロードされた後で実行しているプログラムである。
サーバー206は、幾つかの実施形態において、遠隔プレゼンテーションプロトコルまたは他のプログラムを使用して、データを、クライアント上で実行しているシンクライアントまたは遠隔ディスプレイアプリケーションに送信し、サーバー206上で実行しているアプリケーションによって生成されるディスプレイ出力を提示する。シンクライアントまたは遠隔ディスプレイプロトコルは、完全に網羅しているわけではないが、フロリダ州フォートローダーデールのCitrix Systems,Inc.によって開発されたIndependent Computing Architecture(ICA)プロトコル、またはワシントン州レドモンドのMicrosoft Corporationによって製造されたRemote Desktop Protocol(RDP)といった、プロトコルリストのうちのいずれか1つであり得る。
遠隔コンピューティング環境は、サーバー206a〜206nが、サーバーファーム206、例えば、クラウドコンピューティング環境に、論理的に一緒にグループ化されるように、2つ以上のサーバー206a〜206nを含み得る。サーバーファーム206は、地理的に分散される一方、論理的にグループ化されるサーバー206、または互いに近接して位置する一方、論理的にグループ化されるサーバー206を含み得る。サーバーファーム206内の地理的に分散されたサーバー206a〜206nは、幾つかの実施形態において、WAN(ワイド)、MAN(メトロポリタン)、またはLAN(ローカル)を使用して通信することができ、その場合、異なる地理的領域は、異なる大陸、大陸の異なる領域、異なる国、異なる州、異なる都市、異なるキャンパス、異なる部屋、または前述の地理的位置の任意の組み合わせとして特徴付けることができる。幾つかの実施形態において、サーバーファーム206は、単一のエンティティとして管理され得るが、他の実施形態では、サーバーファーム206は、複数のサーバーファームを含むことができる。
幾つかの実施形態では、サーバーファームは、実質的に同様のタイプのオペレーティングシステムプラットフォーム(例えば、WINDOWS(登録商標)、UNIX(登録商標)、LINUX、iOS、ANDROID(登録商標)、SYMBIANなど)を実行しているサーバー206を含むことができる。他の実施形態において、サーバーファーム206は、第1のタイプのオペレーティングシステムプラットフォームを実行している1つ以上のサーバーの第1のグループと、第2のタイプのオペレーティングシステムプラットフォームを実行している1つ以上のサーバーの第2のグループとを含み得る。
サーバー206は、必要に応じて、例えば、ファイルサーバー、アプリケーションサーバー、ウェブサーバー、プロキシサーバー、機器、ネットワーク機器、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバー、仮想化サーバー、展開サーバー、セキュアなソケット層(SSL)VPNサーバー、ファイアウォール、ウェブサーバー、アプリケーションサーバーなどの任意のタイプのサーバーとして、あるいはマスタアプリケーションサーバー、アクティブディレクトリを実行しているサーバー、またはファイアウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション高速化プログラムを実行しているサーバーとして構成されてもよい。また他のタイプのサーバーが使用されてもよい。
幾つかの実施形態では、クライアントマシン240から要求を受信し、要求を第2のサーバー106bに転送し、第2のサーバー106bからの応答でクライアントマシン240によって生成された要求に応答する、第1のサーバー106aが含まれる。第1のサーバー106aは、クライアントマシン240に対して利用可能なアプリケーションのリスト、及びアプリケーションのリスト内で特定されたアプリケーションをホスティングするアプリケーションサーバー206と関連付けられたアドレス情報を獲得し得る。次いで、第1のサーバー106aは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、クライアント240と直接通信して、クライアント240に、特定されたアプリケーションへのアクセスを提供することができる。1つ以上のクライアント240及び/または1つ以上のサーバー206は、ネットワーク230、例えば、ネットワーク101上でデータを送信し得る。
図2は、デスクトップ仮想化システムのハイレベルアーキテクチャを示す。示されるように、デスクトップ仮想化システムは、仮想デスクトップ及び/または仮想アプリケーションを1つ以上のクライアントアクセスデバイス240に提供するように構成された少なくとも1つの仮想化サーバー206を含む、単一のサーバーシステムもしくは複数のサーバーシステム、またはクラウドシステムであってもよい。本明細書で使用されるとき、デスクトップは、1つ以上のアプリケーションがホスティング及び/または実行され得るグラフィカル環境または空間を意味する。デスクトップは、ローカルアプリケーション及び/または遠隔アプリケーションを組み込むことができるオペレーティングシステムのインスタンス用のユーザインターフェースを提供するグラフィカルシェルを含み得る。アプリケーションは、オペレーティングシステム(及び任意選択でデスクトップも)のインスタンスがロードされた後で実行しているプログラムを含み得る。オペレーティングシステムの各インスタンスは、物理的(例えば、デバイスごとに1つのオペレーティングシステム)であっても、仮想(例えば、単一のデバイス上で実行しているOSの多くのインスタンス)であってもよい。各アプリケーションは、ローカルデバイス上で実行されても、遠隔に位置するデバイス(例えば、遠隔型)上で実行されてもよい。
示された第1のモビリティアプリケーション及び第2のモビリティアプリケーションは第1の及び
〈企業モビリティ管理アーキテクチャ〉
図3は、BYOD環境で使用するための企業モビリティ技術アーキテクチャ300を表す。本アーキテクチャは、モバイルデバイス302のユーザが、企業リソースまたは個人リソースにモバイルデバイス302からアクセスすること、及び個人での使用のためにモバイルデバイス302を使用することの両方を可能にする。ユーザは、ユーザによって購入されるモバイルデバイス302、または企業によってユーザに提供されるモバイルデバイス302を使用して、かかる企業リソース304または企業サービス308にアクセスし得る。ユーザは、ビジネスでの使用のみのため、またはビジネス及び個人での使用のためにモバイルデバイス302を利用してもよい。モバイルデバイスは、iOSオペレーティングシステム、Android(登録商標)オペレーティングシステムなどにおいて実行し得る。企業は、ポリシーを実装するように選び、モバイルデバイス304を管理してもよい。ポリシーは、モバイルデバイスが特定され、セキュア化されるかまたはセキュリティが検証され、かつ企業リソースに選択的または完全なアクセスが提供され得るようにファイアウォールまたはゲートウェイを通して埋め込まれ得る。ポリシーは、モバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーション、及びデータ管理ポリシーの幾つかの組み合わせであり得る。モバイルデバイス管理ポリシーのアプリケーションを通して管理されるモバイルデバイス304は、登録されたデバイスと称され得る。
幾つかの実施形態において、モバイルデバイスのオペレーティングシステムは、管理される区分310及び管理されない区分312に分離され得る。管理される区分310は、それに適用されるポリシーを有して、管理される区分上で実行しているアプリケーション及び管理される区分に格納されたデータをセキュア化し得る。管理される区分上で実行しているアプリケーションは、セキュアなアプリケーションであり得る。他の実施形態において、すべてのアプリケーションは、アプリケーションから別々に受信され、1つ以上のセキュリティパラメータ、特性、リソース制限、及び/またはアプリケーションがデバイス上で実行しているときにモバイルデバイス管理システムによって実施される他のアクセス制御を定義する1つ以上のポリシーファイルのセットに従って実行し得る。それぞれのポリシーファイルに従って動作することによって、各アプリケーションは、1つ以上の他のアプリケーション及び/もしくはリソースとの通信が許容または制限され、それによって仮想区分を作成し得る。したがって、本明細書で使用されるとき、区分は、メモリの物理的に区分された部分(物理区分)、メモリの論理的に区分された部分(論理区分)、ならびに/または本明細書に記載の複数のアプリケーション上の1つ以上のポリシー及び/もしくはポリシーファイルの実施結果として作成された仮想区分(仮想区分)を意味し得る。言い換えると、管理されているアプリケーション上でポリシーを実施することによって、それらのアプリケーションは、他の管理されているアプリケーション及び信頼された企業リソースと通信することのみができるように制限され、それによって管理されないアプリケーション及びデバイスによって入り込めない仮想区分を作成し得る。
セキュアなアプリケーションは、電子メールアプリケーション、ウェブブラウザアプリケーション、サービスとしてのソフトウェア(SaaS)アクセスアプリケーション、Windows(登録商標) Applicationアクセスアプリケーションなどであり得る。セキュアなアプリケーションは、セキュアなネイティブアプリケーション314、セキュアなアプリケーションランチャー318によって実行されるセキュアな遠隔アプリケーション322、セキュアなアプリケーションランチャー318によって実行される仮想化アプリケーション326などであり得る。セキュアなネイティブアプリケーション314は、セキュアなアプリケーションラッパ320によってラッピングされ得る。セキュアなアプリケーションラッパ320は、セキュアなネイティブアプリケーションがデバイス上で実行されるとき、モバイルデバイス302上で実行される組み込まれたポリシーを含み得る。セキュアなアプリケーションラッパ320は、モバイルデバイス302上で実行しているセキュアなネイティブアプリケーション314を、セキュアなネイティブアプリケーション314がセキュアなネイティブアプリケーション314の実行の際に要求されたタスクを完了することを要求し得る、企業においてホスティングされたリソースに向けるメタデータを含み得る。セキュアなアプリケーションランチャー318によって実行されるセキュアな遠隔アプリケーション322は、セキュアなアプリケーションランチャーアプリケーション318内で実行され得る。セキュアなアプリケーションランチャー318によって実行される仮想化アプリケーション326は、企業リソース304などにおいて、モバイルデバイス302上のリソースを利用し得る。セキュアなアプリケーションランチャー318によって実行される仮想化アプリケーション326によってモバイルデバイス302上で使用されるリソースは、ユーザインタラクションリソース、処理リソースなどを含み得る。ユーザインタラクションリソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、視覚入力、ジェスチャ入力などを収集し、送信するように使用さ得る。処理リソースは、ユーザインターフェース、企業リソース304から受信した処理データなどを提示するように使用され得る。セキュアなアプリケーションランチャー318によって実行される仮想化アプリケーション326によって企業リソース304において使用されるリソースは、ユーザインターフェース生成リソース、処理リソースなどを含み得る。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブリングする、ユーザインターフェースを修正する、ユーザインターフェースを最新にするなどのように使用され得る。処理リソースは、情報を作成する、情報を読み取る、情報を更新する、情報を消去するなどのように使用され得る。例えば、仮想化アプリケーションは、グラフィカルユーザインターフェース(GUI)に関連するユーザインタラクションを記録し、それらをサーバープリケーションに通信し得、サーバープリケーションは、ユーザインタラクションデータを、サーバー上で動作するアプリケーションへの入力として使用する。この配置では、企業は、サーバー側のアプリケーションならびにアプリケーションに関連するデータ、ファイルなどを維持するように選出し得る。企業は、モバイルデバイス上での展開のためにアプリケーションをセキュア化することによって、本明細書の原則に従って、幾つかのアプリケーションを「可動化」するように選出し得るが、本配置はまた、ある特定のアプリケーションのために選出され得る。例えば、幾つかのアプリケーションは、モバイルデバイス上での使用のためにセキュア化されてもよいが、他のアプリケーションは、モバイルデバイス上での展開のために用意されていないか、または適切でない場合があるため、企業は、モバイルユーザアクセスを、仮想化技術によって用意されていないアプリケーションに提供することを選出し得る。別の例として、企業は、大容量で複雑なデータセット(例えば、マテリアルリソースプランニングアプリケーション)を含む大容量で複雑なアプリケーションを有し得、その場合、モバイルデバイスのためのアプリケーションをカスタマイズすることは非常に困難であるか、またはそうでなければ望ましくないため、企業は、アプリケーションへのアクセスを仮想化技術によって提供することを選出し得る。また別の例として、企業は、企業によって、セキュア化されているモバイル環境に対してもあまりに機密性が高いとみなされ得る高度にセキュア化されているデータ(例えば、人材データ、顧客データ、工学データ)を維持するアプリケーションを有し得るため、企業は、仮想化技術を使用することを選出して、かかるアプリケーション及びデータへのモバイルアクセスを許可し得る。企業は、モバイルデバイス上の完全にセキュア化されているアプリケーション及び完全に機能的なアプリケーションの両方、ならびに仮想化アプリケーションを提供して、サーバー側でより適切に動作されるとみなされるアプリケーションへのアクセスを可能にすることを選出し得る。一実施形態において、仮想化アプリケーションは、セキュアなストレージ位置のうちの1つにおける携帯電話の幾つかのデータ、ファイルなどを格納し得る。例えば、企業は、ある特定の情報が電話に格納されることを可能にする一方で、他の情報を許可しないことを選出し得る。
仮想化アプリケーションに関連して、本明細書に記載の通り、モバイルデバイスは、GUIを提示し、次いでGUIとのユーザインタラクションを記録するように設計されている仮想化アプリケーションを有し得る。アプリケーションは、ユーザインタラクションを、アプリケーションとのユーザインタラクションとしてサーバー側のアプリケーションによって使用されるようにサーバー側に通信し得る。応答して、サーバー側のアプリケーションは、モバイルデバイスに新しいGUIを返送し得る。例えば、新しいGUIは、静的ページ、動的ページ、アニメーションなどであり、それによって遠隔に位置するリソースへのアクセスを提供し得る。
セキュアなアプリケーションは、モバイルデバイスの管理される区分310におけるセキュアなデータコンテナ328に格納されたデータにアクセスし得る。セキュアなデータコンテナ内でセキュア化されているデータは、セキュアなラッピングされたアプリケーション314、セキュアなアプリケーションランチャー322によって実行されるアプリケーション、セキュアなアプリケーションランチャー322によって実行される仮想化アプリケーション326などによってアクセスされ得る。セキュアなデータコンテナ328内に格納されるデータとしては、ファイル、データベースなどが挙げられ得る。セキュアなデータコンテナ328内に格納されるデータは、特定のセキュアなアプリケーション330、共有されたセキュアなアプリケーション332などに制限されるデータを含み得る。セキュアなアプリケーションに制限されたデータは、セキュアな一般データ334及び非常にセキュアなデータ338を含み得る。セキュアな一般データは、高度暗号化標準(AES)128ビット暗号化などの強い形式の暗号化を使用し得るが、非常にセキュアなデータ338は、AES256ビット暗号化などの非常に強い形式の暗号化を使用し得る。セキュアなデータコンテナ328内に格納されたデータは、デバイスマネージャ324からのコマンド受信時にデバイスから消去さ得る。セキュアなアプリケーションは、デュアルモードオプション340を有し得る。デュアルモードオプション340は、ユーザに、セキュア化されているアプリケーションを、セキュア化されていないモードまたは管理されないモードで動作するためのオプションを提示し得る。セキュア化されていないモードまたは管理されないモードでは、セキュアなアプリケーションは、モバイルデバイス302の管理されない区分312上のセキュア化されていないデータコンテナ342内に格納されるデータにアクセスし得る。セキュア化されていないデータコンテナ内に格納されるデータは、パーソナルデータ344であり得る。セキュア化されていないデータコンテナ342内に格納されるデータはまた、モバイルデバイス302の管理されない区分312上で実行しているセキュア化されていないアプリケーション348によってアクセスもされ得る。セキュア化されていないデータコンテナ342内に格納されたデータは、セキュアなデータコンテナ328内に格納されたデータがモバイルデバイス302から消去された場合にモバイルデバイス302上に残存し得る。企業は、モバイルデバイスから、企業によって所有、ライセンス取得、または制御されている選択のもしくはすべてのデータ、ファイル、及び/またはアプリケーション(企業データ)を消去することを望む一方で、ユーザによって所有、ライセンス取得、または制御さているパーソナルデータ、ファイル、及び/またはアプリケーション(パーソナルデータ)をそのままにするか、または別様に保存することを望み得る。この動作は、選択的ワイプと称され得る。本明細書に記載の態様に従って配置された企業データ及びパーソナルデータで、企業は選択的ワイプを実行し得る。
モバイルデバイスは、企業において、企業リソース304及び企業サービス308をパブリックインターネット348などに接続し得る。モバイルデバイスは、仮想私設網接続を経由して企業リソース304及び企業サービス308に接続し得る。マイクロVPNまたはアプリケーション特定VPNとも称される仮想私設網接続は、特定のアプリケーション350、特定のデバイス、モバイルデバイスの特定のセキュア化されている領域、及び同種のもの352に特定され得る。例えば、電話のセキュア化されている領域におけるラッピングされたアプリケーションの各々は、おそらくユーザまたはデバイスの属性情報に関連して、VPNへのアクセスがアプリケーションに関連した属性に基づいて容認されるように、アプリケーション特定VPNを経由して企業リソースにアクセスし得る。仮想私設網接続は、Microsoft Exchangeトラフィック、Microsoft Active Directoryトラフィック、ハイパーテキスト転送プロトコル (HTTP)トラフィック、ハイパーテキスト転送プロトコルセキュア(HTTPS)トラフィック、アプリケーション管理トラフィックなどを実行し得る。仮想私設網接続は、シングルサインオン認証プロセス354をサポートし、可能にし得る。シングルサインオンプロセスは、ユーザが認証資格情報の単一のセットを提供することを可能にし得、次いで、資格情報が認証サービス358によって検証される。次いで、認証サービス358は、ユーザに認証資格情報を各個人の企業リソース304に提供することを要求していることなく、複数の企業リソース304へのユーザアクセスを容認し得る。
仮想私設網接続は、アクセスゲートウェイ360によって確立及び管理され得る。アクセスゲートウェイ360は、企業リソース304のモバイルデバイス302への配信を管理し、加速し、かつ向上させる性能向上特性を含み得る。アクセスゲートウェイは、モバイルデバイス302からパブリックインターネット348までのトラフィックを再ルーティングし、モバイルデバイス302が、パブリックインターネット348上で動作する公衆利用可能でセキュア化されないアプリケーションにアクセスすることを可能にし得る。モバイルデバイスは、転送ネットワーク362を介してアクセスゲートウェイに接続し得る。転送ネットワーク362は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、私設網などであり得る。
企業リソース304は、電子メールサーバー、ファイル共有サーバー、SaaSアプリケーション、ウェブアプリケーションサーバー、Windows(登録商標)アプリケーションサーバーなどを含み得る。電子メールサーバーは、Exchangeサーバー、Lotus Notesサーバーなどを含み得る。ファイル共有サーバーは、ShareFileサーバーなどを含み得る。SaaSアプリケーションは、Salesforceなどを含み得る。Windows(登録商標)アプリケーションサーバーは、ローカルのWindows(登録商標)オペレーティングシステムなどで動作するように意図されているアプリケーションを提供するように構築されている任意のアプリケーションサーバーを含み得る。企業リソース304は、プレミスベースのリソース、クラウドベースのリソースなどであり得る。企業リソース304は、直接またはアクセスゲートウェイ360を経由して、モバイルデバイス302によってアクセスされ得る。企業リソース304は、転送ネットワーク362を介してモバイルデバイス302によってアクセスされ得る。転送ネットワーク362は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、ワイドエリアネットワーク、パブリックネットワーク、私設網などであり得る。
企業サービス308は、認証サービス358、脅威検出サービス364、デバイスマネージャサービス324、ファイル共有サービス368、ポリシーマネージャサービス370、ソーシャルインテグレーションサービス372、アプリケーションコントローラサービス374などを含み得る。認証サービス358は、ユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービスなどを含み得る。認証サービス358は、証明書を使用し得る。証明書は、企業リソース304などによってモバイルデバイス302上に格納され得る。モバイルデバイス302上に格納される証明書は、モバイルデバイス上の暗号化された位置に格納され得、証明書は、認証時などにおける使用のためにモバイルデバイス302上に一時的に格納され得る。脅威検出サービス364には、侵入検出サービス、認証されていないアクセス試行検出サービスなどが含まれ得る。認証されていないアクセス試行検出サービスには、デバイス、アプリケーション、データなどにアクセスする認証されていない試行が含まれ得る。デバイス管理サービス324には、構成、プロビジョニング、セキュリティ、サポート、監視、報告、及びデコミッショニングサービスが含まれ得る。ファイル共有サービス368には、ファイル管理サービス、ファイルストレージサービス、ファイル協働サービスなどが含まれ得る。ポリシーマネージャサービス370には、デバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービスなどが含まれ得る。ソーシャルインテグレーションサービス372には、連絡先組み込みサービス、協働サービス、ならびにFacebook、Twitter、及びLinkedInなどのソーシャルネットワークの組み込みなどが含まれ得る。アプリケーションコントローラサービス374には、管理サービス、プロビジョニングサービス、展開サービス、割り当てサービス、取り消しサービス、ラッピングサービスなどが含まれ得る。
企業モビリティの技術アーキテクチャ300は、アプリケーションストア378を含み得る。アプリケーションストア378は、ラッピングされていないアプリケーション380、事前にラッピングされたアプリケーション382などを含み得る。アプリケーションは、アプリケーションコントローラ374からアプリケーションストア378内に置かれ得る。アプリケーションストア378は、パブリックインターネット348などを経由して、アクセスゲートウェイ360を経由してモバイルデバイス302によってアクセスされ得る。アプリケーションストアには、直感的で、かつ使いやすいユーザインターフェースが提供され得る。
ソフトウェア開発キット384は、本説明において前述されたようなアプリケーションをラッピングすることによって、ユーザによって選択されたアプリケーションをセキュア化する能力をユーザに提供し得る。次いで、ソフトウェア開発キット384を使用してラッピングされたアプリケーションが、アプリケーションコントローラ374を使用してアプリケーションストア378内に置かれることによってモバイルデバイス302に対して利用可能になり得る。
企業モビリティのテクニカルアーキテクチャ300は、管理及び分析能力588を含み得る。管理及び分析能力588は、どのようにリソースが使用されるか、どれほどの頻度でリソースが使用されるかなどに関する情報を提供し得る。リソースには、デバイス、アプリケーション、データなどが含まれ得る。どのようにリソースが使用されるかには、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするかなどが含まれ得る。どれほどの頻度でリソースが使用されるかには、どれほどの頻度でアプリケーションがダウンロードされたか、アプリケーションによってデータの特定のセットが何回アクセスされたかなどが含まれ得る。
図4は、別の例示的な企業モビリティ管理システム400である。図3に関して上に記載のモビリティ管理システム300のコンポーネントのうちの幾つかは、簡潔性のために省略されている。図4に示されるシステム400のアーキテクチャは、図3に関して上に記載のシステム300のアーキテクチャに関する多くの点で同様であり、上で述べられていない追加の特性を含み得る。
この場合、左手側は、ゲートウェイサーバー406(アクセスゲートウェイ及びアプリケーションコントローラ機能を含む)と相互作用して、種々の企業リソース408、及び右手側上方に示されるような、Exchange、Sharepoint、公開鍵基盤(PKI)リソース、Kerberosリソース、証明書発行サービスなどのサービス409にアクセスする、クライアントエージェント404を備えた、登録されたモバイルデバイス402を表す。詳細に示されないが、モバイルデバイス402はまた、アプリケーションの選択及びダウンロード用に企業アプリケーションストア(StoreFront)と相互作用もし得る。
クライアントエージェント404は、High−Definition User Experience(HDX)/ICA表示リモーティングプロトコルを使用してアクセスされる企業データセンタにおいてホスティングされる、Windows(登録商標)アプリケーション/デスクトップ用のUI(ユーザインターフェース)仲介として作用する。クライアントエージェント404はまた、ネイティブiOSまたはAndroid(登録商標)アプリケーションなどの、モバイルデバイス402上でのネイティブアプリケーションのインストール及び管理もサポートする。例えば、上の図で示される管理されているアプリケーション410(メール、ブラウザ、ラッピングされたアプリケーション)は、デバイス上においてローカルで実行しているすべてネイティブアプリケーションである。クライアントエージェント404及びこのアーキテクチャのアプリケーション管理フレームワークは、企業リソース/サービス408への接続性及びSSO(シングルサインオン)など、ポリシー駆動型管理の能力及び特性を提供するように作用する。クライアントエージェント404は、他のゲートウェイサーバーコンポーネントへのSSOを含む通常アクセスゲートウェイ(AG)へ、企業への一次ユーザ認証を扱う。クライアントエージェント404は、ゲートウェイサーバー406からポリシーを取得して、モバイルデバイス402上での管理されているアプリケーション410の行動を制御する。
ネイティブアプリケーション410とクライアントエージェント404との間のセキュアなプロセス間通信(IPC)リンク412は、クライアントエージェントが、各アプリケーションを「ラッピング」するアプリケーション管理フレームワーク414によって実施されるポリシーを提供することを可能にする管理チャネルを表す。IPCチャネル412はまた、クライアントエージェント404が、企業リソース408への接続性及びSSOを可能にする資格情報及び認証情報を提供することも可能にする。最後に、IPCチャネル412は、アプリケーション管理フレームワーク414が、オンライン及びオフライン認証など、クライアントエージェント404によって実装されるユーザインターフェース機能を呼び出すことを可能にする。
クライアントエージェント404とゲートウェイサーバー406との間の通信は、本質的に、ネイティブの管理されているアプリケーション410の各々をラッピングするアプリケーション管理フレームワーク414の管理チャネルの延長である。アプリケーション管理フレームワーク414は、クライアントエージェント404にポリシー情報を要求し、次にゲートウェイサーバー406にポリシー情報を要求している。アプリケーション管理フレームワーク414は、認証を要求し、クライアントエージェント404は、ゲートウェイサーバー406(NetScaler Access Gatewayとしても知られる)のゲートウェイサービス部分にログインする。クライアントエージェント404はまた、ゲートウェイサーバー406上のサポートサービスを呼び出し、サポートサービスは、入力素材を生成してローカルデータボルト416用の暗号化鍵を導出し得るか、または下記でより完全に説明されるように、PKI保護リソースへの直接認証を有効にし得るクライアント証明書を提供し得る。
より詳細には、アプリケーション管理フレームワーク414は、管理されているアプリケーション410の各々を「ラッピング」する。これは、明確な構築ステップを介して、または構築後処理ステップを介して組み込まれ得る。アプリケーション管理フレームワーク414は、アプリケーション410の最初の起動においてクライアントエージェント404と「対」になって、セキュアなIPCチャネルを開始し、そのアプリケーション用のポリシーを取得し得る。アプリケーション管理フレームワーク414は、クライアントエージェントのログイン依存性など、ローカルに適用するポリシーの関連する部分、及びローカルOSサービスがどのように使用され得るか、またはローカルOSサービスがアプリケーション410とどのように相互作用し得るかを制限する格納ポリシーの幾つかを実施し得る。
アプリケーション管理フレームワーク414は、セキュアなIPCチャネル412上でクライアントエージェント404によって提供されるサービスを使用して、認証及び内部ネットワークアクセスを容易にし得る。プライベート及び共有データボルト416(コンテナ)のための鍵管理はまた、管理されているアプリケーション410とクライアントエージェント404との間の適切なインタラクションによって管理され得る。ボルト416は、オンライン認証後のみに利用可能であり得るか、またはポリシーによって許容される場合、オフライン認証後に利用可能にされ得る。ボルト416の最初の使用は、オンライン認証を要求し得、オフラインアクセスは、オンライン認証が再度要求される前に、最大でもポリシー最新化期間に限定され得る。
内部リソースへのネットワークアクセスは、個々の管理されているアプリケーション410からアクセスゲートウェイ406を通じて直接生じ得る。アプリケーション管理フレームワーク414は、各アプリケーション410の代わりに、ネットワークアクセスを組織化することを担う。クライアントエージェント404は、オンライン認証に続いて取得される好適な時間が限定された二次資格情報を提供することによってこれらのネットワーク接続を容易にし得る。リバースウェブプロキシ接続、及びエンドツーエンドVPN様式トンネル418などネットワーク接続の複数のモードが使用され得る。
メール及びブラウザの管理されているアプリケーション410は、特別な状態を有し、任意のラッピングされたアプリケーションに対して一般的に利用可能でない場合がある設備を利用し得る。例えば、メールアプリケーションは、完全なAGログオンを要求せずに、延長された期間にわたってExchangeにアクセスすることを許容する特別なバックグラウンドネットワークアクセス機構を使用し得る。ブラウザアプリケーションは、複数のプライベートデータボルトを使用して異なる種類のデータを分離し得る。
このアーキテクチャは、種々の他のセキュリティ特性の組み込みをサポートする。例えば、ゲートウェイサーバー406(ゲートウェイサーバー406のゲートウェイサービスも含む)は、場合によって、アクティブディレクトリ(AD)パスワードを妥当性確認する必要がない。ADパスワードがある状況下において一部のユーザのための認証要因として使用されるか否かは、企業の裁量に委ねられることができる。ユーザがオンラインまたはオフラインである(すなわち、ネットワークに接続されているか、または接続されていない)場合、異なる認証方法が使用され得る。
ステップアップ認証は、強い認証を要求している高度に分類されたデータへのアクセスを有することを許容された、管理されているネイティブアプリケーション410をゲートウェイサーバー406が特定し、以前のさらに弱いレベルのログインの後、これが、再認証がユーザによって要求されることを意味する場合でも、これらのアプリケーションへのアクセスが適切な認証を実行した後のみに許可されることを確実にし得る、特性である。
この解決方法の別のセキュリティ特性は、モバイルデバイス402上でのデータボルト416(コンテナ)の暗号化である。ボルト416は、ファイル、データベース、及び構成を含むデバイス上のすべてのデータが保護されるように暗号化され得る。オンラインボルトについて、鍵はサーバー(ゲートウェイサーバー406)上に格納され得、オフラインボルトについて、鍵のローカルコピーは、ユーザパスワードまたは生体妥当性確認によって保護され得る。データがセキュアなコンテナ416内のデバイス402上にローカルに格納される場合、AES256暗号化アルゴリズムの最小限が利用されることが好ましい。
他のセキュアなコンテナ特性も実装され得る。例えば、アプリケーション410内で起こるすべてのセキュリティ事象がログされ、バックエンドに報告される、ロギング特性が含まれ得る。アプリケーション410がタンパリングを検出した場合、関連付けられた暗号化鍵がランダムデータで上書きされ、ユーザデータが破壊されたファイルシステム上にヒントを残さなくてもよいなどのデータ消去がサポートされ得る。スクリーンショット保護は別の特性であり、アプリケーションが、任意のデータがスクリーンショットに格納されることを防止し得る。例えば、鍵ウィンドウの隠された特徴が、はい、に設定され得る。これにより、画面上に現在表示されているすべてのコンテンツが隠され、その結果、任意のコンテンツが通常は存在するはずである空白のスクリーンショットがもたらされ得る。
例えば、データをコピーするか、または外部アプリケーションへ送信することによって、任意のデータがアプリケーションコンテナの外部にローカルに転送されることを防止することによって、ローカルなデータ転送を防止し得る。キーボードキャッシュ特性は、センシティブなテキストフィールドのためのオートコレクト機能を無効にするように動作し得る。SSL証明書の妥当性確認が動作可能であり得るため、アプリケーションは、サーバーSSL証明書を、キーチェーンに格納する代わりに、特別に妥当性確認する。デバイス上でデータを暗号化するために使用される鍵が、ユーザによって提供されるパスフレーズまたは生体データを使用して生成される(オフラインアクセスが要求される場合)ように、暗号化鍵生成特性が使用され得る。オフラインアクセスが要求されない場合、ランダムに生成され、サーバー側に格納された別の鍵で排他的論理和がとられてもよい。ユーザパスワードから生成された鍵が、その暗号学的ハッシュを作成するのではなく、KDF(鍵導出機能、とりわけパスワードベースの鍵導出機能2(PBKDF2))を使用するように、鍵導出機能が動作し得る。後者は鍵を総当たり攻撃または辞書攻撃に対して脆弱にする。
さらに、1つ以上の初期化ベクトルが暗号化方法において使用され得る。初期化ベクトルは、同じ暗号化データの複数のコピーに異なる暗号文出力を生成させ、反射攻撃及び暗号解読攻撃の両方を防ぐ。これはまた、データを暗号化するために使用される特定の初期化ベクトルが知られていない場合、攻撃者が、盗まれた暗号化鍵ででも、任意のデータを解読することを防止する。さらに、ユーザがアプリケーション内で認証した後のみアプリケーションデータが解読される、認証後の解読が使用され得る。別の特性は、必要とされる場合のみにメモリ内に(及びディスク内ではなく)保持され得る、メモリ内のセンシティブなデータに関し得る。例えば、ログイン資格情報は、ログイン後にメモリから消去され得、暗号化鍵及びObjective−C事象変数の中の他のデータは、容易に参照され得るため、格納されない。その代わりに、メモリがこれらのために手動で割り当てられ得る。
非アクティビティのポリシーが定義された期間の後、ユーザセッションが終了される、非アクティブタイムアウトが実装され得る。
アプリケーション管理フレームワーク414からのデータ漏洩は、他の方法で防止され得る。例えば、アプリケーション410がバックグラウンドに置かれる場合、メモリは所定の(構成可能な)期間の後に削除され得る。バックグラウンド化される場合、アプリケーションの最後に表示された画面のスナップショットが撮られて、フォアグラウンドプロセスを固定し得る。スクリーンショットは、機密データを含み得るゆえに削除されるべきである。
別のセキュリティ特性は、1つ以上のアプリケーションにアクセスするためのAD(アクティブディレクトリ)422パスワードの使用を伴わないOTP(ワンタイムパスワード)420の使用に関する。場合によって、一部のユーザは自分のADパスワードを知らない(または知ることが許可されていない)ので、これらのユーザは、SecurIDのようなハードウェアOTPシステム(OTPは、EntrustまたはGemaltoなどの異なる販売者によって提供され得る)を使用することによってなど、OTP420を使用して認証し得る。場合によっては、ユーザがユーザIDで認証した後、テキストがOTP420を有するユーザに送信される。場合によっては、これは、単一のフィールドであるプロンプトで、オンライン使用のためだけに実装され得る。
オフライン使用が企業ポリシーを介して許可される、それらのアプリケーション410に対するオフライン認証のためのオフラインパスワードが実装され得る。例えば、企業は、StoreFrontがこの方式でアクセスされることを望み得る。この場合、クライアントエージェント404は、ユーザがカスタムオフラインパスワードを設定することを要求し得、ADパスワードは使用されない。ゲートウェイサーバー406は、ポリシーを提供して、標準Windows(登録商標) Serverの複雑性要件は修正されてもよいが、これらの要件に説明されるような最小限の長さ、文字クラスの構成、ならびにパスワードの経過年に関するパスワード標準を制御及び実施し得る。
別の特性は、(アプリケーション管理フレームワークマイクロVPN特性を介してPKI保護ウェブリソースにアクセスする目的のための)二次資格情報としてのある特定のアプリケーション410のためのクライアント側の証明書の有効化に関するに。例えば、アプリケーションは、かかる証明書を利用してもよい。この場合、クライアントエージェント404からの証明書がゲートウェイサーバー406によって回収され、キーチェーンにおいて使用され得る、ActiveSyncプロトコルを使用する証明書ベースの認証がサポートされ得る。管理されているアプリケーションの各々は、ゲートウェイサーバー406において定義されているラベルによって特定される、1つの関連付けられたクライアント証明書を有し得る。
ゲートウェイサーバー406は、企業の特定用途ウェブサービスと相互作用し、クライアント証明書の発行をサポートして、関連する管理されているアプリケーションが内部PKI保護リソースを認証することを許容し得る。
クライアントエージェント404及びアプリケーション管理フレームワーク414は、内部PKI保護ネットワークリソースに対する認証のためのクライアント証明書を取得及び使用することをサポートするように強化され得る。種々の度合いのセキュリティ及び/または分離要件に合致するように、1つ以上の証明書がサポートされ得る。証明書は、メール及びブラウザの管理されているアプリケーションによって、及び最終的に任意のラッピングされたアプリケーション(もし、それらのアプリケーションが、アプリケーション管理フレームワークがhttps要求を仲介することが合理的である、ウェブサービススタイル通信パターンを使用するのであれば)によって使用され得る。
iOS上でのアプリケーション管理クライアント証明書サポートは、公開鍵暗号化標準(PKCS)12BLOB(バイナリラージオブジェクト)を、管理されているアプリケーションの各々のiOSキーチェーンの中に、使用期間ごとに、インポートすることに依存し得る。プリケーション管理フレームワークのクライアント証明書サポートは、プライベートメモリ内の鍵ストレージでのHTTPS実装を使用し得る。クライアント証明書は、iOSキーチェーン内には決して存在することはなく、潜在的に、強力に保護されている「オンラインのみ」のデータ値以外、持続されない。
また相互SSLが実装され、モバイルデバイス402が企業に対して及びその逆に対して認証されることを要求していることによって追加のセキュリティを提供し得る。またゲートウェイサーバー406に対する認証のための仮想スマートカードが実装され得る。
Kerberosの限定されたサポート及び完全なサポートの両方が追加の特性であってもよい。完全なサポート特性は、ADパスワードまたは信頼されたクライアント証明書を使用する、アクティブディレクトリ(AD)422への完全なKerberosログインを行い、かつKerberosサービスチケットを取得してHTTP交渉認証チャレンジに応答するための能力に関する。限定されたサポート特性は、HTTP交渉認証チャレンジに応答して、(制約付き委任の対象である)Kerberosサービスチケットを取得及び使用できるようにAGEEがKerberosプロトコルの移行を呼び出すことをサポートするCitrix Access Gateway Enterprise Edition(AGEE)における制約付き委任に関する。この機構は、リバースウェブプロキシ(別名、コーポレート仮想私設網(CVPN))モードで、http(httpsではない)接続がVPN及びMicroVPNモードでプロキシされるときに、作動する。
別の特性は、脱獄またはルーティングの検出の際に自動的に生じ、管理コンソールからのプッシュされたコマンドとして生じ得、かつアプリケーション410が実行していないときでも遠隔消去機能を含み得る、アプリケーションコンテナのロッキング及び消去に関する。
エンタープライズアプリケーションストア及びアプリケーションコントローラのマルチサイトアーキテクチャまたは構成がサポートされ得、これにより、故障の場合、ユーザが幾つかの異なる位置のうちの1つからサービスを受けることを許容する。
場合によっては、管理されているアプリケーション410は、API(例はOpenSSL)を介して証明書及びプライベート鍵にアクセスすることが許容され得る。企業の信頼されている管理されているアプリケーション410は、アプリケーションのクライアント証明書及びプライベート鍵によって特定の公開鍵動作を実行しているように許容され得る。アプリケーションがブラウザのように挙動し、証明書アクセスが要求されない場合、アプリケーションが「私は誰」に対する証明書を読み取る場合、アプリケーションが証明書を使用してセキュアなセッショントークンを構築する場合、及びアプリケーションが重要なデータ(例えば、取引ログ)のデジタル署名のために、または一時的なデータ暗号化のためにプライベート鍵を使用する場合など、種々の使用の状況が特定され、適切に処理され得る。
本開示の種々の態様を提供及び/または実施する際に使用され得る、コンピューティングアーキテクチャ及び企業モビリティ管理アーキテクチャの幾つかの実施例を論じたが、多くの実施形態をここでより詳細に説明する。特に、上で紹介したように、本開示の幾つかの態様は、一般に、アプリケーション固有のVPNサーバーを介して、各モバイルアプリケーションのアプリケーションネットワークトラフィックを、私設網にトンネリングすることに関する。アプリケーション固有のVPNサーバーは、所与の1つのモバイルアプリケーションに対してのみ、VPN接続を管理し、それぞれのモバイルアプリケーションによって発行されたシステムコールを傍受して、関連するすべてのネットワークトラフィックを私設網にトンネリングすることができる。
〈モバイルVPNトンネリング〉
図5は、TCPトンネリングプロトコルを使用するモバイルVPN接続を管理する例示的なモバイルVPNシステム500を示す。図5に示す実施形態によると、MDMシステムによって管理されているエンタープライズモバイルアプリケーションは、私設網へのセキュアなVPN接続を介して、企業リソースにアクセスすることができる。例えば、管理されているアプリケーション502は、例えばマイクロVPNを使用して、公衆回線を介してアクセスゲートウェイ516に接続し、図4の企業モビリティ管理システム400のようなMDMシステムによって管理されていないモバイルアプリケーションのような、セキュリティ対策が施されていないモバイルアプリケーション及び/または管理されていないモバイルアプリケーションによってアクセスできないアクセスゲートウェイ516を介して、セキュアなポータルにアクセスすることができる。
幾つかの実施形態では、モバイルVPNシステム500は、インバウンドトラフィック及びアウトバウンドトラフィックを、管理されているアプリケーション502から管理することができる。管理されているアプリケーション502が実行しているモバイルデバイス(例えば、図4のモバイルデバイス402)は、管理されているアプリケーション502が、520へのアクセスを有するデバイスによってアクセスできない私設網520と通信することを要求しているか否かを監視することができる。例えば、私設回線520は、アクセスを備えた企業アプリケーションのみが仮想私設網接続を介してアクセスすることができるファイアウォールによって公衆網(例えば、インターネット)から分離されてもよい。管理されているアプリケーション502のモバイルデバイスは、公衆網に接続され得る。モバイルデバイス上で実行している管理されていないモバイルアプリケーションは、公衆網にアクセスすることができる管理されているアプリケーション520もまた、公衆網にアクセスすることができる。私設網520にアクセスするために、管理されているアプリケーション520は、公衆網を介して、私設網520へのVPN接続を確立する必要があり得る。例えば、管理されているアプリケーションは、管理されているアプリケーション502のアウトバウンドトラフィックを私設網520に転送することができるモバイルデバイスのポートを介して、アクセスゲートウェイ516にVPN接続をセットアップする要求を発行することができる。これに加えて、またはこれに代えて、アクセスゲートウェイ516はまた、管理されているアプリケーション502宛ての私設網520からの通信を送信し、管理されているアプリケーション502に返送することもできる。
管理されているアプリケーション502は、幾つかの異なる通信プロトコルを使用して私設網520と通信することができる。例えば、管理されているアプリケーション502は、異なるトンネリング及び/または通信プロトコルを使用して、私設網520とトンネリング接続及び/または仮想私設網接続を確立することができる。管理されているアプリケーション502と私設網520との間のVPN接続を確立するために使用されるモバイルVPNシステムのシステムアーキテクチャは、管理されているアプリケーション502によってサポートされるトンネリング及び/または通信プロトコルのタイプに応じて変化し得る。VPN接続によって私設網520と通信するための各管理されているアプリケーション502については、モバイルデバイスが使用するトンネリングプロトコルのタイプを決定することができる。トンネリングプロトコルを決定すると、モバイルデバイスは、VPN接続を介してトンネリングされるアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508をどのように処理するかを適切に決定することができる。図5に示す実施形態は、TCP私設網接続及びTCPトンネリングプロトコルと同様のネットワークアーキテクチャに依存する他の私設網接続を容易にするために使用されるモバイルVPNシステム500を示す。図6は、UDP私設網接続及びUDPトンネリングプロトコルと同様のネットワークアーキテクチャに依存する他の私設網接続を容易にするために使用されるモバイルVPNシステム600を示す。図7は、DNS私設網接続及びDNSトンネリングプロトコルと同様のネットワークアーキテクチャに依存する他の私設網接続を容易にするために使用されるモバイルVPNシステム600を示す。UDP私設網接続及びDNS私設網接続については、それぞれ以下の図6及び7でより詳しく説明する。
幾つかの実施形態では、モバイルデバイス及び/または管理されているアプリケーション502は、管理されているアプリケーション502及び管理されているアプリケーション502が通信する任意の関連する動的ライブラリ504によって行われるすべてのシステムコールを傍受する。管理されているアプリケーション502によって呼び出される動的ライブラリ504が生成するすべてのアプリケーションネットワークトラフィック506及びライブラリネットワークトラフィック508を傍受するために、管理されているアプリケーション502及び関連する動的ライブラリ504によって行われるすべてのシステムコールが傍受され得る。従来のシステムとは異なり高レベルのアプリケーショントラフィックを傍受する代わりに、モバイルVPNシステム500は、アプリケーショントラフィック(例えばシステムコール)の最低レベルを傍受することができる。管理されているアプリケーション502及びその関連ライブラリがモバイルデバイスのオペレーティングシステムに行うすべてのシステムコールを傍受することによって、モバイルデバイスは、ローカルデバイスソケット518上の接続を開始するためにすべてのシステムコールを特定することができる。例えば、モバイルデバイスは、モバイルデバイスのローカルデバイスソケット518上の私設仮想網520へのトンネル及び/または仮想私設網接続を開始するために、connect()及びconnectx()など、すべてのシステムコールを特定することができる。管理されているアプリケーション502及びその関連する動的ライブラリ504によって作られたモバイルデバイス上のソケット接続のこのようなすべてのインスタンスを特定することにより、モバイルデバイスは、管理されているアプリケーション502によるすべての要求及び/または試みを傍受して、私設仮想網520と通信する、及び/または仮想私設網接続を介して、アプリケーションネットワークトラフィック506及びライブラリネットワークトラフィック508をトンネリングすることを実現する。アプリケーションネットワークトラフィック506及び/またはライブラリネットワーク506は、私設網520に伝達するトラフィックペイロードを含むメッセージと共にVPNに接続するためのこのようなシステムコールを含むことができる。アプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィック508内に存在するVPN(例えば、この例ではconnect()及びconnectx()システムコール)に接続するためのシステムコールを傍受することにより、モバイルデバイスは、管理されているアプリケーション502からすべてのVPNトラフィックを傍受することができる。本開示では、connect()及びconnectx()が例として使用されるが、モバイルデバイスは、様々な異なるタイプのモバイルオペレーティングシステム(例えば、iOS、Android(登録商標)、Firefox OS、Windows(登録商標) Phone OS、Blackberry OS、Tizen OS、Ubuntu Touch OSなど)によって行われることが知られているすべてのシステムコールについて、アプリケーションネットワークトラフィック506及びライブラリネットワークトラフィック508におけるシステムコールを監視することができる。
幾つかの実施形態では、VPNに接続するシステムコールが傍受されると、このようなシステムを使用するアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508は、動的ポートにリダイレクトされる。モバイルデバイスは、私設網520への傍受されたVPNシステムコールに関連するアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508をトンネリングするために、モバイルデバイスからTCP接続が確立される動的ポートを生成することができる。モバイルデバイスは、複数の異なる動的ポート510a〜nをローカルデバイスソケット518上に生成することができる。各モバイルデバイスは、私設網520との通信を要求している管理されているアプリケーション502のような複数の管理されているモバイルアプリケーションを有することができる。各管理されているアプリケーション502について、モバイルデバイスは、モバイルデバイス上のすべての動的ポート510a〜nからの1つ以上の動的ポート510a〜510cを割り振ることができる。動的ポートは、トラフィックの宛先ネットワークアドレスを決定することによって、特定のタイプのアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508にアサインすることができる。モバイルデバイスは、マッピングテーブル520を参照して、1つ以上のメッセージの宛先ネットワークアドレスに基づいて、1つ以上のメッセージ(例えば、アプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508)をアサインする動的ポートを決定することができる。マッピングテーブル520は、異なる宛先ネットワークアドレス512a〜nを備えたモバイルデバイスのすべての動的ポート510a〜510nのマッピングを含むことができる。傍受されたシステムコールから異なる宛先ネットワークアドレスに対する新たな要求が受信されると、モバイルデバイスは、モバイルデバイスのローカルデバイスソケット518に新しい動的ポートを生成して、そのような宛先ネットワークアドレスにトラフィックをルーティングし、新たに生成された動的ポートと、新たに生成された動的ポートがトラフィックをトンネリングするように作成される私設網520内の対応する宛先ネットワークアドレスとの間の関連付けを行うためにマッピングテーブル520をアップデートする。
幾つかの実施形態では、私設網へのトラフィックを処理するために、アプリケーション固有のプロキシTCPサーバー514が各動的ポートで生成される。各動的ポートで、ローカルデバイスソケット518の動的ポートからの接続が生成され、動的ポートをプロキシTCPサーバー514に接続して、私設網520への各TCP VPN接続のトラフィックメッセージのルーティングを処理する。プロキシサーバー514は、オンラインウェブサーバーを使用して、アプリケーションネットワークトラフィック506を管理されているモバイルアプリケーション502から私設網520にトンネリングするためのプロキシを作成することができる。プロキシサーバー514は、アプリケーション固有のサーバーであってもよく、それが役割を果たすように構成されているモバイルアプリケーションのアプリケーションネットワークトラフィックのみを処理してもよい。これに加えて、またはこれに代えて、モバイルデバイスの動的ポートで生成される各TCP接続及び/またはTCPトンネルは、管理されているアプリケーション502にのみ専用にサービスを提供することができる。したがって、VPN接続は、管理されているモバイルアプリケーションのみに対してアプリケーションネットワークトラフィックをトンネリングするアプリケーション固有のVPNである。
幾つかの実施形態では、モバイルVPNシステム500は、各管理されているアプリケーション502について1つ以上のTCPトンネリング接続をセットアップ及び維持することができる。アクセスゲートウェイ516へのTCP接続が確立されると、すでにマッピングテーブル520内で行われた、及びローカルデバイスソケット518内ですでに生成された動的ポートに対応する、宛先ネットワークアドレスを特定するアプリケーションネットワークトラフィック及び/またはシステムコールは、マッピングテーブル520内で特定された関連性に従って、宛先ネットワークアドレスに対応する動的ポートにルーティングされ得る。TCP接続が作成されると(例えば、アプリケーション固有のTCPプロキシサーバー514へのソケット接続がローカルデバイスソケット518内の動的ポート510bで生成された、及びプロキシサーバー514がアクセスゲートウェイ516にソケットを開いた)、動的ポート510bからアクセスゲートウェイ516への(例えば、VPNトンネル)間のTCP接続は、モバイルVPNシステム500によって積極的に維持される。例えば、TCP肯定応答メッセージ及び他のネットワーク管理メッセージは、TCP接続の状況、帯域幅の使用量、及びセキュリティを監視するためのTCP接続に対応するアクセスゲートウェイ516と動的ポートとの間で交換され得る。TCP接続は、そのTCP接続の使用を必要とする将来的なアプリケーションネットワークトラフィックがある場合に使用され得る。
幾つかの実施形態では、各モバイルデバイス上のMDMプロファイル(またはMAMポリシー)は、私設網520とのVPN接続を必要とする企業に管理されているアプリケーションのリストを維持することができる。管理されているモバイルアプリケーション502のソースコードは、私設網520への管理されているアプリケーション502のトラフィックのみをトンネリングするために専用のTCPマイクロVPN接続を生成するためのプログラミング及び/または命令を含むことができる。幾つかの実施形態では、管理されているアプリケーション502がモバイルデバイス上で起動されると、モバイルデバイス502は、管理されているアプリケーション502が通信するように構成された様々な異なる宛先ネットワークに対して、モバイルデバイスの複数の異なる動的ポート(例えば、動的ポート510a〜c)上で複数の異なるマイクロVPN接続を開始することができる。モバイルデバイスは、宛先ネットワークアドレス512a〜cと、動的ポート510a〜cと、これらの動的ポート上の対応するアプリケーション固有のTCPプロキシサーバー514との間の関連付けを行うことができる。管理されているアプリケーション502が起動すると、管理されているアプリケーション502が追加の宛先ネットワークアドレス用のアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508を生成するので、モバイルデバイスは、モバイルデバイスのローカルデバイスソケット518上に追加の動的ポートを生成し、要求された新たな宛先ネットワークアドレスへのトラフィックをトンネリングするために、追加の専用プロキシサーバーへのソケット接続を作成し、新たな宛先ネットワークアドレス及び新たに割り当てられた動的ポートとの間の関連付けを行うために、マッピングテーブル520を更新する。
幾つかの実施形態では、複数の異なるVPN接続は、同一のモバイルアプリケーションに対して存在し得る。複数の異なる動的ポート及びそれらに関連するプロキシサーバーは、同一のモバイルアプリケーションのアプリケーションネットワークを使用可能にするために存在し得る。各動的ポート及びその動的ポート上で起動するプロキシサーバー514は、管理されているアプリケーションに対する所与のTCP接続のアプリケーションネットワークトラフィックを処理することができる。モバイルデバイスは2つ以上の管理されているアプリケーションを含むことができるので、複数の異なる組の動的ポート及びTCPプロキシサーバーが、モバイルデバイス上で実行しているこれらの異なる管理されているアプリケーション用のTCPトンネルを同時にセットアップして、私設網520にトラフィックをトンネリングすることができる。
幾つかの実施形態では、アプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508がローカルデバイスソケット518上の動的ポートに達すると、管理されているアプリケーション502からのそのようなネットワークトラフィックのペイロードは、動的ポートのプロキシサーバー514に転送され得る。例えば、図5の例示的な実施形態に示すように、管理されているアプリケーション506からのアプリケーションネットワークトラフィック506は、宛先IPアドレス512bの宛先ネットワークアドレスを含むことができる。宛先IPアドレス512bが動的ポート510bと関連していると特定することにより、宛先IPアドレス512bに接続するシステムコールに関連するアプリケーションネットワークトラフィックは、動的ポート510bにルーティングされ得る。ソケット接続は、動的ポート510bのローカルデバイスソケット518から作成され、アプリケーション固有のプロキシTCPサーバー514に接続し得る。アプリケーション固有のプロキシTCPサーバー514は、マイクロVPNサーバーであり得る。アプリケーション固有のプロキシTCPサーバー514は、モバイルデバイスにアクセス可能な公衆網から私設網520へのルーティングトラフィックを処理することができるアクセスゲートウェイ516へのソケット接続を生成することができる。アプリケーション固有のプロキシTCPサーバー514で、管理されているアプリケーション502からのアプリケーションネットワークトラフィック506は、アクセスゲートウェイ516を介して、私設網520にトンネリングされるために再パケット化され得る。例えば、アプリケーションネットワークトラフィック506のペイロードは、私設網520へのTCP接続によって使用されるTCPプロトコルに従って抽出されフォーマットされ得る。アクセスゲートウェイ516は、私設網520に送信されるトンネリングプロトコルに従って再パケット化される着信ペイロードを要求していることができる。したがって、アプリケーション固有のプロキシTCPサーバー514は、アクセスゲートウェイ516及び/または私設網520によって使用されるプロトコルを特定し、私設網520に送信するために正しくフォーマットされる着信アプリケーションネットワークトラフィック506のパケットを再パケット化することができる。
モバイルVPNシステム500によれば、宛先ネットワークアドレスを指定するシステムコールが管理されているモバイルアプリケーション502から傍受されると、アプリケーション固有のTCP VPNトンネルが生成されて、アプリケーションネットワークトラフィック506及び/または傍受されたシステムコールに関連するライブラリネットワークトラフィック508をトンネリングして、VPNトンネルに接続する。宛先ネットワークアドレスを指定するVPN接続システムコールを傍受すると、モバイルVPNシステム500は、VPN接続システムコールに関連するアプリケーションネットワークトラフィックをトンネリングするために、ローカルデバイスソケット518内の動的ポートを自動的に生成して割り当てて、VPN接続システムコールの宛先ネットワークアドレスに対応する割り振られた動的ポート上にアプリケーション固有のプロキシTCPサーバー514を生成し、そのアプリケーションネットワークトラフィックをトンネリングするために、アクセスゲートウェイ516へのソケット接続を生成してし、そのトラフィックをアクセスゲートウェイ516にトンネリングするために、アプリケーション固有のプロキシTCPサーバー514でネットワークトラフィックの再パケット化を処理することができる。
図6は、UDPトンネリングプロトコルを使用してモバイルVPNを管理する例示的なモバイルVPNシステム600を示す。モバイルVPNシステム600のシステムアーキテクチャは、モバイルVPNシステム500のそれと類似しているが、モバイルVPNシステム500の主要な特徴とは異なる。管理されているアプリケーション502がUDPプロトコルを使用して通信し、及び/またはアクセスゲートウェイ516がUDPトンネリング接続を必要とすると判定すると、管理されているアプリケーション502は、モバイルVPNシステム600を使用して、アクセスゲートウェイ516を介して私設網520へのトンネリング接続を作成する。UDPは、TCPと異なりコネクションレスプロトコルであるため、TCPモバイルVPNシステム500とは異なり、アクセスゲートウェイ516を備えたモバイルデバイスによってアクティブなUDP接続を維持する必要はない。それに加えて、TCPモバイルVPNシステム500でのような動的ポートの代わりに、モバイルデバイス上の固定ポート(例えば、固定ポート610)を介してモバイルデバイスとアクセスゲートウェイ516との間にUDP VPN接続が確立される。さらに、UDPはコネクションレスプロトコルであり、1つの固定ポートのみが各モバイルアプリケーションのトラフィックを私設網520にトンネリングするのに使用されるため、アクセスゲートウェイ516を介して私設網520にトラフィックをトンネリングするために、モバイルアプリケーションごとに1つのプロキシVPNサーバーのみが使用される。
幾つかの実施形態では、管理されているアプリケーション502がUDP通信プロトコルを使用することをモバイルデバイスが決定すると、VPNに接続するために管理されているアプリケーション502によって作られるUDPシステムコールは、傍受され得る。管理されているアプリケーション502及びそれに関連するライブラリがモバイルデバイスのオペレーティングシステムに行うすべてのシステムコールを傍受することにより、モバイルデバイスは、ソケット上の接続を開始するためにすべてのシステムコールを特定することができる。例えば、モバイルデバイスは、connect()及びsendto()のようなすべてのシステムコールを特定することができ、モバイルデバイスのデバイスソケット上で私設仮想網520へのトンネル及び/または仮想私設網接続を開始することができる。モバイルデバイスは、管理されているアプリケーション502及びそれに関連する動的ライブラリ504によって作られたモバイルデバイス上のソケット接続のすべてのインスタンスを特定することによって、管理されているアプリケーション502によるすべての要求及び/または試みを傍受して、私設仮想網520と通信する及び/またはアプリケーションネットワークトラフィック506及びライブラリネットワークトラフィック508を、仮想私設網接続を通じてトンネリングすることを実現する。アプリケーションネットワークトラフィック506及び/またはライブラリネットワーク506は、私設網520に伝達するためのトラフィックペイロードを含むメッセージと共にVPNに接続するためのシステムコールを含むことができる。アプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィック508に存在するVPNに接続するためのUDPシステムコール(例えば、この例ではconnect()及びsendto()システムコール)を傍受することによって、モバイルデバイスは、管理されているアプリケーション502からすべてのVPNトラフィックを傍受することができる。connect()及びsendto()が本開示において実施例として使用されているが、モバイルデバイスは、様々な異なるタイプのモバイルオペレーションシステム(例えば、iOS、Android(登録商標)、Firefox OS、Windows(登録商標) Phone OS、Blackberry OS、Tizen OS、Ubuntu Touch OSなど)によって作られる既知のすべてのUDPシステムコールについて、アプリケーションネットワークトラフィック506及びライブラリネットワークトラフィック508におけるシステムコールを監視することができる。
幾つかの実施形態では、VPNに接続するためのシステムコールが傍受されると、管理されているアプリケーション502に対してこのようなシステムコールを使用するアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508は、固定ポート610にリダイレクトされる。モバイルデバイスは、私設網520への傍受されたVPNシステムコールに関連するアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508をトンネリングするために、モバイルデバイスからUDP VPN接続が確立される固定ポートを割り振ることができる。各モバイルデバイスは、私設網520との通信を要求している管理されているアプリケーション502のような管理されているモバイルアプリケーションを有することができる。各管理されているアプリケーション502について、モバイルデバイスは、モバイルデバイス上のすべての固定ポートから1つの固定ポートを割り振ることができる。各UDPシステムコールは、各アプリケーショントラフィックパケットが向けられるべき実際の宛先IPアドレスを指定するので、モバイルUDP VPNシステム600は、固定ポート610上のアプリケーション固有のプロキシUDPサーバー614を使用して、アクセスゲートウェイ516を介してシステムコールに関連するトラフィックを直接宛先に向けることができる。VPN接続及びUDPシステムコールが傍受されると、モバイルデバイスは、このようなアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508を固定ポート610にリダイレクトすることができる。
幾つかの実施形態では、アプリケーション固有のプロキシUDPサーバー614は、固定ポート610で生成され、私設網520へのトラフィックのルーティングを処理する。モバイルデバイスの固定ポート610のような各固定ポートでは、固定ポートをプロキシUDPサーバー614に接続して、私設網520への各UDP VPN接続のトラフィックメッセージのルーティングを処理するためのソケットが生成される。プロキシサーバー614は、オンラインウェブサーバーを使用して、管理されているアプリケーション502から私設網520にアプリケーションネットワークトラフィック506をトンネリングするためのプロキシを生成することができる。プロキシサーバー614は、アプリケーション固有のサーバーであり得、それが役割を果たすように構成されたモバイルアプリケーションのアプリケーションネットワークトラフィックのみを処理することができる。これに加えて、またはこれに代えて、モバイルデバイスの固定ポートで生成される各UDP接続及び/またはUDPトンネルは、管理されているアプリケーション502のみにその役割を果たすことができる。したがって、VPN接続は、管理されているアプリケーションのみのアプリケーションネットワークトラフィックをトンネリングするアプリケーション固有のVPNであり得る。
幾つかの実施形態では、管理されているアプリケーション502がUDP接続要求でアプリケーショントラフィック及び/またはシステムコールを傍受する場合、モバイルデバイス502は、モバイルデバイスの固定ポート610上で1つのマイクロVPN接続を開始することができる。モバイルデバイスが2つ以上の管理されているアプリケーションを含むことができるので、複数の異なる固定ポート及びUDPプロキシサーバーは、私設網520へのトラフィックをトンネリングするために、モバイルデバイス上で実行しているこれらの異なる管理されているアプリケーションの各々に対して1つのUDPトンネルを同時にセットアップすることができる。
幾つかの実施形態では、アプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508が固定ポート610に達すると、管理されているアプリケーション502からのこのようなネットワークトラフィックのペイロードは、固定ポート610のUDP VPNプロキシサーバー614に転送され得る。ソケットは、動的ポート610で作成され得、アプリケーション固有のプロキシUDPサーバー614に接続することができる。アプリケーション固有のプロキシUDPサーバー614は、マイクロVPNサーバーであり得る。アプリケーション固有のプロキシUDPサーバー614は、モバイルデバイスにアクセス可能な公衆網から私設網520へのトラフィックのルーティングを処理することができるアクセスゲートウェイ516にソケットを生成することができる。アプリケーション固有のプロキシUDPサーバー614では、管理されているアプリケーション502からのアプリケーションネットワークトラフィック506は、アクセスゲートウェイ516を介して私設網520にトンネリングされるように再パケット化され得る。例えば、アプリケーションネットワークトラフィック506のペイロードは、私設網520へのUDP接続によって使用されるUDPプロトコルに従って抽出されフォーマットされ得る。アクセスゲートウェイ516は、私設網520に送信されるトンネリングプロトコルに従って再パケット化される着信ペイロードパケットを要求することができる。したがって、アプリケーション固有のプロキシUDPサーバー614は、アクセスゲートウェイ516及び/または私設網520によって使用されるプロトコルを識別して、私設網520への送信用に正しくフォーマットされるべき着信アプリケーションネットワークトラフィック506を再パケット化することができる。
モバイルVPNシステム500によると、宛先ネットワークアドレスを指定するシステムコールが管理されているアプリケーション502から傍受されると、アプリケーション固有のUDP VPNトンネルが作成され得、傍受されたシステムコールに関連するアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508をトンネリングして、VPNトンネルに接続することができる。宛先ネットワークアドレスを指定するVPN接続システムコールを傍受すると、モバイルVPNシステム600は、VPN接続システムコールに関連するアプリケーションネットワークトラフィックをトンネリングするために、自動的に固定ポートを割り振ることができ、管理されているアプリケーションに対応する割り振られたポート上にアプリケーション固有のプロキシUDPサーバー614を生成し、そのアプリケーションネットワークトラフィックをトンネリングするために、アクセスゲートウェイ516にソケットを生成し、そのトラフィックをアクセスゲートウェイ516にトンネリングするために、アプリケーション固有のプロキシUDPサーバー614でネットワークトラフィックの再パケット化を処理することができる。
幾つかの実施形態では、モバイルVPNシステム600は、VPN接続システムコールから直接私設網520に向けられるアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508をリダイレクトすることができる。例えば、モバイルVPNシステム600は、UDP VPN接続システムコール(例えば、connect()及びsendto()UDPシステムコール)内で見いだされる実際の宛先IPアドレスを抽出して、そのようなトラフィックを固定ポート610上のアプリケーション固有のプロキシUDPサーバー614に直接リダイレクトすることができる。UDP VPN接続システムコールには宛先IPアドレスがすでに含まれているため、実際の宛先IPアドレスを解決するために、TCPシステムコールとは異なり、動的ポートにリダイレクトする必要はない。アプリケーション固有のプロキシUDPサーバー614は、アクセスゲートウェイ516を介して、私設網520にUDPトラフィックをフォーマットすることができる。アプリケーショントラフィックが私設網520に送信されると、管理されているアプリケーション502とアクセスゲートウェイ516及び/または私設網520との間でアクティブなUDP接続が維持されないことがある。
図7は、DNSトンネリングプロトコルを使用するモバイルVPNを管理する例示的なモバイルVPNシステム700を示す。図7に示す実施形態によると、管理されているアプリケーション502は、例えば、マイクロVPNを使用して公衆網を介してアクセスゲートウェイ516に接続し、アクセスゲートウェイ516を介して、セキュアなポータルにアクセスすることができる。
幾つかの実施形態では、モバイルデバイス及び/または管理されているアプリケーション502は、管理されているアプリケーション502及び管理されているアプリケーション502が通信する任意の関連する動的ライブラリ504によって行われるすべてのシステムコールを傍受する。モバイルVPNシステム700は、管理されているアプリケーション502が、私設網520に接続するためにDNSトンネリングプロトコル及び/またはDNS通信プロトコルを使用することを決定することができる。管理されているアプリケーション502がDNSプロトコルを使用するという決定に応答して、モバイルVPNシステムは、VPNに接続するためのすべてのDNSシステムコールを監視することができる。従来のDNS VPNシステムでは、管理されているアプリケーション502、その関連する動的ライブラリ504、及びモバイルデバイス上で実行している他のモバイルアプリケーションからすべてのDNSクエリを受信するグローバル(例えば、システムレベルの)DNSデーモン714が存在し得る。従来のシステムでは、すべてのモバイルアプリケーションからの各DNSクエリは、グローバルDNSデーモン714宛てである。しかしながら、本開示では、単一のモバイルアプリケーションのDNSトラフィックのみを処理するアプリケーション固有のDNSサーバー708を生成するシステム及び方法について説明する。
幾つかの実施形態では、モバイルVPNシステム700は、VPNに接続するためのすべてのシステムコールを傍受するために、管理されているアプリケーション502及びその関連する動的ライブラリ504によって発行されたすべてのシステムコールを傍受することができる。管理されているアプリケーション502及び/または動的ライブラリ504によって行われるDNS VPNシステムコールは、システムコールに関連するDNSクエリのDNS解決のためのグローバルDNSデーモン714へのパスを含むことができる。グローバルDNSデーモン714及びアプリケーション固有のDNSデーモン710などのDNSデーモンは、管理されているアプリケーション502及び動的ライブラリ504からのDNSクエリを解決し、そのようなシステムコールに関連するアプリケーションネットワークトラフィック506及びライブラリネットワークトラフィック508を命令するように構成され得る。
幾つかの実施形態では、モバイルVPNシステム700が私設網520に接続する、及び/または私設網520と通信する、管理されているアプリケーション502及び動的ライブラリ504によって発行されたDNSシステムコールを傍受すると、モバイルVPNシステムは、アプリケーション固有のDNSデーモン710へのこのようなDNSシステムコールと関連するアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508をリダイレクトすることができる。各管理されているモバイルアプリケーション502について、モバイルVPNシステム700は、ローカルデーモンソケット706を、アプリケーションサンドボックスパス704に生成することができる。モバイルVPNシステム700は、アプリケーション固有のDNSプロキシサーバー708を、ローカルドメインソケット706に通信可能に連結されたアプリケーションサンドボックスパス704に生成することができる。アプリケーション固有のDNSプロキシサーバー708は、私設網520へのアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィックのルーティングを処理するために使用され得るアプリケーション固有のDNSデーモン710を含むことができる。例えば、アプリケーション固有のDNSデーモン710は、リダイレクトされたアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508内のDNSクエリ上でDNS解決を実行して、さらなるDNS解決のために、私設網520及び/またはグローバルDNSデーモン714に転送するために、公衆網716(例えば、インターネット)を介してアクセスゲートウェイ516にそのようなトラフィックを向けることができる。
幾つかの実施形態では、モバイルVPNシステム700は、各DNS VPN接続システムコール内に含まれるDNSパスを、アプリケーション固有のDNSプロキシサーバー708が位置するアプリケーションサンドボックスパス704と置換及び/または書き換えすることができる。管理されているアプリケーション502によって発行された各DNS VPN接続システムコールに関連するアプリケーションネットワークトラフィック506及びライブラリネットワークトラフィック508を、アプリケーションサンドボックスパス704のローカルドメインソケット706にリダイレクトすることによって、モバイルVPNシステム700は、各モバイルアプリケーションのアプリケーショントラフィックを、外部ユーザ/外部プロセスが悪意のある目的(例えば、トラフィックをリダイレクトするためにDNSデーモンをハッキングすること)を追跡及び/または検出することができない固有のサンドボックスパスにリダイレクトすることができる。モバイルVPNシステム700は、ローカルドメインソケット706を生成して、アプリケーション固有のDNSプロキシサーバー708に接続し、私設網520への管理されているアプリケーション502に対するトラフィックメッセージのルーティングを処理することができる。プロキシサーバー708は、オンラインウェブサーバーを使用して、管理されているモバイルアプリケーション502から私設網520へのアプリケーションネットワークトラフィック506をトンネリングするためのプロキシを作成することができる。プロキシサーバー708は、アプリケーション固有のサーバーであり得、それが役割を果たすように構成されたモバイルアプリケーションのアプリケーションネットワークトラフィックのみを処理することができる。それに加えて、またはこの代わりに、ローカルドメインソケット706で生成される各DNS接続及び/またはDNSトンネルは、管理されているアプリケーション502のみの役割を果たすために専用であり得る。したがって、VPN接続は、管理されているモバイルアプリケーションのみのアプリケーションネットワークトラフィックをトンネリングするアプリケーション固有のVPNであり得る。
幾つかの実施形態では、各モバイルデバイス上のMDMプロファイルは、私設網520でVPN接続を必要とする企業に管理されているアプリケーションのリストを維持することができる。管理されているモバイルアプリケーション502のソースコードは、管理されているアプリケーション502から発行されたDNS VPN接続システムコールの受信時に、私設網520への管理されているアプリケーション502のトラフィックのみをトンネリングするために専用のDNSマイクロVPN接続を生成するプログラミング及び/または命令を含むことができる。
幾つかの実施形態では、複数の異なる管理されているアプリケーションは、同一のモバイルデバイス上で実行していることができ、私設網520にDNSトンネルを要求することができる。モバイルデバイスは2つ以上の管理されているアプリケーションを含むことができるので、複数の異なる組のローカルドメインソケット及びアプリケーション固有のDNSプロキシサーバーは、私設網520へのトラフィックをトンネリングするために、モバイルデバイス上で実行しているこれらの異なる管理されているアプリケーションのDNSトラフィック転送を同時にセットアップすることができる。
幾つかの実施形態では、リダイレクトの成功時に、アプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508がアプリケーションサンドボックスパス704のローカルドメインソケット706に達すると、管理されているアプリケーション502からのそのようなネットワークトラフィックのペイロードは、ローカルドメインソケット708によってアプリケーション固有のDNSプロキシサーバー708に伝送され得る。例えば、図5の例示的な実施形態に示すように、管理されているアプリケーション506からのアプリケーションネットワークトラフィック506は、私設網520でドメインネームを指定するDNSクエリを含むことができる。アプリケーション固有のDNSプロキシサーバー708は、そのようなネットワークトラフィック内でDNSクエリを処理して、ネットワークトラフィックの宛先ネットワークアドレスを指定することができる。アプリケーション固有のDNSプロキシサーバー708は、マイクロVPNサーバーであり得る。アプリケーション固有のDNSプロキシサーバー708は、モバイルデバイスにアクセス可能な公衆網から私設網520にトラフィックのルーティングを処理することができる、アクセスゲートウェイ516にソケットを生成することができる。アプリケーション固有のDNSプロキシサーバー708では、管理されているアプリケーション502からのアプリケーションネットワークトラフィック506は、アクセスゲートウェイ516を介して、私設網520トンネリングされるように再パケット化され得る。例えば、アプリケーションネットワークトラフィック506のペイロードは、私設網520へのDNS接続によって使用されるDNSプロトコルに従って抽出及びフォーマットされ得る。アプリケーション固有のDNSプロキシサーバー708は、アプリケーションネットワークトラフィック506のこれらのフォーマットされたペイロードを、公衆網716を介してアクセスゲートウェイ516に送信することができる。例えば、アプリケーション固有のDNSプロキシサーバー708は、アクセスゲートウェイ516がアクセスされ得る公衆網716と直接通信することができる。したがって、アプリケーション固有のDNSプロキシサーバー708は、公衆網716によってアクセスゲートウェイ516に送信され得るアプリケーションネットワークトラフィック506のペイロードをフォーマットすることができる。アクセスゲートウェイ516は、私設網520に送信されるトンネリングプロトコルに従って再パケット化される着信ペイロードパケットを要求していることができる。したがって、アプリケーション固有のDNSプロキシサーバー708は、アクセスゲートウェイ516及び/または私設網520によって使用されるプロトコルを識別して、私設網520に伝送するために正しくフォーマットされる着信アプリケーションネットワークトラフィック506を再パケット化することができる。
幾つかの実施形態では、アプリケーション固有のDNSデーモン710は、アプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508を、さらなるDNS解決及び/または処理のために、グローバルDNSデーモンに向けることができる。アプリケーション固有のDNSデーモン710は、アクセスゲートウェイ516及び/またはモバイルVPNシステム700によって使用されるポリシーを使用して、アプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508の関連するDNSクエリを処理することができる。例えば、アプリケーション固有のDNSデーモン710は、アプリケーション502のアプリケーションサンドボックスパス704を通じて受信された、DNS要求及び/または関連するアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508が、アプリケーション固有のDNSデーモン710によってローカルに解決され得るか否かを判定することができる。アプリケーション固有のDNSデーモン710で実行され得ないアクセスゲートウェイ516のポリシーに従ってさらなる再フォーマットを要求しているDNS要求は、グローバルDNSデーモン714に転送され得る。アプリケーション固有のDNSデーモン710は、クライアントソケット712がグローバルDNSデーモン714に接続するために存在することができる、ローカルドメインソケット706からシステムレベルのDNSパス702に受信されたアプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508をリダイレクトすることができる。アプリケーション固有のDNSデーモン710は、アプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508のDNSクエリ内の宛先パスを、システムレベルのDNSパス702に置換して、トラフィックをパス702のクライアントソケット712に送信することができる。アプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508がクライアントソケット712に達すると、トラフィックは、クライアントソケット712に通信可能に連結されたグローバルDNSデーモン714によって受信され得る。グローバルDNSデーモン714は、アクセスゲートウェイ516のポリシーに従って、アプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508を処理及び/または再フォーマットして、アクセスゲートウェイ516を介して私設網520に伝送するトラフィックを準備することができる。グローバルDNSデーモン714は、公衆網716によって間接的にアクセスゲートウェイと通信することができる。グローバルDNSデーモン714は、公衆網716を介してアクセスゲートウェイ516にネットワークトラフィックを送信するために、モバイルデバイス上に構成されたDNSウェブサーバーを使用することができる。グローバルDNSデーモン714は、アクセスゲートウェイ516がアクセスされ得る公衆網716と直接通信することができる。したがって、グローバルDNSデーモン714は、モバイルデバイス上に構成されたDNSサーバーに、アプリケーションネットワークトラフィック506のペイロードをフォーマットして、公衆網716を介してアクセスゲートウェイ516に送信するように命令することができる。
グローバルDNSデーモン714は、アプリケーション固有のDNSデーモン710がそのようなリダイレクトされたトラフィックパケットに対して実行しなかったDNSクエリを解決することができる。アプリケーションネットワークトラフィック506及び/またはライブラリネットワークトラフィック508の処理時に、グローバルDNSデーモン714は、それらをアクセスゲートウェイ516に送信することができる。
図8は、本明細書で説明する1つ以上の例示的な態様による、アプリケーションごとにモバイルTCP VPN接続を生成する方法を示すフローチャートを表示する。1つ以上の実施形態では、図8の方法及び/またはその1つ以上のステップは、コンピューティングデバイス(例えば、汎用コンピューティングデバイス201)によって実行され得る。他の実施形態では、図8に示す方法及び/またはその1つ以上のステップは、非一時的なコンピュータ可読メモリのような、コンピュータ可読媒体に記憶されたコンピュータに実行可能な命令において具現化され得る。
図8Aに示すように、この方法は、モバイルデバイスがモバイルアプリケーションによって使用されるトンネルプロトコルを決定することができるステップ802で開始することができる。例えば、モバイルデバイスは、モバイルアプリケーションのソースコード及び/または通信プロトコルを調べて、公衆網及び/または私設網と通信するモバイルアプリケーションによって使用される通信プロトコルを決定することができる。モバイルアプリケーションは、それがアクセスする公衆網を使用してアクセスゲートウェイにアクセスして、私設網へのVPNトンネルを作成することができる。これに加えて、またはこれに代えて、公衆網から私設網にアクセスするために使用されるアクセスゲートウェイの通信プロトコル及び/またはトンネリングプロトコルを検査して、モバイルアプリケーションがVPN接続をセットアップするために、アクセスゲートウェイと通信するために使用する通信プロトコルを決定することができる。
ステップ804では、モバイルデバイスは、モバイルアプリケーションがTCPトンネリングプロトコルを使用するか否かを判定することができる。モバイルデバイスは、ステップ802で検査されたシステムコール及び/または通信プロトコルが、使用されているTCP通信及び/またはトンネリングプロトコルのインジケータを含むか否かを監視することにより、モバイルVPNシステムがTCPトンネリングプロトコルを使用するか否かを判定することができる。例えば、モバイルデバイスは、既知のTCPシステムコール、通信プロセス、及び/またはTCP通信プロトコルを示すフックについて、モバイルアプリケーションからの通信及び/またはシステムコールを検査することができる。モバイルアプリケーションがTCPトンネリングプロトコルを使用しないと判定する場合、この方法は、図8Bのステップ832に進むことができる。
ステップ806では、モバイルアプリケーションがTCPトンネリングプロトコルを使用すると判定する場合、モバイルデバイスは、モバイルアプリケーションからのシステムコール及びモバイルアプリケーションによって使用される任意のサードパーティーライブラリを傍受することができる。モバイルデバイスは、VPNネットワーク(例えば、connect()及びconnect()システムコール)に接続するための特定のTCPシステムコールについて、モバイルアプリケーション及び/またはその関連するライブリによって発行されたすべてのシステムコールを検査することができる。モバイルデバイスは、VPNネットワークに接続するためのすべてのシステムコールを識別し、またそのような傍受されたシステムコールに関連するすべてのアプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックを特定することもできる。
ステップ808では、モバイルデバイスは、モバイルアプリケーション及び/またはその関連するサードパーティーライブラリによって行われる各傍受されたシステムコールから宛先ネットワークを特定することができる。例えば、VPN接続システムコール及び/またはそれらに関連するトラフィックメッセージは、1つ以上の宛先ネットワークアドレス及び/または中間アドレスを含むことができる。モバイルデバイスは、モバイルアプリケーション及び/またはその関連するライブラリからのアプリケーショントラフィックメッセージ及び/またはシステムコール内に含まれるそのようなネットワークアドレスを識別して、そのようなアプリケーショントラフィックを最適にルーティングする方法を決定することができる。その特定のアプリケーションについて、以前にモバイルデバイスによって遭遇されていない宛先アドレスが検出された場合、新しい宛先ネットワークを提供するために、新しい動的ポートを生成することができる。具体的には、モバイルデバイスは、動的ポートを生成して、その動的ポートとトラフィックにルーティングするために生成されたネットワークアドレスを関連付けることができる。モバイルデバイスは、新たに生成された動的ポートとそれに対応する宛先ネットワークアドレスとの関連付けによって、モバイルデバイスの動的ポートと宛先ネットワークアドレスとのマッピングを更新することができる。
ステップ810では、モバイルデバイスは、宛先ネットワークアドレスを使用することにより、トラフィックをルーティングするための動的ポートを特定することができる。動的ポートの宛先ネットワークアドレスへのマッピングを参照することによって、モバイルデバイスは、モバイルアプリケーション及び/またはその関連する動的ライブラリから宛先ネットワークアドレスへトラフィックをルーティングするために使用されるべき動的ポートを特定することができる。
ステップ812では、モバイルデバイスは、アプリケーション固有のプロキシサーバーを識別された動的ポートで生成することができる。動的ポートでは、アクセスゲートウェイを介した私設網への管理されているアプリケーションのトラフィックのTCP接続を維持するように構成されたプロキシサーバーにソケットを作成することができる。例えば、プロキシサーバーは、対応する動的ポート上のモバイルデバイスと、私設網へアプリケーショントラフィックを導かねばならないアクセスゲートウェイとの間でTCP接続を開始して維持するように生成することができる。アプリケーション固有のプロキシサーバーは、管理されているモバイルアプリケーションによって行われるシステムコールを傍受し、役割を果たすように構成されたネットワークアドレス宛てのトラフィックを選択するように構成することができる。アプリケーション固有のプロキシサーバーは、モバイルデバイスにアクセス可能な公衆網から私設網へのトラフィックのルーティングを処理するアクセスゲートウェイにソケットを生成することができる。アプリケーション固有のプロキシサーバーでは、管理されているアプリケーションからのアプリケーションネットワークトラフィックは、アクセスゲートウェイを介して、私設網にトンネリングされるように再パケット化され得る。例えば、アプリケーションネットワークトラフィックのペイロードは、私設網へのTCP接続によって使用されるTCPプロトコルに従って抽出されてフォーマットされ得る。アクセスゲートウェイは、私設網に送信されるトンネリングプロトコルに従って再パケット化される着信ペイロードパケットを要求することができる。したがって、アプリケーション固有のプロキシサーバーは、アクセスゲートウェイ及び/または私設網によって使用されるプロトコルを識別して、私設網に伝送するために正しくフォーマットされる着信アプリケーションネットワークトラフィックメッセージを再パケット化することができる。
ステップ814では、モバイルデバイスは、識別された動的ポートのプロキシサーバーとアクセスゲートウェイとの間にTCP接続を確立することができる。例えば、アプリケーション固有のTCP VPNトンネルは、プロキシサーバーによって生成されて、アクセスゲートウェイを介して私設網へのVPNトンネルを接続するために、アプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックをトンネリングすることができる。モバイルデバイスはまた、関連するアプリケーション固有のプロキシサーバーに、アクセスゲートウェイにソケットを生成するように命令することもできる。モバイルデバイスは、アプリケーション固有のプロキシサーバーに、対応する動的ポートに向けられ得る将来のTCPトラフィック用のアクセスゲートウェイとの確立されたTCP接続を維持するように命令することができる。モバイルデバイスは、アプリケーション固有のプロキシサーバーに、モバイルアプリケーションがモバイルデバイス上で実行している限り、将来の使用のためにTCP接続を維持するためにネットワーク管理メッセージを交換するよう命令することができる。
ステップ816では、モバイルデバイスは、ターゲット宛先ネットワークアドレス宛てのアプリケーショントラフィックを検出することができる。例えば、アプリケーション固有のプロキシサーバー及び/またはモバイルデバイスは、管理されているアプリケーションがVPN接続に接続するために、システムコールを発行したことを検出することができる。これに加えて、またはこれに代えて、アプリケーション固有のプロキシサーバーは、役割を果たすように構成された宛先アドレスが管理されているアプリケーションによって生成されたアプリケーションネットワークトラフィックを検出することができる。管理されているアプリケーションは、モバイルデバイス及び/またはアプリケーション固有のプロキシサーバーの命令の下で、アプリケーショントラフィックを、プロキシサーバーへの対応する動的ポートのソケットを介してアプリケーション固有のプロキシサーバーに向けることができる。
ステップ818では、モバイルデバイスは、動的ポートで検出されたアプリケーショントラフィックのペイロードを、プロキシサーバーに伝えることができる。例えば、モバイルデバイスは、関連するアプリケーション固有のプロキシサーバーに、アプリケーションゲートウェイによって使用されるTCPプロトコル及び/または通信規格に従って、アプリケーションネットワークトラフィックのペイロードを再パケット化するように命令することができる。
ステップ820では、モバイルデバイスは、ペイロードがアプリケーショントラフィックの宛先アドレスに直接送信され得るか否かを判定することができる。モバイルデバイスは、ネットワークトラフィックが公衆網アドレス及び/またはモバイルデバイスにアクセス可能な公衆網を介して私設網に送信されるか否かを判定することができる。例えば、幾つかの実施形態では、アプリケーショントラフィックの宛先ネットワークアドレスは、公衆網(例えば、インターネット)によってモバイルデバイスにアクセス可能なアクセスゲートウェイを介してのみアクセス可能な私設網アドレスであり得る。他の実施形態では、アプリケーショントラフィックの宛先ネットワークアドレスは、アクセスゲートウェイを介してトラフィックをルーティングせずに、モバイルデバイスにアクセス可能であり得る。モバイルデバイスは、アプリケーションネットワークトラフィックの宛先ネットワークアドレスを検査して、アプリケーショントラフィックを、その最終宛先に送信するためにさらなる処理及び/または再パケット化が必要か否かを判定することができる(例えば、アクセスゲートウェイを介してその宛先にルーティングされるアプリケーショントラフィックをフォーマットする)。ペイロードが宛先ネットワークアドレスに直接送信できるか否か、またはアクセスゲートウェイを介してトンネリングする必要があるか否かを判定する際に、モバイルデバイスは、アプリケーション固有のTCPサーバーが、アプリケーショントラフィックの宛先ネットワークアドレスにアクセスできるか否か、及び/または宛先ネットワークアドレスの要件に従って、アプリケーションネットワークをフォーマットすることができるか否かを判定することができる。アプリケーション固有のTCPサーバーが実行できないようにさらに再フォーマットする必要のあるアプリケーションネットワークトラフィックは、アクセスゲートウェイに転送される可能性がある。
ステップ822では、ペイロードがモバイルデバイスから宛先ネットワークアドレスに直接送信され得ると判定したことに応答して、モバイルデバイスは、アプリケーショントラフィックを、その宛先ネットワークアドレスに直接送信することができる。例えば、アプリケーション固有のTCPプロキシサーバーは、トラフィックがアドレス指定されるべき宛先ネットワークアドレスを指定することができる。アプリケーション固有のデーモンは、アプリケーショントラフィックを適切に転送するために、宛先ネットワークアドレスによって使用される通信プロトコルに従って、受信されたアプリケーショントラフィックのペイロードを再パケット化することができる。
ステップ824では、ペイロードが宛先アドレスに直接送信できないと判定したことに応答して、モバイルデバイスは、アプリケーショントラフィックを、プロキシサーバーからアクセスゲートウェイに送信することができる。アプリケーショントラフィックがアプリケーション固有のプロキシサーバーによって適切にフォーマットされると、モバイルデバイスは、プロキシサーバーに、再パケット化されたアプリケーショントラフィックをアクセスゲートウェイに送信するように命令することができる。アクセスゲートウェイは、アプリケーショントラフィックを私設網に送信するように、モバイルデバイスによって命令され得る。アプリケーション固有のTCPプロキシサーバーは、アプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックの宛先パスを、アクセスゲートウェイの宛先パスに置換することができる。アプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックが、アクセスゲートウェイに達すると、モバイルデバイスは、アクセスゲートウェイのポリシーに従って、アプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックを処理及び/または再フォーマットして、アクセスゲートウェイを介して私設網に伝送するために、そのようなトラフィックを準備するようにアクセスゲートウェイに命令することができる
図8Bは、本明細書に記載された1つ以上の例示的な態様に従って、アプリケーションごとにモバイルUDP VPN接続を生成する方法を示すフローチャートを表示する。1つ以上の実施形態では、図8Bの方法及び/またはその1つ以上のステップは、コンピューティングデバイス(例えば、汎用コンピューティングデバイス201)によって実行され得る。他の実施形態では、図8B及び/またはその1つ以上のステップは、非一時的なコンピュータ可読メモリのようなコンピュータ可読媒体に記憶されたコンピュータに実行可能な命令において具現化され得る。
図8Bに示すように、ステップ832では、モバイルデバイスは、モバイルアプリケーションがUDPトンネリングプロトコルを使用するか否かを判定することができる。モバイルデバイスは、ステップ802で検査されたシステムコール及び/または通信プロトコルが、使用されているUDP通信及び/またはトンネリングプロトコルのインジケータを含むか否かを監視することにより、モバイルVPNシステムがUDPトンネリングプロトコルを使用するか否かを判定することができる。例えば、モバイルデバイスは、既知のUDPシステムコール、通信プロセス、及び/またはUDP通信プロトコルを示すフックについて、モバイルアプリケーションからの通信及び/またはシステムコールを検査することができる。モバイルアプリケーションがUDPトンネリングプロトコルを使用しないと判定する場合、この方法は、図8Cのステップ852に進む。
ステップ834では、モバイルアプリケーションがUDPトンネリングプロトコルを使用すると判定する場合、モバイルデバイスは、モバイルアプリケーションからのシステムコール及びモバイルアプリケーションによって使用される任意のサードパーティーライブラリを傍受することができる。モバイルデバイスは、VPNネットワーク(例えば、connect()及びsendto()システムコール)に接続するための特定のUDPシステムコールについて、モバイルアプリケーション及び/またはその関連するライブリによって発行されたすべてのシステムコールを検査することができる。モバイルデバイスは、VPNネットワークに接続するためのすべてのシステムコールを識別し、またそのような傍受されたシステムコールに関連するすべてのアプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックを特定することもできる。
ステップ836では、モバイルデバイスは、モバイルアプリケーション及び/またはその関連するサードパーティーライブラリによって行われる各傍受システムコールから宛先ネットワークを特定することができる。例えば、VPN接続システムコール及び/またはそれらに関連するトラフィックメッセージは、1つ以上の宛先ネットワークアドレス(例えば、私設網アドレスのIPアドレス)を含むことができる。モバイルデバイスは、モバイルアプリケーション及び/またはその関連するライブラリからのアプリケーショントラフィックメッセージ及び/またはシステムコールに含まれるネットワークアドレスを識別して、そのようなアプリケーショントラフィックを最適にルーティングする方法を決定する。
ステップ838では、モバイルデバイスは、宛先ネットワークアドレスに対応する固定ポートのマッピングを使用して、アプリケーショントラフィックをルーティングする固定ポートを特定することができる。例えば、モバイルデバイスは、モバイルデバイスのどの固定通信ポートが、トラフィックを、対応する管理されているアプリケーションからアクセスゲートウェイにトラフィックを転送するために使用されるプロキシサーバーにトンネリングするために割り当てられたかを特定することができる。管理されているアプリケーションからアプリケーショントラフィックをトンネリングするために使用する固定ポートを特定する際に、モバイルデバイスは、どの通信ポートが利用可能であるか、及び/または管理されているアプリケーションを提供するためにすでに専用化されているかを判定することができる。
ステップ840では、モバイルデバイスは、アプリケーション固有のUDPプロキシサーバーを、識別された固定ポートに生成することができる。モバイルデバイスの識別された固定通信ポートでは、管理されているアプリケーションのトラフィックを処理し、アクセスゲートウェイを介して前記トラフィックを私設網にトンネリングするように構成されたプロキシサーバーにソケットを生成することができる。アプリケーション固有のプロキシサーバーは、それが役割を果たすように構成された管理されているモバイルアプリケーションに対して行われるシステムコールを傍受するように構成され得る。アプリケーション固有のプロキシサーバーは、モバイルデバイスにアクセス可能な公衆網から私設網へのトラフィックのルーティングを処理することができるアクセスゲートウェイにソケットを生成することができる。アプリケーション固有のプロキシサーバーでは、管理されているアプリケーションからのアプリケーションネットワークトラフィックは、アクセスゲートウェイを介して私設網にトンネリングされるように再パケット化され得る。例えば、アプリケーションネットワークトラフィックのペイロードは、私設網と通信するアクセスゲートウェイによって使用されるUDPプロトコルに従って抽出及びフォーマットされ得る。アクセスゲートウェイは、私設網に送信されるUDPトンネリングプロトコルに従って、再パケット化される着信ペイロードパケットを要求することができる。したがって、アプリケーション固有のプロキシサーバーは、アクセスゲートウェイ及び/または私設網によって使用されるプロトコルを識別して、私設網に送信するために正しくフォーマットされる着信アプリケーションネットワークトラフィックを再パケット化することができる。
ステップ842では、モバイルデバイスは、ターゲット宛先アドレス宛てのアプリケーショントラフィックを検出することができる。例えば、アプリケーション固有のプロキシサーバー及び/またはモバイルデバイスは、管理されているアプリケーションがVPN接続に接続するためのシステムコールを発行したことを検出することができる。これに加えて、またはこれに代えて、アプリケーション固有のプロキシサーバーは、役割を果たすように構成された宛先アドレスを備えたアプリケーションネットワークトラフィックが管理されているアプリケーションによって生成されたことを検出することができる。管理されているアプリケーションは、モバイルデバイス及び/またはアプリケーション固有のプロキシサーバーの命令の下で、アプリケーショントラフィックを、プロキシサーバーへの対応する固定ポートのソケットを介してアプリケーション固有のプロキシサーバーに向けることができる。
ステップ844では、モバイルデバイスは、固定ポートのアプリケーショントラフィックのペイロードを、UDPプロキシサーバーに伝送することができる。例えば、モバイルデバイスは、関連するアプリケーション固有のプロキシサーバーに、アプリケーションゲートウェイによって使用されるTCPプロトコル及び/または通信規格に従って、アプリケーションネットワークトラフィックのペイロードを再パケット化するように命令することができる。
ステップ846では、モバイルデバイスは、ペイロードが、アプリケーショントラフィックの宛先アドレスに直接送信されるか否かを判定することができる。モバイルデバイスは、ネットワークトラフィックがモバイルデバイスにアクセス可能な公衆網を介して、公衆網アドレス及び/または私設網に送信されるか否かを判定することができる。例えば、幾つかの実施形態では、アプリケーショントラフィックの宛先ネットワークアドレスは、公衆網(例えば、インターネット)によってモバイルデバイスにアクセス可能なアクセスゲートウェイを介してのみアクセス可能な私設網アドレスであり得る。他の実施形態では、アプリケーショントラフィックの宛先ネットワークアドレスは、アクセスゲートウェイを介してトラフィックをルーティングせずにモバイルデバイスにアクセス可能であり得る。モバイルデバイスは、アプリケーションネットワークトラフィックの宛先ネットワークアドレスを検査して、アプリケーショントラフィックを、その最終宛先に送信するためにさらなる処理及び/または再パケット化が必要か否かを判定することができる(例えば、アクセスゲートウェイを介してその宛先にルーティングされるアプリケーショントラフィックをフォーマットする)。ペイロードが宛先ネットワークアドレスに直接送信できるか否か、またはアクセスゲートウェイを介してトンネリングする必要があるか否かを判定する際に、モバイルデバイスは、アプリケーション固有のUDPプロキシサーバーが、アプリケーショントラフィックの宛先ネットワークアドレスにアクセスできるか否か、及び/または宛先ネットワークアドレスの要件に従って、アプリケーションネットワークをフォーマットすることができるか否かを判定することができる。アプリケーション固有のUDPプロキシサーバーが実行できないようにさらに再フォーマットすることを必要とするアプリケーションネットワークトラフィックは、アクセスゲートウェイに転送され得る。
ステップ848では、ペイロードがモバイルデバイスから宛先ネットワークアドレスに直接送信され得ると判定したことに応答して、モバイルデバイスは、アプリケーショントラフィックを、その宛先ネットワークアドレスに直接送信することができる。例えば、アプリケーション固有のUDPプロキシサーバーは、トラフィックがアドレス指定されるべき宛先ネットワークアドレスを指定することができる。アプリケーション固有のデーモンは、アプリケーショントラフィックを適切に転送するために、宛先ネットワークアドレスによって使用される通信プロトコルに従って、受信されたアプリケーショントラフィックのペイロードを再パケット化することができる。
ステップ850では、ペイロードが宛先アドレスに直接送信できないと判定したことに応答して、モバイルデバイスは、アプリケーショントラフィックを、UDPプロキシサーバーからアクセスゲートウェイに送信することができる。アプリケーショントラフィックがアプリケーション固有のプロキシサーバーによって適切にフォーマットされると、モバイルデバイスは、プロキシサーバーに、再パケット化されたアプリケーショントラフィックをアクセスゲートウェイに送信するように命令することができる。アクセスゲートウェイは、アプリケーショントラフィックを私設網に送信するように、モバイルデバイスによって命令され得る。アプリケーション固有のUDPプロキシサーバーは、アプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックの宛先パスを、アクセスゲートウェイの宛先パスに置換することができる。アプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックが、アクセスゲートウェイに達すると、モバイルデバイスは、アクセスゲートウェイのポリシーに従って、アプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックを処理及び/または再フォーマットして、アクセスゲートウェイを介して私設網に伝送するために、そのようなトラフィックを準備するようにアクセスゲートウェイに命令することができる
図8Cは、本明細書に記載の1つ以上の例示的な態様による、アプリケーションごとにモバイルDNS VPN接続を生成する方法を解説するフローチャートを示す。1つ以上の実施形態では、図8Cの方法及び/またはその1つ以上のステップは、コンピューティングデバイス(例えば、汎用コンピューティングデバイス201)によって実行され得る。他の実施形態では、図8Cに示す方法及び/またはその1つ以上のステップは、非一時的なコンピュータ可読メモリのような、コンピュータ可読媒体に記憶されたコンピュータに実行可能な命令において具現化され得る。
図8Cに示すように、ステップ852では、モバイルデバイスは、モバイルアプリケーションがDNSトンネリングプロトコルを使用するか否かを判定することができる。モバイルデバイスは、ステップ802で検査されたシステムコール及び/または通信プロトコルがDNSのインジケータを含むか否かを監視することにより、モバイルVPNシステムが、DNSトンネリングプロトコルを使用するか否かを判定することができる。例えば、モバイルデバイスは、既知のDNSシステムコール、DNSクエリ、通信プロセス、及び/またはDNS通信プロトコルを示すフックについて、モバイルアプリケーションからの通信及び/またはシステムコールを検査することができる。モバイルアプリケーションがDNSトンネリングプロトコルを使用しないと判定し、モバイルアプリケーションもTCPまたはUDPトンネリングプロトコルを使用しないと判定した場合、この方法は終了することができる。
ステップ854では、モバイルアプリケーションがDNSトンネリングプロトコルを使用すると判定する場合、モバイルデバイスは、モバイルアプリケーションからのシステムコール及びモバイルアプリケーションによって使用される任意のサードパーティーライブラリを傍受することができる。モバイルデバイスは、VPNネットワークに接続するための特定のDNSシステムコールについて、モバイルアプリケーション及び/またはその関連するライブラリによって発行されたすべてのシステムコールを検査することができる。モバイルデバイスは、VPNネットワークに接続するためのすべてのシステムコールを識別し、またそのような傍受されたシステムコールに関連するすべてのアプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックを特定することもできる。
ステップ856では、モバイルデバイスは、アプリケーション固有のプロキシサーバーを、ローカルドメインソケットで生成することができる。モバイルデバイスは、アプリケーション固有のDNSプロキシサーバーが私設網にトンネリングされるトラフィックを受信することができるアプリケーションサンドボックスパスを生成することができる。モバイルデバイスは、管理されているアプリケーションのトラフィックを処理して、前記トラフィックを、アクセスゲートウェイを介して私設網にトンネリングするように構成されたプロキシサーバーにローカルソケットを生成することができる。モバイルデバイスはまた、アプリケーションサンドボックスで生成されたローカルソケットに通信可能に連結されたアプリケーション固有のプロキシサーバーを生成することもできる。アプリケーション固有のプロキシサーバーは、1つの管理されているアプリケーション専用に生成され、アクセスゲートウェイを介してそのトラフィックを私設網にトンネリングすることができる。アプリケーション固有のプロキシサーバーは、役割を果たすように構成された管理されているモバイルアプリケーションに対して行われたシステムコールを傍受するように構成され得る。アプリケーション固有のプロキシサーバーは、モバイルデバイスにアクセス可能な公衆網から私設網へのトラフィックのルーティングを処理することができるアクセスゲートウェイにソケットを生成することができる。モバイルデバイスは、アプリケーション固有のデーモンを、アプリケーション固有のDNSプロキシサーバーで生成して、それに向けられたDNSアプリケーショントラフィックのDNSクエリを解決することができる。アプリケーション固有のプロキシサーバーでは、管理されているアプリケーションからのアプリケーションネットワークトラフィックは、アクセスゲートウェイを介して、私設網にトンネリングされるように再パケット化され得る。例えば、プロキシサーバーは、アプリケーションネットワークトラフィックのペイロードを抽出して、私設網と通信するアクセスゲートウェイによって使用されるDNSプロトコルに従ってそれをフォーマットするように構成され得る。アクセスゲートウェイは、私設網に送信されるDNSトンネリングプロトコルに従って再パケット化される着信ペイロードパケットを要求していることができる。したがって、アプリケーション固有のプロキシサーバーは、アクセスゲートウェイ及び/または私設網によって使用されるプロトコルを識別して、私設網に伝送するために正しくフォーマットされる着信アプリケーションネットワークトラフィックメッセージを再パケット化することができる。
ステップ858では、モバイルデバイスは、アプリケーションサーバーとシステム全体のDNSデーモンとの間にリンクを生成することができる。例えば、モバイルデバイスは、アプリケーション固有のプロキシDNSサーバーとシステム全体のDNSデーモンとの間にソケットを生成することができる。このようなリンクは、アプリケーション固有のDNSデーモンが解決できない可能性のあるアプリケーショントラフィックを転送するために生成され、システム全体のDNSデーモンの支援を必要とする可能性がある。
ステップ860では、モバイルデバイスは、傍受されたシステムコールからのDNSデーモンアドレスを特定することができる。このような傍受されたシステムコールに関連するVPN接続及び/またはアプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックは、システムコール及び/またはアプリケーショントラフィックが向けられるDNSデーモンのアドレスを特定するために検査され得る。DNSトラフィック及び/またはシステムコールは、DNSデーモンによって解決される必要があるDNSクエリを含み、DNSデーモンのパス及び/またはアドレスを含むことができる。
ステップ862では、モバイルデバイスは、DNSデーモンアドレスとローカルドメインソケットへのアプリケーションサンドボックスパスを置換して、アプリケーション固有のプロキシサーバーに接続することができる。ステップ860で、傍受されたシステムコールからDNSデーモンアドレス及び/またはパスを特定すると、モバイルデバイスは、システムコール及び/またはアプリケーションネットワークトラフィック内のDNSデーモンのパスと、アプリケーション固有のDNSデーモンが実行できるアプリケーションサンドボックスパスを置換することができる。モバイルデバイスは、アプリケーションがVPNを介して送信されるシステムコール及び/またはアプリケーショントラフィックを生成して、対応する識別されたモバイルアプリケーションのアプリケーション固有DNSデーモンが実行しているアプリケーションプロキシサーバーを特定する。モバイルデバイスは、このようなシステムコール及び/または関連するアプリケーショントラフィックを、識別されたプロキシサーバーに向けることができる。
ステップ864では、アプリケーション固有のDNSデーモンのアプリケーションからのDNSクエリは、ローカルドメインソケットで受信され得る。モバイルデバイスは、所与のアプリケーションのDNSクエリ、システムコール、及び/またはアプリケーショントラフィックを転送するために使用するアプリケーション固有のプロキシサーバーを決定すると、モバイルデバイスは、そのモバイルアプリケーションからのDNSクエリを、識別されたプロキシサーバーのアプリケーション固有のDNSデーモンに転送する。アプリケーション固有のプロキシサーバーのローカルソケットは、このようなトラフィックメッセージを受信することができ、具体的には、このようなトラフィックメッセージに対するDNSクエリを受信することができる。
ステップ866では、モバイルデバイスは、アプリケーション固有のデーモンが受信されたDNSクエリを解決するか否かを判定することができる。モバイルデバイスは、アプリケーション固有のプロキシサーバーに、ステップ864で受信したDNSクエリを解決できるか否かを判定するように命令することができる。例えば、アプリケーション固有のDNSデーモンは、アクセスゲートウェイによって使用されるポリシーを使用して、アプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックの関連するDNSクエリを処理するように命令され得る。例えば、アプリケーション固有のDNSデーモンは、対応するアプリケーションのアプリケーションサンドボックスパスを介して受信された、DNS要求及び/または関連するアプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックがアプリケーション固有のDNSデーモンによってローカルに解決され得るか否かを判定することができる。アクセスゲートウェイのポリシーに従ってさらに再フォーマットする必要があり、アプリケーション固有のDNSデーモンで実行できないDNS要求は、システムレベルのDNSデーモンに転送され得る。
ステップ868では、アプリケーション固有のデーモンがDNSクエリを解決できないという判定に応答して、モバイルデバイスは、DNSクエリを、システムレベルのDNSデーモンに送信することができる。例えば、アプリケーション固有のDNSデーモンは、ローカルドメインソケットから受信したアプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックを、ステップ858で生成されたリンク(例えば、ソケット)によってシステムレベルのDNSパスにリダイレクトすることができる。アプリケーション固有のDNSデーモンは、プロキシサーバーで解決できないアプリケーションネットワークトラフィック及び/ライブラリネットワークトラフィックのDNSクエリ内の宛先パスを、システムレベルのDNSパスの宛先パスと置換して、システムレベルのデーモンにトラフィックを送信することができる。アプリケーションネットワークトラフィック及び/ライブラリネットワークトラフィックがシステムレベルのDNSデーモンに達すると、モバイルデバイスは、システムレベルのDNSデーモンに、アクセスゲートウェイのポリシーに従ってアプリケーションネットワークトラフィック及び/またはライブラリネットワークトラフィックを処理及び/または再フォーマットして、アクセスゲートウェイを介して私設網に伝送するためにそのようなトラフィックを準備するように命令することができる。システムレベルのDNSデーモンは、アプリケーション固有のDNSデーモンがこのようなリダイレクトされたトラフィックパケットに対して実行しなかったDNSクエリを解決することができる。
ステップ870では、アプリケーション固有のデーモンがDNSクエリを解決することができるという判定に応答して、モバイルデバイスは、アプリケーション固有のプロキシサーバーのアプリケーション固有のデーモンに、アクセスゲートウェイのVPNプロトコルに従ってDNSクエリを解決するように命令することができる。例えば、アプリケーション固有のデーモンは、トラフィックがアドレス指定されるべき私設網の宛先ネットワークアドレスを指定することができる。アプリケーション固有のデーモンは、アクセスゲートウェイを介してアプリケーショントラフィックを私設網に転送するために、アクセスゲートウェイによって使用されるDNS及び/または通信プロトコルに従って受信されたアプリケーショントラフィックのペイロードを再パケット化することができる。
ステップ872では、モバイルデバイスは、DNS解決時に、アプリケーション固有のプロキシサーバーからアクセスゲートウェイにアプリケーショントラフィックを送信することができる。アプリケーショントラフィックが適切にフォーマット及び解決されると、モバイルデバイスは、プロキシサーバーに、再パケット化されたアプリケーショントラフィックをアクセスゲートウェイに送信するように命令することができる。アクセスゲートウェイは、アプリケーショントラフィックを私設網に送信するように、モバイルデバイスによって命令され得る。
主題は、構造的特徴及び/または方法的な作用に特化した言語で説明されたが、付属の請求項において定義された主題は、上記で説明された特定の機能または作用に必ずしも限定されないことが理解されるべきである。むしろ、上記で説明された特定の特徴及び作用は、下記の請求項の例示の実施例として説明される。
関連出願の相互参照
本出願は、「MICRO VPN TUNNEING FOR MOBILE PLATFORM」と題する、2015年5月11日に出願された。米国非仮特許出願第14/708,464号の優先権を主張するこの先行出願は、その全体が参照により本明細書に組み込まれる。

Claims (15)

  1. モバイルデバイスのプロセッサによって、前記モバイルデバイス上で実行しているモバイルアプリケーションが私設網との通信を要求していることを判定することと、
    前記プロセッサによって、前記モバイルデバイス上で実行している前記モバイルアプリケーションによって発行された、前記私設網と通信するための、1つ以上のシステムコールを傍受することと、
    前記プロセッサによって、及び前記モバイルデバイスのポート上で、前記モバイルアプリケーションから前記私設網へ通信を送信するための仮想私設網(VPN)サーバーへの通信リンクを生成することと、
    前記プロセッサによって、1つ以上のメッセージを、前記モバイルアプリケーションから、前記私設網に転送するためのアクセスゲートウェイに送信するように、前記VPNサーバーに命令することと、を含み、
    前記ポートは前記モバイルデバイスの動的ポートであり、前記VPNサーバーは、伝送制御プロトコル(TCP)サーバーであり、
    前記VPNサーバーへの前記通信リンクの生成は、前記プロセッサによって、前記動的ポート上に前記TCPサーバーを生成することと、前記プロセッサによって、前記動的ポートを前記TCPサーバーにTCP接続することと、をさらに含む、方法。
  2. 記プロセッサによって、前記私設網との通信を要求している複数のモバイルアプリケーションの各々に、異なる動的ポートをアサインすることにより、前記モバイルアプリケーションからの通信をルーティングするために使用される前記動的ポートを割り当てることをさらに含む、請求項1に記載の方法。
  3. 前記プロセッサによって、前記1つ以上のシステムコールに関連付けられた少なくとも1つのメッセージの宛先ネットワークアドレスを特定することと、
    前記プロセッサによって、前記モバイルデバイスのポートへの宛先ネットワークアドレスのマッピングを使用して、前記モバイルアプリケーションから前記私設網に通信をルーティングするために使用される前記ポートを特定することと、をさらに含み、前記特定されたポートが、前記マッピングの前記少なくとも1つのメッセージの前記宛先ネットワークアドレスに対応する、請求項1に記載の方法。
  4. モバイルデバイスのプロセッサによって、前記モバイルデバイス上で実行しているモバイルアプリケーションが私設網との通信を要求していることを判定することと、
    前記プロセッサによって、前記モバイルデバイス上で実行している前記モバイルアプリケーションによって発行された、前記私設網と通信するための、1つ以上のシステムコールを傍受することと、
    前記プロセッサによって、及び前記モバイルデバイスのポート上で、前記モバイルアプリケーションから前記私設網へ通信を送信するための仮想私設網(VPN)サーバーへの通信リンクを生成することと、
    前記プロセッサによって、1つ以上のメッセージを、前記モバイルアプリケーションから、前記私設網に転送するためのアクセスゲートウェイに送信するように、前記VPNサーバーに命令することと、
    前記プロセッサによって、前記1つ以上のメッセージが、複数の異なるネットワークアドレス宛であると判定することと、
    前記プロセッサによって、複数のTCPサーバーを生成することであって、前記複数のTCPサーバーの各TCPサーバーは、前記モバイルデバイスの異なる動的ポート上で生成され、複数の動的ポートの各動的ポートは、前記複数の異なるネットワークアドレスの各々について、前記モバイルアプリケーションから前記私設網に通信を送信するために生成される、生成することと、
    前記プロセッサによって、複数のTCP接続を生成することと、
    をさらに含み、
    それぞれの前記TCP接続は、前記複数の動的ポートの各々から前記私設網に、前記モバイルアプリケーションからの通信を送信するための通信リンクに対応してい、方法。
  5. 前記プロセッサによって、前記モバイルアプリケーションからの前記1つ以上のメッセージが、前記私設網宛てであると判定することと、
    前記プロセッサによって、前記1つ以上のメッセージのペイロードを、前記モバイルデバイスの前記ポートの前記VPNサーバーに送信することと、をさらに含む、請求項1に記載の方法。
  6. 前記1つ以上のメッセージを、前記モバイルアプリケーションから前記アクセスゲートウェイに送信するように、前記VPNサーバーに命令することは、
    前記プロセッサによって、前記1つ以上のメッセージを、前記私設網に送信するために使用される前記通信リンクのトンネリングプロトコルに従って、前記1つ以上のメッセージから1つ以上のパケットを生成するように、前記ポートの前記VPNサーバーに命令することと、
    前記プロセッサによって、前記トンネリングプロトコルに従って処理された前記1つ以上のパケットを、前記通信リンクを介して前記私設網に送信するように、前記VPNサーバーに命令することと、をさらに含む、請求項1に記載の方法。
  7. モバイルデバイスのプロセッサによって、前記モバイルデバイス上で実行しているモバイルアプリケーションが私設網との通信を要求していると判定することと、
    前記プロセッサによって、前記モバイルデバイス上で実行している前記モバイルアプリケーションによって発行された前記私設網と通信するための1つ以上のシステムコールを傍受することと、
    前記1つ以上のシステムコールが、ドメインソケットパスにアドレス指定されているという判定に応答して、前記1つ以上のシステムコールの前記ドメインソケットパスを、前記モバイルアプリケーションに対応するサンドボックスパスと置換することと、
    前記プロセッサによって、前記モバイルアプリケーションから前記私設網へ通信を送信するための前記サンドボックスパスの仮想私設網(VPN)サーバーへの通信リンクを生成することと、
    前記プロセッサによって、1つ以上のメッセージを、前記モバイルアプリケーションから、前記私設網に転送するためのアクセスゲートウェイに送信するように、前記VPNサーバーに命令することと、
    前記プロセッサによって、前記1つ以上のシステムコールがシステムレベルのDNSプロセスにアドレス指定されている少なくとも1つのドメインネームシステム(DNS)クエリを含むことを判定することと、を含み、
    前記1つ以上のシステムコールの前記ドメインソケットパスを、前記サンドボックスパスと置換することは、さらに、
    前記プロセッサによって、前記モバイルアプリケーションから前記私設網に通信を送信するためのローカルドメインソケットに前記サンドボックスパスを生成することと、前記プロセッサによって、及び前記モバイルアプリケーションに対して、前記ローカルドメインソケットに通信可能に連結された前記VPNサーバーを生成することと、を含む、方法。
  8. 前記プロセッサによって、アプリケーション固有のDNSプロセスを、前記ローカルドメインソケットに通信可能に連結された前記VPNサーバーで生成することをさらに含む、請求項7に記載の方法。
  9. 前記プロセッサによって、前記1つ以上のシステムコールに関連付けられた少なくとも1つのメッセージの宛先ネットワークアドレスを特定することと、
    前記プロセッサによって、前記少なくとも1つのメッセージを、DNS解決のために、前記ローカルドメインソケットに通信可能に連結された前記VPNサーバーに送信することと、
    前記プロセッサによって、前記1つ以上のメッセージを、前記私設網に転送するための前記アクセスゲートウェイに送信するように、前記VPNサーバーのアプリケーション固有のDNSプロセスに命令することと、をさらに含む、請求項7に記載の方法。
  10. 前記1つ以上のメッセージを、前記モバイルアプリケーションから前記アクセスゲートウェイに送信するように前記VPNサーバーに命令することは、
    前記プロセッサによって、前記1つ以上のメッセージを前記私設網に送信するために使用される前記通信リンクのDNSプロトコルに従って、前記1つ以上のメッセージから、1つ以上のパケットを生成するように、前記サンドボックスパスの前記VPNサーバーに命令することと、
    前記プロセッサによって、前記DNSプロトコルに従って処理された前記1つ以上のパケットを、前記通信リンクを介して、前記私設網に送信するように、前記VPNサーバーに命令することと、をさらに含む、請求項7に記載の方法。
  11. 前記プロセッサによって、前記モバイルデバイス上で実行している複数の異なるモバイルアプリケーションからの複数の異なるメッセージが前記私設網宛てであることを判定することと、
    前記プロセッサによって、複数のサンドボックスパスを生成することであって、前記複数のサンドボックスパスの各サンドボックスパスは、前記複数の異なるモバイルアプリケーションの対応するモバイルアプリケーションから、前記私設網に通信を送信するために、複数のローカルドメインソケットの異なるローカルドメインソケットに生成される、生成することと、
    前記プロセッサによって、及び前記モバイルアプリケーションに対して、複数のVPNサーバーを生成することであって、前記複数のVPNサーバーの各々は、前記複数のローカルドメインソケットの対応するローカルドメインソケットに通信可能に連結される、生成することと、
    前記プロセッサによって、複数のアプリケーション固有のDNSプロセスを生成することであって、各アプリケーション固有のDNSプロセスは、前記複数のローカルドメインソケットの対応するローカルドメインソケットに通信可能に連結された前記複数のVPNサーバーの対応するVPNサーバーで実行する、生成することと、をさらに含む、請求項7に記載の方法。
  12. 前記少なくとも1つのDNSクエリが前記システムレベルのDNSプロセスによって解決される必要があるという判定に応答して、前記プロセッサによって、前記1つ以上のシステムコールに関連付けられた少なくとも1つのメッセージを、DNS解決のための前記システムレベルのDNSプロセスに送信することをさらに含む、請求項7に記載の方法。
  13. 機器であって、
    少なくとも1つのプロセッサと、
    少なくとも1つの通信ポートと、
    コンピュータ可読命令を記憶する少なくとも1つのメモリと、を備え、前記コンピュータ可読命令は、前記少なくとも1つのプロセッサによって実行されたとき、前記機器に、次の各手順を実行させる、機器:
    前記機器上で実行しているモバイルアプリケーションが私設網との通信を要求していることを判定すること
    前記機器上で実行している前記モバイルアプリケーションによって発行された前記私設網と通信するための1つ以上のシステムコールを傍受すること
    前記モバイルアプリケーションから前記私設網に通信を送信するための仮想私設網(VPN)サーバーへの通信リンクを、前記少なくとも1つの通信ポートに生成すること
    1つ以上のメッセージを、前記モバイルアプリケーションから、前記私設網に転送するためのアクセスゲートウェイに送信するように、前記VPNサーバーに命令すること
    前記1つ以上のメッセージが複数の異なるネットワークアドレス宛てであることを判定すること、
    複数のTCPサーバーを生成すること、ここにおいて前記複数のTCPサーバーの各々は、前記機器の異なる動的通信ポート上で生成され、複数の動的通信ポートのうちの各動的通信ポートは、前記複数の異なるネットワークアドレスの各々に対して、前記モバイルアプリケーションから前記私設網に通信を送信するために生成され、ならびに
    複数のTCP接続を生成すること、ここにおいて、各TCP接続は、前記モバイルアプリケーションからの通信を、前記複数の動的通信ポートの各々から前記私設網に送信する通信リンクに対応する
  14. 前記命令は、前記少なくとも1つのプロセッサによって実行されたとき、前記機器に、次の各手順を実行させる、請求項13に記載の機器:
    前記1つ以上のシステムコールに関連付けられた少なくとも1つのメッセージの宛先ネットワークアドレスを特定すること
    前記機器の通信ポートへの宛先ネットワークアドレスのマッピングを使用して、前記モバイルアプリケーションから前記私設網に通信をルーティングするために使用される通信ポートを特定することここにおいて、前記特定された通信ポートは、前記マッピングの前記少なくとも1つのメッセージの前記宛先ネットワークアドレスに対応する。
  15. 前記モバイルアプリケーションから前記アクセスゲートウェイに前記1つ以上のメッセージを送信するように前記VPNサーバーに命令するための前記命令は、前記少なくとも1つのプロセッサによって実行されたとき、前記機器に、次の各手順を実行させる、請求項13に記載の機器:
    前記1つ以上のメッセージを前記私設網に送信するために使用される前記通信リンクのトンネリングプロトコルに従って、前記1つ以上のメッセージから1つ以上のパケットを生成するように、前記少なくとも1つの通信ポートの前記VPNサーバーに命令すること
    前記トンネリングプロトコルに従って処理された前記1つ以上のパケットを、前記通信リンクを介して、前記私設網に送信するように、前記VPNサーバーに命令すること
JP2017559447A 2015-05-11 2016-05-10 モバイルプラットフォーム用のマイクロvpnトンネリング Active JP6594449B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/708,464 US9735943B2 (en) 2015-05-11 2015-05-11 Micro VPN tunneling for mobile platforms
US14/708,464 2015-05-11
PCT/US2016/031580 WO2016183049A1 (en) 2015-05-11 2016-05-10 Micro vpn tunneling for mobile platforms

Publications (2)

Publication Number Publication Date
JP2018525858A JP2018525858A (ja) 2018-09-06
JP6594449B2 true JP6594449B2 (ja) 2019-10-23

Family

ID=56069264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017559447A Active JP6594449B2 (ja) 2015-05-11 2016-05-10 モバイルプラットフォーム用のマイクロvpnトンネリング

Country Status (6)

Country Link
US (2) US9735943B2 (ja)
EP (1) EP3295643B8 (ja)
JP (1) JP6594449B2 (ja)
KR (1) KR102115837B1 (ja)
CN (1) CN107690793B (ja)
WO (1) WO2016183049A1 (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011011544A1 (en) 2009-07-21 2011-01-27 Scott Ferrill Tibbitts Method and system for controlling a mobile communication device in a moving vehicle
US9386447B2 (en) 2009-07-21 2016-07-05 Scott Ferrill Tibbitts Method and system for controlling a mobile communication device
WO2020181001A1 (en) * 2019-03-04 2020-09-10 Katasi, Inc. Method and system for detecting, monitoring, and controlling a mobile communication device
US9615213B2 (en) 2009-07-21 2017-04-04 Katasi Llc Method and system for controlling and modifying driving behaviors
US11863529B2 (en) * 2011-09-09 2024-01-02 Kingston Digital, Inc. Private cloud routing server connection mechanism for use in a private communication architecture
US11290425B2 (en) * 2016-02-01 2022-03-29 Airwatch Llc Configuring network security based on device management characteristics
US10528734B2 (en) 2016-03-25 2020-01-07 The Mitre Corporation System and method for vetting mobile phone software applications
US20210105275A1 (en) * 2016-03-28 2021-04-08 Zscaler, Inc. Adaptive multipath tunneling in cloud-based systems
US10361970B2 (en) * 2016-08-15 2019-07-23 Fujitsu Limited Automated instantiation of wireless virtual private networks
US10630555B1 (en) * 2016-08-26 2020-04-21 Berryville Holdings, LLC Network appliance for providing configurable virtual private network connections
US11477159B1 (en) 2016-12-28 2022-10-18 Verisign, Inc. Systems, devices, and methods for polymorphic domain name resolution
US10310872B2 (en) * 2017-02-21 2019-06-04 Red Hat, Inc. Transparent fast application launcher
CN107038358B (zh) * 2017-04-20 2020-12-25 北京安云世纪科技有限公司 一种自启动处理方法和装置及移动终端
WO2018227899A1 (zh) * 2017-06-14 2018-12-20 北京小米移动软件有限公司 应用交互方法、交互方法及装置
US11283694B2 (en) * 2017-07-20 2022-03-22 Movius Interactive Corportion System and method providing usage analytics for a mobile device
US10798059B1 (en) * 2017-10-06 2020-10-06 Juniper Networks, Inc Apparatus, system, and method for applying firewall rules at dynamic offsets within packets in kernel space
US10581798B2 (en) 2017-10-27 2020-03-03 At&T Intellectual Property I, L.P. Network based distribution for compute resource and application accessibility
US10666616B2 (en) * 2017-10-31 2020-05-26 Ca, Inc. Application identification and control in a network device
US10938786B2 (en) * 2017-12-01 2021-03-02 Twingate Inc. Local interception of traffic to a remote forward proxy
EP3769489A4 (en) * 2018-03-22 2021-12-15 Akamai Technologies, Inc. TRAFFIC FORWARDING AND DISAMBIGUATION USING LOCAL PROXYS AND ADDRESSES
CN108959902A (zh) * 2018-06-07 2018-12-07 北京百悟科技有限公司 一种多系统集成平台和方法、计算机可读存储介质
US10958480B2 (en) 2018-07-19 2021-03-23 Vmware, Inc. Per-app virtual private network tunnel for multiple processes
US10805113B2 (en) * 2018-08-07 2020-10-13 Dh2I Company Application transmission control protocol tunneling over the public internet
US11463510B2 (en) * 2018-10-30 2022-10-04 Hewlett Packard Enterprise Development Lp Software defined wide area network uplink selection for a cloud service
CN109274684B (zh) * 2018-10-31 2020-12-29 中国—东盟信息港股份有限公司 基于eSIM通讯与导航服务为一体的物联网终端系统及其实现方法
US11283763B2 (en) 2018-12-28 2022-03-22 Mcafee, Llc On-device dynamic safe browsing
US11082451B2 (en) 2018-12-31 2021-08-03 Citrix Systems, Inc. Maintaining continuous network service
CN110278181B (zh) * 2019-01-29 2021-09-17 广州金越软件技术有限公司 一种关于跨网数据交换的即时协议转换系统
KR102158424B1 (ko) * 2019-02-11 2020-09-21 김한수 가상 사설 망 연결 장치 및 방법
GB201904224D0 (en) * 2019-03-27 2019-05-08 Sec Dep For Foreign And Commonwealth Affairs A network filter
US11362999B2 (en) * 2019-03-29 2022-06-14 Mcafee, Llc Client-only virtual private network
US11405237B2 (en) 2019-03-29 2022-08-02 Mcafee, Llc Unencrypted client-only virtual private network
US11368430B2 (en) * 2019-03-29 2022-06-21 Verizon Patent And Licensing Inc. Domain name server based validation of network connections
CN110099403B (zh) * 2019-05-17 2022-07-19 腾讯科技(深圳)有限公司 一种数据传输方法、装置、设备及存储介质
US11575757B2 (en) 2019-06-17 2023-02-07 Dh2I Company Cloaked remote client access
US11635990B2 (en) 2019-07-01 2023-04-25 Nutanix, Inc. Scalable centralized manager including examples of data pipeline deployment to an edge system
US11501881B2 (en) 2019-07-03 2022-11-15 Nutanix, Inc. Apparatus and method for deploying a mobile device as a data source in an IoT system
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor
WO2021060858A1 (ko) * 2019-09-24 2021-04-01 프라이빗테크놀로지 주식회사 터널 및 데이터 플로우에 기반하여 노드의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
EP4035334A4 (en) 2019-09-25 2023-10-18 Valimail Inc. CENTRALIZED SESSION KEY ISSUANCE AND ROTATION
US11463463B1 (en) * 2019-12-20 2022-10-04 NortonLifeLock Inc. Systems and methods for identifying security risks posed by application bundles
US11563802B2 (en) 2020-11-06 2023-01-24 Dh2I Company Systems and methods for hierarchical failover groups
US11726764B2 (en) 2020-11-11 2023-08-15 Nutanix, Inc. Upgrade systems for service domains
US11665221B2 (en) 2020-11-13 2023-05-30 Nutanix, Inc. Common services model for multi-cloud platform
US20220171868A1 (en) * 2020-12-02 2022-06-02 Capital One Services, Llc Non-Persistent Data Caching Web Server
CN112653609B (zh) * 2020-12-14 2022-05-27 北京指掌易科技有限公司 一种vpn识别应用方法、装置、终端及存储介质
US11736585B2 (en) 2021-02-26 2023-08-22 Nutanix, Inc. Generic proxy endpoints using protocol tunnels including life cycle management and examples for distributed cloud native services and applications
JP7146124B1 (ja) * 2021-03-31 2022-10-03 アドソル日進株式会社 端末装置、方法およびプログラム
US11909723B2 (en) * 2021-06-15 2024-02-20 Microsoft Technology Licensing, Llc Mobile VPN autostart through app-only management
US11489808B1 (en) 2021-08-03 2022-11-01 Oversec, Uab Providing a split-configuration virtual private network
CN113825258B (zh) * 2021-08-18 2024-04-09 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于FirefoxOS的多模通信方法及操作系统
CN116340014A (zh) * 2021-12-24 2023-06-27 北京字节跳动网络技术有限公司 函数处理方法、装置、设备及存储介质
KR102427663B1 (ko) * 2022-01-14 2022-08-02 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US11444911B1 (en) * 2022-02-22 2022-09-13 Oversec, Uab Domain name system configuration during virtual private network connection
CN114710548B (zh) * 2022-03-22 2024-04-05 阿里巴巴(中国)有限公司 报文转发方法及装置
CN117354276A (zh) * 2022-06-27 2024-01-05 中移(杭州)信息技术有限公司 一种网络穿透系统的启动方法及报文收发方法、通信设备
CN115278925A (zh) * 2022-07-04 2022-11-01 广西电网有限责任公司桂林供电局 一种基于4g通信的无固定ip数据互通方法及系统
CN115277838B (zh) * 2022-07-28 2024-01-02 天翼云科技有限公司 云缓存数据库服务方法、装置、设备及可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7317717B2 (en) * 2004-04-26 2008-01-08 Sprint Communications Company L.P. Integrated wireline and wireless end-to-end virtual private networking
US7757074B2 (en) * 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8561155B2 (en) * 2006-08-03 2013-10-15 Citrix Systems, Inc. Systems and methods for using a client agent to manage HTTP authentication cookies
US8127350B2 (en) * 2010-06-30 2012-02-28 Juniper Networks, Inc. Multi-service VPN network client for mobile device
CN103840994B (zh) * 2012-11-23 2017-06-06 华耀(中国)科技有限公司 一种用户端通过vpn访问内网的系统及方法
WO2015023887A1 (en) * 2013-08-15 2015-02-19 Mocana Corporation Gateway device for terminating a large volume of vpn connections

Also Published As

Publication number Publication date
EP3295643B8 (en) 2020-02-26
EP3295643B1 (en) 2019-12-11
US20160337104A1 (en) 2016-11-17
CN107690793B (zh) 2019-05-03
WO2016183049A1 (en) 2016-11-17
US20170310445A1 (en) 2017-10-26
KR102115837B1 (ko) 2020-06-05
CN107690793A (zh) 2018-02-13
JP2018525858A (ja) 2018-09-06
KR20180006413A (ko) 2018-01-17
US9735943B2 (en) 2017-08-15
EP3295643A1 (en) 2018-03-21
US9954664B2 (en) 2018-04-24

Similar Documents

Publication Publication Date Title
JP6594449B2 (ja) モバイルプラットフォーム用のマイクロvpnトンネリング
KR102188919B1 (ko) 클라이언트 애플리케이션들에 대한 보안 싱글 사인 온 및 조건부 액세스
US11722465B2 (en) Password encryption for hybrid cloud services
US11706205B2 (en) Extending single-sign-on to relying parties of federated logon providers
EP3549323B1 (en) Secure access to on-premises web services from multi-tenant cloud services
US9280377B2 (en) Application with multiple operation modes
JP6732800B2 (ja) 位置に基づくデバイスの有効化
EP3850817B1 (en) Systems and methods for integrated service discovery for network applications
JP2019526843A (ja) ホストされたアプリケーションへの動的アクセス
KR20190117754A (ko) 피어 투 피어 통신에 기반한 가상 전용 네트워크
US20200106699A1 (en) Systems and methods for multilink wan connectivity for saas applications
US11582131B2 (en) Systems and methods for application scripts for cross-domain applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190517

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190924

R150 Certificate of patent or registration of utility model

Ref document number: 6594449

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250