(57)【特許請求の範囲】
【請求項１】
メモリとプロセッサとを有するアクセスプロキシによって、組織のネットワーク内リソースへのアクセスを求めるアプリケーションの要求を受信することであって、前記アプリケーションが前記組織の前記ネットワーク外のユーザ機器で実行していることと、
前記アクセスプロキシによって、前記要求内で、前記アプリケーションのユーザのユーザ識別子、前記ユーザ機器の機器識別子、及び前記アプリケーションのアプリケーション識別子を識別することであって、前記ユーザ識別子と前記機器識別子と前記アプリケーション識別子とは、認証トークンを含むパッケージ内にラップされる、ことと、
前記要求に該当するアクセスポリシを識別することと、
前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の組み合わせが前記アクセスポリシを満たすかどうかをプロセッサによって判定することと、
アプリケーションプロビジョニングサービスと通信して前記ユーザ機器での前記アプリケーションの以前のインストールを検証することによって、前記認証トークンを用いて前記アプリケーションを認証することと、
前記アクセスプロキシによって、前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の組み合わせが前記アクセスポリシを満たし前記アプリケーションが認証される場合、前記ユーザ機器の他のアプリケーションへアクセスを許可すること無く、前記組織の前記ネットワーク内の前記リソースへのアプリケーションアクセスを許可することと、を含む方法。
【請求項２】
前記アプリケーションの前記要求が、アプリケーション秘密鍵によって署名されたアサーションに含まれる前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子を含み、
前記方法が、アプリケーションプロビジョニングサービスからのアプリケーション公開鍵を使用して、前記要求から前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子を抽出することを更に含む、請求項１に記載の方法。
【請求項３】
前記組織の前記ネットワーク内の前記リソースへの前記アプリケーションアクセスを許可することが、
ユーザ機器に対して使用可能にするクラウドリソースを判定することと、
前記ユーザ機器からのアクセスを前記判定されたクラウドリソースへ制限することと、を含む、請求項１に記載の方法。
【請求項４】
前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の前記組み合わせが前記アクセスポリシを満たすかどうかを判定することが、前記要求に関連付けられた前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の前記組み合わせをユーザ識別子、機器識別子、及びアプリケーション識別子の有効な組み合わせのリストと比較することを含む、請求項１に記載の方法。
【請求項５】
システムであって、
メモリと、前記メモリに接続されたプロセッサとを含むアクセスプロキシを含み、前記プロセッサは、
組織のネットワーク内リソースへのアクセスを求める、前記組織の前記ネットワーク外のユーザ機器で実行しているアプリケーションの要求を受信し、
前記要求内で、前記アプリケーションのユーザのユーザ識別子、前記ユーザ機器の機器識別子、及び前記アプリケーションのアプリケーション識別子を識別し、前記ユーザ識別子と前記機器識別子と前記アプリケーション識別子とは、認証トークンを含むパッケージ内にラップされ、前記ユーザ識別子と前記機器識別子と前記アプリケーション識別子と前記認証トークンとはそれぞれ前記要求に関連付けられ、
前記要求に該当するアクセスポリシを識別し、
前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の組み合わせが前記アクセスポリシを満たすかどうかをプロセッサによって判定し、
アプリケーションプロビジョニングサービスと通信して前記ユーザ機器での前記アプリケーションの以前のインストールを検証することによって、前記認証トークンを用いて前記アプリケーションを認証し、
前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の組み合わせが前記アクセスポリシを満たし前記アプリケーションが認証される場合、前記ユーザ機器の他のアプリケーションへアクセスを許可すること無く、前記組織の前記ネットワーク内の前記リソースへのアプリケーションアクセスを許可する、システム。
【請求項６】
前記アプリケーションの前記要求が、アプリケーション秘密鍵によって署名されたアサーションに含まれる前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子を含み、
前記プロセッサが、アプリケーションプロビジョニングサービスからのアプリケーション公開鍵を使用して、前記要求から前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子を更に抽出する、請求項５に記載のシステム。
【請求項７】
前記プロセッサが、
ユーザ機器に対して使用可能にするクラウドリソースを判定し、
前記ユーザ機器からのアクセスを前記判定されたクラウドリソースへ制限することによって、前記組織の前記ネットワーク内の前記リソースへの前記アプリケーションアクセスを許可する、請求項５に記載のシステム。
【請求項８】
前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の前記組み合わせが前記アクセスポリシを満たすかどうかを判定することが、前記要求に関連付けられた前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の組み合わせをユーザ識別子、機器識別子、及びアプリケーション識別子の有効な組み合わせのリストと比較することを含む、請求項５に記載のシステム。
【請求項９】
ユーザ要求を受信して、クラウドリソースにアクセスするアプリケーションを起動させ、
ユーザ識別子、機器識別子、及びアプリケーション識別子を含む、前記アプリケーションのアクセス資格情報を取得し、
ネットワークを介して、前記アクセス資格情報及び前記クラウドリソースの識別子を含むアクセス要求を前記アクセスプロキシに送信し、
前記アクセス要求が許可されたか、拒否されたかを示す、前記アクセス要求に対する応答を前記アクセスプロキシから受信する、ユーザ機器を更に含む、請求項５に記載のシステム。
【請求項１０】
アクセス資格情報を取得することが、
ユーザインターフェースを提供して、前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子のうちの少なくとも１つであるユーザ入力を支援することを含む、請求項９に記載のシステム。
【請求項１１】
前記アクセス要求が、アプリケーション秘密鍵によって署名されたアサーションである、請求項９に記載のシステム。
【請求項１２】
プロセッサによる実行時に、前記プロセッサに、
組織のネットワーク内リソースへのアクセスを求める、前記組織の前記ネットワーク外のユーザ機器で実行しているアプリケーションの要求を受信し、
前記アプリケーションのユーザのユーザ識別子、前記ユーザ機器の機器識別子、及び前記アプリケーションのアプリケーション識別子を識別し、前記ユーザ識別子と前記機器識別子と前記アプリケーション識別子とは、認証トークンを含むパッケージ内にラップされ、前記ユーザ識別子と前記機器識別子と前記アプリケーション識別子と前記認証トークンとはそれぞれ前記要求に関連付けられ、
前記要求に該当するアクセスポリシを識別し、
前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の組み合わせが前記アクセスポリシを満たすかどうかをプロセッサによって判定し、
アプリケーションプロビジョニングサービスと通信して前記ユーザ機器での前記アプリケーションの以前のインストールを検証することによって、前記認証トークンを用いて前記アプリケーションを認証し、
前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の組み合わせが前記アクセスポリシを満たし前記アプリケーションが認証される場合、前記ユーザ機器の他のアプリケーションへアクセスを許可すること無く、前記組織の前記ネットワーク内の前記リソースへのアプリケーションアクセスを許可する、
ことを含む方法を実行させる命令を含む、非一時的なコンピュータ可読記憶媒体。
【請求項１３】
アクセス資格情報を取得することが、ユーザインターフェースを提供して、前記ユーザ識別子、前記機器識別子、及び前記アプリケーション識別子の少なくとも１つであるユーザ入力を支援することを含む、請求項１２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１４】
前記プロセッサが更に、
アクセスプロキシから暗号化鍵を受信し、
前記暗号化鍵を復号し、
前記鍵を使用して暗号化されたクラウドリソースにアクセスする、請求項１２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１５】
前記アクセス要求が、アプリケーション秘密鍵によって署名されたアサーションである、請求項１２に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、アプリケーションの認証、具体的には、ネットワーク接続時の安全なアプリケーションの識別に関する。
【背景技術】
【０００２】
モバイル機器のユーザは、ファイアウォール内の制御されたネットワーク又は企業ネットワークなど安全なネットワークに存在する情報へのアクセスを所望することが多い。ファイアウォールは、安全なネットワークへのアクセスをユーザに提供できる、ゲートウェイなどアクセスプロキシを有し得る。組織は、ネットワーク（例えば、インターネット）上で１つ以上のクラウドサービスをユーザに提供してよい。クラウドサービスとしては、ユーザが企業所有のコンピュータからアクセスできる他の場所（例えば、別のコンピュータ又は組織のデータセンター）に物理的に存在し、ＩＰ制限などによって保護されていても、保護されなくてもよい、計算、ソフトウェア、データアクセス、ストレージサービス、契約サービスなどが挙げられてよい。従業員が個人所有の機器を持ち込んで（「ＢＹＯＤ」）企業ネットワークにアクセスする企業ネットワークの実施例では、従業員の機器は、通常、企業ネットワークにアクセスできない。
【発明の概要】
【課題を解決するための手段】
【０００３】
クラウドリソースにアクセスするためのシステムについて説明する。一実施形態では、アクセスプロキシは、組織のネットワーク内リソースへのアクセスを求めるアプリケーションの要求を受信する。このアプリケーションは、組織のネットワーク外のユーザ機器で実行している。アクセスプロキシは、アプリケーションのユーザのユーザ識別子、ユーザ機器の機器識別子、及びアプリケーションのアプリケーション識別子を更に識別する。アクセスプロキシはまた、ユーザ識別子、機器識別子、及びアプリケーション識別子の組み合わせがアクセスポリシを満たすかどうかを判定する。ユーザ識別子、機器識別子、及びアプリケーション識別子の組み合わせがアクセスポリシを満たす場合、アクセスプロキシは、組織のネットワーク内リソースへのアプリケーションアクセスを許可する。
【０００４】
一実施形態では、リソースは、プライベートクラウドリソース又はパブリッククラウドリソースのうちの少なくとも１つである。一実施形態では、アプリケーションの要求は、ユーザ識別子、機器識別子、及びアプリケーションの秘密鍵によって署名されたアサーションに含まれるアプリケーション識別子を含む。アクセスプロキシは、アプリケーションプロビジョニングサービスからのアプリケーション公開鍵を使用して、ユーザ識別子、機器識別子、及びアプリケーション識別子を要求から更に抽出することができる。一実施形態では、組織のネットワーク内リソースへのアプリケーションアクセスを許可することは、ユーザ機器で使用可能にするクラウドリソースを判定することを含む。
【０００５】
別の実施形態では、システムは、ユーザ要求を受信して、クラウドリソースにアクセスするアプリケーションを起動させるユーザ機器を更に含む。このユーザ機器はまた、アプリケーションのアクセス資格情報を取得でき、アクセス資格情報はユーザ識別子、機器識別子、及びアプリケーション識別子を含む。ユーザ機器は、アクセス資格情報及びクラウドリソースの識別子を含むアクセス要求を、ネットワークを介してアクセスプロキシに更に送信できる。ユーザ機器は、アクセス要求に対する応答をアクセスプロキシから受信でき、この応答は、アクセス要求が許可されたか、拒否されたかを示す。
【０００６】
一実施形態では、ユーザ識別子、機器識別子、及びアプリケーション識別子の組み合わせがアクセスポリシを満たすかどうかを判定することは、要求に関連付けられたユーザ識別子、機器識別子、及びアプリケーション識別子の組み合わせを、ユーザ識別子、機器識別子、及びアプリケーション識別子の有効な組み合わせのリストと比較することを含む。アクセス資格情報を取得することは、ユーザインターフェースを提供して、ユーザ識別子、機器識別子、及びアプリケーション識別子のうちの少なくとも１つであるユーザ入力を容易にすることを含み得る。
【０００７】
クラウドリソースにアクセスするための方法について説明する。一実施形態では、アクセスプロキシなどコンピュータシステムは、組織のネットワーク内リソースへのアクセスを求めるアプリケーションの要求を受信する。このアプリケーションは、組織のネットワーク外のユーザ機器で実行している。アクセスプロキシは、アプリケーションのユーザのユーザ識別子、ユーザ機器の機器識別子、及びアプリケーションのアプリケーション識別子を識別できる。アクセスプロキシは、ユーザ識別子、機器識別子、及びアプリケーション識別子の組み合わせがアクセスポリシを満たすかどうかを更に判定できる。ユーザ識別子、機器識別子、及びアプリケーション識別子の組み合わせがアクセスポリシを満たす場合、アクセスプロキシはまた、組織のネットワーク内リソースへのアプリケーションアクセスを許可できる。
【０００８】
更に、クラウドリソースにアクセスするための、非一時的なコンピュータ可読記憶媒体ネットワークについて説明する。例示的コンピュータ可読記憶媒体は、プロセッサによる実行時に、上記の例示的方法など方法をプロセッサに実行させる、命令を提供する。
【図面の簡単な説明】
【０００９】
本発明は、以下の「発明を実施するための形態」及び本発明の様々な実施形態の添付図面からより完全に理解されるであろうが、これらは、本発明を特定の実施形態に限定すると見なされるべきではなく、説明及び理解のみを目的とする。
【図１】本発明の実施形態が動作し得る、サンプルネットワークアーキテクチャのブロック図である。
【図２】ある実施形態による、アクセス制御モジュールを示すブロック図である。
【図３】ある実施形態による、認証モジュールを示すブロック図である。
【図４】ある実施形態による、クラウドリソースのアクセス制御法を示すフロー図である。
【図５】別の実施形態による、クラウドリソースのアクセス制御法を示すフロー図である。
【図６】ある実施形態による、コンピュータシステムの一実施形態を示すブロック図である。
【発明を実施するための形態】
【００１０】
ネットワークに接続して、クラウドサービス又はリソースにアクセスするときに安全なアプリケーションを識別するための方法及び装置の実施形態について説明する。特定の実施形態では、アクセスプロキシは、ユーザ識別子、機器識別子、及びアプリケーション識別子の組み合わせを使用して、アクセス管理及び識別子認証を統合する。アクセスプロキシは、ユーザの個人用機器上の一部のアプリケーションがクラウドリソースにアクセスできないようにし、一方では、ユーザの個人用機器上の別のアプリケーションからの同一クラウドリソースへのアクセスを許可する。
【００１１】
図１は、本明細書に記載の本発明の実施形態が動作し得る、サンプルネットワークアーキテクチャ１００のブロック図である。ネットワークアーキテクチャ１００は、企業ネットワーク（プライベートクラウド）１３０と、パブリッククラウド１４０（企業によって管理されない、プライベートクラウド１３０に含まれないサービスを含む）と、ネットワーク１０６を介して企業ネットワーク１３０及びパブリッククラウド１４０と通信できるユーザ機器１０２と、を含んでよい。ネットワーク１０６は、例えば、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）などプライベートネットワーク、インターネットなどグローバルエリアネットワーク（ＧＡＮ）、又はかかるネットワークの組み合わせを含んでよく、有線又は無線ネットワークを含んでよい。
【００１２】
クラウドコンピューティング（「クラウド」）は、コンピュータネットワーク上のコンピューティングリソースへのアクセスを指してよい。クラウドコンピューティングにより、使用されるコンピューティングリソースとユーザが作業を行っている物理的マシンとの機能分離が可能となる。ユーザは、ユーザ機器を使用して、クラウド（例えば、企業ネットワーク１３０又はパブリッククラウド１４０）内のリソースにアクセスしてよい。ユーザ機器には、管理対象のユーザ機器及び非管理対象のユーザ機器が挙げられてよい。管理対象のユーザ機器は、企業がある程度制御できるユーザ機器（企業又はユーザの所有）を指す。具体的には、企業は、管理対象のユーザ機器にインストールし、実行できるアプリケーション又はプログラムを制御する。非管理対象のユーザ機器は、従業員の自宅コンピュータ又はプライベート用の携帯電話など企業によって制御されない、ユーザが所有するユーザ機器である。図１に示すユーザ機器１０２は、タブレットコンピュータ、スマートフォン、携帯情報端末（ＰＤＡ）、ポータブルメディアプレーヤ、ネットブックなどは、非管理対象であるユーザのポータブル機器を示す。
【００１３】
ユーザは、１つ以上のアプリケーションストア１１０からユーザ機器１０２に様々なアプリケーションをダウンロードできる。アプリケーションストア１１０は、企業ネットワーク１３０若しくはパブリッククラウド１４０の一部、又は任意の他のネットワーク若しくはエンティであってよい、アプリケーションプロビジョニングサービスによって管理され得る。アプリケーションストア１１０は、ダウンロード用にラップされたアプリケーションを含むことができる。ユーザは、アプリケーションストア１１０からユーザ機器１０２にラップされたアプリケーション１０７をダウンロードできる。ラップされたアプリケーション１０７は、ポリシ、認証、及び暗号化を施行できるセキュリティ層でラップされたアプリケーション（「ａｐｐ」）１０８を含む。アプリケーション１０８は、任意の種類のアプリケーション、実行可能ファイル、プログラムなどであってよい。例としては、ネイティブアプリケーション（サードパーティのフレームワークを使用してコード化され得る）、ウェブクリップ、又はショートカット、安全なウェブアプリケーション（あるＵＲＬに関係付けられた、「ラップされた」クロムレスブラウザ）、「ストアポインタ」（配布されるオブジェクトが商用アプリケーションストアクライアントへのディープリンクである）などが挙げられる。アプリケーションラッピングは、アプリケーション１０８の配布前に、アプリケーション１０８にポリシ施行「ラップコード」を追加するものである。
【００１４】
アプリケーションのラッピングは、例えば、認証など多数の用途を有する。非アクティブタイムアウトが設定可能であり、アプリケーションごとにオフライン認証を許可することができる。オンラインでのアプリケーション内認証は、特定のプロトコルに左右されないが、ローカルユーザ／グループストア（例えば、ローカルＩＤプロバイダ（ＩｄＰ）、ＩＤアサーションプロバイダなど）を使用できるか、ライトウェイトディレクトリアクセスプロトコル（ＬＤＡＰ）を使用してＡｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙに接続することにより実行できる。例えば、ラップされたアプリケーション１０７は、ユーザにアプリケーション１０８へのアクセスを許可する前にオンライン認証を要求できる。別の例では、認証は、機器のオペレーティングシステムが、（例えば、「ルーティング」法又は「ジェイルブレイク」法によって）この機器又はネットワーク上の他の機器にセキュリティ上の脅威を引き起こし得る方法で変更されたか、改ざんされたかどうかを確認し、変更されたか、改ざんされた機器の認証を拒否することを含む。
【００１５】
アプリケーションストア１１０を管理するアプリケーションプロビジョニングサービスは、認証ユーザのみに使用可能なアプリケーション１０７へのアクセス及び閲覧を許可できる。かかる構成では、アプリケーションストア１１０は、ユーザが自身のユーザ資格情報を入力するログイン画面をユーザに示す。アプリケーションプロビジョニングサービスは、資格情報を認証できるか、別のシステム又はモジュールを使用して資格情報を認証できる。ユーザが有効な資格情報を提供すると、アプリケーションストア１１０は、そのラップされたアプリケーションライブラリへのアクセスを許可する。別の実施形態では、アプリケーションプロビジョニングサービスは、認証された機器にのみアプリケーションストアへのアクセスを許可する。この構成では、アプリケーションストア１１０へのアクセス要求は、機器から発信される。ユーザは機器識別子を入力してよいか、又はアプリケーションストア１１０へのアクセスを求めるユーザ要求に機器識別子が自動的に追加され得る。ユーザ資格情報の認証と同様に、機器が認証されると、アプリケーションストア１１０にアクセスできる。
【００１６】
一実施形態では、アプリケーションストア１１０は、ユーザ機器１０２にインストールされている、ダウンロード可能なクライアントを使用してアクセスされる。このダウンロード可能なアプリケーションストアクライアントを使用すると、ユーザは、アクセスできるアプリケーションセットからラップされたアプリケーション１０７を閲覧し、選択できる。アプリケーション１０７が選択されると、アプリケーションストアクライアントはアプリケーションストア１１０に関連付けられたサーバと連携して、機器１０２にアプリケーション１０７をインストールする。アプリケーションストア１１０に関連付けられたサーバは、機器にインストールされているアプリケーション１０７のデータベースを保持し、機器とユーザとの関連付けも保持する。
【００１７】
企業ネットワーク１３０及びパブリッククラウド１４０は、ネットワーク１０６を介して認証されたユーザ機器にアクセス可能である、一群のクラウドリソース及び／又はサービス１３２、１４２をそれぞれ含んでよい。プライベートクラウドリソース１３２は、例えば、電子メールサービス、ドキュメント管理サービス、顧客関係管理（ＣＲＭ）サービス、ビデオ通信サービス、又は一部の他のクラウドサービスを含んでよい。選ばれたユーザ（Select users）は、ネットワーク１０６でユーザ機器１０２を使用して、企業ネットワーク１３０内のプライベートクラウドリソース１３２にアクセスする権利が付与されてよい。プライベートクラウドリソース１３２は、暗号化され得る。
【００１８】
ネットワークアーキテクチャ１００はまた、セキュリティ機能を備えるように設計されて、プライベートリソース及びサービス、並びに組織によって保持されている機密情報へのアクセスを保護してよい。一実施形態では、セキュリティは、一連の１つ以上のアクセスプロキシ（例えば、クラウドサービスアクセス及び情報ゲートウェイ）１１２、１３４、１４４、１４６によって実施されてよく、これらは、様々な位置（例えば、企業ネットワーク１３０内、パブリッククラウド１４０内、又は企業ネットワーク１３０及びパブリッククラウド１４０外）に配置され得る。例えば、アクセスプロキシは、クラウド内又は安全なネットワークへの入り口部分に配置されてよい。
【００１９】
アクセスプロキシ１１２、１３４、１４４、１４６は認証モジュール１１６を使用して、ユーザ、機器、及びアプリケーションに基づいてアクセスポリシを施行する、アクセス施行点として機能してよい。認証モジュール１１６は、示すように、アクセスプロキシ１１２、１３４、１４４、１４６のうちの少なくとも１つの一部であってよいか、アクセスプロキシ１１２、１３４、１４４、１４６外で動作してよい。認証モジュール１１６は、ネットワーク内クラウドリソースへのアクセスを要求しているユーザ、ユーザ機器、及びユーザ機器上の特定のアプリケーションを識別してよく、この特定のアプリケーションへのアクセスを許可できるか、制限できる。同一機器上の他のアプリケーションは、インターネットアクセスプロキシ又はネットワーク内のクラウドリソースにアクセスできない。
【００２０】
ラップされたアプリケーション１０７のラッピングは、アクセス資格情報を使用して、アクセスプロキシ１１２、１３４、１４４、１４６で認証済みセッションを開始する、アクセス資格情報モジュール１０９を含み得る。アクセス資格情報モジュール１０９は、ユーザから、機器から、アプリケーションなどからアクセス資格情報を受信できる。アクセス資格情報は、ユーザ、機器、及びアプリケーションなどの認証に使用可能なデータを含み得る。図２に関連してアクセス資格情報モジュール１０９の一実施例について詳述する。
【００２１】
ラップされたアプリケーション１０７は、ソフトウェア開発キット（ＳＤＫ）を使用して、安全な通信（例えば、Ｃｏｏｋｉｅ又は他のプロトコル非依存法）により自身を識別して、ユーザ、機器、及びアプリケーション情報を暗号化できる。モバイルアプリケーションラッパーを使用する場合、ソフトウェアＳＤＫは、アクセスプロキシとの通信時に安全な通信層を追加する。ＳＤＫは、ユーザ、機器、及びアプリケーション識別子の安全かつ暗号化された組み合わせを追加し、アクセスプロキシに渡して認証を受ける。
【００２２】
一例では、プライベートクラウドリソース１３２又はパブリッククラウドリソース１４２などクラウドリソースへのアクセス要求は、アクセスプロキシのうちの１つを通過してよい。認証モジュール１１６は、要求に関連付けられたアクセス資格情報の組み合わせを許可されるユーザ、機器、及びアプリケーションのリスト又はデータベースと比較し、この比較結果に基づいて動作を施行してよい。動作としては、例えば、要求を許可する、要求を拒否する、要求を認証する、要求を変更する、又は他の動作が挙げられてよい。この動作は、ユーザがアプリケーションにアクセスする権限を有すること、機器がアプリケーションをインストールする許可を有すること、及びアプリケーション自体が安全であることが検証されること、を確認することであり得る。認証モジュール１１６は、このアプリケーションに関するネットワークアクセスを許可する前に、これらのアクセス資格情報のそれぞれを検証できる。認証モジュール１１６は、組織のネットワーク内リソースへのアプリケーションアクセスの許可、認証、拒否、又は制限に関する命令を提供できる。
【００２３】
別の例では、クラウドリソースへのアクセス要求は、階層化アクセス施行スキームを形成する、多数のアクセスプロキシを通過してよい。この階層化アプローチ内の各アクセスプロキシは、異なる認証又は承認タスクを実行できる。第１アクセスプロキシは、クラウドリソースへのアクセス要求の第１検証を実行できる。次いで、第２アクセスプロキシは、要求の第２検証を実行できる。一実施例では、第２アクセスプロキシは、追加基準に従って、要求の第２検証を実行する。この追加基準は、所定の期間内で許可される要求の数、要求が許可される期間（例えば、通常の業務時間中）、ユーザ機器１０２の地理的位置、及び不規則挙動又は信頼できない挙動の他の形態に関する規則であってよい。
【００２４】
すべての伝達された要求、情報、及びデータは、例えば、２５６ビット鍵の暗号ブロックチェーン（ＣＢＣ）モードでの高等暗号化標準（ＡＥＳ）を使用して暗号化できる。データは、例えば、それぞれがランダムな初期化ベクトル（ＩＶ）を有する、５１２ブロックで暗号化できる。暗号化鍵は、各ユーザ機器１０２上のラップされたアプリケーション１０７ごとに異なり得る。一実施形態では、ファイル及びディレクトリデータの暗号化に使用される鍵は、ラップコード内で生成され、ユーザ機器１０２から外に出ることはない。存続する場合、暗号化鍵は、ＡＥＳ−ＣＢＣ及び１つ以上の２５６ビット鍵（「ＫＥＫ」、つまり鍵暗号鍵として知られる）を使用して暗号化される。クラウドリソースも暗号化され得る。暗号化されたクラウドリソースにアクセスするために、ユーザ機器１０２は、アクセスプロキシ１１２、１３４、１４４、１４６から暗号化鍵を受信できる。ユーザ機器１０２は、暗号化鍵を復号し、この鍵を使用して暗号化されたクラウドリソースにアクセスする。
【００２５】
図２は、ラップされたアプリケーション１０７に含まれるアクセス資格情報モジュール１０９の一実施形態のブロック図である。アクセス資格情報モジュール１０９は、アクセス資格情報（例えば、アプリケーション識別子、ユーザ識別子、機器識別子など）を管理する。アクセス資格情報モジュール１０９は、アクセス資格情報を受信し、これらを記憶し、要求するモジュール、機器、又はシステムにこれらを提供し、ユーザ機器１０２上のアプリケーション１０７のクラウドリソース（例えば、プライベートクラウドリソース（private could resources）１３２及び／又はパブリッククラウドリソース（public could resources）１４２）へのアクセスを容易にすることができる。アクセス資格情報は、例えば、ユーザ、システム管理者、機器、又は他の個人若しくはエンティティによって作製されるか、定められてよい。
【００２６】
一実施形態では、アクセス資格情報モジュール１０９は、ユーザインターフェース１６２、資格情報プロバイダ１６４、及びアクセスマネージャ１６６を含み得る。他の実施形態では、アクセス資格情報モジュール１０９は、より多い又はより少ないコンポーネントを含み得る。一実施形態では、アクセス資格情報モジュール１０９は、ファイルシステム、データベース、又はディスクドライブ、ＲＡＭ、ＲＯＭ、データベースなどデータ記憶装置上に存在する他のデータ管理層であってよいデータストア１６８に接続される。
【００２７】
ユーザインターフェース１６２は、機器１０２のユーザに提示されるグラフィカルユーザインターフェース（ＧＵＩ）であり得、ユーザがラップされたアプリケーション１０７を起動すると提示され得る。ユーザインターフェース１６２は、ユーザからユーザ識別子（例えば、ユーザ名、パスワード）を受け取るログイン画面であってよい。一実施形態では、ユーザ名は事前に入力されていてよく、これは、アプリケーションストア１１０へのアクセス時に使用したユーザ名と同一であり得る。ユーザ識別子１７６は、クラウドサービス及び／又はクラウド情報へのアクセスを要求するユーザの識別子に関係する。一実施形態では、ユーザ識別子は、シングルサインオン（ＳＳＯ）の一環として提供される。ＳＳＯは、関連するものの、独立した多数のソフトウェアシステム（例えば、プライベートクラウドリソース１３２及びパブリッククラウドリソース１４２）のアクセス制御プロパティである。ＳＳＯでは、ユーザが１回ログインすると、サービスごとに再ログインを求められることなく、すべて（又は特定のサブセット）のサービスにアクセスできる。
【００２８】
一実施形態では、ユーザによって提供されるログイン資格情報は、ユーザステータスに応じて異なってよい。例えば、ユーザが、企業ネットワーク１３０を管理する企業の従業員であるなど第１グループのメンバーである場合、ユーザは、特定のユーザ名又はログインを有してよい。ユーザが第１グループのメンバーではない場合、ユーザは、ユーザをそのように識別する、異なるログイン資格情報セットを有してよい。加えて、ログイン資格情報は、地位、職名、席次、又は他の情報などユーザに関する他の情報を提供してよい。
【００２９】
ユーザインターフェース１６２は、ユーザ識別子１７６を受け取り、これをデータストア１６８に記憶する。ユーザインターフェース１６２は、ユーザによるアプリケーション１０７の初回起動時に呼び出され得る。アプリケーション１０７の次回起動時には、ユーザ識別子１７６はデータストア１６８から取得され得るか、ユーザインターフェース１６２を介して再び要求され得る。
【００３０】
ユーザインターフェース１６２はまた、機器識別子１８０の入力をユーザに要求し得る。あるいは、資格情報プロバイダ１６４は、例えば、指定されたメモリ位置にある機器構成情報にアクセスすることにより、機器識別子１８０を判定できる。資格情報プロバイダ１６４は、アプリケーション１０７の初回起動時に機器識別子１８０を取得し、これをデータストア１６８に記憶してよい。
【００３１】
加えて、資格情報プロバイダ１６４は、アプリケーション１０７の起動時にアプリケーション識別子１７２を判定する。アプリケーション識別子１７２は、英数字及び記号の文字列であってよい。アプリケーション識別子１７２はまた、それが行うリソース要求の種類（例えば、読み取り、書き込み、削除）並びに関連サービスのサブドメイン（例えば、要求された情報の範囲）によって特徴付けられてよい。アプリケーション識別子１７２は、ラップされたアプリケーション１０７に埋め込まれ得る。資格情報プロバイダ１６４は、アプリケーション１０７の初回起動時にアプリケーション識別子１７２を取得し、これをデータストア１６８に記憶してよい。
【００３２】
資格情報プロバイダ１６４は、アクセス資格情報（ユーザ識別子１７６、機器識別子１８０、及びアプリケーション識別子１７２）をアクセスプロキシ１１２、１３４、１４４、１４６に送信し、要求と共にアクセス資格情報を送信して、クラウドリソースにアクセスできる。資格情報プロバイダ１６４は、ユーザがアプリケーション１０８の起動を要求したとき、又はアクセスプロキシからのアクセス資格情報要求に応じて、アクセスプロキシ１１２、１３４、１４４、１４６にアクセス資格情報を送信できる。資格情報プロバイダ１６４は、ＳＤＫを使用して、認証トークン（例えば、ＸＭＬベースの署名済みアサーション）を含むパッケージ内のアクセス資格情報を暗号化し、ラップして、アクセスプロキシ１１２、１３４、１４４、１４６に送信できる。認証機関は、認証トークンのデジタル署名に使用できるアプリケーション秘密鍵を提供できる。アプリケーション秘密鍵は、ラップされたアプリケーション１０７に埋め込まれ得る。次いで、資格情報プロバイダ１６４は、安全な通信（例えば、Ｃｏｏｋｉｅ又は他のプロトコル非依存法）を使用して、アクセス資格情報を含むパッケージをアクセスプロキシ１１２、１３４、１４４、１４６に送信できる。
【００３３】
アクセスマネージャ１６６は、アクセスプロキシから応答を受信し、これをアプリケーション１０８に伝達する。次いで、特定リソースへのアクセス要求を進めてよいか、リソース要求を開始したユーザ、機器、及び／又はアプリケーションへのアクセスが拒否されたことをユーザに示すメッセージが表示されてよい。
【００３４】
図３は、本発明のある実施形態による認証モジュール１１６を示すブロック図である。一実施形態では、認証モジュール１１６は、ユーザ機器インターフェース３０２と、アクセス資格情報検証部３０４と、リソースアクセスプロバイダ３０６と、を含む。認証モジュール１１６は、より多い又はより少ないコンポーネントを含んでよい。認証モジュール１１６は、ファイルシステム、データベース、又はディスクドライブ、ＲＡＭ、ＲＯＭ、データベースなどデータ記憶装置上に存在する他のデータ管理層であってよい、有効な資格情報データストア３１０及び／又はポリシデータストア３１４に接続されてよい。
【００３５】
有効な資格情報データストア３１０は、特定ユーザの識別子（例えば、ユーザ名及びパスワード）及び／又はユーザカテゴリ（例えば、従業員、請負業者など）であってよい、有効なユーザ識別子を指定してよい。有効な資格情報データストア３１０はまた、有効な機器識別子のリスト及び対応する機器が管理対象の機器か、非管理対象の機器かに関する情報を含んでよい。加えて、有効な資格情報データストア３１０は、安全なアプリケーションの識別子のリストと、対応するアプリケーションが企業のアプリケーションストア又はサードパーティのアプリケーションストアで提供されたかに関する情報と、を含んでよい。有効な資格情報データストア３１０はまた、アプリケーションプロビジョニングサービスによって提供された安全なアプリケーションの公開鍵を記憶してよい。
【００３６】
ポリシデータストア３１４は、クラウドリソースに関するアクセス許可を定める様々なアクセスポリシを記憶してよい。例えば、アクセスポリシは、非管理対象の機器からのプライベートクラウドリソース及び／又はサードパーティのアプリケーションストアからのアプリケーションに関する要求が、対応のアプリケーションストアを管理するアプリケーションプロビジョニングサービスによる検証を受けて、ユーザがアプリケーションに対する権限を有すること、アプリケーションがアクセスを要求している有効な機器にインストールされていること、及びアプリケーション自体が安全であることを確認することを要求してよい。別の例では、アクセスポリシは、非管理対象の機器からのプライベートクラウドリソース及び／又はサードパーティのアプリケーションストアからのアプリケーションに関する要求が、ユーザ識別子、機器識別子、及びアプリケーション識別子の有効な組み合わせのリストに基づいた検証を受けることを要求してよく、かかる有効な組み合わせのリストは、ポリシデータストア３１４又は有効な資格情報データストア３１０に記憶され得る。
【００３７】
認証モジュール１１６は、アクセス要求を遮断する、あるいはその反対に要求を受信してよい。例えば、プライベートクラウドリソース１３２又はパブリッククラウドリソース１４２などクラウドリソースへのアクセス要求が、ユーザ機器１０２によって送信されてよい。一実施形態では、要求は、要求元に関する情報及び／又は要求を行っているユーザの識別子（例えば、ユーザ識別子）、要求に関連するアプリケーションの情報（例えば、アプリケーション識別子）、要求を行った機器に関する情報（例えば、機器識別子）など他のデータを含んでよい。認証モジュール１１６は、この情報を使用して、ポリシデータストア３１４に記憶されてよい、クラウドリソースセキュリティポリシなど１つ以上の該当するアクセスポリシに従ってアクセス判定を行ってよい。
【００３８】
ユーザ機器インターフェース３０２は、ユーザ機器１０２に対して通信を送受信する。一実施形態では、ユーザ機器インターフェース３０２は、クラウドリソースへのアクセス要求を受信し、この要求に関連付けられたアクセス資格情報を抽出できる。次いで、ユーザ機器インターフェース３０２は、アクセス資格情報をアクセス資格情報検証部３０４に中継できる。アクセス資格情報検証部３０４は、アクセス資格情報を分析し、要求されたクラウドリソースを判定し、１つ以上の該当するアクセスポリシを検索できる。一実施形態では、検証部３０４はアクセス資格情報を識別し、ポリシデータストア３１４内の該当するアクセスポリシに従って、所定のクラウドリソースについて要求が許可されるべきかどうかを判定してよい。例えば、アクセス資格情報検証部３０４は、企業の従業員からの要求が受信され、ユーザ機器１０２など有効なユーザ機器上の安全なアプリケーションと関連付けられていることを判定してよい。アクセスポリシは、特定の組み合わせのアクセス資格情報を有する要求は、プライベートクラウドリソース１３２又はパブリッククラウドリソース１４２について許可されるべきであることを指示してよい。一実施形態では、リソースセキュリティポリシは、リソースの区分のみではなく、アクセス可能又はアクセス不能である個々のクラウドリソースを指定してよい。
【００３９】
一部の実施形態では、アクセス資格情報検証部３０４はまた、アクセス要求がクラウドサービスに対して送信されている、又はクラウドサービスから要求されている、情報の種類を識別できる。この情報は、企業又は個人、機密又は公開、重要又は非重要など任意の数の異なる方法で分類されてよい。例えば、アクセス資格情報検証部３０４は、ユーザがプライベートクラウサービス１３２から企業の営業データをダウンロードしようとしていることを判定し、対応のアクセスポリシを使用して、この操作が許可されるべきか、拒否されるべきかを判定してよい。この判定に基づいて、リソースアクセスプロバイダ３０６は、要求されたクラウドリソースへのアクセスを許可する、拒否する、又は制限することができる。
【００４０】
図４は、本発明のある実施形態による、クラウドリソースのアクセス制御法を示すフロー図である。方法４００は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（例えば、プロセッサで実行されてハードウェアシミュレーションを実行する命令）、又はこれらの組み合わせを含む処理ロジックによって実行されてよい。この処理ロジックは、ユーザ機器よって行われた、クラウドリソースへのアクセス要求を監視するように構成される。一実施形態では、方法４００は、アクセスプロキシ（例えば、図１のアクセスプロキシ１１２、１３４、１４４、又は１４６）によって実行されてよい。
【００４１】
図４を参照すると、ブロック４１０において、アクセスプロキシは、ネットワーク内のクラウドリソース（cloud a resource）へのアクセス要求を受信する。一実施形態では、要求は、ユーザ機器１０２などユーザ機器によって送信されてよい。要求は、プライベートクラウドリソース１３２又はパブリッククラウドリソース１４２などクラウドリソースへのアクセスに関するものであってよい。
【００４２】
ブロック４２０において、アクセスプロキシは、アプリケーション識別子１７２、ユーザ識別子１７６、及び機器識別子１８０など要求に関連付けられたアクセス資格情報を識別してよい。アクセス資格情報は、認証トークン（例えば、アプリケーション秘密鍵によって署名された、ＸＭＬベースのアサーション）を含むパッケージ内にラップされ得る。アクセスプロキシはパッケージのラップを解除して、アプリケーションプロビジョニングサービスから受信したアプリケーション公開鍵を使用してアクセス資格情報を抽出する。ブロック４２５において、アクセスプロキシは、要求に該当するアクセスポリシを識別する。
【００４３】
ブロック４３０において、アクセスプロキシは、受信したアクセス資格情報及び該当するアクセスポリシに基づいて、要求が許可されるかどうかを判定する。アクセスプロキシは、認証トークンを使用して、要求に関連付けられたアプリケーションを認証できる。一実施形態では、アクセスプロキシはまた、対応するアプリケーションプロビジョニングサービスと通信して、ユーザ機器１０２上で以前にインストールされた、ラップされたアプリケーション１０２を検証できる。別の実施形態では、アクセスプロキシは、ユーザ識別子、機器識別子、及びアプリケーション識別子の組み合わせが有効であるかどうかを判定し、それをアクセスプロキシに報告する、サードパーティの検証サービスにアクセス資格情報を渡す。
【００４４】
ブロック４３０において、アクセスプロキシが、リソースセキュリティポリシに基づいて要求は許可されると判定する場合、アクセスプロキシは、ユーザ機器１０２に対して使用可能にするべきクラウドリソースを判定し、要求を許可する（ブロック４４０）。アクセスプロキシは、要求が許可されたという応答をユーザ機器１０２に伝達できる。この応答は、ラップされたアプリケーション１０７及びユーザ機器１０２のＫＥＫなど一意の暗号化鍵を含み得る。要求を行うユーザ機器１０２は、クラウドリソース又は情報にアクセスできる。
【００４５】
ブロック４４０において要求を許可することは、受信したアクセス資格情報の組み合わせに基づいて、限定されたリソースセットにアクセスを制限すること（例えば、アクセスポリシを使用して）を含み得る。一実施形態では、受信したアクセス資格情報の組み合わせが特定のクラウドリソース（例えば、データベース、ドキュメントなど）に関連付けられて、アプリケーション、ユーザ機器、及びユーザの組み合わせのアクセスをこれら特定のクラウドリソースに限定する。例えば、ある企業に２人の従業員がいて、それぞれが同一アプリケーションを使用して、企業のクラウドリソースにアクセスする。第１従業員は人事部で働いており、人事関連クラウドリソースにアクセスできる。第２従業員は特許グループの一員であり、特許関連クラウドリソースにアクセスできる。アクセスプロキシは、人事部の従業員による特許関連クラウドリソースへのアクセスを許可し、特許グループの従業員による人事関連クラウドリソースへのアクセスを阻止するアクセスポリシを使用してよい。別の例では、ユーザ機器上でユーザが起動したアプリケーションは、人事部で働く従業員の名前を最初に要求し、プライベートクラウド内の従業員データベースに含まれる従業員の名前表へのアクセスを許可されてよい。次いで、このアプリケーションは、人事部で働く従業員の給料を要求し、プライベートクラウド内の従業員データベースに含まれる従業員の給料表へのアクセスを拒否されてよい。
【００４６】
要求が許可されない（例えば、アクセスポリシが、指定された組み合わせのアクセス資格情報を有する要求は、プライベートクラウドリソース１３２へのアクセスが許可されるべきではないと指定する）場合、アクセスプロキシは要求を拒否し、要求が拒否されたことを要求元に通知する（ブロック４５０）。
【００４７】
図５は、本発明のある実施形態による、クラウドサービスに関するクラウドリソースのアクセス制御法５００を示すフロー図である。方法５００は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（例えば、プロセッサで実行されてハードウェアシミュレーションを実行する命令）、又はこれらの組み合わせを含む処理ロジックによって実行されてよい。この処理ロジックは、ユーザ機器でクラウドリソースへのアクセスを監視し、制御するように構成される。一実施形態では、方法５００は、図１のユーザ機器１０２によって実行されてよい。
【００４８】
図５を参照すると、ブロック５１０において、ユーザ機器は、操作にクラウドリソースへのアクセスが含まれる、アプリケーションの起動を求めるユーザ要求を受信する。それに対して、ユーザ機器は、ユーザ識別子、機器識別子、及びアプリケーション識別子を含み得る、アクセス資格情報を取得する。
【００４９】
ブロック５２０において、ユーザ機器は、ネットワークを介して、アクセス資格情報及びクラウドリソースの識別子を含むアクセス要求をクラウド又はアクセスプロキシに送信してよい。ブロック５３０において、ユーザ機器は、クラウドリソースへのアクセスが許可された、拒否された、又は限定されたリソースセットに限定されたことを示すメッセージをアクセスプロキシから受信でき、この情報をアプリケーションに伝達してよい。
【００５０】
図６は、本明細書に記載のいずれか１つ以上の方法をマシンに実行させる命令セットが実行され得る、コンピュータシステム６００の例示形態のマシンの図表示を示す。システム６００は、本明細書に記載の方法のいずれか１つ以上をマシンに実行させる命令セットが実行され得る、サーバコンピュータシステムなどコンピュータシステムの形態であってよい。別の実施形態では、マシンは、ＬＡＮ、イントラネット、エクストラネット、又はインターネット内の他のマシンに接続されて（例えば、ネットワーク化されて）よい。マシンは、クライアントサーバネットワーク環境内のサーバマシンの容量内で動作してよい。マシンは、パーソナルコンピュータ（ＰＣ）、モバイル機器、タブレット、スマートフォン、ＴＶ、ラップトップコンピュータ、ネットブック、セットトップボックス（ＳＴＢ）、サーバ、ネットワークルータ、スイッチ若しくはブリッジ、又はそのマシンが取るべき動作を指定する（逐次的又は非逐次的）命令セットを実行できる任意のマシンであってよい。更に、単一のマシンのみが図示されているが、用語「マシン」は、個別に、又は連携して１つの命令セット（又は複数の命令セット）を実行して、本明細書に記載の方法のいずれか１つ以上を実行する、任意のマシン群を含むとも見なされるべきである。一実施形態では、コンピュータシステム６００は、図１のアクセスプロキシ１１２、１３４、１４４、１４６、又は図１のユーザ機器１０２を示してよい。
【００５１】
例示のコンピュータシステム６００は、処理システム（プロセッサ）６０２と、メインメモリ６０４（例えば、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、同期的ＤＲＡＭ（ＳＤＲＡＭ）などダイナミックランダムアクセスメモリ（ＤＲＡＭ））と、スタティックメモリ６０６（例えば、フラッシュメモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ））と、データ記憶装置６１８と、を含んでおり、これらは、バス６３０を介して互いに通信する。
【００５２】
プロセッサ６０２は、マイクロプロセッサ、中央演算処理装置など１つ以上の汎用処理装置を示す。より具体的には、プロセッサ６０２は、複合命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、又は他の命令セットを実行するプロセッサ、若しくは命令セットの組み合わせを実行するプロセッサであってよい。プロセッサ６０２はまた、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサなど１つ以上の専用処理装置であってよい。プロセッサ６０２は、本明細書に記載の操作及び工程を実行するためにアクセスプロキシ１１２、１３４、１４４、１４６を実行するように構成されてよい。
【００５３】
コンピュータシステム６００は、ネットワークインターフェース機器６０８を更に含んでよい。コンピュータシステム６００はまた、ビデオディスプレイユニット６１０（例えば、液晶ディスプレイ（ＬＣＤ）又は陰極線管（ＣＲＴ））、英数字入力装置６１２（例えば、キーボード）、カーソル制御装置６１４（例えば、マウス）、及び信号生成装置６１６（例えば、スピーカ）を含んでよい。
【００５４】
データ記憶装置６１８は、コンピュータ可読媒体６２８を含んでよく、ここには、本明細書に記載方法又は機能のうちのいずれか１つ以上を具現化する命令６２２の１つ以上のセット（例えば、アクセスプロキシ１１２、１３４、１４４、１４６の命令）が記憶される。命令６２２はまた、コンピュータシステム６００によるその実行中にメインメモリ６０４内、及び／又はプロセッサ６０２の処理ロジック６２６内に完全に、又は少なくとも部分的に存在してよく、メインメモリ６０４及びプロセッサ６０２はまた、コンピュータ可読媒体を構成する。命令は更に、ネットワークインターフェース機器６０８を介してネットワーク６２０上で伝達されるか、受信されてよい。
【００５５】
コンピュータ可読記憶媒体６２８は、例示の実施形態において単一媒体として示されるが、用語「コンピュータ可読記憶媒体」は、１つ以上の命令セットを記憶する、単一媒体又は複数媒体（例えば、集中型若しくは分散型データベース、並びに／又は関連付けられたキャッシュ及びサーバ）を含むと見なされるべきである。用語「コンピュータ可読記憶媒体」はまた、マシンによって実行するための命令セットを記憶でき、暗号化でき、又は伝達でき、かつ本発明の方法のいずれか１つ以上をマシンに実行させる任意の媒体を含むと見なされるべきである。用語「コンピュータ可読記憶媒体には、したがって、ソリッドステートメモリ、光学媒体、及び磁気媒体が挙げられるが、これらに限定されないと見なされるべきである。
【００５６】
本説明は、具体的なシステム、コンポーネント、方法など多数の具体的詳細を示して、本発明のいくつかの実施形態を良く理解できるようにしてきた。しかしながら、当業者には、本発明の少なくとも一部の実施形態は、これらの具体的詳細がなくても実施され得ることが明らかであろう。他の例では、周知のコンポーネント又は方法は詳述されないか、本発明を不必要に曖昧にしないために単純なブロック図で示される。したがって、記載の具体的詳細は単なる例示である。特定の実施例はこれらの例示的詳細とは異なり得るが、それでもなお本発明の範囲内であることが想到される。
【００５７】
上記の説明では、多数の詳細が記載される。しかしながら、本開示の利益を有する当業者には、本発明の実施形態がこれらの具体的詳細がなくても実施され得ることが明らかであろう。一部の例では、周知の構造及び機器は、本発明を曖昧にしないために、詳細ではなく、ブロック図形態で示される。
【００５８】
「発明を実施するための形態」の一部は、コンピュータメモリ内のデータビットに関する操作のアルゴリズム及び象徴に関して示される。これらのアルゴリズム的記述及び表現は、データ処理分野の当業者によって、他の当業者に仕事の内容を最も効果的に伝達するために使用される手段である。アルゴリズムは本明細書で、概して、所望の結果をもたらす、自己無撞着工程の連続であると考えられる。工程は、物理量の物理的操作を必要とするものである。必ずしもそうとは限らないが、通常、これらの量は、記憶する、転送する、組み合わせる、比較する、及び他の方法で操作することが可能な、電気信号又は磁気信号の形態を取る。これらの信号をビット、値、要素、記号、文字、用語、数値などと称することが、主に一般的な用法の理由から時には好都合であることが判明している。
【００５９】
しかしながら、これら及び同様の用語のすべてが、適切な物理量と関連付けられるものであり、これらの量に適用される好都合なラベルにすぎないことに留意すべきある。上記の考察から明らかなように、特に記述されない限り、説明全体にわたって、「判定する」、「識別する」、「追加する」、「選択する」などの用語を使用した考察は、コンピュータシステムのレジスタ及びメモリ内の物理（例えば、電子）量として表されるデータを、同様にコンピュータシステムのメモリ若しくはレジスタ、又は他のかかる情報記憶装置、送信装置、又は表示装置内の物理量として表される他のデータに操作及び変換する、コンピュータシステム又は類似の電子コンピューティング装置の動作及びプロセスを指すことを理解されたい。
【００６０】
発明の実施形態はまた、本明細書に記載の操作を実行する装置に関する。この装置は、要求された目的のために特別に構築されてよく、又はコンピュータに記憶されるコンピュータプログラムによって選択的に作動若しくは再構成される汎用コンピュータを備えてよい。かかるコンピュータプログラムは、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、及び光磁気ディスクを含む任意の種類のディスク、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光カード、又は電子命令を記憶するのに好適な任意の種類の媒体などが挙げられるが、これらに限定されない、コンピュータ可読記憶媒体に記憶されてもよい。コンピュータ可読記憶媒体は、非一時的であり得る。
【００６１】
本明細書に記載のアルゴリズム及びディスプレイは、任意の特定のコンピュータ又は他の装置に本質的に関連しない。様々な汎用システムが、本明細書の教示に従ったプログラムと共に使用されてよいか、必要とされる方法工程を実行するように、より特化した装置を構築することが便利であると判明することがある。様々なこれらのシステムに必要とされる構造は、以下の説明から明らかとなる。加えて、本発明は、任意の特定のプログラミング言語に関して記載されていない。本明細書に記載されるように、本発明の教示を実行するために様々なプログラミング言語が使用され得ることを理解されたい。
【００６２】
上記の説明は制限的ではなく、例示的であることを目的とすることを理解されたい。多くの他の実施形態は、上記の説明を読み理解すると、当業者に明らかとなる。したがって、本発明の範囲は、添付の「特許請求の範囲」、及びかかる特許請求の範囲の権利が与えられる同等物の全範囲の参照により決定されるべきである。
【図１】
0006431037.tif 000002
【図２】
0006431037.tif 000003
【図３】
0006431037.tif 000004
【図４】
0006431037.tif 000005
【図５】
0006431037.tif 000006
【図６】
0006431037.tif 000007