(57)【要約】【課題】情報処理装置の構成によって値が異なる、情報処理装置の完全性を検証する際に使用する完全性保証情報の期待値を、効率的に取得する。【解決手段】完全性検証装置５０は、情報処理装置６０が採り得る構成ごとに、当該構成を実現する情報処理装置６０に対する設定情報５１１が格納された記憶部５１と、情報処理装置６０に関する完全性が保証されているときに、設定情報５１１を用いて情報処理装置６０に対する設定を行ったのち、情報処理装置６０を起動することを、選択する設定情報を変更しながら個々の設定情報に関して実行する起動部５２と、情報処理装置６０が起動する際に使用する起動制御情報６０１に基づく完全性保証情報の期待値５１２を取得し、その完全性保証情報の期待値５１２を当該構成と関連付けて記憶部５１に格納することを、起動部５２によって情報処理装置６０が起動される度に実行する取得部５３と、を備える。【選択図】      図８
2019133220.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置が採り得る構成ごとに、前記構成を実現する、前記情報処理装置に対する設定情報が格納された記憶手段と、
前記情報処理装置に関する完全性が保証されているときに、前記設定情報を用いて前記情報処理装置に対する設定を行ったのち、前記情報処理装置を起動することを、複数の前記設定情報のうち選択する設定情報を変更しながら個々の前記設定情報に関して実行する起動手段と、
前記情報処理装置に関する完全性が保証されているときに、前記情報処理装置が起動する際に使用する起動制御情報に基づいて生成される完全性保証情報の期待値を前記情報処理装置から取得し、取得した前記完全性保証情報の期待値を前記構成と関連付けて前記記憶手段に格納することを、前記起動手段によって前記情報処理装置が起動される度に実行する取得手段と、
を備える完全性検証装置。
【請求項２】
前記完全性保証情報は、前記情報処理装置が備えるＴＰＭ（Trusted Platform Module）に登録される、前記起動制御情報に基づいて生成されるハッシュ値を表す、
請求項１に記載の完全性検証装置。
【請求項３】
前記記憶手段は、前記情報処理装置に関する完全性が保証されていることを示す起動モード情報を記憶し、
前記起動手段は、前記起動モード情報によって、前記情報処理装置に関する完全性が保証されていることが示されている場合に、前記設定情報を用いて前記情報処理装置に対する設定を行ったのち、前記情報処理装置を起動することを、複数の前記設定情報のうち選択する設定情報を変更しながら個々の前記設定情報に関して実行する、
請求項１または請求項２に記載の完全性検証装置。
【請求項４】
前記起動手段及び前記取得手段は、ＢＩＯＳ（Basic Input Output System）を実行する前記情報処理装置によって実現される、
請求項１乃至請求項３のいずれか一項に記載の完全性検証装置。
【請求項５】
前記起動手段及び前記取得手段は、ＢＩＯＳを実行する前記情報処理装置と、ＢＭＣ（Baseboard Management Controller）とによって実現される、
請求項１乃至請求項３のいずれか一項に記載の完全性検証装置。
【請求項６】
前記記憶手段は、前記情報処理装置が実行するＯＳ（Operating System）によるアクセスが不能であるＢＭＣに具備されている、
請求項５に記載の完全性検証装置。
【請求項７】
前記情報処理装置が採り得る構成は、前記情報処理装置に関する性能を優先する構成、前記情報処理装置に関する省電力を優先する構成、及び、前記情報処理装置に関する保守性を優先する構成の少なくともいずれかを含む、
請求項１乃至請求項６のいずれか一項に記載の完全性検証装置。
【請求項８】
請求項１乃至７のいずれか一項に記載の完全性検証装置と、
前記完全性検証装置と通信可能に接続された管理端末装置と、
を有し、
前記取得手段は、特定の前記構成に設定された前記情報処理装置が起動したときに、前記完全性保証情報の計測値を取得し、
前記管理端末装置は、前記完全性検証装置から得られた、前記完全性保証情報の計測値と、前記特定の構成に関連付けられた前記完全性保証情報の期待値とを比較して、前記計測値と前記期待値とが一致しない場合、前記起動制御情報が改ざんされたと判定する、
を有する完全性検証システム。
【請求項９】
第一の情報処理装置が採り得る構成ごとに、前記構成を実現する、前記第一の情報処理装置に対する設定情報が記憶手段に格納されている場合に、
第二の情報処理装置によって、
前記第一の情報処理装置に関する完全性が保証されているときに、前記設定情報を用いて前記第一の情報処理装置に対する設定を行ったのち、前記第一の情報処理装置を起動することを、複数の前記設定情報のうち選択する設定情報を変更しながら個々の前記設定情報に関して実行し、
前記第一の情報処理装置に関する完全性が保証されているときに、前記第一の情報処理装置が起動する際に使用する起動制御情報に基づいて生成される完全性保証情報の期待値を前記第一の情報処理装置から取得し、取得した前記完全性保証情報の期待値を前記構成と関連付けて前記記憶手段に格納することを、前記第一の情報処理装置が起動される度に実行する、
完全性検証方法。
【請求項１０】
情報処理装置が採り得る構成ごとに、前記構成を実現する、前記情報処理装置に対する設定情報が格納された記憶手段にアクセス可能なコンピュータに、
前記情報処理装置に関する完全性が保証されているときに、前記設定情報を用いて前記情報処理装置に対する設定を行ったのち、前記情報処理装置を起動することを、複数の前記設定情報のうち選択する設定情報を変更しながら個々の前記設定情報に関して実行する起動処理と、
前記情報処理装置に関する完全性が保証されているときに、前記情報処理装置が起動する際に使用する起動制御情報に基づいて生成される完全性保証情報の期待値を前記情報処理装置から取得し、取得した前記完全性保証情報の期待値を前記構成と関連付けて前記記憶手段に格納することを、前記起動処理によって前記情報処理装置が起動される度に実行する取得処理と、
を実行させるための完全性検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、情報処理装置を構成するプラットフォームの完全性を検証する技術に関する。
【背景技術】
【０００２】
近年、サーバ装置、あるいはＩｏＴ(Internet of Things)等において用いられる情報処理装置には、より高い信頼性や完全性（情報処理装置が使用する情報に対する不正な改ざんが行なわれていない状態であること、即ち、情報処理装置が使用する情報が正当であること）が求められている。この完全性を確保するための技術の１つとして、ＴＰＭ（Trusted Platform Module）を用いたTrusted Bootが知られている。
【０００３】
ＴＰＭは、ＴＣＧ（Trusted Computing Group）によって定義されたセキュリティの仕様に準拠したハードウェアに関する耐タンパー性（内部情報および内部構造の解析を目的とした攻撃に対する安全性）を持つセキュリティチップである。ＴＰＭは、通常、ＰＣ（Personal Computer）などのマザーボードに直付けされており、ＳＰＩ(Serial Peripheral Interface)やＬＰＣ（Low Pin Count）インタフェースを経由してアクセス可能なコプロセッサとして動作する。そして、ＴＰＭは、暗号化や署名などの様々なセキュリティに関する機能を提供する。
【０００４】
ＴＰＭは、ＰＣＲ(Platform Configuration Register）と呼ばれるバンクを備えている。このバンクは、記憶領域として、情報処理装置がＰＯＳＴ(Power On Self-Test)を実行しているときやＯＳ（Operating System）を起動しているときに参照するデータ（設定値やプログラム等）のハッシュ値を、完全性保証情報として記録することができる。このデータのハッシュ値は、ＴＰＭが備えるExtendと呼ばれる機能（操作）によって、ＰＣＲに登録される。上述したTrusted Bootでは、この機能を利用することによって、情報処理装置の完全性が保証されているときに取得したハッシュ値を、ハッシュ値の期待値として取得する。そして、Trusted Bootでは、情報処理装置を新たに起動したときに取得したハッシュ値と、事前に取得して管理しているハッシュ値の期待値とを比較することによって、情報処理装置が起動時に用いるデータに対する改ざんの有無を判別することができる。そして、このようなＴＰＭを用いた情報処理装置の完全性に関する検証をより確実かつ効率的に行なうことを実現する技術への期待が高まってきている。
【０００５】
このような技術に関連する技術として、特許文献１には、システムの起動時間の遅延を引き起こすことなく、Trusted Bootによりプラットフォームの完全性に関する検証を行えるようにしたプラットフォーム完全性検証システムが開示されている。このシステムにおけるプラットフォーム計測装置は、次回起動時のためのプラットフォームの完全性に関する検証を、シャットダウンシーケンスの最後のタイミングで計測を実行し、その結果をシステムの電源状態に関わらず外部のコンピュータから取得可能な不揮発性記憶領域に記録する。その後、このシステムにおける完全性検証コンピュータは、不揮発性記憶領域に記憶された計測値を、ネットワークを介して取得し、取得した計測値と、予め用意した期待される計測値との比較を行うことにより完全性を検証する。
【０００６】
また、特許文献２には、ネットワークサービスに接続する際のセキュリティを強化した情報処理システムが開示されている。このシステムでは、ユーザは、端末を操作して起動プロセス変更サーバにアクセスし、盗難された携帯端末の起動プロセスの一部の変更を要求する。起動プロセス変更サーバは、この要求に応じて携帯端末の起動プロセスの一部の変更有りを示すフラグを登録する。携帯端末は、起動プロセス中に、起動プロセス変更サーバにアクセスし、フラグ情報を確認する。そして携帯端末は、フラグ情報が起動プロセスの一部の変更有りを示す場合、起動プロセスの一部を変更し、一部が変更された起動プロセスの処理過程を計測して、その計測結果をＴＰＭに保存する。
【０００７】
また、特許文献３には、アプリケーションの動作環境を提供するプラットフォームを有した本体装置と、当該本体装置のTrusted Bootを実現するセキュリティデバイスと間の通信を保護するようにした信号レベル変換装置が開示されている。この装置は、アプリケーションの動作環境を提供するプラットフォームを有した本体装置と接続する第１インタフェース手段を備える。この装置は、真正性が確認されたプラットフォームを特定するハッシュ値をＰＣＲ情報として予め保持し、当該ＰＣＲ情報と本体装置の起動時のプラットフォームのハッシュ値とが一致した場合に、本体装置の起動を許可する信号を本体装置に送信するセキュリティデバイスと接続する第２インタフェース手段を備える。そしてこの装置は、第１インタフェース手段と第２インタフェース手段との間で授受される信号をレベルシフトする。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開2012-032925号公報
【特許文献２】特開2014-078185号公報
【特許文献３】特開2012-008642号公報
【非特許文献】
【０００９】
【非特許文献１】"TCG PC Client Platform Firmware Profile Specification Family "2.0" Level 00 Revision 1.03 v51 May 1, 2017"、［Online］、［２０１８年１月２６日検索］、インターネット<URL: https://trustedcomputinggroup.org/wp-content/uploads/PC-ClientSpecific_Platform_Profile_for_TPM_2p0_Systems_v51.pdf>
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述したＴＰＭを用いたTrusted Bootについて、詳細に説明する。例えば非特許文献１に示されているＴＣＧによって定義されたＴＰＭ２．０では、ＰＣＲとして２４個のバンクが存在する。これらの２４個のＰＣＲに登録される各ハッシュ値（完全性保証情報）のカテゴリは、非特許文献１に示す通りである。
【００１１】
例えば、２４個のＰＣＲのうちのＰＣＲ０は、Ｓ−ＣＲＴＭ(Static Core Root of Trust Measurement)と呼ばれ、ＢＩＯＳの実装に依存して装置や機種ごとに異なる値が登録される。また、ＰＣＲ１には、情報処理装置の構成情報等を示すハッシュ値が登録される。例えば、ＢＩＯＳ(Basic Input Output System)の設定によってネットワークデバイスのOption ROM展開を無効にした場合、ＰＣＲ１の値が変わることが知られている。但し、情報処理装置の構成に関するどの設定を変更したときに、どのＰＣＲに登録されるハッシュ値が変更されるかについては、例えば装置開発ベンダーに依存する場合がある。
【００１２】
非特許文献１に示されているＰＣＲは、また、ＢＩＯＳ等のファームウェア（ＦＷ(Firmware)）によりハッシュ値が登録されるＰＣＲ０−７と、ＯＳやアプリケーションによりハッシュ値が登録されるＰＣＲ８−２３とに大別される。また、各ＰＣＲには、複数のハッシュ値が登録可能であるが、各ＰＣＲを参照した際に見える値は１つである。即ち、各ＰＣＲを参照した際に見える値は、既に登録されているハッシュ値と新たに登録するハッシュ値とが連結（合算）された値となる。
【００１３】
情報処理装置の完全性の検証に用いられる、ＰＣＲに登録されるハッシュ値の期待値は、一般的に、運用前に事前に取得した（検証した）値を用いている。例えば、組み込み用途として出荷され、出荷後に構成変更が行なわれないような情報処理装置の場合、その固定された装置構成において取得されたハッシュ値を、その期待値として管理している。また、運用中にある程度の構成変更が見込まれる情報処理装置の場合、各構成に関してハッシュ値の期待値を事前に計測し、装置構成ごとに計測された期待値をホワイトリストとして管理している。
【００１４】
しかしながら、サーバなどの情報処理装置では、運用開始後に例えば不具合を解消するためのファームウェアの更新が行われ、これによってファームウェアに関するデータ（設定値やプログラム等）を表すハッシュ値が変わる場合がある。このような場合、変更されたハッシュ値を、運用開始時点において事前に計測しておくことは困難である。また、運用中に装置構成を変更したり、プロセッサやメモリ等に発生した障害などによって、一部のモジュールを縮退したりすることもある。
【００１５】
そして、装置構成やファームウェアに関する変更等によって、ＰＣＲに登録されるハッシュ値がどのように変更されるかを示す情報は、一般的に、プラットフォームベンダー等から提供されることはない。したがって、装置構成やファームウェアに関する変更等が行なわれた場合、ユーザ（システムの設計者や管理者等）は、期待値となるＰＣＲに登録されるハッシュ値を計測する必要がある。しかしながら、上述した通り、多様な構成を採り得る情報処理装置において、全ての構成に関してＰＣＲに登録される多数のハッシュ値の期待値をユーザが計測することは、ユーザに対する負担が大きくなることから困難である。特許文献１乃至３は、この問題について言及していない。本願発明の主たる目的は、この問題を解決する完全性検証装置等を提供することである。
【課題を解決するための手段】
【００１６】
本願発明の一態様に係る完全性検証装置は、情報処理装置が採り得る構成ごとに、前記構成を実現する、前記情報処理装置に対する設定情報が格納された記憶手段と、前記情報処理装置に関する完全性が保証されているときに、前記設定情報を用いて前記情報処理装置に対する設定を行ったのち、前記情報処理装置を起動することを、複数の前記設定情報のうち選択する設定情報を変更しながら個々の前記設定情報に関して実行する起動手段と、前記情報処理装置に関する完全性が保証されているときに、前記情報処理装置が起動する際に使用する起動制御情報に基づいて生成される完全性保証情報の期待値を前記情報処理装置から取得し、取得した前記完全性保証情報の期待値を前記構成と関連付けて前記記憶手段に格納することを、前記起動手段によって前記情報処理装置が起動される度に実行する取得手段と、を備える。
【００１７】
上記目的を達成する他の見地において、本願発明の一態様に係る完全性検証方法は、第一の情報処理装置が採り得る構成ごとに、前記構成を実現する、前記第一の情報処理装置に対する設定情報が記憶手段に格納されている場合に、第二の情報処理装置によって、前記第一の情報処理装置に関する完全性が保証されているときに、前記設定情報を用いて前記第一の情報処理装置に対する設定を行ったのち、前記第一の情報処理装置を起動することを、複数の前記設定情報のうち選択する設定情報を変更しながら個々の前記設定情報に関して実行し、前記第一の情報処理装置に関する完全性が保証されているときに、前記第一の情報処理装置が起動する際に使用する起動制御情報に基づいて生成される完全性保証情報の期待値を前記第一の情報処理装置から取得し、取得した前記完全性保証情報の期待値を前記構成と関連付けて前記記憶手段に格納することを、前記第一の情報処理装置が起動される度に実行する。
【００１８】
また、上記目的を達成する更なる見地において、本願発明の一態様に係る完全性検証プログラムは、情報処理装置が採り得る構成ごとに、前記構成を実現する、前記情報処理装置に対する設定情報が格納された記憶手段にアクセス可能なコンピュータに、前記情報処理装置に関する完全性が保証されているときに、前記設定情報を用いて前記情報処理装置に対する設定を行ったのち、前記情報処理装置を起動することを、複数の前記設定情報のうち選択する設定情報を変更しながら個々の前記設定情報に関して実行する起動処理と、前記情報処理装置に関する完全性が保証されているときに、前記情報処理装置が起動する際に使用する起動制御情報に基づいて生成される完全性保証情報の期待値を前記情報処理装置から取得し、取得した前記完全性保証情報の期待値を前記構成と関連付けて前記記憶手段に格納することを、前記起動処理によって前記情報処理装置が起動される度に実行する取得処理と、を実行させるためのプログラムである。
【００１９】
更に、本願発明は、係る完全性検証プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００２０】
本願発明は、情報処理装置の構成によって値が異なる、情報処理装置の完全性を検証する際に使用する完全性保証情報の期待値を、効率的に取得することを可能とする。
【図面の簡単な説明】
【００２１】
【図１】本願発明の第１の実施形態に係る完全性検証システム１の構成を概念的に示すブロック図である。
【図２】本願発明の第１の実施形態に係る設定情報１１３の構成を概念的に例示する図である。
【図３】本願発明の第１の実施形態に係る完全性保証情報の期待値１１５の構成を概念的に例示する図である。
【図４】本願発明の第１の実施形態に係る完全性保証情報の期待値１１５と完全性保証情報の計測値とを比較した結果を例示する図である。
【図５Ａ】本願発明の第１の実施形態に係る情報処理装置１０の動作を示すフローチャート（１／２）である。
【図５Ｂ】本願発明の第１の実施形態に係る情報処理装置１０の動作を示すフローチャート（２／２）である。
【図６】本願発明の第１の実施形態の変形例に係る完全性検証システム１Ａの構成を概念的に示すブロック図である。
【図７】本願発明の第１の実施形態の変形例に係る設定情報４１３の構成を概念的に例示する図である。
【図８】本願発明の第２の実施形態に係る完全性検証装置５０の構成を概念的に示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００２３】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係る完全性検証システム１の構成を概念的に示すブロック図である。完全性検証システム１は、大別して、情報処理装置１０、及び、管理端末装置（アテステーション端末装置）２０を含んでいる。情報処理装置１０と管理端末装置２０とは、通信可能に接続されている。
【００２４】
情報処理装置１０は、例えばサーバ装置であり、記憶部１１、ＣＰＵ（Central Processing Unit）１２、主記憶１３、ＩＯ(Input Output)コントローラ１４、ハードディスク１５、ＣＤ（Compact Disc）／ＤＶＤ（Digital Versatile Disc）ドライブ１６、入出力装置１７、拡張機器１８、及び、ＴＰＭ１９を備えている。ＣＰＵ１２は、主記憶１３及びＩＯコントローラ１４の間でデータ（情報）を入出力する。ＣＰＵ１２は、また、ＩＯコントローラ１４を介して、ハードディスク１５、ＣＤ／ＤＶＤドライブ１６、入出力装置１７、拡張機器１８、及び、ＴＰＭ１９との間でデータを入出力することが可能である。入出力装置１７は、例えば、キーボード、マウス、ディスプレイ等の、ユーザインタフェース機能を備えた装置である。拡張機器１８は、例えばＰＣＩ（Peripheral Component Interconnect）バスに接続可能な、情報処理装置１０の機能を拡張するデバイスである。ハードディスク１５は、大容量記憶装置の一例である。ＣＤ／ＤＶＤドライブ１６は、記録媒体１６０からのデータの読み出しや記録媒体１６０へのデータの書き込みを行なう装置の一例である。
【００２５】
情報処理装置１０は、ＴＰＭ１９を用いたTrusted Bootを行なうことが可能な装置である。即ち、情報処理装置１０は、自装置の完全性を検証する完全性検証装置としての機能を有する。本願では、以降、本実施形態に係る情報処理装置１０が有する完全性検証装置としての機能について、その詳細を説明する。
【００２６】
記憶部１１は、ＢＩＯＳ１１０、設定情報１１３、現在の設定情報１１４、完全性保証情報の期待値１１５、起動モードフラグ１１６、及び、起動制御情報１１７を格納した、不揮発性のフラッシュメモリである。ＣＰＵ１２はＢＩＯＳ１１０を実行することによって、後述する起動処理１１１及び取得処理１１２を実行する。即ち、ＢＩＯＳ１１０は、ＣＰＵ１２が起動処理１１１及び取得処理１１２を実行するためのプログラムを含んでいる。尚、本願では以降、ＣＰＵ１２が起動処理１１１及び取得処理１１２を実行することによって行なう動作に関して、起動処理１１１及び取得処理１１２を、その動作を行なう主体として記載することとする。
【００２７】
起動処理１１１は、記憶部１１に格納されている設定情報１１３を用いて情報処理装置１０に対する設定を行ったのち、情報処理装置１０を起動する。但し、情報処理装置１０に対する設定を行なうとは、例えば、情報処理装置１０の動作環境を制御する情報を保持するメモリ（レジスタ）等に、値を設定することである。
【００２８】
図２は、本実施形態に係る設定情報１１３の構成を概念的に例示する図である。図２に例示する通り、設定情報１１３は、少なくとも、構成番号、登録フラグ、運用モード、ＰＣＩデバイス構成、第１ブートエントリ、第２ブートエントリという項目を含み、これらの項目を関連付ける情報である。
【００２９】
構成番号は、情報処理装置１０が採り得る構成を識別可能な識別子である。運用モードは、情報処理装置１０が採り得る構成ごとに、その運用ポリシーを示す項目である。図２に例示する設定情報１１３では、例えば、構成番号が「１」である構成（以降、本願では「構成１」と称する）に関する運用モードは「高性能」である。即ち、設定情報１１３は、構成１を有する情報処理装置１０は性能が高いことを優先した運用を行なうことを示している。構成１に関して、拡張機器１８に関する構成を表す拡張機器構成は、「全て有効」に設定されている。また、構成１に関して、起動用デバイスとしての優先順位が最も高い第１ブートエントリは「ＨＤＤ」（即ちハードディスク１５）に設定され、起動用デバイスとしての優先順位が２番目に高い第２ブートエントリは「ＣＤ／ＤＶＤ」（即ちＣＤ／ＤＶＤドライブ１６）に設定されている。
【００３０】
図２に例示する設定情報１１３では、例えば、構成番号が「２」である構成（以降、本願では「構成２」と称する）に関する運用モードは「省電力」である。即ち、設定情報１１３は、構成２を有する情報処理装置１０は、省電力を優先した運用を行なうことを示している。構成２では、構成１とは異なり、拡張機器構成は「ＧＰＧＰＵ無効」に設定されている。その理由は、省電力を優先する構成２では、消費電力が高いデバイスであるＧＰＧＰＵ（General-Purpose computing on Graphics Processing Units）を無効にする必要があるからである。
【００３１】
図２に例示する設定情報１１３では、例えば、構成番号が「３」である構成（以降、本願では「構成３」と称する）に関する運用モードは「保守」である。即ち、設定情報１１３は、構成３を有する情報処理装置１０は、保守性を優先した運用を行なうことを示している。構成３では、構成１及び２とは異なり、第１ブートエントリは「Ｎｅｔｗｏｒｋ」に設定されている。その理由は、保守性を優先する構成３では、ネットワーク上から保守用ツールを組み込んだＯＳ等を起動する必要があるからである。
【００３２】
また、設定情報１１３に含まれる登録フラグは、その構成に関する、図１に示す完全性保証情報の期待値１１５が、後述する取得処理１１２によって記憶部１１に登録済みであるか否かを示す項目である。本実施形態に係る登録フラグは、完全性保証情報の期待値１１５が記憶部１１に登録済みである場合に「１」を示すこととする。
【００３３】
起動処理１１１は、記憶部１１に格納されている起動モードフラグが示す値により、情報処理装置１０の起動に関して異なる制御を行う。起動モードフラグ１１６は、情報処理装置１０の起動に関して、情報処理装置１０を通常通りに起動するモードであるのか、あるいは後述する通り、情報処理装置１０が採り得る構成ごとの完全性保証情報の期待値１１５を生成するモードであるのかを示すフラグである。本実施形態では、起動モードフラグ１１６が「０」である場合、情報処理装置１０を通常に立ち上げるモードであることを示し、起動モードフラグ１１６が「１」である場合、完全性保証情報の期待値１１５を生成するモードであることを示すこととする。そして、起動モードフラグ１１６は、例えば、管理端末装置２０を介してユーザによりその値が設定される。そしてユーザは、情報処理装置１０に関する完全性が保証されていることが事前に確認できており、かつ、情報処理装置１０に関する新たな構成が発生した場合などに、起動モードフラグ１１６を「１」に設定することとする。
【００３４】
起動処理１１１は、起動モードフラグ１１６が示す値が「０」である場合、現在の設定情報１１４を用いて情報処理装置１０を通常通りに起動する（立ち上げる）。現在の設定情報１１４は、情報処理装置１０の複数の構成に関する設定情報を表す設定情報１１３のうち、情報処理装置１０の現在の運用構成を実現するために使用される設定情報を表し、例えば、設定情報１１３において、現在の運用構成を示すフラグを設けることによって示されるようにしてもよい。
【００３５】
起動処理１１１は、起動モードフラグ１１６が示す値が「１」である場合、設定情報１１３において、登録フラグが「０」である情報処理装置１０の構成に関して、設定情報１１３を用いて情報処理装置１０に対する設定を行ったのち情報処理装置１０を起動（リブート）するという一連の処理を、選択する構成を変更しながら繰り返し実行する
図１に示す取得処理１１２は、情報処理装置１０が起動する際に使用する起動制御情報１１７に基づいて生成される完全性保証情報を、情報処理装置１０から取得する。但し、起動制御情報１１７は、情報処理装置１０が起動する（ＰＯＳＴを実行する、ＯＳを起動する等）際に情報処理装置１０が参照するデータ（各設定値やプログラム等）を表す。起動制御情報１１７は、例えば、当該データが記憶部１１あるいは主記憶１３に格納されているアドレスを示すようにしてもよい。また、当該完全性保証情報は、ＴＰＭ１９によるExtend機能によって、例えばＴＰＭ１９が備えるＰＣＲに非特許文献１に示す通り格納される、起動制御情報１１７に基づくハッシュ値である。
【００３６】
取得処理１１２は、起動モードフラグ１１６が「１」であることによって、上述した起動処理１１１が、選択する設定情報１１３が示す構成を変更しながら繰り返し情報処理装置１０を起動するのに応じて、完全性保証情報（ハッシュ値）を、情報処理装置１０から取得する。取得処理１１２は、この完全性保証情報を、設定情報１１３における選択した構成の構成番号と関連付けて、完全性保証情報の期待値１１５として、記憶部１１に格納する。即ち、完全性保証情報の期待値１１５は、完全性保証情報のホワイトリストである。
【００３７】
図３は、本実施形態に係る完全性保証情報の期待値１１５の構成を概念的に例示する図である。図３おいてＰＣＲ０乃至ＰＣＲ７等は、非特許文献１に示すＰＣＲの構成に基づくこととする。
【００３８】
図３において、例えばＰＣＲ０に関しては、完全性保証情報の期待値１１５は、構成１乃至構成３とも同じ値を示している。これは、ＰＣＲ０に関する完全性保証情報は、ＢＩＯＳ１１０に固有の値であることに基づく。尚、ＢＩＯＳ１１０自体が更新された場合、ＰＣＲ０に関する完全性保証情報の期待値１１５も更新される。
【００３９】
図３において、例えばＰＣＲ１に関しては、完全性保証情報の期待値１１５は、構成１乃至構成３において値が互いに異なる。これは、ＰＣＲ１に関する完全性保証情報は、情報処理装置１０の構成ごとに異なる値を採ることに基づく。
【００４０】
図３において、例えばＰＣＲ４、ＰＣＲ５に関しては、完全性保証情報の期待値１１５は、構成１及び構成２において値が同じであり、構成３において構成１及び構成２とは異なる値を示している。これは、ＰＣＲ４、ＰＣＲ５に関する完全性保証情報は、情報処理装置１０におけるブートプログラム、パーティション構成等が異なる値を採り、図２に例示する通り、構成３が第１ブートエントリに関して構成１及び構成２とは異なることに基づく。
【００４１】
尚、本願では説明の便宜上、完全性保証情報の期待値１１５を図３に示す通り省略した態様で記載している。完全性保証情報の期待値１１５は、ＴＰＭ１９が用いるハッシュ値の生成アルゴリズム（ハッシュ関数）に基づく値である。ＴＰＭ１９がハッシュ値の生成アルゴリズムとして、例えばＳＨＡ（Secure Hash Algorithm）−１を用いる場合、各ＰＣＲに関する完全性保証情報は２０バイトのデータとなる。また、ＴＰＭ１９がハッシュ値の生成アルゴリズムとして、例えばＳＨＡ−２を用いる場合、各ＰＣＲに関する完全性保証情報は３２バイトのデータとなる。
【００４２】
取得処理１１２は、設定情報１１３における選択した構成の構成番号と関連付けて、完全性保証情報の期待値１１５として記憶部１１に格納したのち、設定情報１１３における当該構成に関する登録フラグを「０」から「１」に更新する。
【００４３】
図１に示す管理端末装置２０は、情報処理装置１０の運用ポリシーの変更、あるいは情報処理装置１０における障害の発生等によって、情報処理装置１０の構成を変更する場合に、ユーザが使用する例えばパーソナルコンピュータ等の端末装置である。管理端末装置２０は、また、情報処理装置１０が新たに起動する際に、取得処理１１２がＴＰＭ１９から読み出した完全性保証情報の計測値と、情報処理装置１０が起動した構成に関する完全性保証情報の期待値１１５とを比較する。
【００４４】
図４は、本実施形態に係る完全性保証情報の期待値１１５と完全性保証情報の計測値とを比較した結果を例示する図である。図４に示す例では、ＰＣＲ１に関して、完全性保証情報の期待値１１５と完全性保証情報の計測値とが異なることを示している。この場合、管理端末装置２０は、起動制御情報１１７が不正に改ざんされたと判定し、その判定結果を、例えば管理端末装置２０の表示画面（図１に不図示）に表示することによってユーザに提示する。
【００４５】
情報処理装置１０は、完全性保証情報の期待値１１５と完全性保証情報の計測値とを管理端末装置２０へ送信する際に、これらの情報が送信される過程において改ざんされないように、例えばこれらの情報を、ＴＰＭ１９を用いて暗号化して送信するようにしてもよい。この場合、管理端末装置２０は、暗号化されたこれらの情報を復号可能な復号キーを保持していることとする。
【００４６】
次に、図５Ａ及び図５Ｂのフローチャートを参照して、本実施形態に係る情報処理装置１０（完全性検証装置）の動作（処理）について詳細に説明する。
【００４７】
情報処理装置１０は、ＰＯＳＴを実行する（ステップＳ１０１）。取得処理１１２は、ＴＰＭ１９のＰＣＲに登録された完全性保証情報の計測値を取得する（ステップＳ１０２）。起動処理１１１は、起動モードフラグ１１６を確認する（ステップＳ１０３）。
【００４８】
起動モードフラグ１１６が「１」でない（即ち「０」である）場合（ステップＳ１０４でＮｏ）、起動処理１１１は、現在の設定情報１１４に基づき、情報処理装置１０を通常通りに起動し（ステップＳ１０５）、全体の処理は終了する。
【００４９】
起動モードフラグ１１６が「１」である場合（ステップＳ１０４でＹｅｓ）、起動処理１１１は、設定情報１１３において、登録フラグが「０」である構成を検索する（ステップＳ１０６）。登録フラグが「０」である構成が存在する場合（ステップＳ１０７でＹｅｓ）、起動処理１１１は、設定情報１１３において、登録フラグが「０」である構成のいずれかを選択する（ステップＳ１０８）。
【００５０】
起動処理１１１は、選択した構成に関する設定情報１１３に基づいて、情報処理装置１０に対する設定を行なう（ステップＳ１０９）。起動処理１１１は、情報処理装置１０をリブートすることにより、ＰＯＳＴを実行する（ステップＳ１１０）。取得処理１１２は、完全性保証情報の計測値を取得し、取得した完全性保証情報の計測値を、選択した構成に関する完全性保証情報の期待値１１５として、記憶部１１に格納する（ステップＳ１１１）。取得処理１１２は、設定情報１１３における選択した構成に関する登録フラグを「０」から「１」に更新し（ステップＳ１１２）、処理はステップＳ１０６へ戻る。
【００５１】
登録フラグが「０」である構成が存在しない場合（ステップＳ１０７でＮｏ）、取得処理１１２は、更新した完全性保証情報の期待値１１５を、管理端末装置２０へ送信する（ステップＳ１１３）。取得処理１１２は、起動モードフラグ１１６を「１」から「０」に更新する（ステップＳ１１４）。
【００５２】
起動処理１１１は、現在の設定情報１１４に基づいて情報処理装置１０に対する設定を行なう（ステップＳ１１５）。起動処理１１１は、情報処理装置１０をリブートし（ステップＳ１１６）、処理はステップＳ１０１へ戻る。
【００５３】
本実施形態に係る情報処理装置１０（完全性検証装置）は、情報処理装置の構成によって値が異なる、情報処理装置の完全性を検証する際に使用する完全性保証情報の期待値を、効率的に取得することができる。その理由は、情報処理装置１０は、情報処理装置１０に関する完全性が保証されているときに、設定情報１１３における選択する構成を変更しながら情報処理装置１０を起動するとともに、その際に取得した完全性保証情報の期待値を選択した構成と関連付けて記憶部１１に記憶することを、繰り返し実行するからである。
【００５４】
以下に、本実施形態に係る情報処理装置１０によって実現される効果について、詳細に説明する。
【００５５】
例えばＴＰＭ用いたTrusted Bootを行なう情報処理装置において、運用開始後にファームウェアの更新が行われたり、あるいは装置構成が変更されたりすることによって、ＴＰＭのＰＣＲに登録される完全性保証情報（ハッシュ値）が変わる場合がある。このような装置構成やファームウェアに関する変更等が行なわれた場合、ユーザは、期待値となるＰＣＲに登録される完全性保証情報を計測する必要がある。しかしながら、多様な構成を採り得る情報処理装置において、全ての構成に関してＰＣＲに登録される完全性保証情報の期待値をユーザが計測することは、情報処理装置の運用に関する効率性（コスト）の観点から、現実的でないという問題がある。
【００５６】
このような問題に対して、本実施形態に係る情報処理装置１０（完全性検証装置）は、記憶部１１を備えるとともに、起動処理１１１と取得処理１１２とを実行することによって、例えば図１乃至図５（図５Ａ及び５Ｂ）を参照して上述した通り動作する。即ち、記憶部１１は、情報処理装置１０が採り得る構成ごとに、当該構成を実現する、情報処理装置１０に対する設定情報１１３を格納している。起動処理１１１は、情報処理装置１０に関する完全性が保証されているときに、設定情報１１３を用いて情報処理装置１０に対する設定を行ったのち、情報処理装置１０を起動することを、選択する設定情報１１３における情報処理装置１０の構成を変更しながら個々の設定情報に関して実行する。取得処理１１２は、情報処理装置１０に関する完全性が保証されているときに、情報処理装置１０が起動する際に使用する起動制御情報１１７に基づいて生成される完全性保証情報の期待値１１５を情報処理装置１０から取得する。そして、取得処理１１２は、取得した完全性保証情報の期待値１１５を当該構成と関連付けて記憶部１１に格納することを、起動処理１１１によって情報処理装置１０が起動される度に実行する。
【００５７】
即ち、本実施形態に係る情報処理装置１０（完全性検証装置）は、多様な構成を採り得る情報処理装置において、採り得る構成に関してＰＣＲに登録される完全性保証情報の期待値を、ユーザの手作業による計測ではなく自動で取得する。これにより、本実施形態に係る情報処理装置１０は、情報処理装置の構成によって値が異なる、情報処理装置の完全性を検証する際に使用する完全性保証情報の期待値を、効率的に取得することができる。
【００５８】
また、本実施形態に係る情報処理装置１０は、上述した完全性保証情報と同等な情報を取得することを実現する、ＴＰＭとは異なる構成を、ＴＰＭ１９の代わりに備えるようにしてもよい。
【００５９】
また、本実施形態に係る起動処理１１１及び取得処理１１２が実現する機能は、ＣＰＵ１２がＢＩＯＳ１１０を実行する構成以外の構成によっても実現可能である。情報処理装置１０は、例えば、起動処理１１１及び取得処理１１２と同等の機能を実現するハードウェアである起動部及び取得部を備えてもよい。
【００６０】
また、本実施形態に係る完全性検証システム１では、情報処理装置１０が、自装置の完全性を検証する完全性検証装置としての機能を有するが、完全性検証システム１は、情報処理装置１０の完全性を検証する完全性検証装置を、情報処理装置１０とは異なる装置として備えるようにしてもよい。
【００６１】
また、本実施形態に係る起動処理１１１及び取得処理１１２を実現する、ＢＩＯＳ１１０等のファームウェア（コンピュータプログラム）の供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体１６０を介して情報処理装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体１６０によって構成されると捉えることができる。
【００６２】
＜第１の実施形態の変形例＞
図６は、本願発明の第１の実施形態の変形例に係る完全性検証システム１Ａの構成を概念的に示すブロック図である。尚、本変形例において、上述した第１の実施形態と機能あるいは内容が同等である構成に関しては、第１の実施形態と同じ番号を付与することによって、その詳細な説明を省略する。
【００６３】
完全性検証システム１Ａは、大別して、情報処理装置３０、管理端末装置２０、及び、ＢＭＣ（Baseboard Management Controller）４０を含んでいる。ＢＭＣ４０は、情報処理装置３０に関する、構成管理や障害処理等を含むシステム管理全般を制御するデバイスである。管理端末装置２０は、ＢＭＣ４０と通信可能に接続されており、ユーザが管理端末装置２０を使用して操作入力した情報は、ＢＭＣ４０を介して情報処理装置３０へ入力される。また、ユーザは、管理端末装置２０を使用してＢＭＣ４０へアクセスすることによって、情報処理装置３０のシステム管理に関する情報を確認可能である。本変形例では、情報処理装置３０とＢＭＣ４０とによって、完全性検証装置１０Ａを構成すると見なすことができる。
【００６４】
本変形例に係る情報処理装置３０は、記憶部３１を除く構成に関しては、上述した第１の実施形態に係る情報処理装置１０と同等の構成を備える。記憶部３１は、ＢＩＯＳ３１０、及び、起動制御情報３１７を格納した、不揮発性のフラッシュメモリである。本変形例に係る起動制御情報３１７は、上述した第１の実施形態に係る起動制御情報１１７に相当する。
【００６５】
ＢＭＣ４０は、記憶部４１を備えている。本変形例では、情報処理装置３０が実行するＯＳによる記憶部４１に対するアクセスは不能であることとする。記憶部４１は、記憶部４１は、現在のＢＩＯＳ設定情報４１１、現在のＢＭＣ設定情報４１２、設定情報４１３、完全性保証情報の期待値４１５、起動モードフラグ１１６を格納した、不揮発性のフラッシュメモリである。本変形例に係る現在のＢＩＯＳ設定情報４１１、及び、現在のＢＭＣ設定情報４１２は、上述した第１の実施形態に係る現在の設定情報１１４に相当する。即ち、本変形例に係る記憶部４１は、第１の実施形態に係る現在の設定情報１１４に相当する情報を、ＢＩＯＳ３１０に関する設定情報を表す現在のＢＩＯＳ設定情報４１１と、ＢＭＣ４０に関する設定情報を表す現在のＢＭＣ設定情報４１２として格納している。本変形例に係る完全性保証情報の期待値４１５は、上述した第１の実施形態に係る完全性保証情報の期待値１１５に相当する。
【００６６】
本変形例に係る設定情報４１３は、上述した第１の実施形態に係る設定情報１１３に相当する。図７は、本変形例に係る設定情報４１３の構成を概念的に例示する図である。図７に例示する通り、設定情報４１３は、図２に例示する第１の実施形態に係る設定情報１１３に加えて、ＣＰＵ構成という項目を含んでいる。このＣＰＵ構成は、ＣＰＵ１２に障害が発生したことによるＣＰＵの縮退構成等を表す項目であり、ＣＰＵの縮退制御はＢＭＣ４０が備える機能である。尚、図６には説明の便宜上、ＣＰＵに関してはＣＰＵ１２のみを記載しているが、情報処理装置３０は、ＣＰＵ１２に加えて図示しないＣＰＵも備えていることとする。
【００６７】
図６に示す本変形例に係る起動処理３１１は、第１の実施形態に係る起動処理１１１と同等の処理を行い、本変形例に係る取得処理３１２は、第１の実施形態に係る取得処理１１２と同等の処理を行う。但し、起動処理３１１及び取得処理３１２は、ＣＰＵ１２がＢＩＯＳ３１０を実行することと、ＢＭＣ４０が備える機能とによって実現される。尚、本変形例に係るＢＩＯＳ３１０は、ＢＭＣ４０からの指示に基づいて情報処理装置３０に対する設定を行なう機能、情報処理装置３０の起動やシャットダウンを行なう機能、及び、ＴＰＭ１９によるExtend機能によって完全性保証情報（ハッシュ値）を取得する機能を備えることとする。以上のことから、起動処理３１１及び取得処理３１２は、ＢＭＣ４０における記憶部４１に格納されている上述した情報を使用して、第１の実施形態に係る起動処理１１１及び取得処理１１２と同等の処理を行うことが可能である。
【００６８】
本変形例に係る完全性検証装置１０Ａは、情報処理装置の構成によって値が異なる、情報処理装置の完全性を検証する際に使用する完全性保証情報の期待値を、効率的に取得することができる。その理由は、第１の実施形態において説明した通りである。
【００６９】
また、本変形例に係る完全性検証装置１０Ａは、完全性を検証するために使用する設定情報４１３や完全性保証情報の期待値４１５等の情報を、情報処理装置３０が実行するＯＳによるアクセスが不能である、ＢＭＣ４０における記憶部４１に格納して管理する。ＯＳのような通信ネットワークを介して外部からアクセス可能であって、複数のプログラム（アプリケーション）が動作する環境は、一般的に、不正アクセスによる攻撃を受けやすいと考えられる。本変形例に係る完全性検証装置１０Ａは、上述した通り、完全性を検証するために使用する情報を、ＯＳから独立した環境において管理するので、より安全性が高いシステムを構築することができる。
【００７０】
＜第２の実施形態＞
図８は、本願発明の第２の実施形態に係る完全性検証装置５０の構成を概念的に示すブロック図である。
【００７１】
本実施形態に係る完全性検証装置５０は、記憶部５１、起動部５２、及び、取得部５３を備えている。
【００７２】
記憶部５１には、情報処理装置６０が採り得る構成ごとに、当該構成を実現する、情報処理装置６０に対する設定情報５１１が格納されている。
【００７３】
起動部５２は、情報処理装置６０に関する完全性が保証されているときに、設定情報５１１を用いて情報処理装置６０に対する設定を行ったのち、情報処理装置６０を起動することを、設定情報５１１が示す複数の設定情報のうち選択する設定情報を変更しながら個々の設定情報に関して実行する。
【００７４】
取得部５３は、情報処理装置６０に関する完全性が保証されているときに、情報処理装置６０が起動する際に使用する起動制御情報６０１に基づいて生成される完全性保証情報の期待値５１２を情報処理装置６０から取得する。そして取得部５３は、取得した完全性保証情報の期待値５１２を当該構成と関連付けて記憶部５１に格納することを、起動部５２によって情報処理装置６０が起動される度に実行する。
【００７５】
本実施形態に係る完全性検証装置５０は、情報処理装置６０の構成によって値が異なる、情報処理装置６０の完全性を検証する際に使用する完全性保証情報の期待値を、効率的に取得することができる。その理由は、完全性検証装置５０は、情報処理装置６０に関する完全性が保証されているときに、設定情報５１１を変更しながら情報処理装置６０を起動するとともに、その際に取得した完全性保証情報の期待値５１２を、選択した設定情報５１１に関する構成と関連付けて記憶部５１に記憶することを、繰り返し実行するからである。
【００７６】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００７７】
１    完全性検証システム
１０    情報処理装置
１０Ａ    完全性検証装置
１１    記憶部
１１０    ＢＩＯＳ
１１１    起動処理
１１２    取得処理
１１３    設定情報
１１４    現在の設定情報
１１５    完全性保証情報の期待値
１１６    起動モードフラグ
１１７    起動制御情報
１２    ＣＰＵ
１３    主記憶
１４    ＩＯコントローラ
１５    ハードディスク
１６    ＣＤ／ＤＶＤドライブ
１６０    記録媒体
１７    入出力装置
１８    拡張機器
１９    ＴＰＭ
２０    管理端末装置
３０    情報処理装置
３１０    ＢＩＯＳ
３１１    起動処理
３１２    取得処理
３１７    起動制御情報
４０    ＢＭＣ
４１    記憶部
４１１    現在のＢＩＯＳ設定情報
４１２    現在のＢＭＣ設定情報
４１３    設定情報
４１５    完全性保証情報の期待値
５０    完全性検証装置
５１    記憶部
５１１    設定情報
５１２    完全性保証情報の期待値
５２    起動部
５３    取得部
６０    情報処理装置
６０１    起動制御情報
【図１】
2019133220.tif 000003
【図２】
2019133220.tif 000004
【図３】
2019133220.tif 000005
【図４】
2019133220.tif 000006
【図５Ａ】
2019133220.tif 000007
【図５Ｂ】
2019133220.tif 000008
【図６】
2019133220.tif 000009
【図７】
2019133220.tif 000010
【図８】
2019133220.tif 000011