上述のとおり特定され、本明細書の一部をなし、例示により本明細書で説明する本発明の各態様を実施するための様々な実施形態を、添付の図面を参照しながら説明する。本明細書で説明する範囲を逸脱することなく、他の実施形態を利用し、構造および機能に変更を加えてもよいことは理解されるべきである。本発明の各態様は他の実施形態が可能であり、様々な異なる方法で実施または実行することが可能である。
以下詳細に説明する主題の概要紹介として、本明細書で説明する実施の形態は、モバイルコンピューティングデバイスの管理対象モバイルアプリケーションを使用して、企業コンピューティングシステムのリソースへのリモートアクセスを制御することを指向する。アクセスマネージャは、企業リソースへのアクセスを要求するモバイルアプリケーションが正確に特定され、モバイルコンピューティングデバイスへのインストール後に改変されていないかどうかを判定する検証プロセスを行う。このように、アクセスマネージャは企業リソースへのアクセスを要求するモバイルアプリケーションが信頼でき、その企業リソースを保護するために使用されるセキュリティメカニズムを回避しようとしていないことを保証する。その結果、企業に関連する個人は、自分の私用モバイルデバイスで企業リソースを有利に利用できる。
本明細書で使用される表現および用語は、説明目的であり、制限と見なしてはならないことは理解されるべきである。むしろ、本明細書で使用される表現および用語には、そのもっとも広い解釈および意味が与えられるべきである。「含み」および「備え」ならびにその変形の使用は、これ以降で挙げられるアイテムおよびその等価物ならびに追加アイテムおよびその等価物を包含することが意図されている。「取り付けられている」、「接続されている」、「連結されている」、「位置付けられている」、「係合されている」および同様な用語の使用は、直接的および間接的の両方の取り付け、接続、連結、位置付けおよび係合を含むことが意図されている。
〈コンピューティングアーキテクチャ〉
コンピュータのソフトウェア、ハードウェアおよびネットワークは、特に、スタンドアロン、ネットワーク化、リモートアクセス(別称、リモートデスクトップ)、仮想化および/またはクラウドベースの環境を含め、多様な異なるシステム環境で利用される。
図1は、本明細書で説明する1つ以上の態様を、スタンドアロンおよび/またはネットワーク環境で実装するために使用される、システムアーキテクチャならびにデータ処理装置の一実施例を示す。
様々なネットワークノード103,105,107および109は、インターネットなどの広域ネットワーク(WAN)101を介して相互接続されている。プライベートイントラネット、企業ネットワーク、LAN、メトロポリタンエリアネットワーク(MAN)、ワイヤレスネットワーク、パーソナルネットワーク(PAN)等を含む、他のネットワークもまた、または代わりに使用してもよい。ネットワーク101は例示目的であり、より少ないか、または追加のコンピュータネットワークと取り替えてもよい。ローカルエリアネットワーク(LAN)はあらゆる周知のLANトポロジーのうちの1つ以上を有しており、イーサーネットなどの多様な異なるプロトコルのうちの1つ以上を使用する。デバイス103,105,107,109および他のデバイス(図示せず)は、撚り対線、同軸ケーブル、光ファイバ、電波または他の通信媒体を介してネットワークのうちの1つ以上に接続している。
本明細書で使用し、図面に図示する用語「ネットワーク」とは、遠隔記憶装置が1つ以上の通信パスを介して互いに連結されているシステムだけではなく、記憶容量を有する当該システムにそのときどきで連結してもよいスタンドアロンデバイスのことも含む。そのため、「ネットワーク」とは、「物理的ネットワーク」だけでなく、すべての物理的ネットワークに常駐する(単一のエンティティに帰属する)データから構成される「コンテンツネットワーク」をも含む。
コンポーネントは、データサーバ103、ウェブサーバ105およびクライアントコンピュータ107,109を含んでいる。データサーバ103は、本明細書で説明する1つ以上の態様を行うために、データベースおよび制御ソフトウェアの全体的なアクセス、制御および管理(administration)を提供する。
データサーバ103はウェブサーバ105に接続されていてもよく、それによりユーザは必要なデータとやりとりし、必要なデータを取得する。あるいは、データサーバ103はウェブサーバ自体として作動してもよく、インターネットに直接接続してもよい。データサーバ103は、直接もしくは間接的な接続を介して、または何らかの他のネットワークを介して、ネットワーク101(たとえば、インターネット)経由でウェブサーバ105に接続されていてもよい。
ユーザはリモートコンピュータ107,109を使用して、たとえばウェブサーバ105がホストする1つ以上の外部に露出するウェブサイトを介してデータサーバ103に接続するためのウェブブラウザを使用して、データサーバ103とやりとりする。クライアントコンピュータ107,109はデータサーバ103とともに使用されて、そこに格納されているデータにアクセスしてもよく、または他の目的で使用されてもよい。たとえばユーザは、クライアントデバイス107から、当該技術分野で周知のインターネットブラウザを使用して、またはコンピュータネットワーク(インターネットなど)上でウェブサーバ105および/またはデータサーバ103と通信するソフトウェア・アプリケーションを実行することにより、ウェブサーバ105にアクセスしてもよい。
サーバおよびアプリケーションは同じ物理マシン上に組み合わされて、個別の仮想アドレスもしくは論理アドレスを保持してもよく、または個別の物理マシンに常駐していてもよい。
図1は、使用され得るネットワークアーキテクチャのほんの一実施例を示しており、当業者は、使用される特定のネットワークアーキテクチャおよびデータ処理装置を変更してもよいこと、ならびに、本明細書で詳細に説明するように、それが提供する機能に対して二次的なものであることを認識するであろう。たとえば、ウェブサーバ105およびデータサーバ103が提供するサービスは単一のサーバに結合されてもよい。
各コンポーネント103,105,107,109は、あらゆるタイプの周知のコンピュータ、サーバまたはデータ処理装置であってもよい。たとえば、データサーバ103はレートサーバ103のオペレーション全体を制御するプロセッサ111を含んでいてもよい。データサーバ103は、RAM113、ROM115、ネットワークインターフェース117、入出力インターフェース119(たとえば、キーボード、マウス、ディスプレイ、プリンタ等)およびメモリ121をさらに含んでいてもよい。
I/O119は、データまたはファイルを読み込み、書き込み、表示し、および/または印刷する多様なインターフェースユニットおよびドライブを含んでいてもよい。メモリ121はデータ処理装置103、本明細書で説明する態様を行うようデータサーバ103に指図する制御ロジック125、ならびに本明細書で説明する態様と合わせて使用してもしなくてもよい二次的、サポートおよび/または他の機能を提供する他のアプリケーションソフトウェア127のオペレーション全体を制御するオペレーティングシステム・ソフトウェア123をさらに格納していてもよい。
制御ロジックは本明細書ではデータサーバソフトウェア125ともいう。データサーバソフトウェアの機能は、制御ロジックに符号化され、システムに入力を提供するユーザによって手動で作成されるルールに基づいて自動的に行われるオペレーションもしくは決定、および/またはユーザ入力(たとえば、問合わせ、データのアップデート等)に基づく自動処理の組合せをいう。
メモリ121は、第1データベース129および第2データベース131を含め、本明細書で説明する1つ以上の態様の実施で使用されるデータも格納している。いくつかの実施形態では、第1データベースは第2データベースを含んでいてもよい(たとえば、個別のテーブル、レポート等として)。すなわち、情報は、システムの設計により、単一のデータベースに格納することができ、または別々の論理データベース、仮想データベースもしくは物理的データベースに分けることができる。デバイス105,107,109は、デバイス103に関して説明したのと同様なアーキテクチャを有してもよく、または異なるアーキテクチャを有していてもよい。当業者にはわかるように、本明細書で説明するデータ処理装置103(またはデバイス105,107,109)の機能を複数のデータ処理装置に分散して、たとえば、複数のコンピュータに処理ロードを分散し、地理的な場所、ユーザのアクセスレベル、サービスの質(QoS)等に基づいてトランザクションを分けてもよい。
1つ以上の態様は、1つ以上のプログラムモジュールなど、1つ以上のコンピュータまたは本明細書で説明される他のデバイスによって実行されるコンピュータで使用可能な、もしくは読取可能なデータおよび/またはコンピュータ実行可能命令に具現されてもよい。
一般に、プログラムモジュールは、コンピュータまたは他のデバイス内のプロセッサによって実行されるとき、特定のタスクを行うかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含んでいる。モジュールは実行のために後でコンパイルされるソースコードプログラミング言語で書き込んでもよく、またはJava(登録商標)scriptもしくはActionScriptなどの(ただし、これだけに限定されない)スクリプト言語で書き込んでもよい。コンピュータ実行可能命令は、不揮発性記憶装置などのコンピュータ読取可能媒体に格納されていてもよい。ハードディスク、CD−ROM、光学記憶装置、磁気記憶装置、および/またはそのあらゆる組合せを含め、あらゆる適したコンピュータ読取可能記憶媒体を利用してもよい。さらに、本明細書で説明するデータまたはイベントを表す様々な伝送(非記憶)媒体は、金属ワイヤ、光ファイバ、ならびに/またはワイヤレス伝送媒体(たとえば、空気および/もしくは空間)など、信号伝達媒体を通して移動する電磁波の形で、送信元と宛先との間を転送してもよい。
本明細書で説明する様々な態様は、方法、データ処理システム、またはコンピュータプログラム製品として具現される。そのため、様々な機能は、集積回路、フィールドプログラマブル・ゲートアレイ(FPGA)等といった、ソフトウェア、ファームウェアおよび/またはハードウェアもしくはハードウェア等価物に全部または一部具現化されてもよい。本明細書で説明する1つ以上の態様をより効果的に実装するために特定のデータ構造を使用してもよく、当該データ構造は本明細書で説明されるコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内に含まれる。
図2をさらに参照して、本明細書で説明する1つ以上の態様はリモートアクセス環境に実装されている。図2は、本明細書で説明する1つ以上の態様に従って使用されるコンピューティング環境200の汎用コンピューティングデバイス201を含むシステムアーキテクチャを示す。
汎用コンピューティングデバイス201は、クライアントアクセスデバイスに仮想マシンを提供するように構成されている単一サーバまたはマルチサーバのデスクトップ仮想化システム(たとえば、リモートアクセスもしくはクラウドシステム)内のサーバ206aとして使用されてもよい。汎用コンピューティングデバイス201は、ランダムアクセスメモリ(RAM)205、読取専用メモリ(ROM)207、入出力(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は仮想マシンであってもよい。仮想マシンはあらゆる仮想マシンであってもよいが、いくつかの実施形態では、仮想マシンはタイプ1またはタイプ2のハイパーバイザ、たとえば、サイトリックス・システムズ、IBM、ヴイエムウェアによって開発されるハイパーバイザ、またはあらゆる他のハイパーバイザによって管理されるあらゆる仮想マシンであってもよい。いくつかの態様において、仮想マシンはハイパーバイザによって管理してもよいが、いくつかの態様では、仮想マシンはサーバ206上で実行するハイパーバイザまたはクライアント240上で実行するハイパーバイザによって管理してもよい。
いくつかの実施形態では、サーバ206または遠隔に設置された他のマシン上で遠隔実行するアプリケーションによって生成されるアプリケーション出力を表示するクライアントデバイス240を含む。これらの実施形態では、クライアントデバイス240は仮想マシンのレシーバプログラムまたはアプリケーションを実行して、アプリケーションウインドウ、ブラウザ、または他の出力ウインドウに出力を表示してもよい。一つの実施例では、アプリケーションはデスクトップであるが、他の実施例では、アプリケーションはデスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび/またはリモート・アプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでもよい。本明細書で使用するアプリケーションとは、オペレーティングシステム(および、必要ならばデスクトップも)のインスタンスがロードされた後に実行されるプログラムである。
サーバ206は、いくつかの実施形態では、クライアント上で実行するシンクライアントまたはリモートディスプレイ・アプリケーションにデータを送信するリモートプレゼンテーション・プロトコルまたは他のプロトコルを使用して、サーバ206上で実行するアプリケーションによって生成されるディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイ・プロトコルは、次の非網羅的なプロトコルリストのうちのいずれか1つとすることができる。すなわち、フロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクが開発したインディペンデント・コンピューティング・アーキテクチャ(ICA)プロトコル、またはワシントン州レドモンドのマイクロソフト・コーポレーションが製造するリモートデスクトッププロトコル(RDP)。
リモートコンピューティング環境は、サーバ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サーバ206bに転送し、第2サーバ206bからの応答により、クライアントマシン240により生成される要求に応答する第1サーバ206aを含む。第1サーバ206aはクライアントマシン240に利用できるアプリケーションの一覧表、およびアプリケーションの一覧表内で特定されるアプリケーションをホストするアプリケーションサーバ206に関連するアドレス情報を取得してもよい。それから、第1サーバ206aは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、クライアント240と直接通信して、特定されたアプリケーションへのアクセスをクライアント240に提供することができる。1つ以上のクライアント240および/または1つ以上のサーバ206は、ネットワーク230、たとえばネットワーク101上でデータを伝送してもよい。
図2は、デスクトップ仮想化システムの高レベルアーキテクチャを示す。図示するように、デスクトップ仮想化システムは、1つ以上のクライアントアクセスデバイス240に仮想デスクトップおよび/または仮想アプリケーションを提供するように構成されている少なくとも1つの仮想化サーバ206を含め、単一サーバもしくはマルチサーバシステムまたはクラウドシステムであってもよい。
本明細書で使用されるデスクトップとは、1つ以上のアプリケーションをホストおよび/または実行してもよいグラフィカル環境またはスペースをいう。デスクトップは、ローカルおよび/またはリモート・アプリケーションを統合することのできるオペレーティングシステムのインスタンスにユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。アプリケーションは、オペレーティングシステムのインスタンス(および、任意でデスクトップも)をロードした後に実行するプログラムを含んでいてもよい。オペレーティングシステムのインスタンスは物理的(たとえば、1デバイスにつき1つのオペレーティングシステム)または仮想的(たとえば、単一デバイス上で稼動するOSの多くのインスタンス)であってもよい。各アプリケーションはローカルデバイス上で実行してもよく、または遠隔設置されたデバイス上で実行(たとえば、遠隔操作)してもよい。
図3は、本明細書で説明する1つ以上の開示された特徴に従う、クライアントドライブマッピング用モバイルデバイス管理型セキュリティのためのシステム300の一例を示すブロック図である。システム300は、ネットワーク301、クライアントドライブマッピングファイルシステム(CDMシステム)302、およびクライアント304を含んでいる。
ネットワーク301は、会社や事業体などの企業により運営および/または管理されていてもよい。ネットワーク301により、クライアント304などの、クライアントのユーザが、クライアントからファイルなどの企業または個人のリソースにアクセスし、個人的使用のためにクライアントを使用することができる。
CDMシステム302はまた、CDMシステムドライバ306などのドライバ、システムファイル、および、ユーザまたはカーネルモードで動作させることができるネットワークマネージャを含んでもよい。CDMシステム302は、たとえば、CDMサービスドライバ306を使用して、企業ドライブまたはCDMシステム302のドライブにクライアントドライブをマッピングしてもよい。CDMシステム302の各構成要素は、CDMシステム302の任意の他の構成要素とインタラクトしてもよい、および/または、結合されてもよい。CDMシステム302を、たとえば、企業サーバマシン上に配置してもよい。
クライアント304は、タブレット304a、ラップトップ304b、携帯電話304cなどの任意の電子コンピューティングデバイスであってもよい。CDMシステム302へと304a,304bおよび304cのそれぞれをリンクする線によって、図3に示すように、クライアント304がCDMシステム302に接続され、および/または結合される。たとえば、CDMシステム302は、企業ネットワークなどのネットワーク301の一部であってもよい。クライアント304はまた、たとえばリモートアクセス接続を使用して、ネットワーク301へ接続してもよい。
システム300を、CDMシステム302に関連付けられた企業ドライブにクライアント304上のドライブをマッピングするために使用してもよい。クライアントドライブマッピングは、クライアントデバイスが企業ネットワークに接続されているときにユーザが利用可能な、CD−ROM、DVDまたはUSBメモリスティックを含む、クライアントデバイスに搭載された任意のディレクトリを作る。サーバがクライアントドライブマッピングを許可するように構成されている場合、ユーザは、自身のローカルに保存されたファイルにアクセスし、企業ネットワークに接続したときにそれらを用いて作業し、そして、ローカルドライブまたはサーバ上のドライブのいずれかにそれらを再度、保存することができる。
ドライブのマッピングにより、CDMシステム302およびクライアント304のローカルドライブに関連付けられた企業ドライブが、相互に通信することが可能となり、クライアント304上での読み込みおよび書き込みがCDMシステム302を通過することができる。たとえば、クライアント304がCDMシステム302に接続され、クライアント304上のドライブがCDMシステム302に関連付けられた企業ドライブにマッピングされた後、CDMシステム302によって管理されるアプリケーションを使用するクライアント304上のファイルを保存するための要求は、CDMシステム302にファイルのデータを渡してもよく、CDMシステム302はそして、クライアント304上のドライブにファイルを書き込んでもよい。
ドライブがマッピングされた後、あたかもそのドライブが、クライアント304などのクライアント上のローカル物理ハードディスクドライブを表すかのように、そのドライブにアクセスすることによって、クライアント上で実行中のアプリケーションが、企業サーバマシンからなど、ストレージ場所からファイルを読み書きすることができる。
図4をさらに参照すると、本明細書で説明するいくつかの態様は、クラウドベースの環境に実装される。図4はクラウドコンピューティング環境(またはクラウドシステム)400の実施例を示す。図4から分かるように、クライアントコンピュータ411〜414はクラウド管理サーバ410と通信して、クラウドシステムのコンピューティングリソース(たとえば、ホストサーバ403、ストレージリソース404およびネットワークリソース405)にアクセスしてもよい。
管理サーバ410は1つ以上の物理的サーバ上に実装してもよい。管理サーバ410は、たとえば、特にフロリダ州フォート・ローダーデールのサイトリックス・システムズ・インクのCLOUDSTACK、またはOPENSTACKを稼動してもよい。管理サーバ410は、たとえば、ホストコンピュータ403、データ記憶装置404およびネットワーキングデバイス405など、クラウド・ハードウェアおよびソフトウェア・リソースを含め、様々なコンピューティングリソースを管理してもよい。クラウド・ハードウェアおよびソフトウェア・リソースは非公開および/または公開コンポーネントを含んでいてもよい。たとえば、クラウドは1つ以上の特定のカスタマもしくはクライアントコンピュータ411〜414によって、および/またはプライベートネットワーク上で使用されるプライベートクラウドとして構成していてもよい。他の実施形態では、パブリッククラウドまたはハイブリッドパブリック−プライベートクラウドが、オープンまたはハイブリッドネットワーク上で他のカスタマによって使用されてもよい。
管理サーバ410は、クラウドオペレータおよびクラウドカスタマがクラウドシステムとやりとりしてもよいユーザインターフェースを提供するように構成されていてもよい。たとえば、管理サーバ410はユーザインターフェースにAPIのセットおよび/または1つ以上のクラウドオペレータコンソール・アプリケーション(たとえば、ウェブベースまたはスタンドアロンアプリケーション)を提供して、クラウドオペレータがクラウドリソースを管理し、仮想化レイヤを構成し、カスタマアカウントを管理し、他のクラウド管理タスクを行うことができるようにしてもよい。
管理サーバ410は、クライアントコンピュータ411〜414を介してエンドユーザからのクラウドコンピューティング要求、たとえば、クラウド内で仮想マシンを作成、修正または破棄する要求を受信するように構成されているユーザインターフェースを備えるAPIのセットおよび/または1つ以上のカスタマコンソール・アプリケーションを含んでいてもよい。クライアントコンピュータ411〜414はインターネットまたは他の通信ネットワークを介して管理サーバ410に接続してもよく、管理サーバ410が管理するコンピューティングリソースのうちの1つ以上へのアクセスを要求してもよい。クライアントの要求に応答して、管理サーバ410は、クライアント要求に基づいて、クラウドシステムのハードウェアレイヤの物理的リソースを選択し、プロビジョニングするように構成されているリソース・マネージャを含んでいてもよい。たとえば、管理サーバ410およびクラウドシステムの追加コンポーネントは、カスタマに計算リソース、データストレージサービス、ネットワーク能力、ならびにコンピュータプラットフォームおよびアプリケーションサポートを提供しながら、ネットワーク(たとえば、インターネット)上で、クライアントコンピュータ411〜414のカスタマのために、仮想マシンおよびその動作環境(たとえば、ハイパーバイザ、ストレージリソース、ネットワーク素子が提供するサービス等)をプロビジョニングし、作成し、管理するように構成されていてもよい。クラウドシステムはまた、セキュリティシステム、開発環境、ユーザインターフェース等を含め、様々な特定のサービスを提供するように構成されていてもよい。
たとえば、一定のクライアント411〜414は、同じエンドユーザ、または同じ会社もしくは組織に属する異なるユーザの代わりに仮想マシンを作成する異なるクライアントコンピュータに関連付けられてもよい。他の実施例では、一定のクライアント411〜414は、異なる会社もしくは組織に属するユーザなどに関連付けられていなくてもよい。関連付けられていないクライアントに対して、いずれかのユーザの仮想マシンまたはストレージ上の情報を他のユーザから隠してもよい。
ここでクラウドコンピューティング環境の物理的ハードウェアレイヤを参照すると、可用性(availability)ゾーン401〜402(またはゾーン)は物理的コンピューティングリソースのひとまとまりのセットといえる。ゾーンはコンピューティングリソースのクラウド全体において他のゾーンとは地理的に分離していてもよい。たとえば、ゾーン401はカリフォルニア州に配置されている第1クラウド・データセンターであってもよく、ゾーン402はフロリダ州に配置されている第2クラウド・データセンターであってもよい。管理サーバ410は可用性ゾーンのうちの1つ、または別の場所に配置されていてもよい。各ゾーンは、ゲートウェイ経由で、管理サーバ410などのゾーン外にあるデバイスとインターフェースする内部ネットワークを含んでいてもよい。クラウドのエンドユーザ(たとえば、クライアント411〜414)は、ゾーン間の区別に気付くかもしれないし、または気づかないかもしれない。たとえば、エンドユーザは指定される量のメモリ、処理能力、およびネットワーク能力を有する仮想マシンの作成を要求してもよい。
管理サーバ410はユーザの要求に応答してもよく、ゾーン401またはゾーン402のリソースを使用して仮想マシンが作成されたかどうかをユーザが知ることなく、仮想マシンを作成するためにリソースを割り当ててもよい。他の実施例では、クラウドシステムは、エンドユーザが特定のゾーンまたはゾーン内の特定のリソース403〜405に仮想マシン(または他のクラウドリソース)を割り当てるよう要求できるようにしてもよい。
この実施例では、各ゾーン401〜402は様々な物理的ハードウェアコンポーネント(またはコンピューティングリソース)403〜405の配列、たとえば、物理的ホスティングリソース(またはプロセッシングリソース)、物理的ネットワークリソース、物理的ストレージリソース、スイッチ、および、カスタマにクラウドコンピューティングサービスを提供するために使用してもよい追加のハードウェアリソースを含んでいてもよい。
クラウドゾーン401〜402の物理的ホスティングリソースは、上述した仮想化サーバ301など、仮想マシンのインスタンスを作成しホストするように構成されていてもよい1つ以上のコンピュータサーバ403を含んでいてもよい。クラウドゾーン401または402の物理的ネットワークリソースは、ファイヤウォール、ネットワークアドレス変換器、ロードバランサ、仮想プライベートネットワーク(VPN)ゲートウェイ、ダイナミック・ホスト・コンフィギュレーション・プロトコル(DHCP)ルータ等といった、クラウドカスタマにネットワークサービスを提供するように構成されているハードウェアおよび/またはソフトウェアを備える1つ以上のネットワーク素子405(たとえば、ネットワークサービスプロバイダ)を含んでいてもよい。クラウドゾーン401〜402のストレージリソースは、ストレージディスク(たとえば、ソリッドステートドライブ(SSD)、磁気ハードディスク等)および他の記憶装置を含んでいてもよい。
図4に図示するクラウドコンピューティング環境は、クラウドの物理的リソースを使用して仮想マシンを作成して管理し、カスタマに他のサービスを提供するように構成されている追加のハードウェアおよび/またはソフトウェア・リソースを備える仮想化レイヤ(たとえば、図1〜図3に図示するもの)も含んでいてもよい。
仮想化レイヤは、ネットワーク仮想化、ストレージ仮想化等を提供する他のコンポーネントとともに、上述の図3で説明したハイパーバイザを含んでいてもよい。仮想化レイヤは物理的リソースレイヤとは別のレイヤとしてもよく、または物理的リソースレイヤと同じハードウェアおよび/もしくはソフトウェア・リソースのいくつかもしくはすべてを共有していてもよい。たとえば、仮想化レイヤは物理的コンピューティングリソースを有する仮想化サーバ403のそれぞれにインストールされているハイパーバイザを含んでいてもよい。あるいは、たとえば、WINDOWS(登録商標) AZURE(ワシントン州レドモンドのマイクロソフト・コーポレーション)、AMAZON EC2(ワシントン州シアトルのアマゾン・ドット・コム・インク)、IBM BLUE CLOUD(ニューヨーク州アーモンクのIBMコーポレーション)、または他のものなど、周知のクラウドシステムを使用してもよい。
〈企業モビリティ管理アーキテクチャ〉
図5は、BYOD環境で使用するための企業モビリティ技術アーキテクチャ500を示す。このアーキテクチャはモバイルデバイス502のユーザがモバイルデバイス502から企業リソースまたは個人リソースにアクセスすることと、モバイルデバイス502を個人利用に使用することと、の両方を可能にする。
ユーザは、当該企業リソース504または企業サービス508へのアクセスを、ユーザが購入したモバイルデバイス502を使用して行ってもよく、または企業がユーザに支給するモバイルデバイス502を使用して行ってもよい。ユーザはモバイルデバイス502をビジネス専用で利用しても、またはビジネスと個人兼用で利用してもよい。モバイルデバイスはiOSオペレーティングシステム、およびアンドロイド・オペレーティングシステム等を稼動してもよい。企業はモバイルデバイス504を管理するポリシーを実装することを選んでもよい。
ポリシーは、ファイヤウォールまたはゲートウェイにより、モバイルデバイスを特定し、セキュリティ保護もしくはセキュリティ検証し、企業リソースへの選択的アクセスもしくは完全なアクセスをモバイルデバイスに提供できるように埋め込んでもよい。ポリシーはモバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーションおよびデータ管理ポリシーのなんらかの組合せとしてもよい。モバイルデバイス管理ポリシーの適用により管理されるモバイルデバイス504は登録デバイスということがある。
モバイルデバイスのオペレーティングシステムは、管理対象パーティション510と非管理対象パーティション512とに分離されていてもよい。管理対象パーティション510は管理対象パーティション上で稼動しているアプリケーションおよび管理対象パーティションに格納されているデータをセキュリティ保護された状態にする(secure)ために、ポリシーをそれに適用させてもよい。管理対象パーティション上で稼動しているアプリケーションはセキュリティ保護されたアプリケーションであってもよい。セキュリティ保護されたアプリケーションは、電子メール・アプリケーション、ウェブブラウザ・アプリケーション、サービスとしてのソフトウェア(SaaS)アクセス・アプリケーション、Windows(登録商標)Applicationアクセス・アプリケーション等であってもよい。セキュリティ保護されたアプリケーションは、セキュリティ保護されたネイティブアプリケーション514、セキュリティ保護されたアプリケーション・ランチャ518が実行するセキュリティ保護されたリモート・アプリケーション522、セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526等であってもよい。
セキュリティ保護されたネイティブアプリケーション514はセキュリティ保護されたアプリケーション・ラッパー520によってラッピングしてもよい。セキュリティ保護されたアプリケーション・ラッパー520は、セキュリティ保護されたネイティブアプリケーションがデバイス上で実行されるときに、モバイルデバイス502上で実行される統合ポリシーを含んでいてもよい。セキュリティ保護されたアプリケーション・ラッパー520は、モバイルデバイス502上で稼動するセキュリティ保護されたネイティブアプリケーション514を、セキュリティ保護されたネイティブアプリケーション514の実行時に要求されるタスクを完了するようにセキュリティ保護されたネイティブアプリケーション514が要求してもよい企業でホストされるリソースに差し向けるメタデータを含んでいてもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行するセキュリティ保護されたリモート・アプリケーション522は、セキュリティ保護されたアプリケーション・ランチャ・アプリケーション518内で実行してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526は、企業リソース504等で、モバイルデバイス502のリソースを利用してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526によってモバイルデバイス502で使用されるリソースは、ユーザ対話リソース、プロセッシングリソース等を含んでいてもよい。
ユーザ対話リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、オーディオ入力、ビジュアル入力、ジェスチャ入力等を収集して、伝送するために使用してもよい。プロセッシングリソースはユーザインターフェースを提示し、企業リソース504等から受信されるデータを処理するために使用してもよい。セキュリティ保護されたアプリケーション・ランチャ518が実行する仮想化アプリケーション526によって企業リソース504で使用されるリソースは、ユーザインターフェース生成リソース、プロセッシングリソース等を含んでいてもよい。ユーザインターフェース生成リソースは、ユーザインターフェースをアセンブルし、ユーザインターフェースを修正し、ユーザインターフェースをリフレッシュする等のために使用してもよい。
プロセッシングリソースは情報を作成し、情報を読み取り、情報を更新し、情報を削除する等のために使用してもよい。たとえば、仮想化アプリケーションはGUIに関連するユーザの対話を記録し、それをサーバ・アプリケーションに伝えてもよく、当該サーバ・アプリケーションはユーザ対話データをサーバで動作するアプリケーションへの入力として使用する。
この構成では、企業は、アプリケーションに関連するデータ、ファイル等と同様に、サーバ側のアプリケーションを維持する選択をしてもよい。企業はモバイルデバイスへのデプロイメントのためにそれをセキュリティ保護された状態にすることにより本明細書の原理に従っていくつかのアプリケーションを「モバイル化」する選択をしてもよいが、この構成は一定のアプリケーションのためにも選択してもよい。たとえば、いくつかのアプリケーションはモバイルデバイスで使用するためにセキュリティ保護された状態にしてもよいが、他のものはモバイルデバイスへのデプロイメントの準備がされていないかまたはデプロイメントに適切ではない可能性があるので、企業は仮想化技術により準備されていないアプリケーションへのアクセスをモバイルユーザに提供する選択をしてもよい。
別の実施例として、企業は大量の複雑なデータセットを有する大きく複雑なアプリケーション(たとえば、資材所要量計画アプリケーション)を有することがあり、当該モバイルデバイスのアプリケーションをカスタマイズするのは非常に難しく、またはその他望ましくないので、企業は仮想化技術によりアプリケーションへのアクセスを提供する選択をしてもよい。さらに別の実施例として、企業は、セキュリティ保護したモバイル環境であっても扱いに非常に注意を要すると企業に見なされて、企業が当該アプリケーションおよびデータへのモバイルアクセスを許可するために仮想化技術を選択してもよい高セキュリティ保護化データ(たとえば、人事データ、顧客データ、エンジニアリングデータ)を維持するアプリケーションを有していてもよい。
企業はサーバ側でより適切に動作すると見なされるアプリケーションへのアクセスを許可するために、仮想化アプリケーションとともに、モバイルデバイス上の完全にセキュリティ保護しかつ完全に機能するアプリケーションを提供する選択をしてもよい。実施形態では、仮想化アプリケーションは、携帯電話のセキュリティ保護された記憶場所のうちの1つに、いくつかのデータ、ファイル等を格納してもよい。たとえば、企業は一定の情報を電話に格納させるが、他の情報を許可しない選択をしてもよい。
本明細書で説明するように、仮想化アプリケーションに関連して、モバイルデバイスは、GUIを提示し、さらにGUIとのユーザの対話を記録するように設計されている仮想化アプリケーションを有していてもよい。アプリケーションは、アプリケーションとのユーザインタラクションとして、サーバ側アプリケーションが使用するサーバ側とのユーザインタラクションを伝えてもよい。応答して、サーバ側のアプリケーションはモバイルデバイスに新たなGUIを送り戻してもよい。たとえば、新たなGUIは静的ページ、動的ページ、アニメーションまたは同様な他のものであってもよい。
管理対象パーティション上で稼働するアプリケーションは安定化されたアプリケーションであってもよい。安定化されたアプリケーションはデバイスマネージャ524によって管理されてもよい。デバイスマネージャ524は安定化されたアプリケーションを監視して、問題を検出して補修する技術が利用されない場合に安定化されていないアプリケーションをもたらすような問題検出および補修のための前記技術を利用してもよい。
セキュリティ保護されたアプリケーションは、モバイルデバイスの管理対象パーティション510のセキュリティ保護されたデータコンテナ528に格納されているデータにアクセスしてもよい。セキュリティ保護されたデータコンテナにセキュリティ保護されているデータは、セキュリティ保護されたラッピングされたアプリケーション514、セキュリティ保護されたアプリケーション・ランチャ522が実行するアプリケーション、セキュリティ保護されたアプリケーション・ランチャ522が実行する仮想化アプリケーション526等によってアクセスされることができる。セキュリティ保護されたデータコンテナ528に格納されているデータはファイル、データベース等を含んでもよい。セキュリティ保護されたデータコンテナ528に格納されているデータはセキュリティ保護されたアプリケーション532の中で共有される特定のセキュリティ保護されたアプリケーション530等に制限されるデータを含んでもよい。セキュリティ保護されたアプリケーションに制限されるデータは、セキュリティ保護された一般データ534および高セキュリティ保護されたデータ538を含んでもよい。セキュリティ保護された一般データはAES 128ビット暗号化等の強力な暗号化方式を使用してもよいが、高セキュリティ保護されたデータ538はAES 254ビット暗号化などの非常に強力な暗号化方式を使用してもよい。セキュリティ保護されたデータコンテナ528に格納されているデータは、デバイスマネージャ524からのコマンドを受信すると、デバイスから削除されてもよい。
セキュリティ保護されたアプリケーションはデュアルモードオプション540を有してもよい。デュアルモードオプション540は、非セキュリティ保護化モードで、セキュリティ保護されたアプリケーションを動作させるオプションをユーザに提示してもよい。非セキュリティ保護化モードでは、セキュリティ保護されたアプリケーションはモバイルデバイス502の非管理対象パーティション512の非セキュリティ保護化データコンテナ542に格納されているデータにアクセスしてもよい。非セキュリティ保護化データコンテナに格納されているデータは個人データ544であってもよい。非セキュリティ保護化データコンテナ542に格納されているデータは、モバイルデバイス502の非管理対象パーティション512上で稼動している非セキュリティ保護化アプリケーション548によってアクセスしてもよい。非セキュリティ保護化データコンテナ542に格納されているデータは、セキュリティ保護されたデータコンテナ528に格納されているデータがモバイルデバイス502から削除されるとき、モバイルデバイス502上に残してもよい。
企業は、ユーザが所有、ライセンスもしくは制御する個人データ、ファイルおよび/もしくはアプリケーション(個人データ)を残しながら、またはその他存続させながら、企業が所有、ライセンスまたは制御する選択されたもしくはすべてのデータ、ファイル、および/またはアプリケーション(企業データ)をモバイルデバイスから削除したいことがある。この動作を選択的消去と称されることがある。本明細書で説明する態様に従って分類される企業データおよび個人データを用いて、企業は選択的消去を行ってもよい。
モバイルデバイスは、企業において企業リソース504および企業サービス508、公共のインターネット548などに接続される。モバイルデバイスは、仮想プライベートネットワーク接続を介して企業リソース504および企業サービス508に接続されてもよい。仮想プライベートネットワーク接続は、特定のアプリケーション550、特定のデバイス、モバイルデバイス上の特定のセキュリティ保護された領域および同様のもの(たとえば、552)に固有であってもよい。たとえば、電話のセキュリティ保護された領域におけるラッピングされたアプリケーションの各々は、アプリケーション固有のVPNを介して企業リソースにアクセスしてもよく、それにより、VPNへのアクセスが、おそらくはユーザまたはデバイスの属性情報と連動して、アプリケーションに関連付けられた属性に基づいて付与されるであろう。仮想プライベートネットワーク接続は、Microsoft Exchangeのトラフィック、Microsoft Active Directoryのトラフィック、HTTPトラフィック、HTTPSトラフィック、アプリケーション管理トラフィックなどを運んでもよい。仮想プライベートネットワーク接続は、シングル・サイン・オン認証プロセス554をサポートおよび可能としてもよい。シングル・サイン・オンプロセスにより、ユーザが認証クレデンシャルの単一のセットを提供することができ、これはそして、認証サービス558によって検証される。認証サービス558はそして、各個別の企業リソース504への認証クレデンシャルの提供をユーザに要求することなく、複数の企業リソース504へのユーザのアクセスを許可してもよい。
仮想プライベートネットワーク接続は、アクセス・ゲートウェイ560によって確立されて、管理してもよい。アクセス・ゲートウェイ560は企業リソース504のモバイルデバイス502への配信を管理し、高速化しおよび改善するパフォーマンス向上特徴を含んでいてもよい。アクセス・ゲートウェイはモバイルデバイス502から公衆インターネット548にトラフィックを経路切替えしてもよく、モバイルデバイス502が公衆インターネット548で稼動している公開利用できる非セキュリティ保護化アプリケーションにアクセスすることを可能にする。モバイルデバイスは転送ネットワーク562を介してアクセス・ゲートウェイに接続してもよい。
転送ネットワーク562はワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等でもよい。
企業リソース504は電子メールサーバ、ファイル共有サーバ、SaaSアプリケーション、ウェブアプリケーションサーバ、Windows(登録商標)アプリケーションサーバ等を含んでいてもよい。電子メールサーバはExchangeサーバ、Lotus Notesサーバ等を含んでいてもよい。ファイル共有サーバはShareFileサーバ等を含んでいてもよい。SaaSアプリケーションはSalesforce等を含んでいてもよい。Windows(登録商標)アプリケーションサーバはローカルなWindows(登録商標)オペレーティングシステム上で稼動するように意図されたアプリケーションを提供するために構築されているあらゆるアプリケーションサーバ等を含んでいてもよい。
企業リソース504はプレミスベースのリソース、クラウドベースのリソース等であってもよい。企業リソース504はモバイルデバイス502から直接、またはアクセス・ゲートウェイ560経由でアクセスしてもよい。企業リソース504はモバイルデバイス502から転送ネットワーク562を介してアクセスしてもよい。転送ネットワーク562はワイヤードネットワーク、ワイヤレスネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であってもよい。
企業サービス508は認証サービス558、脅威検出サービス564、デバイスマネージャサービス524、ファイル共有サービス568、ポリシーマネージャサービス570、ソーシャル統合サービス572、アプリケーションコントローラサービス574等を含んでいてもよい。
認証サービス558はユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービス等を含んでいてもよい。認証サービス558は証明書を使用してもよい。証明書は企業リソース504等によりモバイルデバイス502に格納してもよい。モバイルデバイス502に格納されている証明書は、モバイルデバイスの暗号化された場所に格納してもよく、証明書は認証時点で使用する等のためにモバイルデバイス502に一時的に格納してもよい。脅威検出サービス564は侵入検出サービス、不正アクセス試行検出サービス等を含んでいてもよい。不正アクセス試行検出サービスはデバイス、アプリケーション、データ等への不正アクセスの試行を含んでいてもよい。
デバイス管理サービス524は構成サービス、プロビジョニングサービス、セキュリティサービス、サポートサービス、監視サービス、レポーティングサービスおよびデコミッショニングサービスを含んでいてもよい。ファイル共有サービス568はファイル管理サービス、ファイルストレージサービス、ファイルコラボレーションサービス等を含んでいてもよい。ポリシーマネージャサービス570はデバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービス等を含んでいてもよい。
ソーシャル統合サービス572は連絡先統合サービス、コラボレーションサービス、Facebook、TwitterおよびLinkedInなどのソーシャル・ネットワークとの統合等を含んでいてもよい。アプリケーションコントローラサービス574は管理サービス、プロビジョニングサービス、デプロイメントサービス、割り当てサービス、失効サービス、ラッピングサービス等を含んでいてもよい。
企業モビリティ技術アーキテクチャ500は、アプリケーションストア578を含んでいてもよい。アプリケーションストア578はラッピングされていないアプリケーション580、予めラッピングされたアプリケーション582等を含んでいてもよい。アプリケーションはアプリケーションコントローラ574からアプリケーションストア578に配置してもよい。アプリケーションストア578はモバイルデバイス502からアクセス・ゲートウェイ560、公衆インターネット548等経由でアクセスしてもよい。アプリケーションストアには直観的に理解でき、使いやすいユーザインターフェースを備えてもよい。アプリケーションストア578はソフトウェア開発キット584へのアクセス権を提供してもよい。
ソフトウェア開発キット584は、本明細書で上述したようにアプリケーションをラッピングすることにより、ユーザが選択したアプリケーションをセキュリティ保護する機能をユーザに提供してもよい。ソフトウェア開発キット584を用いてラッピングされたアプリケーションは、さらにアプリケーションコントローラ574を用いてアプリケーションストア578にそれを配置することにより、モバイルデバイス502に利用できるようにしてもよい。
企業モビリティ技術アーキテクチャ500は、管理解析機能を含んでいてもよい。管理解析機能はリソースの使用方法、リソースの使用頻度等に関連する情報を提供してもよい。リソースはデバイス、アプリケーション、データ等を含んでいてもよい。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするか等を含んでいてもよい。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションが特定のデータセットにアクセスした回数等を含んでいてもよい。
図6は、別の企業モビリティ管理システム600である。図5を参照して上述したモビリティ管理システム500の構成要素のうちのいくつかは、簡略化するために省略している。図6に図示するシステム600のアーキテクチャは、図5を参照して上述したシステム500のアーキテクチャと多くの点で類似しており、上述していない追加の特徴を含んでいる。
この場合、左側はクライアントエージェントソフトウェア604を伴う登録済モバイルデバイス602を表し、これは、(アクセスゲートウェイおよびアプリケーション制御機能を含む)クラウドゲートウェイ606とインタラクトして、右上に示すように、Exchange、Sharepoint、PKIリソース、ケロベロスリソース、および、証明書発行サービスなどの、さまざまな企業リソース608およびサービス609にアクセスする。具体的には図示していないが、モバイルデバイス602はまた、アプリケーションの選択およびダウンロードのために企業アプリケーションストア(たとえば、StoreFront)とインタラクトしてもよい。
クライアントエージェントソフトウェア604は、企業データセンターでホストされるWindows(登録商標)アプリ/デスクトップを仲介するUI(ユーザインターフェース)として機能し、これらは、HDX/ICA表示リモーティングプロトコルを使用してアクセスされる。クライアントエージェントソフトウェア604はまた、ネイティブiOSまたはAndroidアプリケーションなどのモバイルデバイス602上のネイティブアプリケーションのインストールおよび管理をサポートする。たとえば、上図に示されている管理対象アプリケーション610(メール、ブラウザ、ラッピングされたアプリケーション)はすべて、デバイス上でローカルに実行するネイティブアプリケーションである。企業リソース/サービス608への接続性およびSSO(シングル・サイン・オン)などの、ポリシーによる管理の機能および特徴を提供するよう、クライアントエージェントソフトウェア604およびこのアーキテクチャのアプリケーション管理フレームワーク(AMF)は機能する。クライアントエージェントソフトウェア604は、企業への、通常は他のクラウドゲートウェイコンポーネントへのSSOによるアクセスゲートウェイ(AG)への、一次ユーザ認証を処理する。クライアントエージェントソフトウェア604は、モバイルデバイス602上のAMF管理対象アプリケーション610の挙動を制御するために、クラウドゲートウェイ606からポリシーを取得する。
ネイティブアプリケーション610およびクライアントエージェントソフトウェア604間のセキュリティ保護されたIPCリンク612は管理チャネルを表し、これにより、クライアントエージェントソフトウェアが、各アプリケーションを「ラッピング」するAMFフレームワーク614により強制されるポリシーを供給することを可能にする。IPCチャネル612はまた、クライアントエージェントソフトウェア604が、企業リソース608への接続性およびSSOを可能にするクレデンシャルおよび認証情報を提供することを可能にする。最後に、IPCチャネル612により、AMFフレームワーク614が、オンラインおよびオフライン認証などの、クライアントエージェントソフトウェア604によって実装されるユーザインターフェース機能を呼び出すことができる。
クライアントエージェントソフトウェア604およびクラウドゲートウェイ606間の通信は本質的に、それぞれのネイティブな管理対象アプリケーション610をラッピングするAMFフレームワーク614からの管理チャネルの拡張である。AMFフレームワーク614は、クライアントエージェントソフトウェア604からのポリシー情報を要求し、これは次に、クラウドゲートウェイ606からそれを要求する。AMFフレームワーク614は認証を要求し、クライアントエージェントソフトウェア604は、クラウドゲートウェイ606のゲートウェイサービス部(NetScaler Access Gatewayとしても知られている)にログインする。クライアントエージェントソフトウェア604はまた、クラウドゲートウェイ606上のサポーティングサービスを呼び出してもよく、これは入力材料を生成して、より詳細に以下に説明されるように、ローカルデータボルト616のための暗号化鍵を導出、または、PKI保護リソースへの直接認証を可能にするクライアント証明書を提供してもよい。
より詳細には、AMFフレームワーク614は、それぞれの管理対象アプリケーション610を「ラッピング」する。これは、明示的なビルドステップを経て、または、ビルド後の処理ステップを経て組み込まれてもよい。AMFフレームワーク614は、セキュリティ保護されたIPCチャネルを初期化し、そのアプリケーションのポリシーを取得するためのアプリケーション610の最初の起動時に、クライアントエージェントソフトウェア604と「ペア」にしてもよい。AMFフレームワーク614は、クライアントエージェントソフトウェアのログイン依存性、および、ローカルOSサービスをいかに使用することができるか、または、それらがアプリケーション610といかにインタラクトすることができるかを制限する閉じ込めポリシーの一部などの、ローカルに適用されるポリシーの関連部分を強制してもよい。
AMFフレームワーク614は、認証および内部ネットワークアクセスを容易にするために、セキュリティ保護されたIPCチャネル612を介してクライアントエージェントソフトウェア604によって提供されるサービスを使用してもよい。プライベートおよび共有データボルト616(コンテナ)のための鍵管理はまた、管理対象アプリケーション610およびクライアントエージェントソフトウェア604間の適切なインタラクションによって管理されてもよい。ボルト616は、オンライン認証後のみに利用可能であってもよく、または、ポリシーで許可される場合にはオフライン認証後に利用可能にされてもよい。ボルト616の最初の使用は、オンライン認証を必要としてもよく、オフラインアクセスは、最大で、オンライン認証が再び必要とされる前のポリシーリフレッシュ期間に限定されてもよい。
内部リソースへのネットワークアクセスは、アクセスゲートウェイ606を介して個々の管理対象アプリケーション610から直接、行ってもよい。AMFフレームワーク614は、各アプリケーション610に代わってネットワークアクセスのオーケストレーションを担う。クライアントエージェントソフトウェア604は、オンライン認証後に得られる適切に時間制限された二次クレデンシャルを提供することによって、これらのネットワーク接続を容易にすることができる。リバースウェブプロキシ接続およびエンドツーエンドVPNスタイルトンネル618など、ネットワーク接続の複数のモードを使用してもよい。
メール・ブラウザ管理対象アプリケーション610は特別なステータスを有し、任意にラッピングされたアプリケーションには一般に利用できない可能性のあるファシリティを利用できるようにしてもよい。たとえば、メール・アプリケーションは、フルAGログオンを要求せずに、長時間Exchangeへのアクセスを可能にする特別なバックグラウンドネットワークアクセスメカニズムを使用してもよい。ブラウザ・アプリケーションは異なる種類のデータを分ける複数のプライベートデータボルトを使用してもよい。
このアーキテクチャは、様々な他のセキュリティ特徴の組み込みをサポートする。たとえば、ある場合にはクラウドゲートウェイ606(そのゲートウェイ・サービスを含む)はADパスワードの妥当性検証をする必要がない。ある状況においてADパスワードをあるユーザの認証因子として使用するかどうかは、企業の裁量に任すことができる。ユーザがオンラインまたはオフラインである(つまり、ネットワークに接続されている場合または接続されていない場合)、異なる認証方法を使用してもよい。
ステップアップ認証は、クラウドゲートウェイ606が強力な認証が必要な極秘データへアクセスすることが認められている管理対象ネイティブアプリケーション610を識別し、以前の弱いレベルのログイン後にユーザにより再認証が要求されることになるとしても、これらのアプリケーションへのアクセスが適切な認証を行った後にのみ許可されることを確保してもよいのが特徴する。
このソリューションの別のセキュリティ特徴は、モバイルデバイス602でのデータボルト(data vaults)616(コンテナ)の暗号化である。ボルト616は、ファイル、データベースおよび構成を含むすべてのオンデバイスデータが保護されるように暗号化してもよい。オンラインボルトの場合、鍵はサーバ(クラウドゲートウェイ606)に格納してもよく、オフラインボルトの場合、鍵のローカルコピーをユーザ・パスワードによって保護してもよい。セキュリティ保護されたコンテナ616でデータがデバイス602にローカルに格納される場合、最低でもAES256暗号化アルゴリズムを利用するのが好ましい。
他のセキュリティ保護されたコンテナの特徴も実装してもよい。たとえば、ロギング特徴を含めてもよく、アプリケーション610内で起こるすべてのセキュリティイベントを記録して、バックエンドに報告する。アプリケーション610が改ざんを検出する場合など、データ消去をサポートしてもよく、ユーザデータが破棄されたことの手がかりをファイルシステムに残さずに、関連暗号化鍵をランダムデータで上書きしてもよい。スクリーンショットの保護は別の特徴であり、アプリケーションはデータをスクリーンショットに格納させないようにしてもよい。たとえば、鍵ウインドウの隠しプロパティをYESに設定してもよい。これにより、どのようなコンテンツが現在スクリーンに表示されていてもそれを隠せるので、通常いずれかのコンテンツが常駐するスクリーンショットがブランクになる。
たとえば、データを外部のアプリケーションにコピーまたは送信するなど、アプリケーション・コンテナ外にローカルにデータを転送することを一切させないなどして、ローカルなデータ転送を防止してもよい。キーボードのキャッシュ特徴は扱いに注意を要するテキストフィールドのオートコレクト機能を使用不可にするように動作してもよい。SSL証明書の妥当性検証を使用可能にしてもよいので、キーチェーンに格納する代わりに、アプリケーションはサーバSSL証明書を特別に妥当性検証する。デバイスのデータを暗号化するために使用する鍵をユーザによって供給されるパスフレーズを使用して生成するように(オフラインアクセスが要求される場合)、暗号化鍵生成特徴を使用してもよい。オフラインアクセスが要求されない場合、サーバ側でランダムに生成し、格納される別の鍵を用いてXORをとってもよい。鍵導出関数は、ユーザ・パスワードから生成される鍵が、その暗号学的ハッシュを作成するのではなく、KDF(鍵導出関数、特にPBKDF2)を使用するように動作してもよい。前者では、鍵が総当たり攻撃または辞書攻撃を受けやすくなる。
さらに、暗号化方法に1つ以上の初期化ベクトルを使用してもよい。初期化ベクトルは同じ暗号化データの複数のコピーに異なる暗号文出力を生じ、再生および暗号解読攻撃の両方を防止する。これは攻撃者がデータの暗号化に使用する特定の初期化ベクトルが不明な場合に盗んだ暗号鍵を用いた場合であっても、データの解読を防止する。また、認証後の解読を使用してもよく、ユーザがアプリケーション内で認証された後でしかアプリケーションデータは解読されない。別の特徴はメモリ内の扱いに注意を要するデータに関係してもよく、それが必要なときにのみ、メモリ(ディスクではない)に保管されてもよい。たとえば、ログイン資格情報はログイン後にメモリから消去されて、オブジェクティブCインスタンス変数内の暗号化鍵および他のデータは、簡単に参照される可能性があるため格納されない。代わりに、これらのためにメモリを手動で割り当ててもよい。
ポリシーで定義した無活動期間の経過後に、ユーザのセッションを終了する無活動タイムアウトを実装してもよい。
AMFフレームワーク614からのデータ漏えいは、他の方法で防止してもよい。たとえば、アプリケーション610がバックグラウンドに入る場合、所定(構成可能な)期間後にメモリをクリアにしてもよい。バックグラウンドに移るとき、アプリケーションの最後に表示されたスクリーンのスナップショットを取得して、フォアグラウンドに出すプロセスを迅速化してもよい。スクリーンショットは機密データを含むことがあり、そのためクリアにされるべきである。
別のセキュリティ特徴は、1つ以上のアプリケーションにアクセスするためにAD(アクティブディレクトリ)622のパスワードを使用せずに、OTP(ワンタイムパスワード)620の使用に関係する。ある場合には、あるユーザは自身のADパスワードを知らず(または知ることを許可されておらず)、そのためこれらユーザはSecurIDなどのハードウェアOTPシステムを使用するなど、OTP620を使用して認証してもよい(OTPは、エントラストまたはジェムアルトなど、異なるベンダによっても提供されてよい)。ある場合には、ユーザがユーザIDで認証した後、OTP620を用いてユーザにテキストが送信される。ある場合には、これはオンライン利用の場合のみ実施してもよく、プロンプトは単一フィールドである。
企業ポリシーによるオフライン使用が許可されるアプリケーション610については、オフライン認証のためにオフラインパスワードを実装してもよい。たとえば、企業は企業アプリケーションストアにこの方法でアクセスしてもらいたい可能性がある。この場合、クライアントエージェントソフトウェア604はユーザにカスタムオフラインパスワードの設定を要求してもよく、ADパスワードは使用されない。クラウドゲートウェイ606は、標準的なWindows(登録商標) Serverパスワードの複雑さの要件で記述されるなど、パスワードの最低長さ、文字種の組合せおよび有効期限に関するパスワード標準を制御し、強制するポリシーを提供してもよい。ただし、これらの要件は修正してもよい。
別の特徴は、二次クレデンシャルとして一定のアプリケーション610のクライアント側証明書の有効化に関する(AMFのマイクロVPN特徴を介してPKI保護ウェブリソースにアクセスするため)。たとえば、メールのアプリケーションはこのような証明書を利用することがある。この場合、ActiveSync(または他の同期)プロトコルを使用した証明書による認証をサポートしてもよく、クライアントエージェントソフトウェア604からの証明書はクラウドゲートウェイ606によって検索されて、キーチェーンで使用してもよい。各管理対象アプリケーションは、クラウドゲートウェイ606で定義されるラベルによって識別される1つの関連クライアント証明書を有してもよい。
クラウドゲートウェイ606は企業専用ウェブサービスとやりとりして、該当の管理対象アプリケーションが内部PKI保護リソースに認証を行うことを可能にするクライアント証明書の発行をサポートしてもよい。
クライアントエージェントソフトウェア604およびAMFフレームワーク614は、内部PKI保護ネットワークリソースに認証を行うために、クライアント証明書の取得および使用をサポートするように増強してもよい。様々なレベルのセキュリティおよび/または隔離の要求事項に応じるためなど、2つ以上の証明書をサポートしてもよい。証明書はメール・ブラウザ管理対象アプリケーション、および最終的には任意にラッピングされたアプリケーションが使用してもよい(ただし、AMFフレームワークがHTTPS要求を仲介するのが合理的な場合、これらのアプリケーションはウェブサービス型の通信パターンを使用する)。
iOSのAMFのクライアント証明書サポートは、各使用期間中、各管理対象アプリケーションのiOSキーチェーンへのPKCS 12 BLOB(バイナリ・ラージ・オブジェクト)のインポートに依拠してもよい。AMFのクライアント証明書サポートは、プライベートメモリ内キーストレージとともにHTTPS実装を使用してもよい。クライアント証明書はiOSキーチェーンには絶対に存在することはなく、強力に保護されている「オンライン限定の」データ値を潜在的に除き、存続させない。
相互SSLも実装して、企業に対してモバイルデバイス602が認証され、かつその逆を要求することにより、追加のセキュリティを提供してもよい。クラウドゲートウェイ606に対する認証用の仮想スマートカードも実装してもよい。
限定およびフル両方のケルベロスサポートを追加の特徴としてもよい。フルサポート特徴は、ADパスワードまたは信頼できるクライアント証明書を使用したAD622へのフルケルベロスログインを行い、HTTP Negotiate認証チャレンジにレスポンスするためにケルベロスサービスチケットを取得する能力に関係する。限定サポート特徴はAFEEでの制約付き委任に関係し、当該AFEEはケルベロスプロトコル遷移の呼び出しをサポートするので、HTTP Negotiate認証チャレンジにレスポンスしてケルベロスサービスチケット(制約付き委任を条件とする)を取得して使用することができる。このメカニズムはリバースウェブプロキシ(別名CVPN)モードで機能し、HTTP(ただし、HTTPSではない)接続はVPNおよびマイクロVPNモードでプロキシされる。
別の特徴はアプリケーション・コンテナのロックおよび消去に関係し、これはジェイルブレイクまたはルート化検出時には自動的に行われ、管理コンソールからプッシュされるコマンドとして発生し、たとえアプリケーション610が稼動していないときでも、遠隔消去機能を含んでいてもよい。
障害のある場合に、いくつかの異なる場所のうちの1つからユーザがサービスを受けられる企業アプリケーションストアおよびアプリケーションコントローラのマルチサイト・アーキテクチャまたは構成をサポートしてもよい。
ある場合には、管理対象アプリケーション610には、API(たとえば、OpenSSL)を介して証明書および秘密鍵にアクセスが許可されてもよい。企業の信頼できる管理対象アプリケーション610は、アプリケーションのクライアント証明書および秘密鍵を用いて、特定の公開鍵オペレーションを行うことが認められてもよい。アプリケーションがブラウザのように挙動し、証明書アクセスが要求されない場合、アプリケーションが「who am I」証明書を読み取るとき、アプリケーションが証明書を使用してセキュリティ保護されたセッション・トークンを構築するとき、およびアプリケーションが重要なデータのデジタル署名のため(たとえば、トランザクションログ)または一時データ暗号化のために秘密鍵を使用するときなど、様々な使用のケースが識別され、それに応じて扱われてもよい。
〈クライアントドライブマッピングのためのモバイルデバイス管理型セキュリティのためのセキュリティ保護されたクライアントドライブマッピングおよびファイルストレージ〉
本明細書に開示された1つ以上の特徴によれば、クライアントデバイスに保存された秘密データおよび/またはファイルに対する管理制御は、ZENPRISEまたはMICROSOFT SCCMなどのプログラムによって提供される。管理制御を、クライアントドライブに書き込まれたファイルを介して提供してもよく、それにより、ZENPRISEなどの管理コンソールは、クライアントドライブ内の機密ファイルを監視し、および/または、ポリシーを使用してクライアントドライブからファイルを遠隔削除/消去する。
本明細書に開示された特徴によれば、クライアントドライブへの読み取りおよび/または書き込みコマンドは、CDMシステム302などのCDMファイルシステム(「CDMシステム」)を介して動作してもよく、これは、XENDESKTOP SERVERなどの企業サーバマシンに存在する。CDMシステムは、ファーム/企業固有の鍵(複数可)を使用して、クライアントデバイスへの書き込みコマンドを暗号化する。ファイルを開く間、CDMシステムは、たとえばCDMドライバ306などのドライバを使用することによりファイルが既に書き込まれたかもしくは保存されているかを区別するためのメカニズムを使用してもよく、および/または、クライアントドライブから既存の個人用ファイルを開いてもよい。この目的のために、CDMシステムは、New Technology File System(NTFS)代替ストリーム(「ファイルストリーム」)または変更ジャーナルなどの関連するメカニズムを使用してもよい。このように、ファイルを開くための要求を受信した後、特殊またはマークつきのファイルストリームがファイルに存在する場合、ファイルが既にCDMシステムによって保存されている場合があり、ファイルのファイルブロックの部分は、アプリケーションでファイルを開く前に解読される必要があるかもしれない。アプリケーションは管理対象アプリケーションであってもよい。
本明細書に記載の1つ以上の特徴によれば、ユーザがクライアントドライブに記憶されている既存の個人用ファイルを変更しているかもしれないとき、CDMシステムは、同じファイルへの書き込みアクセスを拒否されるかもしれない。たとえば、ユーザが、クライアントドライブ上に配置されている、EXCELファイルであるmyfile.xslなどのファイルを開いた後、ユーザは、企業チャートなどの機密情報や秘密情報を(たとえば、カット&ペーストを介して)スプレッドシートにコピーするかもしれない。ユーザが変更されたファイルを保存したい場合、CDMシステムが、変更されたファイルからの任意の更新されたファイルブロック/データと、既存の未変更ファイルのコピーとを追加してもよく、その結果、更新されたファイルのブロック/データを含んだ新しいファイルが作成される可能性がある。
この新しいファイルは、既存の未変更ファイルとは別であってもよく、暗号化形式でクライアントドライブに保存されてもよい。これは、CDMシステムによって制御および/またはCDMシステムを介してアクセスされてもよい。次に、ユーザが、たとえばEXCELなどのローカルにインストールされたバージョンのアプリケーションを使用してmyfile.xslを開きたい場合に、未変更ファイル(すなわち、追加された機密情報や秘密情報が含まれていないmyfile.xsl)が開かれ、および/またはアクセスされてもよい。あるいは/さらに、ユーザが、CDMシステムの制御下にあるかもしれないExcelなどのアプリケーションの管理対象バージョンを使用してmyfile.xslを開きたい場合、新しいファイル(すなわち、追加された機密情報や秘密情報を含まないmyfile.xsl)が開かれ、および/またはアクセスされてもよい。
CDMシステムは、ファイルストリームまたは変更ジャーナル内のストリームマーキングなどの、ファイルのメタデータを使用して、機密データが含まれている新しいファイルに機密データが含まれていない未変更ファイルをリンクまたはポイントする。したがって、CDMシステムは、クライアントがCDMシステムに接続されていることを検出し、既存のファイルを開くための要求の受信に応答して、CDMシステムは、ファイルストリームまたは変更ジャーナルなどのファイルのメタデータが、秘密データを含むファイルのバージョンへのリンクを含むマーカーストリームを含むかどうかを判定してもよい。そうである場合、秘密データを含むファイルへのクライアントアクセスを提供してもよい。
開示された実施形態に係る機能および処理が、図7および図8において以下に説明される。
図7は、本明細書に記載される1つ以上の開示された特徴に応じて、モバイルデバイス管理型セキュリティのためのセキュリティ保護されたクライアントドライブマッピングおよびファイルストレージを使用して、マッピングされたローカルドライブに変更されたファイルを保存する例示的なプロセス700を示すフロー図である。
図7に示すプロセスおよび/または1つ以上のステップは、コンピューティングデバイス(たとえば、クライアントデバイス304、企業サーバマシンなど)によって実行されてもよい。また、図7に示すプロセスおよび/またはその1つ以上のステップは、不揮発性(non-transitory)コンピュータ可読メモリなどのコンピュータ可読媒体に記憶されるコンピュータ実行可能命令で具現化されてもよい。プロセス700において、ステップ706,708,710,712,714,740および746は、たとえば、クライアント304などのクライアント側において実施または実行され、ステップ718,720,722,724,726,728,730,732,734,736,738,742,744および746は、たとえば、CDMシステム302上などの企業サーバマシンやCDMシステム側において、実施または実行される。あるいはまたはさらに、プロセス700の任意のステップは、クライアント、企業サーバマシンまたはCDMシステム上において実施されてもよい。
プロセス700は、ステップ706で開始される。そこでは、表計算やワードプロセシングプログラムなどのアプリケーションが、クライアント304などのクライアントデバイス上でロードまたは起動される。アプリケーションは、CDMシステム302に作動可能に接続されている企業サーバなどのサーバ上で管理されているアプリケーションのインスタンスを実行しているかもしれない。
管理対象アプリケーションを、たとえば、1つ以上のポリシーが管理対象アプリケーションに適用される少なくとも1つの管理モードを提供するように構成してもよく、1つ以上のポリシーは、上述したように、管理対象アプリケーションの1つ以上の機能を制限するように構成される。ユーザまたは他のアプリケーションからなど、管理対象アプリケーションにアクセスするための要求に応答して、管理対象アプリケーションをロードまたは起動する。管理対象アプリケーションを、例として、ベース仮想デスクトップまたは企業配信アプリケーションから起動してもよい。あるいは、またはさらに、アプリケーションがクライアント304上で実行中であってもよい。
ステップ708において、ファイルにアクセスして変更する要求を受信する。たとえば、クライアント304は、クライアント304上のローカルドライブに記憶されたファイルおよび/または文書などの1つ以上のクライアントリソースにアクセスして変更する要求を受信してもよい。ローカルドライブは、マッピングされたまたはマッピングされていないドライブであってもよい。変更は、たとえば、文書にデータを入力すること、または、民間企業データなどの秘密データをリソースに挿入することであってもよい。ユーザがクライアント304を使用するときにファイルが変更されてもよい。クライアント304は、企業サーバマシンおよび/またはCDMシステム302に接続されるか、もしくは関連付けられており、企業サーバマシンから情報を受信し、ファイルの中に情報を挿入できる。
いくつかの実施形態によれば、ユーザは、企業マシンまたはリソースにログインして、クライアント上のドライブに企業マシンまたはリソースからのコンテンツをダウンロードしたり保存したりするかもしれず、そして、これはクライアント上で変更されるかもしれない。いくつかの実施形態によれば、ユーザは、クライアント上でファイルを開いてもよく、そのファイルに、たとえば、企業サーバマシンから取得することができる機密情報をコピーしてもよい。
ステップ710では、ファイルの変更後、ユーザがアプリケーションを閉じるか、クライアントをシャットダウンする前に、ファイルをローカルに保存することを望む場合、クライアント304に変更されたファイルを保存するための要求を受信する。
ステップ712では、変更されたファイルを保存するための要求を受信したことに応答して、アプリケーションが企業によって管理されるなどの管理されたモードで実行されているかどうか、または、アプリケーションが管理されたモードで実行されていないかどうかの判断が、たとえばクライアント304によってなされる。たとえば、管理対象アプリケーションを実行中のクライアント304を、CDMシステム302に接続される企業サーバマシンに接続してもよい。この場合、クライアント304は、CDMシステム302に関連付けられている企業サーバマシンにマッピングされた、そのローカルドライブを有してもよい。あるいは、管理対象アプリケーションを実行していないクライアント304は、企業サーバマシンに接続されておらず、したがって、CDMシステム302に関連付けられている企業サーバマシンにマッピングされた、そのローカルドライブを持っていないかもしれない。
また、アプリケーションが管理されたモードでないとステップ712で判定された場合、プロセス700はステップ714に進む。ステップ714において、変更されたファイルを、クライアント304のローカルドライブに保存する。たとえば、変更されたファイルは、既存のファイルを上書きしてもよく、または、ローカルドライブに新しいファイルとして保存されてもよい。ついで、プロセスはステップ716で終了する。
また、アプリケーションが管理されたモードであるとステップ712で判定された場合、プロセス700はステップ718に進む。ステップ718において、変更されたファイルを保存するための要求が、CDMシステム302などのCDMシステムによって受信される。これは、企業サーバマシンに接続されるか、または、企業サーバマシンに関連して行われる。クライアント304のローカルドライブはまた、CDMシステム302に動作可能に接続された企業ドライブにマッピングされてもよい。
CDMシステム302が、クライアント304から変更されたファイルを保存するための要求を受け取った後、変更されたファイルが秘密情報や機密データを含むかどうかがステップ720で判定される。秘密データは、企業に関連付けられている会社および/またはCDMシステム302によって保護されることが求められるデータであってもよい。秘密データはまた、それにアクセスすることが承認されていない者にアクセスされるべきではないデータを含んでもよい。
ステップ708でのファイルの変更があれば、ファイルに秘密データを挿入した可能性がある。したがって、CDMシステム304は、変更されたファイルが秘密データを含むかどうかを判定するために、ファイルにおいて挿入および/または変更されたデータを評価する。CDMシステム304はまた、この判定を行うために、変更されたファイルとファイルの既存のバージョンとを比較してもよい。あるいは、コピーされたデータが実際に秘密/機密であるか否かに関係なく、企業ベースのソースから、たとえば企業ストレージに存在するファイルから、ファイルにデータがコピーされたときはいつでも、CDMシステム304は、ファイルが機密データを含んでいると判定してもよい。あるいは、CDMシステム304は、たとえば、クライアント304を使用するユーザによってファイルに、入力、挿入、コピー、ペースト、タイプなどされた可能性のある任意のデータを、秘密/機密として扱ってもよい。あるいは、ネットワーク管理者またはマネージャなどの、企業および/またはCDMシステム302に関連付けられた担当者は、企業および/またはCDMシステム302のセキュリティのレベルを構成してもよく、セキュリティのこのレベルの実施することによって、ファイルが秘密/機密情報を含むかどうかの判断を援助してもよい。
たとえば、セキュリティレベルが、より高く、より制限的なレベルに設定されている場合、ファイルに入力されたほとんどのデータが、秘密/機密とみなされるかもしれない。たとえば、セキュリティレベルが、より低く、より制限の少ないレベルに設定されている場合、ファイルに入力されたほとんどのデータが、秘密/機密とみなされないかもしれない。さらに、ネットワーク管理者またはマネージャが、ファイルに入力されたデータが秘密/機密とみなされるかどうかを判断するための追加要件/条件を追加する柔軟性を有していてもよい。
変更されたファイルが秘密データを含んでいないとステップ720で判定された場合は、プロセス700は714に進む。ステップ714において、変更されたファイルをクライアント304のローカルドライブに保存してもよい。たとえば、変更されたファイルは、既存のファイルを上書きしてもよく、または、ローカルドライブに新しいファイルとして保存されてもよい。ついで、プロセスはステップ716で終了する。
変更されたファイルが秘密データを含むかもしれないとステップ720で判定された場合、プロセス700はステップ722に進む。ステップ722において、変更されたファイルまたは変更されたファイルの一部を暗号化して、暗号化された変更ファイルを作成する。したがって、秘密データを含むファイルの一部が暗号化されてもよく、および/または、さらなる部分が暗号化されてもよい。暗号化された部分は、暗号化されたデータブロックを含んでもよい。任意の暗号化アルゴリズムを、暗号化を実行するために使用してもよい。変更されたファイルを、ファーム固有の暗号化鍵を用いて暗号化してもよい。たとえば、ファーム固有秘密暗号化鍵は、特定の企業のために、特定の企業に接続されたコンピューティングデバイスのために、または、企業サーバマシンシステムを維持するために使用されるサーバのグループのために、生成された暗号化鍵であってもよい。暗号化鍵は、クライアントデバイス304などのクライアントデバイスに固有であってもよく、および/または、システム302などのCDMシステムに固有であってもよい。暗号化鍵は、企業サーバマシンまたはCDMシステム302上に記憶されてもよい。
ステップ724において、変更されたファイルの既存のバージョンが、たとえば、CDMシステム302に動作可能に結合される企業サーバマシン上に存在する可能性があるかどうかが判定される。たとえば、ステップ708においてであれば、ユーザがファイルにアクセスして変更する可能性がある場合に、ユーザは、たとえば、企業サーバマシンで管理されるアプリケーションを使用して企業サーバマシンからファイルを開いてもよい。あるいは、またはさらに、ファイルが最初にクライアント304上で作成されてもよく、したがって、ファイルのバージョンは、企業サーバマシン上に存在しない場合がある。変更されたファイルの既存のバージョンは、ステップ708で受信した変更および/または任意の秘密データを含まないかもしれない。
変更されたファイルの既存のバージョンがすでに企業サーバマシン上に存在しないことがステップ724で判定された場合、プロセス700はステップ726に進む。ステップ726において、CDMシステム302は、暗号化された変更ファイルから新しい暗号化ファイルを作成してもよく、企業サーバマシン上にそれを格納してもよい。たとえば、新しい暗号化ファイルは、秘密データおよび/またはファイル内の任意の他のデータに対応する暗号化されたデータブロックを含んでもよい。
ステップ728においては、新しい暗号化されたファイルのメタデータの一部またはすべてが暗号化される。メタデータは、ファイルのプロパティを記述してもよいし、変更されたファイルの暗号化に使用する暗号化鍵を含んでもよい。メタデータは、ファイルストリームおよび/または変更ジャーナルを含むか、またはそれに関連付けられてもよい。ファイルストリームおよび変更ジャーナルは、ファイルに関連付けすることができるメタデータであってもよく、それにより、アプリケーションがファイルを開くよう要求した後に、たとえば、ファイルに関連付けられているファイルストリームまたは変更ジャーナルなどのメタデータを読み取ってもよい。いくつかの実施形態では、ファイルストリームを暗号化しているかもしれないので、たとえば、管理されたモードでないかもしれないアプリケーションが、たとえば、ファイルストリームに記憶されたファイルの場所を判定することができないかもしれない。この態様で、管理対象アプリケーションは、たとえば、ファイルストリームに記憶されたファイルの場所を決定することができるようにファイルストリームを解読することができるかもしれない。この態様は、さらに以下に説明される。
メタデータ、ファイルストリームおよび/または変更ジャーナルは、ファイルの名前を含んでいてもよいストリームマーカーを含むか、またはそれに関連付けられていてもよく、ファイルにポイントしてもよく、ならびに/または、企業サーバマシンおよび/もしくはクライアント304上に記憶されたファイルへアクセスする場所または方法を示してもよい。ストリームマーカーは、ステップ728で暗号化されてもよい。たとえば、マーカーは、管理対象アプリケーション、クライアントデバイス304、企業サーバマシンまたはCDMシステム302に、非暗号化または暗号化バージョンのデータファイルのどちらにアクセスすべきかについて、信号を送ってもよい。この態様は、さらに以下に説明される。
マーカーは、新しい暗号化されたファイルが秘密データを含むかどうかを示してもよい。また、複数のマーカーがメタデータに含まれてもよく、これらは、異なる秘密データを含むかもしれない異なるファイルをポイントしてもよい。さらに、ステップ722で変更されたファイルを暗号化するために使用されるファーム固有の暗号化鍵は、新しい暗号化されたファイルのメタデータに含まれてもよく、また、ステップ728で暗号化されてもよい。さらに、新しい暗号化されたファイルのメタデータは、ファーム固有の暗号化鍵を用いて暗号化されてもよく、これは、ステップ722で変更されたファイルを暗号化するために使用されるファーム固有の暗号化鍵などの、本明細書に開示された他の暗号化鍵と同じでも、または異なっていてもよい。たとえば、メタデータを暗号化するために使用されるファーム固有の秘密暗号化鍵は、特定の企業のために、特定の企業サーバマシンに接続されたコンピューティングデバイスのために、または、企業サーバマシンシステムを維持するために使用されるサーバのグループのために、生成された暗号化鍵であってもよい。メタデータを暗号化するために使用される暗号化鍵は、ファイル、クライアントデバイス304などのクライアントデバイスに固有、および/またはCDMシステム302などのCDMシステムに固有であってもよい。メタデータを暗号化するために使用する暗号化鍵は、企業サーバマシンまたはCDMシステム702に記憶されてもよい。新しい暗号化されたファイルはそして、たとえば、クライアント304または企業サーバマシン上に保存されてもよい。
変更されたファイルの既存のバージョンがすでに企業サーバマシン上に存在することがステップ724で判定された場合は、プロセス700は730に進む。ステップ730において、既存のファイルが、たとえば、既存のファイルのメタデータ内に暗号化されたマーカーを含むかどうかが判定される。マーカーは、既存のファイルのメタデータに含まれる、または、それに関連付けられるファイルストリームもしくは変更ジャーナルに含まれてもよい。
既存のファイルが暗号化されたマーカーを含んでいないとステップ730で判定された場合、プロセス700は732に進む。ステップ732において、秘密データを含むかもしれない、既存のファイルのコピー(「コピーされたセキュリティ保護されていない(non-secure)ファイル」)は、CDMシステム302または企業サーバマシン上で作成されてもよい。
ステップ734において、コピーされたセキュリティ保護されていないファイルは、コピーされたセキュリティ保護された(secure)ファイルを作成するために、暗号化される。さらに、ステップ722で変更されたファイルを暗号化するために使用されるファーム固有の暗号化鍵は、コピーされたセキュリティ保護されたファイルのメタデータに含まれてもよい。さらに、コピーされたセキュリティ保護されたファイルのメタデータは、ステップ722で変更されたファイルを暗号化するために使用されるファーム固有の暗号化鍵などの、本明細書に開示された他の暗号化鍵と同じでも、または異なっていてもよいファーム固有の暗号化鍵を用いて暗号化されてもよい。
ステップ736において、既存のファイルのメタデータの一部または全部がマークされた変更されていないファイルを作成して暗号化される。たとえば、暗号化されたマーカーを作成してもよく、および/またはメタデータに含ませてもよい。暗号化されたマーカーは、マークされた変更されていないファイルのメタデータに含まれるかまたはそれに関連付けられる、ファイルストリームまたは変更ジャーナルに含まれてもよい。マーカーは、マークされた変更されていないファイルをコピーされたセキュリティ保護されたファイルにリンクまたはポイントしてもよい。たとえば、マーカーは、マークされた変更されていないファイルを開くための要求を受信した後、コピーされたセキュリティ保護されたファイルにアクセスするかどうかについて、たとえば、管理対象アプリケーション、クライアントデバイス304、企業サーバマシンおよび/またはCDMシステム302に信号を送ってもよい。この態様は、さらに以下に説明される。
マーカーは、マークされた変更されていないファイルに秘密データが含まれているかどうかを示してもよい。また、複数のマーカーが、メタデータに含まれてもよい。さらに、ファイルを暗号化するために使用されるファーム固有の暗号化鍵が、マークされた変更されていないファイルのメタデータに含まれてもよく、また、ステップ736で暗号化されてもよい。さらに、マークされた変更されていないファイルのメタデータは、ファーム固有の暗号化鍵を用いて暗号化されてもよく、これは、たとえば、ステップ722で変更されたファイルを暗号化するために使用されるファーム固有の暗号化鍵などの本明細書に開示された他の暗号化鍵と同じであってもまたは異なってもよい。たとえば、マークされた変更されていないファイルのメタデータを暗号化するために使用されるファーム固有の秘密暗号化鍵は、特定の企業のために、特定の企業サーバマシンに接続されたコンピューティングデバイスのために、または、企業サーバマシンシステムを維持するために使用されるサーバのグループのために、生成される暗号化鍵であってもよい。マークされた変更されていないファイルのメタデータを暗号化するために使用される暗号化鍵は、ファイル、クライアントデバイス304などのクライアントデバイスに固有で、および/またはCDMシステム302などのCDMシステムに固有であってもよい。マークされた変更されていないファイルのメタデータの暗号化に使用する暗号化鍵は、企業サーバマシンまたはCDMシステム702上に記憶されてもよい。マークされた変更されていないファイルは、クライアント304などのクライアント上に記憶されてもよい。あるいは、またはさらに、マークされた変更されていないファイルを、CDMシステム702または企業サーバマシン上に記憶してもよい。
ステップ738において、ステップ722で暗号化された変更されたファイルの部分を、暗号化されたコピーされたファイル(copied file)を作成するために、コピーされたセキュリティ保護されたファイルに追加してもよく、または、そこに保存してもよい。暗号化されたコピーされたファイルは、企業サーバマシン、CDMシステム302などのCDMシステム、および/またはクライアント304などのクライアント上に、記憶されてもよい。ステップ736で作成されたマークされた変更されていないファイルが、この新たに作成された暗号化されたコピーファイルをポイントするマーカーを含んでもよく、それにより、クライアント上でマークされた変更されていないファイルを開くための要求を受信した後、マークされた変更されていないファイルのマーカーが、暗号化されたコピーされたファイルをポイントしてもよく、および/またはそれへのアクセスを可能としてもよい。この態様は、さらに以下に説明される。
ステップ740において、マークされた変更されていないファイルを、マッピングされたローカルドライブにおいて、クライアント304などのクライアント上に記憶させる。ついで、プロセスはステップ716で終了する。
既存のファイルが暗号化されたマーカー(「マークされた既存のファイル」)を含んでいるかもしれないとステップ730において判定された場合、プロセス700はステップ742に進む。ステップ742において、ストリームマーカーを、ファーム固有の暗号化鍵などの暗号化鍵を使用して解読してもよく、これはステップ722において変更したファイルを暗号化するために使用されるファーム固有の暗号化鍵などの本明細書に開示された他の暗号化鍵と同じでも、または異なっていてもよい。ストリームマーカーの解読により、マークされた既存のファイルの変更が可能となる。
ステップ744において、ステップ722で暗号化されているかもしれない変更されたファイルの一部を、更新済みのマークされたファイルを作成するために、マークされた既存のファイルに追加してもよく、または、そこに保存してもよい。更新済みのマークされたファイルは、企業サーバマシン、CDMシステム302などのCDMシステム、および/またはクライアント304などのクライアント上に記憶されてもよい。マークされた既存のファイルは、この更新済みのマークされたファイルをポイントするストリームマーカーを含んでもよく、それにより、クライアントにおいてマークされた既存のファイルを開くための要求を受信した後、マークされた既存のファイルのマーカーは、更新済みのマークされたファイルへポイントしてもよく、および/またはそれへのアクセスを可能としてもよい。この態様は、さらに以下に説明される。
ステップ746では、マークされた既存のファイルを、マッピングされたローカルドライブにおいて、クライアント304などのクライアント上に記憶させる。そして、プロセスはステップ716で終了する。
図8は、本明細書に記載される1つ以上の開示された特徴に応じて、モバイルデバイス管理型セキュリティのためのセキュリティ保護されたクライアントドライブマッピングおよびファイルストレージを使用して、クライアント304などのクライアント上でファイルを開く例示的なプロセス800を示すフロー図である。
1つ以上の実施形態において、図8に示すプロセスおよび/または1つ以上のそのステップは、コンピューティングデバイス(たとえば、クライアントデバイス304、企業サーバマシンなど)によって実行されてもよい。他の実施形態では、図8に示すプロセスおよび/または1つ以上のそのステップは、不揮発性コンピュータ可読メモリなどのコンピュータ可読媒体に記憶されるコンピュータ実行可能命令で具現化されてもよい。
プロセス800において、ステップ806,808,810,812,814,824,832および834は、たとえば、クライアント304などのクライアント側において実施または実行されてもよく、ステップ818,820,822,826,828および830は、たとえば、企業サーバマシンやCDMシステム302などのCDMシステム側において、実施または実行されてもよい。あるいはまたはさらに、プロセス800の任意のステップは、クライアント、企業サーバマシンまたはCDMシステム上において実施されてもよい。
プロセス800は、ステップ806で開始され、そこでは、表計算やワードプロセシングプログラムなどのアプリケーションを、クライアント304などのクライアントデバイス上でロードまたは起動する。アプリケーションは、CDMシステム302に作動可能に接続された企業サーバなどのサーバ上で管理されているアプリケーションのインスタンスを実行しているかもしれない。
管理対象アプリケーションを、たとえば、1つ以上のポリシーが管理対象アプリケーションに適用される少なくとも1つの管理モードを提供するように構成してもよく、1つ以上のポリシーは、上述したように、管理対象アプリケーションの1つ以上の機能を制限するように構成されてもよい。ユーザまたは他のアプリケーションからなど、管理対象アプリケーションにアクセスするための要求に応答して、管理対象アプリケーションをロードまたは起動してもよい。管理対象アプリケーションを、例として、ベース仮想デスクトップまたは企業配信アプリケーションから起動することができる。あるいは、またはさらに、アプリケーションがクライアント304上で実行中であってもよい。
ステップ808において、ローカルデバイスドライブに記憶されている既存のファイルにアクセスするかまたはそれを開く要求を、クライアント304などのクライアントデバイス上で受信する。たとえば、ユーザや他のアプリケーションがそのような要求を行ってもよい。ローカルデバイスドライブを、CDMシステム302などのCDMシステムを使用して企業ドライブにマッピングしてもよい。
ステップ810において、たとえば、クライアント304のローカルドライブ上に記憶されている既存のファイルにアクセスするまたはそれを開く要求を受信することに応答して、たとえば、既存のファイルにリンクされるか、またはそれに関連付けられてもよい機密または秘密情報へアクセスするために1つ以上の条件または経験則を満たすことができるかどうかを、クライアント304、CDMシステム302または企業サーバマシンなどによって判定する。機密または秘密情報は、企業サーバマシン上に記憶されたファイルに含まれてもよい。たとえば、クライアント304に記憶されている既存のファイルは、企業サーバマシンに記憶されたファイルにポイントすることができる既存のファイルのメタデータにおいてマーカーを含んでもよい。したがって、既存のファイルへアクセスするかまたはそれを開く要求が受信された後、および、1つ以上の条件が満たされた場合、企業サーバマシン上に記憶されたファイルへのアクセスが許可される。この態様は、さらに以下に説明される。
前記各条件もしくは法則(heuristics)には、起動したアプリケーションが管理対象アプリケーションであってもよいかどうか、クライアント304がCDMシステム302および/または企業サーバマシンに接続してもよいかどうか、既存のファイルがたとえば、別のファイルへポイントすることができる既存のファイルのメタデータ内のマーカーを有していてもよいかどうか、既存のファイルが暗号化されたメタデータを含んでもよいかどうか、既存のファイルが秘密または機密情報を含むかどうか、既存のファイルのメタデータの一部がファイルストリームおよび/または変更ジャーナルに関連付けられているか、またはそれを含むかどうか、コピーおよび/またはペーストイベントが発生したかどうか、クライアントがCITRIX RECEIVERなどのアプリケーションを介してネットワークに接続されているかどうか、などが含まれる。
いくつかの態様によれば、いくつかの条件が満たされた場合には、他の情報にアクセスできなくても、特定の情報にアクセスすることはできる。たとえば、全ファイルへのアクセスを可能にすることを満たすことができる所定の数の条件が存在する一方で、一部のファイルへのアクセスを可能にするより少ない所定の数の条件が満たされてもよい。
1つ以上の条件が満たされないかもしれないとステップ810で判定された場合、プロセス800はステップ812に進む。ステップ812において、たとえば暗号化されたおよび/または秘密もしくは機密情報などの情報へのアクセスは拒否されるかもしれない。このような情報は、たとえば、クライアント304、CDMシステム302または企業サーバマシン上に記憶されたファイルに記憶されてもよい。
ステップ814において、クライアント304のようなクライアントで実行中かもしれないアプリケーションは、その後、たとえば、暗号化されたおよび/または秘密もしくは機密情報などの情報が含まれないかもしれない既存のファイルのバージョン(セキュリティ保護されていないファイル)を開いてもよい。セキュリティ保護されていないファイルを、たとえば、クライアント304、CDMシステム302、または企業サーバマシン上に記憶してもよい。ついで、プロセスはステップ816で終了する。
1つ以上の条件を満足しているかもしれないとステップ810で判定された場合、プロセス800はステップ818に進む。ステップ818において、既存のファイルを開く要求は、企業サーバマシンおよび/またはクライアント304などのクライアントに接続されているか、またはそれに関連付けられてもよいCDMシステム302などのCDMシステムによって受信される。
CDMシステム302がクライアント304から既存のファイルを開く要求を受信した後、既存のファイルが暗号化されたメタデータを含んでいるかどうかがステップ820で判定される。たとえば、ストリームマーカーは、既存のファイルのメタデータに含まれているか、またはそれに関連付けられているファイルストリームまたは変更ジャーナル中に存在してもよい。マーカーはまた、暗号化されてもよい。したがって、ステップ820において、既存のファイルがこのようなマーカーを含むかどうかを判定してもよい。
既存のファイルが暗号化されたマーカーを含まないかもしれないとステップ820で判定された場合、プロセス800はステップ822に進む。ステップ822において、CDMシステム302は、たとえば、暗号化されたおよび/または秘密もしくは機密情報などの情報を含んでいないかもしれない既存のファイルのバージョン(セキュリティ保護されていないファイル)のファイルハンドルを返してもよい。ファイルハンドルは、セキュリティ保護されていないファイルにアクセスするための表示(indicator)を提供してもよい。
ステップ824では、クライアント304などのクライアント上で実行されているかもしれないアプリケーションが、セキュリティ保護されていないファイルのファイルハンドルを受信してもよい。
ステップ814では、クライアント304のようなクライアント上で実行されているアプリケーションは、その後、セキュリティ保護されていないファイルを開いてもよい。セキュリティ保護されていないファイルを、たとえば、クライアント304、CDMシステム302、または企業サーバマシン上に記憶してもよい。ついで、プロセスはステップ816で終了する。
既存のファイルのメタデータがファイルストリームまたは変更ジャーナルにおいてのように暗号化されたマーカーを含むかもしれないとステップ820で判定された場合、プロセス800はステップ826に進む。ステップ826において、暗号化されたマーカーをファーム固有の暗号化鍵などの暗号化鍵を用いて解読する。
暗号化されたマーカーがステップ826で解読された後、既存のファイルの解読されたマーカーが、秘密または機密情報を含んでいるかもしれない既存のファイルのバージョン(セキュリティ保護されたファイル)に関連する情報を含むことができるかどうかが、ステップ828で判定される。たとえば、マーカーは、セキュリティ保護されたファイルに関連する情報を含んでもよく、既存のファイルをセキュリティ保護されたファイルへポイントしてもよく、および/または、セキュリティ保護されたファイルへのアクセスを可能としてもよい。
既存のファイルの解読されたマーカーが既存のファイルのセキュリティ保護されたバージョンに関連する情報を含まないかもしれないとステップ828において判定された場合、プロセス800はステップ822に進む。ステップ822において、CDMシステム302は、たとえば暗号化されたおよび/または秘密もしくは機密情報などの情報が含まれないかもしれない既存のファイルのバージョン(「セキュリティ保護されていないファイル」)のファイルハンドルを返してもよい。ファイルハンドルは、セキュリティ保護されていないファイルにアクセスするための表示を提供してもよい。
ステップ824では、クライアント304などのクライアント上で実行されているアプリケーションは、セキュリティ保護されていないファイルのハンドルを受信してもよい。
ステップ814では、クライアント304のようなクライアント上で実行されているアプリケーションは、その後、セキュリティ保護されていないファイルを開いてもよい。セキュリティ保護されていないファイルを、たとえば、クライアント304、CDMシステム302、または企業サーバマシン上に記憶してもよい。ついで、プロセスはステップ816で終了する。
既存のファイルの解読されたマーカーが既存のファイルのセキュリティ保護されたバージョンに関連する情報を含むかもしれないとステップ828で判定された場合、プロセス800はステップ830に進む。ステップ830において、CDMシステム302は、たとえば、暗号化されたおよび/または秘密もしくは機密情報などの情報が含まれる場合がある既存のファイルのバージョン(「セキュリティ保護されたファイル」)のファイルハンドルを返してもよい。ファイルハンドルは、セキュリティ保護されたファイルにアクセスするための指標を提供してもよい。
ステップ832では、クライアント304などのクライアント上で実行されているかもしれないアプリケーションは、セキュリティ保護されたファイルのファイルハンドルを受信する。
ステップ834では、クライアント304のようなクライアントで実行されているかもしれないアプリケーションは、その後、既存のファイルのセキュリティ保護されたバージョンを開いてもよい。このセキュリティ保護されたファイルを、たとえば、クライアント304、CDMシステム302、または企業サーバマシン上に記憶する。ついで、プロセスはステップ816で終了する。
構造的な特徴および/または方法論的な行為に特有の用語で主題を説明してきたが、添付の請求項で定義される主題は必ずしも上述した特有の特徴または行為に制限されるものではないことは理解されるべきである。むしろ、上述した特有の特徴および行為は以下の請求項の実施態様として説明されたものである。
関連出願の相互参照
本願は、2013年10月16日に出願された「モバイルデバイス管理型セキュリティのためのセキュリティ保護されたクライアントドライブマッピングおよびファイルストレージシステム」という発明の名称を有する係属中の米国特許出願第14/054,899号の優先権を主張する。