(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5784864
(24)【登録日】2015年7月31日
(45)【発行日】2015年9月24日
(54)【発明の名称】アプリケーション用ワークスペースの隔離を容易にする方法およびシステム
(51)【国際特許分類】
G06F 21/62 20130101AFI20150907BHJP
G06F 21/54 20130101ALI20150907BHJP
【FI】
G06F21/62
G06F21/54
【請求項の数】20
【全頁数】23
(21)【出願番号】特願2015-518659(P2015-518659)
(86)(22)【出願日】2013年8月26日
(65)【公表番号】特表2015-526951(P2015-526951A)
(43)【公表日】2015年9月10日
(86)【国際出願番号】US2013056675
(87)【国際公開番号】WO2014032051
(87)【国際公開日】20140227
【審査請求日】2014年12月22日
(31)【優先権主張番号】61/692,857
(32)【優先日】2012年8月24日
(33)【優先権主張国】US
(31)【優先権主張番号】13/595,881
(32)【優先日】2012年8月27日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】510149482
【氏名又は名称】ヴイエムウェア インコーポレイテッド
【氏名又は名称原語表記】VMware,Inc.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ディージー、スティーブン
(72)【発明者】
【氏名】ネウェル、クレイグ
【審査官】
児玉 崇晶
(56)【参考文献】
【文献】
米国特許出願公開第2006/0161973(US,A1)
【文献】
米国特許出願公開第2008/0134347(US,A1)
【文献】
米国特許出願公開第2010/0306547(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/54
(57)【特許請求の範囲】
【請求項1】
携帯機器上でエンタープライズアプリケーションの隔離されたワークスペース環境を保持する方法において、
前記携帯機器上にインストールするためのエンタープライズアプリケーションを受け取ることであって、前記エンタープライズアプリケーションのバイナリ実行可能ファイルには、前記エンタープライズアプリケーションに対して、前記携帯機器にインストールされたアプリケーション管理エージェントと通信し、ユーザが前記エンタープライズアプリケーションにアクセスできる能力を統制するセキュリティポリシを受け取るように強制する機能が導入されており、前記セキュリティポリシが、前記隔離されたワークスペースを有効のままにすることに関する有効期間の値を含む、前記受け取ること、
前記アプリケーション管理エージェントによって、前記エンタープライズアプリケーションに、前記携帯機器に保存された前記隔離されたワークスペースに関する暗号化メッセージを共有するための複数の暗号キーを提供すること、
前記エンタープライズアプリケーションのうちの1つの起動時に、起動されたエンタープライズアプリケーションによって、前記アプリケーション管理エージェントにより提供された複数の暗号キーのうちの一つを用いてワークスペースの失効期限の値を暗号化し、起動されたエンタープライズアプリケーションによって、暗号化されたワークスペースの失効期限の値を前記携帯機器上に暗号化メッセージとして保存することであって、前記ワークスペースの失効期限の値は有効期間の値の関数であり、前記隔離されたワークスペースが有効のままである期間を示す、前記保存すること、
前記ワークスペースの失効期限の値を、前記ユーザが前記起動されたエンタープライズアプリケーションを引き続き使っている場合は前記起動されたエンタープライズアプリケーションによって、または失効期限の値が満了する前に前記ユーザが少なくとも1つの他のエンタープライズアプリケーションを起動した場合は前記他のエンタープライズアプリケーションによって延長すること、
前記ユーザによる前記エンタープライズアプリケーションのいずれの作動もなかったことによって前記ワークスペースの失効期限の値が満了した場合に、前記隔離されたワークスペース内での前記エンタープライズアプリケーションの使用を継続するために、前記アプリケーション管理エージェントによって前記ユーザに認証証明情報を要求すること、
を備える方法。
【請求項2】
前記アプリケーション管理エージェントが、企業により管理されるリモートサーバからセキュリティポリシを取得する、請求項1に記載の方法。
【請求項3】
前記隔離されたワークスペースに関係する前記共有の暗号化メッセージが、前記エンタープライズアプリケーションと前記アプリケーション管理エージェントにしか知られない前記携帯機器のペーストボードに保存される、請求項1に記載の方法。
【請求項4】
前記ユーザに前記認証証明情報を要求することが、
前記携帯機器上にPINまたはパスワードロックスクリーンを表示することを含む、請求項1に記載の方法。
【請求項5】
挿入された機能がさらに、前記エンタープライズアプリケーションに対し、前記セキュリティポリシに従って安全なデータチャネルを通じて通信するように強制する、請求項1に記載の方法。
【請求項6】
前記安全なデータチャネルが、ある企業のVPNゲートウェイへのVPNトンネルである、請求項5に記載の方法。
【請求項7】
前記エンタープライズアプリケーションと前記アプリケーション管理エージェントが、同時には動作せず、前記携帯機器のURLハンドラを使って、実行フローを他方に移行させるように要求する、請求項1に記載の方法。
【請求項8】
プロセッサによって実行された時に前記プロセッサに対し、携帯機器上でエンタープライズアプリケーションの隔離されたワークスペース環境を保持する方法を実行させるような命令を保存した非一時的記憶媒体において、前記方法が、
前記携帯機器上にインストールするためのエンタープライズアプリケーションを受け取ることであって、前記エンタープライズアプリケーションのバイナリ実行可能ファイルには、前記エンタープライズアプリケーションに対して、前記携帯機器にインストールされたアプリケーション管理エージェントと通信し、ユーザが前記エンタープライズアプリケーションにアクセスできる能力を統制するセキュリティポリシを受け取るように強制する機能が挿入されており、前記セキュリティポリシが、前記隔離されたワークスペースを有効のままにすることに関する有効期間の値を含む、前記受け取ること、
前記アプリケーション管理エージェントによって、前記エンタープライズアプリケーションに、前記携帯機器に保存された前記隔離されたワークスペースに関する暗号化メッセージを共有するための複数の暗号キーを提供すること、
前記エンタープライズアプリケーションのうちの1つの起動時に、起動されたエンタープライズアプリケーションによって、前記アプリケーション管理エージェントにより提供された複数の暗号キーのうちの一つを用いてワークスペースの失効期限の値を暗号化し、起動されたエンタープライズアプリケーションによって、暗号化されたワークスペースの失効期限の値を前記携帯機器上に暗号化メッセージとして保存することであって、前記ワークスペースの失効期限の値は有効期間の値の関数であり、前記隔離されたワークスペースが有効のままである期間を示す、前記保存すること、
前記ワークスペースの失効期限の値を、前記ユーザが前記起動されたエンタープライズアプリケーションを引き続き使っている場合は前記起動されたエンタープライズアプリケーションによって、または失効期限の値が満了する前に前記ユーザが少なくとも1つの他のエンタープライズアプリケーションを起動した場合は前記他のエンタープライズアプリケーションによって延長すること、
前記ユーザによる前記エンタープライズアプリケーションのいずれの作動もなかったことによって前記ワークスペースの失効期限の値が満了した場合に、前記隔離されたワークスペース内での前記エンタープライズアプリケーションの使用を継続するために、前記アプリケーション管理エージェントによって前記ユーザに認証証明情報を要求すること、
を備える、非一時的記憶媒体。
【請求項9】
前記アプリケーション管理エージェントが、企業により管理されるリモートサーバからセキュリティポリシを取得する、請求項8に記載の非一時的記憶媒体。
【請求項10】
前記隔離されたワークスペースに関係する前記共有の暗号化メッセージが、前記エンタープライズアプリケーションと前記アプリケーション管理エージェントにしか知られない前記携帯機器のペーストボードに保存される、請求項8に記載の非一時的記憶媒体。
【請求項11】
前記ユーザに前記認証証明情報を要求することが、
前記携帯機器上にPINまたはパスワードロックスクリーンを表示することを含む、請求項8に記載の非一時的記憶媒体。
【請求項12】
前記挿入された機能がさらに、前記エンタープライズアプリケーションに対し、前記セキュリティポリシに従って安全なデータチャネルを通じて通信するように強制する、請求項8に記載の非一時的記憶媒体。
【請求項13】
前記安全なデータチャネルが、ある企業のVPNゲートウェイへのVPNトンネルである、請求項12に記載の非一時的記憶媒体。
【請求項14】
前記エンタープライズアプリケーションと前記アプリケーション管理エージェントが、同時には動作せず、前記携帯機器のURLハンドラを使って、実行フローを他方に移行させるように要求する、請求項8に記載の非一時的記憶媒体。
【請求項15】
コンピュータシステムにおいて、
プロセッサと、
前記プロセッサによって実行された時に前記プロセッサに対し、携帯機器上でエンタープライズアプリケーションの隔離されたワークスペース環境を保持する方法を実行させるような命令を保存した非一時的記憶媒体と、
を含み、前記方法が、
前記携帯機器上にインストールするためのエンタープライズアプリケーションを受け取ることであって、前記エンタープライズアプリケーションのバイナリ実行可能ファイルには、前記エンタープライズアプリケーションに対して、前記携帯機器にインストールされたアプリケーション管理エージェントと通信し、ユーザが前記エンタープライズアプリケーションにアクセスできる能力を統制するセキュリティポリシを受け取るように強制する機能が挿入されており、前記セキュリティポリシが、前記隔離されたワークスペースを有効のままにすることに関する有効期間の値を含む、前記受け取ること、
前記アプリケーション管理エージェントによって、前記エンタープライズアプリケーションに、前記携帯機器に保存された前記隔離されたワークスペースに関する暗号化メッセージを共有するための複数の暗号キーを提供すること、
前記エンタープライズアプリケーションのうちの1つの起動時に、起動されたエンタープライズアプリケーションによって、前記アプリケーション管理エージェントにより提供された複数の暗号キーのうちの一つを用いてワークスペースの失効期限の値を暗号化し、起動されたエンタープライズアプリケーションによって、暗号化されたワークスペースの失効期限の値を前記携帯機器上に暗号化メッセージとして保存することであって、前記ワークスペースの失効期限の値は有効期間の値の関数であり、前記隔離されたワークスペースが有効のままである期間を示す、前記保存すること、
前記ワークスペースの失効期限の値を、前記ユーザが前記起動されたエンタープライズアプリケーションを引き続き使っている場合は前記起動されたエンタープライズアプリケーションによって、または失効期限の値が満了する前に前記ユーザが少なくとも1つの他のエンタープライズアプリケーションを起動した場合は前記他のエンタープライズアプリケーションによって延長すること、
前記ユーザによる前記エンタープライズアプリケーションのいずれの作動もなかったことによって前記ワークスペースの失効期限の値が満了した場合に、前記隔離されたワークスペース内での前記エンタープライズアプリケーションの使用を継続するために、前記アプリケーション管理エージェントによって前記ユーザに認証証明情報を要求すること、
を備える、コンピュータシステム。
【請求項16】
前記アプリケーション管理エージェントが、企業により管理されるリモートサーバからセキュリティポリシを取得する、請求項15に記載のコンピュータシステム。
【請求項17】
前記隔離されたワークスペースに関係する前記共有の暗号化メッセージが、前記エンタープライズアプリケーションと前記アプリケーション管理エージェントにしか知られない前記携帯機器のペーストボードに保存される、請求項15に記載のコンピュータシステム。
【請求項18】
前記ユーザに前記認証証明情報を要求することが、
前記携帯機器上にPINまたはパスワードロックスクリーンを表示することを含む、請求項15に記載のコンピュータシステム。
【請求項19】
前記挿入された機能がさらに、前記エンタープライズアプリケーションに対し、前記セキュリティポリシに従って安全なデータチャネルを通じて通信するように強制する、請求項15に記載のコンピュータシステム。
【請求項20】
前記エンタープライズアプリケーションと前記アプリケーション管理エージェントが、同時には動作せず、前記携帯機器のURLハンドラを使って、実行フローを他方に移行させるように要求する、請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【0001】
この10年に、携帯機器は音声通信優先機器から携帯型パーソナルコンピュータへと進化を遂げた。携帯機器はもはや単なる音声通信用の機器ではなく、電子メールやウェブブラウジング等の作業に有益なマルチタスキングツールとなっている。携帯機器の現在の傾向は、デスクトップ機能の再現へと向かっている。その結果、携帯機器は豊富なアプリケーションとコアとなるエンタープライズコネクティビティ(core enterprise connectivity)を備える企業内のエンドポイントとなりつつある。企業は、携帯機器をアクセス制限されたデータにアクセスするために特にセットアップする必要がありうるため、社員は私物の機器を仕事専用として犠牲にするか、プライベート用と仕事用を1台ずつ、計2台の機器を持ち運ばなければならないかもしれない。
【0002】
エンドユーザから見た場合、私物の携帯機器を仕事用の機器と統合することが望ましい。仮想化は、環境を隔離された状態に保ち、2台目の物理的な仕事用機器を不要とすることにより、好都合なソリューションを提供する機会を提供する。1台の私物の携帯機器で仮想化を通じてプライベート環境と仕事環境をサポートすることは、複数の物理的携帯機器が関わる既存のソリューションの魅力的な代替案である。ここ数年の携帯機器におけるハードウェアの急速な革新は、仮想化を通じて複数の環境(例えば、1つまたは複数のバーチャルホン(virtual phone))をサポートできるリソースを有する、ある分類の携帯機器を生み出すに至った。
【0003】
しかしながら、技術、インフラストラクチャ、ビジネスの観点から見て、モバイル環境が現在、特に複雑であることを考えると、携帯機器に十分な仮想化機能を設けるのは依然として難題である。例えば、モバイルサービス事業者は一般に、企業またはエンドユーザに対し、セキュリティまたは商業的な理由から、そのハードウェアリソースへの完全なアクセスを認めていない。これに加えて、携帯機器のオペレーティングシステムがすべて、仮想化に向いているとはかぎらない。これらは、システムリソースへの十分な特権アクセスを提供しないかもれず、アプリケーションに厳しい制限を設けるかもしれない。例えば、特定のオペレーティングシステムでは、一度に複数のプロセスを実行できない(または、そのための能力が限定的にすぎない)かもしれず、またプロセス間コールメカニズムを一切提供しないかもしれない。したがって、ユーザの仕事関係の会社用機能とその個人用機能を同一の携帯機器に統合することは依然として難しい。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明の1つの実施形態は、1台の携帯機器上でエンタープライズアプリケーション用として隔離されたワークスペース環境を保持するシステムを提供する。このシステムは、その携帯機器にインストールするためのエンタープライズアプリケーションを受け取り、このエンタープライズアプリケーションのバイナリ実行可能ファイルには、エンタープライズアプリケーションに対して、携帯機器にインストールされたアプリケーション管理エージェントと通信し、ユーザがそのエンタープライズアプリケーションにアクセスできる能力を統制するセキュリティポリシ(security policy)を受け取るように強制する機能が導入されている。セキュリティポリシには、隔離されたワークスペースを有効のままにすることに関する有効期間の値が含まれる。さらに、アプリケーション管理エージェントはエンタープライズアプリケーションに、その携帯機器に保存された隔離ワークスペースに関する暗号化メッセージを共有するための暗号キーを提供する。起動時に、エンタープライズアプリケーションの1つがワークスペース失効期限の値を暗号化メッセージとして携帯機器に保存するが、このワークスペース失効期限の値は有効期間の値の関数であり、隔離ワークスペースが有効のままである期間を示す。ワークスペース失効期限の値は、ユーザが起動されたエンタープライズアプリケーションを引き続き使っている場合は起動されたエンタープライズアプリケーションによって、または失効期限の値が満了する前にユーザが少なくとも1つの他のエンタープライズアプリケーションを起動した場合はその他のエンタープライズアプリケーションによって延長される。これに加えて、アプリケーション管理エージェントは、ユーザによるいずれのエンタープライズアプリケーションの作動もなかったことによって、ワークスペース失効期限の値が満了した場合に、隔離されたワークスペース内でのエンタープライズアプリケーションの使用を継続するために、ユーザに認証証明情報を要求する。
【0005】
この実施形態の変形版において、アプリケーション管理エージェントは、企業により管理されるリモートサーバからセキュリティポリシを取得する。
この実施形態の変形版において、隔離ワークスペースに関係する共有の暗号化メッセージが携帯機器のペーストボード(pasteboard)に保存され、これは、エンタープライズアプリケーションとアプリケーション管理エージェントにしか知られない。
【0006】
この実施形態の変形版において、ユーザに認証証明情報を要求することは、携帯機器上にPINまたはパスワードロックスクリーンを表示することを含む。
この実施形態の変形版において、挿入された機能はさらに、エンタープライズアプリケーションに対し、セキュリティポリシに従って安全なデータチャネルを通じて通信するように強制する。
【0007】
他の変形版において、安全なデータチャネルは、ある企業のVPNゲートウェイへのVPNトンネルである。
この実施形態の変形版において、エンタープライズアプリケーションとアプリケーション管理エージェントは、同時には動作せず、携帯機器のURLハンドラを使って、実行フローを他方に移行させるように要求する。
【図面の簡単な説明】
【0008】
【
図1】ある実施形態による、携帯電話上の例示的な隔離ワークスペースを示す。
【
図2】ある実施形態による、ワークスペースの隔離を容易にする携帯電話の例示的なアーキテクチャを示す。
【
図3】ある実施形態による、ワークスペースの隔離を容易にする例示的なアプリケーション管理エージェントを示す。
【
図4】ある実施形態による、ワークスペースの隔離を容易にする例示的なアプリケーション管理サーバを示す。
【
図5】ある実施形態による、隔離ワークスペース内でアプリケーションを開始するプロセスを示すフローチャートを示す。
【
図6】ある実施形態による、隔離ワークスペースをサポートする携帯機器の例示的なアーキテクチャを示す。
【発明を実施するための形態】
【0009】
図面において、同様の参照番号は同じ図中要素を示す。
以下の説明は、当業者であれば誰でも本発明を製作、使用できるようにするために提示され、具体的な用途とその要求事項に関して提供される。開示されている実施形態に対する各種の変更は、当業者にとって容易に明らかであり、本明細書で定義される一般的原理は他の実施形態や用途にも適用でき、これも本発明の主旨と範囲から逸脱しない。それゆえ、本発明は示されている実施形態に限定されず、特許請求の範囲と矛盾しない最も広い範囲が付与されることとする。
【0010】
概要
本明細書でさらに説明する実施形態において、1台の携帯機器の上で、1つまたは複数のエンタープライズアプリケーション(enterprise application)のための安全な専用の環境を提供しながら、依然としてユーザの個人用アプリケーションを使用できるようにするという問題は、エンタープライズアプリケーションのためのワークスペース(workspace)の隔離を容易にすることによって解決される。この隔離ワークスペースの中で、エンタープライズアプリケーションは企業ポリシを強制し、データを共有し、会社のリソースにアクセスし、同一機器上のユーザの個人用アプリケーションがエンタープライズアプリケーションにより共有されるデータとリソースにアクセスするのを阻止することができる。
【0011】
エンタープライズアプリケーションは厳格なセキュリティ要件を有することが多く、許可のないアプリケーションがそのデータにアクセスすることを許可せず、これらは例えば携帯機器上にローカルに保存されていてもよい。従来のコンピュータでは、この問題は、エンタープライズアプリケーションをホストのオペレーティングシステムから隔離された仮想マシンに置くことによって解決できる。しかしながら、前述のように、このような仮想マシンを携帯機器上で実現することは、システムリソースへのアクセスが不十分であり、またモバイルサービス事業者やメーカがセキュリティまたは商業的目的のためにしばしば制限を設けることから、困難である。これに加えて、特定のオペレーティングシステム(AppleのiOS等)は同時プロセスを容易に推進せず、これが仮想化にとって大きな問題となっている。
【0012】
本明細書で説明する実施形態によれば、エンタープライズアプリケーションを、従来の仮想マシンを実行することなく、同一の携帯機器上で個人用アプリケーションと共に実行できる。これらのエンタープライズアプリケーションは、他の通常のアプリケーションから隔離された安全な専用の「仮想ワークスペース」内に存在できる。1つの具体的な実施形態において、ワークスペースはひとつに、企業ポリシ(enterprise policie)を強制するように修正されたアプリケーションを通じて、またひとつに、最新の企業ポリシを保持する携帯機器上のアプリケーション管理エージェントを通じて実現される。具体的には、修正ユーティリティ(modification utility)が汎用アプリケーションを修正し、その結果、置換されたシステムライブラリコール(system library call)で「ラップされた(wrapped)」アプリケーションが得られる。これらの置換されたシステムコールは「ラッパー(wrapper)」と呼ばれ、アプリケーションの一部となり、ポリシ強制メカニズムとして機能する。例えば、ラッパーにより、特定のエンタープライズアプリケーションはバーチャルプライベートネットワーク(virtual private network : VPN)トンネルを介して企業内イントラネットと通信してもよく、携帯機器の通常の、暗号化されていないデータコネクティビティを利用できなくなりうる。そのワークスペース内で実行される各エンタープライズアプリケーションのポリシ強制コンポーネント、すなわちラッパーはまた、エンタープライズアプリケーションに関係するすべてのファイルが暗号化されるように要求することもできる。これに加えて、そのワークスペース内のエンタープライズアプリケーションは、ワークスペースごとのペーストボードまたはクリップボードバッファ等の特定のリソースを共有できるが、その電話機にある他の通常のアプリケーションはこれらのリソースへのアクセスが禁じられる。
【0013】
以下の開示では、エンタープライズアプリケーションを例にとる。しかしながら、本願の実施形態は、アプリケーションの集合(エンタープライズアプリケーションでもそうでなくてもよい)が、安全な隔離された実行環境の利益を享受できるどのような環境にも適用可能である。さらに、「携帯機器」という用語は、携帯電話、携帯情報端末(PDA)機器、タブレットコンピュータ、ポータブルコンピュータを指すことができるが、これらに限定されない。
【0014】
隔離されたワークスペース
前述のように、本明細書で説明する実施形態は「仮想ワークスペース」の概念を利用して、携帯機器内の個人用環境と会社用環境とを隔離する。このようなワークスペースは、エンタープライズアプリケーションの集合が実行される安全な専用の環境を提供する。例えば、ある企業のIT部門は、社員がその企業の機密または制限対象情報に、その社員の私物の携帯機器を利用して、(例えば、その企業が管理するリモートサーバにアクセスすることによって、またはその携帯機器に安全な方法でそのような情報をローカルに保存することによって)アクセスできるようにする特定のエンタープライズアプリケーションを提供するかもしれない。このようなアプリケーションの例には、電子メールアプリケーション、電話帳、文書管理プログラム、カレンダ、特殊化されたウェブブラウザ、チャット/会議アプリケーション等がある。ワークスペースは、これらのエンタープライズアプリケーションを実行するための隔離された環境を提供し、同一の携帯機器上の許可のないアプリケーションがエンタープライズアプリケーションによって使用されるデータにアクセスするのを防止する。
【0015】
このようなワークスペースの隔離を容易にするために、エンタープライズアプリケーションの特定の実施形態は、(1)これらが専用の安全なネットワーク接続(例えば、VPN等)を使って企業のリソース(例えば、データ、アプリケーションサーバ等)にアクセスし、それが同一の携帯機器上の他のアプリケーションからはアクセスできず、(2)これらがそれら自身の間で特定のローカルリソース(例えば、ファイルストレージとメモリ)を共有できるが、これらのリソースは他のアプリケーションからはアクセスできない、という2つの条件を満たす。後述のように、これらの条件を満たすために、企業は、携帯機器にインストールするためのエンタープライズアプリケーションを準備するが、これは、それらに対して特定のシステムライブラリコール(一般に、I/Oに関連付けられる)をカスタム化されたコールに置き換え、またはそこに割り込ませるオフラインラッピングプロセス(offline wrapping process)を実行することによって行われ、そのためには、エンタープライズアプリケーションに、例えばこれらのカスタム化されたコールを含むダイナミックリンクライブラリ(すなわち、これらのライブラリは当初のエンタープライズアプリケーションを取り囲む「ラッパー」と呼ばれる)を「導入(injecting)」するか、これらのカスタム化されたコールを含むスタティックライブラリとプレリンクする。例えば、1つの実施形態において、企業はオフラインユーティティツールを使ってエンタープライズアプリケーションのバイナリ実行可能命令(例えば、Apple iOSの実施形態のMach−Oファイル等)を修正して、そのエンタープライズアプリケーションに、そのエンタープライズアプリケーションが携帯機器上で起動された時に1つまたは複数の指定されたダイナミックリンクライブラリ(例えば、Apple iOSの実施形態の.dylibファイル)をロードさせる。このようなダイナミックリンクライブラリはすると、エンタープライズアプリケーションのアーカイブファイル(例えば、Apple iOSの実施形態の.ipaファイル)の一部として含められる。ダイナミックリンクライブラリに含められた、カスタム化されたコールは、確実にそのアプリケーションのI/O機能(例えば、ネットワーク通信とファイルアクセス)が企業ポリシと一致するようにできる。これに加えて、ユーザの携帯機器にインストールされ、ここでは「アプリケーション管理エージェント」と呼ばれる特別なローカルアプリケーションが企業ポリシをその携帯機器上でローカルに(例えばその企業にあるリモート管理サーバと通信することによって)保持、更新し、特定の実施形態ではまた、エンタープライズアプリケーションカタログを提供して、エンドユーザがエンタープライズアプリケーションを選択し、ダウンロードし、携帯機器のワークスペースにインストールできるようにする。
【0016】
本願は「ワークスペース」をエンタープライズアプリケーションのためのこのような管理された安全な実行環境に代わる省略表現として使用しているが、「ワークスペース」はエンタープライズアプリケーションの集合を指す論理的抽象にすぎない点に留意されたい。実際においては、グラフィカルユーザインタフェース上に実際に表示されるワークスペース(例えばフォルダ)があるかもしれないし、ないかもしれない。これに加えて、本願は「ワークスペースへのアクセス」という語句を一般的な意味で使用しており、必ずしもユーザがフォルダにアクセスする必要はない。ユーザはワークスペースに、単にそのワークスペースに属するエンタープライズアプリケーションの1つにアクセスすることによってアクセスできる。
【0017】
図1は、ある実施形態による、携帯機器上の例示的な隔離ワークスペースを示す。この例では、携帯機器100はタッチスクリーン上のアイコンとしてそのアプリケーションを表示している。通常の(例えば個人用)アプリケーション102の集合は、例えば電子メールプログラム、テキストメッセージングプログラム、カレンダプログラム、またはオンラインビデオ閲覧プログラム等を含むことができる。携帯機器100はまた、エンタープライズアプリケーション(各アイコンの左下角にある小さい鍵の記号により示される)の集合を表示し、これらはワークスペース104の中で動作する。
【0018】
理解すべき点として、
図1の表示は例にすぎず、代替的な実施形態では、携帯機器100のスクリーン上のワークスペース104の可視化方法は異なっていてもよい。例えば、1つの代替的な実施形態において、ワークスペース104の中で動作するエンタープライズアプリケーションを示すアイコンは、通常の、または個人用アプリケーション102のアイコンと混在していてもよい。他の代替的な実施形態では、ワークスペース104の中で動作するエンタープライズアプリケーションを示すアイコンは、通常の、または個人用アプケーションのためのアイコンから、例えば指なぞり動作の使用を通じて分離されてもよく、この動作によりユーザは個人用または通常のアプリケーション102だけを表示するスクリーンから、ワークスペース104内のエンタープライズアプリケーションだけを表示する別のスクリーンに移行できる。ワークスペース104の中のエンタープライズアプリケーションの例としては、例えば企業向け電子メールプログラム、企業向けカレンダプログラム、企業向けディレクトリ、または企業向けブラウザ等がある。また、ワークスペース104にはアプケーション管理エージェント106も含まれ(前述のとおり)、これはすべてのエンタープライズアプリケーションのための安全な、アクセス制限されたポリシのローカルレポジトリ(local repository)として機能する。例えば、アプリケーション管理エージェント106は、定期的に(例えば、実行中のエンタープライズアプリケーションの代わりに、またはその要求に応じて)企業にあるリモートアプリケーション管理サーバ114と通信して、最新のセキュリティおよびアクセス管理ポリシを取得してもよい。理解すべき点として、
図1の実施形態は携帯機器100のスクリーン上のアプリケーション管理エージェント106のアイコンを、エンタープライズアプリケーションの実行中には実行する必要のないアプリケーションとして示しているが、他の実施形態では、アプリケーション管理エージェント106を、ユーザが携帯機器100のスクリーン上のアイコンを選択することによって(またはモバイルオペレーティングシステムのURLハンドラ機能を使って他のエンタープライズアプリケーションにより)起動されるアイコンベースのアプリケーションではなく、携帯機器100上で実行されるサービスとして実装してもよい。
【0019】
図1の実施形態に示されているような音声サービスに加えて、携帯機器100は、インターネット120等の公共ネットワークへの、ある種のデータ接続手段108を保持する。データ接続手段108は、セルラデータ通信チャネルまたはワイヤレスネットワーク接続(WiFi)とすることができる。ワークスペース104内で動作するエンタープライズアプリケーションと企業内イントラネット130の間の安全な通信を容易にするために、エンタープライズアプリケーションはエンタープライズゲートウェイルータ112へのVPNトンネル110を保持してもよい。VPNトンネル110は、エンタープライズアプリケーションと企業内イントラネット130の間の安全な通信チャネルを提供する。1つの実施形態において、以下に詳しく説明するように、エンタープライズアプリケーションと共に(例えばラッパー内に)含められた、カスタム化されたシステムコールは、VPNトンネル(例えば、VPNトンネル110)を保持して、確実にすべてのネットワーク通信がVPNトンネルを通るようにすることに関与する。
【0020】
さらに、VPNトンネル110は特定のエンタープライズアプリケーションに固有のものであるため、VPNトンネル110はワークスペース104の外にある他のアプリケーションには利用できない。このようにVPNトンネル110を特定のエンタープライズアプリケーションが専用に使用できるようにすることによって、ワークスペース104内で動作するエンタープライズアプリケーションからの、およびそこへのすべてのデータ通信が確実に安全となり、暗号化される。これに加えて、VPNトンネルがエンタープライズアプリケーションに固有のものであるため、ゲートウェイルータ112はアプリケーションごとのアクセス履歴を取得でき、このことがトンネル130のセキュリティの改善につながる。VPNトンネル110は、携帯機器100上のすべてのアプリケーションが利用可能なデータ接続手段108の中で確立されるが、VPNトンネル110で伝えられるコンテンツは機密のまま保持され、そのVPNトンネル110に関与するエンタープライズアプリケーションだけがこれにアクセス可能である。
【0021】
特定の実施形態において、アプリケーション管理エージェント106は、必要に応じて実行できる。すなわち、アプリケーション管理エージェント106は、エンタープライズアプリケーションがそれをコールした時(例えば、認証証明情報、暗号キー、およびセキュリティ保護されたワークスペースでの作業に関するその他のデータ等を交換するため)、またはユーザがそれを起動した時だけ実行される。他の実施形態において、アプリケーション管理エージェント106は、少なくとも1つのエンタープライズアプリケーションが実行しているかぎり実行したままとすることができる(しかしながら、このオプションは、プロセスの同時実行が可能でない、または限定的にしか可能でないオペレーティングシステムでは利用できないかもしれない)。任意選択により、アプリケーション管理エージェント106は携帯機器100のブートアップシーケンスの一環のサービスとして自動的に始動することもできる。アプリケーション管理エージェント106は、セキュリティ要件とアクセス管理等の企業ポリシを保持し、更新することに関与する。これに加えて、アプリケーション管理エージェント106は、適時、または必要に応じて、アプリケーション管理サーバ114と通信することができ、これは1つの実施形態において、企業内イントラネット130の中に存在できる。アプリケーション管理サーバ114は、アプリケーション管理エージェント106を介して、企業ポリシのアップデートを配信し、エンタープライズアプリケーションを遠隔的に管理できる。
【0022】
ワークスペース内のアプリケーションの管理
特定の実施形態において、ワークスペース104内のエンタープライズアプリケーションは、アプリケーション管理エージェント106によって保持されるセキュリティと隔離要件および企業ポリシに適合し、(1)企業ポリシを強制するように(例えば提供されたSDKとAPIを使って)特に開発されたアプリケーション(「コンテナ化アプリケーション(containerized applications)」と呼ばれることもある)と、(2)企業ポリシを強制するように(特別に設計されたものに対して)「ラップ」された従来の汎用アプリケーション(「ラッパーアプリケーション」と呼ばれることがある)のいずれかである。コンテナ化アプリケーションは、その企業によって、特にワークスペース内で使用するために社内で開発されたアプリケーション、例えばその企業の営業部門のための費用報告書生成アプリケーションまたはその企業の財務チームのための財務予測アプリケーションを含んでいてもよい。ラップアプリケーションは、企業または第三者ベンダのいずれかによって開発された汎用アプケーション、例えば一般的使用のために開発された電子メールプログラム、ウェブブラウザ、ドキュメントビューワ等である。前述のように、ラッパーアプリケーションを作るためには、企業またはエンタープライズアプリケーションの開発者は、ラッピングユーティリティプログラムまたはツールを利用して、ポリシ強制メカニズムとともにラップ汎用アプリケーションを導入する(inject wrap generic applications with a policy-enforcement mechanism)ことができ、これは1つの実施形態において、ダイナミックリンクライブラリへのリファレンスを従来のシステムコールと置換されるアプリケーションのバイナリコードの中に導入することが関わる。これらのダイナミックリンクライブラリは、エンタープライズアプリケーションシステムコールのいずれかに割り込み、またはその他の方法でこれを妨害し、エンタープライズアプリケーションを強制的に企業ポリシに適合させる。例えば、通信の目的のために、ラッパーは、TCP/IPソケットを生成させるための従来のシステムコールを、VPNトンネルのためのソケットを生成して、戻すためのカスタム化されたコールに置換することができる。このように、エンタープライズアプリケーションによって開始されるすべてのデータ通信がVPNトンネルを通る。さらに、エンタープライズアプリケーションのラッパーはまた、アプリケーション管理エージェント106と通信して、その企業のポリシの最新版を取得してもよい。特定の実施形態において、このようなポリシは失効期限を有していてもよく、これによってエンタープライズアプリケーションに対し、企業ポリシの自己のコピーを、自己のコピーが失効した時に定期的に更新させる。
【0023】
特定の実施形態において、企業ポリシを保持することに加え、アプリケーション管理エージェント106はまた、「アプリケーションストア」を提供してもよく、これを通じて携帯機器100のユーザはワークスペース104に適合するエンタープライズアプリケーションをよく調べ、ダウンロードし、インストールすることができる。このようなアプリケーションストア機能を有するアプリケーション管理エージェント106は、アプリケーションアップデートの通知を受け取り、ユーザに対し、インストールされたアプリケーションを更新することに注意を喚起するか、あるいはインストールされたエンタープライズアプリケーションを無効化またはディスエーブルするための通知を受け取る。理解すべき点として、代替的な実施形態は単に、携帯機器100上にインストール可能な別のモバイルアプリケーションを提供してもよく、これは、別々の企業ごとのアプリケーションストアである(アプリケーションストア機能をアプリケーション管理エージェント106に組み込むことと対比)。
【0024】
図2は、ある実施形態による、ワークスペース104の隔離を容易にする携帯機器100の例示的アーキテクチャを示す。
図2の実施形態において、携帯機器100のオペレーティングシステム216は、従来のアプリケーション214の集合とエンタープライズアプリケーション202の集合をサポートする。ラップアプリケーション204は、ポリシ強制メカニズム208(これは1つの実施形態において、前述のように、汎用アプリケーション206の従来のシステムコールを妨害し、これと置換される、注入されたダイナミックライブラリの集合を含むラッパーとして表される)でラップされた汎用アプリケーション206を含む。ポリシ強制メカニズム208は、例えばプロセス間通信(inter-process communication : IPC)メカニズムを使って企業ポリシをラップアプリケーション204に伝え、このようなポリシをアプリケーション管理エージェント106から取得する。従来のIPCを利用できるようにプロセスの同時実行をサポートしていないか、または限定的にしかサポートしていないモバイルオペレーティングシステムでは、ラップアプリケーション204がアプリケーション管理エージェント106(およびその他のラップエンタープライズアプリケーション)と通信するためのメカニズムは、安全な、暗号化されたペーストボードとして実装されてもよく(例えば、AppleのiOSの中のUIPasteboard等、基本となるモバイルオペレーティングシステムによって提供されるペーストボード機能を利用する)、これはワークスペース104の中の2つまたはそれ以上の通信アプリケーションのためのメッセージドロップボックスとして機能する。
【0025】
動作中、ラップエンタープライズアプリケーション204は、ゲートウェイルータ112に終端を置くVPNトンネル110を介して企業ネットワークと通信することができる。1つの実施形態において、ポリシ強制メカニズム208によって、汎用アプリケーション206のためのネットワーク通信が確実に、VPNトンネル110に対応するソケットを通過することになる。その結果、例えばワークスペース104内のウェブブラウザアプリケーションは、VPNトンネルを介して企業内イントラネットのコンテンツをブラウズすることができ、ワークスペース104内のドキュメントビューワによってユーザはその企業のイントラネットサーバ上に保存されたドキュメントを見ることができる。さらに、アプリケーション管理エージェント106は、例えば企業にあるアプリケーション管理サーバ114と通信して、その企業のポリシのそのローカルコピーを企業ポリシの最新版と同期させることができる。1つの実施形態において、アプリケーション管理サーバ114は、アプリケーションまたはポリシ関連の更新情報を、プッシュ通知サーバ218、例えばApple Push Notification Service(APNS)を介してアプリケーション管理エージェント106にプッシュしてもよい。
【0026】
アプリケーション管理エージェント106の実施形態は、ブートストラッピング機能212を含み、これはアプリケーション管理エージェント106(例えばこれは、特定の実施形態において、Apple App Store等の公共のアプリケーションストアから携帯機器のユーザによってダウンロードされてもよい)が最初にインストールされ、起動された時に一連の動作を実行することにより、エンタープライズアプリケーションがワークスペース104内で動作できるようにする。ブートストラッピングモジュール212によって実行されるこのような動作としては例えば、ユーザを企業のリモートアプリケーション管理サーバ114に対して認証すること(例えばユーザの会社ベースのユーザ名とパスワード等を要求することによる)、ユーザに対し、ワークスペース104にアクセスするための認証証明情報(例えば、パスワード、PIN等)を作るように要求すること、アプリケーション管理エージェント106に対してエンタープライズアプリケーションを認証し、エンタープライズアプリケーションとアプリケーションエージェント106の間の通信のセキュリティを確保するために、エンタープライズアプリケーションが使用し、共有できる暗号要素(例えば、キー、無作為による名前等)を生成すること(例えば、ペーストボードへの通信を暗号化する等による)、その企業のポリシの初期バージョンをアプリケーション管理サーバ114から取得すること等、がある。
【0027】
アプリケーション管理エージェント106の実施形態はさらに、
図3に示されるように、追加の機能をさらに含んでいてもよく、そのいくつかはすでに説明した。
図3の実施形態に示されているように、アプリケーション管理エージェント106はPINロック機能302と、ポリシ管理機能304と、アプリケーションディスエーブル機能306と、リーシングエージェント308と、ポリシ同期機能310と、アプリケーション管理機能312と、アプリケーション構成プロファイル管理機能314と、ウェブクリップ管理機能316と、被参照アプリケーション管理機能318と、アプリケーションカタログ210と、ログインおよびエンドユーザライセンス契約(end user license agreement : EULA)機能322と、初期ユーザインタフェースモジュール324と、デバイス認定モジュール326と、を含む。
【0028】
PINロック機能302は、ユーザがワークスペース104内のエンタープライズアプリケーションを初めて使用する時に、ユーザを認証する。例えば、最初のエンタープライズアプリケーションを起動すると、そのエンタープライズアプリケーションのラッパーがアプリケーション管理エージェント106に対し、(例えば、1つの実施形態においては、モバイルオペレーティングシステムのURLハンドラを通じてアプリケーション管理エージェント106を呼び出すことによって)ワークスペース104を起動するように要求してもよい。次に、アプリケーション管理エージェント106は、PINロック機能302を通じて認証メカニズムをユーザに提示して、ユーザを認証してからワークスペースを起動してもよい。認証メカニズムはPINロック、またはより高度なメカニズム、例えばデジタル認証、パスワードにローリングセキュリティトークンを組み合わせたもの、生体認証、またはユーザから認証証明情報を取得するためのその他のあらゆる手段とすることができる。ワークスペース104の(例えばある期間にわたりどのエンタープライズアプリケーションも動作していないことによる)失効期限またはその企業のポリシの失効期限を実装する特定の実施形態において、PINロック機能302はまた、例えば起動されたエンタープライズアプリケーションのラッパーがワークスペース104の失効を判断した時(例えば、前のどのエンタープライズアプリケーションもある期間にわたり動作しなかった)、またはその企業のポリシのそのローカルコピーが失効した時にも起動されてよく、それによってアプリケーション管理エージェント106が動作するよう要求される。
【0029】
ポリシ管理機能304は、ワークスペース104内で受け取ったエンタープライズアプリケーションを実行することに関与する。企業ポリシの例としては、例えば、認証証明情報の強度要件、ワークスペースが失効し、例えば、ユーザにPINまたはその他の証明情報の再挿入を要求するまでの時間の長さ、エンタープライズアプリケーション間の特定の種類の通信(例えば、ペーストボードアクセス等)のイネーブル、PINロック要件、アクセス特権レベル、ファイヤウォール要件、暗号化要件等がありうる。
【0030】
アプリケーションディスエーブル機能306は、アプリケーション管理サーバ114からの通知に基づいて、インストール済みのアプリケーションを無効化、またはディスエーブルできる。この機能は、ユーザがその企業のメンバーではなくなった時、およびその企業のIT部門がそのユーザのアクセス特権を取り消して、そのユーザの私物の携帯機器100にインストール済みのエンタープライズアプリケーションをディスエーブルする必要が生じた時に有益である。
【0031】
リーシングエージェント308は、ワークスペース104または企業ポリシに関するリースまたは失効期限を管理する。例えば、企業は、エンタープライズアプリケーションのある不作動期間が経過した後にワークスペースを「失効」させたいと望むかもしれない。1つの実施形態において、ワークスペースの有効期間の値を、ワークスペース104内のエンタープライズアプリケーションだけがアクセス可能な、安全なペーストボードに書き込んでもよい。(エンタプライズポリシによる)時間の値は指定された期間が経過した時に失効してもよいが、ユーザがいずれかのエンタープライズアプリケーションをその時点で使用している限り、このようなエンタープライズアプリケーションのラッパーはその有効性を引き続き延長する。エンタープライズアプリケーションが起動され、ワークスペースの有効期間の値が失効したと判断すると、エンタープライズアプリケーションはアプリケーション管理エージェント106を(例えば、1つの実施形態ではURLハンドラを使って)コールし、アプリケーション管理エージェント106がリーシングエージェント308を呼び出し、また、1つの実施形態においては、PINロック機能302を起動して、ユーザから認証証明情報を取得してから、ワークスペース104を再び有効化してもよい。
【0032】
ポリシ同期機能310は、アプリケーション管理サーバ114と通信して更新された企業ポリシを更新することのほか、このような企業ポリシを携帯機器100のエンタープライズアプリケーションに提供することに関与する。
【0033】
アプリケーション管理機能312は、エンタープライズアプリケーションとアプリケーション管理エージェント106の間の通信を管理する。特定の実施形態において、具体的に名前を付けられたペーストボードを通じたメッセージ交換を通じて行われるこのような通信は、ワークスペース104内のエンタープライズアプリケーションだけにアクセスする。このようなメッセージは、アプリケーション管理エージェント106によって、アプリケーション管理機能を通じて認証され、復号される必要があるかもしれない。
【0034】
コンフィギュレーションプロファイル管理機能314は、ワークスペース104内で動作するエンタープライズアプリケーションのためのコンフィギュレーション情報を保持する。例えば、ユーザはエンタープライズアプリケーションによって消費される記憶空間を制限し、またはエンタープライズアプリケーションが利用できる帯域幅の量を制限したいと希望してもよい。
【0035】
ウェブクリップ管理機能316は、ユーザがワークスペース104に設置するウェブクリップを追跡する。ウェブクリップは、特定のウェブペースへのショートカットであり、ユーザインタフェース上で別のアイコンとして表示できる。
【0036】
被参照アプリケーション管理機能318は、ワークスペース内の他のアプリケーションによって参照されたアプリケーションに関する情報を保持する。例えば、ある企業の電子メールプログラムが、添付ファイル付の電子メールを受け取り、ユーザが添付ファイルをクリックした場合、添付のファイルの種類に基づいて、被参照アプリケーション管理機能318が他のエンタープライズアプリケーション(例えば、ドキュメントビューワ)をコールして、添付ファイルを開き、表示する。
【0037】
アプリケーションカタログ210は、利用可能なエンタープライズアプリケーションの一覧を保持し、表示する。アプリケーション管理エージェント106を(例えばユーザが携帯機器100のスクリーン上のアイコンを選択することによって)起動させると、ユーザはアプリケーションカタログ210の中からあるアプリケーションを選択し、インストールすることができる。1つの実施形態において、アプリケーションカタログ210からあるアプリケーションを選択すると、アプリケーション管理エージェント106がリモートアプリケーション管理サーバ114(またはその企業が管理する他のアプリケーションサーバ)と通信し、これが選択されたアプリケーションへのラッピングプロセスを開始し、その後、このアプリケーションをアプリケーション管理エージェント106に提供して、携帯機器100にインストールする。
【0038】
ログインおよびエンドユーザライセンス契約(EULA)管理機能322は、ユーザに対して、ユーザのログイン時にライセンス契約と適当な法的通知を提示することに関与する。いくつかの実施形態において、ログインおよびEULA管理モジュール322は、アプリケーション管理サーバ114から受け取ったアップデートに基づいてEULA情報を更新してもよい。特定の実施形態において、ログインおよびEULA管理機能322は前述のブートストラッピングプロセスの一部であり、ワークスペース104に関するユーザのログイン証明情報のセキュリティを保護するほか、ユーザに対してEULAまたはその他のサービス条件に同意するように要求する。
【0039】
初期ユーザインタフェース(UI)機能324は、ユーザがアプリケーション管理エージェント106を起動し、ログインした時に、ユーザに「初期画面」を提示してもよい。初期UIモジュール324はまた、アプリケーション管理サーバ114から受け取った情報に基づいて初期画面を更新することもできる。
【0040】
デバイス認定モジュール326は、スマートフォンデバイスを認定して、基本となるハードウェアが確実にそのワークスペースを実行できるようにする。この機能は、企業のIT部門がワークスペースを実行できるハードウェアの種類を制限したい時に望ましい可能性があり、これによって、ハードウェアレベルでの悪意のある攻撃のリスクを低減させ、ワークスペースのセキュリティを改善することができる。
【0041】
アプリケーション管理エージェント106は、上記の機能の多くを、アプリケーション管理サーバ114から受け取った情報に基づいて実行する。
図4は、ある実施形態による、ワークスペース104の管理を容易にする例示的なアプリケーション管理サーバを示している。
図4の実施形態において、アプリケーション管理サーバ114は、アプリケーションラッピングサーバ402と、エンドユーザポータル404と、コンフィギュレーションポータル406と、管理者ポータル408と、を含む。
【0042】
アプリケーションラッピングサーバ402により、企業のIT部門はあらゆる第三者のアプリケーションをラップして、第三者のアプリケーションを企業固有のアプリケーションに変えることができ、これを今度は、ユーザがインストールできるようにアプリケーションカタログ210に掲載できる。エンドユーザポータル404により、エンドユーザは、自分のスマートフォンを使用せずに、あらゆるネットワーク接続を使ってアプリケーション管理サーバ114にログインし、エンタープライズアプリケーションを管理することができる。コンフィギュレーションポータル406によって、企業のIT担当者は、特定のユーザのエンタープライズアプリケーションを構成することができ、例えばアクセス管理レベルを設定し、ユーザポリシをカスタム化する。管理者ポータル408は、システム管理者がアプリケーション管理サーバ114を構成できるようにするインタフェースを提供する。
【0043】
動作中、アプリケーション管理サーバ114は、VPNゲートウェイルータ112を介してエンタープライズアプリケーション202と通信できる。任意選択により、アプリケーション管理エージェント106は、一般的なデータ接続を介して(すなわち、VPNトンネルを介さない)アプリケーション管理サーバ114と通信してもよい。アプリケーション管理エージェント106もまた、このデータ接続を使って初期のVPNトンネルをセットアップできる。アプリケーション管理サーバ114はまた、各種の通知をプッシュ通知サーバ218に提供することもでき、これが今度は、これらの通知をアプリケーション管理エージェント106にプッシュする。
【0044】
図5は、ある実施形態による、隔離されたワークスペース104内であるアプリケーションを起動するプロセスを説明するフローチャートを示す。動作中、携帯機器100のオペレーティングシステム216は、あるエンタープライズアプリケーションを開始するためのユーザ命令を受け取る(動作502)。これに応答して、そのアプリケーションを実行する前に、そのアプリケーションのポリシ強制メカニズム208が、選択されたエンタープライズアプリケーションはワークスペース104内で開始される最初のアプリケーションであるか否かを、例えば実行中のエンタープライズアプリケーションのすべてに関する情報を保持する特別なファイルまたは値をチェックすることによって、確認する(動作504)。そのアプリケーションがワークスペース104内で開始される最初のものであれば、ポリシ強制メカニズム208がオペレーティングステム216に対し、実行フローを(例えば1つの実施形態ではURLハンドラを起動して)アプリケーション管理エージェント106に切り替えるように要求する(動作506)。続いて、アプリケーション管理エージェント106は、チャレンジ(例えば、PINロックモジュール302を介したPINロック)をユーザに提示して、ユーザを認証する(動作508)。そのアプリケーションがワークスペース104で開始される最初のものでなければ(動作504)、ポリシ強制メカニズム208は、最後に呼び出されたエンタープライズアプリケーションがタイムアウトしたか否か(すなわち、動作していなかった期間が所定の期間より長いか)を判断する(動作516)。そうであれば、実行スレッドがアプリケーション管理エージェント106に切り替わり、これが続いて、チャレンジ(例えばPINロック等)をユーザに提示する(動作506および508)。そうでなければ、ポリシ強制メカニズム208は、要求されたエンタープライズアプリケーションにその実行を継続させる(514)。
【0045】
動作508の後、ポリシ強制メカニズム208は、ユーザが認証に成功したか否かを判断する(動作510)。ユーザが認証されていれば、ポリシ強制メカニズム208は任意選択によって、企業ゲートウェアとのVPNトンネルを確立してもよい(動作512)。続いて、ポリシ強制メカニズム208によって、エンタープライズアプリケーションは実行を再開できる(動作514)。ユーザが認証されないと(動作510)、ポリシ強制メカニズム208は要求されたエンタープライズアプリケーションの実行を終了する。
【0046】
システムアーキテクチャ
図6は、ある実施形態による、隔離されたワークスペースをサポートする携帯機器の例示的なアーキテクチャを示す。携帯電話100は、システムオンチップ(SoC)610を含み、システムオンチップ(SoC)610が基本的な機能をスクリーンに提供する。SoC610は、システム100の動作を実行するプロセッサ611を含む。デジタル信号プロセッサ612は、システム100のためのアナログ−デジタル変換等の信号処理を実行する。パワーマネージャ613はバッテリ638を管理する。ディスプレイマネージャ614はディスプレイモジュール632を管理して、ディスプレイをユーザに提供する。いくつかの実施形態において、ディスプレイモジュールは液晶ディスプレイ(LCD)を含む。メモリコントローラ615は、プロセット611がランダムアクセスメモリ(RAM)622にアクセスできるようにする。ストレージコントローラ616は、システム100の内蔵および外付けストレージへのアクセスを提供する。
【0047】
マイクロフォン/スピーカモジュール624により、ユーザは通常の音声動作を実行できる。通信モジュール634は、アンテナ626とモデム636を使って電話ネットワークに接続する。NANDフラッシュ642は内蔵ストレージであり、SDカード644はシステム100の外付けストレージである。整合性モジュール652は、NANDフラッシュ642とSDカード644について整合性チェックを実行する。アプリケーション管理エージェント106は、エンタープライズアプリケーション202を管理し、隔離されたワークスペース104を保持する。SoC610には、従来のアプリケーション214の集合も含まれる。
【0048】
上記のモジュールは、ハードウェアのほかソフトウェアでも実装できることに留意されたい。いくつかの実施形態において、これらのモジュールの1つまたは複数は、システム100の中の1つまたは複数のプロセッサに連結されたメモリ内に保存されたコンピュータ実行可能命令として実施できる。実行されると、これらの命令はプロセッサに上記の機能を行わせる。
【0049】
要するに、本発明の実施形態は、ユーザの私物の携帯電話でエンタープライズアプリケーションのためのワークスペースの安全な隔離を容易にするためのシステムと方法を提供する。ワークスペース内のエンタープライズアプリケーションは、企業内ネットワークへの専用のVPN接続を利用し、ファイルやクリップボードバッファ等のシステムリソースは、エンタープライズアプリケーション間でのみ共有でき、電話機上の他の通常のアプリケーションとは共有できない。隔離されたワークスペースによって、ユーザは同じ携帯機器上で、データのセキュリティについて心配することなく、個人用アプリケーションと仕事関係のエンタープライズアプリケーションの両方を持つことができる。
【0050】
本明細書で説明した方法とプロセスは、コードおよび/またはデータとして実施することができ、これらはコンピュータ可読非一時的記憶媒体に保存できる。コンピュータシステムがコンピュータ可読非一時的記憶媒体に保存されたコードおよび/またはデータを読み取り、実行すると、コンピュータシステムはデータ構造とコードとして実施され、媒体内に保存された方法とプロセスを実行する。
【0051】
本明細書で説明した方法とプロセスは、ハードウェアモジュールまたは装置によって実行でき、および/またはその中に含めることができる。これらのモジュールまたは装置は、特定用途集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定のソフトウェアモジュールまたは1つのコードを特定の時間に実行する専用または共有プロセッサ、および/または現在知られている、または今後開発される他のプログラマブルロジックデバイスを含んでいてもよいが、これらに限定されない。ハードウェアモジュールまたは装置が作動されると、これらはその中に含められた方法とプロセスを実行する。
【0052】
本発明の実施形態の上記の説明は、例示と説明のためにのみ提示された。これらは、網羅的である、または本願を限定することを視としたものではない。したがって、当業者にとっては多くの改変と変更が明らかであろう。本発明の範囲は付属の特許請求の範囲によって定義される。