JP2017530471A - トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストの表現 - Google Patents

トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストの表現 Download PDF

Info

Publication number
JP2017530471A
JP2017530471A JP2017516669A JP2017516669A JP2017530471A JP 2017530471 A JP2017530471 A JP 2017530471A JP 2017516669 A JP2017516669 A JP 2017516669A JP 2017516669 A JP2017516669 A JP 2017516669A JP 2017530471 A JP2017530471 A JP 2017530471A
Authority
JP
Japan
Prior art keywords
authorization
access
request
principal
security
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017516669A
Other languages
English (en)
Other versions
JP2017530471A5 (ja
JP6584500B2 (ja
Inventor
トム,ステファン
アイグナー,ロナルド
パイ,ナヴィン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017530471A publication Critical patent/JP2017530471A/ja
Publication of JP2017530471A5 publication Critical patent/JP2017530471A5/ja
Application granted granted Critical
Publication of JP6584500B2 publication Critical patent/JP6584500B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストを表現するための技術が説明される。少なくともいくつかの実施形態では、オペレーティングシステムコンテキストの表現に対応する認可プリンシパルが、トラステッドプラットフォームモジュール内で導出される。認可プリンシパルは、トラステッドプラットフォームモジュール内に記憶されたセキュリティ資産へのアクセスのための認可ポリシーを定義するために使用され得る。

Description

本発明は、トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストの表現に関する。
[0001]コンピューターがますます一般的になってきたことから、コンピューター上に記憶されるデータ量が増加している。このことは、比較的小スペース内に大量のデータを記憶する能力を含む、多くの利便性をユーザーにもたらす。ただし、このデータのいくらかは、多くの場合、秘密に保たれる、又は特定の個人に対してのみ明かされることが意図される。このデータは、パスワード又は個人識別番号を使用するなど、異なる方法で保護され得る。このような保護は有用であり得るが、コンピューターは、パスワード又は個人識別番号を推測するためのおびただしい数の試みがなされる辞書攻撃又はブルートフォース攻撃などの攻撃に対しては脆弱である恐れがある。これらの脆弱性は、ユーザーを彼らのコンピューターへの信頼を低下させるように導き、積極的なユーザーエクスペリエンスを損ねる可能性がある。
本発明は上記の課題を解決しようとするものである。
[0002]この発明の概要は、発明を実施するための形態でさらに後述される一揃いの概念を簡略化した形式で紹介するために提供される。この発明の概要は、クレームされた事項の主要な特徴又は本質的特徴を識別することを意図するものではなく、クレームされた事項の範囲を判断する際の補助として用いられることを意図するものでもない。
[0003]トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストを表現するための技術が説明される。少なくともいくつかの実施形態では、オペレーティングシステムコンテキストの表現に対応する認可プリンシパルが、トラステッドプラットフォームモジュール内で導出される。認可プリンシパルは、トラステッドプラットフォームモジュール内に記憶されたセキュリティ資産へのアクセスのための認可ポリシーを定義するために使用され得る。
[0004]発明を実施するための形態は、添付図面を参照して説明される。図面では、参照番号の最上位桁は、その参照番号が最初に現れる図面を識別する。説明及び図面の中で異なるインスタンスに同一の参照番号を使用することは、類似の又は同一の物を示す可能性がある。
[0005]1つ又は複数の実施形態に従って本明細書で論じられる技術を用いて動作可能となる実装例での環境の図である。 [0006]1つ又は複数の実施形態による認可プリンシパルの実装の例を示す。 [0007]1つ又は複数の実施形態による認可ポリシーの実装の例を示す。 [0008]1つ又は複数の実施形態に従って認可プリンシパルを導出するための方法におけるステップを説明するフロー図である。 [0009]1つ又は複数の実施形態に従って認可ポリシーをセキュリティ資産に結び付けるための方法におけるステップを説明するフロー図である。 [0010]1つ又は複数の実施形態に従って認可ポリシーをセキュリティ資産に結び付けさせるための方法におけるステップを説明するフロー図である。 [0011]本明細書で説明する技術の実施形態を実装するように構成される、図1を参照して説明するシステム及びコンピューティングデバイスの例を示す。
概要
[0012]トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストを表現するための技術が説明される。概して、トラステッドプラットフォームモジュールは、保護されたハードウェア及び/又はファームウェア環境等の、一般的なシステムアクセスから保護される機能を指す。例えば、トラステッドプラットフォームモジュールは、コードが安全に実行され得る耐タンパ環境を表す。
[0013]様々な実装によれば、オペレーティングシステムコンテキストは、トラステッドプラットフォームモジュールを介して実装される認可プリンシパルを介して表現される。概して、オペレーティングシステムコンテキストは、オペレーティングシステムに関して発生する可能性のある異なった識別情報に基づく状態条件を表す。オペレーティングシステムコンテキスト属性の例は、ユーザー識別子、アプリケーション及びプロセス識別子、(例えば、ユーザーグループのための)グループ識別子、(例えば、異なるアクセス及びセキュリティ特権レベルのための)特権識別子などを含む。
[0014]様々な実装によれば、認可プリンシパルは、オペレーティングシステムコンテキストに基づき定義される。例えば、オペレーティングシステムコンテキスト属性は、トラステッドプラットフォームモジュール(TPM)アクセスモジュールによって処理されて、対応する認可プリンシパルを生成する。認可プリンシパルは、セキュリティキー(例えば、秘密キー)、セキュリティ証明書、保護されたデータなどの、トラステッドプラットフォームモジュール内に記憶されたセキュリティ資産にバインドされることができる。例えば、認可ポリシーは、認可プリンシパルで構成されて、バインドされたセキュリティ資産へのアクセスを制御することができる。
[0015]様々な実装によれば、本明細書で論じられる技術は、オペレーティングシステムコンテキストがトラステッドプラットフォームモジュールにおいて表現されることを可能にし、これにより、それまでのオペレーティングシステムの実装を超えてシステムセキュリティを高める。さらに、本明細書で論じられる技術は、トラステッドプラットフォームモジュールにおいて特徴付けられ、表現される多種多様なオペレーティングシステム関連の属性を提供し、それによって、既存のトラステッドプラットフォームモジュールの能力を高めて、異なるオペレーティングシステムコンテキストに関連したセキュリティ資産を保護する。
[0016]以下の説明では、最初に、本明細書に記載された技術を用いて動作可能である環境の例が説明される。次に、「手続きの例」と題するセクションは、1つ又は複数の実施形態に従ったトラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストを表現するためのいくつかの方法の例を説明する。最後に、「システム及びデバイスの例」と題するセクションは、1つ又は複数の実施形態に従って本明細書で論じる技術を用いて動作可能であるシステム及びデバイスの例を説明する。
環境の例
[0017]図1は、本明細書で論じるトラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストの技術表現を用いて動作可能な実装例における環境100の図である。環境100は、限定ではなく例として、スマートフォン、タブレットコンピューター、ポータブルコンピューター(例えば、ラップトップ)、デスクトップコンピューター、ウェアラブルデバイスなどの、任意の適切なデバイスとして具現化され得るコンピューティングデバイス102を含む。コンピューティングデバイス102の様々な異なる例の1つが示され、図7において後述される。
[0018]概して、コンピューティングデバイス102は、様々なユーザー104からアクセス可能であり、このユーザー104は様々なタスクを実行するためにコンピューティングデバイス102を活用することができる個人を表す。例えば、ユーザー104は、コンピューティングデバイス102を生産性業務(例えば、ワードプロセッシング、データ操作など)のために、通信(例えば、電子メール、ソーシャルネットワーキングなど)のために、コンテンツ消費(例えば、オーディオコンテンツ、ビデオコンテンツなど)のために、及び様々なその他の業務のために利用することができる。ユーザー104は、ユーザー識別子(ID)106に関連付けられ、ユーザー識別子は、個々のユーザー104を識別し、かつ個々のユーザー104を相互に区別するために活用され得るデータを表す。
[0019]様々な実装によれば、ユーザー104は、異なる基準に基づき異なるグループ108に集約され得る。個々のグループ108は、例えば、共通のセキュリティ及び/又はアクセス特権を共有するユーザー104の集合を表す。グループ108は、あるグループ108を別のグループ108から区別するために使用され得るグループ名を表す、グループ識別子(ID)110を介して互いに区別される。
[0020]コンピューティングデバイス102は、様々な活動及び業務を、例えばユーザー104によって実行されることを可能にする様々な異なる機能を含む。例えば、コンピューティングデバイス102は、オペレーティングシステム112及びアプリケーション114を含む。概して、オペレーティングシステム112は、ハードウェア、カーネルレベルモジュール及びサービス等のコンピューティングデバイス102の様々なシステムコンポーネントを統合するための機能を表す。例えば、オペレーティングシステム112は、コンピューティングデバイス102の様々な構成要素をアプリケーション114に統合して、コンポーネントとアプリケーション114間の対話を可能にすることができる。
[0021]アプリケーション114は、コンピューティングデバイス102を介して、ワードプロセッシング、ウェブブラウジング、電子メール、ソーシャルメディア、企業業務などの、様々な業務及び活動が実行されることを可能にする機能を表す。アプリケーション114は、コンピューティングデバイス102上にローカルにインストールされて、ローカルなランタイム環境を介して実行され得、かつ/又は、クラウドベースサービス、ウェブアプリなどの遠隔機能へのポータルを表すことができる。したがって、アプリケーション114は、ローカルに実行されるコード、遠隔のホストサービスへのポータルなどの、様々な形態をとることができる。
[0022]コンピューティングデバイス102は、さらに、トラステッドプラットフォームモジュール(TPM)116を含み、TPM116は、コンピューティングデバイス102の大部分又は全ての他の機能による一般的なアクセスから保護されるコンピューティングデバイス102の一部を表す。TPM116は、別個の、専用ハードウェア環境(例えば専用チップ)、既存のハードウェア環境の細分化された部分(例えば、中央処理装置(CPU)の副部分)、保護されたファームウェア環境などの、様々な方法で実装され得る。1つ又は複数の実装では、TPM116は、Trusted Computing Group(TCG)から利用可能であるトラステッドプラットフォームモジュール(TPM)仕様に従ったモジュールである。しかしながら、このことは限定することを意図するものではなく、TPM116は、様々な他の方法で実装されてもよい。
[0023]様々な実装によれば、TPM116との対話は、TPMアクセスモジュール118により仲介される。概して、TPMアクセスモジュール118は、オペレーティングシステム112のコンポーネント、アプリケーション114、ユーザー104などの、コンピューティングデバイス102の様々なコンポーネントがTPM116と対話することを可能にする機能を表す。少なくともいくつかの実装では、TPMアクセスモジュール118は、TPM116に対する唯一のインターフェイスとして機能する。TPMアクセスモジュール118は、例えば、TPM116のためのデバイスドライバーを表す。TPMアクセスモジュール118は、オペレーティングシステム112のコンポーネント、コンピューティングデバイス102の別個のシステムコンポーネント(例えば、カーネルレベルのコンポーネント)、これらの組合せなどの、様々な方法で実装されてもよい。
[0024]TPM116は、TPMプロセッサ120及びTPM記憶装置122を含む。様々な実装によれば、TPMプロセッサ120は、TPM116により活用されて、様々な処理タスクを実行することができる専用ハードウェア処理ユニットを表す。TPM記憶装置122は、TPM116のためのデータ記憶容量を表し、これは、TPM116の外部のエンティティによるアクセスから保護される。
[0025]TPM記憶装置122に、セキュリティ資産124、認可ポリシー126及び認可プリンシパル128が記憶される。概して、セキュリティ資産124は、特定のエンティティの識別情報、様々な種類のデータの認証及び/又は信頼される状態などを検証するために活用され得る異なる種類のセキュリティ関連情報を表す。セキュリティ資産124の例は、セキュリティキー(例えば、暗号化キー)、セキュリティ証明書、暗号化及び復号化アルゴリズム、保護されたデータなどを含む。認可プリンシパル128は、TPM116の他の機能とは別個に例示されるが、少なくともいくつかの実装では、認可プリンシパル128は、TPM内の既存のオブジェクト(例えば、セキュリティ資産124)によって表現され得る。セキュリティ資産124が構成され、活用され得る方法に関する詳細は、以下で論じられる。
[0026]認可ポリシー126は、セキュリティ資産124へのアクセスを制御するための異なる条件、規則、パラメータ及び命令を表す。例えば、個々の認可ポリシー126は、個々のセキュリティ資産124へのアクセスがそれぞれの認可ポリシー126を介して制御され得るように、個々のセキュリティ資産124にバインドされ得る。
[0027]様々な実装によれば、認可プリンシパル128は、オペレーティングシステム(OS)コンテキストが、例えば、認可ポリシー126を構成して、セキュリティ資産124へのアクセスを制御するために、TPM116に対して表現されることを可能にするルートオブジェクトを表す。概して、OSコンテキストは、コンピューティングデバイス102に対する異なる実行シナリオに関連して発生する異なるオペレーティングシステム属性及びパラメータを指す。認可プリンシパル128を介して表されることができる異なるOSコンテキスト属性の例は、ユーザーID106、グループID110、アプリケーション114のためのアプリケーション識別子(ID)130などを含む。さらに詳細に以下で説明するように、認可ポリシー126は、認可プリンシパル128の1つ又は複数で構成されて、個々のセキュリティ資産124を特定の認可ポリシー126に結び付けることができる。
[0028]少なくともいくつかの実装では、認可プリンシパル128は、それぞれのプリンシパル識別子(ID)132を介して個別に識別可能であり、プリンシパルID132は、それぞれ、認可プリンシパル128の異なるインスタンスを参照する。様々な実装によれば、個々のプリンシパルID132は、対応する認可プリンシパル128が作成されるそれぞれのOSコンテキストに基づき生成される。例えば、特定の認可プリンシパル128を識別するプリンシパルID132は、それぞれのOSコンテキストに対する識別子をハッシュすることにより生成されて、ユーザーID106のダイジェスト、グループID110のダイジェスト、アプリケーションID130のダイジェスト、それらの組合せなどの、OSコンテキストのダイジェストを生成することができる。
[0029]プリンシパルID132は、認可プリンシパル128とは別個に実装されるように例示されているが、これは限定することを意図するものではない。例えば、少なくともいくつかの実装では、プリンシパルID132は、認可プリンシパル128内に埋め込まれ、かつ/又は認可プリンシパル128の一部として実装され得る。例えば、少なくともいくつかの実装では、プリンシパルID132は、異なる認可プリンシパル128を識別し、区別するために参照可能である認可プリンシパル128の部分を表すことができる。
[0030]プリンシパルID132を利用するための付加的な又は代替の実装として、TPMアクセスモジュール118は、認可プリンシパルマッピング134を活用して、OSコンテキストの対応する認可プリンシパル128への対応付を維持することができ、認可プリンシパルマッピング124に基づき、認可プリンシパル128を利用してTPM116内の対応する認可プリンシパル128にバインドされたセキュリティ資産124にアクセスすることができる。
[0031]TPM116はさらに、プラットフォーム機能136及びプラットフォームレジスタ138を含む。プラットフォーム機能136は、認証機能、キー生成機能、暗号化及び復号化機能、コンテキスト関連機能などの、情報のセキュアな記憶装置を提供するために使用される様々な機能を表す。様々な実装によれば、TPMアクセスモジュール118は、プラットフォーム機能136と対話して、認可プリンシパル128、認可ポリシー126などを生成し、かつ/又は構成することができる。
[0032]プラットフォームレジスタ138は、コンピューティングデバイス102についてのシステム状態及びコンテキスト情報を記憶するための記憶場所を表す。例えば、プラットフォームレジスタ138は、システムブート時に収集されるオペレーティングシステム112のモジュールの測定値などの、様々なシステムコンポーネントの「測定値」を記憶するために活用されることができる。少なくともいくつかの実装では、プラットフォームレジスタは、TPM116のプラットフォーム構成レジスタ(PCR)を表す。
[0033]概して、「測定値」は、コンピューティングデバイス102のコードモジュール、コンピューティングデバイス102の構成データなどの、様々なデバイス関連データを識別及び/又は特徴付ける方法を指す。本明細書で使用されるように、用語「コードモジュール」は、概して、アプリケーション114の部分、サービス、オペレーティングシステム112のモジュール、プロセス、様々なバイナリ及び/又は実行可能ファイルなどの、実行可能なコードの部分を指す。測定値の例は、デバイス関連データ、データ署名、デバイス関連データの暗号化バージョン及び/又はデバイス関連データの部分などから生成されたハッシュ値を含む。測定値は、例えば、セキュアハッシュアルゴリズム(SHA)、例えば、SHA−1、SHA−2など、をデバイス関連データに適用することにより生成されることができる。
[0034]様々な実装によれば、デバイス関連データの測定値は、システムのブート時に生成され、プラットフォームレジスタ138に記憶されることができる。概して、プラットフォームレジスタ138は、コンピューティングデバイス102のデバイス関連データに対する一連の測定値を記憶しており、新たな測定値を既存のレジスタ値に付加して連結値のハッシュを計算することにより特定のプラットフォームレジスタ138の新しい値が計算される。このプロセスは、デバイス関連データの複数の異なるインスタンス、例えば複数のコードモジュールに対して繰り返されることができる。様々な実装によれば、特定のデバイス関連データ(例えば、コードモジュール)がロードされたか否かに関するその後の決定は、プラットフォームレジスタ138に対する現在の値を計算するために使用されるプロセスに基づきデバイス関連データのハッシュを計算することにより実行され得る。次いで、計算されたハッシュは、プラットフォームレジスタ138に記憶された値と比較して、ハッシュが値と合致するか否かを確認する。ハッシュがこの値に合致する場合、このことは、コードモジュールがロードされていること、及びコードモジュールの現在のバージョンがプラットフォームレジスタ138で測定されたバージョンと合致することを示す。
[0035]例えば、特定のコードモジュールが、保護されたリソース(例えば、セキュリティ資産124)へのアクセスを要求する場合、プラットフォームレジスタ138内の現在の測定値が、このセキュリティ資産124のための認可ポリシー126に記憶された値と比較されることができる。値が合致する場合、システムが、認可ポリシー126が構成されたときのシステムの元の状態から変更されておらず、したがって、安全であり、保護されたリソースへのアクセスを可能にされ得ると判断され得る。測定値が合致しない場合、コンピューティングデバイスの状態は安全ではなく、したがって、保護されたリソースへのアクセスが拒否されてもよいと判断され得る。概して、コードモジュールの測定値を比較するプロセスは「安全性検証(attestation)」と呼ばれる。
[0036]環境100はまた、ネットワーク142を介してコンピューティングデバイス102に通信可能にアクセス可能であり得る様々な種類のリソースを表す、リモートリソース140を含む。リモートリソース140の例は、ウェブサイト、コンテンツストア、ネットワーク−ホスト型アプリケーション(例えば、ウェブアプリ)、ネットワーク−ホスト型サービス、ソーシャルメディアプラットフォームなどを含む。概して、リモートリソース140は、コンピューティングデバイス102が、コンテンツ、サービスなどにアクセスするといった、対話をすることができる任意の種類のリソースを表す。リモートリソース140は、コンピューティングデバイスの様々な種類及び/又は組合せを介して実装されることができて、これらの例は、図7において後述される。
[0037]1つ又は複数のネットワーク142は、環境100の様々なエンティティが通信することができるネットワークを表す。ネットワーク142は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット等の、様々な異なる構成をとることができる。少なくともいくつかの実装では、環境100を参照して論じられる機能及び/又は本明細書での説明の他の部分は、図7を参照してより詳細に説明されるように、分散された環境(例えば、「クラウド上」)に実装されることができる。
[0038]図2は、1つ又は複数の実装に従った認可プリンシパル128の実装例を示す。上述したように、認可プリンシパル128は、オペレーティングシステム112と対話する異なるエンティティに対する識別子などの、コンピューティングデバイス102上に存在する可能性のある異なるOSコンテキストに基づいて導出される。
[0039]図2には、認可プリンシパル128を導出するために使用され得る、異なるOS関連の識別子及び属性を表す一組のOSコンテキスト200が含まれる。さらに、OSコンテキスト200に基づき導出される一組の認可プリンシパル202が示される。様々な実装によれば、認可プリンシパル202は、様々な異なる方法で導出されることができる。例えば、TPM116は、TPM116に対する内部的なキー(例えば、保証キー)を持つOSコンテキスト202の値に署名して、認可プリンシパル202を生成することができる。
[0040]認可プリンシパル202は、(n個の)認可プリンシパル204(1)、・・・204(n)を含む。認可プリンシパル204(1)、204(2)は、上述のユーザーID106などの、異なるユーザーを互いに区別するために使用されることができるユーザー識別子から導出される。認可プリンシパル204(3)、204(4)、204(5)は、上述のグループID110などの、グループを互いに区別するために使用されることができるグループ識別子から導出される。
[0041]認可プリンシパル204(6)、204(7)は、上述のアプリケーションID130などの、アプリケーションを互いに区別するために使用されることができるアプリケーション識別子から導出される。認可プリンシパル204(8)、204(9)は、アクセス特権、セキュリティ特権、操作特権などの、異なる特権レベルを互いに区別するために使用されることができる、特権識別子から導出される。これらの認可プリンシパルの例は、例示の目的のみのために提示されており、幅広く様々な他の種類及びインスタンスの認可プリンシパルが、開示された実装の趣旨及び範囲内で用いられ得ることを理解されたい。
[0042]様々な実装によれば、個々の認可プリンシパル202は、異なる方法で組み合わされて、様々な実行シナリオにおいて存在する可能性のあるOSコンテキストの異なる組合せを特徴付けることができる。
[0043]図3は、1つ又は複数の実装に従った認可ポリシー126の実装例を示す。認可ポリシー126は、セキュリティ資産302にバインドされた認可ポリシー300を含む。様々な実装によれば、セキュリティ資産302は、上述のセキュリティ資産124のインスタンスを表す。認可ポリシー300は、セキュリティ資産302へのアクセスを可能にするために満足されるべき様々な条件を指定する、ポリシー条件304を含む。この特定の例では、ポリシー条件304は、セキュリティ資産302に対するアクセスが許可される以前に適用されるべき一組の認可プリンシパルを指定する。
[0044]例えば、ポリシー条件304は、プリンシパル(アプリID_E)及びプリンシパル(グループ_B)の認可プリンシパルを指定する。したがって、要求側パーティが、プリンシパル(アプリID_E)及びプリンシパル(グループ_B)両者へのアクセス権を有していると検証済みである(例えば、安全性検証されている(attested))場合、当該パーティは、セキュリティ資産302へのアクセスが可能になる。一方、要求側パーティが、プリンシパル(アプリID_E)及びプリンシパル(グループ_B)のプリンシパルの1つ又は複数へのアクセス権を有していない場合、要求側パーティは、セキュリティ資産302へのアクセスを拒否されることになる。
[0045]認可ポリシー126はさらに、セキュリティ資産308にバインドされる認可ポリシー306を含む。様々な実装によれば、セキュリティ資産308は、上述のセキュリティ資産124のインスタンスを表す。認可ポリシー302は、セキュリティ資産308へのアクセスを可能にするために満足されるべき様々な条件を指定する、ポリシー条件310を含む。この特定の例では、ポリシー条件310は、セキュリティ資産308に対するアクセスが許可される以前に適用されるべき一組の認可プリンシパルを指定する。
[0046]例えば、ポリシー条件310は、プリンシパル(ユーザー_A)、プリンシパル(アプリID_J)及びプリンシパル(グループ_{B,C})の認可プリンシパルを指定する。したがって、要求側パーティが、プリンシパル(ユーザー_A)及びプリンシパル(アプリID_J)プリンシパル両者、ならびにプリンシパル(グループ_{B,C})プリンシパルの少なくとも1つへのアクセス権を有していると検証済みである場合、当該パーティは、セキュリティ資産308へのアクセスが可能になる。一方、要求側パーティが、プリンシパル(ユーザー_A)及びプリンシパル(アプリID_J)の1つ又は複数、ならびにプリンシパル(グループ_{B,C})プリンシパルの少なくとも1つへのアクセス権を有していない場合、要求側パーティは、セキュリティ資産308へのアクセスを拒否されることになる。
[0047]これらの認可ポリシー構成は、例の目的としてのみ提示されており、認可ポリシーが、様々な異なる方法で構成されて異なる認可プリンシパル構成及び組合せの多様な配列を反映することができることを理解されたい。
[0048]本明細書に記載された技術が動作することのできる環境の例を説明してきたが、ここで、1つ又は複数の実施形態に従ったいくつかの手続きの例の議論について考える。
手続きの例
[0049]以下のセクションでは、1つ又は複数の実施形態に従ったトラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストを表現するためのいくつかの手続きの例を説明する。手続きの例は、図1の環境100、図7のシステム00、及び/又は任意の他の適切な環境において用いられ得る。例えば、本手順は、コンピューティングデバイス102により、例えばTPMアクセスモジュール118を介して実行され得る。少なくともいくつかの実施形態では、様々な手続きについて説明するステップは、自動的に実装され、ユーザーの操作に依存しない。
[0050]図4は、1つ又は複数の実施形態による方法におけるステップを説明する、フロー図である。例えば、本方法は、1つ又は複数の実施形態に従った認可プリンシパルを導出するための手続きの例を説明する。
[0051]ステップ400は、オペレーティングシステムコンテキストの表現に対応する認可プリンシパルをトラステッドプラットフォームモジュールにおいて導出させる。概して、オペレーティングシステム(OS)コンテキストは、オペレーティングシステムに関して存在する可能性のある異なる識別情報ベースの状態条件を表す。例えば、TPMアクセスモジュール118は、プロセスから(例えば、アプリケーション114、システムプロセスなどから)要求を受信して、認可プリンシパルを生成する。概して、プロセスは、アプリケーションプロセス、システムプロセスなどの、TPM116の外部のコンピューティングデバイス上で実行することができる任意のプロセスを表す。
[0052]例えば、認可プリンシパルは、プロセスに関連付けられたオペレーティングシステムコンテキストに基づく。したがって、TPMアクセスモジュール118は、認可プリンシパルをTPM116内に導出させる。例えば、OSコンテキストデータ(例えば、ユーザーID、アプリケーションIDなど)は、トラステッドプラットフォームモジュールに対して安全であるキー(例えば、主キー、ルートキーなど)を使用してTPM116により処理されて、認可プリンシパルを導出する。したがって、個々の認可プリンシパル128は、様々な異なるOSコンテキストに対して作成され得る。
[0053]ステップ402は、トラステッドプラットフォームモジュールとインターフェイスをとり、認可プリンシパルをトラステッドプラットフォームモジュール内に記憶されたセキュリティ資産とバインドさせる。例えば、TPMアクセスモジュール118は、セキュリティ資産へのアクセスが、認可ポリシー126を満足することを条件とするように、認可ポリシー126を認可プリンシパルで構成させる。
[0054]ステップ404は、認可プリンシパルへのアクセスの要求を受信する。例えば、プロセスは、認可プリンシパルにバインドされたセキュリティ資産へのアクセスを可能にするために、認可プリンシパルへのアクセス権を要求する。
[0055]ステップ406は、要求についての要求コンテキストが認可プリンシパルに合致するか否かを確認する。例えば、要求コンテキストは、認可プリンシパルへのアクセス権を要求するプロセスのためのOSコンテキストに対応する。OSコンテキストの例は、プロセスに関連付けられたユーザー識別子、プロセスに関連付けられたアプリケーション識別子、プロセスに関連付けられたグループ識別子、プロセスに関連付けられた特権レベルなどを含む。
[0056]様々な実装によれば、要求コンテキストが認可プリンシパルと合致するか否かを確認するステップは、要求コンテキスト、例えば、提供されたOSコンテキストに基づいて認可プリンシパルを再作成することにより認可プリンシパルへのアクセス権を証明するステップを含む。例えば、認可プリンシパルを生成するために使用されるキー(主及び/又はルートキー)が、要求コンテキストを処理するために適用される。次いで、処理された要求コンテキストは、認可プリンシパルと比較されて、処理された要求コンテキストが認可プリンシパルに合致するか否かが確認される。要求コンテキスト(例えば、現在のOSコンテキスト)に基づき認可プリンシパルを再作成することによって、関連付けられた認可ポリシーが、認可プリンシパルへのアクセスが許可されているか否かを確認するために利用され得る。
[0057]要求についての要求コンテキストが認可プリンシパルに合致する場合(「はい」)、ステップ408は、要求コンテキストが認可プリンシパルに合致することに応答して、認可プリンシパルへのアクセスを可能にする。少なくともいくつかの実装では、認可プリンシパルへのアクセス権は、認可プリンシパルにバインドされたセキュリティ資産へのアクセスを可能にする。例えば、認可プリンシパルへのアクセスの要求は、TPM116に転送されることができ、TPM116は、要求コンテキストがセキュリティ資産の認可ポリシーを満足することに応答して、セキュリティ資産へのアクセスを可能にすることができる。
[0058]上述のように、要求コンテキストを認可プリンシパルに合致させるステップは、認可プリンシパルを生成するために使用されるキーを要求コンテキストに適用することによって認可プリンシパルを再作成しようと試みるステップを含むことができる。したがって、認可プリンシパルが、要求コンテキストを使用して成功裡に再作成された場合、認可プリンシパルへのアクセスが許可される。
[0059]要求についての要求コンテキストが認可プリンシパルに合致しない場合(「いいえ」)、ステップ410は、要求コンテキストが認可プリンシパルに合致しないことに応答して、認可プリンシパルへのアクセスを拒否する。例えば、TPMアクセスモジュール118は、認可プリンシパルへのアクセスの要求がTPM116に転送されることを防止する。
[0060]上述のように、要求コンテキストを認可プリンシパルに合致させるステップは、認可プリンシパルを生成するために使用されるキーを要求コンテキストに適用することによって認可プリンシパルを再作成しようと試みるステップを含むことができる。したがって、認可プリンシパルが、要求コンテキストを使用して成功裡に再作成されなかった場合、認可プリンシパルへのアクセスは許可されない。
[0061]図5は、1つ又は複数の実施形態に従った方法のステップを説明するフロー図である。例えば、本方法は、1つ又は複数の実施形態に従って認可ポリシーをセキュリティ資産にバインドするための手続きの例を説明する。
[0062]ステップ500は、要求を受信して、トラステッドプラットフォームモジュールに記憶されたセキュリティ資産に対する認可ポリシーを構成する。例えば、要求は、アプリケーション、及び/又は、コンピューティングデバイス102上にローカルに存在する他のプロセスから受信される。あるいは要求は、リモートリソース140などの遠隔のエンティティから受信されてもよい。様々な実装によれば、この要求は、1つ又は複数のオペレーティングシステムコンテキストの1つ又は複数の表現に個別に対応する1つ又は複数の認可プリンシパルを識別する。少なくともいくつかの実装では、セキュリティ資産は、上述のセキュリティ資産124の実装を表す。
[0063]ステップ502は、認可ポリシーをトラステッドプラットフォームモジュール内で1つ又は複数の認可プリンシパルで構成させる。例えば、TPMアクセスモジュール118は、1つ又は複数の認可プリンシパルをTPM116に伝達し、TPM116は認可ポリシー126に1つ又は複数の認可プリンシパルを設定する。
[0064]ステップ504は、認可ポリシーを、トラステッドプラットフォームモジュールに記憶されたセキュリティ資産にバインドさせる。例えば、TPMアクセスモジュール118は、認証ポリシーがセキュリティ資産にバインドされるべきであることをTPM116に指示する。様々な実装によれば、セキュリティ資産へのアクセスの要求を可能にするステップは、要求コンテキストが認可ポリシーの1つ又は複数の認可プリンシパルに合致することが条件とされる。
[0065]ステップ506は、セキュリティ資産へのアクセスの要求を受信する。例えば、コンピューティングデバイス102上で走行するプロセスは、セキュリティ資産へのアクセスを要求する。
[0066]ステップ508は、要求についての要求コンテキストが認可ポリシーを満足するか否かを確認する。例えば、要求コンテキストが、認可ポリシーにより指定された1つ又は複数の認可プリンシパルに合致するか否かが判断される。上述のように、要求は、例えば、アプリケーション114に関連付けられる、コンピューティングデバイス102上で走行するプロセスによって始動されることができる。したがって、要求コンテキストは、プロセスに関連付けられた1つ又は複数のOSコンテキストを含むことができ、この例が詳細に上述されている。
[0067]様々な実装によれば、要求コンテキストが認可ポリシーを満足するか否かを確認するステップは、要求コンテキスト、認可ポリシーにバインドされた1つ又は複数の認可プリンシパルを再作成しようと試みるステップを含む。例えば、1つ又は複数の認可プリンシパルを生成するために使用されるキーが、要求コンテキストに適用される。したがって、1つ又は複数の認可プリンシパルへのアクセス権は、1つ又は複数の認可プリンシパルが要求コンテキストを使用して成功裡に再作成されたか否かに基づく。
[0068]要求についての要求コンテキストが認可ポリシーを満足する場合(「はい」)、ステップ510は、要求についての要求コンテキストが認可ポリシーを満足することに応答して要求を可能にする。例えば、認可ポリシーにバインドされた1つ又は複数の認可プリンシパルが、要求コンテキストを使用して成功裡に再作成される場合、セキュリティ資産へのアクセスの要求が許可される。様々な実装によれば、要求を許可するステップは、要求側エンティティがセキュリティ資産にアクセスすることを可能とする。
[0069]要求についての要求コンテキストが認可ポリシーを満足しない場合(「いいえ」)、ステップ512は、要求についての要求コンテキストが認可ポリシーを満足しないことに応答して要求を拒否する。例えば、認可ポリシーにバインドされた1つ又は複数の認可プリンシパルが、要求コンテキストを使用して成功裡に再作成されない場合には、セキュリティ資産へのアクセスの要求は拒否される。例えば、要求側エンティティは、セキュリティ資産へのアクセスを拒否される。
[0070]図6は、1つ又は複数の実施形態に従った方法のステップを説明するフロー図である。例えば、本方法は、認可ポリシーを1つ又は複数の実施形態に従ってセキュリティ資産にバインドさせるための手続きの例を説明する。
[0071]ステップ600は、コンピューティングデバイスのプロセスのための認可プリンシパルを、コンピューティングデバイスのトラステッドプラットフォームモジュールのレジスタに拡張する。例えば、TPMアクセスモジュール118は、プロセスの1つ又は複数の認可プリンシパルをレジスタに拡張させる特定のプラットフォームレジスタ138上の拡張動作を実行する。例えば、レジスタは、トラステッドプラットフォームモジュールのプラットフォーム構成レジスタ(PCR)に対応する。
[0072]ステップ602は、トラステッドプラットフォームモジュールのレジスタからのデータについての要求側エンティティからの要求を受信する。様々な実装によれば、要求側エンティティは、アプリケーション114、リモートリソース140などのようなトラステッドプラットフォームモジュールの外部にある。
[0073]ステップ604は、レジスタからのデータを要求側エンティティに返し、返されたデータは、プロセスのための認可プリンシパルに基づいて生成された識別子を含む。例えば、識別子は、プロセスのオペレーティングシステムコンテキストに対応した認可プリンシパルに少なくとも部分的には基づき生成される。例えば、上述のように、識別子は、認可プリンシパル128のために生成されるプリンシパルID132に対応することができる。さらに上述のように、プリンシパルID132は、関連する認可プリンシパル128とは別個に、あるいは、関連する認可プリンシパル132内に埋め込まれかつ/又はその一部として実装される識別子として実装されることができる。
[0074]ステップ606は、トラステッドプラットフォームモジュール内に記憶されたセキュリティ資産が認可プリンシパルで構成された認可ポリシーにバインドされるべきとの要求側エンティティからの指示を受信する。例えば、TPMアクセスモジュール118は、要求側エンティティから要求を受信する。
[0075]ステップ608は、認可プリンシパルがセキュリティ資産へのアクセスのための条件を表すように、認可ポリシーをトラステッドプラットフォームモジュール内のセキュリティ資産にバインドさせる。例えば、TPMアクセスモジュール118は、TPM116と対話して、セキュリティ資産に対する認可ポリシーを構成する。概して、認可ポリシーは、セキュリティ資産へのアクセスのための様々な条件を指定する。例えば、認可ポリシーがセキュリティ資産へのアクセスを指定することは、要求側エンティティが認可ポリシー内で指定された1つ又は複数の認可プリンシパルに合致することを条件とする。少なくともいくつかの実装では、認可ポリシーは、セキュリティ資産へのアクセスのための条件を表す複数の認可プリンシパルを指定する。
[0076]トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストの表現のためのいくつかの手続きの例を論じてきたが、ここで、1つ又は複数の実施形態に従ったシステム及びデバイスの例についての議論を考える。
システム及びデバイスの例
[0077]図7は、コンピューティングデバイスの例702を含む、システムの例を全体的に700で示し、コンピューティングデバイスの例702は、本明細書で説明される様々な技術を実装し得る1つ又は複数のコンピューティングシステム及び/又はデバイスを表す。例えば、図1を参照して上記で論じたコンピューティングデバイス102は、コンピューティングデバイス702として具現化されることができる。コンピューティングデバイス702は、例えば、サービスプロバイダーのサーバー、クライアントに関連付けられるデバイス(例えば、クライアントデバイス)、オンチップシステム、及び/又はいかなる他の適切なコンピューティングデバイスもしくはコンピューティングシステムであってもよい。
[0078]図示するコンピューティングデバイスの例702は、互いに通信可能に連結される、処理システム704、1つ又は複数のコンピューター可読メディア706、及び1つ又は複数の入力/出力(I/O:Input/Output)インターフェイス708を含む。図示していないが、コンピューティングデバイス702は、様々なコンポーネントを互いに連結する、システムバス、又は他のデータ及びコマンド転送システムをさらに含んでもよい。システムバスは、様々なバスアーキテクチャのいずれかを利用する、メモリバスもしくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、及び/又はプロセッサバスもしくはローカルバスなどの、様々なバス構造のうちのいずれか1つ又はその組合せを含むことができる。様々な他の例も、制御ライン及びデータラインとして検討される。
[0079]処理システム704は、1つ又は複数の動作を、ハードウェアを使用して実行する機能を表す。したがって、処理システム704は、プロセッサ、機能ブロックなどとして構成され得るハードウェア要素710を含むものとして示される。これは、特定用途向け集積回路、又は1つもしくは複数の半導体を使用して形成される他の論理デバイスとしてのハードウェアでの実装を含んでもよい。ハードウェア要素710は、それらが形成される物質、又はそこで採用される処理機構によって限定されない。例えば、プロセッサは、半導体及び/又はトランジスタ(例えば、電子集積回路(IC:integrated circuit))からなるものでもよい。このような文脈において、プロセッサが実行可能な命令は、電子的に実行可能な命令であってもよい。
[0080]コンピューター可読メディア706は、メモリ/記憶装置712を含むものとして示される。メモリ/記憶装置712は、1つ又は複数のコンピューター可読メディアに関連付けられるメモリ/記憶装置の容量を表す。メモリ/記憶装置712は、揮発性メディア(ランダムアクセスメモリ(RAM:random access memory)など)及び/又は不揮発性メディア(読み出し専用メモリ(ROM:read only memory)、フラッシュメモリ、光ディスク、磁気ディスクなど)を含んでもよい。メモリ/記憶装置712は、固定メディア(例えば、RAM、ROM、固定ハードドライブなど)及びリムーバブルメディア(例えば、フラッシュメモリ、リムーバブルハードドライブ、光ディスクなど)を含んでもよい。コンピューター可読メディア706は、以下でさらに説明される、様々な他の方法で構成されてもよい。
[0081]入力/出力インターフェイス708は、ユーザーがコンピューティングデバイス702にコマンド及び情報を入力することを可能にし、かつ、情報が様々な入力/出力デバイスを用いてユーザー及び/又は他のコンポーネントもしくはデバイスに提示されることをも可能にする、機能を表す。入力デバイスの例は、キーボード、カーソル制御デバイス(例えば、マウス)、マイクロホン(例えば、音声認識用及び/又は音声入力用)、スキャナー、タッチ機能(例えば、物理的接触を検出するように構成される、容量性センサー又は他のセンサー)、カメラ(例えば、接触をジェスチャとして含まない、動きを検出するために赤外振動数などの可視又は不可視波長を採用し得るカメラ)などを含む。出力デバイスの例は、ディスプレイデバイス(例えば、モニター又はプロジェクター)、スピーカー、プリンター、ネットワークカード、触覚レスポンスデバイスなどを含む。したがって、コンピューティングデバイス702は、以下さらに説明するような様々な方法で、ユーザーの操作をサポートするように構成され得る。
[0082]ソフトウェア、ハードウェア要素、又はプログラムモジュールの一般的な文脈において、様々な技術が本明細書で説明され得る。概して、このようなモジュールは、特定のタスクを実行し、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、要素、コンポーネント、データ構造などを含む。本明細書で用いる「モジュール」、「機能」、「エンティティ」及び「コンポーネント」という用語は、概して、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組合せを表す。本明細書で説明する技術の特徴は、プラットフォームに依存しないことであり、これは、様々なプロセッサを有する、様々な商用コンピューティングプラットフォーム上で、技術が実装され得ることを意味する。
[0083]説明したモジュール及び技術の実装は、何らかの形式のコンピューター可読メディア上に記憶され、又は何らかの形式のコンピューター可読メディアを介して送信されてもよい。コンピューター可読メディアは、コンピューティングデバイス702によってアクセスされ得る、様々なメディアを含んでもよい。限定ではなく例として、コンピューター可読メディアは、「コンピューター可読記憶メディア」及び「コンピューター可読信号メディア」を含むことができる。
[0084]「コンピューター可読記憶メディア」は、単なる信号伝送、搬送波、又は信号自体とは対照的に、情報の永続的記憶を可能にするメディア及び/又はデバイスを指すことができる。コンピューター可読記憶メディアは、信号自体を含まない。コンピューター可読記憶メディアは、コンピューター可読命令、データ構造、プログラムモジュール、論理素子/回路、又は他のデータなどの情報の記憶に適切な方法又は技術で実装される、揮発性の及び不揮発性の、リムーバブル及び非リムーバブルメディアならびに/又は記憶デバイスなどのハードウェアを含む。コンピューター可読記憶メディアの例は、RAM、ROM、EEPROM、フラッシュメモリ、もしくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD:digital versatile disks)もしくは他の光学式記憶装置、ハードディスク、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、又は他の記憶デバイス、有形メディア、もしくは所望の情報を記憶するのに適切で、コンピューターによりアクセスされ得る製品を含むことができるが、限定はされない。
[0085]「コンピューター可読信号メディア」は、ネットワークを介するなどして命令をコンピューティングデバイス702のハードウェアに送信するように構成される信号担持メディアを指すことができる。信号メディアは、典型的には、コンピューター可読命令、データ構造、プログラムモジュール、又は、搬送波、データ信号、もしくは他の伝送機構などの変調データ信号中の他のデータを具現化することができる。信号メディアは、いかなる情報配信メディアをも含む。「変調データ信号」という用語は、信号内の情報を符号化するように設定され、又は変更される信号の特性のうち1つ又は複数の特性を有する信号を意味する。限定ではなく例として、通信メディアは、有線ネットワーク又は直接有線接続などの有線メディア、ならびに音波、無線周波数(RF:radio frequency)、赤外線、及び他の無線メディアなどの無線メディアを含む。
[0086]前述したように、ハードウェア要素710及びコンピューター可読メディア706は、本明細書で説明する技術の少なくともいくつかの態様を実装するために、いくつかの実施形態で採用され得る命令、モジュール、プログラム可能なデバイスロジック及び/又はハードウェア形式で実装される固定デバイスロジックを表す。ハードウェア要素は、集積回路又はオンチップシステムのコンポーネント、特定用途向け集積回路(ASIC:application−specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA:field−programmable gate array)、結合プログラム可能論理回路(CPLD:complex programmable logic device)、及びシリコン又は他のハードウェアデバイスでの他の実装を含んでもよい。この文脈では、ハードウェア要素は、処理デバイスとして動作してもよく、処理デバイスは、実行する命令を記憶するために利用されるハードウェア要素及びハードウェアデバイス、例えば、前述のコンピューター可読記憶メディアにより具現化される命令、モジュール、及び/又はロジックにより定義されるプログラムタスクを実行する。
[0087]前述したものを組み合わせたものが、また、本明細書で説明した様々な技術及びモジュールを実装するために採用されることができる。したがって、ソフトウェア、ハードウェア、又はプログラムモジュール、及び他のプログラムモジュールは、ある形式のコンピューター可読記憶メディア上で、及び/又は1つ又は複数のハードウェア要素710によって具現化される、1つ又は複数の命令及び/又はロジックとして実装されることができる。コンピューティングデバイス702は、ソフトウェアモジュール及び/又はハードウェアモジュールに対応する特定の命令及び/又は関数を実装するように構成されてもよい。したがって、コンピューティングデバイス702によってソフトウェアとして実行可能なモジュールの実装は、例えば、処理システムのコンピューター可読記憶メディア及び/又はハードウェア要素710の使用を通じて、ハードウェア内で少なくとも部分的に実現されることができる。命令及び/又は関数は、1つ又は複数の製品(例えば、1つ又は複数のコンピューティングデバイス702及び/又は処理システム704)によって、本明細書で説明される技術、モジュール、及び例を実装するように実行可能/動作可能であってもよい。
[0088]図7でさらに示すように、システムの例700は、パーソナルコンピューター(PC:personal computer)、テレビジョンデバイス、及び/又はモバイルデバイス上でのアプリケーション実行時における、シームレスなユーザーエクスペリエンスのためのユビキタス環境を可能にする。アプリケーションを利用する、ビデオゲームをする、ビデオを見るなどの間に、1つのデバイスから次のデバイスへと移行する際の共通のユーザーエクスペリエンスについて、サービス及びアプリケーションは、3つの環境全てにおいて実質的に同様に実行される。
[0089]システムの例700では、複数のデバイスは、中央コンピューティングデバイスを通じて相互接続される。中央コンピューティングデバイスは、複数のデバイスに対しローカル接続されてもよく、又は、複数のデバイスから遠隔設置されてもよい。1つの実施形態では、中央コンピューティングデバイスは、ネットワーク、インターネット、又は他のデータ通信リンクを通じて複数のデバイスに接続される1つ又は複数のサーバーコンピューターのクラウドであってもよい。
[0090]1つの実施形態では、この相互接続アーキテクチャによって、複数のデバイスを横断して配信される機能が、複数のデバイスのユーザーに共通の、かつシームレスなエクスペリエンスを提供することが可能となる。複数のデバイスのそれぞれは、異なる物理的要件及び能力を有する可能性があり、中央コンピューティングデバイスは、プラットフォームを使用して、デバイスに適合し、かつ全てのデバイスに共通するエクスペリエンスがデバイスに配信されることを可能にする。1つの実施形態では、ターゲットデバイスのクラスが生成され、エクスペリエンスは、デバイスのジェネリッククラスに適合する。デバイスのクラスは、デバイスの物理的特徴、使用形態、又は他の共通の特性によって定義されることができる。
[0091]様々な実装では、コンピューティングデバイス702は、コンピューター714、モバイル716、及びテレビジョン718の使用のためなどの、様々な異なる構成を想定してもよい。これらの構成のそれぞれは、概して異なる構成及び能力を有する可能性があるデバイスを含み、したがって、コンピューティングデバイス702は、異なるデバイスクラスのうちの1つ又は複数のデバイスクラスに従って構成され得る。例えば、コンピューティングデバイス702は、パーソナルコンピューター、デスクトップコンピューター、マルチ画面コンピューター、ラップトップコンピューター、ネットブックなどを含む、コンピューター714クラスのデバイスとして実装されてもよい。
[0092]コンピューティングデバイス702はまた、携帯電話、携帯型音楽プレーヤー、携帯ゲームデバイス、タブレットコンピューター、ウェアラブルデバイス、マルチ画面用コンピューターなどのモバイルデバイスを含むモバイル716クラスのデバイスとしても実装され得る。コンピューティングデバイス702は、また、普段の視聴環境において、通常大型画面を有し、又は通常大型画面に接続されるデバイスを含む、テレビジョン718クラスのデバイスとして実装されてもよい。これらのデバイスは、テレビジョン、セットトップボックス、ゲームコンソールなどを含む。
[0093]本明細書で説明した技術は、コンピューティングデバイス702のこれら様々な構成によってサポートされ得るが、本明細書で説明した技術の特定の例に限定されない。例えば、コンピューティングデバイス102及び/又はTPMアクセスモジュール118に関して論じた機能は、以下で説明されるように「クラウド」720上でプラットフォーム722を介するなどして、分散システムの使用を通じて全体又は一部が実装され得る。
[0094]クラウド720は、リソース724のためのプラットフォーム722を含み、かつ/又は表す。プラットフォーム722は、クラウド720のハードウェア(例えば、サーバー)及びソフトウェアリソースの基盤となる機能を抽象化する。リソース724は、コンピューティングデバイス702から離れたサーバー上でコンピューター処理が実行される間に利用できるアプリケーション及び/又はデータを含んでもよい。リソース724は、インターネット上で、及び/又はセルラーネットワークもしくはWi−Fiネットワークなどのサブスクライバーネットワークを通じて提供されるサービスを含むこともできる。
[0095]プラットフォーム722は、コンピューティングデバイス702を他のコンピューティングデバイスと接続するためのリソース及び関数を抽象化することができる。プラットフォーム722は、また、プラットフォーム722を介して実装されるリソース724について直面する要求に対して、対応するレベルのスケールを提供するためのリソースのスケーリングを抽象化する役割をする。したがって、相互接続したデバイスの実施形態では、本明細書で説明する機能の実装は、システム700の至る所に分散されることができる。例えば、機能は、コンピューティングデバイス702上で部分的に実装されることができ、同様に、クラウド720の機能を抽象化するプラットフォーム722を介して実装されることができる。
[0096]本明細書で論じるのは、本明細書で論じる技術を実行するように実装され得る多数の方法である。方法の態様は、ハードウェア、ファームウェアもしくはソフトウェア、又はこれらの組合せで実装されることができる。方法は、1つ又は複数のデバイスによって実行される動作を指定するステップの集合として示され、動作の実行についてそれぞれのブロックによって示される順序に必ずしも限定されない。さらに、特定の方法に関して示す動作は、1つ又は複数の実装に従って、別の方法の動作と組み合わされてもよく、かつ/又は交換されてもよい。方法の態様は、環境100に関して上記で論じた様々なエンティティ間の相互作用を介して実装されることができる。
結論
[0097]トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストの表現のための技術が説明される。構造的特徴及び/又は方法論的な動作に固有の言葉で、実施形態が説明されているが、添付の請求項で定義される実施形態は、説明した特定の特徴又は動作に必ずしも限定されないと理解されるべきである。むしろ、特定の特徴及び動作は、クレームされる実施形態を実装する形式の例として開示される。

Claims (13)

  1. セキュリティ資産へのアクセスを制御するためのシステムであって、
    1つ又は複数のプロセッサと、
    コンピューター実行可能な命令を記憶する1つ又は複数のコンピューター可読記憶媒体であって、前記コンピューター実行可能な命令が、前記1つ又は複数のプロセッサによる実行に応答して、前記システムに、
    オペレーティングシステムコンテキストの表現に対応する認可プリンシパルをトラステッドプラットフォームモジュール内に導出させるステップと、
    前記トラステッドプラットフォームモジュールとインターフェイスをとり、前記認可プリンシパルを前記トラステッドプラットフォームモジュール内に記憶されたセキュリティ資産にバインドさせるステップと、
    前記認可プリンシパルへのアクセスの要求を受信するステップと、
    前記要求コンテキストが前記認可プリンシパルに合致するか否かに基づきアクションを起こすステップであって、前記アクションが、
    要求コンテキストが前記認可プリンシパルに合致することに応答して、前記セキュリティ資産へのアクセスが可能となるように、前記認可プリンシパルへのアクセスを可能とするステップ、又は、
    前記要求コンテキストが前記認可プリンシパルに合致しないことに応答して、前記セキュリティ資産へのアクセスが可能とならないように、前記認可プリンシパルへのアクセスを拒否するステップ
    の内の一方を含む、アクションを起こすステップと
    を含む動作を実行させる、1つ又は複数のコンピューター可読記憶媒体と
    を含む、セキュリティ資産へのアクセスを制御するためのシステム。
  2. 前記操作が、トラステッドプラットフォームモジュールのドライバーにより実行される、請求項1に記載のシステム。
  3. 前記オペレーティングシステムコンテキストが、ユーザー識別子、アプリケーション識別子、グループ識別子又は特権レベルの1つ又は複数を含む、請求項1に記載のシステム。
  4. 前記セキュリティ資産が、前記トラステッドプラットフォームモジュール内に記憶されたセキュリティキー、セキュリティ証明書又は保護されたデータの1つ又は複数を含む、請求項1に記載のシステム。
  5. 前記認可プリンシパルが、前記セキュリティ資産へのアクセスに対する1つ又は複数の条件を指定する認可ポリシーを介して前記セキュリティ資産にバインドされ、前記1つ又は複数の条件が、前記認可プリンシパルへのアクセス権が前記セキュリティ資産へのアクセスのための条件であることを指定する、請求項1に記載のシステム。
  6. 前記認可プリンシパルへのアクセスの前記要求が、前記トラステッドプラットフォームモジュールの外部のプロセスにより始動され、かつ、前記要求コンテキストが、前記プロセスに関連付けられたユーザー識別子、前記プロセスに関連付けられたアプリケーション識別子、前記プロセスに関連付けられたグループ識別子、又は前記プロセスに関連付けられた特権レベルの内の1つ又は複数を含む、請求項1に記載のシステム。
  7. セキュリティ資産へのアクセスを制御するためのコンピューターで実装される方法であって、
    トラステッドプラットフォームモジュール内に記憶されたセキュリティ資産に対する認可ポリシーを構成するための要求を受信するステップであって、前記要求が、1つ又は複数のオペレーティングシステムコンテキストの1つ又は複数の表現に個別に対応する1つ又は複数の認可プリンシパルを識別する、受信するステップと、
    前記認可ポリシーを前記トラステッドプラットフォームモジュール内で前記1つ又は複数の認可プリンシパルで構成させるステップと、
    前記セキュリティ資産へのアクセスの要求を可能とすることが、要求コンテキストが前記認可ポリシーの前記1つ又は複数の認可プリンシパルに合致することを条件とするように、前記認可ポリシーを前記トラステッドプラットフォームモジュール内に記憶された前記セキュリティ資産にバインドさせるステップと
    を含む、コンピューターで実装される方法。
  8. 前記セキュリティ資産が、前記トラステッドプラットフォームモジュール内に記憶されたセキュリティキー、セキュリティ証明書又は保護されたデータの内の1つ又は複数を含む、請求項7に記載のコンピューターで実装される方法。
  9. 前記1つ又は複数のオペレーティングシステムコンテキストが、ユーザー識別子、アプリケーション識別子、グループ識別子又は特権レベルの内の1つ又は複数を含む、請求項7に記載のコンピューターで実装される方法。
  10. 前記1つ又は複数の認可プリンシパルが、前記1つ又は複数のオペレーティングシステムコンテキストを使用して生成された1つ又は複数のキーを含む、請求項7に記載のコンピューターで実装される方法。
  11. 前記1つ又は複数の認可プリンシパルが、前記セキュリティ資産へのアクセスのためのアクセス条件を表す複数の異なる認可プリンシパルを含む、請求項7に記載のコンピューターで実装される方法。
  12. 前記セキュリティ資産へのアクセスの要求を受信するステップと、
    前記要求に応答してアクションを実行するステップであって、
    前記要求の要求コンテキストが前記認可ポリシーを満足することに応答して前記要求を可能とするステップ、又は、
    前記要求の要求コンテキストが前記認可ポリシーを満足しないことに応答して前記要求を拒否するステップ
    の少なくとも一方を含む、実行するステップと
    をさらに含む、請求項7に記載のコンピューターで実装される方法。
  13. 前記1つ又は複数の認可プリンシパルへのアクセスの前記要求が、システムプロセスにより始動され、かつ、前記要求コンテキストが、前記システムプロセスに関連付けられたユーザー識別子、前記システムプロセスに関連付けられたアプリケーション識別子、前記システムプロセスに関連付けられたグループ識別子又は前記システムプロセスに関連付けられた特権レベルの内の1つ又は複数を含む、請求項12に記載のコンピューターで実装される方法。
JP2017516669A 2014-09-25 2015-09-23 トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストの表現 Active JP6584500B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/497,221 2014-09-25
US14/497,221 US9767304B2 (en) 2014-09-25 2014-09-25 Representation of operating system context in a trusted platform module
PCT/US2015/051683 WO2016049157A1 (en) 2014-09-25 2015-09-23 Representation of operating system context in a trusted platform module

Publications (3)

Publication Number Publication Date
JP2017530471A true JP2017530471A (ja) 2017-10-12
JP2017530471A5 JP2017530471A5 (ja) 2018-09-27
JP6584500B2 JP6584500B2 (ja) 2019-10-02

Family

ID=54325669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017516669A Active JP6584500B2 (ja) 2014-09-25 2015-09-23 トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストの表現

Country Status (11)

Country Link
US (1) US9767304B2 (ja)
EP (1) EP3198511B1 (ja)
JP (1) JP6584500B2 (ja)
KR (1) KR102396070B1 (ja)
CN (1) CN107077571B (ja)
AU (1) AU2015320713B2 (ja)
BR (1) BR112017004416B1 (ja)
CA (1) CA2959735C (ja)
MX (1) MX2017003931A (ja)
RU (1) RU2702276C2 (ja)
WO (1) WO2016049157A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3038394A1 (en) * 2014-12-22 2016-06-29 Gemalto Sa Method of restoring a secure element to a factory state
US10586076B2 (en) * 2015-08-24 2020-03-10 Acronis International Gmbh System and method for controlling access to OS resources
US11243782B2 (en) 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
WO2020117680A1 (en) 2018-12-03 2020-06-11 DSi Digital, LLC Cross-sensor predictive inference

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11175402A (ja) * 1997-12-10 1999-07-02 Fujitsu Ltd カード型記憶媒体及びカード型記憶媒体のアクセス制御方法並びにカード型記憶媒体用アクセス制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2012520501A (ja) * 2009-03-12 2012-09-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 周辺デバイスを用いた完全性検証
US20120297455A1 (en) * 2011-05-17 2012-11-22 Microsoft Corporation Target-based access check independent of access request
JP2014503909A (ja) * 2010-12-20 2014-02-13 マイクロソフト コーポレーション 改ざん防止ロケーションサービス

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6A (en) * 1836-08-10 Thomas blanghard
US6119230A (en) 1997-10-01 2000-09-12 Novell, Inc. Distributed dynamic security capabilities
US7275263B2 (en) * 2003-08-11 2007-09-25 Intel Corporation Method and system and authenticating a user of a computer system that has a trusted platform module (TPM)
US7716494B2 (en) 2004-07-15 2010-05-11 Sony Corporation Establishing a trusted platform in a digital processing system
US7836299B2 (en) 2005-03-15 2010-11-16 Microsoft Corporation Virtualization of software configuration registers of the TPM cryptographic processor
US8090919B2 (en) * 2007-12-31 2012-01-03 Intel Corporation System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
US7930733B1 (en) 2006-04-10 2011-04-19 At&T Intellectual Property Ii, L.P. Method and system for execution monitor-based trusted computing
US20080040613A1 (en) * 2006-08-14 2008-02-14 David Carroll Challener Apparatus, system, and method for secure password reset
US7841000B2 (en) * 2006-10-16 2010-11-23 Lenovo (Singapore) Pte. Ltd. Authentication password storage method and generation method, user authentication method, and computer
JP5116325B2 (ja) * 2007-03-15 2013-01-09 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
US8032741B2 (en) * 2007-08-22 2011-10-04 Intel Corporation Method and apparatus for virtualization of a multi-context hardware trusted platform module (TPM)
US8763127B2 (en) 2009-03-13 2014-06-24 Rutgers, The State University Of New Jersey Systems and method for malware detection
US20100318782A1 (en) * 2009-06-12 2010-12-16 Microsoft Corporation Secure and private backup storage and processing for trusted computing and data services

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11175402A (ja) * 1997-12-10 1999-07-02 Fujitsu Ltd カード型記憶媒体及びカード型記憶媒体のアクセス制御方法並びにカード型記憶媒体用アクセス制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2012520501A (ja) * 2009-03-12 2012-09-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 周辺デバイスを用いた完全性検証
JP2014503909A (ja) * 2010-12-20 2014-02-13 マイクロソフト コーポレーション 改ざん防止ロケーションサービス
US20120297455A1 (en) * 2011-05-17 2012-11-22 Microsoft Corporation Target-based access check independent of access request

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
STAN REIMER,他, MICROSOFT WINDOWS SERVER 2008 リソースキット ACTIVE DIRECTORY編, vol. 初版, JPN6019015540, 29 September 2008 (2008-09-29), pages 283 - 290, ISSN: 0004026641 *

Also Published As

Publication number Publication date
US9767304B2 (en) 2017-09-19
KR20170059447A (ko) 2017-05-30
AU2015320713B2 (en) 2020-11-05
EP3198511B1 (en) 2020-07-15
EP3198511A1 (en) 2017-08-02
BR112017004416A2 (pt) 2017-12-05
KR102396070B1 (ko) 2022-05-09
RU2017109885A3 (ja) 2019-04-01
RU2702276C2 (ru) 2019-10-07
WO2016049157A1 (en) 2016-03-31
US20160092691A1 (en) 2016-03-31
CN107077571A (zh) 2017-08-18
CN107077571B (zh) 2020-03-27
RU2017109885A (ru) 2018-09-24
JP6584500B2 (ja) 2019-10-02
CA2959735A1 (en) 2016-03-31
BR112017004416B1 (pt) 2022-12-06
CA2959735C (en) 2022-10-18
AU2015320713A1 (en) 2017-03-16
MX2017003931A (es) 2017-06-26

Similar Documents

Publication Publication Date Title
US11093604B2 (en) Personalized and cryptographically secure access control in trusted execution environment
CN107408183B (zh) 通过安全硬化管理代理进行的设备证实
CN107077574B (zh) 用于客户端设备的信任服务
EP3047375B1 (en) Virtual machine manager facilitated selective code integrity enforcement
JP6286034B2 (ja) プロセス認証とリソースパーミッション
US10212156B2 (en) Utilizing a trusted platform module (TPM) of a host device
US9565169B2 (en) Device theft protection associating a device identifier and a user identifier
JP6584500B2 (ja) トラステッドプラットフォームモジュールにおけるオペレーティングシステムコンテキストの表現
US10043018B2 (en) Access privilege analysis for a securable asset
KR102028670B1 (ko) 클락 윌슨 모델을 적용한 모바일 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180817

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180817

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190718

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190805

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190903

R150 Certificate of patent or registration of utility model

Ref document number: 6584500

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250