(57)【要約】【課題】ＢＩＯＳの不正な改ざんに対する堅牢性を高める。【解決手段】ＢＩＯＳ管理装置３０は、情報処理装置４０が参照するＢＩＯＳ情報４４０が、情報処理装置４０に格納された際にＢＩＯＳ情報４４０の元情報として使用されたＢＩＯＳ元情報３１０を記憶している記憶部３１と、情報処理装置４０が起動する度に異なる演算処理を、ＢＩＯＳ情報４４０とＢＩＯＳ元情報３１０とに対して実行する演算部３２と、ＢＩＯＳ情報４４０に対して当該演算処理が実行された第一の結果と、ＢＩＯＳ元情報３１０に対して当該演算処理が実行された第二の結果と、を比較する比較部３３と、当該第一及び第二の結果が一致する場合に、ＢＩＯＳ情報４４０を実行することによって起動を完了するように情報処理装置４０を制御する制御部３４と、を備える。【選択図】      図３
2019057044.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置が参照するＢＩＯＳ（Basic Input Output System）情報が、前記情報処理装置に格納された際に前記ＢＩＯＳ情報の元情報として使用されたＢＩＯＳ元情報を記憶している記憶手段と、
前記情報処理装置が起動する度に異なる演算処理を、前記ＢＩＯＳ情報と前記ＢＩＯＳ元情報とに対して実行する演算手段と、
前記ＢＩＯＳ情報に対して前記演算処理が実行された第一の結果と、前記ＢＩＯＳ元情報に対して前記演算処理が実行された第二の結果と、を比較する比較手段と、
前記第一及び第二の結果が一致する場合に、前記ＢＩＯＳ情報を実行することによって起動を完了するように前記情報処理装置を制御する制御手段と、
を備えるＢＩＯＳ管理装置。
【請求項２】
前記演算手段は、前記情報処理装置が起動する度に異なる暗号鍵及び復号鍵を生成したのち、生成した前記暗号鍵を使用して、前記ＢＩＯＳ情報と前記ＢＩＯＳ元情報とに対して暗号化を実行し、暗号化した前記ＢＩＯＳ情報と前記ＢＩＯＳ元情報とに対して前記復号鍵を使用して復号を実行する、
請求項１に記載のＢＩＯＳ管理装置。
【請求項３】
前記演算手段は、前記情報処理装置が起動する度に異なるハッシュ関数を生成したのち、生成した前記ハッシュ関数を使用して、前記ＢＩＯＳ情報と前記ＢＩＯＳ元情報とに関するハッシュ値を求める、
請求項１に記載のＢＩＯＳ管理装置。
【請求項４】
前記演算手段は、前記情報処理装置が起動した時間に基づく乱数を生成し、生成した前記乱数を使用した前記演算処理を実行する、
請求項１乃至請求項３のいずれか一項に記載のＢＩＯＳ管理装置。
【請求項５】
前記制御手段は、前記第一及び第二の結果が一致しない場合、前記情報処理装置の起動を中止する、
請求項１乃至請求項４のいずれか一項に記載のＢＩＯＳ管理装置。
【請求項６】
前記制御手段は、前記第一及び第二の結果が一致しない場合、前記ＢＩＯＳ情報を、前記記憶手段に記憶されている前記ＢＩＯＳ元情報に更新したのち、更新された前記ＢＩＯＳ情報を実行するように前記情報処理装置を制御する、
請求項１乃至請求項４のいずれか一項に記載のＢＩＯＳ管理装置。
【請求項７】
請求項１乃至請求項６のいずれか一項に記載のＢＩＯＳ管理装置と、
前記情報処理装置と、
を含むＢＩＯＳ管理システム。
【請求項８】
前記演算手段は、前記ＢＩＯＳ情報に対して前記演算処理を実行するように、前記情報処理装置を制御し、
前記情報処理装置は、前記演算処理を実行することによって得られた結果を、前記演算手段に入力する、
請求項７に記載のＢＩＯＳ管理システム。
【請求項９】
第一の情報処理装置が参照するＢＩＯＳ情報が前記第一の情報処理装置に格納された際に、前記ＢＩＯＳ情報の元情報として使用されたＢＩＯＳ元情報が記憶手段に記憶されている場合に、
第二の情報処理装置によって、
前記第一の情報処理装置が起動する度に異なる演算処理を、前記ＢＩＯＳ情報と前記ＢＩＯＳ元情報とに対して実行し、
前記ＢＩＯＳ情報に対して前記演算処理が実行された第一の結果と、前記ＢＩＯＳ元情報に対して前記演算処理が実行された第二の結果と、を比較し、
前記第一及び第二の結果が一致する場合に、前記ＢＩＯＳ情報を実行することによって起動を完了するように前記第一の情報処理装置を制御する、
ＢＩＯＳ管理方法。
【請求項１０】
情報処理装置が参照するＢＩＯＳ情報が、前記情報処理装置に格納された際に前記ＢＩＯＳ情報の元情報として使用されたＢＩＯＳ元情報を記憶している記憶手段にアクセス可能なコンピュータに、
前記情報処理装置が起動する度に異なる演算処理を、前記ＢＩＯＳ情報と前記ＢＩＯＳ元情報とに対して実行する演算機能と、
前記ＢＩＯＳ情報に対して前記演算処理が実行された第一の結果と、前記ＢＩＯＳ元情報に対して前記演算処理が実行された第二の結果と、を比較する比較機能と、
前記第一及び第二の結果が一致する場合に、前記ＢＩＯＳ情報を実行することによって起動を完了するように前記情報処理装置を制御する制御機能と、
を実現させるためのＢＩＯＳ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、ＢＩＯＳ（Basic Input Output System）の正当性を検証する技術に関する。
【背景技術】
【０００２】
サーバ装置等の情報処理装置を起動し、起動中及び起動後におけるその動作全般を制御するプログラムであるＢＩＯＳが、マルウェア等によって不正に改ざんされた場合、ユーザが知らないうちに機密情報が漏えいするなど、重大なセキュリティ問題が発生する可能性がある。したがって、ＢＩＯＳを不正な改ざんから保護するとともに、情報処理装置が起動する際に使用するＢＩＯＳの正当性を保証する技術への期待が高まってきている。
【０００３】
このような技術に関連する技術として、特許文献１には、安全なブートプロセスを介して、サーバまたはパーソナルコンピュータに記憶された情報を保護するシステムが開示されている。このシステムは、情報の処理及び記憶に関してプロセッサから分離されたコントローラを有し、当該コントローラは暗号化サービスモジュールを有する。このシステムは、ファームウェアの正当性を検証するために、当該コントローラと当該プロセッサとの間で暗号化情報を通信する。
【０００４】
また、特許文献２には、外部デバイスからの入力修正コマンドを検証した後に、内部ＢＩＯＳデータを修正する許可を与えるＢＩＯＳチップが開示されている。このＢＩＯＳチップは、内部ＢＩＯＳデータを保持する第１フラッシュメモリユニットと、セキュリティデータを保持する第２フラッシュメモリユニットと、当該外部装置、第１フラッシュメモリユニット、及び、第２フラッシュメモリユニットに接続された集積コード管理装置とを備える。この集積コード管理装置は、修正コマンドを受信し、セキュリティデータを第２フラッシュメモリユニットに保存する。当該集積コード管理装置は、セキュリティデータを暗号化した暗号化データを生成し、その暗号化データを、復号を行う外部装置に送信する。そして、このＢＩＯＳチップは、外部装置によって復号された復号データを、元のセキュリティデータと比較するために集積コード管理装置へ返信する。そして、このＢＩＯＳチップは、復号データとセキュリティデータとが一致する場合に、内部ＢＩＯＳデータが、外部装置から提供されるデータに置き換えられることを許可する。
【０００５】
また、特許文献３には、ＢＩＯＳを実行して起動するときに、チェックサムエラーを検出する情報処理端末が開示されている。この情報処理端末は、当該チェックサムエラーを検出した場合に、自動的にＢＩＯＳの設定を初期化し、その初期化が終了した場合に、自動的にＢＩＯＳを再実行することによって再起動する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2011-243231号公報
【特許文献２】特開2002-55725号公報
【特許文献３】特開2011-81617号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
情報処理装置が起動する際に使用するＢＩＯＳの正当性を保証するために、例えば、起動時に、マスクＲＯＭ（Read Only Memory）等に格納されているチェック用プログラムによって、ＢＩＯＳの正当性をチェックすることが行なわれている。あるいは、セキュリティチェック用の専用ハードウェアであるＴＰＭ（Trusted Platform Module）を搭載し、ＴＰＭの中に格納された、正当なＢＩＯＳから求められたハッシュ値を用いて、ＢＩＯＳの正当性をチェックすることなども行なわれている。
【０００８】
しかしながら、高度な改ざん機能を備えたマルウェア等は、例えば、上述したチェックに用いられるデータを、改ざん後のＢＩＯＳから求められるデータではなく、正当なＢＩＯＳから求められる値に擬装することなどによって、チェックを巧妙にすり抜ける場合がある。したがって、このような高度な改ざん機能を備えたマルウェアからＢＩＯＳを保護することができるように、ＢＩＯＳの不正な改ざんに対する堅牢性を高めることが課題である。特許文献１乃至３が示す技術は、このような課題を解決するのに、十分であるとは言えない。本願発明の主たる目的は、この問題を解決するＢＩＯＳ管理装置等を提供することである。
【課題を解決するための手段】
【０００９】
本願発明の一態様に係るＢＩＯＳ管理装置は、情報処理装置が参照するＢＩＯＳ（Basic Input Output System）情報が、前記情報処理装置に格納された際に前記ＢＩＯＳ情報の元情報として使用されたＢＩＯＳ元情報を記憶している記憶手段と、前記情報処理装置が起動する度に異なる演算処理を、前記ＢＩＯＳ情報と前記ＢＩＯＳ元情報とに対して実行する演算手段と、前記ＢＩＯＳ情報に対して前記演算処理が実行された第一の結果と、前記ＢＩＯＳ元情報に対して前記演算処理が実行された第二の結果と、を比較する比較手段と、前記第一及び第二の結果が一致する場合に、前記ＢＩＯＳ情報を実行することによって起動を完了するように前記情報処理装置を制御する制御手段と、を備える。
【００１０】
上記目的を達成する他の見地において、本願発明の一態様に係るＢＩＯＳ管理方法は、第一の情報処理装置が参照するＢＩＯＳ情報が前記第一の情報処理装置に格納された際に、前記ＢＩＯＳ情報の元情報として使用されたＢＩＯＳ元情報が記憶手段に記憶されている場合に、第二の情報処理装置によって、前記第一の情報処理装置が起動する度に異なる演算処理を、前記ＢＩＯＳ情報と前記ＢＩＯＳ元情報とに対して実行し、前記ＢＩＯＳ情報に対して前記演算処理が実行された第一の結果と、前記ＢＩＯＳ元情報に対して前記演算処理が実行された第二の結果と、を比較し、前記第一及び第二の結果が一致する場合に、前記ＢＩＯＳ情報を実行することによって起動を完了するように前記第一の情報処理装置を制御する。
【００１１】
また、上記目的を達成する更なる見地において、本願発明の一態様に係るＢＩＯＳ管理プログラムは、情報処理装置が参照するＢＩＯＳ情報が、前記情報処理装置に格納された際に前記ＢＩＯＳ情報の元情報として使用されたＢＩＯＳ元情報を記憶している記憶手段にアクセス可能なコンピュータに、前記情報処理装置が起動する度に異なる演算処理を、前記ＢＩＯＳ情報と前記ＢＩＯＳ元情報とに対して実行する演算機能と、前記ＢＩＯＳ情報に対して前記演算処理が実行された第一の結果と、前記ＢＩＯＳ元情報に対して前記演算処理が実行された第二の結果と、を比較する比較機能と、前記第一及び第二の結果が一致する場合に、前記ＢＩＯＳ情報を実行することによって起動を完了するように前記情報処理装置を制御する制御機能と、をコンピュータに実行させるためのプログラムである。
【００１２】
更に、本願発明は、係るＢＩＯＳ管理プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１３】
本願発明は、ＢＩＯＳの不正な改ざんに対する堅牢性を高めることを可能とする。
【図面の簡単な説明】
【００１４】
【図１】本願発明の第１の実施形態に係るＢＩＯＳ管理システム１の構成を概念的に示すブロック図である。
【図２Ａ】本願発明の第１の実施形態に係るＢＩＯＳ管理システム１の動作を示すフローチャート（１／２）である。
【図２Ｂ】本願発明の第１の実施形態に係るＢＩＯＳ管理システム１の動作を示すフローチャート（２／２）である。
【図３】本願発明の第２の実施形態に係るＢＩＯＳ管理装置３０の構成を概念的に示すブロック図である。
【図４】本願発明の各実施形態に係るＢＩＯＳ管理装置を実行可能な情報処理装置９００の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１６】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係るＢＩＯＳ管理システム１の構成を概念的に示すブロック図である。ＢＩＯＳ管理システム１は、大別して、ＢＩＯＳ管理装置１０、及び、本体系装置（情報処理装置）２０を有している。ＢＩＯＳ管理システム１は、例えば、１つのサーバ装置として構成されてもよい。
【００１７】
本体系装置２０は、様々なアプリケーション（ソフトウェア）を実行することによって、様々なサービスを提供する装置である。本体系装置２０は、ＣＰＵ（Central Processing Unit）２１、主記憶２２、Ｉ／Ｏ（Input / Output）制御部（チップセット）２３、及び、ＢＩＯＳ−ＲＯＭ２４を備える。ＣＰＵ２１は、ＢＩＯＳ管理システム１の電源がオンされたときに、ＢＩＯＳ−ＲＯＭ２４に格納されているＢＩＯＳ情報２４０を、Ｉ／Ｏ制御部２３を介して読み出す。そしてＣＰＵ２１は、読み出したＢＩＯＳ情報２４０を参照及び実行することによって、本体系装置２０を起動する処理を行う。尚、ＢＩＯＳ−ＲＯＭ２４は、例えば、書き換え可能であって不揮発性を有するメモリであるフラッシュＲＯＭである。
【００１８】
ＢＩＯＳ管理装置（ＢＭＣ：Baseboard Management Controller）１０は、本体系装置２０に対して、動作環境や障害処理などに関する制御を行なう。ＢＩＯＳ管理装置１０は、ＢＩＯＳ管理システム１の電源オン／オフに伴い、ＢＩＯＳ情報２４０の実行開始／実行中止を制御する機能を備える。ＢＩＯＳ管理装置１０は、また、ユーザがコンソール端末（不図示）を使用して、ＢＩＯＳ管理システム１の状態を監視する際に、当該コンソール端末との間における情報の入出力を制御する機能を備える。ＢＩＯＳ管理装置１０は、また、ＢＩＯＳ情報２４０をＢＩＯＳ−ＲＯＭ２４へ格納する（ＢＩＯＳ情報２４０を更新する）ことを制御する機能を備える。
【００１９】
ＢＩＯＳ管理装置１０は、記憶部１１、演算部１２、比較部１３、及び、制御部１４を備える。記憶部１１における記憶制御機能、演算部１２、比較部１３、及び、制御部１４は、図４を参照してＢＩＯＳ管理装置１０のハードウェア構成例に関して後述するように、例えば、ＢＩＯＳ管理装置１０の機能を実現するＢＭＣファームウェアに実装されてもよい。
【００２０】
記憶部１１は、不揮発メモリ等の、不揮発性を有する記憶デバイスである。記憶部１１には、ＢＩＯＳ元情報１１０が格納されている。ＢＩＯＳ元情報１１０は、ＢＩＯＳ情報２４０として、本体系装置２０におけるＢＩＯＳ−ＲＯＭ２４へ格納される元情報である。
【００２１】
ＢＩＯＳ管理装置１０は、例えば、図４に示す入出力インタフェース９０９を介して、通信ネットワークに接続された外部の装置からＢＩＯＳ元情報１１０を取得する。記憶部１１は、あるいは、図４に示す記録媒体（アップデート媒体）９０７を介して、ＢＩＯＳ元情報１１０を取得する。尚、記録媒体９０７は、ＢＩＯＳ元情報１１０が格納された記憶領域の他、ＢＩＯＳ元情報１１０に関する付属情報等が格納されたヘッダ領域を含んでいる。
【００２２】
演算部１２は、ＢＩＯＳ管理システム１の電源がオンされることによって本体系装置２０の起動が開始する度に異なる演算処理を、ＢＩＯＳ情報２４０とＢＩＯＳ元情報１１０とに対して実行する機能を備える。
【００２３】
より具体的には、演算部１２は、例えば、本体系装置２０が起動した時間に基づく乱数を発生する。但し、演算部１２は、時計等の計時機能を有するデバイス（不図示）を備えることとする。そして、演算部１２は、生成した乱数を使用することによって、本体系装置２０の起動が開始する度に異なる暗号鍵１２０と復号鍵１２１とを生成する。暗号鍵１２０及び復号鍵１２１の生成については、例えばＲＳＡ（Rivest-Shamir-Adleman cryptosystem）等の既存の技術を使用可能であるので、本願では、その詳細な説明を省略する。
【００２４】
演算部１２は、生成した暗号鍵１２０を用いて、記憶部１１に格納されているＢＩＯＳ元情報を暗号化する。演算部１２は、生成した暗号鍵１２０を本体系装置２０に送信し、暗号鍵１２０によりＢＩＯＳ−ＲＯＭ２４に格納されているＢＩＯＳ情報２４０を暗号化するように、本体系装置２０を制御する。演算部１２は、暗号鍵１２０により暗号化されたＢＩＯＳ元情報１１０とＢＩＯＳ情報２４０とを、生成した復号鍵１２１を用いて復号する。
【００２５】
比較部１３は、演算部１２によってＢＩＯＳ情報２４０に関して復号された結果（第一の結果）と、演算部１２によってＢＩＯＳ元情報１１０に関して復号された結果（第二の結果）とが一致するか否かを確認する。比較部１３は、この比較結果を、制御部１４へ入力する。
【００２６】
制御部１４は、比較部１３から入力された比較結果が、第一及び第二の結果が一致することを示す場合、ＢＩＯＳ−ＲＯＭ２４に格納されているＢＩＯＳ情報２４０は、マルウェア等による改ざんが行なわれていない正当なＢＩＯＳ情報であると判定する。この場合、
制御部１４は、ＢＩＯＳ情報２４０を実行することによって起動を完了するように本体系装置２０を制御する。
【００２７】
制御部１４は、比較部１３から入力された比較結果が、第一及び第二の結果が一致しないことを示す場合、ＢＩＯＳ−ＲＯＭ２４に格納されているＢＩＯＳ情報２４０は、マルウェア等による改ざんが行なわれた可能性がある不正なＢＩＯＳ情報であると判定する。この場合、制御部１４は、ＢＩＯＳ情報２４０による起動を中止するように本体系装置２０を制御する。
【００２８】
この場合、制御部１４は、改ざんが行なわれた可能性があるＢＩＯＳ情報２４０を、正当なＢＩＯＳ情報に更新し、更新したＢＩＯＳ情報２４０を実行することによって起動を完了するように本体系装置２０を制御するようにしてもよい。即ち、制御部１４は、ＢＩＯＳ−ＲＯＭ２４に格納されているＢＩＯＳ情報２４０を、記憶部１１に格納されているＢＩＯＳ元情報１１０に更新する。そして制御部１４は、ＢＩＯＳ元情報１１０に更新したＢＩＯＳ情報２４０を実行することによって起動を完了するように本体系装置２０を制御する。
【００２９】
次に、図２Ａ及び図２Ｂのフローチャートを参照して、本実施形態に係るＢＩＯＳ管理システム１の動作（処理）について詳細に説明する。
【００３０】
例えばユーザによって、ＢＩＯＳ管理システム１の電源がオンされることにより、本体系装置２０の起動が開始する（ステップＳ１０１）。演算部１２は、本体系装置２０が起動した時間に基づく乱数を生成し、生成した乱数を使用することによって、暗号鍵１２０及び復号鍵１２１を生成する（ステップＳ１０２）。
【００３１】
演算部１２は、本体系装置２０に生成した暗号鍵１２０を送信し、暗号鍵１２０によりＢＩＯＳ情報２４０を暗号化するように、本体系装置２０を制御する（ステップＳ１０３）。演算部１２は、暗号鍵１２０を使用して、ＢＩＯＳ元情報１１０を暗号化する（ステップＳ１０４）。
【００３２】
所定の時間内に、演算部１２が、本体系装置２０から、ＢＩＯＳ情報２４０が暗号化された情報を入手しない場合（ステップＳ１０５でＮｏ）、処理はステップＳ１１０へ進む。所定の時間内に、演算部１２が、本体系装置２０から、ＢＩＯＳ情報２４０が暗号化された情報を入手した場合（ステップＳ１０５でＹｅｓ）、演算部１２は、暗号化されたＢＩＯＳ情報２４０、及び、暗号化されたＢＩＯＳ元情報１１０を、生成した復号鍵１２１により復号する（ステップＳ１０６）。
【００３３】
比較部１３は、ＢＩＯＳ情報２４０に関して復号された結果（第一の結果）と、ＢＩＯＳ元情報１１０に関して復号された結果（第二の結果）とを比較する（ステップＳ１０７）。第一及び第二の結果が一致する場合（ステップＳ１０８でＹｅｓ）、制御部１４は、ＢＩＯＳ−ＲＯＭ２４に格納されているＢＩＯＳ情報２４０を実行することによって起動を完了するように、本体系装置２０を制御し（ステップＳ１０９）、全体の処理は終了する。
【００３４】
第一及び第二の結果が一致しない場合（ステップＳ１０８でＮｏ）、制御部１４は、ＢＩＯＳ情報２４０を実行することによる、本体系装置２０の起動を中止する（ステップＳ１１０）。制御部１４は、ＢＩＯＳ−ＲＯＭ２４に格納されているＢＩＯＳ情報２４０を、記憶部１１に格納されているＢＩＯＳ元情報１１０に更新する（ステップＳ１１１）。制御部１４は、ＢＩＯＳ元情報１１０に更新されたＢＩＯＳ情報２４０を実行することにより起動を完了するように、本体系装置２０を制御し（ステップＳ１１２）、全体の処理は終了する。
【００３５】
本実施形態に係るＢＩＯＳ管理装置１０は、ＢＩＯＳの不正な改ざんに対する堅牢性を高めることができる。その理由は、ＢＩＯＳ管理装置１０は、本体系装置２０が起動する度に異なる演算処理を、ＢＩＯＳ情報２４０とＢＩＯＳ元情報１１０とに対して実行し、その２つの演算処理の結果が一致する場合に、ＢＩＯＳ情報２４０を実行することによって起動を完了するように本体系装置２０を制御するからである。
【００３６】
以下に、本実施形態に係るＢＩＯＳ管理装置１０によって実現される効果について、詳細に説明する。
【００３７】
情報処理装置が起動する際に使用するＢＩＯＳの正当性を保証するために、例えば、起動時に、チェック用プログラムによって、ＢＩＯＳの正当性をチェックすることが行なわれている。あるいは、ＴＰＭを搭載し、ＴＰＭの中に格納された、正当なＢＩＯＳから求められたハッシュ値を用いて、ＢＩＯＳの正当性をチェックすることなども行なわれている。しかしながら、高度な改ざん機能を備えたマルウェア等は、例えば、上述したチェックに用いられるデータを、改ざん後のＢＩＯＳから求められるデータではなく、正当なＢＩＯＳから求められる値に擬装することなどによって、チェックを巧妙にすり抜ける場合がある。
【００３８】
例えば、図１に示す例では、ＢＩＯＳ情報２４０がＢＩＯＳ元情報１１０と一致することをもって、ＢＩＯＳ情報２４０が不正に改ざんされていない正当なＢＩＯＳ情報であることを保証可能である。この場合、ＢＩＯＳ情報２４０とＢＩＯＳ元情報１１０とを単に比較するのみでは、ＢＩＯＳ情報２４０が正当なＢＩＯＳ情報であることを保証するのに十分であるとは言えない。なぜなら、ＢＩＯＳ情報２４０がＢＩＯＳ−ＲＯＭ２４から読み出される際に、ＢＩＯＳ情報２４０を不正に改ざんしたマルウェアは、ＢＩＯＳ情報２４０が改ざんされる前の状態でＢＩＯＳ−ＲＯＭ２４から読み出されるように擬装する可能性があるからである。
【００３９】
また、ＢＩＯＳ情報２４０とＢＩＯＳ元情報１１０とに対して所定の演算処理（例えば暗号化処理及び復号処理等）を行うことによって、ＢＩＯＳ情報２４０を不正に改ざんしたマルウェアが上述したような擬装を行いにくくすることができる。しかしながら、その演算処理の内容が固定されている場合、マルウェアは、当該演算処理に対応した擬装を行なう可能性がある。したがって、このような高度な改ざん機能や擬装機能を備えたマルウェアからＢＩＯＳを保護することができるように、ＢＩＯＳの不正な改ざんに対する堅牢性を高めることが課題である。
【００４０】
このような課題に対して、本実施形態に係るＢＩＯＳ管理装置１０は、記憶部１１と、演算部１２と、比較部１３と、制御部１４と、を備え、例えば図１乃至図３を参照して上述した通り動作する。即ち、記憶部１１は、本体系装置（情報処理装置）２０が参照するＢＩＯＳ情報２４０が、本体系装置２０に格納された際にＢＩＯＳ情報２４０の元情報として使用されたＢＩＯＳ元情報１１０を記憶している。演算部１２は、本体系装置２０が起動する度に異なる演算処理（例えば暗号化処理及び復号処理）を、ＢＩＯＳ情報２４０とＢＩＯＳ元情報１１０とに対して実行する。比較部１３は、ＢＩＯＳ情報２４０に対して当該演算処理が実行された第一の結果と、ＢＩＯＳ元情報１１０に対して演算処理が実行された第二の結果と、を比較する。そして、制御部１４は、当該第一及び第二の結果が一致する場合に、ＢＩＯＳ情報２４０を実行することによって起動を完了するように本体系装置２０を制御する。
【００４１】
即ち、本実施形態に係るＢＩＯＳ管理装置１０がＢＩＯＳ情報２４０とＢＩＯＳ元情報１１０とに対して行なう演算処理の内容は、本体系装置２０が起動する度に異なる。このため、ＢＩＯＳ情報２４０を不正に改ざんしたマルウェアが、このように毎回異なる演算処理に対応した擬装を行なうことは、非常に困難となる。したがって、本実施形態に係るＢＩＯＳ管理装置１０は、ＢＩＯＳの不正な改ざんに対する堅牢性を高めることができる。
【００４２】
また、本実施形態に係る演算部１２がＢＩＯＳ情報２４０とＢＩＯＳ元情報１１０とに対して実行する演算処理は、暗号化処理及び復号処理に限定されない。演算部１２は、例えば、本体系装置２０が起動する度に異なるハッシュ関数を、本体系装置２０が起動した時間に基づく乱数を使用して生成する。そして演算部１２は、生成したハッシュ関数を使用して、ＢＩＯＳ情報２４０とＢＩＯＳ元情報１１０とに関するハッシュ値を求めてもよい。
【００４３】
また、本実施形態に係るＢＩＯＳ管理装置１０は、ＢＩＯＳ情報２４０が不正に改ざんされていることを検出した場合、ＢＩＯＳ情報２４０を実行することによる、本体系装置２０の起動を中止する。ＢＩＯＳ管理装置１０は、こののち、改ざんされたＢＩＯＳ情報２４０を、ＢＩＯＳ元情報１１０に更新し、更新されたＢＩＯＳ情報２４０を実行することにより起動を完了するように、本体系装置２０を制御可能である。したがって、本実施形態に係るＢＩＯＳ管理装置１０は、改ざんされたＢＩＯＳ情報２４０を復旧する作業を自動で行なうので、ユーザの負担を軽減するとともに、復旧に要する時間を短縮することができる。
【００４４】
＜第２の実施形態＞
図３は、本願発明の第２の実施形態に係るＢＩＯＳ管理装置３０の構成を概念的に示すブロック図である。
【００４５】
実施形態に係るＢＩＯＳ管理装置３０は、記憶部３１、演算部３２、比較部３３、及び、制御部３４を備えている。
【００４６】
記憶部３１は、情報処理装置が参照するＢＩＯＳ情報４４０が、情報処理装置４０に格納された際にＢＩＯＳ情報４４０の元情報として使用されたＢＩＯＳ元情報３１０を記憶している。
【００４７】
演算部３２は、情報処理装置４０が起動する度に異なる演算処理を、ＢＩＯＳ情報４４０とＢＩＯＳ元情報３１０とに対して実行する。
【００４８】
比較部３３は、ＢＩＯＳ情報４４０に対して当該演算処理が実行された第一の結果と、ＢＩＯＳ元情報３１０に対して当該演算処理が実行された第二の結果と、を比較する。
【００４９】
制御部３４は、当該第一及び第二の結果が一致する場合に、ＢＩＯＳ情報４４０を実行することによって起動を完了するように情報処理装置４０を制御する。
【００５０】
本実施形態に係るＢＩＯＳ管理装置３０は、ＢＩＯＳの不正な改ざんに対する堅牢性を高めることができる。その理由は、ＢＩＯＳ管理装置３０は、情報処理装置４０が起動する度に異なる演算処理を、ＢＩＯＳ情報４４０とＢＩＯＳ元情報３１０とに対して実行し、その２つの演算処理の結果が一致する場合に、ＢＩＯＳ情報４４０を実行することによって起動を完了するように情報処理装置４０を制御するからである。
【００５１】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図３に示したＢＩＯＳ管理装置における各部は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、図１、及び、図３において、少なくとも、下記構成は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。
・記憶部１１、及び、３１における記憶制御機能、
・演算部１２、及び、３２、
・比較部１３、及び、３３、
・制御部１４、及び、３４。
【００５２】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図４を参照して説明する。
【００５３】
図４は、本願発明の各実施形態に係るＢＩＯＳ管理装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図４は、図１、及び、図３に示したＢＩＯＳ管理装置を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００５４】
図４に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・外部装置との通信インタフェース９０５、
・バス９０６（通信線）、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・入出力インタフェース９０９。
【００５５】
即ち、上記構成要素を備える情報処理装置９００は、これらの構成がバス９０６を介して接続された一般的なコンピュータである。情報処理装置９００は、ＣＰＵ９０１を複数備える場合もあれば、マルチコアにより構成されたＣＰＵ９０１を備える場合もある。
【００５６】
そして、上述した実施形態を例に説明した本願発明は、図４に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１、及び、図３）における上述した構成、或いはフローチャート（図２Ａ及び図２Ｂ）の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）、または、ＲＯＭ９０２やハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００５７】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【００５８】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００５９】
１    ＢＩＯＳ管理システム
１０    ＢＩＯＳ管理装置
１１    記憶部
１１０    ＢＩＯＳ元情報
１２    演算部
１２０    暗号鍵
１２１    復号鍵
１３    比較部
１４    制御部
２０    本体系装置
２１    ＣＰＵ
２２    主記憶
２３    Ｉ／Ｏ制御部
２４    ＢＩＯＳ−ＲＯＭ
２４０    ＢＩＯＳ情報
３０    ＢＩＯＳ管理装置
３１    記憶部
３１０    ＢＩＯＳ元情報
３２    演算部
３３    比較部
３４    制御部
４０    情報処理装置
４４０    ＢＩＯＳ情報
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク（記憶装置）
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2019057044.tif 000003
【図２Ａ】
2019057044.tif 000004
【図２Ｂ】
2019057044.tif 000005
【図３】
2019057044.tif 000006
【図４】
2019057044.tif 000007