(57)【要約】【課題】セキュアなコンピューティング環境を簡便な方法で提供することができる情報処理技術を提供する。【解決手段】情報処理システムにおいて、システムを構成するための、ブート用のイメージを含むシステムイメージをロードする手段と、ロードされたシステムイメージが真正であることの検証を行うシステム検証手段５０と、検証手段を使って検証済みのブート用イメージにおけるブートストラップコード及びこれによって起動されるＯＳを利用できるように、該ブートストラップコード及びＯＳが所定の実デバイスにアクセスするために使用するインタフェースに変更を加えて仮想デバイス２０を形成する手段５０とを設ける。【選択図】図１
2006172376.tif 000002
【特許請求の範囲】
【請求項１】
所定の記憶領域と、
システムを構成するための、ブート用のイメージを含むシステムイメージを前記記憶領域にロードするロード手段と、
ロードされた前記システムイメージが真正であることの検証を行うシステム検証手段と、
前記検証手段を使って検証済みの前記ブート用イメージにおけるブートストラップコード及びこれによって起動されるＯＳを利用できるように、該ブートストラップコード及びＯＳが所定の実デバイスにアクセスするために使用するインタフェースに変更を加えて仮想デバイスを形成する手段とを具備する情報処理システム。
【請求項２】
前記システム検証手段は、前記システムイメージに付随する電子署名を、対応する公開鍵で復号して得られるハッシュ値と、前記システムイメージに所定のハッシュ関数を適用して得られるハッシュ値とが一致するか否かに基づいて検証を行うものである請求項１に記載の情報処理システム。
【請求項３】
前記システム検証手段はシステムＢＩＯＳによって構成されている請求項１に記載の情報処理システム。
【請求項４】
前記ロード手段は、システムイメージのロードをネットワーク上のサーバからのダウンロードにより行うものであり、情報処理システムはさらに、該サーバからダウンロードされたシステムイメージ中のブートストラップコードに制御を移行させる制御移行手段と、該ブートストラップコードに制御が移行する前に、前記ダウンロードされたシステムイメージについて、前記検証が行われるように、前記システム検証手段を動作させる手段とを有する請求項１に記載の情報処理システム。
【請求項５】
前記システム検証手段を動作させる手段は、システムが備えるアドレス監視機構とその制御機構を利用して、前記ブートストラップコードへの制御移行を監視し、制御移行が行われる前に、一時的に前記システム検証手段による制御を割り込ませるものである請求項４に記載の情報処理システム。
【請求項６】
前記ロード手段及び制御移行手段は、ＰＸＥ規格に準拠したものである請求項４に記載の情報処理システム。
【請求項７】
システムを構成するための、ブート用のイメージを含むシステムイメージをコンピュータの所定領域にロードする手段、
ロードされた前記システムイメージが真正であることの検証を行うシステム検証手段、及び
前記検証手段を使って検証済みの前記ブート用イメージにおけるブートストラップコード及びこれによって起動されるＯＳを利用できるように、該ブートストラップコード及びＯＳが所定の実デバイスにアクセスするために使用するインタフェースに変更を加えて仮想デバイスを形成する手段としてコンピュータを機能させるプログラム。
【請求項８】
コンピュータが、システムを構成するための、ブート用のイメージを含むシステムイメージをコンピュータの所定領域にロードする手順と、
コンピュータが、ロードされた前記システムイメージが真正であることの検証を行うシステム検証手順と、
コンピュータが、前記検証手順により検証済みの前記ブート用イメージにおけるブートストラップコード及びこれによって起動されるＯＳを利用できるように、該ブートストラップコード及びＯＳが所定の実デバイスにアクセスするために使用するインタフェースに変更を加えて仮想デバイスを形成する手順とを具備することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムイメージをロードし、これが真正であることの検証を行ってから、該検証済みのシステムイメージにおけるブートストラップコード及びこれによって起動されるＯＳを利用できるように、該ブートストラップコード及びＯＳが所定の実デバイスにアクセスするために使用するインタフェースに変更を加えて仮想デバイスを形成するようにした情報処理システム、プログラム、及び情報処理方法に関する。
【背景技術】
【０００２】
近年、ネットワーク技術の発達により情報伝達の利便性が向上し、多くのサービスがネットワークを介して提供されるようになっている。これに伴い、個人情報をネットワーク上で伝達する必要が生じ、ネットワークプロトコルも含めたインフラストラクチャと同様に個々のパーソナルコンピュータでのセキュリティに関する要求が高まっている。
【０００３】
この要求に応えるためには、パーソナルコンピュータ上で稼動する、サービスプログラム等を含む広義のオペレーティングシステム（以下、「ＯＳ」という。）の信頼性が重要となる。しかし現実には、キーボード入力やディスプレイのフレームバッファをモニタリングするスパイウェア等のソフトウェアによるセキュリティへの脅威が存在している。
【０００４】
このような問題の解決のための業界の一つの動向として、ＴＣＧ（Ｔｒｕｓｔｅｄ Ｃｏｍｐｕｔｉｎｇ Ｇｒｏｕｐ）に準拠したプラットフォームを用いる方法や（非特許文献１参照）、ＰＸＥ（Ｐｒｅｂｏｏｔ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｒｏｎｍｅｎｔ）規格におけるＢＩＳ（Ｂｏｏｔ  Ｉｎｔｅｇｒｉｔｙ  Ｓｅｒｖｉｃｅｓ）などの手法（非特許文献２）が提案されている。
【０００５】
なお、特許文献１には、応用プログラム又はユーザインタフェースと組み合わされたＯＳが据え付けられておらず、あるいは書込み可能な磁気媒体が存在しない場合でも、ＣＤ−ＲＯＭ媒体や、ネットワークを経た媒体から応用プログラム又はユーザインタフェースをロードし、実行するようにしたコンピュータシステムが開示されている。
【０００６】
【特許文献１】特開２０００−２０７１７６号公報
【非特許文献１】“ＴＣＧ  Ｍａｉｎ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”バージョン１．１ｂ、［ｏｎｌｉｎｅ］、２００２年２月２２日、Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ、［平成１６年１２月１４日検索］、インターネット＜ｈｔｔｐｓ：／／ｗｗｗ．ｔｒｕｓｔｅｄｃｏｍｐｕｔｉｎｇｇｒｏｕｐ．ｏｒｇ／ｈｏｍｅ＞
【非特許文献２】“Ｂｏｏｔ  Ｉｎｔｅｇｒｉｔｙ  Ｓｅｒｖｉｃｅｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ”バージョン１．０、［ｏｎｌｉｎｅ］、１９９８年１２月２８日、インテルコーポレイション、［平成１６年１２月１４日検索］、インターネット＜ｈｔｔｐ：／／ｗｗｗ．ｉｎｔｅｌ．ｃｏｍ／ｌａｂｓ／ｍａｎａｇｅ／ｗｆｍ／ｗｆｍｓｐｅｃｓ．ｈｔｍ＞
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述のＴＣＧに準拠したプラットフォームやＰＸＥ規格におけるＢＩＳによれば、これらを実装することや、これらを実現するためのインフラストラクチャの構築は容易ではない。また、現存しているＯＳをそのままセキュアにブートさせる手法も存在しない。
【０００８】
つまり、ＴＣＧはシステムの動作そのものをセキュアに行うことができるようにするものではなく、動作し実行するまでのプロセスやモジュールを、後で確認することができる仕組みを提供するにすぎない。また、ＰＸＥ規格のＢＩＳは、ネットワーク経由でダウンロードされるモジュールの認証プロセスのみを定義しており、実際のＯＳの動作自体をセキュアに行うことについては規定していない。
【０００９】
そこで、本発明の目的は、より簡便に、よりセキュアなコンピューティング環境を提供することができる情報処理技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明に係る情報処理システム及び情報処理方法は、システムを構成するための、ブート用のイメージを含むシステムイメージをロードする手段又は手順と、ロードされたシステムイメージが真正であることの検証を行う手段又は手順と、この検証手段又は検証手順により検証済みのブート用イメージにおけるブートストラップコード及びこれによって起動されるＯＳを利用できるように、該ブートストラップコード及びＯＳが所定の実デバイスにアクセスするために使用するインタフェースに変更を加えて仮想デバイスを形成する手段又は手順とを備える。また、本発明のプログラムは、これらの手段としてコンピュータを機能させ、又はこれらの手順をコンピュータに実行させるものである。
【００１１】
ここで、システムイメージとしては、たとえば、ブート用のイメージに加え、必要なアプリケーションプログラムのイメージを含むものが該当する。システムイメージのロードは、たとえば、ＣＤ−ＲＯＭドライブ、ネットワーク上のサーバ、ハードディスク、又はＵＳＢメモリから行うことができる。ブートストラップコードとは、システムイメージのうちの、ブートシーケンスを開始するために最初に読み込まれるコードを意味する。ＯＳとしては、たとえば、マイクロソフト社のＷｉｎｄｏｗｓ（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの米国及びその他の国における商標）ＰＥやＬｉｎｕｘ（Ｌｉｎｕｓ  Ｔｏｒｖａｌｄｓの米国及びその他の国における商標）等の読み取り専用媒体（例えば，ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなど）から起動できるＯＳが該当する。実デバイスとしては、たとえば、後述の図１の実施形態におけるＣＤ−ＲＯＭデバイス４や、図４の実施形態におけるネットワークデバイス５が該当する。また、インタフェースとしては、たとえば、図３において符号１２で示されるＩＮＴ１３や、デバイスドライバ１３が該当する。
【００１２】
ロード手段は、たとえば、後述の図１の実施形態におけるＣＰＵ１、ＣＤ−ＲＯＭドライブ４、及びシステムＢＩＯＳ５０によって、あるいは図４の実施形態におけるＣＰＵ１、ネットワークデバイス５、ＰＸＥサーバ６、システムＢＩＯＳ５０、及びＰＸＥブートコード６０によって構成することができる。システム検証手段は、たとえば、図１の実施形態におけるＣＰＵ１、デジタル署名２１、システムＢＩＯＳ５０、公開鍵５１、及びデジタル署名５２によって、あるいは図２の実施形態におけるＣＰＵ１、ネットワークデバイス５、ＰＸＥサーバ６、デジタル署名２１、システムＢＩＯＳ５０、公開鍵５１、及びデジタル署名５２、及びＰＸＥブートコード６０によって構成することができる。また、仮想デバイス形成手段は、たとえば、図１及び図２の実施形態におけるＣＰＵ１及びシステムＢＩＯＳ５０によって形成することができる。
【００１３】
この構成において、システムを構成するための、ブート用のイメージを含むシステムイメージを所定の記憶領域にロードした後、ロードされたシステムイメージが真正であることの検証を行うことができる。前記システムイメージが真正であった場合には、前記検証手段を使って検証済みの前記ブート用イメージにおけるブートストラップコード及びこれによって起動されるＯＳを利用できるように、該ブートストラップコード及びＯＳが所定の実デバイスにアクセスするために使用するインタフェースに変更を加えて仮想デバイスを形成する。
【００１４】
この後、ロードされたシステムイメージ中のブートストラップコードが起動されると、ブートストラップコードは前記実デバイスからブートを行おうとするが、そのためのアクセスは、前記仮想デバイス化により、システムイメージがロードされている記憶領域へのアクセスとなる。ＯＳが前記実デバイスにアクセスしようとする場合にも、実際には、前記システムイメージがロードされている記憶領域へのアクセスとなる。したがって、真正であることが検証されたシステムイメージに基づいてブートが行われることになる。
【００１５】
ブートが完了した後も、前記仮想デバイス化により、ＯＳによる前記実デバイスへのアクセスの試みは、前記システムイメージがロードされている記憶領域へのアクセスとされる。つまり、アプリケーションの実行のためのロードは、常に、真正であることが検証されたシステムイメージから行われることになる。これにより、セキュアなコンピューティング環境が実現されることになる。
【００１６】
本発明の好ましい態様においては、ロードされたシステムイメージが真正であることの検証は、該システムイメージに付随する電子署名を、対応する公開鍵で復号して得られるハッシュ値と、該システムイメージに所定のハッシュ関数を適用して得られるハッシュ値とが一致するか否かに基づいて行うことができる。
【００１７】
また、ロードされたシステムイメージが真性であることの検証はシステムＢＩＯＳによって行うことができる。この場合、システムＢＩＯＳについても、それが真正であることの検証を行うようにしてもよい。このＢＩＯＳ自身が真正であることの検証は、情報処理システムに対し取り外すことができないように固定され、かつ書換えができない記憶手段に記憶されているプログラム及び公開鍵、並びに該公開鍵に対応し、システムＢＩＯＳに付随するデジタル署名に基づいて行うことができる。
【００１８】
また、システムイメージのロードは、ネットワーク上のサーバからのダウンロードにより行うようにしてもよい。この場合、ダウンロードされたシステムイメージ中のブートストラップコードに制御が移行する前に、該システムイメージが真正であることの検証が行われるようにすることができる。該ダウンロード及び制御移行は、たとえばＰＸＥ規格に準拠した方法で行われる。
【００１９】
ブートストラップコードへの制御移行前に検証を介在させるためには、システムが備えるアドレス監視機構とその制御機構を利用してブートストラップコードへの制御移行を監視し、制御移行が行われる前に、一時的に検証動作に制御を移行させるという方法を用いることができる。
【発明の効果】
【００２０】
本発明によれば、システムイメージをロードしてこれが真正であることの検証を行い、その後、該システムイメージにおけるブートストラップコード及びこれによって起動されるＯＳを利用できるように、これらが所定の実デバイスにアクセスするために使用するインタフェースに変更を加えて仮想デバイスを形成するようにしたため、容易に、セキュアなコンピューティング環境を実現することができる。
【発明を実施するための最良の形態】
【００２１】
図１は本発明の一実施形態に係る情報処理システムの主要構成を示すブロック図である。このシステムは、同図に示すように、プログラムに基づいて演算を行い、データの流れを制御するＣＰＵ１、ＣＰＵ１が実行中のプログラムや関連するデータを高速にアクセスできるように記憶するメインメモリ２、システムＢＩＯＳ等を記憶しているＲＯＭ３、及び、ブート用のＣＤ−ＲＯＭからデータを読み込むことが可能なＣＤ−ＲＯＭドライブ４を備える。
【００２２】
メインメモリ２はＯＳイメージを記憶する領域１０、仮想ＣＤ−ＲＯＭイメージを記憶する領域２０、及び作業用の領域（ワーキングメモリ）３０を有する。領域１０にはブート時に実行されるブートストラップコード１１も記憶される。仮想ＣＤ−ＲＯＭイメージには、そのイメージに対し、所定のハッシュ関数を適用して求めたハッシュ値を、秘密鍵で暗号化して得たデジタル署名２１が付随している。仮想ＣＤ−ＲＯＭイメージは、ＯＳモジュール及びアプリケーションプログラムを含むシステムイメージで構成されている。
【００２３】
ＲＯＭ３には電源オン時に最初に実行されるブートブロック４０、及びシステムＢＩＯＳ５０が記憶されている。ブートブロック４０は工場出荷時にのみ書込み可能となっており、以後、変更することはできない。つまりブートブロック４０は、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｐｌａｔｆｏｒｍ  Ａｓｓｏｃｉａｔｉｏｎ）の仕様に従ったＣＲＴＭ（Ｃｏｒｅ  Ｒｏｏｔ  Ｔｒｕｓｔｅｄ  Ｍｅａｓｕｒｅｍｅｎｔ）に相当する。ＣＤ−ＲＯＭドライブ４には、前述の領域２０にロードされる仮想ＣＤ−ＲＯＭイメージが記録されたＣＤ−ＲＯＭを装着することができる。
【００２４】
システムＢＩＯＳ５０には、デジタル署名２１を作成する際に用いた秘密鍵に対応する公開鍵５１が付随している。システムＢＩＯＳ５０には、また、そのイメージに対し所定のハッシュ関数を適用して求めたハッシュ値を秘密鍵で暗号化して得たデジタル署名５２が付随している。ブートブロック４０には、デジタル署名５２の作成に用いた秘密鍵に対応する公開鍵４１が付随している。
【００２５】
図２はこのシステムにおけるブート処理を示すフローチャートである。システムの電源が投入されると、ＣＰＵ１はまず、ステップ１において、ブートブロック４０を実行し、システムＢＩＯＳ５０が真正であることの検証を行う。すなわちブートブロック４０は、システムＢＩＯＳ５０に付随するデジタル署名５２を公開鍵４１で復号して得られたハッシュ値と、システムＢＩＯＳ５０に対し上述のハッシュ関数を適用して得られるハッシュ値とが一致するか否かを判定し、一致すると判定した場合には、システムＢＩＯＳ５０が真正であることの検証ができたこととする。
【００２６】
次に、ステップ３において、ブートブロック４０は、システムＢＩＯＳ５０が真正であることの検証ができたか否かを判定する。検証ができなかったと判定した場合はブート処理を終了する。検証できたと判定した場合にはステップ４へ進み、システムＢＩＯＳ５０を起動する。システムＢＩＯＳ５０は、ステップ５において、ＣＤ−ＲＯＭドライブ４に装着されたＣＤ−ＲＯＭに記録されている仮想ＣＤ−ＲＯＭイメージを、メインメモリ２の領域２０にロードする。
【００２７】
システムＢＩＯＳ５０はさらにステップ６において、ロードした仮想ＣＤ−ＲＯＭイメージすなわちシステムイメージが真正であることの検証を行う。すなわち仮想ＣＤ−ＲＯＭイメージに付随するデジタル署名２１を公開鍵５１で復号して得られたハッシュ値と、仮想ＣＤ−ＲＯＭイメージに対し上述のハッシュ関数を適用して得られるハッシュ値とが一致するか否かの判定を行い、一致すると判定した場合には仮想ＣＤ−ＲＯＭイメージが真正であると判断する。これにより、仮想ＣＤ−ＲＯＭイメージに含まれるＯＳ及びアプリケーションプログラムが真正なものであることの検証がなされたことになる。真正なＯＳとは、メモリ中にロードされ、動作することを許可された広義のＯＳモジュールすべての動作が保障された所定のセキュアなＯＳであり、改ざん等がなされていないものを意味する。
【００２８】
次にシステムＢＩＯＳ５０は、ステップ７において、システムイメージが真正であることの検証ができたか否かを判定する。検証できなかったと判定した場合はブート処理を終了する。検証できたと判定した場合にはステップ８へ進み、仮想ＣＤ−ＲＯＭドライブの作成を行う。すなわち、仮想ＣＤ−ＲＯＭイメージから最初に読み出されるブートストラップコード１１や起動するＯＳが、インタフェースＩＮＴ１３やデバイスドライバを介してＣＤ−ＲＯＭドライブ４にアクセスしようとすると、実際にはメインメモリ２の領域２０をアクセスするように、ＩＮＴ１３やデバイスドライバが呼び出すコードを設定する。これにより、ＣＤ−ＲＯＭドライブ４からブートを行うと同様の手順で、領域２０からブートが行われることになる。
【００２９】
次に、ステップ９において、システムＢＩＯＳ５０は、ブートストラップコード１１を領域１０に読み出し、これに制御を移す。これにより、ステップ１０において、ＯＳのブートが行われることになる。すなわち、ブートストラップコード１１は、領域２０の仮想ＣＤ−ＲＯＭイメージに基づき、ＯＳのブートを開始し、上記ＩＮＴ１３による仮想ＣＤ−ＲＯＭドライブ経由でＯＳの起動に必要なファイルをメモリ２の領域１０にロードしながら、ＯＳの内部機能を次第に拡張していく。
【００３０】
その拡張途中のＯＳ環境下で動作可能な仮想ＣＤ−ＲＯＭドライブの上記デバイスドライバが使用可能になると、ブートストラップコード１１は、そのデバイスドライバを使用してＯＳの起動に必要なファイルを領域１０にロードする。これによりブートストラップコード１１は、ＯＳのデバイスドライバを利用する環境においても、ＣＤ−ＲＯＭドライブ４を介してＯＳの起動を行っているのと同様の手順で、領域２０の仮想ＣＤ−ＲＯＭイメージに基づき、ブートストラップを継続し、ブート処理を完了する。
【００３１】
図３はブートストラップコード１１が、領域２０上の仮想ＣＤ−ＲＯＭイメージをアクセスする様子を示すブロック図である。同図に示すように、ブートストラップコード１１は、仮想ＣＤ−ＲＯＭイメージに対し、まず、符号１２で示されるＢＩＯＳのディスクＩ／ＯルーチンＩＮＴ１３によってアクセスし、ブートが進行して仮想ＣＤ−ＲＯＭドライブのデバイスドライバ１３が使用可能になると、このデバイスドライバ１３を介してアクセスする。
【００３２】
本実施形態によれば、システムイメージを領域２０にロードしてそれが真正であることの検証を行い、領域２０を仮想デバイス化してブートストラップコード及びこれによって起動されるＯＳに提供するようにしたため、容易に、セキュアなコンピューティング環境を実現することができる。
【００３３】
図４は本発明の別の実施形態に係る情報処理システムの主要構成を示すブロック図である。このシステムでは、同図に示すように、図１のシステムにおけるＣＤ−ＲＯＭドライブ４の代わりに、ネットワークデバイス５を設け、仮想ＣＤ−ＲＯＭイメージを、ネットワークを経て、ＰＸＥサーバ６からダウンロードするようにしている。また、これを実現するためのＰＸＥブートコード６０をＲＯＭ３内に備える。他の点については、図１の形態の場合と同様である。
【００３４】
ＰＸＥサーバ６はＰＸＥ（プリブート実行環境）規格によるネットワークブート（以下、「ＰＸＥネットワークブート」という。）のサービスを提供するものであり、領域２０にロードされることになる仮想ＣＤ−ＲＯＭイメージを記憶している。ネットワークデバイス５は、システムをＰＥＸサーバ６に接続するための、ＰＸＥ規格に準拠したネットワークインタフェースカード等を備える。ＰＸＥブートコード６０はＰＸＥ規格に準拠したものであり、ネットワークカードのベンダによりＲＯＭイメージとして提供されるものである。
【００３５】
ＰＸＥネットワークブートはネットワーク上の所定のノード、すなわちＰＸＥサーバからネットワークブートストラップ用のコードブロック及びＯＳシステムイメージ本体を順次ダウンロードしてメモリに展開し、そのダウンロードしたコードに実行権を渡してブートを行う手法である。通常のＰＸＥネットワークブートのプロセスでは、ＢＩＯＳからＰＸＥブートコードに制御が移行すると、その後、ＰＸＥブートコードがＯＳのブートへ移行するための連係処理を行うようになっている。このためＢＩＯＳは、ＯＳに制御が移行する前に、ダウンロードされたコードが真正であることの検証を行うことができない。
【００３６】
そこで本実施形態では、システムＢＩＯＳ５０は、ＰＸＥブートコードに制御が移行する前に、デバッグレジスタを用いたメモリアクセストラップ機能を使用し、実行権を一時的に取得するようにしている。すなわち、ＰＸＥブートコードが、ダウンロードしたコードに制御を移す際に用いられる標準化されたエントリアドレス、つまり固定の物理アドレス７Ｃ００：００００ｈがデバッグレジスタのアドレスとして設定され、該アドレスの実行がモニタされる。
【００３７】
ただし、デバッグレジスタの設定アドレスを操作されると、その実行モニタは無効になってしまう。つまり、外部ネットワークデバイスベンダーから提供されるＰＸＥブートコード自身がそのデバッグレジスタを予想外に利用して、本発明が意図する物理アドレス７Ｃ００：００００ｈの実行監視機能が阻害される可能性がある。そのため、システムＢＩＯＳ５０が仮想８０８６モードを前提とした仮想８０８６モニタとなり、システムＢＩＯＳ５０以外のコードによるデバッグレジスタの利用を制限する。仮想８０８６モードはインテル社の８０３８６以降の８０８６プロセッサファミリで提供される保護モードのひとつであり、同モード下で動作するコードが特定の動作を行うと、当該モードを設定した仮想８０８６モニタ内の例外処理ルーチンを呼び出すプロセッサ例外（トラップ）が発生して、それら特定の動作を抑制・監視できるプロセッサ動作環境である。この動作環境下では、デバッグレジスタをＰＸＥブートコードがアクセスしようとするとプロセッサ例外が発生し、そのアクセスを無効化することができるため、システムＢＩＯＳ５０は前記固定物理アドレスにあるコードの実行が開始されることを確実に捕捉して、ダウンロードコードに対する所定の検証処理を追加実行することができる。
【００３８】
図５はこのトラップ機能による実行権取得の様子を示す。同図（ａ）に示すように、システムＢＩＯＳ５０は、仮想８０８６モード５４を構築してからＰＸＥブートコード６０を呼び出す。同図においてシステムＢＩＯＳ５０を囲むように仮想８０８６モニタ５４が位置しているが、当該モニタの実体はシステムＢＩＯＳ５０であり、専用のコードが新たに何れかの場所に展開されるわけではなく、システムＢＩＯＳ５０が同モニタとして動作している様子を示している。そしてシステムイメージすなわち仮想ＣＤ−ＲＯＭイメージのダウンロード後に、同図（ｂ）に示すように、ＰＸＥブートコード６０が、ダウンロードされたコードのエントリアドレス（７Ｃ００：００００ｈ）に制御を移行しようとすると、デバッグレジスタによるトラップ機能に基づくプロセッサ例外（割込み処理と同等）が発生し、システムＢＩＯＳ５０に制御が移行する。この後、システムＢＩＯＳ５０は仮想８０８６モードを終了し、同図（ｃ）に示されるように、仮想ＣＤ−ＲＯＭドライブ５６を作成する。さらに、ダウンロードしたシステムイメージが真正であることの検証が行われると、ＯＳ５７のブートが行われることになる。
【００３９】
図６及び図７はこのシステムにおけるブート処理を示すフローチャートである。ステップ８１〜８４における処理内容は、図２のステップ１〜４の処理内容と同様である。ステップ８４においてシステムＢＩＯＳが起動すると、システムＢＩＯＳは、上記エントリアドレスをデバッグレジスタに設定し、トラップ機能による実行権の取得を行うことができるようにしておく。さらにシステムＢＩＯＳは、ステップ８６において、仮想８０８６モードでＰＸＥブートコードを起動する。
【００４０】
ＰＸＥブートコードは、ステップ８７において、ＰＸＥの仕様に従い、ネットワークブートプログラム（以下、「ＮＢＰ」という。）をＰＸＥサーバ６からネットワーク経由でメインメモリ２にロードする。さらにステップ８８において、ＰＸＥブートコードからＮＢＰに制御が移行する直前で、システムＢＩＯＳは前記トラップ機能によって再び実行権を獲得する。その後、ステップ８９において、システムＢＩＯＳはメインメモリ２中にロードされたＮＢＰが真正であることの検証を行う。すなわち、ＮＢＰに付随するデジタル署名をＢＩＯＳに付随する該デジタル署名に対応した公開鍵５１で復号して得られたハッシュ値が、ＮＢＰに所定のハッシュ関数を適用して得たハッシュ値と一致するか否かを判定する。一致した場合には、ＮＢＰが真正であるものと判断する。
【００４１】
次にステップ９０において、ＮＢＰが真正であることを検証できたか否かを判定する。検証できなかったと判定した場合には、ブート処理を終了する。検証できたと判定した場合には、ステップ９１へ進み、システムＢＩＯＳは仮想ＣＤ−ＲＯＭドライブの作成を行い、その後、ステップ９２において、ＮＢＰに制御を渡す。なお、仮想ＣＤ−ＲＯＭドライブの作成はＮＢＰがシステムイメージに制御を渡す直前までに完了すればよいので、ＮＢＰからシステムイメージに制御が移行する直前で、ＮＢＰが仮想ＣＤ−ＲＯＭドライブを作成してもよい。
【００４２】
次に、ステップ９３において、ＮＢＰはシステムイメージ全体をＰＸＥサーバ６からロードする。さらにＮＢＰは、ステップ９４において、システムイメージ全体が真正であることの検証を行う。すなわちＮＢＰは、システムイメージに付随するデジタル署名を該デジタル署名に対応する公開鍵５１で復号して得られるハッシュ値と、システムイメージ全体に対して所定のハッシュ関数を適用して得たハッシュ値とが一致する場合は、システムイメージ全体が真正であることが検証されたものと判断する。
【００４３】
なお、ＮＢＰがシステムイメージをロードするとは、図１でも表されているように、ＮＢＰがシステムイメージを、前記仮想ＣＤ−ＲＯＭドライブが保持すべき仮想ＣＤ−ＲＯＭイメージとしてメインメモリ中で適宜配置することを意味する。
【００４４】
さらに、ＮＢＰは、ステップ９５において、システムイメージ全体が真正であることの検証ができたか否かを判定する。検証できなかったと判定した場合にはブート処理を終了し、検証できたと判定した場合には、ステップ９６へ進む。ステップ９６及び９７の処理は、図２におけるステップ９及び１０の処理と同様である。
【００４５】
本実施形態によれば、ネットワークブートを行う場合にも、システムイメージを領域２０にロードしてそれが真正であることの検証を行い、領域２０を仮想デバイス化してブートストラップコード及びこれによって起動されるＯＳに提供するようにしたため、容易に、セキュアなコンピューティング環境を実現することができる。
【００４６】
これに伴い、従来、ＢＩＯＳのみで制御していたパスワードをネットワーク機能、ＮＬＳ（Ｎａｔｉｏｎａｌ  ｌａｎｇｕａｇｅ  Ｓｕｐｐｏｒｔ）、ＧＵＩ（Ｇｒａｆｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等を有するＯＳおよびアプリケーションにより扱うことが可能となり、パスワードのバックアップ、配布、セキュリティに関するポリシの設定などのサービスを、セキュリティレベルを落とすことなく、情報システムに対して提供することができる。
【００４７】
また、ＴＣＧに準拠したＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）をイネーブル状態に設定するために、現状では、Ｗｉｎｄｏｗｓ（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの米国及びその他の国における商標）のＯＳ上で、スーパーバイザパスワードの入力を行う必要があり、実際には、エンドユーザに管理者権限のパスワードを教えるか、アドミニストレータ自身がエンドユーザのマシン上でイネーブルにする操作を行うようにしている。これに対し、本実施形態の手法を用いれば、ネットワーク経由でエンドユーザの認証を行うことが可能となり、管理者のインタラクションなしでＴＰＭチップをイネーブル状態に設定することが可能となる。
【００４８】
さらに、システムソフトウェアのアップデートや、ＯＳ用のパッチや修正モジュールの配布などをセキュアに行うことを可能にすることができる。
【００４９】
なお、本発明は上述の実施形態に限定されることなく、適宜変形して実施することができる。たとえば、上述においては、システムイメージの領域２０へのロードを、ＣＤ−ＲＯＭドライブ４やネットワークデバイス５から行うようにしているが、この代わりに、ＵＳＢメモリや、ハードディスクから行うようにしてもよい。
【図面の簡単な説明】
【００５０】
【図１】本発明の一実施形態に係る情報処理システムの主要構成を示すブロック図である。
【図２】図１のシステムにおけるブート処理を示すフローチャートである。
【図３】ブートストラップコードが仮想ＣＤ−ＲＯＭイメージをアクセスする様子を示すブロック図である。
【図４】本発明の別の実施形態に係る情報処理システムの主要構成を示すブロック図である。
【図５】図１のシステムにおけるトラップ機能による実行権取得の様子を示す図である。
【図６】図４のシステムにおけるブート処理を示すフローチャートである。
【図７】図６のフローチャートの続きを示す図である。
【符号の説明】
【００５１】
１：ＣＰＵ、２：メインメモリ、３：ＲＯＭ、４：ＣＤ−ＲＯＭドライブ、５：ネットワークデバイス、６：ＰＸＥサーバ、１０：記憶領域、１１：ブートストラップコード、１２：ＢＩＯＳのＩＮＴ１３、１３：デバイスドライバ、２０：記憶領域、２１：デジタル署名、３０：記憶領域、４０：ブートブロック、４１：公開鍵、５０：システムＢＩＯＳ、５１：公開鍵、５２：デジタル署名、５４：仮想８０８６モード、５６：仮想ＣＤ−ＲＯＭドライバ、５７：ＯＳ、６０：ＰＸＥブートコード。
【図１】
2006172376.tif 000003
【図２】
2006172376.tif 000004
【図３】
2006172376.tif 000005
【図４】
2006172376.tif 000006
【図５】
2006172376.tif 000007
【図６】
2006172376.tif 000008
【図７】
2006172376.tif 000009