JP5932837B2 - コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム - Google Patents

コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム Download PDF

Info

Publication number
JP5932837B2
JP5932837B2 JP2013549909A JP2013549909A JP5932837B2 JP 5932837 B2 JP5932837 B2 JP 5932837B2 JP 2013549909 A JP2013549909 A JP 2013549909A JP 2013549909 A JP2013549909 A JP 2013549909A JP 5932837 B2 JP5932837 B2 JP 5932837B2
Authority
JP
Japan
Prior art keywords
authentication
code
updater
new
authentication system
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.)
Active
Application number
JP2013549909A
Other languages
English (en)
Other versions
JP2014503101A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2014503101A publication Critical patent/JP2014503101A/ja
Application granted granted Critical
Publication of JP5932837B2 publication Critical patent/JP5932837B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Description

本発明は、ソフトウェアを更新するための方法および装置に関する。具体的には、本発明は、トラステッド・ブート(trusted boot)およびリモート認証(remote attestation)プロセスに関する。トラステッド・コンピューティング、トラステッド・ブート、およびリモート認証は、本明細書において記載する場合、一般に、TCG(Trusted Computing Group)と称する標準規格組織によって開発された技術規格に関する。
トラステッド・ブートは、トラステッド・コンピューティング・システムにおいて信用の連鎖(chain of trust)をブートし確立するための手順である。例えばトラステッド・プラットフォーム・モジュール(TPM)のようなセキュアなデバイスにおいて、ブートのコンポーネントを暗号によって測定し記憶することができる。各ブート・コンポーネントは、セキュアなデバイスにおいて次のブート・コンポーネントの特徴的な測定値を測定して記憶し、この測定値を取得した後、測定されたコンポーネントに制御が移る。いったんシステムが動作すると、例えば直接匿名認証(DAA:Direct Anonymous Attestation)のようなリモート認証プロセスを用いてリモート・システムによる検査のために測定値を抽出することができる。測定値のシーケンスが信用の連鎖と記載される。
コンピュータ・システムは、新しいフィーチャおよびソフトウェア修正によって頻繁に更新される。更新では、信用の連鎖の一部を形成するブート・コンポーネントを変更する必要がある場合があり、かかる更新の後に、リモート認証によって測定値の変更が示される。すなわち信用の連鎖が破られる。多くのシステムおよび多くの更新があれば、これはもっと大きく困難な管理上の問題となる。測定値の変更は、少なくとも再測定の後に「明らかになる」だけである。再測定は、リブートの際に発生するか、または実行時に発生するだけである(どのようにシステムが構築されているかによって異なる)。
従って、当技術分野において、前述の問題に対処することが求められている。
本発明の第1の態様では、実行環境においてコードを更新するための方法が提供される。これは、新しいコードをインストールすることと、新しいコードの識別特徴を測定し、この識別特徴を認証システムに利用可能とすることと、コードを新しいバージョンに更新したことを認証システムに通知することと、を含み、これによって、新しいコードの識別特徴が予め記憶された認証値と一致しないことを認証システムが見出した場合、正当な不一致が発生した可能性があると認識する。
好適な実施形態において、コードはブート・プロセスで用いられるコンポーネントであるが、ブートされない信用の連鎖内の別のコンポーネントを指す場合もある。他の実施形態では、コードは、ファームウェア、ハイアーバイザ、仮想マシン、オペレーティング・システム、またはアプリケーションの全体または一部である。新しいコードは、あるコンポーネントの新しいバージョンまたは完全に新しいコンポーネントとすることができる。
予め記憶された認証値は、システム・コンポーネントの有効な識別特徴を試験するために認証システムが用いる基準である。予め記憶された認証値は、システム管理によって認証システムにセーブされるか、または何らかの初期化プロセスによって獲得され、これによって、コンポーネントの初期識別特徴は認証値として認証システムによって信用され用いられる。
この方法は、オペレーティング・システム・コンポーネントの新しいバージョンの存在を判定することを更に含み、これによって更新段階が自動的に実行されると有利である。
本発明は、認証システムに更新を通知するが、認証値は認証システムによってまたはシステム管理者によってのみ更新することができる。もっとセキュリティが低い実施形態に限って、認証値はハイパーバイザにより更新することができる。好適な実施形態では、ハイパーバイザは通知以外では認証システムに対するアクセスを有しない。認証システムは、通知の直後に認証を実行しなければならず、これによってコンポーネントの新しいバージョンの起点(origin)をチェックする。いったん新しいコンポーネントの起点を検証したら、以降のリブートの後に、記憶された認証値と一致しない場合であっても新しいコンポーネントのブート測定値を受容することができる。
既知のソフトウェア更新プロセスにハイパーバイザ通知段階を追加して、信用の連鎖をハイパーバイザで開始させる。好適な実施形態では、通知段階は、更新されたシステムが認証システムに「test me(試験しなさい)」メッセージを通知して、新しい測定が行われたことを認証システムに認識させることから成る。認証通知ステップは、認証されたシステムがリブートして異なる測定値に遭遇した場合に認証システムがパニックを起こすことを阻止する。
好適な実施形態によって、ハイパーバイザ等のトラステッド・コンポーネントは測定プロセスに参加し、別のコンポーネントを測定することができるので、認証システムはこの測定されたコンポーネントに信用を与えることができる。
有利には、コンポーネント(616.N)の新しいバージョン(651.N)をインストールすることが、コンポーネントの新しいバージョン(651.N)に関連付けられたアップデータ(612.N)を識別することと、識別したアップデータ(612.N)の識別特徴を測定することと、コンポーネントの新しいバージョン(651.N)をインストールすることと、アップデータの識別測定値(PCR17)を認証システム(620)に利用可能とすることと、を含み、これによって、認証システム(620)がアップデータ(612.N)の識別測定値(PCR17)を予め記憶された認証値(624.N)と照合して正当な更新を有効化することができる。明確さおよび例示のためにのみ、上の段落に図6からの参照番号を加えた。
認証システムが通知の直後に、ハイパーバイザにおいて見出されるコンポーネントの新しいバージョンの起点をチェックすると、更に有利である。好適な実施形態では、コンポーネントの起点のチェックは、更新をインストールしたコンポーネントをチェックすることを含むが、他の実施形態では、どこから更新が来たか、またはどのようにそれがインストールされたか等の他のチェックを行うことも可能である。更に、測定値が認証値と一致せず、認証システムが対応するコンポーネントの起点をチェックした場合、認証値をコンポーネントの新しいバージョンの測定値で更新すること、および、測定値が認証値と一致しないことおよび認証システムがコンポーネントの起点を認識したか否かを認証レベルに通知することの1つ以上を実行する。
本発明の第2の態様では、ハイパーバイザにおいてオペレーティング・システムを更新および認証するための方法が提供される。これは、オペレーティング・システムのコンポーネントの新しいバージョンを判定することと、新しいコンポーネント・バージョンをインストールすることと、コンポーネントの識別特徴を測定し、これを認証システムに利用可能とすることと、コンポーネントを新しいバージョンに更新したことを認証システムに通知することと、を含み、これによって、新しいコンポーネントの識別特徴が予め記憶された認証値と一致しないことを認証システムが見出した場合、正当な不一致が発生した可能性があると認識する。
本発明の第3の態様では、プログラムの完全性を試験する方法が提供される。これは、プログラムのインストール・プロセスによって記憶したコンポーネント測定値を抽出することと、試験システムによって記憶した基準測定値を用いてコンポーネント測定値を試験し、それが一致しない場合に測定値をフェイルとすることと、フェイルとなったコンポーネント測定値を更に試験し、これが試験システムに既知の別のコンポーネントを起点としていない場合に再びフェイルとすることと、コンポーネント測定値が試験にパスした場合にパスを指示し、測定値が試験のいずれにもパスしない場合にフェイルを指示することと、
を含む。
本発明の第4の態様は請求項11に記載されているように提供される。
本発明の第5の態様は請求項19に記載されているように提供される。
本発明の第6の態様は請求項20に記載されているように提供される。
更に別の態様から見ると、本発明は、実行環境においてコードを更新するためのコンピュータ・プログラムを提供する。このコンピュータ・プログラムは、処理回路によって読み取り可能であり、本発明のステップを実行するための方法を実行するための処理回路によって実行される命令を記憶するコンピュータ読み取り可能記憶媒体を含む。
更に別の態様から見ると、本発明は、コンピュータ読み取り可能媒体上に記憶され、デジタル・コンピュータの内部メモリにロードすることができるコンピュータ・プログラムを提供する。これは、このプログラムがコンピュータ上で実行された場合に本発明のステップを実行するためのソフトウェア・コード部分を含む。
本明細書が提案する解決策では、システムが、仮想TPMを用いた仮想化システムについて次のトラステッド・ブートで予想されるものを認証側に通知することができる。
これより、以下の図面に示すような好適な実施形態を参照して、一例としてのみ本発明について記載する。
従来技術による、本発明の好適な実施形態を実施可能である従来技術のトラステッド・コンピューティング・システムの概略展開図である。 従来技術による、本発明の好適な実施形態を実施可能である従来技術のトラステッド・コンピューティング・システムの概略プロセス図である。 従来技術による、本発明の好適な実施形態を実施可能である従来技術のトラステッド・コンピューティング・システムを認証するための概略プロセス図である。 従来技術による、本発明の好適な実施形態を実施可能である従来技術のトラステッド・コンピューティング・システムを更新するための概略プロセス図である。 一実施形態の更新プロセスと、従来技術による、本発明の好適な実施形態を実施可能である従来技術の更新プロセスとの同等なステップを示す比較図である。 本発明の好適な実施形態によるシステムの概略展開図である。 本発明の好適な実施形態による更新プロセスの概略プロセス図である。 本発明の好適な実施形態による新しいコンポーネントをロードするプロセスのプロセス図である。 本発明の好適な実施形態による認証プロセスのプロセス図である。 物理的な実施形態のシステムの概略展開図である。
図1は、従来技術のトラステッド・システムの簡略化した展開図である。これは、プラットフォーム10、トラステッド・プラットフォーム・モジュール20(TPM20)、および認証システム30を含む。プラットフォーム10は、プート・プロセス200(以下に図2を参照して説明する)、更新プロセス12、およびブート・コンポーネント15.1〜15N(ここおよび本明細書中の他の箇所では、文字Nは特定の数ではなくある1つの数を表すために用いる)を含む。ブート・コンポーネント15はブート・コンポーネント15.1〜15Nを含む。TPM20は、プラットフォーム・コンフィギュレーション・レジスタ22.1〜22Nを含む。TPM20は、プラットフォーム10とは別個に展開されているものとして示すが、これはプラットフォーム10の一部とすることも可能である。プラットフォーム・コンフィギュレーション・レジスタPCRはレジスタとも称する。認証システム30は、認証プロセス300および認証値34.1〜34Nを含む。認証システム30はプラットフォームとは別個に展開されているものとして示す。
図2は、従来技術のブート・プロセス200の簡略化したプロセス図であり、以下のように、多数のブート・コンポーネントを順次実行するためのステップ202〜212のシーケンスを含む。
ステップ202は、第1のブート・コンポーネントを実行するためのものである。
ステップ204は、次のブート・コンポーネントの識別特徴を測定し、その測定値をレジスタ(例えば22.1)に記憶するためのものである。
ステップ206は、次のコンポーネントを実行するためのものである。
ステップ208は、以降のブート・コンポーネントがあればその識別特徴を測定し、その測定値を以降のレジスタ(例えば22.2)に記憶するためのものである。
ステップ210は、あらゆる以降のブート・コンポーネントについてステップ206および208を繰り返すブート・サイクルを表す。
ステップ212は、もはやブート・コンポーネントが残っていない場合にプロセスを終了する。
好適な実施形態において、ハイパーバイザが初期ステップ(従来技術における同等のステップ200、202、204)を実行するので、測定および実行はハイパーバイザにおいて開始する。例えばハイパーバイザはハイパーコール「H-Measure」を供給し、これが次のブート・コンポーネントと同様に何らかのコードを測定し実行する。別の例では、プラットフォーム・ファームウェアが初期ステップを実行し、以降のブート・コンポーネントをハイパーバイザにおいて開始させることができる。
図3は、従来技術の認証プロセス300の簡略化したプロセス図であり、以下に記載するように論理ステップ302から308のシーケンスを含む。認証プロセスは、トラステッド・プラットフォームがブートした後に実行する。
ステップ302は、レジスタに記憶された測定値を抽出するためのものである。
ステップ304は、認証システム30により記憶された認証値34.1〜34Nを測定値と比較するためのものである。
ステップ306は、1)値が測定値と一致した場合にパス(pass)を、または2)値と測定値とが不一致である場合にフェイル(fail)を示すためのものである。
ステップ308は、プロセスの終了である。従来技術の認証プロセスは認証値が正しいことを信用しており、従来技術において認証値は管理者によって更新される。図4は、従来技術の更新プロセス400の簡略化したプロセス図であり、ステップ402〜406のシーケンスを含む。
ステップ402は、コンポーネントの新しいバージョンでコンポーネントを更新する必要があることを判定するためのものである。
ステップ404は、古いコンポーネントを除去し、新しいコンポーネントをロードすることによってコンポーネントを更新するためのものである。
ステップ406は、プロセスの終了である。このプロセスでは、コンポーネントがブート・コンポーネントであるという識別はなく、従って更新によって認証システムが保持する認証値に影響があることを知る方法はない。
図5は、従来技術のトラステッド・システムの結果および好適な実施形態のトラステッド・システムの結果の比較を示す。
完全な従来技術の更新および認証は、以下の組み合わせプロセスのシーケンスを含む。すなわち、200、300、400、再び300である。ブート・プロセス200は、ブート・コンポーネントをロードし、各コンポーネントを順番に測定する。測定値はTPM20に記憶される。認証プロセス300は、測定値を検索し、記憶された認証値に対して試験し、この値および測定値が一致するのでパスを伝達する。更新プロセス400は、1つ以上のブート・コンポーネントを含む1つ以上のコンポーネントの更新を実行し、ここでTPM測定値を変更する。認証プロセス300を更に実行するとフェイルが示される。これは、認証値に更新が行われておらず、認証値およびTPM測定値が一致しないからである。
好適な実施形態の更新および認証プロセスは、以下の組み合わせプロセス・ステップのシーケンスを含む。すなわち、606、622、700、再び622である。ブート・プロセス606は、ブート・コンポーネントをロードする。各ブート・コンポーネントを測定し、測定値をTPMに記憶する。実施形態の認証プロセス622は、測定値を検索し、記憶された認証値に対して試験し、この値および測定値が一致するのでパスを伝達する。実施形態の更新プロセス700は、1つ以上のブート・コンポーネントの更新を実行し、TPMにおける測定値を変更する。好適な実施形態では、更新が実行されたことを認証システムに通知する。認証プロセス622は、更新コンポーネントの起点をチェックするのでパスを示す。
別の実施形態では、更新の間に確立された測定値によって認証値を更新する。
図6は、好適な実施形態のトラステッド・コンピューティング・システムの概略的なコンポーネント図を示す。トラステッド・コンピューティング・システムは、プラットフォーム600、認証システム620、および更新レジストリ650を含む。
更新レジストリ650は、オペレーティング・システムおよびアプリケーションの個々のコンポーネントの最新バージョンを保持するための記憶リソースおよびインデックスであり、オペレーティング・システムまたはアプリケーションのインスタンスを更新する際に用いられる。図において、更新レジストリは更新651.1から651Nを含む。オペレーティング・システムのコンポーネント・バージョン・ナンバーまたは日付に対して更新レジストリ内のコンポーネント・バージョン・ナンバーまたは日付をスキャンすると、どのコンポーネントが更新を必要としているかが明らかになる。
動作において、プラットフォーム600は、仮想オペレーティング・システムを実行し管理するためのハイパーバイザ604を有するハードウェア・プラットフォームである。プラットフォームの一例はIBM Power Systemである。動作において、ハイパーバイザ604は、ブート・プロセス606、更新プロセス700、更新612.1から612N、および仮想マシン・ホスト環境を含む。本例のハイパーバイザは、単一のオペレーティング・システム614のためにホスト環境において単一の仮想マシン605を生成するが、好適な実施形態では、2つ以上の仮想マシン上で2つ以上のオペレーティング・システムを更新可能であることが予想される。各仮想マシンは対応する仮想TPMを有する。ハイパーバイザ上で実行する各仮想マシンは認証システムによって信用される。信用は、実TPMによって、または現在の信用され署名された更新および他のセキュリティ測定によって得られる。
仮想トラステッド・プラットフォーム・モジュール610は、複数のレジスタ(PCR)PCR1、2、3、...17、18、...Nを含む。各PCRは測定値または値を記憶することができる。
アップデータ612.1〜612Nは、一例としての別個のコンポーネントのセットを含み、その各々は各ブート・コンポーネント(616.1〜616N)に関連付けられ、各々は各更新(651.1〜651N)によってオペレーティング・システムを更新することができる。例えば、ブート・コンポーネント616.3は更新651.3を用いてアップデータ612.3によって更新することができる等であり、ブート・コンポーネント616Nではアップデータ612Nおよび更新651Nが用いられる。各アップデータは、対応する更新およびブート・コンポーネントに対するリンクを含む。各アップデータは、ハイパーバイザによって測定され次いで実行されることが意図されている。測定値は第1の合意レジスタ(agreed register)(例えばPCR17)に記憶される。実行中、アップデータはインストールされている新しいコンポーネントを測定し、第2の合意レジスタ(例えばPCR18)を更新する。アップデータは、単に何かをコピーしているか、またはその場でコンポーネントを生成している場合があることに留意すべきである。例えば、アップデータ「bosboot」は、多くのコンフィギュレーション・ファイルおよびシステム・データからその場で新しいオペレーティング・システム・コンポーネント・イメージを発生する。
好適な実施形態において、アップデータは、オペレーティング・システムが更新されたことを認証システムに直接通知するように構成されている。これは、アップデータが認証システムと直接接触しているかまたは接触するためにハイパーバイザ上で何らかの共通プロセスを取得していることを意味し得る。ハイパーバイザによってロードされた場合、仮想OSシステム614(例えばIBM AIX*)が含むブート・コンポーネント616.1〜616Nは、ブート・プロセスの一部としてロードされ、アプリケーション、データ、およびインタフェースを有する機能する仮想オペレーティング・システムを提供する。ブート・プロセスの一部でない他のオペレーティング・システム・コンポーネントは図示していない。
ブート・プロセス600は、従来技術のブート・プロセス20と同一のプロセスを含む。
認証システム620は、認証プロセス622および認証値624.1〜624Nを含む。認証システム620およびハイパーバイザ604は合意(agreement)を有し、これに基づいてアップデータの測定値および変更されたコンポーネントの署名(識別特徴とも称する)を記録するためにレジスタ(PCR1...N)を用いる。好適な実施形態では、これらの合意レジスタを第1の合意レジスタおよび第2の合意レジスタと称する。例えば、この例において第1および第2の合意レジスタはPCR17およびPCR18である。
認証システムは、TPMにおけるレジスタを認証する必要がある。全てのレジスタ値の転送には、デジタル署名および他のセキュリティ機構を用いて信用を維持する認証プロトコルが用いられる。認証システムは、同意レジスタ(例えば第1および第2の同意レジスタPCR17および18)がセットされ、現在のトラステッド・レジスタ(例えばPCR1、2、および3)のリブートおよび以降の変更を準備することが可能であるか否かを検出することができる。
認証システムは、第1の合意レジスタ(例えばPCR17)を読み取って、アップデータがトラステッド・アップデータであることを判定する。この判定は、既知のトラステッド・アップデータについて測定値マスター・リストを調べ、レジスタに対する全ての変更についてメタデータで更新されたトラステッド・ブート・イベントを調べることによって行われる。第1の合意レジスタが信用された値を含むことが認証システムによって見出されると、第2の合意レジスタも、更新で検出されたアップデータと関連付けられたブート・レジスタを次に比較する場合に用いる信用に値する値を含むことが想定される。
図7を参照すると、ハイパーバイザ更新プロセス700はプロセス論理ステップ702から710を含む。
ステップ702は、あるコンポーネントが利用可能な更新を有することを、もっと最新のコンポーネントについて更新レジストリ650をスキャンすることで判定するためのものである。例えば、仮想OSシステム614のブート・コンポーネント616.3は、AIXブート・イメージ(AIXブート・イメージ1)のバージョン1を含むが、更新レジストリ650における更新651.3には、AIXブート・イメージ(AIXブート・イメージ2)のバージョン2がロードされている。これは好適であるが、他の実施形態において、異なる機構を用いて更新する時を決定することも可能である。
ステップ704は、関連付けられたアップデータ(例えばアップデータ612.3)を活性化することによって新しいブート・コンポーネントをロードするためのものであり、ここで関連付けられたアップデータはブート・コンポーネントを更新するように構成されている。すなわち、関連付けられたアップデータは新しいブート・コンポーネントにアクセスして、古いブート・コンポーネントの上にまたはその代わりにこの新しいブート・コンポーネントをインストールする。上述の説明はブートをロードするステップの基本的な動作であり、ブートをロードするステップの更に詳細な動作については以下の図8を参照して説明する。
ステップ706は、新しいブート・コンポーネントを仮想オペレーティング・システムにロードした後にこれを測定して、新しい測定値が仮想オペレーティング・システム内の位置で新しいブート・コンポーネントを一意に識別するようにするものである。新しい測定値はトラステッド・プラットフォーム・モジュールにおける特定のレジスタに追加される。好適な実施形態では、認証システム620は、特定のレジスタが新しい測定値を保持しており古いものを保持していないことを調べて理解する。
ステップ708は、ブート・コンポーネントを更新したことを認証システム620に通知するためのものである。
ステップ710は更新プロセス700の終了を伝達する。
本発明の簡単な実施形態として新しいブート・コンポーネントをロードするステップ704を上述したが、本発明の好適な実施形態は、信頼レベルを上げるために更に別の処理を用いる。以下に記載し図8に示すような新しいブート・コンポーネントのロード704は、本発明の好適な実施形態であり、プロセス・ステップ802から812を含む。
ステップ802は、ブート・コンポーネントに関連付けられた更新コンポーネントを識別するためのものである。以下の例では、bosbootと称するプログラムを呼び出して、AIXブート・イメージ1をAIXブート・イメージ2によって書き換える。
ステップ804は、識別したアップデータをオペレーティング・システムにロードするためのものである。
ステップ806は、アップデータ・コンポーネントを測定し、その測定値を第1の合意レジスタに追加するためのものである。以下の例では、ハイパーコールと称するプログラムがbosbootを測定し、TPM内の第1の合意レジスタ(例えばPCR17)を拡張する。
ステップ808は、アップデータを呼び出して更新コンポーネントをインストールするためのものである。以下の例では、bosbootが新しいブート・イメージを書き込む。
ステップ810は、新しいブート・コンポーネントを測定し、その測定値を第2合意レジスタに追加するためのものである。
ステップ812は、新しいブート・コンポーネント・ロード・プロセス704の終了である。
図9を参照すると、好適な実施形態に従った認証プロセス622の論理プロセス・ステップ902から910が記載されている。認証プロセスは、トラステッド・プラットフォームがブートした後に実行するが、トラステッド・プラットフォームとは独立している。
ステップ902は、レジスタに記憶された測定値を抽出するためのものである。
ステップ904は、認証システム620により記憶された認証値624.1〜624Nと測定値を比較するためのものである。
ステップ906は、値が測定値と一致した場合にパスを示すためのものである。
ステップ908は、ステップ906からの不一致ブート測定値が既知のアップデータと一致した場合にパスを示すためのものである。
ステップ910は、ステップ908から910の後に不一致ブート測定値があった場合にフェイルを示すためのものである。
ステップ912はこのプロセスの終了を示すためのものである。
実施例
好適な実施形態の動作の一例は、単一の仮想AIXシステムによってIBM Power Hypervisor(PHYP)をホストするIBM Power*システムを含む。AIXシステムは、仮想TPMデバイスを用い、トラステッド・ブート機能性を組み込んでいる。このシステムは別個の認証システムによって監視され認証される。認証されると、以下のPCR測定値が戻される。ここでPCR1、PCR2、PCR3はTPM内のレジスタである。
PCR1=オープン−ファームウェア
PCR2=AIXブート・イメージ
PCR3=AIXトラステッド実行データベース
認証システムは、これらの測定値を信用されるものとして見なし、認証を介して戻す場合セキュリティ問題のフラグを立てない。AIXブート・イメージを変更し、認証システムにこの更新を通知することを可能とするため、以下のフィーチャも存在する。
PHYPは、新しい方法(ハイパーコールと称され、具体的にはH_Measure)を有するように変更される。H_Measureは、例えばアドレスおよび長さのような、測定および実行の対象となるものを記述するパラメータを取得する。結果として得られた測定値を、例えばPCR17のようなTPMの特定のレジスタに配置する。特定のブート・レジスタは重要でなく、絶対アドレス指定レジスタまたは間接アドレス指定レジスタとすることができる。重要なのは、認証システムが、どこを調べるべきであるかを理解することである。PHYPは、渡されたアドレスにおいて制御をAIXに戻す。重要な相違は、まずハイパーコールを用いてコンポーネントを測定し、次いで同一のコンポーネントを実行することである。これによって測定したものを実行する。
動作するためには、ハイパーバイザも信用されなければならない。従来技術では、ハイパーバイザの信用は、IBM Power SystemがPHYPコードを更新する極めて限定的な方法を有することによって得られ、IBM Power Systemが署名した更新だけをインストールすることができる。本実施形態では、IBM Power Systemは実TPMデバイスを有し、そのPHYPは実TPM内に測定される。深い認証(deep attestation)として知られる技法を用いて、仮想AIXシステムによって実TPM測定値を検索することができる。
本明細書においてアップデータとも称される規定のAIXプログラム・セットは、トラステッド・ブートのコンポーネントを変更することができる。この例では、bosbootはAIXブート・イメージを合法的に更新することができる唯一のアップデータ・プログラムとして定義される。この技法では、bosbootを信用し得ること、従ってbosbootが構築された場合にbosbootのデジタル署名を取得し公表することが必要である。H_Measureがbosbootの測定に成功するために、bosbootは、測定の実行のために連続的なメモリ・ピース内にロードすることができる単一の静的コード・ピースでなければならない。bosbootが測定可能であることは重要である。他のセキュリティ基準が利用可能であり、非静的プログラムが容易に失敗する可能性がないことが保証される場合には、bosbootは静的である必要はない。
この例では、AIXブート・イメージはAIXブート・イメージ2に変更され、認証システムに通知して、不必要なセキュリティ侵害を防ぐようになっている。動作は以下のように行われる。
1.ブート・イメージを書き換えるためにbosboot(アップデータ)を呼び出す(ステップ702)。
2.AIXカーネルがbosbootをメモリにロードし(ステップ704)、H_Measureをコールする。
3.PHYPがbosbootを測定し(ステップ706)、TPM内でPCRを拡張する。
4.実行がハイパーバイザによってbosbootに渡され、bosbootは新しいブート・イメージを書き込んでAIXブート・イメージ2の測定値によってPCR18を拡張する。ここでもPCR17と同様に、PCR18が特別な意味を有することを認証システムが知っている限り、どのレジスタを用いるかは重要でない。
5.認証システムは、再認証の必要があり、これ以上の情報を交換する必要がないことを通知される(ステップ708)。
認証システムがシステムを認証したので、以下の値を戻す(ステップ902)。
PCR1=オープン・ファームウェア
PCR2=AIXブート・イメージ1
PCR3=AIXトラステッド実行データベース1
PCR17=bosboot
PCR18=AIXブート・イメージ2
認証システムは、最新の認証の後にPCR17が変更されたことを認識し、これが認証システムにおけるアクションをトリガする(ステップ908)。まずPCR17の値をチェックし、合法的な、IBMが公表したbosbootが呼び出されたことを確認し、従ってPCR18が新しいAIXブート・イメージであることを知る。これで認証システムは新しいトラステッド・ブートを完了したので、認証システムは、PCR1によって報告された新しい値がトラステッドbosbootから来たものであると知ることができ、アクションは必要でない。
実施形態
ハイパーバイザを用いて仮想マシン動作環境を管理する好適な実施形態について上述したが、これに含まれる他の実施形態では、好適な実施形態から何らかの点で単一のフィーチャが逸脱する場合がある。
好適な実施形態から大きく逸脱する一実施形態は、図10に示すような、仮想化なしの実施形態すなわち非仮想実施形態を考慮に入れる。この実施形態は、プラットフォーム1000、認証システム1020、および更新レジストリ1050を含む。プラットフォーム1000は、シリコンで設計され製造されている。好適な実施形態と同様に、TPM1010は必須の部分ではなく、測定値および認証のようなものを保持する他のいくつかのセキュアなデバイス/記憶装置を用いることができる。
更新レジストリ1050は、オペレーティング・システムおよびアプリケーションの個々のコンポーネントの最新バージョンを保持するための記憶リソースおよびインデックスであり、オペレーティング・システムまたはアプリケーションのインスタンスを更新する際に用いられる。図において、更新レジストリは更新1051.1〜1051Nを含む。オペレーティング・システムのコンポーネント・バージョン・ナンバーまたは日付に対して更新レジストリ内のコンポーネント・バージョン・ナンバーまたは日付をスキャンすると、どのコンポーネントが更新を必要としているかが明らかになる。
認証システム1020は、認証プロセス1022および認証値1024.1〜1024Nを含む。オペレーティング・システムが物理マシン上で実行している実オペレーティング・システムであるという相違を除けば、認証プロセス1022および認証値1024.1...1024Nは図6に示したものと同様である。
動作において、プラットフォーム1000はハードウェア・プラットフォームであり、ブート・プロセス1006、更新プロセス1700、アップデータ1012.1〜1012N、TPM1010、およびオペレーティング・システム1014を含む。好適な実施形態と同様、TPM1010は必須の部分ではなく、測定値および認証のようなものを保持する他の何らかのセキュアなデバイス/記憶装置を用いることができる。
非仮想環境において、TPM1010は、測定値を保持するために使用可能な特別なレジスタ(SR1...SRN)を含む。SRは、それらに対する書き込みが実際は、古い値と組み合わされた後に強いハッシュ・アルゴリズムを用いてハッシュされた新しい値の書き込みであるという点で、PCRのようにふるまう。プロセッサは、これらの特別なレジスタ(SR)を更新可能とする命令を有する。プロセッサは、測定(Measure)命令を有するように変更される。この命令は、SRのための識別子、メモリ・アドレス、および長さを取得する。これは、アドレスにおけるデータ(および長さまでの全バイト)を測定し、次いで測定値を指定されたSRに記憶する。プロセッサは実行をアドレスに移す。
非仮想の実施形態では、プラットフォーム1000は何らかのコードを更新する必要があり、更新を実行するための何らかのコードに関連付けられた更新コードがある。関連付けられたコードはメモリにロードされ、次いで測定命令を用いて関連付けられたコードを測定し実行する。測定値は第1の合意レジスタに配置される。実行された関連コードはここで何らかのコードをインストールすることができる。これはおそらく単にディスクにデータを書き込むことである。書き込みの前、または各書き込みの前(何らかの書き込みnバイト限定がある場合)、測定値を取得し、第2の合意レジスタに書き込む(SRおよびこれは第2の合意レジスタPCR18の更新と相関する)。
非仮想の実施形態では、プラットフォーム1000は、更新が発生したことを認証システム1020に通知しなければならない。好適な実施形態においてと同様、認証システム1020は認証し、暗号技法を用いてSRの値を転送して信用を維持する。認証プロセス1022は好適な実施形態と同様である。
本発明の記載した実施形態の方法の全てまたは一部は、この方法のステップを実行するように構成された論理要素を含む1つの論理装置または複数の論理装置において適切にかつ有用に具現化可能であること、および、かかる論理要素はハードウェア・コンポーネント、ソフトウェア・コンポーネント、ファームウェア・コンポーネント、またはそれらの組み合わせを含むことができることは、当業者には明らかであろう。
本発明の記載した実施形態に従った論理構成の全てまたは一部は、この方法のステップを実行するための論理要素を含む論理装置において適切に具現化可能であること、および、かかる論理要素は、例えばプログラマブル論理アレイまたは特定用途向け集積回路における論理ゲート等のコンポーネントを含むことができることは、当業者には等しく明らかであろう。かかる論理構成は、更に、例えば固定または送信可能キャリア媒体を用いて記憶及び送信可能である仮想ハードウェア記述言語を用いたアレイまたは回路において論理構造を一時的または永久的に確立するためのイネーブル要素(enabling element)において具現化することができる。
また、上述した方法および構成は、1つ以上のプロセッサ(図には示していない)上で動作するソフトウェアにおいて全体的または部分的に適切に実行可能であること、ならびに、このソフトウェアは、磁気または光ディスク等のいずれかの適切なデータ・キャリア(これも図には示していない)上で担持される1つ以上のコンピュータ・プログラム要素の形態で提供可能であることは認められよう。同様に、データ伝送のためのチャネルは、全ての記述の記憶媒体および有線または無線信号担持媒体等の信号担持媒体を含むことができる。
本発明は更に、コンピュータ・システムと共に用いられるコンピュータ・プログラムとして適切に具現化することができる。かかる実施は一連のコンピュータ読み取り可能命令を含むことができ、これは、例えばディスケット、CD−ROM、ROM、もしくはハード・ディスクのようなコンピュータ読み取り可能媒体等のタンジブルな媒体上に固定されるか、または、モデムもしくは他のインタフェース・デバイスを用いて、限定ではないが光もしくはアナログ通信ラインを含むタンジブルな媒体上で、または限定ではないがマイクロ波、赤外線、または他の伝送技法を含む無線技法を用いてインタンジブルに送信可能である。一連のコンピュータ読み取り可能命令は、本明細書において前述した機能性の全てまたは一部を具現化する。
かかるコンピュータ読み取り可能命令は、多くのコンピュータ・アーキテクチャまたはオペレーティング・システムと共に用いられる多数のプログラミング言語で記述可能であることは、当業者には認められよう。更に、かかる命令は、限定ではないが半導体、磁気、もしくは光を含む現在もしくは将来のいずれかのメモリ技術を用いて記憶するか、または限定ではないが光、赤外線、もしくはマイクロ波を含む現在もしくは将来のいずれかの通信技術を用いて送信することができる。かかるコンピュータ・プログラムは、例えば収縮包装されたソフトウェアのような印刷文書もしくは電子文書が付属した着脱可能媒体として分配し、例えばシステムROMもしくは固定ディスク上にコンピュータ・システムによって予めロードし、または例えばインターネットもしくはワールド・ワイド・ウェブのようなネットワーク上でサーバもしくは電子掲示板から分配することが考えられる。
代替案において、本発明の好適な実施形態は、コンピュータ・プログラム・コードを展開するステップを含む、サービスを展開するコンピュータ実施方法の形態で実現することができる。このコードは、コンピュータ・インフラストラクチャに展開されてそこで実行されると、コンピュータ・システムにこの方法のステップを全て実行させる。
別の代替案において、本発明の記載した実施形態は、機能データを有するデータ・キャリアの形態で実現することができる。前記機能データは、機能コンピュータ・データ構造を含み、コンピュータ・システムにロードされてそれによって動作されると、前記コンピュータ・システムはこの方法のステップを全て実行することができる。
本発明の範囲から逸脱することなく前述の例示的な実施形態に多くの改良および変更を実施可能であることは、当業者には明白であろう。
好適な実施形態の要約
要約すると、本発明は、トラステッド・コンピューティング・ハイパーバイザ環境において実行するオペレーティング・システムを更新するための方法および装置に関する。具体的には、本発明は、ハイパーバイザ環境において実行するオペレーティング・システムを更新するための方法、システム、およびコンピュータ・プログラムに関する。これは、オペレーティング・システムのコンポーネントの新しいバージョンを判定することと、新しいコンポーネント・バージョンをインストールすることと、コンポーネントの識別特徴を測定し、これを認証システムに利用可能とすることと、コンポーネントを新しいバージョンに更新したことを認証システムに通知することと、を含み、これによって、新しいコンポーネントの識別特徴が予め記憶された認証値と一致しないことを認証システムが見出した場合、正当な不一致が発生した可能性があると認識する。コンポーネントの新しいバージョンをインストールすることが、コンポーネントの新しいバージョンに関連付けられたアップデータを識別することと、識別したアップデータの識別特徴を測定することと、コンポーネントの新しいバージョンをロードしインストールすることと、アップデータの識別測定値およびコンポーネントの新しいバージョンの双方の識別特徴を認証システムに利用可能とすることと、を含む。
注記
*IBM、AIX、Express、ibm.com、Power、Power7、およびTivoliは、米国、他の国々、または双方におけるInternational Business MachinesCorporationの商標または登録商標である。IBMが所有するUS商標の完全なリストは、www.ibm.com/legal/copytrade.shtml.で見ることができる。

Claims (17)

  1. 実行環境においてコードを更新するための方法であって、
    前記実行環境が、新しいコードに関連付けられたアップデータを識別することと、
    前記実行環境が、前記識別したアップデータの識別特徴を測定し、これを認証システムに利用可能とすることと、
    前記アップデータが、前記新しいコードをインストールすることと、
    前記アップデータが、前記新しいコードの識別特徴を測定し、これを認証システムに利用可能とすることと、
    前記アップデータが、コードを新しいバージョンに更新したことを前記認証システムに通知することと、
    前記実行環境が、前記新しいコードの前記識別特徴が予め記憶された認証値と一致するか、または、前記アップデータの前記識別特徴が予め記憶された他の認証値と一致する場合に、前記認証システムから前記コードを新しいバージョンに更新したことに関してパスの伝達を受けることと、
    を含む方法。
  2. 前記実行環境が、前記新しいコードの前記識別特徴が前記認証値と一致せず、かつ、前記アップデータの前記識別特徴が前記他の認証値と一致しない場合に、前記認証システムから、前記コードを新しいバージョンに更新したことに関してフェイルの伝達を受けることを更に含む、請求項1に記載の方法。
  3. 前記アップデータの識別特徴及び前記新しいコードの識別特徴が、キュアなメモリに記憶されている、請求項1または2のいずれか1項に記載の方法。
  4. 前記実行環境がハイパーバイザであり、前記コードが、前記ハイパーバイザ上の仮想マシンにおいて実行される仮想オペレーティング・システムである、請求項1から3のいずれか1項に記載の方法。
  5. 前記アップデータの識別特徴及び前記新しいコードの識別特徴は各々レジスタに記憶され、前記各レジスタがトラステッド・プラットフォーム・モジュールに位置している、請求項1から4のいずれか1項に記載の方法。
  6. 実行環境が、新しいコードが利用可能であること、および、新が必要であることを判定することを更に含む、請求項1から5のいずれか1項に記載の方法。
  7. 前記認証システムが前記通知の直後に前記新しいコードの起点をチェックする、請求項1から6のいずれか1項に記載の方法。
  8. 前記測定値が前記認証値と一致しない場合、および、前記認証システムが前記対応するコードの前記起点をチェックした場合、前記認証システムが、(A)前記認証値を前記コードの新しいバージョンの測定値で更新し、(B)前記測定値が前記認証値と一致しないことおよび前記認証システムが前記コードの前記起点を認識したか否かを認証レベルに通知し、または(C)その両方を実行する、請求項7に記載の方法。
  9. 実行環境においてコードを更新するためのシステムであって、
    新しいコードに関連付けられたアップデータを識別するための識別手段と、
    前記識別したアップデータの識別特徴を測定するための測定手段と、
    前記アップデータの前記識別特徴を認証システムに利用可能とするための手段と、
    前記新しいコードをインストールするためのインストール手段と、
    前記新しいコードの識別特徴を測定し、これを前記認証システムに利用可能とするための測定手段と、
    コードを新しいバージョンに更新したことを前記認証システムに通知するための通知手段と、
    前記新しいコードの前記識別特徴が予め記憶された認証値と一致するか、または、前記アップデータの前記識別特徴が予め記憶された他の認証値と一致する場合に、前記認証システムから前記コードを新しいバージョンに更新したことに関してパスの伝達を受ける手段と、
    を含むシステム。
  10. 前記新しいコードの前記識別特徴が前記認証値と一致せず、かつ、前記アップデータの前記識別特徴が前記他の認証値と一致しない場合に、前記認証システムから前記コードを新しいバージョンに更新したことに関してフェイルの伝達を受ける手段を更に含む、請求項9に記載のシステム。
  11. 前記アップデータの識別特徴及び前記新しいコードの識別特徴が、キュアなメモリに記憶されている、請求項9または10のいずれか1項に記載のシステム。
  12. 前記実行環境がハイパーバイザであり、前記コードが、前記ハイパーバイザ上の仮想マシンにおいて実行される仮想オペレーティング・システムである、請求項から11のいずれか1項に記載のシステム。
  13. 前記アップデータの識別特徴及び前記新しいコードの識別特徴は各々レジスタに記憶され、前記各レジスタがトラステッド・プラットフォーム・モジュールに位置している、請求項から12のいずれか1項に記載のシステム。
  14. 新しいコードが利用可能であること、および、新が必要であることを判定する手段を更に含む、請求項から13のいずれか1項に記載のシステム。
  15. 前記システムは、前記認証システムを含み、前記認証システムが前記通知の直後に前記新しいコードの起点をチェックする、請求項から14のいずれか1項に記載のシステム。
  16. 前記測定値が前記認証値と一致しない場合、および、前記認証システムが前記対応するコードの前記起点をチェックした場合、前記認証システムが、(A)前記認証値を前記コードの新しいバージョンの測定値で更新し、(B)前記測定値が前記認証値と一致しないことおよび前記認証システムが前記コードの前記起点を認識したか否かを認証レベルに通知し、または(C)その両方を実行する、請求項15に記載のシステム。
  17. ンピュータ・プログラムであって、コンピュータに、
    請求項1からのいずれか1項に記載の方法を実行させるための前記コンピュータ・プログラム。
JP2013549909A 2011-01-19 2012-01-10 コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム Active JP5932837B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11151339 2011-01-19
EP11151339.6 2011-01-19
PCT/IB2012/050111 WO2012098478A1 (en) 2011-01-19 2012-01-10 Updating software

Publications (2)

Publication Number Publication Date
JP2014503101A JP2014503101A (ja) 2014-02-06
JP5932837B2 true JP5932837B2 (ja) 2016-06-08

Family

ID=46515210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013549909A Active JP5932837B2 (ja) 2011-01-19 2012-01-10 コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム

Country Status (7)

Country Link
US (4) US9317276B2 (ja)
JP (1) JP5932837B2 (ja)
KR (1) KR20130114672A (ja)
CN (1) CN103329093B (ja)
DE (1) DE112012000512T5 (ja)
GB (1) GB2501433B (ja)
WO (1) WO2012098478A1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130114672A (ko) 2011-01-19 2013-10-17 인터내셔널 비지네스 머신즈 코포레이션 소프트웨어를 업데이트하는 장치 및 방법
US9992024B2 (en) * 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US9141802B2 (en) * 2012-09-25 2015-09-22 Intel Corporation Computing device boot software authentication
US8997080B2 (en) * 2013-02-11 2015-03-31 Citrix Systems, Inc. System updates with personal virtual disks
FR3010553B1 (fr) * 2013-09-10 2015-09-04 Sagemcom Broadband Sas Procede de mise a jour d'un logiciel de demarrage d'un dispositif multiprocesseur
US9519466B2 (en) * 2013-12-20 2016-12-13 Oracle International Corporation Executable code for constrained computing environments
US10389709B2 (en) * 2014-02-24 2019-08-20 Amazon Technologies, Inc. Securing client-specified credentials at cryptographically attested resources
US10050787B1 (en) * 2014-03-25 2018-08-14 Amazon Technologies, Inc. Authentication objects with attestation
US10049202B1 (en) 2014-03-25 2018-08-14 Amazon Technologies, Inc. Strong authentication using authentication objects
KR101647487B1 (ko) * 2014-05-22 2016-08-10 소프트캠프(주) 패치파일 분석시스템과 분석방법
US9264419B1 (en) 2014-06-26 2016-02-16 Amazon Technologies, Inc. Two factor authentication with authentication objects
US10303879B1 (en) * 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
US9424067B2 (en) 2014-12-11 2016-08-23 Amazon Technologies, Inc. Managing virtual machine instances utilizing an offload device
US9886297B2 (en) * 2014-12-11 2018-02-06 Amazon Technologies, Inc. Systems and methods for loading a virtual machine monitor during a boot process
US9292332B1 (en) 2014-12-11 2016-03-22 Amazon Technologies, Inc. Live updates for virtual machine monitor
US9400674B2 (en) 2014-12-11 2016-07-26 Amazon Technologies, Inc. Managing virtual machine instances utilizing a virtual offload device
US9535798B1 (en) 2014-12-19 2017-01-03 Amazon Technologies, Inc. Systems and methods for maintaining virtual component checkpoints on an offload device
US10068092B2 (en) * 2015-01-21 2018-09-04 Microsoft Technology Licensing, Llc Upgrading a secure boot policy on a virtual machine
US10211985B1 (en) 2015-03-30 2019-02-19 Amazon Technologies, Inc. Validating using an offload device security component
US9667414B1 (en) 2015-03-30 2017-05-30 Amazon Technologies, Inc. Validating using an offload device security component
US10243739B1 (en) 2015-03-30 2019-03-26 Amazon Technologies, Inc. Validating using an offload device security component
CN106155887A (zh) * 2015-03-31 2016-11-23 展讯通信(天津)有限公司 一种自动匹配版本的应用程序测试方法及系统及移动终端
CN105468964B (zh) * 2015-12-04 2018-09-14 上海兆芯集成电路有限公司 计算机系统以及计算机系统操作方法
US9779248B1 (en) 2016-03-30 2017-10-03 Microsoft Technology Licensing, Llc Protection of secured boot secrets for operating system reboot
US10318737B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Secure booting of virtualization managers
US10803176B2 (en) * 2016-10-21 2020-10-13 Hewlett-Packard Development Company, L.P. Bios security
JP6741236B2 (ja) * 2016-11-21 2020-08-19 大日本印刷株式会社 情報処理装置
US10783235B1 (en) * 2017-05-04 2020-09-22 Amazon Technologies, Inc. Secure remote access of computing resources
US10339034B2 (en) * 2017-06-16 2019-07-02 Google Llc Dynamically generated device test pool for staged rollouts of software applications
CN108536486A (zh) * 2018-04-08 2018-09-14 苏州犀牛网络科技有限公司 Rn小程序的加载方法及装置
EP3598333B1 (en) * 2018-07-16 2023-01-18 Nokia Technologies Oy Electronic device update management
WO2020053469A1 (en) * 2018-09-12 2020-03-19 Nokia Solutions And Networks Oy Method and apparatus for automating software updating of devices
US10984108B2 (en) * 2018-10-05 2021-04-20 International Business Machines Corporation Trusted computing attestation of system validation state
CN109522038A (zh) * 2018-11-22 2019-03-26 凌云天博光电科技股份有限公司 一种cs架构的客户端升级方法及装置
US10915632B2 (en) 2018-11-27 2021-02-09 International Business Machines Corporation Handling of remote attestation and sealing during concurrent update
US11080039B2 (en) * 2019-11-25 2021-08-03 Micron Technology, Inc. Resilient software updates in secure storage devices
US10970064B1 (en) 2020-07-28 2021-04-06 Bank Of America Corporation Dynamically updating a software program to resolve errors
US11204777B1 (en) * 2020-11-30 2021-12-21 EMC IP Holding Company LLC Boot from SAN operation support on multi-pathing devices
US20240036902A1 (en) * 2022-07-26 2024-02-01 Microsoft Technology Licensing, Llc Accumulations of measurements for attestations

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325532A (en) 1992-09-25 1994-06-28 Compaq Computer Corporation Automatic development of operating system boot image
US6993648B2 (en) 2001-08-16 2006-01-31 Lenovo (Singapore) Pte. Ltd. Proving BIOS trust in a TCPA compliant system
US7711775B2 (en) * 2001-10-24 2010-05-04 Groove Networks, Inc. Method and apparatus for managing software component downloads and updates
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US7243347B2 (en) * 2002-06-21 2007-07-10 International Business Machines Corporation Method and system for maintaining firmware versions in a data processing system
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)
US20050132357A1 (en) 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
US7480804B2 (en) * 2004-04-29 2009-01-20 International Business Machines Corporation Method and system for hierarchical platform boot measurements in a trusted computing environment
US8006100B2 (en) * 2004-06-10 2011-08-23 Oracle America, Inc. Enhancing trusted platform module performance
US7559091B2 (en) * 2004-06-12 2009-07-07 Microsoft Corporation Software obfuscation
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US20060143600A1 (en) * 2004-12-29 2006-06-29 Andrew Cottrell Secure firmware update
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US7613921B2 (en) * 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US7590841B2 (en) * 2005-07-19 2009-09-15 Microsoft Corporation Automatic update of computer-readable components to support a trusted environment
US8296561B2 (en) 2006-07-03 2012-10-23 Panasonic Corporation Certifying device, verifying device, verifying system, computer program and integrated circuit
JP2008033751A (ja) * 2006-07-31 2008-02-14 Ziosoft Inc アップデート方法およびアップデートシステム
US7987351B2 (en) * 2006-10-06 2011-07-26 Broadcom Corporation Method and system for enhanced boot protection
US9086917B1 (en) * 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8060941B2 (en) * 2006-12-15 2011-11-15 International Business Machines Corporation Method and system to authenticate an application in a computing platform operating in trusted computing group (TCG) domain
US20080235754A1 (en) * 2007-03-19 2008-09-25 Wiseman Willard M Methods and apparatus for enforcing launch policies in processing systems
US20080244553A1 (en) * 2007-03-28 2008-10-02 Daryl Carvis Cromer System and Method for Securely Updating Firmware Devices by Using a Hypervisor
GB0707150D0 (en) * 2007-04-13 2007-05-23 Hewlett Packard Development Co Dynamic trust management
US9053323B2 (en) * 2007-04-13 2015-06-09 Hewlett-Packard Development Company, L.P. Trusted component update system and method
US9026771B2 (en) * 2007-04-27 2015-05-05 Hewlett-Packard Development Company, L.P. Secure computer system update
JP5249920B2 (ja) * 2007-07-05 2013-07-31 パナソニック株式会社 データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路
GB2450869B (en) * 2007-07-09 2012-04-25 Hewlett Packard Development Co Establishing a trust relationship between computing entities
WO2009044533A1 (ja) * 2007-10-05 2009-04-09 Panasonic Corporation セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8584229B2 (en) * 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
EP2248366A4 (en) * 2008-01-29 2014-04-09 Qualcomm Inc SECURE APPLICATION SIGNATURE
EA201070673A1 (ru) * 2008-01-30 2011-02-28 Панасоник Корпорэйшн Безопасная начальная загрузка с помощью способа необязательных компонентов
US8321931B2 (en) * 2008-03-31 2012-11-27 Intel Corporation Method and apparatus for sequential hypervisor invocation
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US8140835B2 (en) * 2008-05-09 2012-03-20 International Business Machines Corporation Updating a basic input/output system (‘BIOS’) boot block security module in compute nodes of a multinode computer
US9361089B2 (en) * 2008-07-22 2016-06-07 International Business Machines Corporation Secure patch updates of a virtual machine image in a virtualization data processing system
US20100082960A1 (en) 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
US20110173643A1 (en) * 2008-10-10 2011-07-14 Nicolson Kenneth Alexander USING TRANSIENT PCRs TO REALISE TRUST IN APPLICATION SPACE OF A SECURE PROCESSING SYSTEM
US8176336B1 (en) * 2008-12-19 2012-05-08 Emc Corporation Software trusted computing base
JP2010257180A (ja) 2009-04-24 2010-11-11 Nec Access Technica Ltd バージョン管理システム、装置、方法及びプログラム
EP2427845B1 (en) * 2009-05-04 2020-01-01 Nokia Solutions and Networks Oy Mechanism for updating software
US8200790B1 (en) * 2009-07-13 2012-06-12 Sprint Communications Company L.P. Dynamically identifying client applications on mobile devices
US8887144B1 (en) * 2009-09-04 2014-11-11 Amazon Technologies, Inc. Firmware updates during limited time period
US8296579B2 (en) * 2009-11-06 2012-10-23 Hewlett-Packard Development Company, L.P. System and method for updating a basic input/output system (BIOS)
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9317267B2 (en) * 2009-12-15 2016-04-19 International Business Machines Corporation Deployment and deployment planning as a service
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
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
US8631404B2 (en) * 2010-02-18 2014-01-14 Red Hat Israel, Ltd. Mechanism for downloading hypervisor updates via a virtual hardware device using existing virtual machine-host channels
KR101647567B1 (ko) * 2010-03-05 2016-08-10 인터디지탈 패튼 홀딩스, 인크 장치에 대한 보안을 제공하는 방법 및 장치
US20110238980A1 (en) * 2010-03-23 2011-09-29 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
EP2550621A4 (en) * 2010-03-25 2015-09-16 Virtustream Canada Holdings Inc SYSTEM AND METHOD FOR SAFE CLOUD COMPUTING
US8505003B2 (en) * 2010-04-28 2013-08-06 Novell, Inc. System and method for upgrading kernels in cloud computing environments
US8812871B2 (en) * 2010-05-27 2014-08-19 Cisco Technology, Inc. Method and apparatus for trusted execution in infrastructure as a service cloud environments
CN103124973B (zh) * 2010-09-22 2015-09-30 国际商业机器公司 证明引导过程期间交互式组件的使用
US8869264B2 (en) * 2010-10-01 2014-10-21 International Business Machines Corporation Attesting a component of a system during a boot process
US8819225B2 (en) * 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
US20120131334A1 (en) * 2010-11-18 2012-05-24 International Business Machines Corporation Method for Attesting a Plurality of Data Processing Systems
US20120151209A1 (en) * 2010-12-09 2012-06-14 Bae Systems National Security Solutions Inc. Multilevel security server framework
US8677115B2 (en) 2010-12-09 2014-03-18 Red Hat, Inc. Methods for verifying system integrity
US8566574B2 (en) * 2010-12-09 2013-10-22 International Business Machines Corporation Secure encrypted boot with simplified firmware update
US9021465B2 (en) * 2010-12-15 2015-04-28 Red Hat Israel, Ltd. Downloading guest software updates by a hypervisor
TW201241662A (en) * 2010-12-21 2012-10-16 Ibm Virtual machine validation
US9202062B2 (en) * 2010-12-21 2015-12-01 International Business Machines Corporation Virtual machine validation
US8578376B2 (en) * 2011-01-04 2013-11-05 International Business Machines Corporation Automatically and securely configuring and updating virtual machines
KR20130114672A (ko) 2011-01-19 2013-10-17 인터내셔널 비지네스 머신즈 코포레이션 소프트웨어를 업데이트하는 장치 및 방법
US20120254624A1 (en) * 2011-03-29 2012-10-04 Microsoft Corporation Three party attestation of untrusted software on a robot
US8875240B2 (en) * 2011-04-18 2014-10-28 Bank Of America Corporation Tenant data center for establishing a virtual machine in a cloud environment
EP2754041B1 (en) * 2011-09-07 2020-06-24 Imagine Communications Corp. Systems and methods for developing component-based computing applications
US8806579B1 (en) * 2011-10-12 2014-08-12 The Boeing Company Secure partitioning of devices connected to aircraft network data processing systems
WO2013101081A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Methods and apparatus for trusted boot optimization
US8875124B2 (en) * 2012-01-11 2014-10-28 Dell Products L.P. In-band hypervisor-managed firmware updates
US8850588B2 (en) * 2012-05-01 2014-09-30 Taasera, Inc. Systems and methods for providing mobile security based on dynamic attestation
GB2513826A (en) * 2012-06-29 2014-11-12 Ibm Trusted boot of a virtual machine
US9244743B1 (en) * 2012-08-01 2016-01-26 Amazon Technologies, Inc. Remotely interacting with a virtualized machine instance
US9176752B1 (en) * 2012-12-04 2015-11-03 Amazon Technologies, Inc. Hardware-based mechanisms for updating computer systems
US9386045B2 (en) * 2012-12-19 2016-07-05 Visa International Service Association Device communication based on device trustworthiness
WO2014165538A2 (en) * 2013-04-01 2014-10-09 Nebula, Inc. Update management for a distributed computing system
US20150089297A1 (en) * 2013-09-25 2015-03-26 International Business Machines Corporation Using Crowd Experiences for Software Problem Determination and Resolution
US9401954B2 (en) * 2013-11-06 2016-07-26 International Business Machines Corporation Scaling a trusted computing model in a globally distributed cloud environment
US9231946B2 (en) * 2014-02-07 2016-01-05 Oracle International Corporation Mobile cloud service architecture
US9563545B2 (en) * 2014-05-28 2017-02-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Autonomous propagation of system updates
US9965632B2 (en) * 2014-12-22 2018-05-08 Capital One Services, Llc System and methods for secure firmware validation
US9996374B2 (en) * 2015-06-16 2018-06-12 Assured Information Security, Inc. Deployment and installation of updates in a virtual environment
US9917687B2 (en) * 2015-10-12 2018-03-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices
US10181034B2 (en) * 2016-02-12 2019-01-15 Sophos Limited Virtual machine security
US10097563B2 (en) * 2016-05-04 2018-10-09 Gbs Laboratories, Llc Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices
US10552138B2 (en) * 2016-06-12 2020-02-04 Intel Corporation Technologies for secure software update using bundles and merkle signatures
US10185550B2 (en) * 2016-09-28 2019-01-22 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
US10069633B2 (en) * 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices

Also Published As

Publication number Publication date
GB2501433B (en) 2014-06-04
GB2501433A (en) 2013-10-23
GB201313795D0 (en) 2013-09-18
US20180246709A1 (en) 2018-08-30
US10108413B2 (en) 2018-10-23
CN103329093B (zh) 2017-09-12
US20140026124A1 (en) 2014-01-23
KR20130114672A (ko) 2013-10-17
WO2012098478A1 (en) 2012-07-26
CN103329093A (zh) 2013-09-25
US10620936B2 (en) 2020-04-14
US9317276B2 (en) 2016-04-19
US10007510B2 (en) 2018-06-26
US20160162285A1 (en) 2016-06-09
DE112012000512T5 (de) 2013-10-24
US20160162396A1 (en) 2016-06-09
JP2014503101A (ja) 2014-02-06

Similar Documents

Publication Publication Date Title
JP5932837B2 (ja) コードを更新および認証するための方法およびシステム、プログラムの完全性を試験する方法およびシステム
US9436827B2 (en) Attesting a component of a system during a boot process
US9910743B2 (en) Method, system and device for validating repair files and repairing corrupt software
US11714910B2 (en) Measuring integrity of computing system
US20180089414A1 (en) User trusted device for detecting a virtualized environment
US9098300B2 (en) Providing silicon integrated code for a system
US20080244257A1 (en) Server active management technology (AMT) assisted secure boot
US20220147619A1 (en) Systems and methods for hardening security systems using data randomization
US11907375B2 (en) System and method for signing and interlocking a boot information file to a host computing system
US20220308907A1 (en) Injection and execution of workloads into virtual machines
Cutler et al. Trusted disk loading in the Emulab network testbed
Palumbo The power of PowerShell: examples of how PowerShell scripts can supplement a patch management system to solve unusual problems
Lioy et al. Remote Attestation on light VM
Installation Network-Based Root of Trust for Installation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151005

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160428

R150 Certificate of patent or registration of utility model

Ref document number: 5932837

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150