(57)【特許請求の範囲】
【請求項１】
実行環境においてコードを更新するための方法であって、
前記実行環境が、新しいコードに関連付けられたアップデータを識別することと、
前記実行環境が、前記識別したアップデータの識別特徴を測定し、これを認証システムに利用可能とすることと、
前記アップデータが、前記新しいコードをインストールすることと、
前記アップデータが、前記新しいコードの識別特徴を測定し、これを認証システムに利用可能とすることと、  
前記アップデータが、コードを新しいバージョンに更新したことを前記認証システムに通知することと、
前記実行環境が、前記新しいコードの前記識別特徴が予め記憶された認証値と一致するか、または、前記アップデータの前記識別特徴が予め記憶された他の認証値と一致する場合に、前記認証システムから前記コードを新しいバージョンに更新したことに関してパスの伝達を受けることと、
を含む方法。
【請求項２】
前記実行環境が、前記新しいコードの前記識別特徴が前記認証値と一致せず、かつ、前記アップデータの前記識別特徴が前記他の認証値と一致しない場合に、前記認証システムから、前記コードを新しいバージョンに更新したことに関してフェイルの伝達を受けることを更に含む、請求項１に記載の方法。
【請求項３】
前記アップデータの識別特徴及び前記新しいコードの識別特徴が、セキュアなメモリに記憶されている、請求項１または２のいずれか１項に記載の方法。
【請求項４】
前記実行環境がハイパーバイザであり、前記コードが、前記ハイパーバイザ上の仮想マシンにおいて実行される仮想オペレーティング・システムである、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記アップデータの識別特徴及び前記新しいコードの識別特徴は各々レジスタに記憶され、前記各レジスタがトラステッド・プラットフォーム・モジュールに位置している、請求項１から４のいずれか１項に記載の方法。
【請求項６】
実行環境が、新しいコードが利用可能であること、および、更新が必要であることを判定することを更に含む、請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記認証システムが前記通知の直後に前記新しいコードの起点をチェックする、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記測定値が前記認証値と一致しない場合、および、前記認証システムが前記対応するコードの前記起点をチェックした場合、前記認証システムが、（Ａ）前記認証値を前記コードの新しいバージョンの測定値で更新し、（Ｂ）前記測定値が前記認証値と一致しないことおよび前記認証システムが前記コードの前記起点を認識したか否かを認証レベルに通知し、または（Ｃ）その両方を実行する、請求項７に記載の方法。
【請求項９】
実行環境においてコードを更新するためのシステムであって、
新しいコードに関連付けられたアップデータを識別するための識別手段と、
前記識別したアップデータの識別特徴を測定するための測定手段と、
前記アップデータの前記識別特徴を認証システムに利用可能とするための手段と、
前記新しいコードをインストールするためのインストール手段と、
前記新しいコードの識別特徴を測定し、これを前記認証システムに利用可能とするための測定手段と、
コードを新しいバージョンに更新したことを前記認証システムに通知するための通知手段と、
前記新しいコードの前記識別特徴が予め記憶された認証値と一致するか、または、前記アップデータの前記識別特徴が予め記憶された他の認証値と一致する場合に、前記認証システムから前記コードを新しいバージョンに更新したことに関してパスの伝達を受ける手段と、
を含むシステム。
【請求項１０】
前記新しいコードの前記識別特徴が前記認証値と一致せず、かつ、前記アップデータの前記識別特徴が前記他の認証値と一致しない場合に、前記認証システムから前記コードを新しいバージョンに更新したことに関してフェイルの伝達を受ける手段を更に含む、請求項９に記載のシステム。
【請求項１１】
前記アップデータの識別特徴及び前記新しいコードの識別特徴が、セキュアなメモリに記憶されている、請求項９または１０のいずれか１項に記載のシステム。
【請求項１２】
前記実行環境がハイパーバイザであり、前記コードが、前記ハイパーバイザ上の仮想マシンにおいて実行される仮想オペレーティング・システムである、請求項９から１１のいずれか１項に記載のシステム。
【請求項１３】
前記アップデータの識別特徴及び前記新しいコードの識別特徴は各々レジスタに記憶され、前記各レジスタがトラステッド・プラットフォーム・モジュールに位置している、請求項９から１２のいずれか１項に記載のシステム。
【請求項１４】
新しいコードが利用可能であること、および、更新が必要であることを判定する手段を更に含む、請求項９から１３のいずれか１項に記載のシステム。
【請求項１５】
前記システムは、前記認証システムを含み、前記認証システムが前記通知の直後に前記新しいコードの起点をチェックする、請求項９から１４のいずれか１項に記載のシステム。
【請求項１６】
前記測定値が前記認証値と一致しない場合、および、前記認証システムが前記対応するコードの前記起点をチェックした場合、前記認証システムが、（Ａ）前記認証値を前記コードの新しいバージョンの測定値で更新し、（Ｂ）前記測定値が前記認証値と一致しないことおよび前記認証システムが前記コードの前記起点を認識したか否かを認証レベルに通知し、または（Ｃ）その両方を実行する、請求項１５に記載のシステム。
【請求項１７】
コンピュータ・プログラムであって、コンピュータに、
請求項１から８のいずれか１項に記載の方法を実行させるための前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアを更新するための方法および装置に関する。具体的には、本発明は、トラステッド・ブート（trusted boot）およびリモート認証（remote attestation）プロセスに関する。トラステッド・コンピューティング、トラステッド・ブート、およびリモート認証は、本明細書において記載する場合、一般に、ＴＣＧ（Trusted Computing Group）と称する標準規格組織によって開発された技術規格に関する。
【背景技術】
【０００２】
トラステッド・ブートは、トラステッド・コンピューティング・システムにおいて信用の連鎖（chain of trust）をブートし確立するための手順である。例えばトラステッド・プラットフォーム・モジュール（ＴＰＭ）のようなセキュアなデバイスにおいて、ブートのコンポーネントを暗号によって測定し記憶することができる。各ブート・コンポーネントは、セキュアなデバイスにおいて次のブート・コンポーネントの特徴的な測定値を測定して記憶し、この測定値を取得した後、測定されたコンポーネントに制御が移る。いったんシステムが動作すると、例えば直接匿名認証（ＤＡＡ：Direct Anonymous Attestation）のようなリモート認証プロセスを用いてリモート・システムによる検査のために測定値を抽出することができる。測定値のシーケンスが信用の連鎖と記載される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
コンピュータ・システムは、新しいフィーチャおよびソフトウェア修正によって頻繁に更新される。更新では、信用の連鎖の一部を形成するブート・コンポーネントを変更する必要がある場合があり、かかる更新の後に、リモート認証によって測定値の変更が示される。すなわち信用の連鎖が破られる。多くのシステムおよび多くの更新があれば、これはもっと大きく困難な管理上の問題となる。測定値の変更は、少なくとも再測定の後に「明らかになる」だけである。再測定は、リブートの際に発生するか、または実行時に発生するだけである（どのようにシステムが構築されているかによって異なる）。
【０００４】
従って、当技術分野において、前述の問題に対処することが求められている。
【課題を解決するための手段】
【０００５】
本発明の第１の態様では、実行環境においてコードを更新するための方法が提供される。これは、新しいコードをインストールすることと、新しいコードの識別特徴を測定し、この識別特徴を認証システムに利用可能とすることと、コードを新しいバージョンに更新したことを認証システムに通知することと、を含み、これによって、新しいコードの識別特徴が予め記憶された認証値と一致しないことを認証システムが見出した場合、正当な不一致が発生した可能性があると認識する。
【０００６】
好適な実施形態において、コードはブート・プロセスで用いられるコンポーネントであるが、ブートされない信用の連鎖内の別のコンポーネントを指す場合もある。他の実施形態では、コードは、ファームウェア、ハイアーバイザ、仮想マシン、オペレーティング・システム、またはアプリケーションの全体または一部である。新しいコードは、あるコンポーネントの新しいバージョンまたは完全に新しいコンポーネントとすることができる。
【０００７】
予め記憶された認証値は、システム・コンポーネントの有効な識別特徴を試験するために認証システムが用いる基準である。予め記憶された認証値は、システム管理によって認証システムにセーブされるか、または何らかの初期化プロセスによって獲得され、これによって、コンポーネントの初期識別特徴は認証値として認証システムによって信用され用いられる。
【０００８】
この方法は、オペレーティング・システム・コンポーネントの新しいバージョンの存在を判定することを更に含み、これによって更新段階が自動的に実行されると有利である。
【０００９】
本発明は、認証システムに更新を通知するが、認証値は認証システムによってまたはシステム管理者によってのみ更新することができる。もっとセキュリティが低い実施形態に限って、認証値はハイパーバイザにより更新することができる。好適な実施形態では、ハイパーバイザは通知以外では認証システムに対するアクセスを有しない。認証システムは、通知の直後に認証を実行しなければならず、これによってコンポーネントの新しいバージョンの起点（origin）をチェックする。いったん新しいコンポーネントの起点を検証したら、以降のリブートの後に、記憶された認証値と一致しない場合であっても新しいコンポーネントのブート測定値を受容することができる。
【００１０】
既知のソフトウェア更新プロセスにハイパーバイザ通知段階を追加して、信用の連鎖をハイパーバイザで開始させる。好適な実施形態では、通知段階は、更新されたシステムが認証システムに「test me（試験しなさい）」メッセージを通知して、新しい測定が行われたことを認証システムに認識させることから成る。認証通知ステップは、認証されたシステムがリブートして異なる測定値に遭遇した場合に認証システムがパニックを起こすことを阻止する。
【００１１】
好適な実施形態によって、ハイパーバイザ等のトラステッド・コンポーネントは測定プロセスに参加し、別のコンポーネントを測定することができるので、認証システムはこの測定されたコンポーネントに信用を与えることができる。
【００１２】
有利には、コンポーネント（６１６．Ｎ）の新しいバージョン（６５１．Ｎ）をインストールすることが、コンポーネントの新しいバージョン（６５１．Ｎ）に関連付けられたアップデータ（６１２．Ｎ）を識別することと、識別したアップデータ（６１２．Ｎ）の識別特徴を測定することと、コンポーネントの新しいバージョン（６５１．Ｎ）をインストールすることと、アップデータの識別測定値（ＰＣＲ１７）を認証システム（６２０）に利用可能とすることと、を含み、これによって、認証システム（６２０）がアップデータ（６１２．Ｎ）の識別測定値（ＰＣＲ１７）を予め記憶された認証値（６２４．Ｎ）と照合して正当な更新を有効化することができる。明確さおよび例示のためにのみ、上の段落に図６からの参照番号を加えた。
【００１３】
認証システムが通知の直後に、ハイパーバイザにおいて見出されるコンポーネントの新しいバージョンの起点をチェックすると、更に有利である。好適な実施形態では、コンポーネントの起点のチェックは、更新をインストールしたコンポーネントをチェックすることを含むが、他の実施形態では、どこから更新が来たか、またはどのようにそれがインストールされたか等の他のチェックを行うことも可能である。更に、測定値が認証値と一致せず、認証システムが対応するコンポーネントの起点をチェックした場合、認証値をコンポーネントの新しいバージョンの測定値で更新すること、および、測定値が認証値と一致しないことおよび認証システムがコンポーネントの起点を認識したか否かを認証レベルに通知することの1つ以上を実行する。
【００１４】
本発明の第２の態様では、ハイパーバイザにおいてオペレーティング・システムを更新および認証するための方法が提供される。これは、オペレーティング・システムのコンポーネントの新しいバージョンを判定することと、新しいコンポーネント・バージョンをインストールすることと、コンポーネントの識別特徴を測定し、これを認証システムに利用可能とすることと、コンポーネントを新しいバージョンに更新したことを認証システムに通知することと、を含み、これによって、新しいコンポーネントの識別特徴が予め記憶された認証値と一致しないことを認証システムが見出した場合、正当な不一致が発生した可能性があると認識する。
【００１５】
本発明の第３の態様では、プログラムの完全性を試験する方法が提供される。これは、プログラムのインストール・プロセスによって記憶したコンポーネント測定値を抽出することと、試験システムによって記憶した基準測定値を用いてコンポーネント測定値を試験し、それが一致しない場合に測定値をフェイルとすることと、フェイルとなったコンポーネント測定値を更に試験し、これが試験システムに既知の別のコンポーネントを起点としていない場合に再びフェイルとすることと、コンポーネント測定値が試験にパスした場合にパスを指示し、測定値が試験のいずれにもパスしない場合にフェイルを指示することと、
を含む。
【００１６】
本発明の第４の態様は請求項１１に記載されているように提供される。
【００１７】
本発明の第５の態様は請求項１９に記載されているように提供される。
【００１８】
本発明の第６の態様は請求項２０に記載されているように提供される。
【００１９】
更に別の態様から見ると、本発明は、実行環境においてコードを更新するためのコンピュータ・プログラムを提供する。このコンピュータ・プログラムは、処理回路によって読み取り可能であり、本発明のステップを実行するための方法を実行するための処理回路によって実行される命令を記憶するコンピュータ読み取り可能記憶媒体を含む。
【００２０】
更に別の態様から見ると、本発明は、コンピュータ読み取り可能媒体上に記憶され、デジタル・コンピュータの内部メモリにロードすることができるコンピュータ・プログラムを提供する。これは、このプログラムがコンピュータ上で実行された場合に本発明のステップを実行するためのソフトウェア・コード部分を含む。
【００２１】
本明細書が提案する解決策では、システムが、仮想ＴＰＭを用いた仮想化システムについて次のトラステッド・ブートで予想されるものを認証側に通知することができる。
【００２２】
これより、以下の図面に示すような好適な実施形態を参照して、一例としてのみ本発明について記載する。
【図面の簡単な説明】
【００２３】
【図１】従来技術による、本発明の好適な実施形態を実施可能である従来技術のトラステッド・コンピューティング・システムの概略展開図である。
【図２】従来技術による、本発明の好適な実施形態を実施可能である従来技術のトラステッド・コンピューティング・システムの概略プロセス図である。
【図３】従来技術による、本発明の好適な実施形態を実施可能である従来技術のトラステッド・コンピューティング・システムを認証するための概略プロセス図である。
【図４】従来技術による、本発明の好適な実施形態を実施可能である従来技術のトラステッド・コンピューティング・システムを更新するための概略プロセス図である。
【図５】一実施形態の更新プロセスと、従来技術による、本発明の好適な実施形態を実施可能である従来技術の更新プロセスとの同等なステップを示す比較図である。
【図６】本発明の好適な実施形態によるシステムの概略展開図である。
【図７】本発明の好適な実施形態による更新プロセスの概略プロセス図である。
【図８】本発明の好適な実施形態による新しいコンポーネントをロードするプロセスのプロセス図である。
【図９】本発明の好適な実施形態による認証プロセスのプロセス図である。
【図１０】物理的な実施形態のシステムの概略展開図である。
【発明を実施するための形態】
【００２４】
図１は、従来技術のトラステッド・システムの簡略化した展開図である。これは、プラットフォーム１０、トラステッド・プラットフォーム・モジュール２０（ＴＰＭ２０）、および認証システム３０を含む。プラットフォーム１０は、プート・プロセス２００（以下に図２を参照して説明する）、更新プロセス１２、およびブート・コンポーネント１５．１〜１５Ｎ（ここおよび本明細書中の他の箇所では、文字Ｎは特定の数ではなくある１つの数を表すために用いる）を含む。ブート・コンポーネント１５はブート・コンポーネント１５．１〜１５Ｎを含む。ＴＰＭ２０は、プラットフォーム・コンフィギュレーション・レジスタ２２．１〜２２Ｎを含む。ＴＰＭ２０は、プラットフォーム１０とは別個に展開されているものとして示すが、これはプラットフォーム１０の一部とすることも可能である。プラットフォーム・コンフィギュレーション・レジスタＰＣＲはレジスタとも称する。認証システム３０は、認証プロセス３００および認証値３４．１〜３４Ｎを含む。認証システム３０はプラットフォームとは別個に展開されているものとして示す。
【００２５】
図２は、従来技術のブート・プロセス２００の簡略化したプロセス図であり、以下のように、多数のブート・コンポーネントを順次実行するためのステップ２０２〜２１２のシーケンスを含む。
【００２６】
ステップ２０２は、第１のブート・コンポーネントを実行するためのものである。
【００２７】
ステップ２０４は、次のブート・コンポーネントの識別特徴を測定し、その測定値をレジスタ（例えば２２．１）に記憶するためのものである。
【００２８】
ステップ２０６は、次のコンポーネントを実行するためのものである。
【００２９】
ステップ２０８は、以降のブート・コンポーネントがあればその識別特徴を測定し、その測定値を以降のレジスタ（例えば２２．２）に記憶するためのものである。
【００３０】
ステップ２１０は、あらゆる以降のブート・コンポーネントについてステップ２０６および２０８を繰り返すブート・サイクルを表す。
【００３１】
ステップ２１２は、もはやブート・コンポーネントが残っていない場合にプロセスを終了する。
【００３２】
好適な実施形態において、ハイパーバイザが初期ステップ（従来技術における同等のステップ２００、２０２、２０４）を実行するので、測定および実行はハイパーバイザにおいて開始する。例えばハイパーバイザはハイパーコール「H-Measure」を供給し、これが次のブート・コンポーネントと同様に何らかのコードを測定し実行する。別の例では、プラットフォーム・ファームウェアが初期ステップを実行し、以降のブート・コンポーネントをハイパーバイザにおいて開始させることができる。
【００３３】
図３は、従来技術の認証プロセス３００の簡略化したプロセス図であり、以下に記載するように論理ステップ３０２から３０８のシーケンスを含む。認証プロセスは、トラステッド・プラットフォームがブートした後に実行する。
【００３４】
ステップ３０２は、レジスタに記憶された測定値を抽出するためのものである。
【００３５】
ステップ３０４は、認証システム３０により記憶された認証値３４．１〜３４Ｎを測定値と比較するためのものである。
【００３６】
ステップ３０６は、１）値が測定値と一致した場合にパス（pass）を、または２）値と測定値とが不一致である場合にフェイル（fail）を示すためのものである。
【００３７】
ステップ３０８は、プロセスの終了である。従来技術の認証プロセスは認証値が正しいことを信用しており、従来技術において認証値は管理者によって更新される。図４は、従来技術の更新プロセス４００の簡略化したプロセス図であり、ステップ４０２〜４０６のシーケンスを含む。
【００３８】
ステップ４０２は、コンポーネントの新しいバージョンでコンポーネントを更新する必要があることを判定するためのものである。
【００３９】
ステップ４０４は、古いコンポーネントを除去し、新しいコンポーネントをロードすることによってコンポーネントを更新するためのものである。
【００４０】
ステップ４０６は、プロセスの終了である。このプロセスでは、コンポーネントがブート・コンポーネントであるという識別はなく、従って更新によって認証システムが保持する認証値に影響があることを知る方法はない。
【００４１】
図５は、従来技術のトラステッド・システムの結果および好適な実施形態のトラステッド・システムの結果の比較を示す。
【００４２】
完全な従来技術の更新および認証は、以下の組み合わせプロセスのシーケンスを含む。すなわち、２００、３００、４００、再び３００である。ブート・プロセス２００は、ブート・コンポーネントをロードし、各コンポーネントを順番に測定する。測定値はＴＰＭ２０に記憶される。認証プロセス３００は、測定値を検索し、記憶された認証値に対して試験し、この値および測定値が一致するのでパスを伝達する。更新プロセス４００は、１つ以上のブート・コンポーネントを含む１つ以上のコンポーネントの更新を実行し、ここでＴＰＭ測定値を変更する。認証プロセス３００を更に実行するとフェイルが示される。これは、認証値に更新が行われておらず、認証値およびＴＰＭ測定値が一致しないからである。
【００４３】
好適な実施形態の更新および認証プロセスは、以下の組み合わせプロセス・ステップのシーケンスを含む。すなわち、６０６、６２２、７００、再び６２２である。ブート・プロセス６０６は、ブート・コンポーネントをロードする。各ブート・コンポーネントを測定し、測定値をＴＰＭに記憶する。実施形態の認証プロセス６２２は、測定値を検索し、記憶された認証値に対して試験し、この値および測定値が一致するのでパスを伝達する。実施形態の更新プロセス７００は、１つ以上のブート・コンポーネントの更新を実行し、ＴＰＭにおける測定値を変更する。好適な実施形態では、更新が実行されたことを認証システムに通知する。認証プロセス６２２は、更新コンポーネントの起点をチェックするのでパスを示す。
【００４４】
別の実施形態では、更新の間に確立された測定値によって認証値を更新する。
【００４５】
図６は、好適な実施形態のトラステッド・コンピューティング・システムの概略的なコンポーネント図を示す。トラステッド・コンピューティング・システムは、プラットフォーム６００、認証システム６２０、および更新レジストリ６５０を含む。
【００４６】
更新レジストリ６５０は、オペレーティング・システムおよびアプリケーションの個々のコンポーネントの最新バージョンを保持するための記憶リソースおよびインデックスであり、オペレーティング・システムまたはアプリケーションのインスタンスを更新する際に用いられる。図において、更新レジストリは更新６５１．１から６５１Ｎを含む。オペレーティング・システムのコンポーネント・バージョン・ナンバーまたは日付に対して更新レジストリ内のコンポーネント・バージョン・ナンバーまたは日付をスキャンすると、どのコンポーネントが更新を必要としているかが明らかになる。
【００４７】
動作において、プラットフォーム６００は、仮想オペレーティング・システムを実行し管理するためのハイパーバイザ６０４を有するハードウェア・プラットフォームである。プラットフォームの一例はIBM Power Systemである。動作において、ハイパーバイザ６０４は、ブート・プロセス６０６、更新プロセス７００、更新６１２．１から６１２Ｎ、および仮想マシン・ホスト環境を含む。本例のハイパーバイザは、単一のオペレーティング・システム６１４のためにホスト環境において単一の仮想マシン６０５を生成するが、好適な実施形態では、２つ以上の仮想マシン上で２つ以上のオペレーティング・システムを更新可能であることが予想される。各仮想マシンは対応する仮想ＴＰＭを有する。ハイパーバイザ上で実行する各仮想マシンは認証システムによって信用される。信用は、実ＴＰＭによって、または現在の信用され署名された更新および他のセキュリティ測定によって得られる。
【００４８】
仮想トラステッド・プラットフォーム・モジュール６１０は、複数のレジスタ（ＰＣＲ）ＰＣＲ１、２、３、．．．１７、１８、．．．Ｎを含む。各ＰＣＲは測定値または値を記憶することができる。
【００４９】
アップデータ６１２．１〜６１２Ｎは、一例としての別個のコンポーネントのセットを含み、その各々は各ブート・コンポーネント（６１６．１〜６１６Ｎ）に関連付けられ、各々は各更新（６５１．１〜６５１Ｎ）によってオペレーティング・システムを更新することができる。例えば、ブート・コンポーネント６１６．３は更新６５１．３を用いてアップデータ６１２．３によって更新することができる等であり、ブート・コンポーネント６１６Ｎではアップデータ６１２Ｎおよび更新６５１Ｎが用いられる。各アップデータは、対応する更新およびブート・コンポーネントに対するリンクを含む。各アップデータは、ハイパーバイザによって測定され次いで実行されることが意図されている。測定値は第１の合意レジスタ（agreed register）（例えばＰＣＲ１７）に記憶される。実行中、アップデータはインストールされている新しいコンポーネントを測定し、第２の合意レジスタ（例えばＰＣＲ１８）を更新する。アップデータは、単に何かをコピーしているか、またはその場でコンポーネントを生成している場合があることに留意すべきである。例えば、アップデータ「bosboot」は、多くのコンフィギュレーション・ファイルおよびシステム・データからその場で新しいオペレーティング・システム・コンポーネント・イメージを発生する。
【００５０】
好適な実施形態において、アップデータは、オペレーティング・システムが更新されたことを認証システムに直接通知するように構成されている。これは、アップデータが認証システムと直接接触しているかまたは接触するためにハイパーバイザ上で何らかの共通プロセスを取得していることを意味し得る。ハイパーバイザによってロードされた場合、仮想ＯＳシステム６１４（例えばＩＢＭ  ＡＩＸ＊）が含むブート・コンポーネント６１６．１〜６１６Ｎは、ブート・プロセスの一部としてロードされ、アプリケーション、データ、およびインタフェースを有する機能する仮想オペレーティング・システムを提供する。ブート・プロセスの一部でない他のオペレーティング・システム・コンポーネントは図示していない。
【００５１】
ブート・プロセス６００は、従来技術のブート・プロセス２０と同一のプロセスを含む。
【００５２】
認証システム６２０は、認証プロセス６２２および認証値６２４．１〜６２４Ｎを含む。認証システム６２０およびハイパーバイザ６０４は合意（agreement）を有し、これに基づいてアップデータの測定値および変更されたコンポーネントの署名（識別特徴とも称する）を記録するためにレジスタ（ＰＣＲ１．．．Ｎ）を用いる。好適な実施形態では、これらの合意レジスタを第１の合意レジスタおよび第２の合意レジスタと称する。例えば、この例において第１および第２の合意レジスタはＰＣＲ１７およびＰＣＲ１８である。
【００５３】
認証システムは、ＴＰＭにおけるレジスタを認証する必要がある。全てのレジスタ値の転送には、デジタル署名および他のセキュリティ機構を用いて信用を維持する認証プロトコルが用いられる。認証システムは、同意レジスタ（例えば第１および第２の同意レジスタＰＣＲ１７および１８）がセットされ、現在のトラステッド・レジスタ（例えばＰＣＲ１、２、および３）のリブートおよび以降の変更を準備することが可能であるか否かを検出することができる。
【００５４】
認証システムは、第１の合意レジスタ（例えばＰＣＲ１７）を読み取って、アップデータがトラステッド・アップデータであることを判定する。この判定は、既知のトラステッド・アップデータについて測定値マスター・リストを調べ、レジスタに対する全ての変更についてメタデータで更新されたトラステッド・ブート・イベントを調べることによって行われる。第１の合意レジスタが信用された値を含むことが認証システムによって見出されると、第２の合意レジスタも、更新で検出されたアップデータと関連付けられたブート・レジスタを次に比較する場合に用いる信用に値する値を含むことが想定される。
【００５５】
図７を参照すると、ハイパーバイザ更新プロセス７００はプロセス論理ステップ７０２から７１０を含む。
【００５６】
ステップ７０２は、あるコンポーネントが利用可能な更新を有することを、もっと最新のコンポーネントについて更新レジストリ６５０をスキャンすることで判定するためのものである。例えば、仮想ＯＳシステム６１４のブート・コンポーネント６１６．３は、ＡＩＸブート・イメージ（ＡＩＸブート・イメージ１）のバージョン１を含むが、更新レジストリ６５０における更新６５１．３には、ＡＩＸブート・イメージ（ＡＩＸブート・イメージ２）のバージョン２がロードされている。これは好適であるが、他の実施形態において、異なる機構を用いて更新する時を決定することも可能である。
【００５７】
ステップ７０４は、関連付けられたアップデータ（例えばアップデータ６１２．３）を活性化することによって新しいブート・コンポーネントをロードするためのものであり、ここで関連付けられたアップデータはブート・コンポーネントを更新するように構成されている。すなわち、関連付けられたアップデータは新しいブート・コンポーネントにアクセスして、古いブート・コンポーネントの上にまたはその代わりにこの新しいブート・コンポーネントをインストールする。上述の説明はブートをロードするステップの基本的な動作であり、ブートをロードするステップの更に詳細な動作については以下の図８を参照して説明する。
【００５８】
ステップ７０６は、新しいブート・コンポーネントを仮想オペレーティング・システムにロードした後にこれを測定して、新しい測定値が仮想オペレーティング・システム内の位置で新しいブート・コンポーネントを一意に識別するようにするものである。新しい測定値はトラステッド・プラットフォーム・モジュールにおける特定のレジスタに追加される。好適な実施形態では、認証システム６２０は、特定のレジスタが新しい測定値を保持しており古いものを保持していないことを調べて理解する。
【００５９】
ステップ７０８は、ブート・コンポーネントを更新したことを認証システム６２０に通知するためのものである。
【００６０】
ステップ７１０は更新プロセス７００の終了を伝達する。
【００６１】
本発明の簡単な実施形態として新しいブート・コンポーネントをロードするステップ７０４を上述したが、本発明の好適な実施形態は、信頼レベルを上げるために更に別の処理を用いる。以下に記載し図８に示すような新しいブート・コンポーネントのロード７０４は、本発明の好適な実施形態であり、プロセス・ステップ８０２から８１２を含む。
【００６２】
ステップ８０２は、ブート・コンポーネントに関連付けられた更新コンポーネントを識別するためのものである。以下の例では、bosbootと称するプログラムを呼び出して、ＡＩＸブート・イメージ１をＡＩＸブート・イメージ２によって書き換える。
【００６３】
ステップ８０４は、識別したアップデータをオペレーティング・システムにロードするためのものである。
【００６４】
ステップ８０６は、アップデータ・コンポーネントを測定し、その測定値を第１の合意レジスタに追加するためのものである。以下の例では、ハイパーコールと称するプログラムがbosbootを測定し、ＴＰＭ内の第１の合意レジスタ（例えばＰＣＲ１７）を拡張する。
【００６５】
ステップ８０８は、アップデータを呼び出して更新コンポーネントをインストールするためのものである。以下の例では、bosbootが新しいブート・イメージを書き込む。
【００６６】
ステップ８１０は、新しいブート・コンポーネントを測定し、その測定値を第２合意レジスタに追加するためのものである。
【００６７】
ステップ８１２は、新しいブート・コンポーネント・ロード・プロセス７０４の終了である。
【００６８】
図９を参照すると、好適な実施形態に従った認証プロセス６２２の論理プロセス・ステップ９０２から９１０が記載されている。認証プロセスは、トラステッド・プラットフォームがブートした後に実行するが、トラステッド・プラットフォームとは独立している。
【００６９】
ステップ９０２は、レジスタに記憶された測定値を抽出するためのものである。
【００７０】
ステップ９０４は、認証システム６２０により記憶された認証値６２４．１〜６２４Ｎと測定値を比較するためのものである。
【００７１】
ステップ９０６は、値が測定値と一致した場合にパスを示すためのものである。
【００７２】
ステップ９０８は、ステップ９０６からの不一致ブート測定値が既知のアップデータと一致した場合にパスを示すためのものである。
【００７３】
ステップ９１０は、ステップ９０８から９１０の後に不一致ブート測定値があった場合にフェイルを示すためのものである。
【００７４】
ステップ９１２はこのプロセスの終了を示すためのものである。
【００７５】
実施例
好適な実施形態の動作の一例は、単一の仮想ＡＩＸシステムによってIBM Power Hypervisor（ＰＨＹＰ）をホストするIBM Power*システムを含む。ＡＩＸシステムは、仮想ＴＰＭデバイスを用い、トラステッド・ブート機能性を組み込んでいる。このシステムは別個の認証システムによって監視され認証される。認証されると、以下のＰＣＲ測定値が戻される。ここでＰＣＲ１、ＰＣＲ２、ＰＣＲ３はＴＰＭ内のレジスタである。
【００７６】
ＰＣＲ１＝オープン−ファームウェア
ＰＣＲ２＝ＡＩＸブート・イメージ
ＰＣＲ３＝ＡＩＸトラステッド実行データベース
【００７７】
認証システムは、これらの測定値を信用されるものとして見なし、認証を介して戻す場合セキュリティ問題のフラグを立てない。ＡＩＸブート・イメージを変更し、認証システムにこの更新を通知することを可能とするため、以下のフィーチャも存在する。
【００７８】
ＰＨＹＰは、新しい方法（ハイパーコールと称され、具体的にはH_Measure）を有するように変更される。H_Measureは、例えばアドレスおよび長さのような、測定および実行の対象となるものを記述するパラメータを取得する。結果として得られた測定値を、例えばＰＣＲ１７のようなＴＰＭの特定のレジスタに配置する。特定のブート・レジスタは重要でなく、絶対アドレス指定レジスタまたは間接アドレス指定レジスタとすることができる。重要なのは、認証システムが、どこを調べるべきであるかを理解することである。ＰＨＹＰは、渡されたアドレスにおいて制御をＡＩＸに戻す。重要な相違は、まずハイパーコールを用いてコンポーネントを測定し、次いで同一のコンポーネントを実行することである。これによって測定したものを実行する。
【００７９】
動作するためには、ハイパーバイザも信用されなければならない。従来技術では、ハイパーバイザの信用は、IBM Power SystemがＰＨＹＰコードを更新する極めて限定的な方法を有することによって得られ、IBM Power Systemが署名した更新だけをインストールすることができる。本実施形態では、IBM Power Systemは実ＴＰＭデバイスを有し、そのＰＨＹＰは実ＴＰＭ内に測定される。深い認証（deep attestation）として知られる技法を用いて、仮想ＡＩＸシステムによって実ＴＰＭ測定値を検索することができる。
【００８０】
本明細書においてアップデータとも称される規定のＡＩＸプログラム・セットは、トラステッド・ブートのコンポーネントを変更することができる。この例では、bosbootはＡＩＸブート・イメージを合法的に更新することができる唯一のアップデータ・プログラムとして定義される。この技法では、bosbootを信用し得ること、従ってbosbootが構築された場合にbosbootのデジタル署名を取得し公表することが必要である。H_Measureがbosbootの測定に成功するために、bosbootは、測定の実行のために連続的なメモリ・ピース内にロードすることができる単一の静的コード・ピースでなければならない。bosbootが測定可能であることは重要である。他のセキュリティ基準が利用可能であり、非静的プログラムが容易に失敗する可能性がないことが保証される場合には、bosbootは静的である必要はない。
【００８１】
この例では、ＡＩＸブート・イメージはＡＩＸブート・イメージ２に変更され、認証システムに通知して、不必要なセキュリティ侵害を防ぐようになっている。動作は以下のように行われる。
【００８２】
１．ブート・イメージを書き換えるためにbosboot（アップデータ）を呼び出す（ステップ７０２）。
【００８３】
２．ＡＩＸカーネルがbosbootをメモリにロードし（ステップ７０４）、H_Measureをコールする。
【００８４】
３．ＰＨＹＰがbosbootを測定し（ステップ７０６）、ＴＰＭ内でＰＣＲを拡張する。
【００８５】
４．実行がハイパーバイザによってbosbootに渡され、bosbootは新しいブート・イメージを書き込んでＡＩＸブート・イメージ２の測定値によってＰＣＲ１８を拡張する。ここでもＰＣＲ１７と同様に、ＰＣＲ１８が特別な意味を有することを認証システムが知っている限り、どのレジスタを用いるかは重要でない。
【００８６】
５．認証システムは、再認証の必要があり、これ以上の情報を交換する必要がないことを通知される（ステップ７０８）。
【００８７】
認証システムがシステムを認証したので、以下の値を戻す（ステップ９０２）。
【００８８】
ＰＣＲ１＝オープン・ファームウェア
ＰＣＲ２＝ＡＩＸブート・イメージ１
ＰＣＲ３＝ＡＩＸトラステッド実行データベース１
ＰＣＲ１７＝bosboot
ＰＣＲ１８＝ＡＩＸブート・イメージ２
【００８９】
認証システムは、最新の認証の後にＰＣＲ１７が変更されたことを認識し、これが認証システムにおけるアクションをトリガする（ステップ９０８）。まずＰＣＲ１７の値をチェックし、合法的な、ＩＢＭが公表したbosbootが呼び出されたことを確認し、従ってＰＣＲ１８が新しいＡＩＸブート・イメージであることを知る。これで認証システムは新しいトラステッド・ブートを完了したので、認証システムは、ＰＣＲ１によって報告された新しい値がトラステッドbosbootから来たものであると知ることができ、アクションは必要でない。
【００９０】
実施形態
ハイパーバイザを用いて仮想マシン動作環境を管理する好適な実施形態について上述したが、これに含まれる他の実施形態では、好適な実施形態から何らかの点で単一のフィーチャが逸脱する場合がある。
【００９１】
好適な実施形態から大きく逸脱する一実施形態は、図１０に示すような、仮想化なしの実施形態すなわち非仮想実施形態を考慮に入れる。この実施形態は、プラットフォーム１０００、認証システム１０２０、および更新レジストリ１０５０を含む。プラットフォーム１０００は、シリコンで設計され製造されている。好適な実施形態と同様に、ＴＰＭ１０１０は必須の部分ではなく、測定値および認証のようなものを保持する他のいくつかのセキュアなデバイス／記憶装置を用いることができる。
【００９２】
更新レジストリ１０５０は、オペレーティング・システムおよびアプリケーションの個々のコンポーネントの最新バージョンを保持するための記憶リソースおよびインデックスであり、オペレーティング・システムまたはアプリケーションのインスタンスを更新する際に用いられる。図において、更新レジストリは更新１０５１．１〜１０５１Ｎを含む。オペレーティング・システムのコンポーネント・バージョン・ナンバーまたは日付に対して更新レジストリ内のコンポーネント・バージョン・ナンバーまたは日付をスキャンすると、どのコンポーネントが更新を必要としているかが明らかになる。
【００９３】
認証システム１０２０は、認証プロセス１０２２および認証値１０２４．１〜１０２４Ｎを含む。オペレーティング・システムが物理マシン上で実行している実オペレーティング・システムであるという相違を除けば、認証プロセス１０２２および認証値１０２４．１．．．１０２４Ｎは図６に示したものと同様である。
【００９４】
動作において、プラットフォーム１０００はハードウェア・プラットフォームであり、ブート・プロセス１００６、更新プロセス１７００、アップデータ１０１２．１〜１０１２Ｎ、ＴＰＭ１０１０、およびオペレーティング・システム１０１４を含む。好適な実施形態と同様、ＴＰＭ１０１０は必須の部分ではなく、測定値および認証のようなものを保持する他の何らかのセキュアなデバイス／記憶装置を用いることができる。
【００９５】
非仮想環境において、ＴＰＭ１０１０は、測定値を保持するために使用可能な特別なレジスタ（ＳＲ１．．．ＳＲＮ）を含む。ＳＲは、それらに対する書き込みが実際は、古い値と組み合わされた後に強いハッシュ・アルゴリズムを用いてハッシュされた新しい値の書き込みであるという点で、ＰＣＲのようにふるまう。プロセッサは、これらの特別なレジスタ（ＳＲ）を更新可能とする命令を有する。プロセッサは、測定（Measure）命令を有するように変更される。この命令は、ＳＲのための識別子、メモリ・アドレス、および長さを取得する。これは、アドレスにおけるデータ（および長さまでの全バイト）を測定し、次いで測定値を指定されたＳＲに記憶する。プロセッサは実行をアドレスに移す。
【００９６】
非仮想の実施形態では、プラットフォーム１０００は何らかのコードを更新する必要があり、更新を実行するための何らかのコードに関連付けられた更新コードがある。関連付けられたコードはメモリにロードされ、次いで測定命令を用いて関連付けられたコードを測定し実行する。測定値は第１の合意レジスタに配置される。実行された関連コードはここで何らかのコードをインストールすることができる。これはおそらく単にディスクにデータを書き込むことである。書き込みの前、または各書き込みの前（何らかの書き込みｎバイト限定がある場合）、測定値を取得し、第２の合意レジスタに書き込む（ＳＲおよびこれは第２の合意レジスタＰＣＲ１８の更新と相関する）。
【００９７】
非仮想の実施形態では、プラットフォーム１０００は、更新が発生したことを認証システム１０２０に通知しなければならない。好適な実施形態においてと同様、認証システム１０２０は認証し、暗号技法を用いてＳＲの値を転送して信用を維持する。認証プロセス１０２２は好適な実施形態と同様である。
【００９８】
本発明の記載した実施形態の方法の全てまたは一部は、この方法のステップを実行するように構成された論理要素を含む１つの論理装置または複数の論理装置において適切にかつ有用に具現化可能であること、および、かかる論理要素はハードウェア・コンポーネント、ソフトウェア・コンポーネント、ファームウェア・コンポーネント、またはそれらの組み合わせを含むことができることは、当業者には明らかであろう。
【００９９】
本発明の記載した実施形態に従った論理構成の全てまたは一部は、この方法のステップを実行するための論理要素を含む論理装置において適切に具現化可能であること、および、かかる論理要素は、例えばプログラマブル論理アレイまたは特定用途向け集積回路における論理ゲート等のコンポーネントを含むことができることは、当業者には等しく明らかであろう。かかる論理構成は、更に、例えば固定または送信可能キャリア媒体を用いて記憶及び送信可能である仮想ハードウェア記述言語を用いたアレイまたは回路において論理構造を一時的または永久的に確立するためのイネーブル要素（enabling element）において具現化することができる。
【０１００】
また、上述した方法および構成は、１つ以上のプロセッサ（図には示していない）上で動作するソフトウェアにおいて全体的または部分的に適切に実行可能であること、ならびに、このソフトウェアは、磁気または光ディスク等のいずれかの適切なデータ・キャリア（これも図には示していない）上で担持される１つ以上のコンピュータ・プログラム要素の形態で提供可能であることは認められよう。同様に、データ伝送のためのチャネルは、全ての記述の記憶媒体および有線または無線信号担持媒体等の信号担持媒体を含むことができる。
【０１０１】
本発明は更に、コンピュータ・システムと共に用いられるコンピュータ・プログラムとして適切に具現化することができる。かかる実施は一連のコンピュータ読み取り可能命令を含むことができ、これは、例えばディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、もしくはハード・ディスクのようなコンピュータ読み取り可能媒体等のタンジブルな媒体上に固定されるか、または、モデムもしくは他のインタフェース・デバイスを用いて、限定ではないが光もしくはアナログ通信ラインを含むタンジブルな媒体上で、または限定ではないがマイクロ波、赤外線、または他の伝送技法を含む無線技法を用いてインタンジブルに送信可能である。一連のコンピュータ読み取り可能命令は、本明細書において前述した機能性の全てまたは一部を具現化する。
【０１０２】
かかるコンピュータ読み取り可能命令は、多くのコンピュータ・アーキテクチャまたはオペレーティング・システムと共に用いられる多数のプログラミング言語で記述可能であることは、当業者には認められよう。更に、かかる命令は、限定ではないが半導体、磁気、もしくは光を含む現在もしくは将来のいずれかのメモリ技術を用いて記憶するか、または限定ではないが光、赤外線、もしくはマイクロ波を含む現在もしくは将来のいずれかの通信技術を用いて送信することができる。かかるコンピュータ・プログラムは、例えば収縮包装されたソフトウェアのような印刷文書もしくは電子文書が付属した着脱可能媒体として分配し、例えばシステムＲＯＭもしくは固定ディスク上にコンピュータ・システムによって予めロードし、または例えばインターネットもしくはワールド・ワイド・ウェブのようなネットワーク上でサーバもしくは電子掲示板から分配することが考えられる。
【０１０３】
代替案において、本発明の好適な実施形態は、コンピュータ・プログラム・コードを展開するステップを含む、サービスを展開するコンピュータ実施方法の形態で実現することができる。このコードは、コンピュータ・インフラストラクチャに展開されてそこで実行されると、コンピュータ・システムにこの方法のステップを全て実行させる。
【０１０４】
別の代替案において、本発明の記載した実施形態は、機能データを有するデータ・キャリアの形態で実現することができる。前記機能データは、機能コンピュータ・データ構造を含み、コンピュータ・システムにロードされてそれによって動作されると、前記コンピュータ・システムはこの方法のステップを全て実行することができる。
【０１０５】
本発明の範囲から逸脱することなく前述の例示的な実施形態に多くの改良および変更を実施可能であることは、当業者には明白であろう。
【０１０６】
好適な実施形態の要約
要約すると、本発明は、トラステッド・コンピューティング・ハイパーバイザ環境において実行するオペレーティング・システムを更新するための方法および装置に関する。具体的には、本発明は、ハイパーバイザ環境において実行するオペレーティング・システムを更新するための方法、システム、およびコンピュータ・プログラムに関する。これは、オペレーティング・システムのコンポーネントの新しいバージョンを判定することと、新しいコンポーネント・バージョンをインストールすることと、コンポーネントの識別特徴を測定し、これを認証システムに利用可能とすることと、コンポーネントを新しいバージョンに更新したことを認証システムに通知することと、を含み、これによって、新しいコンポーネントの識別特徴が予め記憶された認証値と一致しないことを認証システムが見出した場合、正当な不一致が発生した可能性があると認識する。コンポーネントの新しいバージョンをインストールすることが、コンポーネントの新しいバージョンに関連付けられたアップデータを識別することと、識別したアップデータの識別特徴を測定することと、コンポーネントの新しいバージョンをロードしインストールすることと、アップデータの識別測定値およびコンポーネントの新しいバージョンの双方の識別特徴を認証システムに利用可能とすることと、を含む。
【０１０７】
注記
＊ＩＢＭ、ＡＩＸ、Express、ibm.com、Power、Power7、およびTivoliは、米国、他の国々、または双方におけるInternational Business MachinesCorporationの商標または登録商標である。ＩＢＭが所有するＵＳ商標の完全なリストは、www.ibm.com/legal/copytrade.shtml.で見ることができる。
【図１】
0005932837.tif 000002
【図２】
0005932837.tif 000003
【図３】
0005932837.tif 000004
【図４】
0005932837.tif 000005
【図５】
0005932837.tif 000006
【図６】
0005932837.tif 000007
【図７】
0005932837.tif 000008
【図８】
0005932837.tif 000009
【図９】
0005932837.tif 000010
【図１０】
0005932837.tif 000011