(57)【特許請求の範囲】
【請求項１】
プロセスのシステムリソースへのアクセスを許可するためのシステムであって、該システムは、
１以上のプロセッサと、
前記１以上のプロセッサと通信するように結合されたメモリデバイスと
を備え、前記メモリデバイスは、
プロセス認証コンポーネントであって、前記１以上のプロセッサに、
デジタル署名を含む実行可能ファイルを受信する動作と、
前記デジタル署名を生成するのに用いられた秘密暗号化鍵に対応する公開復号化鍵を選択する動作と、
前記実行可能ファイルを、前記デジタル署名を前記公開復号化鍵で検証することにより認証する動作と、
認証された前記実行可能ファイルを実行するためのプロセスを作成し、該プロセスに、前記公開復号化鍵に基づいて、次元及びレベルの双方を割り当てる動作であって、前記次元は複数のランク付けされた次元のうちの１つであり、前記レベルは複数のランク付けされたレベルのうちの１つである、動作と
を含む動作を行わせる前記プロセス認証コンポーネントと、
リソースパーミッションコンポーネントであって、前記１以上のプロセッサに、
前記プロセスからシステムリソースにアクセスするリクエストを受信する動作と、
前記システムリソースにアクセスするのに十分な最小次元及び最小レベルを求める動作と、
前記プロセスの前記システムリソースへのアクセスを、前記プロセスに割当てられた前記次元が前記システムリソースにアクセスするのに十分であると求められた前記最小次元以上であり、且つ、前記プロセスに割当てられた前記レベルが前記システムリソースにアクセスするのに十分であると求められた前記最小レベル以上であることに少なくとも基づいて許可する動作と、
前記プロセスに割当てられた前記次元が前記システムリソースにアクセスするのに十分であると求められた前記最小次元未満であること、又は、前記プロセスに割当てられた前記レベルが前記システムリソースにアクセスするのに十分であると求められた前記最小レベル未満であることの何れかに少なくとも基づいて、前記プロセスの前記システムリソースへのアクセスを拒否する動作と
を含む動作を行わせる前記リソースパーミッションコンポーネントと
を記憶し、前記プロセスに割当てられた前記次元は２つの次元のうちの第１の次元であり、前記第１の次元は第１の複数のレベルに対応し、前記２つの次元のうちの第２の次元は第２の複数のレベルに対応し、前記第２の複数のレベルには、前記第１の複数のレベルよりも多くのレベルが存在する、システム。
【請求項２】
請求項１に記載のシステムであって、
前記複数のランク付けされたレベルのうちのレベルが、前記複数のランク付けされた次元のうちの少なくとも２つの異なる次元内であることに少なくとも基づいて、
より低い次元内であるより高いレベルは、より高い次元内である如何なるレベルのリソースパーミッションも継承せず、
より高い次元内のより高いレベルは、より低い次元内である前記より高いレベル以下であるレベルのリソースパーミッションを継承し、
前記複数のランク付けされたレベルのうちのレベルが、１つの次元内であることに少なくとも基づいて、より高いレベルは、より低いレベルの全てのリソースパーミッションを継承する、システム。
【請求項３】
請求項１又は２に記載のシステムであって、前記公開復号化鍵を選択する動作は、複数の公開復号化鍵から、選択される前記公開復号化鍵が、前記デジタル署名を復号化する特定の公開復号化鍵であると判定する動作を含む、システム。
【請求項４】
請求項１又は２に記載のシステムであって、前記公開復号化鍵を選択する動作は、
前記実行可能ファイルのパブリッシャのアイデンティティを求める動作と、
認証局に、複数の公開復号化鍵についてのリクエストを送信する動作と、
前記認証局から、前記複数の公開復号化鍵を含むレスポンスを受信する動作と、
前記複数の公開復号化鍵から、選択される前記公開復号化鍵が、前記デジタル署名を復号化する特定の公開復号化鍵であると判定する動作と
を含む、システム。
【請求項５】
請求項１又は２に記載のシステムであって、前記公開復号化鍵を選択する動作は、
前記実行可能ファイルのパブリッシャのアイデンティティを求める動作と、
認証局に、前記デジタル署名に対応する前記公開復号化鍵についてのリクエストを送信する動作であって、前記リクエストは、前記デジタル署名を含む、動作と、
前記認証局から、前記公開復号化鍵を含むレスポンスを受信する動作と
を含む、システム。
【請求項６】
請求項１又は２に記載のシステムであって、前記デジタル署名は、複数の秘密暗号化鍵のうちの１つを用いて作成され、前記複数の秘密暗号化鍵の各々は、次元及びレベルの異なる組み合わせにマッピングされた、システム。
【請求項７】
請求項１又は２に記載のシステムであって、ある次元内の少なくとも１つのレベルは、システム操作のために予約され、人間である如何なるユーザに対しても許可されない、システム。
【請求項８】
請求項１又は２に記載のシステムであって、前記プロセスに前記次元及び前記レベルを割り当てる動作は、オペレーティングシステム内の前記プロセスを、前記次元及び前記レベルを特定するメタデータでタグ付けする動作を更に含む、システム。
【請求項９】
１以上のコンピューティングデバイスが、
デジタル署名を含む実行可能ファイルを受信するステップと、
前記デジタル署名に対応する公開復号化鍵を選択するステップと、
前記実行可能ファイルを、前記デジタル署名を前記公開復号化鍵で検証することにより認証するステップと、
前記実行可能ファイルの認証に応答して、認証された前記実行可能ファイルを実行するためのプロセスを作成するステップと、
前記プロセスに、前記公開復号化鍵に基づいて、次元及びレベルの双方を割り当てるステップであって、前記次元は複数のランク付けされた次元のうちの１つであり、前記レベルは複数のランク付けされたレベルのうちの１つである、ステップと、
前記プロセスからシステムリソースにアクセスするリクエストを受信するステップと、
前記システムリソースにアクセスするのに十分な最小次元及び最小レベルを求めるステップと、
前記プロセスの前記システムリソースへのアクセスを、前記プロセスに割当てられた前記次元が前記システムリソースにアクセスするのに十分であると求められた前記最小次元以上であり、且つ、前記プロセスに割当てられた前記レベルが前記システムリソースにアクセスするのに十分であると求められた前記最小レベル以上であることに少なくとも基づいて許可するステップと
を含み、前記プロセスに割当てられた前記次元は２つの次元のうちの第１の次元であり、前記第１の次元は第１の複数のレベルに対応し、前記２つの次元のうちの第２の次元は第２の複数のレベルに対応し、前記第２の複数のレベルには、前記第１の複数のレベルよりも多くのレベルが存在する、方法。
【請求項１０】
請求項９に記載の方法であって、
前記複数のランク付けされたレベルのうちのレベルが、前記複数のランク付けされた次元のうちの少なくとも２つの異なる次元内であることに少なくとも基づいて、
より低い次元内であるより高いレベルは、より高い次元内である如何なるレベルのリソースパーミッションも継承せず、
より高い次元内のより高いレベルは、より低い次元内である前記より高いレベル以下であるレベルのリソースパーミッションを継承し、
前記複数のランク付けされたレベルのうちのレベルが、１つの次元内であることに少なくとも基づいて、より高いレベルは、より低いレベルの全てのリソースパーミッションを継承する、方法。
【請求項１１】
請求項９又は１０に記載の方法であって、前記２つの次元のうちの前記第１の次元内の少なくとも１つのレベルは、システム操作のために予約され、人間である如何なるユーザに対しても許可されない、方法。
【請求項１２】
請求項９又は１０に記載の方法であって、前記デジタル署名は、複数の秘密暗号化鍵のうちの１つを用いて作成され、前記複数の秘密暗号化鍵の各々は、次元及びレベルの異なる組み合わせにマッピングされた、方法。
【請求項１３】
請求項９又は１０に記載の方法であって、前記公開復号化鍵を選択するステップは、複数の公開復号化鍵から、選択される前記公開復号化鍵が、前記デジタル署名を復号化する特定の公開復号化鍵であると判定するステップを含む、方法。
【請求項１４】
請求項９又は１０に記載の方法であって、複数の次元及び複数のレベルが存在し、前記複数の次元のうちの第１の次元内の少なくとも１つのレベルは、システム操作のために予約され、人間である如何なるユーザに対しても許可されない、方法。
【請求項１５】
請求項９又は１０に記載の方法であって、前記プロセスに前記次元及び前記レベルを割り当てるステップは、オペレーティングシステム内の前記プロセスを、前記次元及び前記レベルを特定するメタデータでタグ付けするステップを更に含む、方法。
【請求項１６】
１以上のプロセッサに動作を行わせるプログラムであって、前記動作は、
デジタル署名を含む実行可能ファイルを受信する動作と、
複数の公開復号化鍵から、前記デジタル署名を生成するのに用いられた秘密暗号化鍵に対応する公開復号化鍵を求める動作であって、前記複数の公開復号化鍵の各々は異なる信頼レベルにマッピングされ、前記信頼レベルは、次元のパラメータ及びレベルのパラメータに従い｛Ｄ，Ｌ｝として定義されるタプルである、動作と、
前記実行可能ファイルを、前記デジタル署名を前記公開復号化鍵で検証することにより認証する動作と、
前記実行可能ファイルの認証に応答して、認証された前記実行可能ファイルを実行するためのプロセスを作成する動作と、
特定の信頼レベルにマッピングされた前記公開復号化鍵に基づいて、信頼レベルを前記プロセスに割当てる動作と、
前記プロセスから、システムリソースにアクセスするリクエストを受信する動作と、
前記システムリソースにアクセスするのに十分な信頼レベルを求める動作と、
前記プロセスの前記システムリソースへのアクセスを、前記プロセスに割当てられた前記信頼レベル｛Ｄｐ，Ｌｐ｝が前記システムリソースにアクセスするのに十分な前記信頼レベル｛Ｄａ，Ｌａ｝を満たしていることに基づいて許可する動作であって、前記プロセスに割当てられた前記信頼レベルは、Ｄｐ≧Ｄａ且つＬｐ≧Ｌａであることに少なくとも基づいて、前記システムリソースにアクセスするのに十分な前記信頼レベルを満たす、動作と
を含み、前記プロセスに割当てられた前記信頼レベルのうちの次元のパラメータは２つの次元のうちの第１の次元を示し、前記第１の次元は第１の複数のレベルに対応し、前記２つの次元のうちの第２の次元は第２の複数のレベルに対応し、前記第２の複数のレベルには、前記第１の複数のレベルよりも多くのレベルが存在する、プログラム。
【請求項１７】
請求項１６に記載のプログラムであって、
より低い次元内であるより高いレベルは、より高い次元内である如何なるレベルのリソースパーミッションも継承せず、
より高い次元内のより高いレベルは、より低い次元内である前記より高いレベル以下であるレベルのリソースパーミッションを継承し、
１つの次元内であるより高いレベルは、前記１つの次元内であるより低いレベルの全てのリソースパーミッションを継承する、プログラム。
【請求項１８】
請求項１６又は１７に記載のプログラムであって、前記信頼レベルを前記プロセスに割当てる動作は、オペレーティングシステム内の前記プロセスを、前記次元及び前記レベルを特定するメタデータでタグ付けする動作を更に含む、プログラム。
【請求項１９】
請求項１６又は１７に記載のプログラムであって、前記デジタル署名は、複数の秘密暗号化鍵のうちの１つを用いて作成され、前記複数の秘密暗号化鍵の各々は、次元及びレベルの異なる組み合わせにマッピングされた、プログラム。
【請求項２０】
請求項１６から１９のうちの何れか一項に記載のプログラムを記憶した１以上のコンピュータ可読記憶デバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]ほとんどのオペレーティングシステムは、プロセスが認証され、システムリソースへのパーミッション（ｐｅｒｍｉｓｓｉｏｎ；アクセス許可）が定義されて実施される、セキュアな処理環境を提供するために努力している。基本的な例として、オペレーティングシステムは、管理者用とユーザー用との２つのタイプのパーミッションレベルを提供することができる。管理者は、ファイル、ディレクトリ、およびシステム構成設定を含む、すべてのシステムリソースにアクセスすることができる。対照的に、ユーザーは、システムリソースの厳重なサブセットへのアクセスが制限される場合がある。認証プロセスに関しては、多くのモデルが、ソフトウェアが取得されるチャネルの信頼性に依存している。
【０００２】
[0002]典型的な環境では、オペレーティングシステムは、リソース許可レベルを指定するための同心モデル（ｃｏｎｃｅｎｔｒｉｃ  ｍｏｄｅｌ）を使用し、異なる許可レベルは、増加する許可のレベルがすべてのより低いレベルのパーミッションのすべてを継承するように、同心モデルにおける異なる同心円に対応する。そのようなパーミッションの同心モデルは、非常に高速なパーミッションの決定を提供する。
【０００３】
[0003]別の典型的な環境では、オペレーティングシステムは、個々のユーザーが特定のパーミッションのセットで指定される、個々の必要性に応じたパーミッションシステムを使用することができる。そのようなモデルは非常に個別化されたパーミッションの定義を提供するが、このモデルは、システムリソースにアクセスするためのパーミッション要求を検証するためのより計算集約的な方法を必要とすることに悩まされる。
【発明の概要】
【０００４】
[0004]本明細書に記載の技法およびシステムは、実行するためのプロセスを認証するための、またプロセスとユーザーのシステムリソースに対するパーミッション制限を指定して実施するための、セキュアな処理モデルの様々な実装形態を提示する。
【０００５】
[0005]いくつかの実装形態では、プロセスが作成される前に、オペレーティングシステムが、ソフトウェアパブリッシャ（ｓｏｆｔｗａｒｅ  ｐｕｂｌｉｓｈｅｒ）が意図したようにソフトウェアパブリッシャから実行可能ファイルが受信されることを確認するために復号鍵を使用できるように、実行可能ファイルに含まれるデジタル署名に基づいて実行可能ファイルが認証され得る。たとえば、アプリケーション、プログラム、またはプロセスの実行可能ファイルは、オペレーティングシステムが、対応する復号鍵を用いてデジタル署名を認証できるように、暗号鍵で暗号化されたデジタル署名を含むように拡張され得る。実行可能ファイルが認証されると、オペレーティングシステムは、実行可能ファイルを実行するためのプロセスを作成することができる。
【０００６】
[0006]さらに、オペレーティングシステムは、対応する実行可能ファイルのためのデジタル署名に基づいて、どのタイプのパーミッションがプロセスのために許可されるかを示すメタデータで、プロセスをタグ付けすることができる。メタデータは、所与のレベルにとって、必ずしもより高いレベルのパーミッションがより低いレベルのパーミッションを継承するとは限らないので、次元およびレベルによって定義されるリソース許可情報に対応し得る。
【０００７】
[0007]この概要は、以下の詳細な説明においてさらに説明される概念の選択を簡略化された形態で紹介するために提供される。この概要は、クレームに記載された対象の主要な特徴または本質的な特徴を特定することが意図されるものではなく、クレームに記載された対象の範囲を限定するために使用されることが意図されるものでもない。
【図面の簡単な説明】
【０００８】
【図１】[0008]デバイスが、プロセス認証コンポーネントとリソースパーミッションコンポーネントとを含むセキュアな処理モジュールを実装する、例示的なコンピューティング環境を示す図である。
【図２】[0009]いくつかの実装形態による、リソースパーミッションを指定するために利用され得る次元とレベルとの間の第１の例示的な関係を示す図である。
【図３】[0010]いくつかの実装形態による、リソースパーミッションを指定するために利用され得る次元とレベルとの間の第２の例示的な関係を示す図である。
【図４】[0011]いくつかの実装形態による、様々なリソースパーミッションセットを示す次元およびレベルの例を示す図である。
【図５】[0012]いくつかの実装形態による、プロセスの信頼の次元およびレベルが指定された要件を満たす場合、システムリソースへのアクセスを有するプロセスを提供するための方法を示すフローチャートである。
【図６】[0013]いくつかの実装形態による、プロセスを認証した後にプロセスに次元およびレベルを割り当てる方法のフローチャートである。
【図７】[0014]いくつかの実装形態による、プロセス認証コンポーネントとリソースパーミッションコンポーネントとを含むセキュアな処理モジュールを実装するように構成され得るコンピューティングデバイスを示す図である。
【発明を実施するための形態】
【０００９】
[0015]本明細書に記載の技法およびシステムは、実行するためのプロセスを認証するための、ならびにプロセスおよび／またはユーザーのシステムリソースに対するパーミッション制限を指定して実施するための、セキュアな処理システムの様々な実装形態を対象とする。セキュアな処理システム内で、プロセス認証コンポーネントはプロセスを認証するために役立つことができ、リソースパーミッションコンポーネントは、次元とレベルとの組合せを使用して、パーミッション制限を指定して実施するために役立つことができる。
【００１０】
[0016]場合によっては、オペレーティングシステムがいかなるタイプの認証もなしに実行可能ファイルのためのプロセスを単に作成する場合、実行可能ファイルがウィルスを含むように変更されたおそれがある。この場合、オペレーティングシステムが実行可能ファイルを実行するためのプロセスを作成すると、オペレーティングシステムにウィルスが取り込まれてしまう。この問題に対処するために、いくつかの実装形態では、実行可能ファイルがいかなる改ざんまたは変更なしにソフトウェアプロバイダーまたはパブリッシャから受信されたか否かを判断するために、ソフトウェアパブリッシャは、オペレーティングシステムが実行可能ファイルを認証できるように、実行可能ファイルにデジタル署名を提供することができる。デジタル署名は、暗号鍵を使用してソフトウェアパブリッシャによって作成され得る。さらに、いくつかの実装形態では、ソフトウェアパブリッシャの識別は、暗号鍵または復号鍵から決定され得る。次に、オペレーティングシステムは、デジタル署名を復号することに基づいて実行可能ファイルを認証するために、暗号鍵に対応する復号鍵を使用することができる。いくつかの実施態様では、所与のソースからのソフトウェアが信頼できるものであることを決定する際に、非対称暗号化技法が使用され得る。たとえば、デジタル署名は秘密鍵を使用して作成され得、デジタル署名は公開鍵を用いて復号され得る。
【００１１】
[0017]システムを損傷から保護するため、あるいは極秘または機密ユーザー情報を保護するために、いくつかのコンテキストを提供するために、オペレーティングシステムは、特定のシステムプロセスが、保護されたプロセスにコードを書き込むことなどの悪意のある行為を実行すること、またはマルウェア検出ソフトウェアを無効にすることを防ぐために努力することができる。さらに、オペレーティングシステム内で、プライバシーまたはセキュリティを提供するために、オペレーティングシステムは、すべてのユーザーまたはプロセスが任意のまたはすべてのシステムリソースをアクセスまたは修正することを許可しない場合がある。システムリソースは、ファイル、ディレクトリ、または任意のタイプのソフトウェア要素であり得る。さらに、システムリソースはまた、とりわけ、任意のハードウェア要素、たとえば、Ｉ／Ｏポート、特定の処理装置、ストレージデバイス、またはメモリの領域であり得る。
【００１２】
[0018]いくつかの実装形態では、オペレーティングシステムは、可能な最高レベルのユーザーアクセスを有するユーザーが特定のシステムリソースにアクセスすることさえも制限することがある。さらに、オペレーティングシステムは、特定のセットのシステムプロセスへのリソースアクセスの次元およびレベルを確保し、任意のユーザーを同じレベルのリソースアクセスから防ぐことができる。本明細書で使用されるように、レベルのセットに加えて、次元は、同心円状に、または階層的に継承されたパーミッションレベルを使用するよりも柔軟な、システムリソースにアクセスするためのパーミッションのセットを指定する機能を備えたリソースパーミッションコンポーネントを提供する。さらに、いくつかの実装形態では、次元とレベルとの特定の組合せは、信頼レベル、またはタプルと呼ばれ得る。２つの次元を使用するある実装形態では、｛次元（ＤＩＭＥＮＳＩＯＮ），レベル（ＬＥＶＥＬ）｝などのタプルは、（１）次元と、（２）レベルとの２つのパラメータに従って定義され得る。一般的に、信頼レベル、すなわちタプルは、追加の次元に従って定義され得る。たとえば、２つの次元を使用するある実装形態では、対応するタプルは２次元タプルと呼ばれ得る。同様に、Ｎ次元を使用するある実装形態では、対応するタプルは、Ｎ次元タプルと呼ばれ得、Ｎパラメータに従って定義され得る。
【００１３】
[0019]異なる実装形態では、次元とレベルとの組合せの使用を通じて、リソースパーミッションコンポーネントは、同心円状に、および階層的に継承されたリソースパーミッションを超えるリソースパーミッションのセットを指定することができる。言い換えれば、リソースパーミッションコンポーネントは、多次元および追加の同心パーミッションセットを指定することができる。さらに、パーミッションセットは、１つのパーミッションセットが、より低いレベルのパーミッションセットのすべてのパーミッションを必ずしも含まないように定義され得る。代わりに、異なる実装形態では、オペレーティングシステム内のプロセスは、別個の、しかし関連するパーミッションセットが、より低いレベルのパーミッションセットのすべてのパーミッションを継承しないように、リソース許可情報でタグ付けされ得る。
【００１４】
[0020]いくつかの実施形態では、リソースパーミッションコンポーネントは、ユーザーまたはプロセスがシステムリソースにアクセスするための十分なパーミッションを有するかどうかを決定するために必要なのは２つの比較だけである場合があるので、リソースパーミッションを指定する際に次元およびレベルを使用することは、システムリソースへのアクセスを与えるか否かを決定する計算の複雑性を大幅に減らす。言い換えれば、次元およびレベルを使用することにより、パーミッションセットの継承は、より低いレベルのパーミッションセットのすべてのパーミッションを継承しない、関連するが別個のパーミッションセットと組み合わされる。いくつかの実施形態では、次元は、異なるセットのパーミッションのレベルの関連を指定するために役立つ。
【００１５】
[0021]言い換えれば、いくつかの実施形態では、プロセスまたはユーザーがリソースにアクセスできるかどうかは、単に階層的でも、単に同心セットの問題でもなく、他の次元およびレベルへのアクセスを有することに関する次元とレベルとの様々な組合せは、様々な方法で構成され得る。
例示的実装形態
[0022]図１は、セキュアな処理モジュール１０６と、プロセス認証コンポーネント１０８と、リソースパーミッションコンポーネント１１０とを実装するように構成され得るコンピューターシステム１０４を含むデバイス１０２を含む、コンピューティング環境１００を示している。この実装形態では、デバイス１０２は、ユーザーが、たとえばオンラインアプリケーションストアを使用して、あるいはワイヤレスリンクまたはリムーバブルメモリカードを介して、あるいはソフトウェアにアクセスするための他の何らかの方法を通じて、新しいソフトウェアをインストールすることを可能にするオペレーティングシステムを提供することができる。
【００１６】
[0023]特定の実装形態では、デバイス１０２は、ソフトウェアパブリッシャによって提供され得るネットワーク１１２などのネットワークを介して、ソフトウェアにアクセスすることができる。この例では、ソフトウェアパブリッシャは、ソフトウェアを提供するためにデバイス１０２と通信し得るソフトウェアパブリッシャサーバ１１４を提供することができる。ソフトウェアパブリッシャサーバ１１４は、ソフトウェアパブリッシャデータストア１１６上に、ソフトウェアのための実行可能ファイルを記憶することができる。この例では、ソフトウェアパブリッシャによって提供される実行可能ファイルは、実行可能ファイル１１８であり得る。一般的に、実行可能ファイルは、オペレーティングシステム内で実行するためのソフトウェアプロセスを作成するための基礎として使用され得る任意のファイルであり得る。実行可能ファイルはまた、当技術分野の他の用語のうち、バイナリファイル、バイナリ、または実行可能プログラム、動的にロードされたモジュールとも呼ばれ得る。
【００１７】
[0024]上述のように、実行可能ファイルは、デジタル署名１２０などのデジタル署名を含み得る。この例では、デジタル署名は実行可能ファイル内に埋め込まれるが、他の例では、デジタル署名は、実行可能ファイルを求める要求に応答して、またはデジタル署名を求める別の、および特定の要求に応答して、実行可能ファイルとは別に提供され得る。さらに、いくつかの実装形態では、デジタル署名を作成する際に使用される暗号鍵と、デジタル署名を使用して実行可能ファイルを認証する際に使用される復号鍵とは、認証局１２２などの認証局から管理され得る。今度は、認証局１２２は、認証局データストア１２４内に暗号鍵１２６と復号鍵１２８とを記憶し得る。
【００１８】
[0025]ある説明のための実装形態では、オペレーティングデバイス１０２であり得るユーザーは、ソフトウェアアプリケーションのダウンロードを開始することもでき、ソフトウェアプログラムをインストールすることを選択することもできる。たとえば、ユーザーは、ウェブブラウザを通じて、ソフトウェアダウンロードを提供する所与のウェブサイトにナビゲートすることができる。他の場合では、ユーザーは、ソフトウェアのインストールを見つけて開始するためのアプリケーションストアインターフェースを使用することもでき、ユーザーは物理的媒体に、または直接ワイヤレスリンクを介して、アクセスすることもできる。しかしながら、ソフトウェアがアクセスされる方法は、実行可能ファイルの認証には関係ない。
【００１９】
[0026]この例では、ユーザーがソフトウェアアプリケーションのダウンロードおよびインストールを開始することに応答して、ソフトウェアパブリッシングサーバ１１４は、ソフトウェアパブリッシャデータストア１１６に記憶された実行可能ファイル１１８を送信することができる。さらに、この例では、実行可能ファイル１１８はデジタル署名１２０を含み得る。この例では、ソフトウェアパブリッシャまたはソフトウェア開発者は、実行可能ファイルを作成する際に、暗号鍵を使用してデジタル署名を作成することができる。
【００２０】
[0027]この例では、公開鍵と秘密鍵とを有する非対称暗号方式が使用されるが、異なるタイプの暗号化技法が使用され得る。この実装形態では、ソフトウェアパブリッシャまたは開発者は、実行可能ファイルがインストールされるオペレーティングシステムが、実行可能ファイルの真正性を検証するためにデジタル署名に復号鍵として公開鍵を使用するという見込みで、デジタル署名を作成するために暗号鍵として秘密鍵を使用することができる。
【００２１】
[0028]図１の説明のための実装形態に示されるように、認証局１２２は、暗号鍵１２６および復号鍵１２８などの、暗号および／または復号鍵を記憶して提供するための信頼される中間物として使用され得る。たとえば、認証局１３０は、デジタル署名を作成する際にソフトウェアパブリッシャによって使用される暗号鍵に対応する必要な復号鍵をデバイス１０２に提供することができる。しかしながら、他の場合では、デバイス１０２上のオペレーティングシステムとソフトウェアパブリッシャサーバ１１４とは、他の方法を通じて、たとえば認証局を使用せずに、必要な暗号鍵と復号鍵とを取得することができる。
【００２２】
[0029]この実装形態では、デバイス１０２上のリソースパーミッションコンポーネント１１０が、ダウンロードされた実行可能ファイル上のデジタル署名に適用するための公開鍵を有すると、次いで、デバイス１０２上のリソースパーミッションコンポーネント１１０は、デジタル署名と正常な復号とに基づいて、実行可能ファイルが本物か、および／または改ざんされていないかどうかを決定することができる。さらに、セキュアな処理システムのいくつかの実装形態では、プロセス認証コンポーネントが単独で実装されてよく、そのようなスタンドアロン実装形態は、対応する実行可能ファイルが認証されない限り実行可能ファイルを実行するためにプロセスが作成されないので、セキュリティを提供することになる。
【００２３】
[0030]言い換えれば、プロセス認証コンポーネントは、１つまたは複数の悪意のある通過点を含み得るネットワークを介して実行可能ファイルが送信されるときに普通なら発生する可能性がある、任意の改ざんを最小限に抑えることができる。プロセス認証コンポーネントのそのようなスタンドアロン実装形態は、ソフトウェアが、悪質または不正な相手などの別の相手ではなく、実際のソフトウェアパブリッシャからであることを検証するためにさらに役立つことができる。しかしながら、この説明のための例では、バイナリファイルの認証は、セキュアな処理システム全体の１つのステップとして役立つ。
【００２４】
[0031]具体的には、この説明のための例では、バイナリファイルに対応するデジタル署名は、複数の異なる暗号鍵のうちの１つで作成され得、それぞれの異なる暗号鍵は、対応するプロセスを作成するオペレーティングシステム上の異なる量またはタイプのリソースアクセスに対応し得る。たとえば、ソフトウェアパブリッシャは、アプリケーションのための実行可能ファイル内に含めるために、または実行可能ファイルとともに含めるために、デジタル署名を作成するための３つの異なる暗号鍵のうちの１つを使用することができる。この場合、異なる暗号鍵のそれぞれは、異なる量またはタイプのリソースアクセスに対応することになる。たとえば、低、中、高レベルのリソースアクセスの、３つのレベルのリソースアクセスがあり得る。
【００２５】
[0032]このように、セキュアな処理システムが実行可能ファイルを受信、またはそれにアクセスすると、セキュアな処理システムは、どの復号鍵が実行可能ファイルを正常に認証するかに依存するアクセスのレベルでプロセスを作成することができる。さらに、この例では、指定されたアクセスのレベルに対応する特定の復号鍵が、実行可能ファイルを正常に認証することができる。説明するために、低レベルのリソースアクセスに対応する復号鍵が、バイナリファイルのデジタル署名を正常に復号するのに役立つ場合、それに応答して、セキュアな処理システムは、低レベルのリソースアクセスを有する実行可能ファイルに対応するプロセスを作成することになる。同様に、中レベルのリソースアクセスに対応する復号鍵が、バイナリファイルのデジタル署名を正常に復号するのに役立つ場合、それに応答して、セキュアな処理システムは、中レベルのリソースアクセスを有する実行可能ファイルに対応するプロセスを作成することになる。同様に、高レベルのリソースアクセスに対応する復号鍵が、バイナリファイルのデジタル署名を正常に復号するのに役立つ場合、それに応答して、セキュアな処理システムは、高レベルのリソースアクセスを有する実行可能ファイルに対応するプロセスを作成することになる。
【００２６】
[0033]セキュアな処理システムのいくつかの実装形態では、異なるレベルのリソースアクセスに対応するために異なる暗号鍵および復号鍵を使用することによって、実行可能ファイルを認証するための、および適切なレベルのリソースアクセスに対応するプロセスを割り当てるための、十分な技法を提供することができる。この場合、リソースアクセスの各増加している階層レベルは、階層内でより低い、各レベルのリソースアクセスを包含することになる。この厳密に増加しているリソースアクセスの量は、アクセスの同心のセットとともに説明され得る。
【００２７】
[0034]しかしながら、この説明のための例では、セキュアな処理システムのリソースパーミッションコンポーネント１１０は、より微妙なリソースアクセスパーミッションを提供することができる。言い換えれば、セキュアなリソースパーミッションコンポーネント１１０は、より高いレベルの任意の所与のパーミッションセットが、より低いレベルのパーミッションセットのパーミッションを必ずしも継承しないように、別個の、しかし関連する次元の同心のパーミッションセットを確立することができる。代わりに、レベルと次元との結合された仕様は、リソース特権を決定する際に使用される。
【００２８】
[0035]説明するために、３つの同心レベルのリソース特権を決定するために３つの暗号鍵と復号鍵との組合せを使用する代わりに、各異なる暗号／復号鍵の組合せは、リソース特権の特定の次元およびレベルに対応し得、異なる暗号／復号鍵の組合せの数は、リソース特権の次元の数とレベルの数とに依存し得る。さらに、特定のリソースにアクセスするために十分なアクセスレベルを設定するために、プロセスは、リソースにアクセスするための十分な許可を、少なくともプロセスに関連付けられる次元およびレベルに設定する前に、少なくともリソースパーミッションの所与の次元およびレベルを有するように指定され得る。言い換えれば、特定のユーザーまたはプロセスは、リソースパーミッションを、特定のユーザーまたはプロセスに与えられたリソースパーミッションよりも高く設定することができない。
【００２９】
[0036]図２は、リソースアクセス特権を指定する際の次元およびレベルの使用の説明のための実装形態を提供する。この例では、所与の次元内で、各増加するレベルのリソース特権がすべてのより低いレベルのすべてのリソース特権を含むように、３つのレベルのリソース特権がある。この例では、レベル１は最も低いレベルのリソースアクセス特権に対応することができ、レベル２は、追加のリソースアクセス特権を含む、レベル１のすべてのリソースアクセス特権を含む中レベルのリソースアクセス特権に対応することができ、レベル３は、より低いレベル内ではない追加のリソースアクセス特権を含む、レベル１とレベル２との両方のすべてのリソースアクセス特権を含む、中レベルのリソースアクセス特権に対応することができる。
【００３０】
[0037]図示されるように、図２は、各次元が３つのレベルを含む２つの次元を有する一例を示している。すなわち、それぞれ２０４、２０６、および２０８で示される、対応するレベル３、２、および１を有する、２０２で示される次元１と、それぞれ２１２、２１４、および２１６で示される、対応するレベル３、２、および１を有する、２１０で示される次元２である。この例では２つの次元が指定されるが、他の例では異なる数の次元が使用され得る。
【００３１】
[0038]この説明のための実装形態では、特定のレベルのリソースアクセス特権が別のレベルを上回るという事実は、オペレーティングシステムがより低いレベルに対応するリソースアクセス特権を与えるために十分ではない。言い換えれば、レベル３はレベル２のパーミッションを必ずしも含まない。代わりに、リソースパーミッションコンポーネントは、プロセスにアクセスするか、またはユーザーが特定のリソースを与えられているか否を決定するために、レベルとともにいくつかの次元を使用する。
【００３２】
[0039]図２に示されるように、｛次元、レベル｝の２つのタプルに対応する、リソースアクセス特権の６つの異なる可能な許可（ｇｒａｎｔ）があり、この場合は｛Ｄ１，Ｌ１｝，｛Ｄ１，Ｌ２｝、｛Ｄ１，Ｌ３｝、｛Ｄ２，Ｌ１｝、｛Ｄ２，Ｌ２｝、および｛Ｄ２，Ｌ３｝で表すことができ、Ｄ１は次元１を表し、Ｄ２は次元２を表し、Ｌ１〜Ｌ３はレベル１〜３を表す。上述のように、異なる実装形態には追加の次元があり得る。
【００３３】
[0040]この実装形態では、各次元／レベルタプルは、リソースアクセス特権のそれぞれのセットに対応する。言い換えれば、所与の信頼レベルは、他のリソースパーミッションを潜在的に含むことに加えて、リソースパーミッションの特定のセットを含み得る。具体的には、｛Ｄ１，Ｌ１｝はリソースアクセス特権の１つまたは複数のセットに対応し、｛Ｄ１，Ｌ２｝は｛Ｄ１，Ｌ１｝のリソースアクセス特権を包含するリソースアクセス特権の１つまたは複数のセットに対応し、｛Ｄ１，Ｌ３｝は｛Ｄ１，Ｌ２｝および｛Ｄ１，Ｌ１｝のリソースアクセス特権を包含するリソースアクセス特権の１つまたは複数のセットに対応し、｛Ｄ２，Ｌ１｝は｛Ｄ１，Ｌ１｝のリソースアクセス特権を包含するリソースアクセス特権の１つまたは複数のセットに対応し、｛Ｄ２，Ｌ２｝は｛Ｄ２，Ｌ１｝、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝のリソースアクセス特権を包含するリソースアクセス特権の１つまたは複数のセットに対応し、｛Ｄ２，Ｌ３｝は｛Ｄ２，Ｌ２｝、｛Ｄ２，Ｌ１｝、｛Ｄ１，Ｌ３｝、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝のリソースアクセス特権を包含するリソースアクセス特権の１つまたは複数のセットに対応する。さらに、いくつかの実装形態では、所与の信頼レベルが、リソースアクセス特権の所与の１つまたは複数のセットに対応する場合、１つまたは複数のセットのサブセットが、別の信頼レベルのリソースアクセス特権を包含することがあり得る。
【００３４】
[0041]いくつかの実装形態では、所与の信頼レベルが、別の信頼レベルのリソースパーミッションセットを包含する１つまたは複数のリソースパーミッションセットに対応する場合、所与の信頼レベルが他の信頼レベルを「支配する（ｄｏｍｉｎａｔｅ）」と言われ得る。図２の次元およびレベル仕様では、上記の説明はまた、｛Ｄ１，Ｌ１｝は他のどの信頼レベルも支配せず、｛Ｄ１，Ｌ２｝は｛Ｄ１，Ｌ１｝を支配し、｛Ｄ１，Ｌ３｝は｛Ｄ１，Ｌ２｝と｛Ｄ１，Ｌ１｝とを支配し、｛Ｄ２，Ｌ１｝は｛Ｄ１，Ｌ１｝を支配し、｛Ｄ２，Ｌ２｝は｛Ｄ２，Ｌ１｝、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝を支配し、｛Ｄ２，Ｌ３｝は｛Ｄ２，Ｌ２｝、｛Ｄ２，Ｌ１｝、｛Ｄ１，Ｌ３｝、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝を支配すると説明することができる。
【００３５】
[0042]言い換えれば、この例では、より低いレベルのリソースアクセス特権のすべてを含まない、または包含しない、より高いレベルにリソースアクセス特権のセットがある。たとえば、｛Ｄ１，Ｌ３｝は、｛Ｄ２，Ｌ２｝と｛Ｄ２，Ｌ１｝とを含む、より低いレベルで次元２を有するタプルを含む、次元２を含むどのタプルのリソースアクセス特権も含まない。
【００３６】
[0043]図２の次元およびレベルに対応するリソースパーミッションのそのようなセットを考えると、プロセス認証コンポーネントとリソースパーミッションコンポーネントとは両方とも、リソースパーミッションを指定するための同じフレームワークを参照することができる。言い換えれば、認証された実行可能ファイルに対応するために作成され得るプロセスに与えられたリソースアクセス特権は、バイナリファイルを認証するためにどの復号鍵が使用されるかに依存し得る。図２に示される例示的な次元およびレベルでは、｛Ｄ１，Ｌ１｝、｛Ｄ１，Ｌ２｝、｛Ｄ１，Ｌ３｝、｛Ｄ２，Ｌ１｝、｛Ｄ２，Ｌ２｝、および｛Ｄ２，Ｌ３｝の６つのタプルに対応する、６つの異なる暗号／復号鍵のペアがあり得る。そのようなリソースアクセス特権セット仕様では、暗号／復号鍵のペアは、より高いレベルのいくつかのリソースパーミッションセットはより低いレベルからのリソースパーミッションセットを包含しない場合があるので、必ずしも相対ランキングを有していない。
【００３７】
[0044]図３は、リソースパーミッションコンポーネントの実装形態において使用され得る次元およびレベルの異なる仕様を示している。図３に示されるように、異なる次元は、特定の次元に関連付けられる異なるレベルを有し得る。図示されるように、次元１は、３０２、３０４、３０６、３０８、および３１０で示される５つのレベルを有し得、次元２は、３１２、３１４、および３１６で示される３つのレベルを有し得る。この実装形態では、比較操作のより簡単な説明を可能にするために、次元１のレベルが１〜５と連続的にラベル付けされており、次元２のレベルは２、３、および５とラベル付けされている。信頼レベル間のマッピングのより一般的な説明は後述する。しかしながら、そのような実装形態においても、図２に関して説明した実装形態と同様に、ユーザーまたはプロセスがシステムリソースへの十分なアクセスを有するか否かを決定することは、２つの次元が使用される場合は２つの比較に基づいて実行され得る。一般的に、Ｎ次元のタプルについて、許可はＮ個の比較で決定され得る。具体的には、図３の実装形態では、１つの次元およびレベルが、別の次元の複数のレベルに対応する場合、１つの次元およびレベルが他の次元における複数のレベルのうちのいずれかを支配するかどうかを決定することは、２つの比較で行われ得る。
【００３８】
[0045]この実装形態では、｛Ｄ１，Ｌ１｝はリソースアクセス特権のセットに対応し得、｛Ｄ１，Ｌ２｝は、｛Ｄ１，Ｌ１｝のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得る。｛Ｄ１，Ｌ３｝は、｛Ｄ１，Ｌ２｝および｛Ｄ１，Ｌ１｝のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得、｛Ｄ１，Ｌ４｝は、｛Ｄ１，Ｌ１｝、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ３｝のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得、｛Ｄ１，Ｌ５｝は、｛Ｄ１，Ｌ１｝、｛Ｄ１，Ｌ２｝、｛Ｄ１，Ｌ３｝、および｛Ｄ１，Ｌ４｝のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得、｛Ｄ２，Ｌ２｝は、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得、｛Ｄ２，Ｌ３｝は、｛Ｄ２，Ｌ２｝、｛Ｄ１，Ｌ３｝、｛Ｄ１，Ｌ２｝および｛Ｄ１，Ｌ１｝のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得、｛Ｄ２，Ｌ５｝は、｛Ｄ２，Ｌ３｝、｛Ｄ２，Ｌ２｝、｛Ｄ１，Ｌ５｝、｛Ｄ１，Ｌ４｝、｛Ｄ１，Ｌ３｝、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝のリソースアクセス特権を包含するリソースアクセス特権のセットに対応し得る。たとえば、｛Ｄ２，Ｌ２｝が他の任意の信頼レベルを支配するか否かを決定することは、Ｄ２が別の次元以上であり、またＬ３が他のレベル以上である場合、他の次元に対するＤ２の比較と、他の次元に対するＬ２の比較との、２つの比較で計算され得る。
【００３９】
[0046]次元２におけるレベルは、１つの次元におけるレベルが別の次元のレベルを支配するか否かを決定するために、マッピングを使用しないように、また値の簡単な比較を保存するように定義されているが、一般的に、レベルは、いずれかの任意のトークンに従って指定され得、マッピングテーブルは、２つの所与のトークン間の相対的な「を上回る」または「未満である」という表示を指定することができる。たとえば、図３に関して、レベル２、３、および５は、それぞれレベル「Ｃ」、「Ｂ」、および「Ａ」と再定義され得、マッピングは、｛Ｄ２，Ａ｝が｛Ｄ２，Ｂ｝、｛Ｄ２，Ｃ｝、｛Ｄ１，Ｌ５｝、｛Ｄ１，Ｌ４｝、｛Ｄ１，Ｌ３｝、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝を支配し、｛Ｄ２，Ｂ｝が｛Ｄ２，Ｃ｝、｛Ｄ１，Ｌ３｝、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝を支配し、｛Ｄ２，Ｃ｝が｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝を支配し、｛Ｄ１，Ｌ５｝が｛Ｄ１，Ｌ４｝、｛Ｄ１，Ｌ３｝、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝を支配し、｛Ｄ１，Ｌ４｝が｛Ｄ１，Ｌ３｝、｛Ｄ１，Ｌ２｝、および｛Ｄ１，Ｌ１｝を支配し、｛Ｄ１，Ｌ３｝が｛Ｄ１，Ｌ２｝および｛Ｄ１，Ｌ１｝を支配し、｛Ｄ１，Ｌ２｝が｛Ｄ１，Ｌ１｝を支配し、｛Ｄ１，Ｌ１｝が他のどの信頼レベルも支配しないと指定するために定義され得る。
【００４０】
[0047]いくつかの実装形態では、リソースパーミッションを指定する際に次元およびレベルを使用することに関して、オペレーティングシステム内の所与のプロセスは、別のプロセスまたはリソースのリソースパーミッションを指定するために次元および／またはレベルを修正することができる。たとえば、プロセスは、｛Ｄ２，Ｌ３｝に対応するリソースパーミッションを有するシステムプロセスであり得、別のプロセスは、｛Ｄ１，Ｌ４｝に対応するリソースパーミッションを有するユーザープロセスであり得る。この例では、システムプロセスが信頼の最高の組合せまたは次元とレベルとの最高の組合せにあるので、システムプロセスは、ユーザープロセスのリソースパーミッションを、｛Ｄ１，Ｌ４｝から任意の次元とレベルとの組合せに修正することができる。場合によっては、システムプロセスは、ユーザープロセスのリソースパーミッションの量を、｛Ｄ１，Ｌ４｝から、たとえば｛Ｄ１，Ｌ２｝に減らすことができる。他の場合では、システムプロセスは変更することができ、ユーザープロセスのリソースパーミッションの量を、｛Ｄ１，Ｌ４｝から、たとえば｛Ｄ２，Ｌ２｝に潜在的に増加させることができる。
【００４１】
[0048]図４は、視覚的表現がｘｙｚ空間を占有するように、リソースパーミッションを指定する際に使用される次元およびレベルの視覚的表現を示している。しかしながら、この視覚的表現は説明を目的としたものであり、リソースパーミッションコンポーネントによって使用される次元およびレベルの理解を広げるために役立つ。リソースパーミッションセットのこの視覚的表現では、ｘ−ｙ面は、次元を使用することなしに可能なリソースパーミッションセットを表すことができる。具体的には、ｘ−ｙ面さえ使用できれば、リソースパーミッションセットは同心であり、より小さい、またはより低いレベルのリソースパーミッションセットは、より大きいまたはより高いレベルのリソースパーミッションセットに包含されることになる。
【００４２】
[0049]この説明のための視覚的表現では、ｘ−ｙ面上だけにある次元／レベルボックスのフットプリントは、同心のパーミッションセットの表現であり得、それぞれのより大きいパーミッションセットが、より小さいパーミッションセットのパーミッションを継承または包含している。そのような場合、次元がなく、単にレベルがあることになる。言い換えれば、３次元／レベルボックスのフットプリントは３つの同心セットを形成し、最も小さく、最も内部のセットが第１のレベルに対応し、そのセットは第２のレベルに対応する２番目に最も大きいセットによって包含され得、そのセットは第３のレベルに対応する最も大きいセットによって包含され得る。しかしながら、レベルを使用することに加えて次元を使用する際に、リソースアクセスのレベルはより低いレベルのリソースパーミッションを必ずしも含まない。
【００４３】
[0050]この視覚的表現では、図２の次元およびレベルに対応して、例示的なリソースパーミッションセットは、２つの次元と、各次元内の３つのレベルとで指定され得る。具体的には、所与の次元、たとえば次元１内に、３つの同心パーミッションセットがあり得、それぞれのより大きいセットが、より低いセットのアクセス特権またはパーミッションを包含（すなわち、継承）する。この視覚的表現では、ｘ−ｙ面内に占有される次元として表されるパーミッションセットは、単一の次元内のレベルに対応する。しかしながら、第２の次元が考慮される場合、１つのレベルでの１つの次元内のパーミッションセットは、より低いレベルで別の次元内のパーミッションセットのすべてのパーミッションを必ずしも継承しない場合がある。
【００４４】
[0051]この視覚的表現では、次元１はｘ−ｙ面を占有し、｛次元１，レベル１｝４０２、｛次元１，レベル２｝４０４、および｛次元１，レベル３｝４０６で示される同心の正方形を含み、次元内のそれぞれのより高いレベルは、包含された、より低いレベルのリソースアクセス特権を継承する。この視覚的表現では、４０２、４０４、および４０６として視覚的に表されるパーミッションセットの範囲はｚ軸に拡張できない場合があり、したがって、ｚ軸に拡張し得る視覚的に表されたパーミッションセットのパーミッションを有していないことになる。
【００４５】
[0052]しかしながら、第２の次元が考えられる場合、パーミッションセットはｚ軸への視覚的拡張として表され得、それによってパーミッションセット表現にボリュームを与える。言い換えれば、この例では、追加された次元は、｛次元１，レベル１｝内にないリソースパーミッションを含みながら、｛次元１，レベル１｝４０２として表されるパーミッションセットを包含する｛次元２，レベル１｝４０８を可能にし、｛次元２，レベル２｝４１０は、｛次元２，レベル１｝４０８、｛次元１，レベル２｝４０４、および｛次元１，レベル１｝４０１として表されるパーミッションセットを包含し、｛次元２，レベル３｝４１２は、｛次元２，レベル２｝４１０、｛次元２，レベル１｝４０８、｛次元１，レベル３｝４０６、｛次元１，レベル２｝４０４、および｛次元１，レベル１｝４０２として表されるパーミッションセットを包含する。
説明のためのプロセス認証コンポーネント
[0053]図５は、プロセス認証コンポーネントの実装形態における、選択された操作を示すフローチャート５００を示している。図１に関して上述したように、プロセス認証コンポーネントは、実行可能ファイルに対応するプロセスを作成する前に、実行可能ファイルの真正性を決定することができる。
【００４６】
[0054]上述のように、ほとんどのコンピューティングデバイスは、ユーザーが追加のソフトウェアまたはアプリケーションを、物理媒体から、またはワイヤレスにインストールすることを可能にするオペレーティングシステムを提供する。しかしながら、場合によっては、直接のユーザーガイダンスなしに、オペレーティングシステム自体が追加のソフトウェアをインストールし得る。いずれの場合でも、プロセス認証コンポーネントが実行可能ファイルにアクセスする、それをダウンロード、読取り、または受信し得る様々な方法がある。
【００４７】
[0055]５０２に示されるように、プロセス認証コンポーネントは、暗号化されたデジタル署名を含む実行可能ファイルを受信することができる。この例では、実行可能ファイルはデジタル署名を含むように修正されているが、他の場合では、デジタル署名は別個に、またはデジタル署名を求める特定の要求に応答して提供され得る。
【００４８】
[0056]５０４に示されるように、プロセス認証コンポーネントは、実行可能ファイルのためのデジタル署名に対応する復号鍵を選択または決定することができる。いくつかの実装形態では、復号鍵は、認証局から提供される公開鍵であり得、ソフトウェアパブリッシャまたはソフトウェアプロバイダーは、デジタル署名を作成するために対応する秘密鍵を使用する。他の実装形態では、ソフトウェアパブリッシャまたはソフトウェアプロバイダーは、デジタル署名を作成するために公開鍵を使用することができ、プロセス認証コンポーネントは、デジタル署名を復号するために秘密鍵を使用することになる。さらに、異なる実装形態では、ソフトウェアパブリッシャおよびプロセス認証コンポーネントは、それらのそれぞれの暗号鍵および復号鍵を取得するために、異なる方法を使用することができる。
【００４９】
[0057]５０６に示されるように、復号鍵が選択または決定されると、プロセス認証コンポーネントは、デジタル署名、実行可能ファイルに基づいて、および復号鍵に基づいて、実行可能ファイルを認証することができる。たとえば、正常な復号は、真正の、または改ざんされていない実行可能ファイルを示すことになり、失敗した復号は、何らかの方法で破損する可能性がある実行可能ファイルを示すことになる。
【００５０】
[0058]５０８に示されるように、実行可能ファイルの正常な認証に応答して、プロセス認証コンポーネントは、実行可能ファイルの実行に対応するシステムプロセスを作成、または作成を開始することができ、プロセスは、実行可能ファイルを認証するために使用された復号鍵に基づく次元およびレベルを割り当てられる。言い換えれば、セキュリティのレベルまたは信頼のレベルは、デジタル署名に従って決定された実行可能ファイルの識別に基づいて、作成されたプロセスに添付される。たとえば、ソフトウェアパブリッシャは、実行可能ファイルを実行するためのプロセスが割り当てられ得るのはどのタイプのリソースパーミッションかに応じて、デジタル署名を作成するために複数の異なる暗号鍵を使用することができる。
【００５１】
[0059]いくつかの実装形態では、作成されたシステムプロセスの整合性を確実にするために、デジタル署名に関連付けられる次元は、作成されたプロセスの認証コンテキストに配置され得る。さらに、作成されたプロセスは、作成されたプロセスの次元へのアクセスを制限するセキュリティ記述子によって保護され得る。異なる実装形態では、このプロセス認証は動的にロードされたモジュールに適用され得る。いくつかの実装形態では、作成されたプロセス自体が追加のプロセスまたはシステムリソースを作成する場合、追加で作成されたプロセスまたはシステムリソースは、作成されたプロセスの信頼レベルと同じ信頼レベルを割り当てられることになる。言い換えれば、作成されたプロセスは、作成されたプロセスの信頼レベルを支配する信頼レベルでプロセスまたはシステムリソースを作成することができない。他の実装形態では、たとえば、オペレーティングシステムが認証偽装を実装する場合、作成されたプロセスは、作成されたプロセスの代わりに何らかの機能を実行するためのサービスを呼び出すことができ、サービスコールを実行しているプロセスの信頼レベルは、最初に作成されたプロセスおよびサービスの最小信頼レベルである。このように、呼び出されたサービスは、呼び出しているサービスを支配する信頼レベルで動作または実行せず、それにより、サービスがより高い信頼レベルで任意のシステムリソースまたはプロセスに影響を与えることを防止する。したがって、この例では、同じサービスは、呼出しプロセスの信頼レベルに応じて、異なる信頼レベルで異なるインスタンスで実行することができる。
【００５２】
[0060]この実装形態では、プロセス認証コンポーネントは、図２に示された次元およびレベルに従って、リソースパーミッションセットを使用することができる。具体的には、この例では、ソフトウェアパブリッシャは、デジタル署名を作成するための６つの異なる暗号鍵のうちの１つを使用することができ、６つの異なる暗号鍵のうちのそれぞれは、｛Ｄ１，Ｌ１｝、｛Ｄ１，Ｌ２｝、｛Ｄ１，Ｌ３｝、｛Ｄ２，Ｌ１｝、｛Ｄ２，Ｌ２｝、または｛Ｄ２，Ｌ３｝の６つの異なる次元およびレベルタプルのうちの１つに対応し得る。このように、プロセス認証コンポーネントは、実行可能ファイルを正常に認証する際、どの復号鍵が暗号鍵に対応するかに応じて、｛Ｄ１，Ｌ１｝、｛Ｄ１，Ｌ２｝、｛Ｄ１，Ｌ３｝、｛Ｄ２，Ｌ１｝、｛Ｄ２，Ｌ２｝、または｛Ｄ２，Ｌ３｝の６つの異なる次元およびレベルタプルのうちの１つに対応するリソースパーミッション信頼レベルで実行可能ファイルを実行するためにプロセスを作成することができる。さらに、いくつかの実装形態では、リソースに特有のリソースパーミッションの各セット、または複数のセットは、たとえば、十分な権限を有するシステム管理者から提供されるマッピングに従って、所与の信頼レベルにマッピングされ得る。
【００５３】
[0061]さらに、作成されたプロセスは、リソースアクセス特権に対応する次元およびレベルを指定するメタデータでタグ付けされ得る。いくつかの実装形態では、それ以外の場合は、プロセス認証コンポーネントは、プロセスと、リソースアクセス特権に対応する次元とレベルとを関連付けることができる。
説明のためのリソースパーミッションコンポーネント
[0062]図６は、オペレーティングシステムのセキュアな処理システム内で動作するリソースパーミッションコンポーネントの実装形態における選択された動作を示すフローチャート６００を示している。リソースパーミッションコンポーネントは、システムリソースが読取り、移動、編集、または任意のタイプの修正のためにシステムリソースの現在の状態からアクセスされるときはいつでも、セキュアな処理システム内で使用され得る。「システムリソース」という用語は、初期システムインストール中、またはその後の任意の時間にシステムにインストールされた追加のアプリケーションのリソースを潜在的に含むように理解され得る。
【００５４】
[0063]この説明のための実装形態では、様々な場合において、オペレーティングシステム内の所与のプロセスが、いくつかの時点でシステムリソースへのアクセスを試みることができ、リソースパーミッションコンポーネントは、プロセスがシステムリソースへのアクセスを与えられ得るか否かを決定することができる。たとえば、プロセスは、特定のシステムリソースへのアクセスを要求することができる。６０２に示されるように、プロセスからリソースへのアクセスを求める要求が受信され得る。それに応じて、６０４に示されるように、システムリソースにアクセスするために十分な最小次元および最小レベルが決定され得る。
【００５５】
[0064]異なる実装形態では、次元およびレベル情報は、システムリソースに関連付けられるメタデータ内に記憶され得る。図３に関連して論じられるように、信頼レベルの各ペア間の支配関係を指定するマッピングが提供され得る。システムリソースがソフトウェア要素である場合、メタデータは、システムリソースの一部として記憶され得る。しかしながら、場合によっては、メタデータは、リソースパーミッションをシステムリソースに関連付ける表または他のタイプのデータ構造に記憶され得る。
【００５６】
[0065]６０６に示されるように、リソース要求を行うプロセスに対応する次元およびレベル情報が決定される。異なる実装形態では、６０４と６０６とに関連する動作は交換され得る。所与のプロセスについての次元およびレベル情報はシステムファイル、またはレジスタ、あるいは、プロセスを、リソースパーミッションを指定するメタデータに関連付ける他の何らかのデータ構造内に記憶され得る。
【００５７】
[0066]いくつかの実装形態では、要求されたアクセスをプロセスまたはユーザーに与えるか否かを決定するために、リソースパーミッションコンポーネントは、２つの比較を行うことができる。１つの比較は、プロセスに関連付けられる次元が十分か否かを決定することであり得、もう１つの比較は、プロセスに関連付けられるレベルが十分か否かを決定することであり得る。言い換えれば、６０８に示されるように、プロセスに関連付けられる次元が、システムリソースにアクセスするために十分な次元を支配する場合、および、プロセスに関連付けられるレベルがシステムリソースにアクセスするために十分なレベルを支配する場合、システムリソースへのアクセスが与えられる。
説明のためのセキュアな処理モジュール
[0067]図７は、追加のコンピューティング要素を有する、図１に関連して上述したコンピューティングデバイス１０２を示しており、コンピューティングデバイス１０２は、セキュアな処理システムを実装するように構成され得る。具体的には、コンピューティングデバイス１０２は、セキュアな処理システムの様々な実装形態を実行するように構成され得るコンピューターシステム１０４を含み得る。次に、セキュアな処理システムは、プロセス認証コンポーネント１０８とリソースパーミッションコンポーネント１１０とを含む、セキュアな処理モジュール１０６で実装され得る。
【００５８】
[0068]異なる実装形態に関して上述したように、プロセス認証コンポーネントは、署名照合を実行するために、および所与のデジタル署名を対応する信頼レベルにマッピングするために動作することができ、リソースパーミッションコンポーネントによって特定のパーミッションセットにマッピングされ得る。この例では、プロセス認証コンポーネント１０８の一部として、署名検証モジュール７０２が、デジタル署名に対応する実行可能ファイルを認証するための適切な復号鍵を決定するために役立つことができる。さらに、どの復号鍵が実行可能ファイルを認証するために役立つかに応じて、プロセス認証コンポーネント１０８の署名マッピングモジュール７０４は、デジタル署名に対応する次元およびレベルを決定して、実行可能ファイルを実行するために作成されたプロセスをタグ付けすることができる。様々な暗号および／または復号鍵、たとえば暗号鍵１２６および／または復号鍵１２８は、メモリ７０６内に記憶され得る。
【００５９】
[0069]異なる実装形態に関して上述したように、リソースパーミッションコンポーネント１１０は、システムリソースにアクセスするためのプロセス要求に応答して、リソースにアクセスするために十分な最小パーミッションを決定して、リソースのための次元およびレベルのパーミッションがリソースにアクセスするために十分か否かを決定する。この実装形態では、リソースパーミッションコンポーネント１１０の一部として、レベル検証モジュール７０８は、所与の次元およびレベルのパーミッションを有するプロセスが所与のリソースにアクセスできるかどうかを決定するための計算を実行するために役立つことができる。場合によっては、これらの比較計算は並列に実行され得る。たとえば、コンピューターシステム１０４は、特殊な命令が、プロセスの次元およびレベル、ならびにリソースにアクセスするために十分な次元およびレベルのオペランドを定義するように、特殊な命令を実装することができる。さらに、特殊な命令のオペランドは、次元およびレベル比較を同時に実行するハードウェア要素への入力として役立つことができ、リソースへの許可が与えられるか否かを示すフラグ値を出力する。この例では、この並列の次元およびレベル計算は、次元／レベル（Ｄ／Ｌ）比較器７１０で実行され得る。
【００６０】
[0070]いくつかの実装形態では、プロセスの所与の次元およびレベルが、少なくとも所与の次元およびレベルを要求するリソースにアクセスするために十分かどうかを決定するための仕様は、リソースパーミッションセット仕様７１２内に記憶され得る。
【００６１】
[0071]図７は、コンピューティングデバイス１０２の追加のコンポーネントをさらに示している。異なる実装形態では、コンピューターシステムは、これに限定されないが、パーソナルコンピューターシステム、デスクトップコンピューター、ラップトップ、ノートブック、またはネットブックコンピューター、メインフレームコンピューターシステム、ハンドヘルドコンピューター、ワークステーション、ネットワークコンピューター、カメラ、セットトップボックス、モバイルデバイス、消費者デバイス、ビデオゲームコンソール、ハンドヘルドビデオゲームデバイス、アプリケーションサーバ、ストレージデバイス、テレビ、ビデオ録画デバイス、スイッチ、モデム、ルータなどの周辺デバイス、または一般的に任意のタイプのコンピューティングデバイスまたは電子デバイスを含む、様々なタイプのデバイスのうちのいずれかであり得る。
【００６２】
[0072]一実装形態では、コンピューターシステム１０４は、システムメモリ７１６に結合された１つまたは複数のプロセッサ７１４を含む。１つまたは複数のプロセッサ７１４は、コンピューター可読媒体に関連付けて記憶されたデータを処理するように構成され得る。コンピューター可読媒体は、少なくとも２つのタイプのコンピューター可読媒体、すなわち、コンピューターストレージ媒体と通信媒体とを含む。
【００６３】
[0073]コンピューターストレージ媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するために任意の方法および技術で実装された、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含む。コンピューターストレージ媒体は、これに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいはコンピューティングデバイス１０２によってアクセスするための情報を記憶するために使用され得る他の任意の非伝送媒体を含む。
【００６４】
[0074]対照的に、通信媒体は、コンピューター可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の伝送機構などの変調されたデータ信号で具現化し得る。本明細書に定義されるように、コンピューターストレージ媒体は、通信媒体を含まない。
【００６５】
[0075]コンピューターシステム１０４もまた、１つまたは複数のプロセッサ７１４にアクセス可能なメモリ７１６を含み得る。データストレージ７１８を含むメモリ７１６は、コンピューターストレージ媒体の一例である。さらに、コンピューターシステム１０４は、コンピューティングデバイス１０２と他のコンピューティングデバイスとの間の通信を容易にし得る１つまたは複数の通信インターフェース７２０を含み得る。具体的には、通信インターフェース７２０は、ネットワーク１１２によって表される１つまたは複数のネットワークを介する通信を容易にするために、１つまたは複数のワイヤードネットワーク通信インターフェース、１つまたは複数のワイヤレス通信インターフェース、あるいはその両方を含み得る。ネットワーク１１２は、インターネット、ケーブルネットワーク、衛星ネットワーク、広域ワイヤレス通信ネットワーク、ワイヤードローカルエリアネットワーク、ワイヤレスローカルエリアネットワーク、公衆交換電話網（ＰＳＴＮ）などの、複数の異なるタイプのワイヤードおよびワイヤレスネットワークのいずれか１つ、またはその組合せを表すことができる。
【００６６】
[0076]さらに、コンピューターシステム１０４は、入力／出力デバイス７２２を含み得る。入力／出力デバイス７２２は、キーボード、ポインティングデバイス（たとえば、マウスまたはスタイラス）、タッチスクリーン、１つまたは複数の画像キャプチャデバイス（たとえば、１つまたは複数のカメラ）、１つまたは複数のマイクロフォン、ディスプレイ、スピーカーなどを含み得る。
【００６７】
[0077]ある実装形態では、本発明の実装形態は、コンピューターシステムの単一のインスタンスを使用して実装され得ることが企図され、他の実装形態では、そのような複数のシステム、またはコンピューターシステムを構成する複数のノードに実装されてもよく、実装形態の異なる部分またはインスタンスをホストするように構成されてもよい。たとえば、一実装形態では、いくつかの要素が、他の要素を実装しているノードとは異なるコンピューターシステムの１つまたは複数のノードを介して実装され得る。
【００６８】
[0078]コンピューターシステム内のメモリは、本明細書に記載の実装形態のそれぞれを実装するように構成されたプログラム命令７２４を含み得る。一実装形態では、プログラム命令は、本明細書で論じたモジュールの実装形態のソフトウェア要素を含み得る。コンピューターシステム内のデータストレージは、他の実装形態で使用され得るデータを含み得る。
【００６９】
[0079]一般的に、コンピューター実行可能命令は、特定の機能を実行する、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記述される順序は限定と見なされることが意図されるものではなく、任意の数の記述されたブロックは、プロセスを実装するために任意の順序で、または並列に結合され得る。
結論
[0080]主題を構造的特徴に固有の言語で説明してきたが、添付の特許請求の範囲で定義される主題は、必ずしも説明される特定の特徴に限定されるものではないことが理解されるべきである。むしろ、特定の特徴は、特許請求の範囲を実装している説明のための形態として開示されている。
【図１】
0006286034.tif 000002
【図２】
0006286034.tif 000003
【図３】
0006286034.tif 000004
【図４】
0006286034.tif 000005
【図５】
0006286034.tif 000006
【図６】
0006286034.tif 000007
【図７】
0006286034.tif 000008