JP2014507043A - オペレーティングシステムのコンフィグレーション値の保護 - Google Patents

オペレーティングシステムのコンフィグレーション値の保護 Download PDF

Info

Publication number
JP2014507043A
JP2014507043A JP2013556865A JP2013556865A JP2014507043A JP 2014507043 A JP2014507043 A JP 2014507043A JP 2013556865 A JP2013556865 A JP 2013556865A JP 2013556865 A JP2013556865 A JP 2013556865A JP 2014507043 A JP2014507043 A JP 2014507043A
Authority
JP
Japan
Prior art keywords
policy
operating system
system environment
configuration value
configuration
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
JP2013556865A
Other languages
English (en)
Other versions
JP5992457B2 (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 JP2014507043A publication Critical patent/JP2014507043A/ja
Application granted granted Critical
Publication of JP5992457B2 publication Critical patent/JP5992457B2/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

デバイス上でオペレーティグシステムを実行する以前のプリオペレーティグシステム環境において、オペレーティグシステムに対するコンフィグレーション設定を特定するポリシーを獲得する。オペレーティグシステム自身は、ポリシーを変更することができないが、所定の状況下、プリオペレーティグシステム環境のコンポーネントによって、ポリシーを変更することができる。ポリシーは、オペレーティグシステムによって使用されるコンフィグレーション値と比較され、コンフィグレーション値がポリシーを満足する場合に、オペレーティグシステムはそのコンフィグレーション値を使ってブートすることが許可される。しかしながら、コンフィグレーション値がポリシーを満足しない場合には、対応するアクションがとられる。

Description

ここにおいて、オペレーティングシステムのコンフィグレーション値の保護に関して検討される。
コンピューターは、インターネットといった、種々のネットワークを介して、ますます相互に接続されてきている。こうした接続性によって、ユーザーは種々の異なるサービスおよびデータにアクセスすることができるが、一方で、こうした接続性には問題が付き物である。こうした問題の一つは、そうした接続性によって、それらのコンピューター上で悪意あるプログラムが実行され得ることである。これらの悪意あるプログラムは、種々の望ましくない行為を実行することができる。他のコンピューターに対して攻撃を仕掛ける、他のユーザーのコンピューターに個人的なデータを送付する、ユーザーが彼または彼女のコンピューターを使えないようにする、などといった行為である。
こうした悪意あるプログラムからコンピューターを保護することは難しいままである。
本概要は、以降の詳細な説明でより詳しく記述される本発明の概念について、簡素化された形式において代表的な概念の選択を紹介するものである。本概要は、特許請求された技術的事項の主要な特徴または本質的な特徴を特定することを意図するものではない。また、特許請求された技術的事項の範囲を限定するために使用されることを意図するものではない。
本発明の一つまたはそれ以上の実施態様に従えば、オペレーティグシステムをロードして実行する以前の、デバイス上のプリオペレーティグシステム環境において、少なくとも一つのオペレーティグシステムのためのコンフィグレーション設定を特定するポリシーが得られる。オペレーティグシステムは、このポリシーを変更することができない。このポリシーは、オペレーティグシステムによって使用されるコンフィグレーション値と比較され、そのコンフィグレーション値がポリシーを満足する場合に、オペレーティグシステムは、そのコンフィグレーション値を使用してブート(boot)することができる。しかしながら、コンフィグレーション値がポリシーを満足しない場合には、対応するアクションがとられる。
本発明の一つまたはそれ以上の実施態様に従えば、オペレーティグシステムがデバイス上で実行されるためのオペレーティグシステムに係るコンフィグレーション値によって満足されるべきコンフィグレーション設定を特定する、ポリシーに対する変更が受取られる。オペレーティグシステム自身は、このポリシーを変更することができない。ポリシーに対する変更が、プリオペレーティグシステム環境から信頼されたエンティティによって許可されているかどうかについてチェックが行われ、ポリシーに対する変更がプリオペレーティグシステム環境によって許可されている場合にのみポリシーが変更される。
全ての図面を通じて同一の番号は、類似の特徴を参照するために使用される。
図1は、本発明の一つまたはそれ以上の実施例に従って、オペレーティグシステムのコンフィグレーション値の保護を実行するデバイスを示している。 図2は、本発明の一つまたはそれ以上の実施例に従って、ポリシーを示している。 図3は、本発明の一つまたはそれ以上の実施例に従って、オペレーティグシステムのコンフィグレーション値の保護を実行するプロセスを説明するフローチャートである。 図4は、本発明の一つまたはそれ以上の実施例に従って、デバイスにおいてポリシーの変更をするプロセスを説明するフローチャートである。 図5は、本発明の一つまたはそれ以上の実施例に従って、オペレーティグシステムのコンフィグレーション値の保護を実行するように構成されたコンピューティングデバイスを示している。
ここにおいて、オペレーティングシステムのコンフィグレーション値の保護に関して検討される。デバイスのブートプロセスの最中には、デバイスに係る一つまたはそれ以上のオペレーティグシステムの少なくとも一部分によって使用されている一式のコンフィグレーション値、および、任意的に含まれるそのデバイスのプリオペレーティグシステム環境のコンポーネントによって使用される一つまたはそれ以上のコンフィグレーション値が、デバイスのポリシーに対してチェックされる。コンフィグレーション値がポリシーを満足する場合には、オペレーティグシステムがデバイス上で実行することが許可される、しかし、コンフィグレーション値がポリシーを満足しない場合には、一つまたはそれ以上の好適なアクションがとられる(例えば、オペレーティグシステムを実行しない、値を変更する、など)。ポリシーは、オペレーティグシステムおよびコンピューターデバイス上で実行されている他のアプリケーションによる不正な変更から保護する方法で、保管されている。しかしながら、一人以上のポリシー発行者は、ポリシーを更新することができ、経時的にポリシーの変更を許可する。
ここにおいて、対称鍵暗号法(symmetric key cryptography)、公開鍵暗号法、そして、公開/秘密鍵ペア、が参照される。こうした鍵暗号法は当業者にとって周知であるが、ここでは、読者の手助けのために、こうした鍵暗号法の簡潔な概要が含まれている。公開鍵暗号法では、エンティティ(ユーザー、ハードウェアまたはソフトウェアコンポーネント、デバイス、ドメイン、といったもの)は、公開/秘密鍵ペアと関連付けられている。公開鍵は、公に利用可能にすることができるが、エンティティは、秘密鍵を秘密に保持している。秘密鍵がなければ、公開鍵を使用して暗号化されたデータを復号することは計算的に非常に難しい。よって、データは、公開鍵を持ったあらゆるエンティティによって暗号化することができるが、対応する秘密鍵を持ったエンティティによってのみ復号化することができる。加えて、データと秘密鍵を使用することによって、デジタル署名を生成することができる。秘密鍵がなければ、公開鍵を使用して検証することができる署名を生成することは計算的に非常に難しい。公開鍵を持ったあらゆるエンティティは、公開鍵、署名、および署名されたデータについての好適なデジタル署名検証アルゴリズムを実行することによって、そのデジタル署名を検証するために公開鍵を使用することができる。
一方、対称鍵暗号法では、共有鍵(対称鍵としても言及される)が、2つのエンティティによって知られており、秘密に保持されている。共有鍵を持つあらゆるエンティティは、典型的には、その共有鍵で暗号化されたデータを復号することができる。共有鍵がなければ、その共有鍵で暗号化されたデータを復号することは計算的に非常に難しい。よって、2つのエンティティの両方が共有鍵を知っている場合は、それぞれがデータを暗号化し、他方が復号することができるが、他のエンティティが共有鍵を知らない場合には、他のエンティティはデータを復号することができない。同様に、共有鍵を持つエンティティは、データを暗号化し、同一のエンティティが復号できるが、他のエンティティがその共有鍵を知らない場合は、他のエンティティはデータを復号できない。加えて、鍵付きハッシュ(keyed−hash)メッセージ認証コードメカニズムといったものを使用して、対称鍵暗号法に基づいてデジタル署名を生成することができる。共有鍵を持つあらゆるエンティティは、デジタル署名を生成し、検証することができる。例えば、信頼された第三者は、特定のエンティティに係るアイデンティティ(identity)に基づいて対称鍵を生成することができ、その特定のエンティティのための署名の生成および検証の両方ができる(例えば、対称鍵を使用してデータを暗号化、または復号することによる)。
図1は、本発明の一つまたはそれ以上の実施例に従って、オペレーティグシステムのコンフィグレーション値の保護を実行するデバイス100を示している。デバイス100は、ファームウェア102、オペレーティグシステムローダー(loader)104、および、オペレーティグシステムカーネル(kernel)106を含み、それぞれが、デバイス100が種々のオペレーションを実行できるようにする一つまたはそれ以上のコンポーネントまたはモジュールである。これらのコンポーネントまたはモジュールは、不揮発性メモリーまたはストレージデバイス(例えば、フラッシュメモリー、読出し専用メモリー(ROM)、磁気ディスク、光ディスク、ネットワークでアクセスされる離れたデバイスまたはストレージ、といったもの)の中に典型的に保管されるインストラクション及び/又はデータを含んでいる。これらのコンポーネントまたはモジュールは、不揮発性メモリーまたはストレージデバイスから一つまたはそれ以上の揮発性メモリー(例えば、ランダムアクセスメモリー(RAM))の中にロードされ、一つまたはそれ以上のプロセッサによって引き出され、実行される。
デバイス100が、電源オン、または、さもなければリセットされる場合に、デバイス100はブートする。デバイス100のブートは、デバイス100の開始オペレーションを参照し、典型的には、デバイス100に係るオペレーティグシステムをロードし、実行する。デバイス100のブートは、典型的に、少なくとも2つのステージを含んでいる。第1のステージでは、プリオペレーティグシステム環境のコンポーネントが、デバイス100上にロードされ、実行される。プリオペレーティグシステム環境においては、種々のコンポーネントまたはモジュールが、オペレーティグシステムのブートを含む様々なオペレーションを実行している。第2のステージでは、オペレーティグシステム環境が、デバイス100上にロードされ、実行される。オペレーティグシステム環境では、デバイス100上でオペレーティグシステムが実行されている。
コンポーネントのロードは、コンポーネントを揮発性(または、代替的には非揮発性)メモリーにコピーすること、および、任意的に、他のコンポーネントまたは保管データに対する追加のコンフィグレーションを実行することを参照する。コンポーネントの実行は、デバイス100にプロセッサまたはコントローラーによるコンポーネントのインストラクションの実行(実施)を参照する。デバイス100がブートされた後は、オペレーティグシステムによって、デバイス100上で、種々の他のプログラムが実行され得る。
デバイス100は、種々の異なるタイプの物理的デバイスであってよい。例えば、デバイス100は、デスクトップコンピューター、ラップトップまたはノートブックコンピューター、ノートパッドまたはタブレットコンピューター、モバイルステーション、エンターテイメント装置、ディスプレイ装置と通信可能に接続されたセットトップボックス、テレビ、携帯電話または無線電話、ゲームコンソール、自動車用コンピューター、といったようなものである。デバイス100は、また、物理的デバイス上で実行される仮想マシンといった、仮想デバイスであってもよい。仮想マシンは、あらゆる種々の異なるタイプの物理的デバイス上で実行され得る。
ブートプロセスの最中、ファームウェア102は、デバイス100によってロードされ、実行される。ファームウェア102は、デバイス100の不揮発性メモリーの中に保管される。ファームウェア102は、読出し専用メモリーの中に、または、代替的に、書き換え可能な不揮発性メモリー(フラッシュメモリーといったもの)の中に保管されてよい。ファームウェア102が、書き換え可能な不揮発性メモリーに保管される実施例においては、典型的に、そうしたファームウェア102が改ざんされていないこと(そして、悪意あるプログラムによって警告されていないこと)を保証するように手当てされる。こうした手当ては、例えば、書き換え可能な不揮発性メモリーに保管されたファームウェア102の署名を検証すること、ファームウェア102だけがアクセス可能な保護されたメモリーの中にファームウェア102を保管すること、従来の信頼されたブートまたは安全なブート技術を使用すること、といったようなものでされてよい。
ファームウェア102は、オペレーティグシステムローダー104の実行を開始する。オペレーティグシステムローダー104は、典型的に、実行される前に、ファームウェア102によってロードされ、検証される。オペレーティグシステムローダー104は、異なる方法で検証され得る。オペレーティグシステムローダー104のデジタル署名(ファームウェア102が信頼するように構成された(例えば、プログラムされた)エンティティによって生成されたもの)を検証するといったことによるものである。
オペレーティグシステムローダー104は、オペレーティグシステムカーネル106をロードし、実行する。オペレーティグシステムカーネル106は、典型的には、実行される前に、オペレーティグシステムローダー104によってロードされ、検証される。オペレーティグシステムカーネル106は、異なる方法で検証され得る。オペレーティグシステムカーネル106のデジタル署名(オペレーティグシステムローダー104が信頼するように構成された(例えば、プログラムされた)エンティティによって生成されたもの)を検証するといったことによるものである。オペレーティグシステムカーネル106は、次に、種々の異なるオペレーティグシステムのコンポーネント及び/又はユーザーモードのコンポーネントをロードし、実行する。これらのオペレーティグシステムのコンポーネントおよびユーザーモードのコンポーネントは、そうしたコンポーネントを実行させるユーザーのリクエストに応じて、もしくは、別のコンポーネントまたはモジュールからのリクエストに応じて実行され得る。
オペレーティグシステムカーネル106は、種々のオペレーティグシステムコンフィグレーション値112に従って、獲得し、動作する。オペレーティグシステムコンフィグレーション値112は、オペレーティグシステムカーネル106によってアクセスされるように図示されているが、また、オペレーティグシステムローダー106、及び/又は、デバイス100の他のコンポーネントまたはモジュールによってもアクセスされ得る。オペレーティグシステムコンフィグレーション値112は、あらゆる種々の異なる情報であってよい。情報は、オペレーティグシステムカーネル106(及び/又はオペレーティグシステムローダー104)がどのように動作するか、オペレーティグシステムカーネル106(及び/又はオペレーティグシステムローダー104)の何のコンポーネントがロードされ、実行されるか、それらの組み合わせ、等といったものである。例えば、オペレーティグシステムコンフィグレーション値112は、オペレーティグシステムカーネル106(及び/又はオペレーティグシステムローダー104)が、信頼できないプログラムまたはコンポーネントがデバイス100上で実行されるのを許可するかどうか、または、オペレーティグシステムカーネル106(及び/又はオペレーティグシステムローダー104)が、デバイス100上で実行される前にプログラムまたはコンポーネントを認証するかどうか、についての指標であってよい。別の実施例として、オペレーティグシステムコンフィグレーション値112は、反マルウェア(anti−malware)アプリケーション(または特定の反マルウェアアプリケーション)がデバイス100上で実行されるのを許可するかどうかの指標であってよい。他の実施例として、オペレーティグシステムコンフィグレーション値112は、デバイス100上で実行される仮想マシンを管理する仮想マシンマネージャーのために使用される値または設定のコンフィグレーションの指標であってよい。さらなる別の実施例として、オペレーティグシステムコンフィグレーション値112は、使用されるべき特定のプロセッサまたはプロセッサコアの指標であってよい(例えば、実行不能としてマークされるべきメモリーの領域)。
一つまたはそれ以上の実施例において、ファームウェア102とオペレーティグシステムローダー104は、実行前環境(ブート前環境またはプリオペレーティグシステム環境としても参照される)の一部として実行される。実行前環境は、オペレーティグシステムがブートを完了し、実行される以前に、デバイス100上で実行されている環境を指す。こうした実施例において、ファームウェア102とオペレーティグシステムローダー104は、デバイス100のネットワークインターフェイスカードといった、デバイス100のコンポーネント上(例えば、読出し専用メモリー(ROM)またはフラッシュメモリー)に保管され得る。代替的に、ファームウェア102とオペレーティグシステムローダー104は、実行前環境の最中に他のデバイスまたはサービスから獲得されてもよい。例えば、ファームウェア102とオペレーティグシステムローダー104は、別のデバイスまたはサービスからデバイス100に対して提供されるブートイメージの一部として含まれてよい。
実行前環境は、種々の異なる方法で実行され、異なる従来技術に基づいてもよい。例えば、実行前環境は、ブート前実行環境(Preboot eXecution Environment(PXE))規格バージョン2.0または他のバージョンに従って実行されてもよい。別の実施例として、実行前環境は、ユニファイドエクステンシブルファームウェアインターフェイス(Unified Extensible Firmware Interface(UEFI))規格バージョン2.3または他のバージョンに従って実行されてもよい。さらなる他の実施例として、実行前環境は、種々の異なるパーソナルコンピューターベーシック入出力システム(basic input/output system(BIOS))のバージョンを使用して実行されてもよい。
ブートプロセスの最中に、オペレーティグシステムローダー104は、ポリシー記録114を獲得する。ポリシー記録は、デバイス100が従うべき一つまたはそれ以上のポリシーの記録である。このポリシーの記録は、オペレーティグシステムコンフィグレーション値112が満足すべきコンフィグレーション設定または値を含んでいる。オペレーティグシステムローダー104は、ポリシー記録114における一つまたはそれ以上のポリシーをオペレーティグシステムコンフィグレーション値112と比較し、オペレーティグシステムコンフィグレーション値112がポリシー記録における一つまたはそれ以上のポリシーを満足している場合に、オペレーティグシステムカーネル106のコンポーネントの実行を開始する。しかしながら、一つまたはそれ以上のオペレーティグシステムコンフィグレーション値112がポリシー記録114におけるポリシーを満足しない場合には、好適な対応するアクションがとられる。オペレーティグシステムカーネル106をロードしない、オペレーティグシステムコンフィグレーション値112を変更する、などといった、種々の異なる対応するアクションがとられてよい。これらの対応するアクションは、以下に詳しく説明される。オペレーティグシステムローダー114は、こうして、オペレーティグシステムコンフィグレーション値112を保護し、悪意あるプログラムによってオペレーティグシステムコンフィグレーション値112が変更されてしまったかもしれない状況を特定している。
一つまたはそれ以上の実施例において、ポリシー記録114における一つまたはそれ以上のポリシーは、また、デバイスのプリオペレーティグシステム環境の一つまたはそれ以上のコンポーネントが満足すべきコンフィグレーション設定または値を含んでいる。プリオペレーティグシステム環境によって満足されるべきこれらのコンフィグレーション設定は、プリオペレーティグシステム環境がどのように動作するか、プリオペレーティグシステム環境の何のコンポーネントがロードされ、実行されるか、それらの組み合わせ、等といった、あらゆる種々の異なる指標であってよい。これらのコンフィグレーション設定は、オペレーティグシステムコンフィグレーション値112の一部として含まれてよく、また、代替的には、他の設定またはちであってよい。例えば、これらのコンフィグレーション設定または値は、特定のオペレーティグシステムだけがロードされ、実行され得ることを規定することができる。
図1には、単一のオペレーティグシステムカーネル106が示されているが、代替的には、デバイス100上で複数のオペレーティグシステムカーネル106がロードされ、実行されてよいことに留意すべきである。これらの異なるそれぞれのオペレーティグシステムカーネルは、それ自身のオペレーティグシステムコンフィグレーション値112とそれ自身のポリシー記録114(または、ポリシー記録114におけるそれ自身のポリシー)を有することができる。そして、オペレーティグシステムローダー104は、好適な一つまたはそれ以上のポリシーを、ブートされているオペレーティグシステムカーネル106のための好適なオペレーティグシステムコンフィグレーション値と比較する。代替的に、2つまたはそれ以上のこれらの異なるオペレーティグシステムカーネルは、オペレーティグシステムコンフィグレーション値112及び/又はポリシー記録114(及び/又はポリシー記録114の中のポリシー)の少なくとも一部を共有することができる。
図2は、本発明の一つまたはそれ以上の実施例に従って、ポリシー200を示している。ポリシー200は、例えば、図1のポリシー記録114におけるポリシーとして含まれてもよい。ポリシー200は、ポリシー識別子202、ポリシー親リスト204、および、一つまたはそれ以上のコンフィグレーション値及び/又は設定206、を含んでいる。ポリシー識別子202、ポリシー親リスト204、および、コンフィグレーション値及び/又は設定206、の一つまたはそれ以上をデジタルに署名することで、ポリシー200に関するデジタル署名208も、また、生成される。
ポリシー識別子202は、ポリシー200を特定し、異なるポリシーをお互いから区別することができるようにする。ポリシー識別子200は、例えば、ポリシー200に対して割り当てられたグローバルユニークID(GUID)であってよい。ポリシー親リスト204は、ポリシー200が置き換えるゼロ個以上の他のポリシーのリストである。ポリシー親リストは、以下に詳細に説明するように、所定のタイプの攻撃の防御を促進する。
コンフィグレーション値及び/又は設定206は、オペレーティグシステムコンフィグレーション値(例えば、図1の値112)が満足すべき値を含んでいる。ンフィグレーション値及び/又は設定206は、また、ポリシー200における一つまたはそれ以上のコンフィグレーション値が、オペレーティグシステムコンフィグレーション値によって満足されない場合にとられる対応するアクションを含んでいる。一つまたはそれ以上のコンフィグレーション値及び/又は設定206は、以下に詳細に説明するように、任意的に、オペレーティグシステムローダーコンポーネントによって設定されてもよい。
コンフィグレーション値及び/又は設定206は、また、一つまたはそれ以上の他のポリシーの識別子への参照を含んでいる。これらの一つまたはそれ以上の他のポリシーのコンフィグレーション値及び/又は設定は、ポリシー200の一部として含まれている。従って、ポリシー200は、一つまたはそれ以上の他のポリシーを有効に包含または含んでいる。コンフィグレーション値及び/又は設定206は、また、一人またはそれ以上のポリシー発行者の識別子を含んでもよい。従って、ポリシー記録(例えば、図1のポリシー記録)にポリシーを追加することが許されている新たなポリシー発行者を、ポリシー200において特定することができる。
図1に戻ると、オペレーティグシステムローダー104は、オペレーティグシステムコンフィグレーション値112が、ポリシー記録114における一つまたはそれ以上のポリシーを満足するかどうかをチェックする。ポリシー記録114は、単一のポリシーを含んでよく、以下により詳細に説明するように、一人またはそれ以上の異なるポリシー発行者によって変更され得る。代替的に、ポリシー記録114は、複数のポリシーを含むことができ、それぞれが一人またはそれ以上のポリシー発行者によって変更され得る。従って、例えば、異なるポリシー発行者は、ポリシー記録114において包含される異なるポリシー(彼らが後に変更することができる)を提供することができる。
コンフィグレーション値は、種々の異なる方法において、ポリシーの中で特定され得る。一つまたはそれ以上の実施例において、ポリシーは、オペレーティグシステムコンフィグレーション値の名前(または他の識別子)を含む、ネームバリューペア(name−value pair)における値を特定し、ポリシーを満足するために有するべきそのオペレーティグシステムコンフィグレーション値の一つまたはそれ以上の値を特定する。他の実施例において、値は、順序、または、対応するオペレーティグシステムコンフィグレーション値に固有の他の構造、におけるポリシーの中に含まれている。
オペレーティグシステムコンフィグレーション値112が、ポリシー記録114における一つまたはそれ以上のポリシーを満足するかどうかの判断は、異なる方法で実行され得る。一つまたはそれ以上の実施例においては、オペレーティグシステムコンフィグレーション値がポリシーを満足するかどうかを判断するために数学的な演算子が使用される。等しい、より大きい、より小さい、などといった、種々の異なる数学的な演算子が使用されてよい。他の実施例においては、オペレーティグシステムコンフィグレーション値がポリシーを満足するかどうかを判断するために他の演算子または論理的な公式が使用される。オペレーティグシステムコンフィグレーション値がポリシーにおける一式の値のうちの一つとして含まれているか、といった判断である。
複数のポリシーがポリシー記録114の中に含まれている状況において、オペレーティグシステムコンフィグレーション値112がポリシー記録114におけるポリシーを満足するかどうかの判断は、オペレーティグシステムコンフィグレーション値112がポリシー記録114におけるそれぞれのポリシーを満足するかどうかを判断することである。従って、複数のポリシーは、オペレーティグシステムコンフィグレーション値112がポリシー記録114におけるポリシーを満足するかどうかを判断する目的のために、組合わされているものと見られてもよい。
オペレーティグシステムコンフィグレーション値112がポリシー記録114を満足する場合に、オペレーティグシステムローダー104は、オペレーティグシステムカーネル106の実行を開始するように進行する。しかしながら、一つまたはそれ以上のオペレーティグシステムコンフィグレーション値112がポリシー記録114を満足しない場合には、ポリシー記録114を満足していない一つまたはそれ以上のオペレーティグシステムコンフィグレーション値に応じて好適なアクションがとられる。異なるオペレーティグシステムコンフィグレーション値に対してそれぞれ異なるアクションがとられてもよいし、また、複数のオペレーティグシステムコンフィグレーション値に対して同一のアクションがとられてもよい。これらの対応するアクションは、デバイス100上にそのオペレーティグシステムがロードされず、実行されないように、ブートプロセスを停止するアクションと同様に、デバイス100上にそのオペレーティグシステムがロードされ、実行されるように、ブートプロセスを継続することを許可するアクション、を含んでよい。
一つまたはそれ以上の実施例において、とられるべき対応するアクションは、ポリシー記録114の中に含まれている。ポリシー記録114におけるそれぞれのポリシーは、そのポリシーの少なくとも一部分が満足されていない(例えば、特定のオペレーティグシステムコンフィグレーション値12がポリシーを満足していない)場合に、とられるべき対応するアクションの指標(例えば、図2のコンフィグレーション値/設定の一部として)を含んでいる。他の実施例においては、対応するアクションが含まれており(例えば、コンフィグレーション値としてプログラムされ、または設定されている)、または、そうでなければ、オペレーティグシステムローダー104によって獲得される。
対応するアクションは、ブートプロセスを停止することであってよい。つまり、オペレーティグシステムローダー104は、オペレーティグシステムカーネル106の実行を開始しないので、オペレーティグシステムは、デバイス100上にロードされず。実行されない。代替的に、対応するアクションは、ポリシーを満足しないオペレーティグシステムコンフィグレーション値112を無視して、代わりに別の値(例えば、ポリシーの中に含まれているもの)を使用してもよい。対応するアクションは、代替的に、オペレーティグシステムコンフィグレーション値112をポリシーからの値(または、そうでなければポリシーによって特定された値)で書き換え、ブートプロセスの継続を許してもよい。対応するアクションは、代替的に、オペレーティグシステムコンフィグレーション値112を使用し、ブートプロセスの継続を許可するが、イベントをレポートすることでもよい。オペレーティグシステムコンフィグレーション値112がポリシーを満足しないという通知を記録または(例えば、別のコンポーネント、デバイス、またはサ−ビスに対して)送付するといったものである(特定のオペレーティグシステムコンフィグレーション値及び/又はポリシーの表示が通知の中に含まれ得る)。
対応するアクションは、代替的に、デバイス100のユーザーを促すことであってよい(例えば、ブートプロセスを進めるためにユーザーの許可を受取ること)。この働きかけは、例えば、ユーザーに現在のオペレーティグシステムコンフィグレーション値を許可するようにリクエストする促しであってよい。この働きかけは、また、ポリシーを満足するためにあるべきコンフィグレーション値の指示を含んでもよい。そして、ユーザーは、現在のオペレーティグシステムコンフィグレーション値を使用して進行することを許可する(または許可しない)ための種々の異なる入力を提供し得る。ボタンまたはキーを押す、スクリーンの所定の位置に触れる、音声入力を提供する、オペレーティグシステムローダー104によって信頼された(または検証され得る)セキュリティトークン(security token)を提供する、などといったことである。オペレーティグシステムローダー104は、入力が、離れたデバイスよりむしろ、デバイス100のユーザーから受取ったものであること(例えば、デバイス100のキーボード、タッチスクリーン、マイクロフォン、等から受取ったもの)の検証を行う(例えば、ユーザー入力が、離れたデバイスから受取ったリクエストよりむしろ、キー押し又はマイクロフォンから受取ったユーの入力であることを検証する)。従って、そうした状況においては、ユーザーがデバイス100のところに居て、ブートプロセスの継続を許可する場合に限って、ブートプロセスが継続され得る。つまり、悪意あるデバイスまたはデバイス100の悪意あるコンポーネントは、ブートプロセスの継続を許可することができない。
ポリシー記録114は、オペレーティグシステムローダー104はポリシー記録114を変更することができるが、オペレーティグシステムローダー104の後に実行されるコンポーネント(他のオペレーティグシステムコンポーネント及び/又はユーザーモードコンポーネントと同様に特定のオペレーティグシステムカーネル106におけるもの)はポリシー記録114を変更することができないという、安全な方法で維持される。ポリシー記録114は、このセキュリティを反映するように破線で囲まれて示されている。ポリシー記録114は、種々の異なる方法において、この安全な方法で維持されてよい。
一つまたはそれ以上の実施例において、ポリシー記録114は、不揮発性ランダムアクセスメモリー(NVRAM)といった、書込み可能な不揮発性メモリーの中に保管されてよい。書込み可能なNVRAMは、特定の条件下及び/又は特定の時間においてしかアクセスできない。一つまたはそれ以上の実施例において、書込み可能なNVRAMは、トラステッドプラットフォームモジュール(Trusted Platform Module:TPM)を介してアクセスされる。TPMに関する追加の情報は、オレゴン州ビーバートンの、トラステッドコンピューティンググループから利用可能である。TPMは、所定の時点まで、または、所定のイベントが発生するまで、書込み可能なNVRAMの読出しと書込みを許可し、その後、TPMは、その書込み可能なNVRAMの読出しを許可し、書込みを不許可にする。この所定の時点、または、所定のイベント発生は、例えば、書込み可能なNVRAMをクローズまたはロックするためのコンポーネントからのリクエストであり得る。従って、オペレーティグシステムローダー104は、書込み可能なNVRAMの中のポリシー記録114に対して変更を行うことができ、次に、書込み可能なNVRAMをロックさせることができる。オペレーティグシステムローダー114は、このようにして、書込み可能なNVRAMがロックされているので、悪意あるプログラムがポリシー記録114を改ざんすることを防ぐことができる。次回にデバイス100がブートされるとき、書込み可能なNVRAMはロック解除されるが、オペレーティグシステムローダー104は、悪意あるプログラムが実行されて書込み可能NVRAMに書き込む前に、再び書込み可能なNVRAMをロックする。同様に、他のタイプの記録媒体(例えば、磁気ディスクドライブ)が、特定の条件下及び/又は特定の時点でのみアクセスされるように、実施されてもよい。
代替的に、ポリシー記録114は、他の技術を使用した安全な方法で維持されてもよい。変更が信頼できるエンティティによって署名されている場合にのみポリシー記録114の変更を許可する保護されたインターフェイス(例えば、アプリケーションプログラミングインターフェイス(API))を通じてだけアクセス可能なポリシー記録114による、といったものである。そうした信頼できるエンティティとは、オペレーティグシステムローダー104によって信頼されたエンティティである(例えば、オペレーティグシステムローダー104によって信頼に値するものとして知られ、かつ、オペレーティグシステムローダー104が公開鍵を有しているエンティティ)。例えば、ポリシー記録114は、UEFI署名済みの値として保管され得るもので、変更が信頼されたエンティティによって署名されている場合にのみ変更することができる。ポリシー記録に対してリクエストされたあらゆる変更は、信頼されたエンティティによって署名されたものであるとして検証され、信頼されたエンティティによる署名である場合に、そうした変更がなされるが、信頼されたエンティティによる署名ではない場合には、変更されない。
別の実施例として、デバイス100が仮想マシンとして実施されている状況において、ポリシー記録114は、デバイス上の一つまたはそれ以上の仮想マシンのオペレーティグシステムを管理する仮想マシンマネージャーによって、安全な方法で維持されてもよい。仮想マシンマネージャーは、オペレーティグシステムローダー104が、しかしながら他のコンポーネントではなく、ポリシー記録114においてポリシーを変更することを許可する。
ポリシー記録114に対する変更は、ポリシー記録114にポリシーを追加すること、ポリシー記録114からポリシーを除去すること、及び/又は、ポリシー記録114におけるポリシーを新たなポリシーと置き換えること、を含む。一つまたはそれ以上の実施例において、ポリシー記録114に対する変更は、そうした変更が信頼されたポリシー発行者から受取ったものである場合に、オペレーティグシステムローダー104によって実行される(例えば、変更は、オペレーティグシステムローダー104により信頼されたポリシー発行者によってデジタル署名される)。ポリシー記録114におけるポリシーを変更するリクエストは、異なる方法で、オペレーティグシステムローダー114に対して提供されてよい。一つまたはそれ以上の実施例において、オペレーティグシステムカーネル106またはデバイス100上で実行されている別のコンポーネントは、ポリシーに対する変更を、デバイス100の次回のブートにおいてオペレーティグシステムローダー104にアクセス可能な存続する場所に保管する。デバイス100の次回のブートでは、適切である場合には、オペレーティグシステムローダー104は、変更を獲得し、変更を実行する。オペレーティグシステムカーネル106またはデバイス100上で実行されている他のコンポーネントは、また、変更に伴なう特定のタイプの変更に対するリクエストを保管することができる(例えば、特定のポリシーが除去され、または、別のポリシーを置き換えるという指示)。代替的に、特定のタイプの変更に対するリクエストは固有のものであってよい(例えば、存続する場所における保管されたポリシーの存在は、オペレーティグシステムローダー104によって、そのポリシーをポリシー記録114に追加するリクエストであると考えられる)。
オペレーティグシステムローダー114は、(ポリシー発行者からの)ポリシーを除去するリクエストに応じて、ポリシー記録114からポリシーを取り除いてもよい。オペレーティグシステムローダー104は、リクエストが、信頼されたエンティティであるポリシー発行者からのものであることを検証し、リクエストが信頼されたエンティティであるポリシー発行者からのものである場合にポリシーを除去し、リクエストが信頼されたエンティティであるポリシー発行者からのものではない場合にはポリシーを除去しない。
同様に、オペレーティグシステムローダー114は、(ポリシー発行者からの)ポリシーを追加するリクエストに応じて、ポリシー記録114からポリシーを追加してもよい。オペレーティグシステムローダー104は、新たなポリシー(および任意的にリクエスト)が、信頼されたエンティティであるポリシー発行者からのものであることを検証し、新たなポリシー(および任意的にリクエスト)が信頼されたエンティティであるポリシー発行者からのものである場合にポリシーを追加し、新たなポリシー(及び/又は任意的にリクエスト)が信頼されたエンティティであるポリシー発行者からのものではない場合にはポリシーを追加しない。
加えて、オペレーティグシステムローダー104は、ポリシー記録114におけるポリシー(ポリシーの現在のバージョンとしても参照される)を、新たなポリシー(ポリシーの新たなバージョンとしても参照される)に置き換えることができる。新たなポリシーを受取った場合は、オペレーティグシステムローダー104は、新たなポリシー(および任意的にリクエスト)が信頼されたエンティティであるポリシー発行者からのものであることを検証する。新たなポリシー(及び/又は任意的にリクエスト)が信頼されたエンティティあるポリシー発行者からのものでない場合は、オペレーティグシステムローダー114は、現在のポリシーのバージョンを新たなポリシーのバージョンと置き換えない。
しかしながら、新たなポリシー(および任意的にリクエスト)が信頼されたエンティティであるポリシー発行者からのものである場合は、オペレーティグシステムローダー114は、新たなバージョンのポリシーが、本当にポリシーの現在のバージョンの、より新しいバージョンであるかどうかをチェックする。オペレーティグシステムローダー104は、現在のポリシーのバージョンが、ポリシーの新たなバージョンに係る親リストの中に含まれているかどうかをチェックすることによって、ポリシーのその新たなバージョンが、本当にポリシーの現在のバージョンよりも新たなバージョンであるかどうかをチェックする。ポリシーの新たなバージョンは、新たなポリシーのバージョンに置き換えられた、同一のポリシー発行者によって発行されたゼロまたはそれ以上の以前のポリシーを特定するポリシー親リストを含んでいる。ポリシー親リストは、ポリシー識別子(例えば、GUID)によって以前のポリシーを特定することができる。ポリシーの新たなバージョンが信頼されたエンティティであるポリシー発行者からのものであり、ポリシーの現在のバージョンが、ポリシーの新たなバージョンに係るポリシー親リストの中に含まれる場合には、オペレーティグシステムローダー104は、ポリシーの現在のバージョンを、ポリシーの新たなバージョンに置き換える。そうでなければ、オペレーティグシステムローダー104は、ポリシーの現在のバージョンを、ポリシーの新たなバージョンに置き換えない。
ポリシー親リストの使用は、悪意あるプログラムまたはユーザーによるロールバック(rollback)またはリプレイアタック(reply attack)に対する保護を促進するものであることに留意すべきである。例えば、悪意あるプログラムまたはユーザーは、ポリシーの現在のバージョン(例えば、新たなセキュリティ関連の値または設定を含む)をポリシーのより古いバージョンと置き換えようとするかもしれない(例えば、古いバージョンは、悪意あるプログラムまたはユーザーがデバイス100のコンポーネントに対する不適当なアクセスを得ることを許してしまう期限の切れたセキュリティ関連の値または設定を含んでいる)。ポリシーの現在のバージョンが、ポリシーの新たなバージョンに係るポリシー親リストの中に含まれている場合に限って、ポリシーの現在のバージョンを新たなポリシーと置き換えることによって、オペレーティグシステムローダー104は、ポリシーの現在のバージョンが、ポリシーのより古いバージョンによって置き換えられないことを保証する。ポリシーのより古いバージョンが、信頼されたエンティティであるポリシー発行者によって利用可能となったとしても、ポリシーのより古いバージョンは、ポリシーの現在のバージョンを含む親リストを有さない、従って、オペレーティグシステムローダー104は、ポリシーの現在のバージョンをポリシーのより古いバージョンに置き換えることはない。
加えて、一つまたはそれ以上の実施例において、ポリシー記録114への変更は、デバイス100のユーザーまたは他の信頼されたエンティティといった、プリオペレーティグシステム環境(例えば、オペレーティグシステムローダー104及び/又はファームウェア102によって信頼されたもの)によって信頼されたエンティティによって許可された場合にのみ、オペレーティグシステムローダー114により実行される。エンティティがデバイス100のユーザーである場合、オペレーティグシステムローダー104は、デバイス100のユーザーが変更を許可するように促す。デバイス100の(または接続された)スクリーン上に視覚的なプロンプト(prompt)を表示したり、デバイス100の(または接続された)スピーカーで音響的なプロンプトを再生したり、といったようなことを行う。ユーザーはポリシーに対する変更を、ボタンまたはキーを押す、スクリーンの所定の場所を触る、音声入力する、などといった、種々の異なる入力を提供することによって許可することができる。オペレーティグシステムローダー104は、その入力がデバイス100のユーザーから受取ったものであり(例えば、デバイス100のキーボード、タッチスクリーン、マイクロフォン、等から受取ったこと)、離れたデバイスから受取ったものではないことを検証する(例えば、ユーザー入力が、離れたデバイスから受取ったリクエストではなくて、キー押しまたはローカルなマイクロフォンからの受取ったものであることを検証する)。従って、そうした状況においては、ユーザーがデバイス100のところに居て、変更を許可する場合に限って、ポリシー記録114に対する変更が実行され得る。つまり、悪意あるデバイスまたはデバイス100の悪意あるコンポーネントは、そうした変更を許可することができない。
エンティティが、プリオペレーティグシステム環境(ユーザー以外)によって信頼された別のエンティティである場合は、ポリシー記録114に対する変更はエンティティによってデジタル署名される。オペレーティグシステムローダー104は、デジタル署名を検証し、デジタル署名がプリオペレーティグシステム環境によって信頼されたエンティティ(例えば、オペレーティグシステムローダー104によって信頼されたもの)からのものであることが検証された場合にのみポリシー記録114への変更を実行する。デジタル署名が検証できない場合は、ポリシー記録114への変更は行われない。
一つまたはそれ以上の実施例において、ポリシー記録114におけるポリシーは、関連のタイムスタンプを有している(例えば、日付と時刻)。ポリシーに関連するタイムスタンプは、ポリシーの一部として含まれてもよいし、また、代替的には、分離して維持されてもよい。例えば、分離したポリシー識別子およびタイムスタンプの記録は、オペレーティグシステムローダー104によって維持されてよく、この記録は安全な方法で維持される(例えば、上述の安全な方法で維持されているポリシー記録114におけるポリシー、と類似する種々の異なる安全な方法である)。
オペレーティグシステムローダー104は、ポリシー記録114を変更するかどうかの判断において(例えば、ポリシーの新たなバージョンが、本当にポリシーの現在のバージョンより新しいバージョンかどうかの判断)、こうしたタイムスタンプを使用することができる。ポリシー発行者は、ポリシーの両方のバージョンに対する同一であるが、異なるタイムスタンプの識別子を使用して、ポリシーの一つのバージョンを、そのポリシーの新たなバージョンに置き換えることができる。オペレーティグシステムローダー104は、ポリシーの新たなバージョン(および、任意的にポリシーを変更するリクエスト)が信頼されたエンティティであるポリシー発行者からのものであるかどうか、および、ポリシーの新たなバージョンがポリシーの現在のバージョンより最近のタイムスタンプを有しているかどうか、をチェックする。ポリシーの新たなバージョンが信頼されたエンティティであるポリシー発行者からのものであり、かつ、ポリシーの新たなバージョンがポリシーの現在のバージョンより最近のタイムスタンプを有している場合には、オペレーティグシステムローダー104は、ポリシーの現在のバージョンをポリシーの新たなバージョンに置き換える。そうでなければ、オペレーティグシステムローダー104は、ポリシーの現在のバージョンをポリシーの新たなバージョンには置き換えない。ポリシーの現在のバージョンとポリシーの新たなバージョンは同一のポリシー識別子を有するので、ポリシーの現在のバージョンをポリシーの新たなバージョンと置き換えるかどうかの判断は、ポリシーの新たなバージョンの親リストよりむしろ、ポリシーのバージョンのタイムスタンプに基づくものである。
同様に、ポリシー記録114におけるポリシーは、ポリシー発行者によって割り当てられた関連のバージョン番号を有してもよい。ポリシーのバージョン番号は、ポリシーのそれぞれの新たなバージョンに対して増加される(また、セットでの次のバージョン番号が選択される)。バージョン番号は、タイムスタンプと類似に使用することができるが、それは、タイムスタンプ以外の数字(及び/又は他のキャラクター)である。
代替的に、オペレーティグシステムローダー104は、ポリシー記録114を変更するかどうかを判断するのにタイムスタンプ及び/又はバージョン番号を使用する必要がない。そうした状況において、ポリシー発行者がポリシーの一つのバージョンをそのポリシーの新たなバージョンに置き換えようとする場合、ポリシー発行者は、ポリシーの2つのバージョンに対して異なるポリシー識別子を使用し、ポリシーの新たなバージョンの親リストにおいて置き換えられるべきポリシーのバージョンに係るポリシー識別子を含んでいる。
一つまたはそれ以上の実施例において、ポリシー記録114への変更は、また、ブートプロセスの最中にオペレーティグシステムローダー104によって書き込まれた値を含んでいる。ポリシーにおける特定のコンフィグレーション設定のために、オペレーティグシステムローダー104は、ブートプロセスの最中に、デバイス100における一つまたはそれ以上の現在の値を獲得する。これらの獲得された値または設定は、ポリシーの一部(または、そうでなければ関連するもの)として保管され、デバイス100の次回のブートにおいて満足されるべきポリシーの一部として取り扱われる。従って、オペレーティグシステムローダー104は、デバイス100の次回のブートにおいて、これらの獲得された値または設定がオペレーティグシステムコンフィグレーション値112によって満足されるかを検証する。
どの設定が、ブートプロセスの最中に獲得された現在の値または設定を有しているかは、異なる方法において特定されてよい。例えば、ポリシーは、特定の値がブートプロセスの最中にオペレーティグシステムローダー104によって獲得され、保管されたものであることを示す設定を含み得る。別の実施例として、オペレーティグシステムローダー104は、ブートプロセスの最中にオペレーティグシステムローダー104によって獲得され、保管されるべき特定の値の指標を伴なって構成することができ(例えば、指標を伴なってプログラムされる)、そうでなければ、指標を獲得することができる。別の実施例では、オペレーティグシステムローダー104は、いつデバイス100のセキュリティが強化または改善されたか(例えば、反マルウェアプログラムがインストールされたとき、ファイアーウォールプログラムがインストールされたとき、など)を検知することができ、その強化または改善されたセキュリティに関連する値または設定を獲得し、保管する(例えば、反マルウェアプログラムの指標を獲得し保管する)。
デバイス100は複数回ブートされ得るので、それら複数のブートプロセスのうちのどれが、その最中に値が獲得され、保管されるべきブートプロセスであるのかは、異なる方法で特定されてよい。値は、既にある値が獲得され保管されていることなく(または、既に獲得され保管されるべき値が見つからない場合に)、最初にデバイス100がブートされる最中に獲得され保管されてよい。代替的に、オペレーティグシステムローダー104は、デバイス100のどのブートにおいて値が獲得され保管されるべきかの指標を伴なって構成することができ(例えば、指標を伴なってプログラムされる)、そうでなければ、指標を獲得することができる。代替的には、ポリシー記録114におけるポリシーは、デバイス100のどのブートにおいて値が獲得され保管されるべきかの指標を含んでよい。
代替的に、オペレーティグシステムローダー104に対して、(例えば、現在のブートプロセスの最中、または、デバイス100の次回のブートにおいて)その値が獲得され保管されるべきであるということを示すユーザー入力が受取られてもよい。ユーザー入力は、ボタンまたはキーを押す、スクリーンの所定の場所を触る、音声入力する、などといった、種々の異なる方法で提供することができる。オペレーティグシステムローダー104は、入力が、離れたデバイスよりむしろ、デバイス100のユーザーから受取ったものであることの検証を行う(例えば、ユーザー入力が、離れたデバイスから受取ったリクエストよりむしろ、キー押し又はマイクロフォンから受取ったユーの入力であることを検証する)。従って、そうした状況においては、ユーザーがデバイス100のところに居て、そうした獲得と保管を許可する場合に限って、値を獲得し保管するリクエストが実行され得る。つまり、悪意あるデバイスまたはデバイス100の悪意あるコンポーネントは、そうした値の獲得と保管を許可することができない。
図3は、本発明の一つまたはそれ以上の実施例に従って、オペレーティグシステムのコンフィグレーション値の保護を実行するプロセス300を説明するフローチャートである。プロセス300は、図1のデバイス100といった、デバイスによって実行され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせにおいて実施されてよい。プロセス300は、デバイス上でオペレーティグシステムが実行される以前に、デバイス上のプリオペレーティグシステム環境の一部として実行される。プロセス300は、一式のアクト(act)として示されるが、種々のアクトのオペレーションの実行のために示された順序には限定されない。プロセス300は、オペレーティグシステムコンフィグレーション値を保護するプロセスの実施例である。オペレーティグシステムコンフィグレーション値の保護に係る追加的な説明は、異なる図に関して、ここにおいて含まれる。
プロセス300において、オペレーティグシステムのためのコンフィグレーション設定及び/又は値を特定するポリシーが獲得される(アクト302)。ポリシーは、オペレーティグシステムローダーによって変更され得るが、上述のように、オペレーティグシステムは、ポリシーを変更することができない。
ポリシーは、オペレーティグシステムによって使用されたコンフィグレーション値と比較され(アクト304)、オペレーティグシステムによって使用されたコンフィグレーション値がポリシーを満足するかどうかがチェックされる(アクト306)。オペレーティグシステムによって使用されたコンフィグレーション値がポリシーを満足するかどうかは、上述のように、種々の異なる方法において判断され得る。
コンフィグレーション値がポリシーを満足する場合は、オペレーティグシステムは、そのコンフィグレーション値を使用してブートすることが許される(アクト308)。しかしながら、コンフィグレーション値がポリシーを満足しない場合は、対応するアクションがとられる(アクト310)。上述のように、種々の異なった対応するアクションがとられ得る。
図4は、本発明の一つまたはそれ以上の実施例に従って、デバイスにおいてポリシーを変更するプロセス400を説明するフローチャートである。プロセス400は、図1のデバイス100といった、デバイスによって実行され、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせにおいて実施されてよい。プロセス400は、デバイス上でオペレーティグシステムが実行される以前に、デバイス上のプリオペレーティグシステム環境の一部として実行される。プロセス400は、一式のアクトとして示されるが、種々のアクトのオペレーションの実行のために示された順序には限定されない。プロセス400は、デバイスにおいてポリシーを変更するプロセスの実施例である。デバイスにおけるポリシーの変更に係る追加的な説明は、異なる図に関して、ここにおいて含まれる。
プロセス400においては、オペレーティグシステムが実行されるために、オペレーティグシステムによって満足されるべき、オペレーティグシステムのためのコンフィグレーション設定及び/又は値を特定するポリシーに対する変更が受取られる(アクト402)。上述のように、オペレーティグシステムは、ポリシーを変更することができない。
ポリシーに対する変更が、信頼されたエンティティによって許可されたものであるかどうかについてチェックされる(アクト404)。そうした信頼されたエンティティは、プリオペレーティグシステム環境(例えば、オペレーティグシステムローダー)によって信頼されたエンティティであり、このチェックは、ユーザーに変更を許可するように促すことにより、または、上述のように、変更が信頼されたエンティティによってデジタル署名されていることを検証することによって行われる。変更が信頼されたエンティティによって許可されない場合は、ポリシーは変更されない。しかしながら、変更が信頼されたエンティティによって許可される場合は、アクト402において受取った変更に従って、ポリシーが変更される(アクト406)。信頼されたエンティティの許可に加えて、タイムスタンプ、親リスト、などのチェックといった、種々の他の検証またはチェックも、また、上述のように、ポリシーを変更する前に実行され得る。
ここにおいて説明されたオペレーティグシステムコンフィグレーション値を保護する技術は、種々の利用シナリオをサポートする。例えば、オペレーティグシステムコンフィグレーション値およびポリシーは、種々の製造者または開発者のうちの一つからの反マルウェアプログラムがデバイス上で実行されるべきであり、かつ、そうしたソフトウェア対抗プログラムがデバイス上で実行されていなければ、そのオペレーティグシステムをデバイス上にロードし実行するべきではない、と指示することができる。悪意あるプログラムが、オペレーティグシステムをロードし実行するために、反マルウェアプログラムがデバイス上で実行される必要はないものと示して、オペレーティグシステムコンフィグレーション値を変更しようと試みる場合には、次回デバイスがブートされると、オペレーティグシステムローダーコンポーネントが、オペレーティグシステムコンフィグレーション値がポリシーを満足しないことを検知するので、反マルウェアプログラムなしで、オペレーティグシステムがロードされ実行されることはない。
別の実施例として、デバイスは、デフォルトのオペレーティグシステムポリシーを伴なって、製造者または販売者から出荷されてよい。デバイスの購入者は、エンタープライズ環境(例えば、会社またはホームネットワークの一部として)においてデバイスを使用し、彼または彼女が持ちたいと望むエンタープライズポリシーをデフォルトのオペレーティグシステムポリシーの代わりに使用したいと望んでもよい。このエンタープライズポリシーは、デフォルトのオペレーティグシステムポリシーとは異なるセキュリティ関連の設定などを有することができ、エンタープライズポリシーは、デフォルトオペレーティグシステムポリシーの識別子を含む親リストを有する。エンタープライズ環境のアドミニストレーターは、信頼されたエンティティであり得るし、エンタープライズポリシーに対してデジタル署名を生成でき、オペレーティグシステムローダーに対して提供される。エンタープライズポリシーは、信頼されたエンティティによって署名され、親リスト上のデフォルトオペレーティグシステムを特定するので、エンタープライズポリシーは、ポリシー記録におけるデフォルトオペレーティグシステムポリシーを置き換える。しかしながら、後続のデフォルトオペレーティグシステムポリシーがエンタープライズポリシーを置き換えることはない。後続のデフォルトオペレーティグシステムポリシーは、その親リスト上にエンタープライズポリシーを特定しないだろうからである。
図5は、本発明の一つまたはそれ以上の実施例に従って、オペレーティグシステムのコンフィグレーション値の保護を実行するように構成されたコンピューティングデバイス500を示している。コンピューティングデバイス500は、例えば、図1のデバイス100であり、または、デバイス100が実施される仮想マシンを実行することができる。
コンピューティングデバイス500は、一つまたはそれ以上のプロセッサまたは処理装置502、一つまたはそれ以上のメモリー及び/又はストレージコンポーネント506を含む一つまたはそれ以上のコンピューターで読み取り可能な媒体504、一つまたはそれ以上の入力/出力(I/O)デバイス508、および、種々のコンポーネントおよびデバイスがお互いに通信できるようにするバス510、を含んでいる。コンピューターで読み取り可能な媒体504及び/又は一つまたはそれ以上のI/Oデバイス508は、コンピューターデバイス500の一部として、または、代替的には、コンピューターデバイスに接続されているものとして、含まれ得る。バス510は、一つまたはそれ以上のいくつかのタイプのバス構成を表している。メモリーバスまたはメモリーコントローラー、ペリフェラルバス、加速グラフィックポート、プロセッサ、または、ローカルバスといった、種々の異なるバス構成を使用したものを表している。バス510は、有線及び/又は無線のバスを含んでよい。
メモリー/ストレージコンポーネント506は、一つまたはそれ以上のコンピューターストレージ媒体を表している。コンポーネント506は、揮発性媒体(ランダムアクセスメモリー(RAM)といったもの)、及び/又は、不揮発性媒体(読出し専用メモリー(ROM)、フラッシュメモリー、光ディスク、磁気ディスク、などといったもの)を含んでよい。コンポーネント506は、固定媒体(例えば、RAM、ROM、固定ハードドライブ、等)、同様に取出し可能媒体(例えば、フラッシュメモリー、取出し可能ハードドライブ、光ディスク、など)を含んでもよい。
ここにおいて説明された技術は、一つまたはそれ以上の処理ユニット502によって実行されるインストラクションを伴なって、ソフトウェアで実施されてもよい。異なるインストラクションは、コンピューティングバイス500の異なるコンポーネントの中に保管されてもよいことが正しく理解されるべきである。処理ユニット502の中、処理ユニット502の種々のキャッシュメモリーの中、デバイス500(図示なし)の他のキャッシュメモリーの中、他のコンピューターで読み取り可能な媒体上、などといったものである。加えて、コンピューティングデバイス500の中でインストラクションが保管された場所は、時間の経過で変更し得ることも理解されるべきである。
一つまたはそれ以上の入力/出力デバイス508によって、ユーザーは、コンピューティングデバイス500に対してコマンドおよび情報を入力することができ、また、情報が、ユーザー及び/又は他のコンポーネントまたはデバイスに対して表示されることができる。入力デバイスの例は、キーボード、カーソルコントロールデバイス(例えば、マウス)、マイクロフォン、スキャナー、などを含んでいる。出力デバイスの例は、ディスプレイ装置(例えば、モニターまたはプロジェクター)、スピーカー、プリンター、ネットワークカード、などを含んでいる。
種々の技術が、ソフトウェアまたはプログラムモジュールの一般的な内容で、ここにおいて説明された。一般的に、ソフトウェアは、ルーチン、プログラム、アプリケーション、オブジェクト、コンポーネント、データ構造、などといった所定のタスクを実行するもの、または所定の抽象的なデータタイプを実行するものを含む。これらのモジュールおよび技術の実施は、コンピューターで読み取り可能な媒体のいくつかの形式で保管され、または媒体にわたり伝送される。コンピューターで読み取り可能な媒体は、コンピューティングデバイスによってアクセスすることができる、あらゆる利用可能な媒体またはメディアであってよい。実施例として、かつ、限定するものではなく、コンピューターで読み取り可能な媒体は、「コンピューターストレージ媒体(“computer storgae media”)」および「コミュニケーション媒体(“communications media”)」を含み得る。
「コンピューターストレージ媒体」は、コンピューターで読み取り可能なインストラクション、データ構造、プログラムモジュール、または、他のデータといった情報を保管するためのあらゆる方法または従来技術において実施される、揮発性および不揮発性媒体、取出し可能および取出し不能媒体を含む。コンピューターストレージ媒体は、これらに限定されるわけではないが、RAM、ROM、EEPROM、フラッシュメモリー、または他のメモリー技術、CD−ROM、デジタル多目的ディスク(DVD)、磁気カセット、磁気テープ、磁気ディスクストレージまたは磁気ストレージデバイス、または、所望の情報を保管するために使用でき、コンピューターによってアクセスされ得る他のあらゆる媒体、を含んでいる。
「コミュニケーション媒体」は、典型的には、コンピューターで読み取り可能なインストラクション、データ構造、プログラムモジュール、または、搬送波または他の伝送メカニズムといった、変調されたデータ信号における他のデータ、を包含する。コミュニケーション媒体は、また、あらゆる情報配送媒体を含む。用語「変調されたデータ信号(“modulated data signal”)」は、一つまたはそれ以上の特徴セットを有する信号、または信号中の情報をエンコードするといった方法で変更された信号を意味する。実施例として、かつ、限定するものではなく、コミュニケーション媒体は、有線ネットワークまたは直接有線接続といった有線媒体、および、音響、RF、赤外線、そして他の無線媒体といった、無線媒体を含む。上記のあらゆる組み合わせも、コンピューターで読み取り可能な媒体の範囲内に含まれる。
一般的に、ここにおいて説明されたあらゆる機能または技術は、ソフトウェア、ハードウェア(例えば、固定のロジック回路)、マニュアル処理、またはこれらの組み合せ、を使用して実行され得る。用語「モジュール」および「コンポーネント」は、ここにおいて使用されるように、一般的に、ソフトウェア、ハードウェア、または、これらの組み合わせを表している。ソフトウェアの実行の場合には、モジュールまたはコンポーネントは、プロセッサ(例えば、CPU)上で実行されると、特定のタスクを実行するプログラムコードを表している。プログラムコードは、一つまたはそれ以上のコンピューターで読み取り可能なメモリーデバイスに保管され得る。図5にさらなる説明がされている。ここにおいて説明されたオペレーティグシステムコンフィグレーション値を保護する技術の特徴は、プラットフォームに依存することはない。つまり、本技術は、種々のプロセッサを有する種々の市販されているコンピューティングプラットフォーム上で実行される得ることを意味している。
技術的事項が構造的特徴及び/又は方法論的アクトに特有の言葉で説明されてきたが、添付の特許請求の範囲において定められる技術的事項は、上述された特定の特徴またはアクトに必ずしも限定される必要はないことが理解されるべきである。むしろ、上述の特定の特徴およびアクトは、請求項に係る発明の実施例として開示されたものである。

Claims (10)

  1. デバイス上でオペレーティグシステムを実行する以前のプリオペレーティグシステム環境において、一つまたはそれ以上のオペレーティグシステムに対するコンフィグレーション設定を特定するポリシーを獲得する段階であって、前記オペレーティグシステムは前記ポリシーを変更することができない段階と;
    前記プリオペレーティグシステム環境において、前記ポリシーを前記オペレーティグシステムによって使用されるコンフィグレーション値と比較する段階と;
    前記プリオペレーティグシステム環境において、前記コンフィグレーション値が前記ポリシーを満足する場合に、前記オペレーティグシステムが前記コンフィグレーション値を使ってブートすることを許可する段階と;
    前記プリオペレーティグシステム環境において、前記コンフィグレーション値が前記ポリシーを満足しない場合に、対応するアクションをとる段階と、
    を含むことを特徴とする方法。
  2. 前記ポリシーは、さらに
    前記オペレーティグシステムがブートするのを許可されるために、前記プリオペレーティグシステム環境が満足すべきコンフィグレーション設定を特定している、
    請求項1に記載の方法。
  3. 前記方法は、さらに
    前記プリオペレーティグシステム環境において、前記ポリシーのコンフィグレーション設定のための値を獲得する段階と;
    前記獲得された値を、前記ポリシーの一部として保管する段階と;
    前記獲得された値を、前記デバイスの次回のブートのために、前記ポリシーに係る前記ポリシー設定の一部として使用する段階と、
    を含む請求項1に記載の方法。
  4. 前記方法は、さらに
    前記ポリシーの新たなバージョンが、信頼されたエンティティであるポリシー発行者からのものであり、かつ、前記ポリシーの新たなバージョンが、前記ポリシーのより新しいバージョンであると判断された場合に限って、
    前記ポリシーを、前記ポリシーの前記新たなバージョンと置き換えることを許可する段階と、
    を含む請求項1に記載の方法。
  5. 前記方法は、さらに
    前記ポリシーの識別子が、前記ポリシーの前記新たなバージョンの親リストの中に含まれている場合に、
    前記ポリシーの前記新たなバージョンが、前記ポリシーのより新しいバージョンであると判断する段階と、
    を含む請求項4に記載の方法。
  6. 前記プリオペレーティグシステム環境は、コンピューティングデバイス上で実行されている仮想マシンのプリオペレーティグシステム環境である、
    請求項1に記載の方法。
  7. 前記ポリシーは、安全な方法で維持され、
    前記安全な方法においては、前記プリオペレーティグシステム環境のコンポーネントが前記ポリシーを変更できるが、前記オペレーティグシステムは前記ポリシーを変更できない、
    請求項1に記載の方法。
  8. 前記ポリシーは、さらに
    前記対応するアクションを特定する、
    請求項1に記載の方法。
  9. コンピューティングデバイスであって:
    一つまたはそれ以上のプロセッサと;
    複数のインストラクションを保管してある一つまたはそれ以上のコンピューターで読み取り可能な媒体と、を含み、
    前記一つまたはそれ以上のプロセッサによって実行された場合に、前記一つまたはそれ以上のプロセッサに、前記コンピューティングデバイスがアクトを実行するプリオペレーティグシステム環境を実施させ、
    前記アクトは:
    オペレーティグシステムが前記コンピューティングデバイス上で実行されるために、前記オペレーティグシステムのコンフィグレーション値によって満足されるべきコンフィグレーション値を特定する変更を受取る段階であって、前記オペレーティグシステムは前記ポリシーを変更できない段階と;
    前記コンピューティングデバイスにおいて、前記ポリシーに対する前記変更が、前記プリオペレーティグシステム環境により信頼されたエンティティによって許可されたものかどうかをチェックする段階と;
    前記ポリシーに対する前記変更が、前記プリオペレーティグシステム環境により信頼されたエンティティによって許可されたものである場合に限り、前記ポリシーを変更する段階と、を含む、
    ことを特徴とするコンピューティングデバイス。
  10. 前記ポリシーは、前記オペレーティグシステムに対してアクセスできない安全な方法で維持される、
    請求項9に記載のコンピューティングデバイス。
JP2013556865A 2011-03-01 2012-03-01 オペレーティングシステムのコンフィグレーション値の保護 Active JP5992457B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/037,962 2011-03-01
US13/037,962 US9256745B2 (en) 2011-03-01 2011-03-01 Protecting operating system configuration values using a policy identifying operating system configuration settings
PCT/US2012/027302 WO2012118984A2 (en) 2011-03-01 2012-03-01 Protecting operating system configuration values

Publications (2)

Publication Number Publication Date
JP2014507043A true JP2014507043A (ja) 2014-03-20
JP5992457B2 JP5992457B2 (ja) 2016-09-14

Family

ID=46754046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013556865A Active JP5992457B2 (ja) 2011-03-01 2012-03-01 オペレーティングシステムのコンフィグレーション値の保護

Country Status (6)

Country Link
US (2) US9256745B2 (ja)
EP (1) EP2681689B1 (ja)
JP (1) JP5992457B2 (ja)
KR (1) KR101888712B1 (ja)
CN (1) CN102693379B (ja)
WO (1) WO2012118984A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015190371A1 (ja) * 2014-06-13 2015-12-17 アーティス株式会社 アプリケーションプログラム

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256745B2 (en) 2011-03-01 2016-02-09 Microsoft Technology Licensing, Llc Protecting operating system configuration values using a policy identifying operating system configuration settings
US9372699B2 (en) * 2011-04-08 2016-06-21 Insyde Software Corp. System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
US9390294B2 (en) * 2011-09-30 2016-07-12 Hewlett-Packard Development Company, L.P. Virtualized device control in computer systems
US9317689B2 (en) 2012-06-15 2016-04-19 Visa International Service Association Method and apparatus for secure application execution
US9984250B2 (en) * 2012-06-22 2018-05-29 Microsoft Technology Licensing, Llc Rollback protection for login security policy
US9092233B2 (en) * 2012-09-07 2015-07-28 Apple Inc. Accessory booting over USB
US9164773B2 (en) * 2012-09-21 2015-10-20 Dell Products, Lp Deciding booting of a server based on whether its virtual initiator is currently used by another server or not
US9235710B2 (en) 2013-05-23 2016-01-12 Cisco Technology, Inc. Out of band management of basic input/output system secure boot variables
US9167002B2 (en) 2013-08-15 2015-10-20 Microsoft Technology Licensing, Llc Global platform health management
JP5864510B2 (ja) * 2013-10-18 2016-02-17 富士通株式会社 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置
US20150121054A1 (en) * 2013-10-31 2015-04-30 Advanced Micro Devices, Inc. Platform Secure Boot
US20150172120A1 (en) * 2013-12-12 2015-06-18 Commvault Systems, Inc. Managing non-conforming entities in information management systems, including enforcing conformance with a model entity
US10049216B2 (en) * 2014-02-06 2018-08-14 Intel Corporation Media protection policy enforcement for multiple-operating-system environments
JP5889933B2 (ja) * 2014-02-15 2016-03-22 レノボ・シンガポール・プライベート・リミテッド コンピュータの動作不良を防止する方法、コンピュータ・プログラムおよびコンピュータ
US9792305B1 (en) * 2014-10-30 2017-10-17 Amazon Technologies, Inc. System for controlling access to stored values
US9563765B2 (en) * 2015-02-10 2017-02-07 Apple Inc. Baseband secure boot with remote storage
US10803175B2 (en) * 2015-03-06 2020-10-13 Microsoft Technology Licensing, Llc Device attestation through security hardened management agent
US10630686B2 (en) 2015-03-12 2020-04-21 Fornetix Llc Systems and methods for organizing devices in a policy hierarchy
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US10803437B2 (en) * 2015-08-28 2020-10-13 Ncr Corporation Self-service terminal technical state monitoring and alerting
US10467418B2 (en) * 2015-08-28 2019-11-05 Ncr Corporation Computer pre-boot security verification, enforcement, and remediation
GB2545010B (en) * 2015-12-03 2018-01-03 Garrison Tech Ltd Secure boot device
US10917239B2 (en) * 2016-02-26 2021-02-09 Fornetix Llc Policy-enabled encryption keys having ephemeral policies
CN106528201B (zh) * 2016-10-10 2019-12-13 网易(杭州)网络有限公司 游戏中加载动画的方法和装置
CN110383281A (zh) * 2017-01-04 2019-10-25 格哈德·施瓦茨 非对称系统与网络体系结构
US10389594B2 (en) * 2017-03-16 2019-08-20 Cisco Technology, Inc. Assuring policy impact before application of policy on current flowing traffic
US10467416B2 (en) * 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
KR102434444B1 (ko) * 2017-11-29 2022-08-19 한국전자통신연구원 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
US10719606B2 (en) * 2018-02-23 2020-07-21 Infineon Technologies Ag Security processor for an embedded system
US10482253B2 (en) * 2018-03-30 2019-11-19 Dell Products L. P. Configuring basic input output system (BIOS) features based on a policy
US11150911B2 (en) 2018-06-15 2021-10-19 Dell Products, L.P. System and method for managing UEFI boot device path based on custom selection
US11303523B2 (en) * 2018-09-24 2022-04-12 Microsoft Technology Licensing, Llc Cloud-based service policy reroute
FR3096153B1 (fr) * 2019-05-17 2021-04-23 Psa Automobiles Sa Procédé et dispositif de retour à un état précédent une mise à jour logicielle d’un calculateur d’un véhicule à distance
US12003371B1 (en) * 2022-12-13 2024-06-04 Sap Se Server configuration anomaly detection

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004504648A (ja) * 1999-12-10 2004-02-12 マイクロソフト コーポレイション クライアント側のブートドメインおよびブート規則
US20040255106A1 (en) * 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487656B1 (en) 1999-12-10 2002-11-26 Phoenix Technologies Ltd. System and method for providing functionalities to system BIOS
US7293087B2 (en) * 2000-01-21 2007-11-06 Scriptlogic Corporation Event-based application for performing configuration changes in a networked environment
US6792556B1 (en) 2000-05-31 2004-09-14 Dell Products L.P. Boot record recovery
US6941355B1 (en) 2000-09-08 2005-09-06 Bbnt Solutions Llc System for selecting and disseminating active policies to peer device and discarding policy that is not being requested
US7281125B2 (en) * 2001-08-24 2007-10-09 Lenovo (Singapore) Pte. Ltd. Securing sensitive configuration data remotely
US20030061494A1 (en) 2001-09-26 2003-03-27 Girard Luke E. Method and system for protecting data on a pc platform using bulk non-volatile storage
US7216369B2 (en) 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US7017039B2 (en) * 2002-12-31 2006-03-21 John Alan Hensley Method of booting a computer operating system to run from a normally unsupported system device
US7117348B2 (en) * 2003-06-27 2006-10-03 American Megatrends, Inc. Method and system for detecting the validity of configuration data
JP4574161B2 (ja) * 2003-11-17 2010-11-04 キヤノン株式会社 通信装置、その制御方法およびプログラム
US20050114687A1 (en) 2003-11-21 2005-05-26 Zimmer Vincent J. Methods and apparatus to provide protection for firmware resources
US7546640B2 (en) 2003-12-10 2009-06-09 International Business Machines Corporation Fine-grained authorization by authorization table associated with a resource
US7363482B2 (en) 2004-03-03 2008-04-22 Intel Corporation Method and apparatus to support remote configuration code
JP4772291B2 (ja) * 2004-04-09 2011-09-14 富士通株式会社 セキュリティ機能を備えた情報処理装置
US7546448B2 (en) * 2006-02-21 2009-06-09 Microsoft Corporation Boot architecture discovery in pre-boot environment
US7631175B2 (en) * 2006-02-21 2009-12-08 Microsoft Corporation Control protocol for image enumeration and transfer
US20070235517A1 (en) * 2006-03-30 2007-10-11 O'connor Clint H Secure digital delivery seal for information handling system
US7886190B2 (en) 2006-09-29 2011-02-08 Intel Corporation System and method for enabling seamless boot recovery
US8131986B2 (en) 2006-09-29 2012-03-06 Lenovo (Singapore) Pte. Ltd. System and method for boot loading of programs within a host operating environment having one or more linked guest operating systems
US7743242B2 (en) * 2006-10-16 2010-06-22 Scalent Systems Inc. Method and system for automatic generation of operating system boot images
US7822960B2 (en) 2006-12-22 2010-10-26 Intel Corporation Platform management processor assisted resume
US7805598B2 (en) 2007-05-03 2010-09-28 Dell Products L.P. Auto-detecting and auto-correcting system state changes before booting into operating systems
US7836309B2 (en) 2007-07-20 2010-11-16 Microsoft Corporation Generic extensible pre-operating system cryptographic infrastructure
US7779305B2 (en) * 2007-12-28 2010-08-17 Intel Corporation Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions
US8259948B2 (en) * 2007-12-29 2012-09-04 Intel Corporation Virtual TPM key migration using hardware keys
US8166516B2 (en) 2008-03-27 2012-04-24 Microsoft Corporation Determining effective policy
US8185727B2 (en) * 2008-04-24 2012-05-22 Dell Products, Lp Method of using an information handling system having a boot file, and an information handling system and machine-executable code for carrying out the method
US20090271606A1 (en) * 2008-04-28 2009-10-29 Kabushiki Kaisha Toshiba Information processing device and information processing system
US20090327741A1 (en) 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
JP2010020570A (ja) * 2008-07-11 2010-01-28 Hitachi Ltd 情報処理システム及びデータ回復方法
US8095799B2 (en) * 2008-07-28 2012-01-10 Apple Inc. Ticket authorized secure installation and boot
US8131987B2 (en) * 2008-12-10 2012-03-06 Dell Products L.P. Virtual appliance pre-boot authentication
US8694761B2 (en) 2008-12-31 2014-04-08 Vincent Zimmer System and method to secure boot both UEFI and legacy option ROM's with common policy engine
US8588422B2 (en) 2009-05-28 2013-11-19 Novell, Inc. Key management to protect encrypted data of an endpoint computing device
US8250273B2 (en) * 2009-09-14 2012-08-21 International Business Machines Corporation Secure handling and routing of message-signaled interrupts
US8402553B2 (en) * 2009-10-30 2013-03-19 International Business Machines Corporation Updating an operating system of a computer system
US8667263B2 (en) * 2010-02-12 2014-03-04 The Johns Hopkins University System and method for measuring staleness of attestation during booting between a first and second device by generating a first and second time and calculating a difference between the first and second time to measure the staleness
CN102236621B (zh) * 2010-04-28 2014-12-24 国网浙江富阳市供电公司 计算机接口信息配置系统及方法
US8566574B2 (en) * 2010-12-09 2013-10-22 International Business Machines Corporation Secure encrypted boot with simplified firmware update
US9256745B2 (en) 2011-03-01 2016-02-09 Microsoft Technology Licensing, Llc Protecting operating system configuration values using a policy identifying operating system configuration settings

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004504648A (ja) * 1999-12-10 2004-02-12 マイクロソフト コーポレイション クライアント側のブートドメインおよびブート規則
US20040255106A1 (en) * 2003-06-10 2004-12-16 Rothman Michael A. Recovery of operating system configuration data by firmware of computer system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015190371A1 (ja) * 2014-06-13 2015-12-17 アーティス株式会社 アプリケーションプログラム
JP5899384B1 (ja) * 2014-06-13 2016-04-06 アーティス株式会社 アプリケーションプログラム
US11048778B2 (en) 2014-06-13 2021-06-29 Artis Solutions Co., Ltd Application program

Also Published As

Publication number Publication date
EP2681689B1 (en) 2017-04-19
EP2681689A4 (en) 2014-08-06
CN102693379A (zh) 2012-09-26
US9424431B2 (en) 2016-08-23
WO2012118984A3 (en) 2013-01-31
US20120226895A1 (en) 2012-09-06
JP5992457B2 (ja) 2016-09-14
EP2681689A2 (en) 2014-01-08
US9256745B2 (en) 2016-02-09
CN102693379B (zh) 2016-12-14
US20160012234A1 (en) 2016-01-14
WO2012118984A2 (en) 2012-09-07
KR101888712B1 (ko) 2018-08-14
KR20140016280A (ko) 2014-02-07

Similar Documents

Publication Publication Date Title
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
US8938618B2 (en) Device booting with an initial protection component
JP4837985B2 (ja) 信頼できる処理モジュールを有するコンピュータを安全にブートするためのシステムおよび方法
KR101176646B1 (ko) 상태 검증을 사용하는 보호된 오퍼레이팅 시스템 부팅을 위한 시스템 및 방법
KR101861401B1 (ko) 장치 기능과 애플리케이션의 결합
EP2583410B1 (en) Single-use authentication methods for accessing encrypted data
JP6073320B2 (ja) デジタル署名するオーソリティ依存のプラットフォームシークレット
US20060161790A1 (en) Systems and methods for controlling access to data on a computer with a secure boot process
TWI720313B (zh) 基本輸入輸出系統活動之本地監督及供應
EP2051181A1 (en) Information terminal, security device, data protection method, and data protection program
US8656190B2 (en) One time settable tamper resistant software repository
US11966461B2 (en) Virtual environment type validation for policy enforcement

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150206

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160531

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: 20160719

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160817

R150 Certificate of patent or registration of utility model

Ref document number: 5992457

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250