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