IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特許7545419統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減
<>
  • 特許-統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減 図1
  • 特許-統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減 図2
  • 特許-統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減 図3
  • 特許-統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減 図4
  • 特許-統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減 図5
  • 特許-統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減 図6
  • 特許-統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-27
(45)【発行日】2024-09-04
(54)【発明の名称】統合された隔離されたアプリケーションにおけるランサムウェアの被害の軽減
(51)【国際特許分類】
   G06F 21/74 20130101AFI20240828BHJP
   G06F 21/53 20130101ALI20240828BHJP
【FI】
G06F21/74
G06F21/53
【請求項の数】 20
(21)【出願番号】P 2021568729
(86)(22)【出願日】2020-04-13
(65)【公表番号】
(43)【公表日】2022-07-21
(86)【国際出願番号】 US2020027877
(87)【国際公開番号】W WO2020236338
(87)【国際公開日】2020-11-26
【審査請求日】2023-04-13
(31)【優先権主張番号】16/415,690
(32)【優先日】2019-05-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】シュワーツ,ジョナサン・デビッド
(72)【発明者】
【氏名】タルノウスカヤ,アナスタシヤ
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2007-199959(JP,A)
【文献】特表2006-511890(JP,A)
【文献】特開2007-188520(JP,A)
【文献】米国特許出願公開第2019/0132481(US,A1)
【文献】特開2019-082884(JP,A)
【文献】特開2003-030144(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/74
G06F 21/53
(57)【特許請求の範囲】
【請求項1】
プロセッサと、
前記プロセッサに結合され、コンピュータ実行可能命令を含むメモリと
を含むシステムであって、
前記コンピュータ実行可能命令は、前記プロセッサによって実行されると動作を実行し、前記動作は、
トークンイシュアが、仮想マシンおよび認可トークンマネージャを含むホストコンピューティング環境からトークン要求を受信するステップであって、前記トークン要求は、前記ホストコンピューティング環境のユーザについてのアイデンティティ情報と、前記認可トークンマネージャによって前記トークン要求に割り当てられた信用レベルとを含み、
前記信用レベルは、前記仮想マシンの動作的な特徴に基づき前記仮想マシンが信用されるかを示し、
前記トークン要求は、前記仮想マシンによって生成され、
前記仮想マシンは、前記トークン要求を前記認可トークンマネージャに提供する、
ステップと、
前記トークンイシュアが、前記アイデンティティ情報の妥当性確認をするステップと、
前記トークンイシュアが、マーキングされた認可トークンを生成するステップであって、前記マーキングされた認可トークンは、前記仮想マシンの前記信用レベルを示す信用指示を含み、前記仮想マシンによって生成された前記トークン要求に基づく、ステップと、
前記トークンイシュアが、前記信用指示を含む前記マーキングされた認可トークンを、前記ホストコンピューティング環境の前記認可トークンマネージャに送信するステップと
を含む、
システム。
【請求項2】
請求項1に記載のシステムであって、前記信用指示は、前記仮想マシン内で実行するアプリケーションは信用されないという指示を含む、システム。
【請求項3】
請求項1に記載のシステムであって、前記マーキングされた認可トークンは、前記仮想マシン内で実行するアプリケーションが、前記ホストコンピューティング環境内のセキュア化されたリソースにアクセスすることを許可するように構成される、システム。
【請求項4】
請求項1に記載のシステムであって、前記マーキングされた認可トークンは、前記仮想マシン内で実行するアプリケーションが、ネットワークを介してセキュア化されたリソースにアクセスすることを許可するように構成される、システム。
【請求項5】
請求項3に記載のシステムであって、前記アプリケーションによる前記セキュア化されたリソースの前記アクセスは、前記セキュア化されたリソースの読み取り専用アクセスを含む、システム。
【請求項6】
ホストコンピューティング環境の認可トークンマネージャにおいて、前記ホストコンピューティング環境内で実行する仮想マシンから、トークン要求を受信するステップと、
前記認可トークンマネージャが、前記トークン要求は前記仮想マシンにおいて開始されたとの判定に基づいて、信用レベルを前記トークン要求に割り当てるステップであって、前記信用レベルは、前記仮想マシンの動作的な特徴に基づく値である、ステップと、
トークンイシュアに、前記トークン要求および信用レベルを提供するステップと、
前記トークンイシュアから、信用指示を含むマーキングされた認可トークンを取得するステップであって、前記信用指示は、前記トークン要求の前記信用レベルに対応する、ステップと、
前記認可トークンマネージャが、前記信用指示を含む前記マーキングされた認可トークンを前記仮想マシンに提供するステップと
を含む方法。
【請求項7】
請求項6に記載の方法であって、前記信用指示は、前記仮想マシン内で実行するアプリケーションは信用されないという指示を含む、方法。
【請求項8】
請求項6に記載の方法であって、リソースは、前記ホストコンピューティング環境内に格納され、
前記方法は、
前記マーキングされた認可トークンを、前記仮想マシン内で実行するアプリケーションから受信するステップと、
前記マーキングされた認可トークンの受信に応答して、前記リソースを保護するための、前記ホストコンピューティング環境内での予防的処置を実行するステップと
をさらに含む、
方法。
【請求項9】
請求項8に記載の方法であって、前記予防的処置は、前記マーキングされた認可トークンの受信に応答した、前記リソースのバックアップの作成を含む、方法。
【請求項10】
請求項8に記載の方法であって、
前記マーキングされた認可トークンの受信に応答して、前記ホストコンピューティング環境による前記リソースへの読み取り専用アクセスを容認するステップ
をさらに含む方法。
【請求項11】
請求項6に記載の方法であって、リソースは、サーバ内に格納され、該サーバは、予防的処置を実行することを、
前記マーキングされた認可トークンを受信し、
前記信用指示を前記マーキングされた認可トークンから抽出し、
抽出される前記信用指示に基づいて、前記予防的処置が実行されるべきであるということを決定する
ことに応答して行うように構成される、方法。
【請求項12】
リソースへのアクセスを容認するためのシステムであって、前記システムは、
プロセッサと、
前記プロセッサに結合され、コンピュータ実行可能命令を含むメモリと
を含み、
前記コンピュータ実行可能命令は、前記プロセッサによって実行されると方法を実行し、前記方法は、
仮想環境において実行するアプリケーションから、リソースにアクセスするためにマーキングされた認可トークンを受信するステップであって、前記マーキングされた認可トークンは、トークンイシュアによって容認された、ステップと、
前記マーキングされた認可トークンから信用指示を抽出するステップであって、前記信用指示は、前記アプリケーションの信用レベルを示し、前記信用レベルは、前記仮想環境の動作的な特徴に基づく値である、ステップと、
前記信用レベルに基づき、前記リソースを保護するための予防的措置を実行するステップであって、前記予防的措置は、
前記リソースのバックアップ・コピーを作成することと、
前記リソースへのアクセスのスコープを制限することと、
前記リソースにアクセスするための強化された認証手続きを実行することと
のうちの少なくとも1つを含む、ステップと、
前記予防的措置に従い、前記アプリケーションが前記リソースにアクセスすることを容認するステップと
を含む、
システム。
【請求項13】
請求項12に記載にシステムであって、前記信用指示は、前記仮想環境において実行する前記アプリケーションは信用されないという指示を含む、システム。
【請求項14】
請求項12に記載のシステムであって前記予防的措置は、
前記マーキングされた認可トークンの受信に応答した、前記リソースのバックアップの作成
を含む、システム。
【請求項15】
請求項12に記載のシステムであって、前記方法は、前記マーキングされた認可トークンの受信に応答して、前記仮想環境において実行する前記アプリケーションによる、前記リソースへの制限されたアクセスを容認するステップをさらに含む、システム。
【請求項16】
請求項12に記載のシステムであって、前記方法は、
記マーキングされた認可トークンの受信に応答して、強化されたアイデンティティ認証を実行するステップと
記強化されたアイデンティティ認証の実行に応答して、前記リソースへの前記アクセスを容認するステップと
をさらに含む、システム。
【請求項17】
請求項12に記載のシステムであって、前記マーキングされた認可トークンは、トークン要求が前記仮想環境において開始されたとの指示に少なくとも基づき生成され、前記仮想環境は、前記仮想環境が実行されるホストコンピューティング環境よりも信用されない、システム。
【請求項18】
請求項1に記載のシステムであって、前記仮想マシンの動作的な特徴は、
前記仮想マシンのアイデンティティと、
前記仮想マシン上で実行するオペレーティング・システムと、
前記仮想マシン上で実行するアプリケーションと
のうちの少なくとも1つを含む、システム。
【請求項19】
請求項1に記載のシステムであって、前記マーキングされた認可トークンを生成するステップは、前記信用指示を3以上の信用指示から選択するステップを含む、システム。
【請求項20】
請求項1に記載のシステムであって、前記マーキングされた認可トークンを生成するステップは、前記信用指示を前記マーキングされた認可トークンに埋め込むステップを含む、システム。
【発明の詳細な説明】
【背景技術】
【0001】
[0001]隔離されたコンピューティング配置構成において、アプリケーションは、コンピューティングホストの主たるコンピューティング環境から部分的または完璧に隔離される環境内で実行され得る。そのような隔離された配置構成は、アプリケーションによるホスト環境のリソースへのアクセスを制約および/または防止することによって、ホスト環境に対する追加的なセキュリティを可能なものにし得る。多くの事例において、隔離された環境内で実行するアプリケーションは、信用されないことがあり、または、悪意あるアクティビティの影響を受けやすいことの、より高いリスクを有することがあり、そのことによって、アプリケーションとホスト環境との間の隔離障壁が、セキュリティ観点から、より重要になる。換言すれば、悪意あるコードが、アプリケーションの隔離された環境内で実行していたとしても、ホスト環境に対するリスクは、隔離障壁に起因して最小化され得る。
【0002】
[0002]しかしながら、ユーザのエクスペリエンスを向上させるために、隔離障壁内の所定のホールが、隔離された環境内のアプリケーションによるホスト環境のファイルへのアクセスを可能とすることによってなどで、意図的に存在することがある。隔離障壁内のそのようなホールが、隔離された環境とホスト環境との間の統合を改善し得る一方で、ユーザエクスペリエンスを向上させることのこれらの一見害のない試みは、それでも、ホスト環境に対するセキュリティ脆弱性をもたらし得る。一例として、隔離された環境に進入し得る、ランサムウェアと呼称される悪意あるコードが、攻撃者にのみ知られている暗号化鍵によって、ホスト環境内に記憶されるユーザの個人データを暗号化することを可能にされ得る。そのような状況において、ユーザは、そのユーザ自身のデータにアクセスする、そのユーザの能を取り戻すために、攻撃者に身代金を支払うことを強いられる。かくして、アプリケーションが隔離され得るとしても、隔離障壁内の開口部が、それでもなお、これらおよび他のタイプの脆弱性を結果的に生じさせることがある。
【発明の概要】
【0003】
[0003]本概要は、詳細な説明において下記でさらに説明される、単純化された形式での概念の選択物を紹介するために提供される。本概要は、特許請求される主題の基本的な特徴または本質的な特徴を識別することを意図されず、本概要は、特許請求される主題の範囲を制限するために使用されることを意図されもしない。
【0004】
[0004]セキュア化された様式でのリソースへのアクセスを可能にするための方法、システム、装置、およびコンピュータプログラム製品が提供される。第1のコンピューティング環境(例えば、仮想マシン)内で実行するアプリケーションからのトークン要求が、第2のコンピューティング環境(例えば、ホストコンピューティング環境)内で受信され得る。ホストコンピューティング環境は、第1のコンピューティング環境は信用されるべきではないということを指示する信用レベルなどの信用レベルを、受信されるトークン要求に割り当て得る。トークン要求は、信用レベルとともに、(例えば、認可サーバ上の)トークンイシュアに提供され得るものであり、そのトークンイシュアは、トークン内のアイデンティティ情報の妥当性確認を行い、信用指示を含む認可トークンを生成し得る。信用指示は、実例として、第2のコンピューティング環境の信用レベルを指示し得る。ホストコンピューティング環境は、認可トークンを取得し、その認可トークンをアプリケーションに提供し得る。第2のコンピューティング環境内で実行するアプリケーションが、リソースにアクセスするために、認可トークンをリソースマネージャに送信するとき、リソースマネージャは、リソースのバックアップを作成することなどの予防的処置を、アクセスを提供することより前に実行するように構成され得る。
【0005】
[0005]本発明のさらなる特徴および利点、ならびに、様々な実施形態の構造および動作が、付随する図面を参照して下記で詳細に説明される。本発明は、本明細書において説明される特定の実施形態に制限されないということが特記される。そのような実施形態は、単に例解的な目的のために本明細書において提示される。追加的な実施形態が、本明細書に内包される教示に基づいて、関連性のある技術分野の当業者に明らかであることになる。
【0006】
[0006]本明細書に組み込まれ、本明細書の一部分を形成する、付随する図面は、本出願の実施形態を例解し、説明とともに、実施形態の原理を解説することに、ならびに、関連のある技術分野の当業者が実施形態を作製および使用することを可能にすることにさらに役立つ。
【図面の簡単な説明】
【0007】
図1】[0007]一例実施形態による、セキュア化された様式でのリソースへのアクセスを提供するためのシステムのブロック線図を示す図である。
図2】[0008]一例実施形態による、信用指示を含む認可をアプリケーションに提供するための方法のフローチャートを示す図である。
図3】[0009]一例実施形態による、セキュア化された様式でのネットワークリソースへのアクセスを提供するためのシステムのブロック線図を示す図である。
図4】[0010]一例実施形態による、信用指示を含む認可トークンを生成するための方法のフローチャートを示す図である。
図5】[0011]一例実施形態による、リソースを保護するための予防的処置を実行するための方法のフローチャートを示す図である。
図6】[0012]一例実施形態による、セキュア化された様式でのローカルリソースへのアクセスを提供するためのシステムのブロック線図を示す図である。
図7】[0013]例実施形態を実現するために使用され得る一例コンピューティングデバイスのブロック線図を示す図である。
【発明を実施するための形態】
【0008】
[0014]本発明の特徴および利点は、類する参照符号が、全体を通して対応する要素を識別する、図面と連関して取り上げられるときに、下記で論述される詳細な説明から、より明らかになることになる。図面において、類する参照番号は、一般的には、同一の、機能的に同様の、および/または、構造的に同様の要素を指示する。要素が最初に現れる図面は、対応する参照番号内の最も左の数字によって指示される。
【0009】
I.序文
[0015]本明細書、および、付随する図面は、本発明の特徴を組み込む1つまたは複数の実施形態を開示する。本発明の範囲は、開示される実施形態に制限されない。開示される実施形態は、ただ単に本発明を例示するものであり、開示される実施形態の修正されたバージョンが、さらには、本発明によって包含される。本発明の実施形態は、本明細書に添付される特許請求の範囲によって定義される。
【0010】
[0016]「1つの実施形態」、「一実施形態」、「一例実施形態」、その他への本明細書における言及は、説明される実施形態は、個別の特徴、構造、または特性を含み得るが、あらゆる実施形態が、その個別の特徴、構造、または特性を必ず含むとは限らないことがあるということを指示する。その上、そのような語句は、同じ実施形態を必ず指しているとは限らない。さらに、個別の特徴、構造、または特性が、一例実施形態とのつながりで説明されるとき、明示的に説明されているか否かを問わず、他の実施形態とのつながりでそのような特徴、構造、または特性を成し遂げることは、当業者の知識の範囲内のことであるということが提言されるものである。
【0011】
[0017]論考において、別段に説述されない限り、本開示の一例実施形態の1つまたは複数の特徴の条件または関係性特性を修飾する、「実質的に」および「約」などの形容詞は、その条件または特性が、それが向けられる用途に対する実施形態の動作に対して受け入れ可能である許容範囲の中で、本来の様態に向けて規定されるということを意味すると理解される。
【0012】
[0018]数多くの例示的な実施形態が、後に続くように説明される。本明細書において提供されるいかなる節/小節見出しも、制限的であることを意図されないということが特記される。実施形態は、本文書の全体を通して説明され、任意のタイプの実施形態が、任意の節/小節のもとに含まれ得る。さらにまた、いかなる節/小節において開示される実施形態も、任意の様式で、同じ節/小節、および/または、異なる節/小節において説明される任意の他の実施形態と組み合わされ得る。
【0013】
II.例実現形態
[0019]隔離されたコンピューティング配置構成において、アプリケーションは、コンピューティングホストの主たるコンピューティング環境から部分的または完璧に隔離される環境内で実行され得る。そのような隔離された配置構成は、アプリケーションによるホスト環境のリソースへのアクセスを制約および/または防止することによって、ホスト環境に対する追加的なセキュリティを可能なものにし得る。多くの事例において、隔離された環境内で実行するアプリケーションは、信用されないことがあり、または、悪意あるアクティビティの影響を受けやすいことの、より高いリスクを有することがあり、そのことによって、アプリケーションとホスト環境との間の隔離障壁が、セキュリティ観点から、より重要になる。換言すれば、悪意あるコードが、アプリケーションの隔離された環境内で実行していたとしても、ホスト環境に対するリスクは、隔離障壁に起因して最小化され得る。
【0014】
[0020]しかしながら、ユーザのエクスペリエンスを向上させるために、隔離障壁内の所定のホールが、隔離された環境内のアプリケーションによるホスト環境のファイルへのアクセスを可能とすることによってなどで、意図的に存在することがある。隔離障壁内のそのようなホールが、隔離された環境とホスト環境との間の統合を改善し得る一方で、ユーザエクスペリエンスを向上させることのこれらの一見害のない試みは、それでも、ホスト環境に対するセキュリティ脆弱性をもたらし得る。一例として、隔離された環境に進入し得る、ランサムウェアと呼称される悪意あるコードが、攻撃者にのみ知られている暗号化鍵によって、ホスト環境内に記憶されるユーザの個人データを暗号化することを可能にされ得る。そのような状況において、ユーザは、そのユーザ自身のデータにアクセスする、そのユーザの能を取り戻すために、攻撃者に身代金を支払うことを強いられる。かくして、アプリケーションが隔離され得るとしても、隔離障壁内の開口部が、それでもなお、これらおよび他のタイプの脆弱性を結果的に生じさせることがある。
【0015】
[0021]本明細書において説明される実施形態は、信用された様式でのリソースへのアクセスを可能にするためのシステムを提供することによって、これらおよび他の問題点に対処する。一例システムにおいて、第1の環境であって、トークン要求を、その第1の環境から少なくとも部分的に隔離された別の環境(例えば、第1の環境の仮想マシン上で実行するアプリケーション)から受信する、第1の環境は、信用指示を含む認可トークンを取得し得る。信用指示は、悪意あるアクティビティに対して脆弱であり得る、信用されない環境を含み得る、内でトークン要求が開始された環境の信用レベルについて指示し得る。アプリケーションが、認可トークンを使用して、信用されたリソースにアクセスすることを試みるとき、リソースプロバイダが、防止的処置をとり得る。
【0016】
[0022]この様式において、リソースは、認可されないエンティティがユーザのリソース(例えば、データまたはサービス)へのアクセスを得ることを試みている、悪意あるアクティビティ、または、ランサムウェアなどの悪意あるコード、または、任意の他のタイプのマルウェア、悪意あるコード、もしくは侵入工作に対して保護され得る。実例として、攻撃者が、身代金を収集することの試みにおいて、ユーザのデータを暗号化することを試みたとしても、ユーザのリソースのバックアップコピーが、攻撃者がデータにアクセスするときに、認可トークン内に含まれる信用指示に基づいて、自動的に作成され得る。攻撃者に対してアクセス不可能な様式で記憶され、および/または、暗号化され得る、ユーザのリソースのバックアップコピーは、ユーザが攻撃者に身代金を支払うことを必要としないように、ユーザによって後で復元され得る。しかるがゆえに、より信用されないコンピューティング環境の悪意あるアクティビティによって引き起こされる害は、低減され、または、全体的に防止され得る。
【0017】
[0023]本明細書において説明されるような、セキュア化された様式でのリソースへのアクセスを可能にすることは、ネットワーク、および/または、そのネットワークに結合されるリソース(例えば、コンピューティングデバイス、記憶デバイス、その他)のセキュリティを改善することを含む、数多くの利点を有する。例えば、信用指示を含む認可トークンを提供することによって、認可トークンを受信することに応答してリソースへのアクセスを提供し得るリソースプロバイダ(ネットワークを介してアクセス可能なローカルリソースプロバイダまたはリソースサーバであり得る)は、リソースのバックアップコピーを作成すること、アクセスのスコープを制限すること(例えば、読み取り/書き込みアクセスの代わりに、読み取り専用アクセスのみを提供すること)、強化された認証手続(例えば、2要素認証)を実行すること、または、他の防止的処置などの、リソースを保護するための1つまたは複数の防止的処置をとり得る。結果として、リソースは、よりセキュアでない環境であると考えられる環境から開始された悪意あるアクティビティに対して保護され得る。さらにまた、リソースプロバイダは、内に埋め込まれた信用指示を含む認証トークンを受信し得るので、リソースプロバイダは、(例えば、個別のアプリケーションが、そのような認可トークンによって、異常な数のリソースにアクセスしている場合に)異常なネットワークアクティビティの存在を検出するように構成され得る。結果として、ネットワークにわたって、および/または、そのネットワークに結合されるリソースの中で発生する悪意あるアクティビティは、本明細書において説明されることによって阻止、低減、および/または防止され得る。
【0018】
[0024]例実施形態が、セキュア化された様式でのリソースへのアクセスを提供するためのシステムおよび方法に対して、後に続くように説明される。実例として、図1は、一例実施形態による、システム100のブロック線図を示す。図1において示されるように、システム100は、ネットワーク110によって通信可能に結合される、コンピューティングデバイス102と、認可サーバ108と、リソースサーバ112とを、および、リソースサーバ112に結合されるセキュア化されたリソース116を含む。システム100は、図1において例解されるものを含む、任意の数のコンピューティングデバイスおよび/またはサーバを、ならびに任意選択で、明確には例解されない、1つまたは複数のさらなるデバイスを含み得る。図1において示されるように、コンピューティングデバイス102は、内でホスティングされる仮想マシン104と、認可トークンマネージャ106とを含む。下記でより詳細に説明されるように、認可トークンマネージャ106は、トークン要求を、仮想マシン104上で実行するアプリケーションから受信し、信用指示を伴う認可トークンを取得し、信用指示を含む認可トークンを仮想マシン104内のアプリケーションに提供するように構成され得る。認可サーバ108は、トークンイシュア110を含む。リソースサーバ112は、リソースマネージャ114を含む。図1は、仮想マシン104上で実行するアプリケーションに関して説明されるが、そのような一実現形態は、制限的であることを意図されない。内でトークン要求が発出し得る、他のタイプの部分的および/または完全に隔離されたコンピューティング環境が、さらには、後で説明されるように思索される。システム100は、後に続くようにさらに説明される。
【0019】
[0025]ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パーソナルエリアネットワーク(PAN)、インターネットなどの通信ネットワークの組み合わせ、および/または仮想ネットワークのうちの任意のもののうちの1つまたは複数を含み得る。例実現形態において、コンピューティングデバイス102、認可サーバ108、リソースサーバ112、および/または、セキュア化されたリソース116は、ネットワーク110によって互いに通信可能に結合され得る。一実現形態において、コンピューティングデバイス102、認可サーバ108、リソースサーバ112、および/または、セキュア化されたリソース116のうちの任意の1つまたは複数は、1つもしくは複数のアプリケーションプログラミングインターフェイス(API)によって、ならびに/または、他のインターフェイスおよび/もしくは技法によって通信し得る。コンピューティングデバイス102、認可サーバ108、リソースサーバ112、および/または、セキュア化されたリソース116は、各々、互いとの通信を可能にする少なくとも1つのネットワークインターフェイスを含み得る。有線またはワイヤレスの、そのようなネットワークインターフェイスの例は、IEEE802.11ワイヤレスLAN(WLAN)ワイヤレスインターフェイス、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス(Wi-MAX)インターフェイス、Ethernetインターフェイス、ユニバーサルシリアルバス(USB)インターフェイス、セルラネットワークインターフェイス、Bluetooth(商標)インターフェイス、近距離無線通信(NFC)インターフェイス、その他を含む。ネットワークインターフェイスのさらなる例は、本明細書において他のところで説明される。
【0020】
[0026]コンピューティングデバイス102は、内で、または、ネットワーク110によって1つもしくは複数の他のコンピューティングデバイスによって、実行、ホスティング、および/または記憶され得る、1つまたは複数のアプリケーション、オペレーティングシステム、仮想マシン、記憶デバイス、その他を含み得る、1つまたは複数のユーザ(例えば、個々のユーザ、家族ユーザ、企業ユーザ、行政機関ユーザ、その他)の任意のコンピューティングデバイスを含む。一部の例において、コンピューティングデバイス102は、本明細書において説明されるように、1つまたは複数のセキュア化されたリソース116にアクセスするために、認証サーバ108および/またはリソースサーバ112などの、1つまたは複数のサーバデバイスにアクセスし得る。コンピューティングデバイス102は、数十、数百、数千、数百万、またはさらに大きい数のコンピューティングデバイスを含む、任意の数のコンピューティングデバイスを含み得る。コンピューティングデバイス102のコンピューティングデバイスは、各々、モバイルコンピュータもしくはモバイルコンピューティングデバイス(例えば、Microsoft(登録商標)Surface(登録商標)デバイス、携帯情報端末(PDA)、ラップトップコンピュータ、ノートブックコンピュータ、Apple iPad(登録商標)などのタブレットコンピュータ、ネットブック、その他)、モバイルフォン、ウェアラブルコンピューティングデバイス、または、他のタイプのモバイルデバイス、あるいは、デスクトップコンピュータもしくはPC(パーソナルコンピュータ)、またはサーバなどの据置型コンピューティングデバイスを含む、任意のタイプの据置型またはモバイルコンピューティングデバイスであり得る。コンピューティングデバイス102は、物理マシンに制限されるのではなく、仮想マシンなどの他のタイプのマシンまたはノードを含み得る。コンピューティングデバイス102は、各々、APIによって、および/または、他の機構によって、認可サーバ108および/またはリソースサーバ112とインターフェイス接続し得る。任意の数のプログラムインターフェイスが存在し得るということに留意されたい。
【0021】
[0027]認可サーバ108は、1つまたは複数の認可トークンを、そのようなトークンを要求するネットワーク110のコンピューティングデバイスに発行するための、任意のコンピューティングデバイス、サーバ、および/またはサービスを含み得る。下記でより詳細に説明されることになるように、認可トークンは、コンピューティングデバイス、コンピューティング環境、および/またはアプリケーションがリソースにアクセスすることを可能にする、任意のオブジェクト(例えば、データのセット)を含み得る。例えば、認可トークンは、トークンに対する識別子、関連付けられるログオンセッションに対する識別子、アクセスを要求するアプリケーションに対する識別子、アクセスを要求するアプリケーションのユーザに対するユーザ識別子、および、認可トークンによって提供される1つまたは複数の特権の指示のうちの1つまたは複数を含む、ファイルまたは他のオブジェクトであり得る。
【0022】
[0028]一部の例において、認可サーバ108は、リソースへのアクセスをセキュア化するために使用され得る、ユーザログインクレデンシャル(例えば、ユーザ名および/またはパスワード)、ユーザエイリアス、アカウント番号、生体情報、または、任意の他の情報もしくはクレデンシャルを含む、ただしそれらに制限されない、認可トークンを要求するエンティティのアイデンティティ情報の妥当性確認を行うように構成される、アイデンティティサービスまたはアイデンティティプロバイダを含み得る。実現形態によれば、認可サーバ108のトークンイシュア110は、コンピューティングデバイス102への送信のためのトークンを生成および発行し得るものであり、そのトークンは、内でトークンが、要求され、および/または、リソース(例えば、セキュア化されたリソース116)にアクセスするために使用されることを意図された、環境の信用レベルについて指示し得る信用指示をさらに含む。一部の実例において、認可サーバ108は、妥当性確認を行われたアイデンティティ情報に基づいて、認可サーバ108に関係付けられない、および/または、認可サーバ108と提携されない、複数のリソースへのアクセスを提供するように構成され得る。なおも一部の他の実例において、認可サーバ108および/またはリソースサーバ112は、提携されたエンティティを含み得るものであり、および/または、単一のサーバ、もしくは、サーバの集合体上で実現され得る。
【0023】
[0029]リソースサーバ112は、コンピューティングデバイス102のユーザによる、セキュア化されたリソース116へのアクセスをホスティング、管理、および/または提供するための、任意の1つまたは複数のコンピューティングデバイス、サーバ、サービス、ローカルプロセス、遠隔マシン、ウェブサービス、その他を含み得る。実例として、リソースサーバ112は、セキュア化されたリソース116へのアクセスをホスティング、管理、および/または提供し得る、組織の敷地上に配置される、および/もしくは、組織のローカルネットワークに結合されるサーバ、遠隔に配置されるサーバ、クラウドベースのサーバ(例えば、分散された様式での1つまたは複数のサーバ)、または、任意の他のデバイスもしくはサービスを含み得る。セキュア化されたリソース116は、コンピューティングまたは処理リソース、ソフトウェアリソース(例えば、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、その他)、記憶リソース(例えば、物理記憶デバイス、ローカル記憶デバイス、クラウドベースの記憶機構、ハードディスクドライブ、ソリッドステートドライブ、ランダムアクセスメモリ(RAM)デバイス、その他)、データベース、その他を含む、ただしそれらに制限されない、ネットワークに結合される任意のタイプのリソースを含み得る。
【0024】
[0030]実例として、セキュア化されたリソース116は、個人情報、教育情報、健康情報、職業情報、組織または会社情報、バンキングまたは他の金銭的記録、法的文書、出生証明書などの経歴情報、運転者の免許、パスポート、その他などの、極秘である、決定的に重要である、私的である、セキュアである、および/または、それら以外で、公開して広めることを意図されない、任意のデータを記憶するための記憶デバイスを含み得る。これらの例は、単に例解的にというものであり、セキュア化されたリソース116は、ローカルに、および/または、クラウドベースの記憶機構上にということを問わず、任意のデバイス内に記憶され得る、任意の他のタイプのデータ(極秘の情報、および、極秘でない情報の両方を含む)を含み得る。一部の例において、セキュア化されたリソース116は、読み取り/書き込みアクセスが、データの所有者によってのみで提供され得るように、パスワード保護、暗号化(例えば、公開および秘密鍵暗号化、対称鍵、その他)、または、関連性のある技術分野の当業者によって察知されるような任意の他のセキュアな様式によってなどで、セキュアな様式で記憶され得る。
【0025】
[0031]例実施形態において、コンピューティングデバイス102は、ホストコンピューティング環境(例えば、コンピューティングデバイス102の主要なオペレーティングシステムが実行している環境)、および、ホストコンピューティング環境から完全または部分的に隔離され得る、1つまたは複数の他のコンピューティング環境を含む、ただしそれらに制限されない、複数のコンピューティング環境を含み得る。実例として、そのような隔離された環境は、仮想マシン104、および/または、内で実行されるアプリケーションを含み得る。例において、仮想マシン104、および/または、内で実行されるアプリケーションは、隔離された環境内で実行するアプリケーションが、(例えば、ホストコンピューティング環境上に格納される、および/または、ネットワーク110によってアクセス可能な別のデバイス内に格納される)外部リソースにアクセスすることを許可する、隔離障壁内に設けられる「ホール」、または認可トークンがなければ、隔離機構(例えば、ホストオペレーティングシステムによって管理されるコンテナ、その他)によって、隔離された環境の外側のリソースにアクセスすることを制約され得る。
【0026】
[0032]例において、仮想マシン104のアプリケーションが、仮想マシン104の外側のリソースにアクセスすることを所望するとき、アプリケーションは、適切な認可トークンに対して、認可トークンマネージャ106にトークン要求を提供し得る。実現形態によれば、認可トークン106は、信用レベルをトークン要求に割り当てるように構成され得る。信用レベルは、実例として、仮想マシン104、および/または、内で実行されるアプリケーションは、信用されない、および/または、危殆化もしくは侵入工作されることになりやすいということを指示し得る。認可トークンマネージャ106は、認可トークンを取得するために、トークン要求、および、割り当てられた信用レベルをトークンイシュア110に提供し得る。トークンイシュア110は、アイデンティティ情報(例えば、ログインクレデンシャル)の妥当性確認を行い、内に埋め込まれた信用指示を含む認可トークンを生成し得る。トークンイシュア110は、埋め込まれた信用指示を含む認可トークンを認可トークンマネージャ106に提供し得るものであり、その認可トークンマネージャは、認可トークンを、仮想マシン104内で実行する、要求するアプリケーションに提供し得る。
【0027】
[0033]アプリケーションが、認可トークンを使用して、セキュア化されたリソース116などの外部リソースにアクセスすることを試みるとき、リソースマネージャ114は、認可トークン内の信用指示を抽出し得る。かくして、信用指示が、認可トークンは、信用されない(例えば、ランサムウェア攻撃などの、様々なタイプの悪意ある挙動に対して脆弱であり得る)環境内で開始されたということを指示する場合、リソースマネージャ114は、セキュア化されたリソース116を保護するための予防的処置(例えば、バックアップを作成すること)を、アプリケーションにアクセスを提供することより前に実行し得る。
【0028】
[0034]実現形態は、図1において示される例解的な配置構成に制限されないということが留意および理解される。むしろ、ネットワーク110は、任意の様式で結合される、任意の数のコンピューティングデバイスおよび/またはサーバ(マシンおよび/または仮想マシンを含む、ただしそれらに制限されない)を含み得る。実例として、コンピューティングデバイス102は、認可サーバ108、リソースサーバ112、および、セキュア化されたリソース116と別個に示されるが、一実施形態において、コンピューティングデバイス102、認可サーバ108、リソースサーバ112、および/または、セキュア化されたリソース(または、内の構成要素)のうちの1つまたは複数は、同じ場所に配置される、互いから遠隔に配置されることがあり、単一のコンピューティングデバイスまたは仮想マシン上で実現されることがあり、あるいは、図1において明確には例解されない、1つもしくは複数の追加的なコンピューティングデバイスもしくは仮想マシン上で、または、それらのコンピューティングデバイスもしくは仮想マシンにわたって分散されて実現されることがある。認可トークンマネージャ、トークンイシュア110、リソースマネージャ114、および、セキュア化されたリソース116がコンピューティングデバイスにおいて実現され得る配置構成の一例が、下記でより詳細に説明される図6において例解される。
【0029】
[0035]認可トークンマネージャ106は、セキュア化された様式でのリソースへのアクセスを可能にするための様々な手立てで動作し得る。実例として、認可トークンマネージャ106は、図2によって動作し得る。図2は、一例実施形態による、信用指示を含む認可をアプリケーションに提供するための方法のフローチャート200を示す。例解的な目的のために、フローチャート200および認可トークンマネージャ106は、図3に関して、後に続くように説明される。
【0030】
[0036]図3は、一例実施形態による、セキュア化された様式でのネットワークリソースへのアクセスを提供するためのシステム300のブロック線図を示す。図3において示されるように、システム300は、コンピューティングデバイス102、認可サーバ108、およびリソースサーバ112の一例実現形態を含む。コンピューティングデバイス102は、仮想マシン104と、認可トークンマネージャ106とを含む。仮想マシン104は、内で実行されるアプリケーション302を含み得る。認可トークンマネージャ106は、信用レベルアサイナ304と、トークンリクエスタ306とを含み得る。認可サーバ108は、トークンイシュア110を含む。トークンイシュア110は、アイデンティティバリデータ314と、トークンジェネレータ316とを含む。リソースサーバは、リソースマネージャ114を含む。リソースマネージャ114は、リソースアクセスプロバイダ318と、リソースプロテクタ320とを含む。リソースマネージャ114は、セキュア化されたリソース116およびリソーススナップショット322に結合され得る。図3のシステム300において示されるように、認可トークンマネージャ106は、トークン要求308、および、関連付けられる信用レベル310をトークンイシュア110に送信し得る。トークンイシュア110は、内に埋め込まれ得る信用指示を含む認可トークン312を生成し得る。認可トークンマネージャ106は、認可トークンをアプリケーション302に提供し得る。引き続いて、アプリケーション302が、セキュア化されたリソース116にアクセスするために、認可トークンをリソースマネージャ114に提供するとき、リソースマネージャ114は、セキュア化されたリソース116を保護するための予防的処置を、そのようなリソースへのアクセスを提供することより前に実行するように構成され得る。フローチャート200およびシステム300は、後に続くようにさらに詳細に説明される。
【0031】
[0037]図2のフローチャート200は、ステップ202によって始まる。ステップ202において、トークン要求が、リソースにアクセスするために、第1のコンピューティング環境から少なくとも部分的に隔離された第2のコンピューティング環境内で実行するアプリケーションから受信される。実例として、図3を参照すると、信用レベルアサイナ304は、トークン要求324をアプリケーション302から受信するように構成され得る。仮想マシン104は、別のコンピューティング環境(例えば、内でコンピューティングデバイス102の主要なオペレーティングシステムが実行していることがあるホスト環境)から部分的または完全に隔離されるコンピューティング環境を含み得る。例えば、仮想マシン104は、(例えば、ホスト環境内で実行するオペレーティングシステムと同じまたは異なるタイプの)オペレーティングシステム、および/または、内で実行される1つもしくは複数のアプリケーションを含み得る。仮想マシン104は、コンピューティングデバイス102の主たるオペレーティングシステムの上部上作動する。アプリケーション302は、仮想マシン104内にインストールされる、または、遠隔計算もしくはサーバからアクセスされるソフトウェアパッケージ、ウェブアプリケーション、ウェブサービス、あるいは、仮想マシン104上で、または、仮想マシン104の中で実行され得る、任意の他のコードまたはバイナリを含む、ただしそれらに制限されない、仮想マシン104上で実行し得る任意のタイプのアプリケーションを含み得る。例実施形態において、仮想マシン104および/またはアプリケーション302は、仮想マシン104のユーザによって実行されるアプリケーション、アプリケーション302および/もしくは仮想マシン104を潜在的可能性として活用し得る、ユーザによってアクセスされる遠隔サービスもしくはウェブサイトのタイプ、ならびに/または、仮想マシン104もしくはアプリケーション302それ自体の固有の態様を含む、ただしそれらに制限されない、任意の数の要因に起因して、信用されないことがある(例えば、非セキュアである、悪意あるコードの実行の影響を受けやすい、その他であることがある)(例えば、仮想マシン104上で実行するオペレーティングシステムが、全く信用されないと考えられることがある)。
【0032】
[0038]コンピューティングデバイス102は、仮想マシン、および、内で実行されるアプリケーションを含み得るということが、図3において描写されるが、実現形態は、この個別の配置構成に制限されない。実例として、コンピューティングデバイス102上の隔離されたコンピューティング環境は、代わりに、ゲスト、プライベート、または匿名モードで実行されるアプリケーションなどの、コンピューティングデバイス102上で(例えば、ホスト環境の同じ主要なオペレーティングシステム上で)実行するアプリケーション、1つの、または、完全もしくは部分的に隔離された、コンテナ、または、サンドボックス化されたプロセスもしくはアプリケーションを含む配置構成、(同じまたは異なる、回路ボードまたはマザーボード上の)第2の中央処理ユニット(CPU)のコンピューティング環境と別個である、第1のCPUのコンピューティング環境、あるいは、完璧または部分的な隔離境界が、実行するアプリケーションと、ホストコンピューティング環境との間で実現され得る、他のモードまたは配置構成を含み得る。
【0033】
[0039]例において、アプリケーション302は、ユーザ対話によって、または、仮想マシン104上で実行するソフトウェアに応答して、セキュア化されたリソース116などの、仮想マシン104の外側のリソースに接続することを試み得る。実例として、アプリケーション302は、仮想マシン104および/またはコンピューティングデバイス102から遠隔にある、クラウドベースのファイルサーバに接続することを試み得る。そのようなセキュア化されたリソース116にアクセスするために、アプリケーション302は、適切な認可トークンをリソースマネージャ114に提供することを必要とし得る。実現形態において、アプリケーション302によって生成される、そのような認可トークンに対するトークン要求は、トークン要求がホストコンピューティング環境に提供されるようにリダイレクトされ得る。実例として、図3を参照すると、アプリケーション302によって開始される認可トークンに対する要求は、アプリケーションが所定のリソースにアクセスすることに努めているということを指示して、信用レベルアサイナ304にリダイレクトされ得る。信用レベルアサイナ304は、そのような要求を、仮想マシン104と、コンピューティングデバイス102のホストコンピューティング環境との間で実現される隔離障壁内に設けられる、1つまたは複数のホールを通して受信し得る。
【0034】
[0040]アプリケーション302から信用レベルアサイナ304によって受信される認可要求は、中でも、アクセスが要求されるリソースの識別情報(例えば、セキュア化されたリソース116の識別情報)、要求するアプリケーションの識別情報、適切な認可エンティティ(例えば、アイデンティティプロバイダ)に対するログインクレデンシャル、要求されるアクセスのタイプ(例えば、読み取り専用アクセス、読み取り/書き込みアクセス、その他)、トークンが要求される時間の長さ、および、関連性のある技術分野の当業者によって察知されるような、認可トークン要求と関連付けられ得る任意の他の情報を含み得る。
【0035】
[0041]ステップ204において、信用レベルが、トークン要求に割り当てられる。実例として、図3を参照すると、信用レベルアサイナ304は、信用レベルを、仮想マシン104内で実行するアプリケーション302によって受信されるトークン要求に割り当てるように構成され得る。一部の例において、より早期に説明されたように、仮想マシン104、および/または、内で実行する1つもしくは複数のアプリケーションは、信用されないと考えられることがある。そのような例において、信用レベルアサイナ304は、トークン要求を要求するエンティティは(例えば、アプリケーション302および/または仮想マシン104を識別することによって)信用されないということを指示する信用レベルを割り当て得る。一部のさらなる実現形態において、信用レベルアサイナ304は、あらかじめ決定された尺度に基づいて、トークン要求の信用度のレベルを指示し得る、英数字値などの等級を含む信用レベルを割り当て得る。
【0036】
[0042]例において、信用レベルアサイナ304は、様々な手立てで信用レベルを割り当て得る。実例として、信用レベルアサイナ304は、仮想マシン104、仮想マシン104上で実行するオペレーティングシステム、および/または、内で実行していることがある任意の他のアプリケーション302のアイデンティティなどの、隔離されたコンピューティング環境の特性に関する(例えば、データベース、または、他のデータ構造内に記憶される)あらかじめ決定された知識に基づいて、信用レベルを割り当て得る。1つの例解的な例において、信用レベルアサイナ304は、隔離された環境から発出する所定のタイプのトークン要求(または、すべてのトークン要求)は信用されないと自動的に考え、よって、低減された信用レベルを、各々のそのようなトークン要求に割り当て得る。他の例において、信用レベルアサイナ304は、コンピューティングデバイス102上の隔離された環境の一部分としてホスティングされ得る、所定のアプリケーション、オペレーティングシステム、または仮想マシンと関連付けられるトークン要求に、低減された信用レベルを割り当て得る。なおも他の例において、信用レベルアサイナ304は、オンザフライ決定に基づいて、アプリケーション302から受信されるトークン要求に信用レベルを割り当て得る。信用レベルは、数値的な値(例えば、0から10の範囲内であり、「0」は信用がないことを意味し、「10」は最も高い信用を意味する)、テキスト的な値(例えば、「高い」、「中間」、「低い」、「なし」、その他)、英数字値、文字列、その他であることを含んで、任意の形式で指示され得る。
【0037】
[0043]ステップ206において、トークン要求の信用レベルに対応する信用指示を含む認可トークンが取得される。実例として、図3を参照すると、トークンリクエスタ306は、信用指示を含む認可トークン312をトークンイシュア110から取得し得る。トークンリクエスタ306は、様々な手立てで認可トークン312を取得し得る。図3において示される例解的な配置構成において、例えば、トークンリクエスタ306は、信用レベル310を信用レベルアサイナ304から取得する(328)ように構成され得る。トークンリクエスタ306は、1つまたは複数のAPIまたはネットワークコールによって、トークンイシュア110のアイデンティティバリデータ314に、トークン要求308を送信する(330)のみならず、信用レベル310を送信し得る(332)。トークン要求308は、ログインクレデンシャル、アクセスされることになるリソースの識別情報、要求されるアクセスのスコープ、その他などの、先に説明されたような要求されるアクセスと関連付けられる情報を含み得る。トークン要求308は、(例えば、リソースにアクセスするために)アプリケーション302から信用レベルアサイナ304によって受信されるトークン要求、および、関連付けられる信用レベルに対応し得る。実例として、信用レベルが、仮想マシン104および/またはアプリケーション302は信用されないということを指示する信用レベルを割り当てる場合、トークンリクエスタ306は、要求されるリソースへのアクセスを可能にするトークンを取得するために、トークン要求306、および、割り当てられた信用レベル310を、適切なトークン発行サービスに送信し得る。
【0038】
[0044]実現形態において、トークン要求308は、(例えば、異なるデータパケット内で、逐次的に、順序を外れて、その他で)信用レベル310と別個に送信され得る。一部の他の例において、トークン要求308および信用レベル310は、(例えば、同じデータパケットの一部分、または、データパケットのセットとして)一緒に送信され得る。実例として、信用レベル310は、タグ、識別子、マーキング、フラグ、クレーム、メタデータ、要求と関連付けられる新しい、または改められたスコープ、その他として、トークン要求308に添付され、トークン要求308内に含まれ、または、他の形で、トークン要求308とともに送信され得る。実現形態は、これらの例解的な例に制限されず、トークン要求の信用度情報を指示し得る信用レベル310(例えば、仮想マシン104および/またはアプリケーション302の信用レベル)を、トークン要求308とともに、トークンイシュア(例えば、トークンイシュア110)に送信することの任意の他の様式を含み得る。
【0039】
[0045]例において、トークンジェネレータ316は、内でトークンが使用され得る環境の信用レベルについて指示する信用指示を含む認可トークン312を生成し得る。信用指示は、任意の適したフォーマット(例えば、数値的、テキスト的、文字列、その他)を含み得るものであり、認可トークン312の中に含まれ、認可トークン312に添付され、認可トークン312と合体させられ、または、他の形で、認可トークン312と関連付けられ得る。実例として、信用指示は、同様に、認可トークン312の一部分である、または、認可トークン312と一体である、タグ、識別子、マーキング、フラグ、クレーム、メタデータ、新しい、または改められたスコープ、その他を含み得る。例において、認可トークン312がファイルである場合、信用指示は、既存のフィールド内へと、または、ファイルに対する新しいエントリとして書き込まれ得る。信用指示を含むことによって、認可トークン312は、「マーキングされた」とみなされる。よって、実現形態において、認可トークン312は、要求するエンティティはセキュアでないことがあるということを指示する、マーキングされたトークンを含み得る。例において、トークンジェネレータ316は、信用指示を含む認可トークン312を(例えば、ネットワークを介して)トークンリクエスタ306に送信し得る(334)。
【0040】
[0046]ステップ208において、信用指示を含む認可トークンは、第2のコンピューティング環境内で実行するアプリケーションに提供される。実例として、図3を参照すると、トークンリクエスタ306は、信用指示を含む認可トークン312を、仮想マシン104上で実行するアプリケーション302に提供する(326)ように構成され得る。実現形態において、トークンリクエスタ306は、認可トークン312をアプリケーション302に、認可トークンを修正することなく渡し得る。アプリケーション302は、次いで、認可トークン312を使用して、セキュア化されたリソース116(または、コンピューティングデバイス102に対してローカルに格納され得るリソース)などのリソースにアクセスし得る。例において、信用指示は認可トークン312の一部分として含まれるので、アプリケーション302(または、仮想マシン104上で実行していることがある任意の悪意あるコード)は、受信される認可トークンを改変し得ない。換言すれば、認可トークンが、潜在的可能性として危殆化された環境(例えば、仮想マシン104)内で発生する任意のアクティビティによって改変されたならば、改変された認可トークンは、リソースプロバイダのリソースへのアクセスを可能にすることにならず、なぜならば、改変された認可トークンは、リソースプロバイダと認可サービスとの(例えば、図3の例において示されるような、トークンイシュア110とリソースマネージャ114との)間で検証され得ないからである。結果として、信用指示は、修正され得ない様式で認可トークン内へと埋め込まれ得るものであり、そのことによって、認可トークンの完全性を強化する。
【0041】
[0047]下記でより詳細に説明されることになるように、アプリケーション302が、受信される認可トークンを適切なリソースプロバイダに送信すること(336)によって、リソースにアクセスすることを試みるとき、リソースプロバイダは、信用指示を認可トークンから抽出する(例えば、読み取る、またはコピーする)ように構成され、予防的処置が、リソースへのアクセスを提供することより前に実行されるべきであるかどうかを決定され得る。実例として、リソースプロテクタ320が、アプリケーション302および/または仮想マシン104はセキュアでないことがあるということを指示する信用指示を抽出する場合、リソースプロテクタ320は、要求されるリソースのバックアップを(例えば、リソーススナップショット322を作成することによって)作成することを、そのようなリソースに対してアクセスを容認すること(338)に先立って行うことによって、セキュア化されたリソース116を保護するように構成され得る。リソースを保護するための予防的処置の実行を描写する一例フローチャートが、図6に関して、より詳細に下記で説明されることになる。
【0042】
[0048]上記で説明されたように、トークンイシュア110は、様々な手立てで、信用指示を含む認可トークンを生成するように構成され得る。例えば、図4は、一例実施形態による、信用指示を含む認可トークンを生成するための方法のフローチャート400を示す。一実現形態において、フローチャート400の方法は、アイデンティティバリデータ314およびトークンジェネレータ316によって実現され得る。図4は、図3を継続して参照して説明される。他の構造的および動作的な実現形態は、フローチャート400、および、図3のシステム300に関する、後に続く論考に基づいて、関連性のある技術分野の当業者に明らかであることになる。
【0043】
[0049]フローチャート400は、ステップ402によって始まる。ステップ402において、アイデンティティ情報と、トークン要求が、第1のコンピューティング環境から少なくとも部分的に隔離された第2のコンピューティング環境のアプリケーション内で開始されたという指示とを含むトークン要求が受信される。実例として、図3を参照すると、認可サーバ108のアイデンティティバリデータ314は、アイデンティティ情報と、関連付けられる信用レベルを指示する信用レベル310とを含むトークン要求308を受信するように構成され得る。例において、アイデンティティ情報は、アイデンティティバリデータ314が、リソース(例えば、セキュア化されたリソース116)へのアクセスを許可すべきかどうかを決定するために妥当性確認を行い得る、ユーザログインクレデンシャル(例えば、ユーザ名および/またはパスワード)、ユーザエイリアス、アカウント番号、生体情報、または、任意の他の情報もしくはクレデンシャルのうちの1つまたは複数を含み得る。より早期に説明されたように、信用レベル310は、内でトークン要求308が開始された環境の信用レベルに対応する情報を含み得る。実例として、図3を参照すると、信用レベル310は、仮想マシン104内で実行しているアプリケーション302と関連付けられる信用レベルを指示し得る。他の例において、信用レベル310は、要求が、ホストコンピューティング環境と異なる、または、ホストコンピューティング環境の中で実行する、環境内で開始されたということを指示する、フラグまたは他の指示を含み得る。これらの例は、単に例解的であり、信用レベル310は、トークン要求308が、潜在的可能性として信用されない環境から発出したものであり得るということを指示する、任意のタイプの情報(例えば、フラグ、マーキング、クレーム、メタデータ、その他)を含み得る。
【0044】
[0050]ステップ404において、アイデンティティ情報が、妥当性確認を行われる。実例として、図3を参照すると、アイデンティティバリデータ314は、要求するエンティティが、要求されるリソースへのアクセスを可能とする認可トークンを取得することを許可すべきかどうかを決定するために、トークン要求308内で受信されるアイデンティティ情報の妥当性確認を行うように構成され得る。アイデンティティバリデータ314は、データベース(例えば、ユーザもしくはアカウントデータベース、または類するもの)内のアイデンティティ情報を探索し、比較を行うこと、アイデンティティ情報を妥当性確認のために別のサーバまたはサービスに提供すること、その他によってなど、関連性のある技術分野の当業者に察知されることになるような様々な手立てで、アイデンティティ情報の妥当性確認を行い得る。例えば、妥当性確認が成功でない(例えば、正しくないユーザクレデンシャルが受信される)ならば、アイデンティティバリデータ314は、アクセスは許可されるべきでなく、それゆえに、認可トークンはアプリケーション302に提供されることにならないということを決定し得る。妥当性確認が成功裏である場合、アイデンティティバリデータ314は、トークンジェネレータ316が、要求されるリソースにアクセスするためにアプリケーション302に提供され得る適切な認可トークンを生成することを可能とし得る。
【0045】
[0051]ステップ406において、信用指示を含む認可トークンが生成される。実例として、図3を参照すると、トークンジェネレータ316は、内でトークン要求308が開始されたコンピューティング環境の信用レベルについて指示する信用指示を含む認可トークン312を生成するように構成され得る。例において、信用指示は、コンピューティング環境は信用されないということを指示することによってなどで、仮想マシン104、および/または、内で実行するアプリケーション302と関連付けられる信用レベルについて指示し得る。より早期に説明されたように、信用指示は、認可トークン312内に埋め込まれ得るものであり、リソースプロバイダ(例えば、リソースサーバ112)に、認可トークンが、信用されないコンピューティング環境のアプリケーションによって使用され得るということを指示し得る、タグ、マーキング、フラグ、クレーム、その他を含む、任意の適した形式を含み得る。
【0046】
[0052]一部の例実現形態において、信用指示は、各々の受信されるトークン要求に対して異なり得る。実例として、所定のタイプの隔離された環境(例えば、非セキュアであると分かっている、内で実行する所定のアプリケーションおよび/またはオペレーティングシステム)は、他のアプリケーションまたはオペレーティングシステムより信用できないと考えられ得るものであり、それゆえに、そのようなより信用できないアプリケーションまたはオペレーティングシステムに対する信用指示は、さらに低減された信用レベルについて指示し得る。他の例において、信用指示は、アプリケーションが(非セキュアであると分かっていることと対照的に)単に潜在的可能性として信用できると考えられ得る場合などの、異なるタイプの指示を含み得る。この様式において、トークンジェネレータ316は、認可トークン312を、信用されない環境内のアプリケーションの信用レベルについて指示する適切な信用指示によってマーキングし得るものであり、そのことによって、リソースプロバイダは、埋め込まれた信用指示に基づいて、異なる防止的対策を実行することが可能になる。
【0047】
[0053]認可トークン312は、コンピューティングエンティティ(例えば、アプリケーション、サービス、その他)がリソースにアクセスすることを可能にする、任意のタイプのトークンを含み得る。認可トークン312の例は、ウェブまたは他のネットワークアクセス可能リソースへのアクセスを可能にするウェブトークン、アクセストークン、オープン認可(OAuth:Open Authorization)標準によって生成されるトークン、Microsoft(登録商標)WindowsNTトークン、その他を含み、ただしそれらに制限されない。認可トークン312は、個別の要求するアプリケーションに対して、もしくは、個別のリソースに対して生成され得るものであり、または、複数のそのようなアプリケーションと関連付けられる単一のトークンを含み得る。
【0048】
[0054]一部の例実施形態において、トークンジェネレータ316は、さらには、各々の生成された認可トークン312を、適した記憶デバイス内に(ローカルに、または、1つもしくは複数のクラウドベースの記憶機構内に、のいずれかで)記憶するように構成され得る。よって、アプリケーション302が、認可トークン312をリソースマネージャ114に提供することによって、リソースにアクセスすることを試みるとき、リソースプロテクタ320は、要求されるリソースへのアクセスを容認することより前に、アプリケーション302から受信されるトークンの真正性を決定するために、認可サーバ108において記憶される認可トークンを取得し得る。他の実例において、トークンジェネレータ316は、さらには、トークンジェネレータ316が、同じリソースにアクセスするためにアプリケーション302に対する対応する認可トークンを先に生成した場合などに、先に生成され期限切れでないトークン(信用指示を含む)をトークンリクエスタ306に再送信するように構成され得る。
【0049】
[0055]ステップ408において、信用指示を含む認可トークンは、第2のコンピューティング環境内で実行するアプリケーションに提供される。実例として、図3を参照すると、トークンジェネレータ316は、認可トークン312を送信することを、(例えば、隔離境界を通して認可トークン302を渡すことによって)アプリケーション302に提供するためにトークンリクエスタ306に対して、および/または、(例えば、仲介者としてのトークンリクエスタ306にトークンを送信することなく)アプリケーション302に直接的に認可トークン312を提供することによって行うように構成され得る。上記で説明されたように、アプリケーション302は、認可トークン312を使用して、要求されるリソースにアクセスし得る。
【0050】
[0056]本明細書において説明されるように、リソースマネージャ114は、認可トークンを受信することに応答して、セキュア化されたリソース116を保護するように構成され得る。例えば、図5は、一例実施形態による、リソースを保護するための予防的処置を実行するための方法のフローチャートを示す。一実現形態において、フローチャート500の方法は、リソースアクセスプロバイダ318およびリソースプロテクタ320によって実現され得る。図5は、図3を継続して参照して説明される。他の構造的および動作的な実現形態は、フローチャート500、および、図3のシステム300に関する、後に続く論考に基づいて、関連性のある技術分野の当業者に明らかであることになる。
【0051】
[0057]フローチャート500は、ステップ502によって始まる。ステップ502において、認可トークンが、コンピューティング環境内で実行するアプリケーションから受信される。実例として、図3を参照すると、リソースプロテクタ320は、認可トークン312を、ネットワーク110によって、仮想マシン104内で実行するアプリケーション302から受信するように構成され得る。本明細書において説明されるように、認可トークン312は、さらには、認可トークン312と関連付けられる環境の信用レベルについて指示する信用指示を含み得る。この例において、それゆえに、信用指示は、仮想マシン104内のコンピューティング環境の信用レベルについて指示し得るものであり、および/または、アプリケーション302は、実行していることがある。
【0052】
[0058]しかしながら、一部の他の例実施形態において、認可トークン312は、トークン要求が、信用される環境内で(例えば、コンピューティングデバイスの主要なオペレーティングシステム上で実行するアプリケーションから)発出した場合などに、信用指示を含まないことがあるということが特記される。実例として、信用されるアプリケーション(または、信用される環境内で実行するアプリケーション)が認可トークンを要求するならば、生成される認可は、そのようなアプリケーションに対する信用指示を含まないことがある。かくして、一部の例において、リソースプロテクタ320は、さらには、信用指示が、受信される認可トークン内に存在するかどうかを決定するように構成され得る。
【0053】
[0059]アプリケーション302が、より早期に説明されたように、認可トークン312を取得する後、アプリケーション302は、リソースサーバ112などの適切なリソースプロバイダと対話することによって、容認された認可トークンのスコープと一致したリソースにアクセスすることを試み得る。例において、アプリケーション302は、さらには、リソースの試みられるアクセスと連関して、認可トークン312をリソースプロテクタ320に提供し得る。リソースプロテクタ320は、アプリケーション302から受信される認証トークンが、妥当である、および/または、期限切れでないかどうかを決定するために、認可サーバ108と対話することによってなどで、先に説明されたのと同様の様式で、認可トークン312の真正性を検証し得る。
【0054】
[0060]ステップ504において、信用指示が、認可トークンから抽出される。実例として、リソースプロテクタ320は、認可トークン312を、それから信用指示を抽出するためにパースするように構成され得る。実例として、信用指示が、識別子、マーキング、フラグ、クレーム、メタデータ、その他として認可トークン312内に埋め込まれる場合、リソースプロテクタ320は、そのような指示を抽出し得る。一部の実現形態において、リソースプロテクタ320は、さらには、(例えば、受信されるトークンの真正性が確認されるときに)信用指示を認可サーバ108から取得し得る。
【0055】
[0061]ステップ506において、予防的処置が、リソースを保護するために実行されるべきであるということが決定される。実例として、図3を参照すると、リソースプロテクタ320は、認可トークンを受信し、信用指示を抽出することに応答して、予防的処置が、リソースを保護するために実行されるべきであるということを決定するように構成され得る。例えば、信用指示が、認可トークン312が受信された際の発信元の環境は信用できないということを指示する場合、リソースプロテクタ320は、1つまたは複数の予防的処置が、セキュア化されたリソース116を保護するために実行されるべきであるということを決定し得る。予防的処置は、セキュア化されたリソース116に対する、潜在的可能性として悪意ある改変を防止する(例えば、先手を打って)、または、それらの改変の被害を軽減するために実行される、任意のタイプの処置を含み得る。
【0056】
[0062]例えば、抽出される信用指示が、認可トークン312が受信された際の発信元のコンピューティング環境は信用できないということを指示する場合、リソースプロテクタ320は、ユーザのデータが、損傷、危殆化、および/または侵入工作されることを防止するための所定の処置を履行するように構成され得る。一部の例において、リソースプロテクタ320は、複数の予防的処置が実行されるべきであるということを決定し得る。一部の他の実例において、リソースプロテクタ320は、予防的処置は、認証トークンが、リソースサーバ112によって信用されると分かっているコンピューティング環境から受信された場合などに、実行されることを必要としないということを決定し得る。なおも一部の他の実例において、リソースプロテクタ320は、さらには、同じ認可トークンを受信することに応答して、アプリケーション302に提供された先のアクセスに基づいて、リソースプロテクタ320が、アプリケーション302は悪意あるものではないと考える場合などに、予防的処置を実行しないように決定し得る。
【0057】
[0063]ステップ508において、予防的処置が、認可トークンを受信することに応答して、リソースを保護するために実行される。実例として、図3を参照すると、リソースプロテクタ320は、認可トークン312をアプリケーション302から受信することに応答して、セキュア化されたリソース116を保護するための1つまたは複数の予防的処置を実行するように構成され得る。例において、セキュア化されたリソース116を保護するために実行される予防的処置のタイプ(または、複数のタイプ)は、アクセスされているリソースのタイプ、アクセスのスコープ(例えば、読み取り専用アクセス、リソースを改変すること、その他)、および/または、認可トークン312内の信用指示によって指示され得る信用レベルを含む、要因の組み合わせに基づくものであり得る。実例として、アクセスされるリソースが、機密的および/または重要と識別されているならば、リソースプロテクタ320は、リソースを保護するための1つまたは複数のセキュリティ対策を履行するように構成され得る。別の例において、抽出される信用指示が、認可トークン312が受信された際の発信元のコンピューティング環境(例えば、アプリケーション302)は信用されないと分かっているということを指示するならば、リソースプロテクタ320は、セキュア化されたリソース116を保護するための1つまたは複数の高められたセキュリティ対策を実行し得る。
【0058】
[0064]1つの例において、リソースプロテクタ320は、アプリケーション302は信用されるべきではないということを指示する認可トークン312を受信することに応答して、リソーススナップショット322を自動的に作成するように構成され得る。リソーススナップショット322は、実例として、認可トークン312によってでさえ、アプリケーション302に対してアクセス不可能である、セキュア化されたリソース116のバックアップコピーを含み得る。一部の実現形態において、リソースプロテクタ320は、認可トークン312のアクセスのスコープ全体と一致したスナップショットを作成すること(例えば、認可トークン312が広範囲であるならば、ユーザのファイルのすべてをコピーすること)、および/または、ファイル単位を基礎としてリソースをコピーすること(例えば、アプリケーション302がアクセスすることを試みる個々のファイルのみをコピーすること)によってということを含む、様々な手立てで、セキュア化されたリソース116のリソーススナップショット322を生成し得る。
【0059】
[0065]リソーススナップショット322が、一部の例において、セキュア化されたリソース116に対してローカルに記憶され得る一方で、リソーススナップショット322は、さらには、アプリケーション302、および/または、任意の他の、潜在的可能性として信用されないアプリケーションに対してアクセス可能でない様式で、遠隔に(例えば、別のサーバ上に)記憶され得るということが思索される。一部の実現形態において、リソースプロテクタ320は、潜在的な危殆化の事象において、認可されないアクセスを防止することによって、セキュリティをさらに強化するために、リソーススナップショット322を暗号化する(または、さらに暗号化する)ように構成され得る。
【0060】
[0066]セキュア化されたリソース116のバックアップコピーの作成は、リソースプロテクタ320がリソースを保護するために実行し得る予防的対策の単に1つの例解的な例である。リソースプロテクタ320は、さらには、認可トークン312内で指示されるスコープより制限されるアクセスのスコープを認可すること(例えば、記憶デバイス上のアクセスされるファイルの読み取り専用アクセス、金融機関からの払い戻しを防止すること、その他)、(例えば、数日、数時間、数分、数秒、その他内の)所定の時間期間であって、その後でアクセスが終結させられ得る、時間期間に対してのみアクセスを許可すること、(例えば、セキュア化されたリソースが、銀行または金銭的情報など、何らかの潜在的可能性として信用されないアクセスを可能とするには、あまりにも機密的または重要と考えられ得る場合に)アクセスを全体的に拒否すること、および/または、1つもしくは複数の追加的もしくは代替的な認可手続を要することを含む、ただしそれらに制限されない、リソーススナップショット322を作成することに加えての、または、そのことに対する代替案としての、1つまたは複数の他の対策を実行し得る。
【0061】
[0067]一部の他の実例において、リソースプロテクタ320は、信用指示を含む認可トークンを受信することに応答して、強化されたアイデンティティ認証を実行し得る。例えば、リソースプロテクタ320は、セキュア化されたリソース116へのアクセスを容認することより前に、コンピューティングデバイス102のユーザが、追加的な認証手続を実行し、または、同じ認証手続を、信用される環境から(例えば、信用される主要なオペレーティングシステムの中で実行するアプリケーションから)再実行し、多要素手続(例えば、モバイルデバイスに送信されるランダムに生成されたコード、電子メールアカウント、その他を確認すること)を実行することを、リソースへのアクセスを容認することより前に、認証トークン312が、正当なアプリケーションによって開始されたということを確認するために行うということを要し得る。
【0062】
[0068]一部のさらなる実現形態において、リソースプロテクタ320は、さらには、本明細書において説明される認証トークンによって、異常なアクティビティを検出するように構成され得る。実例として、リソースプロテクタ320が、アプリケーション302から、個別の認可トークン312と関連付けられる異常な数のアクセス要求(例えば、しきい値の値より上の、または、所定の時間期間内の、いくつものアクセス要求)を受信しているならば、リソースプロテクタ320は、アプリケーション302は、潜在的可能性として悪意あるアクティビティに関与している、または、他の形で、危殆化される可能性があるということを推論し得る。そのような一実例において、リソースプロテクタ320は、追加的な予防的対策として、アプリケーション302からのアクセスする要求にサービス提供することを中止するように、追加的な予防的対策として決定し得る。
【0063】
[0069]一部の他の実例において、リソースプロテクタ320は、さらには、認可トークン312に関係付けられない1つまたは複数のリソースに関する防止的処置を実行し得る。実例として、リソースプロテクタ320が、潜在的可能性として信用できないコンピューティング環境から要求を受信するならば、リソースプロテクタ320は、セキュリティをさらに強化するために、高められた機密性または重要性を含み得る関係付けられないファイルを(例えば、暗号化すること、ロックダウンすること、よりセキュアな場所に移動させること、その他によって)自動的に保護するように構成され得る。この様式において、所定の悪意あるコードが、セキュア化されたリソース116を危殆化し得るとしても、悪意あるコードの動きは、それでもなお制限され得るものであり、なぜならば、リソースプロテクタ320は、リソーススナップショット322のみではなく、さらには、同じサーバ上に存在し得る、または、同じサーバによってアクセス可能であり得る他のデータに、コードがアクセスすることを防止し得るからである。
【0064】
[0070]ステップ510において、コンピューティング環境内で実行するアプリケーションによる、リソースへのアクセスが容認される。実例として、図3を参照すると、リソースアクセスプロバイダ318は、コンピューティング環境(すなわち、潜在的可能性として信用されない環境)内で実行するアプリケーション302による、セキュア化されたリソース116へのアクセスを容認するように構成され得る。一部の例において、リソースアクセスプロバイダ318によって容認されるアクセスのタイプは、セキュア化されたリソース116を保護するために実行される予防的処置に基づくものであり得る。実例として、リソースプロテクタ320が、アプリケーション302によってアクセス不可能であるリソーススナップショット322を作成したならば、リソースアクセスプロバイダ318は、セキュア化されたリソース116への完全な読み取り/書き込みアクセスを許可され得る。
【0065】
[0071]他の例において、バックアップコピーが作成されないならば、リソースアクセスプロバイダ318は、セキュア化されたリソース116が、潜在的可能性として悪意あるアクティビティによって影響を及ぼされることを防止するために、読み取り専用アクセスなどの、より制限されるアクセスをアプリケーション302に容認し得る。実例として、リソースアクセスプロバイダ318は、トークン内に含まれる信用指示に基づいて、ユーザのファイル空間内の既存のコンテンツを開く、および/または、ユーザのファイル空間内の記憶のために新しいコンテンツを生成するためのアクセスをアプリケーション302に容認し、一方で、アプリケーション302が既存のコンテンツを修正または削除することを防止するように構成され得る。一部の他の実現形態において、リソースアクセスプロバイダ318は、さらには、アプリケーション302によって生成される任意の新しいコンテンツに対するマーキングまたはタグを実現するように構成され得るものであり、そのことによって、アプリケーションは、新しいコンテンツ(コンテンツの各々の項目がマーキングまたはタグによって識別される)を生成するのみではなく、新しく生成されたコンテンツを、コンテンツのマーキングされた項目に基づいて修正または削除し得る。さらなる実現形態において、そのようなマーキングまたはタグは、例えば、あらかじめ決定された時間期間の経過の後に、または、完全アクセス認可トークン(例えば、信用される環境内で実行するアプリケーションに容認されるトークン)が、マーキングされたコンテンツにアクセスするときに、自動的に取り除かれ得る。
【0066】
[0072]リソースアクセスプロバイダ318は、さらには、アプリケーション302が(アプリケーション302から保護された様態で保たれ得る、セキュア化されたリソース116の代わりに)リソーススナップショット322にアクセスすることを許可するように構成され得る。どちらの実例においても、リソースプロテクタ320は、アプリケーション302によるアクセスが悪意あるものでなかったということの決定を基に、および/または、時間のあらかじめ決定された経過を基に、バックアップコピーを自動的に削除するように構成され得る。アプリケーション302が、(例えば、ランサムウェアまたは類するものに起因して)セキュア化されたリソース116を、悪意をもって改変したということを、リソースプロテクタ320が通知され得る場合などの、他の実例において、リソースプロテクタ320は、セキュア化されたリソース116をリソーススナップショット322から復元するように構成され得る。結果として、信用されないアプリケーションが、ユーザのファイルを暗号化する、または、他の形で改変するために、ランサムウェアを注入することを試みるとしても、ファイルのバックアップが容易に復元され得るものであり、そのことによって、そのような悪意ある挙動の害が最小化する。
【0067】
[0073]図3において説明される配置構成は、単に例解的であり、実現形態は、認可トークンマネージャ106、トークンイシュア110、リソースマネージャ114、セキュア化されたリソース116、およびリソーススナップショット322のうちの1つまたは複数が、コンピューティングデバイス102に対してローカルに実現され得る配置構成を含む、様々な他のタイプの配置構成を含み得るということが留意および理解される。例えば、図6は、一例実施形態による、セキュア化された様式でのローカルリソースへのアクセスを提供するためのシステム600のブロック線図を示す。システム600は、コンピューティングデバイス602を含む。コンピューティングデバイス102と同様に、コンピューティングデバイス602は、複数のコンピューティング環境を含み得る。実例として、コンピューティングデバイス602は、内で、デスクトップおよび/またはモバイルオペレーティングシステムを含む主要なオペレーティングシステム(例えば、Microsoft(登録商標)Windows、Apple(登録商標)macOS、Apple(登録商標)iOS、Google(登録商標)Android)が実行していることがある、コンピューティング環境を含み得る。コンピューティングデバイス602は、さらには、仮想マシン104、および、内で実行するアプリケーション(例えば、アプリケーション302)を含み得る、隔離された環境などの、本明細書において説明されるような1つまたは複数の他のコンピューティング環境を含み得る。
【0068】
[0074]図6の例配置構成において、第1のコンピューティング環境(例えば、隔離された環境をホスティングし得るコンピューティング環境)が、認可トークンマネージャ106、トークンイシュア110、リソースマネージャ114、セキュア化されたリソース116、およびリソーススナップショット322のうちの1つまたは複数を含み得る。実例として、そのような構成要素のうちの1つまたは複数が、1つまたは複数のネットワークエンティティ上で実現されることの代わりに、そのような構成要素は、コンピューティングデバイス602に対してローカルに実現的であり得る。例えば、トークンリクエスタ306は、コンピューティングデバイス602上のローカルアクティビティに対する認可トークンを管理するように構成されるアイデンティティバリデータ314に、トークン要求(例えば、NTトークンまたは類するものに対する要求)を提供し得る。一部の例実現形態において、アイデンティティバリデータ314および/またはトークンジェネレータ316は、コンピューティングデバイス602の主要なオペレーティングシステムの一部分、ファイルシステムマネージャとして、および/または、それら上で実行する任意の他のアプリケーションとして実現され得るものであり、そのことによって、ローカルに記憶されるデータ(または、ショートカットもしくは類するものによってなどで、ローカル対話によってアクセス可能であり得る、遠隔に記憶されるデータ)は、ローカル認可トークンによって管理され得る。換言すれば、トークンジェネレータ316は、(隔離された環境内でホスティングされ得る任意のアプリケーションを含む)コンピューティングデバイス602上で実行するアプリケーションが、セキュア化されたリソース116などのローカルリソースにアクセスすることを許可する認可トークンを生成および提供するように構成され得る。
【0069】
[0075]よって、アプリケーション302が、トークンを要求し、トークンリクエスタ306が、トークン要求308、および、割り当てられた信用レベル310をトークンイシュア110に提供するとき、トークンジェネレータ316は、先に説明されたのと同様の様式で、信用レベル310について指示する信用指示を含む認可トークンを生成し得る。認可トークンは、実例として、ユーザ情報(例えば、アドミニストレータ、ゲスト、その他としてのユーザの識別情報)、許可レベル(例えば、読み取り専用、読み取り/書き込みアクセス、その他)、要求されるリソースの識別情報、その他などの、認可されるアクセスと関連付けられる情報を含み得る。トークンリクエスタ306は、信用指示を含む認可トークン(例えば、マーキングされた認可トークン)をアプリケーション302に提供して、アプリケーションが、仮想マシン104の外側で利用可能であり得るローカルリソースにアクセスすることを許可し得る。
【0070】
[0076]よって、アプリケーション302が、セキュア化されたリソース116などの、隔離されたコンピューティング環境の外側のリソースにアクセスする、または、そのリソースを改変することを試みるとき、リソースアクセスプロバイダ318は、アプリケーション302によって提供される認可トークンから信用指示を抽出し、アプリケーション302は信用されないことがあるということを決定し得る。アプリケーション302は信用されないことがあるということを指示する、そのようなマーキングされた認可要求を受信することに応答して、リソースプロテクタ320は、セキュア化されたリソース116のバックアップコピーを含むリソーススナップショット322を作成することなどの、セキュア化されたリソース116を保護するための、主要なオペレーティングシステムを含むコンピューティング環境内での1つまたは複数の予防的処置を、セキュア化されたリソース116へのアクセスを可能とすることより前に実行し得る。より早期に説明されたように、リソースプロテクタ320は、さらには、セキュア化されたリソース116への制限されるアクセス(例えば、読み取り専用アクセス)を可能とすること、セキュア化されたリソース116が暗号化される(または、さらに暗号化される)ことを防止すること、強化された認可を要すること、または、当業者によって察知されることになるような任意の他の予防的処置を含む、ただしそれらに制限されない、リソーススナップショット322を作成することに加えての、または、そのことに対する代替案としての、任意の他のタイプの予防的処置を含み得る。
【0071】
[0077]隔離された環境は、図3および6に関して説明されるような仮想マシン104を含むことを必要としないということが留意および理解される。実例として、アプリケーション302は、さらには、部分的または完璧な隔離境界を含み得る、ホストコンピューティング環境上で実行する、任意のタイプのアプリケーション(例えば、ウェブブラウザ)を含み得る。かくして、隔離された環境が、ローカルに、または遠隔に、のいずれかで格納されるリソースにアクセスし得る別のアプリケーションを含む場合でも、実現形態は、それでもなお、そのようなリソースが、(例えば、バックアップコピーを作成すること、アクセスを制約すること、その他によって)よりセキュアな様式でアクセスされることを可能にすることを、そのようなアクセスに対して、本来の様態に向けて使用される認可トークンを、本明細書において説明されるように、アクセスする環境の信用情報によってマーキングすることによって行い得る。
【0072】
III.例モバイルおよび据置型デバイス実施形態
[0078]コンピューティングデバイス102、仮想マシン104、認可トークンマネージャ106、認可サーバ108、トークンイシュア110、リソースサーバ112、リソースマネージャ114、セキュア化されたリソース116、信用レベルアサイナ304、トークンリクエスタ306、アイデンティティバリデータ314、トークンジェネレータ316、リソースアクセスプロバイダ318、リソースプロテクタ320、リソーススナップショット322、フローチャート200、フローチャート400、および/またはフローチャート500は、物理的/ハードウェアベースのコンピュータ可読記憶媒体内に記憶され、1つもしくは複数のプロセッサ内で実行されるように構成される、コンピュータプログラムコード/命令として実現されること、または、ハードウェア論理/電気回路網(例えば、トランジスタ、論理ゲート、演算増幅器、1つまたは複数の特定用途向け集積回路(ASIC)、1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)から成り立つ電気回路)として実現されることなどで、ハードウェア、または、ソフトウェアおよび/もしくはファームウェアと組み合わされたハードウェアにおいて実現され得る。例えば、コンピューティングデバイス102、仮想マシン104、認可トークンマネージャ106、認可サーバ108、トークンイシュア110、リソースサーバ112、リソースマネージャ114、セキュア化されたリソース116、信用レベルアサイナ304、トークンリクエスタ306、アイデンティティバリデータ314、トークンジェネレータ316、リソースアクセスプロバイダ318、リソースプロテクタ320、リソーススナップショット322、フローチャート200、フローチャート400、および/またはフローチャート500のうちの1つまたは複数は、別個に、または、SoC内で一緒に実現され得る。SoCは、プロセッサ(例えば、中央処理ユニット(CPU)、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、その他)、メモリ、1つもしくは複数の通信インターフェイス、および/または、さらなる回路のうちの1つまたは複数を含む集積回路チップを含み得るものであり、任意選択で、機能を実行するために、受信されるプログラムコードを実行し、および/または、埋め込まれたファームウェアを含み得る。
【0073】
[0079]図7は、例実施形態が実現され得るコンピューティングデバイス700の例示的な実現形態を描写する。例えば、コンピューティングデバイス102、仮想マシン104、認可トークンマネージャ106、認可サーバ108、トークンイシュア110、リソースサーバ112、リソースマネージャ114、セキュア化されたリソース116、信用レベルアサイナ304、トークンリクエスタ306、アイデンティティバリデータ314、トークンジェネレータ316、リソースアクセスプロバイダ318、リソースプロテクタ320、および/またはリソーススナップショット322のうちの任意のものが、コンピューティングデバイス700の1つもしくは複数の特徴、および/または、代替的な特徴を含む、据置型またはモバイルコンピュータ実施形態において、コンピューティングデバイス700と同様の1つまたは複数のコンピューティングデバイスにおいて実現され得る。本明細書において提供されるコンピューティングデバイス700の説明は、例解の目的のために提供され、制限的であることを意図されない。例実施形態は、関連性のある技術分野の当業者に知られることになるように、さらなるタイプのコンピュータシステムにおいて実現され得る。
【0074】
[0080]図7において示されるように、コンピューティングデバイス700は、プロセッサ回路702と呼称される1つまたは複数のプロセッサと、システムメモリ704と、システムメモリ704を含む様々なシステム構成要素をプロセッサ回路702に結合するバス706とを含む。プロセッサ回路702は、1つまたは複数の、物理的ハードウェア電気回路デバイス要素、ならびに/または、中央処理ユニット(CPU)、マイクロコントローラ、マイクロプロセッサ、および/もしくは、他の物理的ハードウェアプロセッサ回路としての集積回路デバイス(半導体材料チップまたはダイ)において実現される、電気および/または光学回路である。プロセッサ回路702は、オペレーティングシステム730、アプリケーションプログラム732、他のプログラム734、その他、のプログラムコードなどの、コンピュータ可読媒体内に記憶されるプログラムコードを実行し得る。バス706は、種々のバスアーキテクチャのうちの任意のものを使用する、メモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、および、プロセッサまたはローカルバスを含む、いろいろなタイプのバス構造のうちの任意のもののうちの1つまたは複数を表す。システムメモリ704は、読み取り専用メモリ(ROM)708と、ランダムアクセスメモリ(RAM)710とを含む。基本入出力システム712(BIOS)が、ROM708内に記憶される。
【0075】
[0081]コンピューティングデバイス700は、さらには、後に続くドライブのうちの1つまたは複数を有する:ハードディスクから読み取る、および、ハードディスクに書き込むためのハードディスクドライブ714、リムーバブル磁気ディスク718から読み取る、または、リムーバブル磁気ディスク718に書き込むための磁気ディスクドライブ716、ならびに、CD ROM、DVD ROM、もしくは、他の光学媒体などのリムーバブル光学ディスク722から読み取る、または、そのリムーバブル光学ディスク722に書き込むための光学ディスクドライブ720。ハードディスクドライブ714、磁気ディスクドライブ716、および光学ディスクドライブ720は、それぞれ、ハードディスクドライブインターフェイス724、磁気ディスクドライブインターフェイス726、および光学ドライブインターフェイス728によってバス706に接続される。ドライブ、および、それらの関連付けられるコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および、コンピュータのための他のデータの不揮発性記憶を提供する。ハードディスク、リムーバブル磁気ディスク、およびリムーバブル光学ディスクが説明されるが、フラッシュメモリカード、デジタルビデオディスク、RAM、ROM、および、他のハードウェア記憶媒体などの、他のタイプのハードウェアベースのコンピュータ可読記憶媒体が、データを記憶するために使用され得る。
【0076】
[0082]いくつものプログラムモジュールが、ハードディスク、磁気ディスク、光学ディスク、ROM、またはRAM上に記憶され得る。これらのプログラムは、オペレーティングシステム730、1つまたは複数のアプリケーションプログラム732、他のプログラム734、およびプログラムデータ736を含む。アプリケーションプログラム732、または、他のプログラム734は、例えば、コンピューティングデバイス102、仮想マシン104、認可トークンマネージャ106、認可サーバ108、トークンイシュア110、リソースサーバ112、リソースマネージャ114、セキュア化されたリソース116、信用レベルアサイナ304、トークンリクエスタ306、アイデンティティバリデータ314、トークンジェネレータ316、リソースアクセスプロバイダ318、リソースプロテクタ320、リソーススナップショット322、フローチャート200、フローチャート400、および/またはフローチャート500(フローチャート200、400、または500の任意の適したステップを含む)、および/または、本明細書において説明されるさらなる例実施形態を実現するためのコンピュータプログラム論理(例えば、コンピュータプログラムコードまたは命令)を含み得る。
【0077】
[0083]ユーザは、キーボード738およびポインティングデバイス740などの入力デバイスによって、指令および情報をコンピューティングデバイス700内へと入れ得る。他の入力デバイス(示されない)は、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、タッチ画面および/もしくはタッチパッド、音声入力を受けるための音声認識システム、ジェスチャ入力を受けるためのジェスチャ認識システム、または類するものを含み得る。これらおよび他の入力デバイスは、しばしば、バス706に結合されるシリアルポートインターフェイス742によってプロセッサ回路702に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェイスによって接続され得る。
【0078】
[0084]表示画面744が、さらには、ビデオアダプタ746などのインターフェイスによってバス706に接続される。表示画面744は、コンピューティングデバイス700の外部にあり、または、コンピューティングデバイス700内に組み込まれ得る。表示画面744は、情報を表示し、ならびに、(例えば、タッチ、指ジェスチャ、仮想キーボード、その他によって)ユーザ指令、および/または、他の情報を受けるためのユーザインターフェイスであり得る。表示画面744に加えて、コンピューティングデバイス700は、スピーカおよびプリンタなどの、他の周辺出力デバイス(示されない)を含み得る。
【0079】
[0085]コンピューティングデバイス700は、ネットワークによる通信を確立するための、アダプタもしくはネットワークインターフェイス750、モデム752、または、他の手段によって、ネットワーク748(例えば、インターネット)に接続される。内部または外部にあり得るモデム752は、図7において示されるように、シリアルポートインターフェイス742によってバス706に接続され得るものであり、または、パラレルインターフェイスを含む、別のインターフェイスタイプを使用してバス706に接続され得る。
【0080】
[0086]本明細書において使用される際、用語「コンピュータプログラム媒体」、「コンピュータ可読媒体」、および「コンピュータ可読記憶媒体」は、ハードディスクドライブ714と関連付けられるハードディスク、リムーバブル磁気ディスク718、リムーバブル光学ディスク722などの物理的ハードウェア媒体、RAM、ROM、フラッシュメモリカード、デジタルビデオディスク、zipディスク、MEM、ナノテクノロジーベースの記憶デバイスなどの他の物理的ハードウェア媒体、および、さらなるタイプの物理的/有形ハードウェア記憶媒体を指すために使用される。そのようなコンピュータ可読記憶媒体は、通信媒体と区別され、重複しない(通信媒体を含まない)。通信媒体は、搬送波などの変調されるデータ信号の形で、コンピュータ可読命令、データ構造、プログラムモジュール、または、他のデータを具現化する。用語「変調されるデータ信号」は、信号であって、その信号の特性のうちの1つまたは複数が、その信号において情報を符号化するような様式でセットまたは変更される、信号を意味する。制限ではなく例として、通信媒体は、音響、RF、赤外、および、他のワイヤレス媒体などのワイヤレス媒体、ならびに、有線媒体を含む。コンピュータ可読記憶媒体に向けられる実施形態と別個であり重複しない、例実施形態が、さらには、そのような通信媒体に向けられる。
【0081】
[0087]上記で特記されたように、コンピュータプログラムおよびモジュール(アプリケーションプログラム732、および、他のプログラム734を含む)は、ハードディスク、磁気ディスク、光学ディスク、ROM、RAM、または、他のハードウェア記憶媒体上に記憶され得る。そのようなコンピュータプログラムは、さらには、ネットワークインターフェイス750、シリアルポートインターフェイス742、または、任意の他のインターフェイスタイプによって受信され得る。そのようなコンピュータプログラムは、アプリケーションによって実行またはロードされるときに、コンピューティングデバイス700が、本明細書において説明される例実施形態の特徴を実現することを可能にする。よって、そのようなコンピュータプログラムは、コンピューティングデバイス700のコントローラを表す。
【0082】
[0088]例実施形態が、さらには、任意のコンピュータ可読媒体上に記憶されるコンピュータコードまたは命令を含むコンピュータプログラム製品に向けられる。そのようなコンピュータプログラム製品は、ハードディスクドライブ、光学ディスクドライブ、メモリデバイスパッケージ、ポータブルメモリスティック、メモリカード、および、他のタイプの物理的記憶ハードウェアを含む。
【0083】
IV.例実施形態
[0089]信用指示を伴う認可トークンを提供するためのコンピューティングデバイス内のシステムが、本明細書において説明される。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されるように構成されるプログラムコードを記憶する、1つまたは複数のメモリデバイスであって、プログラムコードは、アイデンティティバリデータであって、トークン要求を、第1のコンピューティング環境の認可トークンマネージャから受信することであって、そのトークン要求は、アイデンティティ情報と、トークン要求が、第1のコンピューティング環境から少なくとも部分的に隔離された第2のコンピューティング環境内で実行するアプリケーション内で開始されたという指示とを含む、受信することと、アイデンティティ情報の妥当性確認を行うこととを行うように構成される、アイデンティティバリデータと、トークンジェネレータであって、第2のコンピューティング環境の信用レベルについて指示する信用指示を含む認可トークンを生成することと、信用指示を含む認可トークンを第1のコンピューティング環境に送信することとを行うように構成される、トークンジェネレータとを含む、1つまたは複数のメモリデバイスとを含む。
【0084】
[0090]前述のシステムの1つの実現形態において、信用指示は、第2のコンピューティング環境内で実行するアプリケーションは信用されないという指示を含む。
[0091]前述のシステムの別の実現形態において、第2のコンピューティング環境は、第1のコンピューティング環境内でホスティングされる仮想マシンを含む。
【0085】
[0092]前述のシステムの別の実現形態において、認可トークンは、第2のコンピューティング環境内で実行するアプリケーションが、第1のコンピューティング環境内のセキュア化されたリソースにアクセスすることを許可するように構成される。
【0086】
[0093]前述のシステムの別の実現形態において、認可トークンは、第2のコンピューティング環境内で実行するアプリケーションが、ネットワークを介して、セキュア化されたリソースにアクセスすることを許可するように構成される。
【0087】
[0094]前述のシステムの別の実現形態において、第2のコンピューティング環境内で実行するアプリケーションによる、セキュア化されたリソースのアクセスは、セキュア化されたリソースの読み取り専用アクセスを含む。
【0088】
[0095]セキュア化された様式でのリソースへのアクセスを可能にするための方法が、本明細書において開示される。方法は、トークン要求を、リソースにアクセスするために、第1のコンピューティング環境から少なくとも部分的に隔離された第2のコンピューティング環境内で実行するアプリケーションから受信するステップと、信用レベルをトークン要求に割り当てるステップと、信用指示を含む認可トークンを取得するステップであって、信用指示は、トークン要求の信用レベルに対応する、取得するステップと、信用指示を含む認可トークンを、第2のコンピューティング環境内で実行するアプリケーションに提供するステップとを含む。
【0089】
[0096]前述の方法の1つの実現形態において、認可トークンを取得するステップは、トークン要求、および、割り当てられた信用レベルをトークンイシュアに送信するステップと、信用レベルに対応する信用指示を含む認可トークンをトークンイシュアから受信するステップとを含む。
【0090】
[0097]前述の方法の別の実現形態において、信用指示は、第2のコンピューティング環境内で実行するアプリケーションは信用されないという指示を含む。
[0098]前述の方法の別の実現形態において、リソースは、第1のコンピューティング環境内に格納され、方法は、認可トークンを、第2のコンピューティング環境内で実行するアプリケーションから受信するステップと、認可トークンを受信するステップに応答して、リソースを保護するための、第1のコンピューティング環境内での予防的処置を実行するステップとをさらに含む。
【0091】
[0099]前述の方法の別の実現形態において、予防的処置は、認可トークンを受信するステップに応答した、リソースのバックアップの作成を含む。
[0100]前述の方法の別の実現形態において、方法は、認可トークンを受信するステップに応答して、第1のコンピューティング環境によるリソースへの読み取り専用アクセスを容認するステップをさらに含む。
【0092】
[0101]前述の方法の別の実現形態において、リソースは、予防的処置を実行することを、認可トークンを受信するステップと、信用指示を認可トークンから抽出するステップと、抽出される信用指示に基づいて、予防的処置が実行されるべきであるということを決定するステップとに応答して行うように構成されるサーバ内に格納される。
【0093】
[0102]前述の方法の別の実現形態において、第2のコンピューティング環境は、第1のコンピューティング環境内でホスティングされる仮想マシンを含む。
[0103]リソースへのアクセスを容認するためのシステムが、本明細書において説明される。システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されるように構成されるプログラムコードを記憶する、1つまたは複数のメモリデバイスであって、プログラムコードは、リソースプロテクタであって、コンピューティング環境内で実行するアプリケーションから、リソースにアクセスするために認可トークンを受信することであって、認可トークンは、アプリケーションの信用レベルについて指示する信用指示を含む、受信することと、信用指示を含む認可トークンを受信することに応答して、リソースを保護するための予防的処置を実行することとを行うように構成される、リソースプロテクタと、コンピューティング環境内で実行するアプリケーションによるリソースへのアクセスを容認するように構成されるリソースアクセスプロバイダとを含む、1つまたは複数のメモリデバイスとを含む。
【0094】
[0104]前述のシステムの1つの実現形態において、信用指示は、コンピューティング環境内で実行するアプリケーションは信用されないという指示を含む。
[0105]前述のシステムの別の実現形態において、コンピューティング環境は、別のコンピューティング環境内でホスティングされる仮想マシンを含む。
【0095】
[0106]前述のシステムの別の実現形態において、リソースプロテクタによって実行される予防的処置は、認可トークンを受信することに応答した、リソースのバックアップの作成を含む。
【0096】
[0107]前述のシステムの別の実現形態において、リソースアクセスプロバイダは、認可トークンを受信することに応答して、コンピューティング環境内で実行するアプリケーションによるリソースへの制限されるアクセスを容認するように構成される。
【0097】
[0108]前述のシステムの別の実現形態において、リソースプロテクタは、認可トークンを受信することに応答して、強化されたアイデンティティ認証を実行するように構成され、リソースアクセスプロバイダは、強化されたアイデンティティ認証を実行することに応答して、リソースへのアクセスを容認するように構成される。
【0098】
V.結論
[0109]本発明の様々な実施形態が上記で説明されたが、それらの実施形態は、制限ではなく、単に例として提示されているということが理解されるべきである。形式および詳細における様々な変更が、添付される特許請求の範囲において定義されるような本発明の趣旨および範囲から逸脱することなく、それらの形式および詳細においてなされ得るということが、関連性のある技術分野の当業者によって理解されることになる。よって、本発明の広さおよび範囲は、上記で説明された例示的な実施形態のいずれによっても制限されるべきではなく、後に続く請求項、および、それらの請求項の均等物によってのみで定義されるべきである。
図1
図2
図3
図4
図5
図6
図7