特許第6286034号(P6286034)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

<>
  • 特許6286034-プロセス認証とリソースパーミッション 図000002
  • 特許6286034-プロセス認証とリソースパーミッション 図000003
  • 特許6286034-プロセス認証とリソースパーミッション 図000004
  • 特許6286034-プロセス認証とリソースパーミッション 図000005
  • 特許6286034-プロセス認証とリソースパーミッション 図000006
  • 特許6286034-プロセス認証とリソースパーミッション 図000007
  • 特許6286034-プロセス認証とリソースパーミッション 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6286034
(24)【登録日】2018年2月9日
(45)【発行日】2018年2月28日
(54)【発明の名称】プロセス認証とリソースパーミッション
(51)【国際特許分類】
   G06F 21/62 20130101AFI20180215BHJP
   H04L 9/32 20060101ALI20180215BHJP
   G06F 21/12 20130101ALI20180215BHJP
   G06F 21/44 20130101ALI20180215BHJP
【FI】
   G06F21/62 318
   H04L9/00 675B
   G06F21/12
   G06F21/44
【請求項の数】20
【全頁数】22
(21)【出願番号】特願2016-521395(P2016-521395)
(86)(22)【出願日】2013年9月21日
(65)【公表番号】特表2016-527608(P2016-527608A)
(43)【公表日】2016年9月8日
(86)【国際出願番号】US2013061080
(87)【国際公開番号】WO2014209416
(87)【国際公開日】20141231
【審査請求日】2016年9月20日
(31)【優先権主張番号】13/925,703
(32)【優先日】2013年6月24日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100153028
【弁理士】
【氏名又は名称】上田 忠
(72)【発明者】
【氏名】アガーワル,ヴィシャル
(72)【発明者】
【氏名】ゴッツムッカラ,スニル・ピー
(72)【発明者】
【氏名】キシャン,アルン・ユー
(72)【発明者】
【氏名】マクファーソン,デーヴ・エム
(72)【発明者】
【氏名】アンデス,ジョナサン・エム
(72)【発明者】
【氏名】スリダラン,ギリダラン
(72)【発明者】
【氏名】キンシュマン,キンシュマン
(72)【発明者】
【氏名】ダミアノ,アダム
(72)【発明者】
【氏名】カン,サラフッディン・ジェイ
(72)【発明者】
【氏名】カンナン,ゴピナサン
【審査官】 上島 拓也
(56)【参考文献】
【文献】 米国特許出願公開第2008/0022093(US,A1)
【文献】 米国特許出願公開第2013/0042101(US,A1)
【文献】 特開2010−066942(JP,A)
【文献】 米国特許出願公開第2008/0301469(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/12
G06F 21/44
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
プロセスのシステムリソースへのアクセスを許可するためのシステムであって、該システムは、
1以上のプロセッサと、
前記1以上のプロセッサと通信するように結合されたメモリデバイスと
を備え、前記メモリデバイスは、
プロセス認証コンポーネントであって、前記1以上のプロセッサに、
デジタル署名を含む実行可能ファイルを受信する動作と、
前記デジタル署名を生成するのに用いられた秘密暗号化鍵に対応する公開復号化鍵を選択する動作と、
前記実行可能ファイルを、前記デジタル署名を前記公開復号化鍵で検証することにより認証する動作と、
認証された前記実行可能ファイルを実行するためのプロセスを作成し、該プロセスに、前記公開復号化鍵に基づいて、次元及びレベルの双方を割り当てる動作であって、前記次元は複数のランク付けされた次元のうちの1つであり、前記レベルは複数のランク付けされたレベルのうちの1つである、動作と
を含む動作を行わせる前記プロセス認証コンポーネントと、
リソースパーミッションコンポーネントであって、前記1以上のプロセッサに、
前記プロセスからシステムリソースにアクセスするリクエストを受信する動作と、
前記システムリソースにアクセスするのに十分な最小次元及び最小レベルを求める動作と、
前記プロセスの前記システムリソースへのアクセスを、前記プロセスに割当てられた前記次元が前記システムリソースにアクセスするのに十分であると求められた前記最小次元以上であり、且つ、前記プロセスに割当てられた前記レベルが前記システムリソースにアクセスするのに十分であると求められた前記最小レベル以上であることに少なくとも基づいて許可する動作と、
前記プロセスに割当てられた前記次元が前記システムリソースにアクセスするのに十分であると求められた前記最小次元未満であること、又は、前記プロセスに割当てられた前記レベルが前記システムリソースにアクセスするのに十分であると求められた前記最小レベル未満であることの何れかに少なくとも基づいて、前記プロセスの前記システムリソースへのアクセスを拒否する動作と
を含む動作を行わせる前記リソースパーミッションコンポーネントと
を記憶し、前記プロセスに割当てられた前記次元は2つの次元のうちの第1の次元であり、前記第1の次元は第1の複数のレベルに対応し、前記2つの次元のうちの第2の次元は第2の複数のレベルに対応し、前記第2の複数のレベルには、前記第1の複数のレベルよりも多くのレベルが存在する、システム。
【請求項2】
請求項1に記載のシステムであって、
前記複数のランク付けされたレベルのうちのレベルが、前記複数のランク付けされた次元のうちの少なくとも2つの異なる次元内であることに少なくとも基づいて、
より低い次元内であるより高いレベルは、より高い次元内である如何なるレベルのリソースパーミッションも継承せず、
より高い次元内のより高いレベルは、より低い次元内である前記より高いレベル以下であるレベルのリソースパーミッションを継承し、
前記複数のランク付けされたレベルのうちのレベルが、1つの次元内であることに少なくとも基づいて、より高いレベルは、より低いレベルの全てのリソースパーミッションを継承する、システム。
【請求項3】
請求項1又は2に記載のシステムであって、前記公開復号化鍵を選択する動作は、複数の公開復号化鍵から、選択される前記公開復号化鍵が、前記デジタル署名を復号化する特定の公開復号化鍵であると判定する動作を含む、システム。
【請求項4】
請求項1又は2に記載のシステムであって、前記公開復号化鍵を選択する動作は、
前記実行可能ファイルのパブリッシャのアイデンティティを求める動作と、
認証局に、複数の公開復号化鍵についてのリクエストを送信する動作と、
前記認証局から、前記複数の公開復号化鍵を含むレスポンスを受信する動作と、
前記複数の公開復号化鍵から、選択される前記公開復号化鍵が、前記デジタル署名を復号化する特定の公開復号化鍵であると判定する動作と
を含む、システム。
【請求項5】
請求項1又は2に記載のシステムであって、前記公開復号化鍵を選択する動作は、
前記実行可能ファイルのパブリッシャのアイデンティティを求める動作と、
認証局に、前記デジタル署名に対応する前記公開復号化鍵についてのリクエストを送信する動作であって、前記リクエストは、前記デジタル署名を含む、動作と、
前記認証局から、前記公開復号化鍵を含むレスポンスを受信する動作と
を含む、システム。
【請求項6】
請求項1又は2に記載のシステムであって、前記デジタル署名は、複数の秘密暗号化鍵のうちの1つを用いて作成され、前記複数の秘密暗号化鍵の各々は、次元及びレベルの異なる組み合わせにマッピングされた、システム。
【請求項7】
請求項1又は2に記載のシステムであって、ある次元内の少なくとも1つのレベルは、システム操作のために予約され、人間である如何なるユーザに対しても許可されない、システム。
【請求項8】
請求項1又は2に記載のシステムであって、前記プロセスに前記次元及び前記レベルを割り当てる動作は、オペレーティングシステム内の前記プロセスを、前記次元及び前記レベルを特定するメタデータでタグ付けする動作を更に含む、システム。
【請求項9】
1以上のコンピューティングデバイスが、
デジタル署名を含む実行可能ファイルを受信するステップと、
前記デジタル署名に対応する公開復号化鍵を選択するステップと、
前記実行可能ファイルを、前記デジタル署名を前記公開復号化鍵で検証することにより認証するステップと、
前記実行可能ファイルの認証に応答して、認証された前記実行可能ファイルを実行するためのプロセスを作成するステップと、
前記プロセスに、前記公開復号化鍵に基づいて、次元及びレベルの双方を割り当てるステップであって、前記次元は複数のランク付けされた次元のうちの1つであり、前記レベルは複数のランク付けされたレベルのうちの1つである、ステップと、
前記プロセスからシステムリソースにアクセスするリクエストを受信するステップと、
前記システムリソースにアクセスするのに十分な最小次元及び最小レベルを求めるステップと、
前記プロセスの前記システムリソースへのアクセスを、前記プロセスに割当てられた前記次元が前記システムリソースにアクセスするのに十分であると求められた前記最小次元以上であり、且つ、前記プロセスに割当てられた前記レベルが前記システムリソースにアクセスするのに十分であると求められた前記最小レベル以上であることに少なくとも基づいて許可するステップと
を含み、前記プロセスに割当てられた前記次元は2つの次元のうちの第1の次元であり、前記第1の次元は第1の複数のレベルに対応し、前記2つの次元のうちの第2の次元は第2の複数のレベルに対応し、前記第2の複数のレベルには、前記第1の複数のレベルよりも多くのレベルが存在する、方法。
【請求項10】
請求項9に記載の方法であって、
前記複数のランク付けされたレベルのうちのレベルが、前記複数のランク付けされた次元のうちの少なくとも2つの異なる次元内であることに少なくとも基づいて、
より低い次元内であるより高いレベルは、より高い次元内である如何なるレベルのリソースパーミッションも継承せず、
より高い次元内のより高いレベルは、より低い次元内である前記より高いレベル以下であるレベルのリソースパーミッションを継承し、
前記複数のランク付けされたレベルのうちのレベルが、1つの次元内であることに少なくとも基づいて、より高いレベルは、より低いレベルの全てのリソースパーミッションを継承する、方法。
【請求項11】
請求項9又は10に記載の方法であって、前記2つの次元のうちの前記第1の次元内の少なくとも1つのレベルは、システム操作のために予約され、人間である如何なるユーザに対しても許可されない、方法。
【請求項12】
請求項9又は10に記載の方法であって、前記デジタル署名は、複数の秘密暗号化鍵のうちの1つを用いて作成され、前記複数の秘密暗号化鍵の各々は、次元及びレベルの異なる組み合わせにマッピングされた、方法。
【請求項13】
請求項9又は10に記載の方法であって、前記公開復号化鍵を選択するステップは、複数の公開復号化鍵から、選択される前記公開復号化鍵が、前記デジタル署名を復号化する特定の公開復号化鍵であると判定するステップを含む、方法。
【請求項14】
請求項9又は10に記載の方法であって、複数の次元及び複数のレベルが存在し、前記複数の次元のうちの第1の次元内の少なくとも1つのレベルは、システム操作のために予約され、人間である如何なるユーザに対しても許可されない、方法。
【請求項15】
請求項9又は10に記載の方法であって、前記プロセスに前記次元及び前記レベルを割り当てるステップは、オペレーティングシステム内の前記プロセスを、前記次元及び前記レベルを特定するメタデータでタグ付けするステップを更に含む、方法。
【請求項16】
1以上のプロセッサに動作を行わせるプログラムであって、前記動作は、
デジタル署名を含む実行可能ファイルを受信する動作と、
複数の公開復号化鍵から、前記デジタル署名を生成するのに用いられた秘密暗号化鍵に対応する公開復号化鍵を求める動作であって、前記複数の公開復号化鍵の各々は異なる信頼レベルにマッピングされ、前記信頼レベルは、次元のパラメータ及びレベルのパラメータに従い{D,L}として定義されるタプルである、動作と、
前記実行可能ファイルを、前記デジタル署名を前記公開復号化鍵で検証することにより認証する動作と、
前記実行可能ファイルの認証に応答して、認証された前記実行可能ファイルを実行するためのプロセスを作成する動作と、
特定の信頼レベルにマッピングされた前記公開復号化鍵に基づいて、信頼レベルを前記プロセスに割当てる動作と、
前記プロセスから、システムリソースにアクセスするリクエストを受信する動作と、
前記システムリソースにアクセスするのに十分な信頼レベルを求める動作と、
前記プロセスの前記システムリソースへのアクセスを、前記プロセスに割当てられた前記信頼レベル{D,L}が前記システムリソースにアクセスするのに十分な前記信頼レベル{D,L}を満たしていることに基づいて許可する動作であって、前記プロセスに割当てられた前記信頼レベルは、D≧D且つL≧Lであることに少なくとも基づいて、前記システムリソースにアクセスするのに十分な前記信頼レベルを満たす、動作と
を含み、前記プロセスに割当てられた前記信頼レベルのうちの次元のパラメータは2つの次元のうちの第1の次元を示し、前記第1の次元は第1の複数のレベルに対応し、前記2つの次元のうちの第2の次元は第2の複数のレベルに対応し、前記第2の複数のレベルには、前記第1の複数のレベルよりも多くのレベルが存在する、プログラム。
【請求項17】
請求項16に記載のプログラムであって
より低い次元内であるより高いレベルは、より高い次元内である如何なるレベルのリソースパーミッションも継承せず、
より高い次元内のより高いレベルは、より低い次元内である前記より高いレベル以下であるレベルのリソースパーミッションを継承し、
つの次元内であるより高いレベルは、前記1つの次元内であるより低いレベルの全てのリソースパーミッションを継承する、プログラム
【請求項18】
請求項16又は17に記載のプログラムであって、前記信頼レベルを前記プロセスに割当てる動作は、オペレーティングシステム内の前記プロセスを、前記次元及び前記レベルを特定するメタデータでタグ付けする動作を更に含む、プログラム。
【請求項19】
請求項16又は17に記載のプログラムであって、前記デジタル署名は、複数の秘密暗号化鍵のうちの1つを用いて作成され、前記複数の秘密暗号化鍵の各々は、次元及びレベルの異なる組み合わせにマッピングされた、プログラム。
【請求項20】
請求項16から19のうちの何れか一項に記載のプログラムを記憶した1以上のコンピュータ可読記憶デバイス。
【発明の詳細な説明】
【背景技術】
【0001】
[0001]ほとんどのオペレーティングシステムは、プロセスが認証され、システムリソースへのパーミッション(permission;アクセス許可)が定義されて実施される、セキュアな処理環境を提供するために努力している。基本的な例として、オペレーティングシステムは、管理者用とユーザー用との2つのタイプのパーミッションレベルを提供することができる。管理者は、ファイル、ディレクトリ、およびシステム構成設定を含む、すべてのシステムリソースにアクセスすることができる。対照的に、ユーザーは、システムリソースの厳重なサブセットへのアクセスが制限される場合がある。認証プロセスに関しては、多くのモデルが、ソフトウェアが取得されるチャネルの信頼性に依存している。
【0002】
[0002]典型的な環境では、オペレーティングシステムは、リソース許可レベルを指定するための同心モデル(concentric model)を使用し、異なる許可レベルは、増加する許可のレベルがすべてのより低いレベルのパーミッションのすべてを継承するように、同心モデルにおける異なる同心円に対応する。そのようなパーミッションの同心モデルは、非常に高速なパーミッションの決定を提供する。
【0003】
[0003]別の典型的な環境では、オペレーティングシステムは、個々のユーザーが特定のパーミッションのセットで指定される、個々の必要性に応じたパーミッションシステムを使用することができる。そのようなモデルは非常に個別化されたパーミッションの定義を提供するが、このモデルは、システムリソースにアクセスするためのパーミッション要求を検証するためのより計算集約的な方法を必要とすることに悩まされる。
【発明の概要】
【0004】
[0004]本明細書に記載の技法およびシステムは、実行するためのプロセスを認証するための、またプロセスとユーザーのシステムリソースに対するパーミッション制限を指定して実施するための、セキュアな処理モデルの様々な実装形態を提示する。
【0005】
[0005]いくつかの実装形態では、プロセスが作成される前に、オペレーティングシステムが、ソフトウェアパブリッシャ(software publisher)が意図したようにソフトウェアパブリッシャから実行可能ファイルが受信されることを確認するために復号鍵を使用できるように、実行可能ファイルに含まれるデジタル署名に基づいて実行可能ファイルが認証され得る。たとえば、アプリケーション、プログラム、またはプロセスの実行可能ファイルは、オペレーティングシステムが、対応する復号鍵を用いてデジタル署名を認証できるように、暗号鍵で暗号化されたデジタル署名を含むように拡張され得る。実行可能ファイルが認証されると、オペレーティングシステムは、実行可能ファイルを実行するためのプロセスを作成することができる。
【0006】
[0006]さらに、オペレーティングシステムは、対応する実行可能ファイルのためのデジタル署名に基づいて、どのタイプのパーミッションがプロセスのために許可されるかを示すメタデータで、プロセスをタグ付けすることができる。メタデータは、所与のレベルにとって、必ずしもより高いレベルのパーミッションがより低いレベルのパーミッションを継承するとは限らないので、次元およびレベルによって定義されるリソース許可情報に対応し得る。
【0007】
[0007]この概要は、以下の詳細な説明においてさらに説明される概念の選択を簡略化された形態で紹介するために提供される。この概要は、クレームに記載された対象の主要な特徴または本質的な特徴を特定することが意図されるものではなく、クレームに記載された対象の範囲を限定するために使用されることが意図されるものでもない。
【図面の簡単な説明】
【0008】
図1】[0008]デバイスが、プロセス認証コンポーネントとリソースパーミッションコンポーネントとを含むセキュアな処理モジュールを実装する、例示的なコンピューティング環境を示す図である。
図2】[0009]いくつかの実装形態による、リソースパーミッションを指定するために利用され得る次元とレベルとの間の第1の例示的な関係を示す図である。
図3】[0010]いくつかの実装形態による、リソースパーミッションを指定するために利用され得る次元とレベルとの間の第2の例示的な関係を示す図である。
図4】[0011]いくつかの実装形態による、様々なリソースパーミッションセットを示す次元およびレベルの例を示す図である。
図5】[0012]いくつかの実装形態による、プロセスの信頼の次元およびレベルが指定された要件を満たす場合、システムリソースへのアクセスを有するプロセスを提供するための方法を示すフローチャートである。
図6】[0013]いくつかの実装形態による、プロセスを認証した後にプロセスに次元およびレベルを割り当てる方法のフローチャートである。
図7】[0014]いくつかの実装形態による、プロセス認証コンポーネントとリソースパーミッションコンポーネントとを含むセキュアな処理モジュールを実装するように構成され得るコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【0009】
[0015]本明細書に記載の技法およびシステムは、実行するためのプロセスを認証するための、ならびにプロセスおよび/またはユーザーのシステムリソースに対するパーミッション制限を指定して実施するための、セキュアな処理システムの様々な実装形態を対象とする。セキュアな処理システム内で、プロセス認証コンポーネントはプロセスを認証するために役立つことができ、リソースパーミッションコンポーネントは、次元とレベルとの組合せを使用して、パーミッション制限を指定して実施するために役立つことができる。
【0010】
[0016]場合によっては、オペレーティングシステムがいかなるタイプの認証もなしに実行可能ファイルのためのプロセスを単に作成する場合、実行可能ファイルがウィルスを含むように変更されたおそれがある。この場合、オペレーティングシステムが実行可能ファイルを実行するためのプロセスを作成すると、オペレーティングシステムにウィルスが取り込まれてしまう。この問題に対処するために、いくつかの実装形態では、実行可能ファイルがいかなる改ざんまたは変更なしにソフトウェアプロバイダーまたはパブリッシャから受信されたか否かを判断するために、ソフトウェアパブリッシャは、オペレーティングシステムが実行可能ファイルを認証できるように、実行可能ファイルにデジタル署名を提供することができる。デジタル署名は、暗号鍵を使用してソフトウェアパブリッシャによって作成され得る。さらに、いくつかの実装形態では、ソフトウェアパブリッシャの識別は、暗号鍵または復号鍵から決定され得る。次に、オペレーティングシステムは、デジタル署名を復号することに基づいて実行可能ファイルを認証するために、暗号鍵に対応する復号鍵を使用することができる。いくつかの実施態様では、所与のソースからのソフトウェアが信頼できるものであることを決定する際に、非対称暗号化技法が使用され得る。たとえば、デジタル署名は秘密鍵を使用して作成され得、デジタル署名は公開鍵を用いて復号され得る。
【0011】
[0017]システムを損傷から保護するため、あるいは極秘または機密ユーザー情報を保護するために、いくつかのコンテキストを提供するために、オペレーティングシステムは、特定のシステムプロセスが、保護されたプロセスにコードを書き込むことなどの悪意のある行為を実行すること、またはマルウェア検出ソフトウェアを無効にすることを防ぐために努力することができる。さらに、オペレーティングシステム内で、プライバシーまたはセキュリティを提供するために、オペレーティングシステムは、すべてのユーザーまたはプロセスが任意のまたはすべてのシステムリソースをアクセスまたは修正することを許可しない場合がある。システムリソースは、ファイル、ディレクトリ、または任意のタイプのソフトウェア要素であり得る。さらに、システムリソースはまた、とりわけ、任意のハードウェア要素、たとえば、I/Oポート、特定の処理装置、ストレージデバイス、またはメモリの領域であり得る。
【0012】
[0018]いくつかの実装形態では、オペレーティングシステムは、可能な最高レベルのユーザーアクセスを有するユーザーが特定のシステムリソースにアクセスすることさえも制限することがある。さらに、オペレーティングシステムは、特定のセットのシステムプロセスへのリソースアクセスの次元およびレベルを確保し、任意のユーザーを同じレベルのリソースアクセスから防ぐことができる。本明細書で使用されるように、レベルのセットに加えて、次元は、同心円状に、または階層的に継承されたパーミッションレベルを使用するよりも柔軟な、システムリソースにアクセスするためのパーミッションのセットを指定する機能を備えたリソースパーミッションコンポーネントを提供する。さらに、いくつかの実装形態では、次元とレベルとの特定の組合せは、信頼レベル、またはタプルと呼ばれ得る。2つの次元を使用するある実装形態では、{次元(DIMENSION),レベル(LEVEL)}などのタプルは、(1)次元と、(2)レベルとの2つのパラメータに従って定義され得る。一般的に、信頼レベル、すなわちタプルは、追加の次元に従って定義され得る。たとえば、2つの次元を使用するある実装形態では、対応するタプルは2次元タプルと呼ばれ得る。同様に、N次元を使用するある実装形態では、対応するタプルは、N次元タプルと呼ばれ得、Nパラメータに従って定義され得る。
【0013】
[0019]異なる実装形態では、次元とレベルとの組合せの使用を通じて、リソースパーミッションコンポーネントは、同心円状に、および階層的に継承されたリソースパーミッションを超えるリソースパーミッションのセットを指定することができる。言い換えれば、リソースパーミッションコンポーネントは、多次元および追加の同心パーミッションセットを指定することができる。さらに、パーミッションセットは、1つのパーミッションセットが、より低いレベルのパーミッションセットのすべてのパーミッションを必ずしも含まないように定義され得る。代わりに、異なる実装形態では、オペレーティングシステム内のプロセスは、別個の、しかし関連するパーミッションセットが、より低いレベルのパーミッションセットのすべてのパーミッションを継承しないように、リソース許可情報でタグ付けされ得る。
【0014】
[0020]いくつかの実施形態では、リソースパーミッションコンポーネントは、ユーザーまたはプロセスがシステムリソースにアクセスするための十分なパーミッションを有するかどうかを決定するために必要なのは2つの比較だけである場合があるので、リソースパーミッションを指定する際に次元およびレベルを使用することは、システムリソースへのアクセスを与えるか否かを決定する計算の複雑性を大幅に減らす。言い換えれば、次元およびレベルを使用することにより、パーミッションセットの継承は、より低いレベルのパーミッションセットのすべてのパーミッションを継承しない、関連するが別個のパーミッションセットと組み合わされる。いくつかの実施形態では、次元は、異なるセットのパーミッションのレベルの関連を指定するために役立つ。
【0015】
[0021]言い換えれば、いくつかの実施形態では、プロセスまたはユーザーがリソースにアクセスできるかどうかは、単に階層的でも、単に同心セットの問題でもなく、他の次元およびレベルへのアクセスを有することに関する次元とレベルとの様々な組合せは、様々な方法で構成され得る。
例示的実装形態
[0022]図1は、セキュアな処理モジュール106と、プロセス認証コンポーネント108と、リソースパーミッションコンポーネント110とを実装するように構成され得るコンピューターシステム104を含むデバイス102を含む、コンピューティング環境100を示している。この実装形態では、デバイス102は、ユーザーが、たとえばオンラインアプリケーションストアを使用して、あるいはワイヤレスリンクまたはリムーバブルメモリカードを介して、あるいはソフトウェアにアクセスするための他の何らかの方法を通じて、新しいソフトウェアをインストールすることを可能にするオペレーティングシステムを提供することができる。
【0016】
[0023]特定の実装形態では、デバイス102は、ソフトウェアパブリッシャによって提供され得るネットワーク112などのネットワークを介して、ソフトウェアにアクセスすることができる。この例では、ソフトウェアパブリッシャは、ソフトウェアを提供するためにデバイス102と通信し得るソフトウェアパブリッシャサーバ114を提供することができる。ソフトウェアパブリッシャサーバ114は、ソフトウェアパブリッシャデータストア116上に、ソフトウェアのための実行可能ファイルを記憶することができる。この例では、ソフトウェアパブリッシャによって提供される実行可能ファイルは、実行可能ファイル118であり得る。一般的に、実行可能ファイルは、オペレーティングシステム内で実行するためのソフトウェアプロセスを作成するための基礎として使用され得る任意のファイルであり得る。実行可能ファイルはまた、当技術分野の他の用語のうち、バイナリファイル、バイナリ、または実行可能プログラム、動的にロードされたモジュールとも呼ばれ得る。
【0017】
[0024]上述のように、実行可能ファイルは、デジタル署名120などのデジタル署名を含み得る。この例では、デジタル署名は実行可能ファイル内に埋め込まれるが、他の例では、デジタル署名は、実行可能ファイルを求める要求に応答して、またはデジタル署名を求める別の、および特定の要求に応答して、実行可能ファイルとは別に提供され得る。さらに、いくつかの実装形態では、デジタル署名を作成する際に使用される暗号鍵と、デジタル署名を使用して実行可能ファイルを認証する際に使用される復号鍵とは、認証局122などの認証局から管理され得る。今度は、認証局122は、認証局データストア124内に暗号鍵126と復号鍵128とを記憶し得る。
【0018】
[0025]ある説明のための実装形態では、オペレーティングデバイス102であり得るユーザーは、ソフトウェアアプリケーションのダウンロードを開始することもでき、ソフトウェアプログラムをインストールすることを選択することもできる。たとえば、ユーザーは、ウェブブラウザを通じて、ソフトウェアダウンロードを提供する所与のウェブサイトにナビゲートすることができる。他の場合では、ユーザーは、ソフトウェアのインストールを見つけて開始するためのアプリケーションストアインターフェースを使用することもでき、ユーザーは物理的媒体に、または直接ワイヤレスリンクを介して、アクセスすることもできる。しかしながら、ソフトウェアがアクセスされる方法は、実行可能ファイルの認証には関係ない。
【0019】
[0026]この例では、ユーザーがソフトウェアアプリケーションのダウンロードおよびインストールを開始することに応答して、ソフトウェアパブリッシングサーバ114は、ソフトウェアパブリッシャデータストア116に記憶された実行可能ファイル118を送信することができる。さらに、この例では、実行可能ファイル118はデジタル署名120を含み得る。この例では、ソフトウェアパブリッシャまたはソフトウェア開発者は、実行可能ファイルを作成する際に、暗号鍵を使用してデジタル署名を作成することができる。
【0020】
[0027]この例では、公開鍵と秘密鍵とを有する非対称暗号方式が使用されるが、異なるタイプの暗号化技法が使用され得る。この実装形態では、ソフトウェアパブリッシャまたは開発者は、実行可能ファイルがインストールされるオペレーティングシステムが、実行可能ファイルの真正性を検証するためにデジタル署名に復号鍵として公開鍵を使用するという見込みで、デジタル署名を作成するために暗号鍵として秘密鍵を使用することができる。
【0021】
[0028]図1の説明のための実装形態に示されるように、認証局122は、暗号鍵126および復号鍵128などの、暗号および/または復号鍵を記憶して提供するための信頼される中間物として使用され得る。たとえば、認証局130は、デジタル署名を作成する際にソフトウェアパブリッシャによって使用される暗号鍵に対応する必要な復号鍵をデバイス102に提供することができる。しかしながら、他の場合では、デバイス102上のオペレーティングシステムとソフトウェアパブリッシャサーバ114とは、他の方法を通じて、たとえば認証局を使用せずに、必要な暗号鍵と復号鍵とを取得することができる。
【0022】
[0029]この実装形態では、デバイス102上のリソースパーミッションコンポーネント110が、ダウンロードされた実行可能ファイル上のデジタル署名に適用するための公開鍵を有すると、次いで、デバイス102上のリソースパーミッションコンポーネント110は、デジタル署名と正常な復号とに基づいて、実行可能ファイルが本物か、および/または改ざんされていないかどうかを決定することができる。さらに、セキュアな処理システムのいくつかの実装形態では、プロセス認証コンポーネントが単独で実装されてよく、そのようなスタンドアロン実装形態は、対応する実行可能ファイルが認証されない限り実行可能ファイルを実行するためにプロセスが作成されないので、セキュリティを提供することになる。
【0023】
[0030]言い換えれば、プロセス認証コンポーネントは、1つまたは複数の悪意のある通過点を含み得るネットワークを介して実行可能ファイルが送信されるときに普通なら発生する可能性がある、任意の改ざんを最小限に抑えることができる。プロセス認証コンポーネントのそのようなスタンドアロン実装形態は、ソフトウェアが、悪質または不正な相手などの別の相手ではなく、実際のソフトウェアパブリッシャからであることを検証するためにさらに役立つことができる。しかしながら、この説明のための例では、バイナリファイルの認証は、セキュアな処理システム全体の1つのステップとして役立つ。
【0024】
[0031]具体的には、この説明のための例では、バイナリファイルに対応するデジタル署名は、複数の異なる暗号鍵のうちの1つで作成され得、それぞれの異なる暗号鍵は、対応するプロセスを作成するオペレーティングシステム上の異なる量またはタイプのリソースアクセスに対応し得る。たとえば、ソフトウェアパブリッシャは、アプリケーションのための実行可能ファイル内に含めるために、または実行可能ファイルとともに含めるために、デジタル署名を作成するための3つの異なる暗号鍵のうちの1つを使用することができる。この場合、異なる暗号鍵のそれぞれは、異なる量またはタイプのリソースアクセスに対応することになる。たとえば、低、中、高レベルのリソースアクセスの、3つのレベルのリソースアクセスがあり得る。
【0025】
[0032]このように、セキュアな処理システムが実行可能ファイルを受信、またはそれにアクセスすると、セキュアな処理システムは、どの復号鍵が実行可能ファイルを正常に認証するかに依存するアクセスのレベルでプロセスを作成することができる。さらに、この例では、指定されたアクセスのレベルに対応する特定の復号鍵が、実行可能ファイルを正常に認証することができる。説明するために、低レベルのリソースアクセスに対応する復号鍵が、バイナリファイルのデジタル署名を正常に復号するのに役立つ場合、それに応答して、セキュアな処理システムは、低レベルのリソースアクセスを有する実行可能ファイルに対応するプロセスを作成することになる。同様に、中レベルのリソースアクセスに対応する復号鍵が、バイナリファイルのデジタル署名を正常に復号するのに役立つ場合、それに応答して、セキュアな処理システムは、中レベルのリソースアクセスを有する実行可能ファイルに対応するプロセスを作成することになる。同様に、高レベルのリソースアクセスに対応する復号鍵が、バイナリファイルのデジタル署名を正常に復号するのに役立つ場合、それに応答して、セキュアな処理システムは、高レベルのリソースアクセスを有する実行可能ファイルに対応するプロセスを作成することになる。
【0026】
[0033]セキュアな処理システムのいくつかの実装形態では、異なるレベルのリソースアクセスに対応するために異なる暗号鍵および復号鍵を使用することによって、実行可能ファイルを認証するための、および適切なレベルのリソースアクセスに対応するプロセスを割り当てるための、十分な技法を提供することができる。この場合、リソースアクセスの各増加している階層レベルは、階層内でより低い、各レベルのリソースアクセスを包含することになる。この厳密に増加しているリソースアクセスの量は、アクセスの同心のセットとともに説明され得る。
【0027】
[0034]しかしながら、この説明のための例では、セキュアな処理システムのリソースパーミッションコンポーネント110は、より微妙なリソースアクセスパーミッションを提供することができる。言い換えれば、セキュアなリソースパーミッションコンポーネント110は、より高いレベルの任意の所与のパーミッションセットが、より低いレベルのパーミッションセットのパーミッションを必ずしも継承しないように、別個の、しかし関連する次元の同心のパーミッションセットを確立することができる。代わりに、レベルと次元との結合された仕様は、リソース特権を決定する際に使用される。
【0028】
[0035]説明するために、3つの同心レベルのリソース特権を決定するために3つの暗号鍵と復号鍵との組合せを使用する代わりに、各異なる暗号/復号鍵の組合せは、リソース特権の特定の次元およびレベルに対応し得、異なる暗号/復号鍵の組合せの数は、リソース特権の次元の数とレベルの数とに依存し得る。さらに、特定のリソースにアクセスするために十分なアクセスレベルを設定するために、プロセスは、リソースにアクセスするための十分な許可を、少なくともプロセスに関連付けられる次元およびレベルに設定する前に、少なくともリソースパーミッションの所与の次元およびレベルを有するように指定され得る。言い換えれば、特定のユーザーまたはプロセスは、リソースパーミッションを、特定のユーザーまたはプロセスに与えられたリソースパーミッションよりも高く設定することができない。
【0029】
[0036]図2は、リソースアクセス特権を指定する際の次元およびレベルの使用の説明のための実装形態を提供する。この例では、所与の次元内で、各増加するレベルのリソース特権がすべてのより低いレベルのすべてのリソース特権を含むように、3つのレベルのリソース特権がある。この例では、レベル1は最も低いレベルのリソースアクセス特権に対応することができ、レベル2は、追加のリソースアクセス特権を含む、レベル1のすべてのリソースアクセス特権を含む中レベルのリソースアクセス特権に対応することができ、レベル3は、より低いレベル内ではない追加のリソースアクセス特権を含む、レベル1とレベル2との両方のすべてのリソースアクセス特権を含む、中レベルのリソースアクセス特権に対応することができる。
【0030】
[0037]図示されるように、図2は、各次元が3つのレベルを含む2つの次元を有する一例を示している。すなわち、それぞれ204、206、および208で示される、対応するレベル3、2、および1を有する、202で示される次元1と、それぞれ212、214、および216で示される、対応するレベル3、2、および1を有する、210で示される次元2である。この例では2つの次元が指定されるが、他の例では異なる数の次元が使用され得る。
【0031】
[0038]この説明のための実装形態では、特定のレベルのリソースアクセス特権が別のレベルを上回るという事実は、オペレーティングシステムがより低いレベルに対応するリソースアクセス特権を与えるために十分ではない。言い換えれば、レベル3はレベル2のパーミッションを必ずしも含まない。代わりに、リソースパーミッションコンポーネントは、プロセスにアクセスするか、またはユーザーが特定のリソースを与えられているか否を決定するために、レベルとともにいくつかの次元を使用する。
【0032】
[0039]図2に示されるように、{次元、レベル}の2つのタプルに対応する、リソースアクセス特権の6つの異なる可能な許可(grant)があり、この場合は{D1,L1},{D1,L2}、{D1,L3}、{D2,L1}、{D2,L2}、および{D2,L3}で表すことができ、D1は次元1を表し、D2は次元2を表し、L1〜L3はレベル1〜3を表す。上述のように、異なる実装形態には追加の次元があり得る。
【0033】
[0040]この実装形態では、各次元/レベルタプルは、リソースアクセス特権のそれぞれのセットに対応する。言い換えれば、所与の信頼レベルは、他のリソースパーミッションを潜在的に含むことに加えて、リソースパーミッションの特定のセットを含み得る。具体的には、{D1,L1}はリソースアクセス特権の1つまたは複数のセットに対応し、{D1,L2}は{D1,L1}のリソースアクセス特権を包含するリソースアクセス特権の1つまたは複数のセットに対応し、{D1,L3}は{D1,L2}および{D1,L1}のリソースアクセス特権を包含するリソースアクセス特権の1つまたは複数のセットに対応し、{D2,L1}は{D1,L1}のリソースアクセス特権を包含するリソースアクセス特権の1つまたは複数のセットに対応し、{D2,L2}は{D2,L1}、{D1,L2}、および{D1,L1}のリソースアクセス特権を包含するリソースアクセス特権の1つまたは複数のセットに対応し、{D2,L3}は{D2,L2}、{D2,L1}、{D1,L3}、{D1,L2}、および{D1,L1}のリソースアクセス特権を包含するリソースアクセス特権の1つまたは複数のセットに対応する。さらに、いくつかの実装形態では、所与の信頼レベルが、リソースアクセス特権の所与の1つまたは複数のセットに対応する場合、1つまたは複数のセットのサブセットが、別の信頼レベルのリソースアクセス特権を包含することがあり得る。
【0034】
[0041]いくつかの実装形態では、所与の信頼レベルが、別の信頼レベルのリソースパーミッションセットを包含する1つまたは複数のリソースパーミッションセットに対応する場合、所与の信頼レベルが他の信頼レベルを「支配する(dominate)」と言われ得る。図2の次元およびレベル仕様では、上記の説明はまた、{D1,L1}は他のどの信頼レベルも支配せず、{D1,L2}は{D1,L1}を支配し、{D1,L3}は{D1,L2}と{D1,L1}とを支配し、{D2,L1}は{D1,L1}を支配し、{D2,L2}は{D2,L1}、{D1,L2}、および{D1,L1}を支配し、{D2,L3}は{D2,L2}、{D2,L1}、{D1,L3}、{D1,L2}、および{D1,L1}を支配すると説明することができる。
【0035】
[0042]言い換えれば、この例では、より低いレベルのリソースアクセス特権のすべてを含まない、または包含しない、より高いレベルにリソースアクセス特権のセットがある。たとえば、{D1,L3}は、{D2,L2}と{D2,L1}とを含む、より低いレベルで次元2を有するタプルを含む、次元2を含むどのタプルのリソースアクセス特権も含まない。
【0036】
[0043]図2の次元およびレベルに対応するリソースパーミッションのそのようなセットを考えると、プロセス認証コンポーネントとリソースパーミッションコンポーネントとは両方とも、リソースパーミッションを指定するための同じフレームワークを参照することができる。言い換えれば、認証された実行可能ファイルに対応するために作成され得るプロセスに与えられたリソースアクセス特権は、バイナリファイルを認証するためにどの復号鍵が使用されるかに依存し得る。図2に示される例示的な次元およびレベルでは、{D1,L1}、{D1,L2}、{D1,L3}、{D2,L1}、{D2,L2}、および{D2,L3}の6つのタプルに対応する、6つの異なる暗号/復号鍵のペアがあり得る。そのようなリソースアクセス特権セット仕様では、暗号/復号鍵のペアは、より高いレベルのいくつかのリソースパーミッションセットはより低いレベルからのリソースパーミッションセットを包含しない場合があるので、必ずしも相対ランキングを有していない。
【0037】
[0044]図3は、リソースパーミッションコンポーネントの実装形態において使用され得る次元およびレベルの異なる仕様を示している。図3に示されるように、異なる次元は、特定の次元に関連付けられる異なるレベルを有し得る。図示されるように、次元1は、302、304、306、308、および310で示される5つのレベルを有し得、次元2は、312、314、および316で示される3つのレベルを有し得る。この実装形態では、比較操作のより簡単な説明を可能にするために、次元1のレベルが1〜5と連続的にラベル付けされており、次元2のレベルは2、3、および5とラベル付けされている。信頼レベル間のマッピングのより一般的な説明は後述する。しかしながら、そのような実装形態においても、図2に関して説明した実装形態と同様に、ユーザーまたはプロセスがシステムリソースへの十分なアクセスを有するか否かを決定することは、2つの次元が使用される場合は2つの比較に基づいて実行され得る。一般的に、N次元のタプルについて、許可はN個の比較で決定され得る。具体的には、図3の実装形態では、1つの次元およびレベルが、別の次元の複数のレベルに対応する場合、1つの次元およびレベルが他の次元における複数のレベルのうちのいずれかを支配するかどうかを決定することは、2つの比較で行われ得る。
【0038】
[0045]この実装形態では、{D1,L1}はリソースアクセス特権のセットに対応し得、{D1,L2}は、{D1,L1}のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得る。{D1,L3}は、{D1,L2}および{D1,L1}のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得、{D1,L4}は、{D1,L1}、{D1,L2}、および{D1,L3}のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得、{D1,L5}は、{D1,L1}、{D1,L2}、{D1,L3}、および{D1,L4}のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得、{D2,L2}は、{D1,L2}、および{D1,L1}のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得、{D2,L3}は、{D2,L2}、{D1,L3}、{D1,L2}および{D1,L1}のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得、{D2,L5}は、{D2,L3}、{D2,L2}、{D1,L5}、{D1,L4}、{D1,L3}、{D1,L2}、および{D1,L1}のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得る。たとえば、{D2,L2}が他の任意の信頼レベルを支配するか否かを決定することは、D2が別の次元以上であり、またL3が他のレベル以上である場合、他の次元に対するD2の比較と、他の次元に対するL2の比較との、2つの比較で計算され得る。
【0039】
[0046]次元2におけるレベルは、1つの次元におけるレベルが別の次元のレベルを支配するか否かを決定するために、マッピングを使用しないように、また値の簡単な比較を保存するように定義されているが、一般的に、レベルは、いずれかの任意のトークンに従って指定され得、マッピングテーブルは、2つの所与のトークン間の相対的な「を上回る」または「未満である」という表示を指定することができる。たとえば、図3に関して、レベル2、3、および5は、それぞれレベル「C」、「B」、および「A」と再定義され得、マッピングは、{D2,A}が{D2,B}、{D2,C}、{D1,L5}、{D1,L4}、{D1,L3}、{D1,L2}、および{D1,L1}を支配し、{D2,B}が{D2,C}、{D1,L3}、{D1,L2}、および{D1,L1}を支配し、{D2,C}が{D1,L2}、および{D1,L1}を支配し、{D1,L5}が{D1,L4}、{D1,L3}、{D1,L2}、および{D1,L1}を支配し、{D1,L4}が{D1,L3}、{D1,L2}、および{D1,L1}を支配し、{D1,L3}が{D1,L2}および{D1,L1}を支配し、{D1,L2}が{D1,L1}を支配し、{D1,L1}が他のどの信頼レベルも支配しないと指定するために定義され得る。
【0040】
[0047]いくつかの実装形態では、リソースパーミッションを指定する際に次元およびレベルを使用することに関して、オペレーティングシステム内の所与のプロセスは、別のプロセスまたはリソースのリソースパーミッションを指定するために次元および/またはレベルを修正することができる。たとえば、プロセスは、{D2,L3}に対応するリソースパーミッションを有するシステムプロセスであり得、別のプロセスは、{D1,L4}に対応するリソースパーミッションを有するユーザープロセスであり得る。この例では、システムプロセスが信頼の最高の組合せまたは次元とレベルとの最高の組合せにあるので、システムプロセスは、ユーザープロセスのリソースパーミッションを、{D1,L4}から任意の次元とレベルとの組合せに修正することができる。場合によっては、システムプロセスは、ユーザープロセスのリソースパーミッションの量を、{D1,L4}から、たとえば{D1,L2}に減らすことができる。他の場合では、システムプロセスは変更することができ、ユーザープロセスのリソースパーミッションの量を、{D1,L4}から、たとえば{D2,L2}に潜在的に増加させることができる。
【0041】
[0048]図4は、視覚的表現がxyz空間を占有するように、リソースパーミッションを指定する際に使用される次元およびレベルの視覚的表現を示している。しかしながら、この視覚的表現は説明を目的としたものであり、リソースパーミッションコンポーネントによって使用される次元およびレベルの理解を広げるために役立つ。リソースパーミッションセットのこの視覚的表現では、x−y面は、次元を使用することなしに可能なリソースパーミッションセットを表すことができる。具体的には、x−y面さえ使用できれば、リソースパーミッションセットは同心であり、より小さい、またはより低いレベルのリソースパーミッションセットは、より大きいまたはより高いレベルのリソースパーミッションセットに包含されることになる。
【0042】
[0049]この説明のための視覚的表現では、x−y面上だけにある次元/レベルボックスのフットプリントは、同心のパーミッションセットの表現であり得、それぞれのより大きいパーミッションセットが、より小さいパーミッションセットのパーミッションを継承または包含している。そのような場合、次元がなく、単にレベルがあることになる。言い換えれば、3次元/レベルボックスのフットプリントは3つの同心セットを形成し、最も小さく、最も内部のセットが第1のレベルに対応し、そのセットは第2のレベルに対応する2番目に最も大きいセットによって包含され得、そのセットは第3のレベルに対応する最も大きいセットによって包含され得る。しかしながら、レベルを使用することに加えて次元を使用する際に、リソースアクセスのレベルはより低いレベルのリソースパーミッションを必ずしも含まない。
【0043】
[0050]この視覚的表現では、図2の次元およびレベルに対応して、例示的なリソースパーミッションセットは、2つの次元と、各次元内の3つのレベルとで指定され得る。具体的には、所与の次元、たとえば次元1内に、3つの同心パーミッションセットがあり得、それぞれのより大きいセットが、より低いセットのアクセス特権またはパーミッションを包含(すなわち、継承)する。この視覚的表現では、x−y面内に占有される次元として表されるパーミッションセットは、単一の次元内のレベルに対応する。しかしながら、第2の次元が考慮される場合、1つのレベルでの1つの次元内のパーミッションセットは、より低いレベルで別の次元内のパーミッションセットのすべてのパーミッションを必ずしも継承しない場合がある。
【0044】
[0051]この視覚的表現では、次元1はx−y面を占有し、{次元1,レベル1}402、{次元1,レベル2}404、および{次元1,レベル3}406で示される同心の正方形を含み、次元内のそれぞれのより高いレベルは、包含された、より低いレベルのリソースアクセス特権を継承する。この視覚的表現では、402、404、および406として視覚的に表されるパーミッションセットの範囲はz軸に拡張できない場合があり、したがって、z軸に拡張し得る視覚的に表されたパーミッションセットのパーミッションを有していないことになる。
【0045】
[0052]しかしながら、第2の次元が考えられる場合、パーミッションセットはz軸への視覚的拡張として表され得、それによってパーミッションセット表現にボリュームを与える。言い換えれば、この例では、追加された次元は、{次元1,レベル1}内にないリソースパーミッションを含みながら、{次元1,レベル1}402として表されるパーミッションセットを包含する{次元2,レベル1}408を可能にし、{次元2,レベル2}410は、{次元2,レベル1}408、{次元1,レベル2}404、および{次元1,レベル1}401として表されるパーミッションセットを包含し、{次元2,レベル3}412は、{次元2,レベル2}410、{次元2,レベル1}408、{次元1,レベル3}406、{次元1,レベル2}404、および{次元1,レベル1}402として表されるパーミッションセットを包含する。
説明のためのプロセス認証コンポーネント
[0053]図5は、プロセス認証コンポーネントの実装形態における、選択された操作を示すフローチャート500を示している。図1に関して上述したように、プロセス認証コンポーネントは、実行可能ファイルに対応するプロセスを作成する前に、実行可能ファイルの真正性を決定することができる。
【0046】
[0054]上述のように、ほとんどのコンピューティングデバイスは、ユーザーが追加のソフトウェアまたはアプリケーションを、物理媒体から、またはワイヤレスにインストールすることを可能にするオペレーティングシステムを提供する。しかしながら、場合によっては、直接のユーザーガイダンスなしに、オペレーティングシステム自体が追加のソフトウェアをインストールし得る。いずれの場合でも、プロセス認証コンポーネントが実行可能ファイルにアクセスする、それをダウンロード、読取り、または受信し得る様々な方法がある。
【0047】
[0055]502に示されるように、プロセス認証コンポーネントは、暗号化されたデジタル署名を含む実行可能ファイルを受信することができる。この例では、実行可能ファイルはデジタル署名を含むように修正されているが、他の場合では、デジタル署名は別個に、またはデジタル署名を求める特定の要求に応答して提供され得る。
【0048】
[0056]504に示されるように、プロセス認証コンポーネントは、実行可能ファイルのためのデジタル署名に対応する復号鍵を選択または決定することができる。いくつかの実装形態では、復号鍵は、認証局から提供される公開鍵であり得、ソフトウェアパブリッシャまたはソフトウェアプロバイダーは、デジタル署名を作成するために対応する秘密鍵を使用する。他の実装形態では、ソフトウェアパブリッシャまたはソフトウェアプロバイダーは、デジタル署名を作成するために公開鍵を使用することができ、プロセス認証コンポーネントは、デジタル署名を復号するために秘密鍵を使用することになる。さらに、異なる実装形態では、ソフトウェアパブリッシャおよびプロセス認証コンポーネントは、それらのそれぞれの暗号鍵および復号鍵を取得するために、異なる方法を使用することができる。
【0049】
[0057]506に示されるように、復号鍵が選択または決定されると、プロセス認証コンポーネントは、デジタル署名、実行可能ファイルに基づいて、および復号鍵に基づいて、実行可能ファイルを認証することができる。たとえば、正常な復号は、真正の、または改ざんされていない実行可能ファイルを示すことになり、失敗した復号は、何らかの方法で破損する可能性がある実行可能ファイルを示すことになる。
【0050】
[0058]508に示されるように、実行可能ファイルの正常な認証に応答して、プロセス認証コンポーネントは、実行可能ファイルの実行に対応するシステムプロセスを作成、または作成を開始することができ、プロセスは、実行可能ファイルを認証するために使用された復号鍵に基づく次元およびレベルを割り当てられる。言い換えれば、セキュリティのレベルまたは信頼のレベルは、デジタル署名に従って決定された実行可能ファイルの識別に基づいて、作成されたプロセスに添付される。たとえば、ソフトウェアパブリッシャは、実行可能ファイルを実行するためのプロセスが割り当てられ得るのはどのタイプのリソースパーミッションかに応じて、デジタル署名を作成するために複数の異なる暗号鍵を使用することができる。
【0051】
[0059]いくつかの実装形態では、作成されたシステムプロセスの整合性を確実にするために、デジタル署名に関連付けられる次元は、作成されたプロセスの認証コンテキストに配置され得る。さらに、作成されたプロセスは、作成されたプロセスの次元へのアクセスを制限するセキュリティ記述子によって保護され得る。異なる実装形態では、このプロセス認証は動的にロードされたモジュールに適用され得る。いくつかの実装形態では、作成されたプロセス自体が追加のプロセスまたはシステムリソースを作成する場合、追加で作成されたプロセスまたはシステムリソースは、作成されたプロセスの信頼レベルと同じ信頼レベルを割り当てられることになる。言い換えれば、作成されたプロセスは、作成されたプロセスの信頼レベルを支配する信頼レベルでプロセスまたはシステムリソースを作成することができない。他の実装形態では、たとえば、オペレーティングシステムが認証偽装を実装する場合、作成されたプロセスは、作成されたプロセスの代わりに何らかの機能を実行するためのサービスを呼び出すことができ、サービスコールを実行しているプロセスの信頼レベルは、最初に作成されたプロセスおよびサービスの最小信頼レベルである。このように、呼び出されたサービスは、呼び出しているサービスを支配する信頼レベルで動作または実行せず、それにより、サービスがより高い信頼レベルで任意のシステムリソースまたはプロセスに影響を与えることを防止する。したがって、この例では、同じサービスは、呼出しプロセスの信頼レベルに応じて、異なる信頼レベルで異なるインスタンスで実行することができる。
【0052】
[0060]この実装形態では、プロセス認証コンポーネントは、図2に示された次元およびレベルに従って、リソースパーミッションセットを使用することができる。具体的には、この例では、ソフトウェアパブリッシャは、デジタル署名を作成するための6つの異なる暗号鍵のうちの1つを使用することができ、6つの異なる暗号鍵のうちのそれぞれは、{D1,L1}、{D1,L2}、{D1,L3}、{D2,L1}、{D2,L2}、または{D2,L3}の6つの異なる次元およびレベルタプルのうちの1つに対応し得る。このように、プロセス認証コンポーネントは、実行可能ファイルを正常に認証する際、どの復号鍵が暗号鍵に対応するかに応じて、{D1,L1}、{D1,L2}、{D1,L3}、{D2,L1}、{D2,L2}、または{D2,L3}の6つの異なる次元およびレベルタプルのうちの1つに対応するリソースパーミッション信頼レベルで実行可能ファイルを実行するためにプロセスを作成することができる。さらに、いくつかの実装形態では、リソースに特有のリソースパーミッションの各セット、または複数のセットは、たとえば、十分な権限を有するシステム管理者から提供されるマッピングに従って、所与の信頼レベルにマッピングされ得る。
【0053】
[0061]さらに、作成されたプロセスは、リソースアクセス特権に対応する次元およびレベルを指定するメタデータでタグ付けされ得る。いくつかの実装形態では、それ以外の場合は、プロセス認証コンポーネントは、プロセスと、リソースアクセス特権に対応する次元とレベルとを関連付けることができる。
説明のためのリソースパーミッションコンポーネント
[0062]図6は、オペレーティングシステムのセキュアな処理システム内で動作するリソースパーミッションコンポーネントの実装形態における選択された動作を示すフローチャート600を示している。リソースパーミッションコンポーネントは、システムリソースが読取り、移動、編集、または任意のタイプの修正のためにシステムリソースの現在の状態からアクセスされるときはいつでも、セキュアな処理システム内で使用され得る。「システムリソース」という用語は、初期システムインストール中、またはその後の任意の時間にシステムにインストールされた追加のアプリケーションのリソースを潜在的に含むように理解され得る。
【0054】
[0063]この説明のための実装形態では、様々な場合において、オペレーティングシステム内の所与のプロセスが、いくつかの時点でシステムリソースへのアクセスを試みることができ、リソースパーミッションコンポーネントは、プロセスがシステムリソースへのアクセスを与えられ得るか否かを決定することができる。たとえば、プロセスは、特定のシステムリソースへのアクセスを要求することができる。602に示されるように、プロセスからリソースへのアクセスを求める要求が受信され得る。それに応じて、604に示されるように、システムリソースにアクセスするために十分な最小次元および最小レベルが決定され得る。
【0055】
[0064]異なる実装形態では、次元およびレベル情報は、システムリソースに関連付けられるメタデータ内に記憶され得る。図3に関連して論じられるように、信頼レベルの各ペア間の支配関係を指定するマッピングが提供され得る。システムリソースがソフトウェア要素である場合、メタデータは、システムリソースの一部として記憶され得る。しかしながら、場合によっては、メタデータは、リソースパーミッションをシステムリソースに関連付ける表または他のタイプのデータ構造に記憶され得る。
【0056】
[0065]606に示されるように、リソース要求を行うプロセスに対応する次元およびレベル情報が決定される。異なる実装形態では、604と606とに関連する動作は交換され得る。所与のプロセスについての次元およびレベル情報はシステムファイル、またはレジスタ、あるいは、プロセスを、リソースパーミッションを指定するメタデータに関連付ける他の何らかのデータ構造内に記憶され得る。
【0057】
[0066]いくつかの実装形態では、要求されたアクセスをプロセスまたはユーザーに与えるか否かを決定するために、リソースパーミッションコンポーネントは、2つの比較を行うことができる。1つの比較は、プロセスに関連付けられる次元が十分か否かを決定することであり得、もう1つの比較は、プロセスに関連付けられるレベルが十分か否かを決定することであり得る。言い換えれば、608に示されるように、プロセスに関連付けられる次元が、システムリソースにアクセスするために十分な次元を支配する場合、および、プロセスに関連付けられるレベルがシステムリソースにアクセスするために十分なレベルを支配する場合、システムリソースへのアクセスが与えられる。
説明のためのセキュアな処理モジュール
[0067]図7は、追加のコンピューティング要素を有する、図1に関連して上述したコンピューティングデバイス102を示しており、コンピューティングデバイス102は、セキュアな処理システムを実装するように構成され得る。具体的には、コンピューティングデバイス102は、セキュアな処理システムの様々な実装形態を実行するように構成され得るコンピューターシステム104を含み得る。次に、セキュアな処理システムは、プロセス認証コンポーネント108とリソースパーミッションコンポーネント110とを含む、セキュアな処理モジュール106で実装され得る。
【0058】
[0068]異なる実装形態に関して上述したように、プロセス認証コンポーネントは、署名照合を実行するために、および所与のデジタル署名を対応する信頼レベルにマッピングするために動作することができ、リソースパーミッションコンポーネントによって特定のパーミッションセットにマッピングされ得る。この例では、プロセス認証コンポーネント108の一部として、署名検証モジュール702が、デジタル署名に対応する実行可能ファイルを認証するための適切な復号鍵を決定するために役立つことができる。さらに、どの復号鍵が実行可能ファイルを認証するために役立つかに応じて、プロセス認証コンポーネント108の署名マッピングモジュール704は、デジタル署名に対応する次元およびレベルを決定して、実行可能ファイルを実行するために作成されたプロセスをタグ付けすることができる。様々な暗号および/または復号鍵、たとえば暗号鍵126および/または復号鍵128は、メモリ706内に記憶され得る。
【0059】
[0069]異なる実装形態に関して上述したように、リソースパーミッションコンポーネント110は、システムリソースにアクセスするためのプロセス要求に応答して、リソースにアクセスするために十分な最小パーミッションを決定して、リソースのための次元およびレベルのパーミッションがリソースにアクセスするために十分か否かを決定する。この実装形態では、リソースパーミッションコンポーネント110の一部として、レベル検証モジュール708は、所与の次元およびレベルのパーミッションを有するプロセスが所与のリソースにアクセスできるかどうかを決定するための計算を実行するために役立つことができる。場合によっては、これらの比較計算は並列に実行され得る。たとえば、コンピューターシステム104は、特殊な命令が、プロセスの次元およびレベル、ならびにリソースにアクセスするために十分な次元およびレベルのオペランドを定義するように、特殊な命令を実装することができる。さらに、特殊な命令のオペランドは、次元およびレベル比較を同時に実行するハードウェア要素への入力として役立つことができ、リソースへの許可が与えられるか否かを示すフラグ値を出力する。この例では、この並列の次元およびレベル計算は、次元/レベル(D/L)比較器710で実行され得る。
【0060】
[0070]いくつかの実装形態では、プロセスの所与の次元およびレベルが、少なくとも所与の次元およびレベルを要求するリソースにアクセスするために十分かどうかを決定するための仕様は、リソースパーミッションセット仕様712内に記憶され得る。
【0061】
[0071]図7は、コンピューティングデバイス102の追加のコンポーネントをさらに示している。異なる実装形態では、コンピューターシステムは、これに限定されないが、パーソナルコンピューターシステム、デスクトップコンピューター、ラップトップ、ノートブック、またはネットブックコンピューター、メインフレームコンピューターシステム、ハンドヘルドコンピューター、ワークステーション、ネットワークコンピューター、カメラ、セットトップボックス、モバイルデバイス、消費者デバイス、ビデオゲームコンソール、ハンドヘルドビデオゲームデバイス、アプリケーションサーバ、ストレージデバイス、テレビ、ビデオ録画デバイス、スイッチ、モデム、ルータなどの周辺デバイス、または一般的に任意のタイプのコンピューティングデバイスまたは電子デバイスを含む、様々なタイプのデバイスのうちのいずれかであり得る。
【0062】
[0072]一実装形態では、コンピューターシステム104は、システムメモリ716に結合された1つまたは複数のプロセッサ714を含む。1つまたは複数のプロセッサ714は、コンピューター可読媒体に関連付けて記憶されたデータを処理するように構成され得る。コンピューター可読媒体は、少なくとも2つのタイプのコンピューター可読媒体、すなわち、コンピューターストレージ媒体と通信媒体とを含む。
【0063】
[0073]コンピューターストレージ媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するために任意の方法および技術で実装された、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含む。コンピューターストレージ媒体は、これに限定されないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいはコンピューティングデバイス102によってアクセスするための情報を記憶するために使用され得る他の任意の非伝送媒体を含む。
【0064】
[0074]対照的に、通信媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の伝送機構などの変調されたデータ信号で具現化し得る。本明細書に定義されるように、コンピューターストレージ媒体は、通信媒体を含まない。
【0065】
[0075]コンピューターシステム104もまた、1つまたは複数のプロセッサ714にアクセス可能なメモリ716を含み得る。データストレージ718を含むメモリ716は、コンピューターストレージ媒体の一例である。さらに、コンピューターシステム104は、コンピューティングデバイス102と他のコンピューティングデバイスとの間の通信を容易にし得る1つまたは複数の通信インターフェース720を含み得る。具体的には、通信インターフェース720は、ネットワーク112によって表される1つまたは複数のネットワークを介する通信を容易にするために、1つまたは複数のワイヤードネットワーク通信インターフェース、1つまたは複数のワイヤレス通信インターフェース、あるいはその両方を含み得る。ネットワーク112は、インターネット、ケーブルネットワーク、衛星ネットワーク、広域ワイヤレス通信ネットワーク、ワイヤードローカルエリアネットワーク、ワイヤレスローカルエリアネットワーク、公衆交換電話網(PSTN)などの、複数の異なるタイプのワイヤードおよびワイヤレスネットワークのいずれか1つ、またはその組合せを表すことができる。
【0066】
[0076]さらに、コンピューターシステム104は、入力/出力デバイス722を含み得る。入力/出力デバイス722は、キーボード、ポインティングデバイス(たとえば、マウスまたはスタイラス)、タッチスクリーン、1つまたは複数の画像キャプチャデバイス(たとえば、1つまたは複数のカメラ)、1つまたは複数のマイクロフォン、ディスプレイ、スピーカーなどを含み得る。
【0067】
[0077]ある実装形態では、本発明の実装形態は、コンピューターシステムの単一のインスタンスを使用して実装され得ることが企図され、他の実装形態では、そのような複数のシステム、またはコンピューターシステムを構成する複数のノードに実装されてもよく、実装形態の異なる部分またはインスタンスをホストするように構成されてもよい。たとえば、一実装形態では、いくつかの要素が、他の要素を実装しているノードとは異なるコンピューターシステムの1つまたは複数のノードを介して実装され得る。
【0068】
[0078]コンピューターシステム内のメモリは、本明細書に記載の実装形態のそれぞれを実装するように構成されたプログラム命令724を含み得る。一実装形態では、プログラム命令は、本明細書で論じたモジュールの実装形態のソフトウェア要素を含み得る。コンピューターシステム内のデータストレージは、他の実装形態で使用され得るデータを含み得る。
【0069】
[0079]一般的に、コンピューター実行可能命令は、特定の機能を実行する、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記述される順序は限定と見なされることが意図されるものではなく、任意の数の記述されたブロックは、プロセスを実装するために任意の順序で、または並列に結合され得る。
結論
[0080]主題を構造的特徴に固有の言語で説明してきたが、添付の特許請求の範囲で定義される主題は、必ずしも説明される特定の特徴に限定されるものではないことが理解されるべきである。むしろ、特定の特徴は、特許請求の範囲を実装している説明のための形態として開示されている。
図1
図2
図3
図4
図5
図6
図7