(57)【特許請求の範囲】
【請求項１】
スロットの位置情報に対応付けて、当該スロットの拡張カードを初期化するための第１のプログラム、及び、当該拡張カードに接続された記憶装置に格納されている、オペレーティングシステムを起動するための第２のプログラムの正当性を判定するための認証データの識別情報を格納するデータ格納部と、
指定された第１のスロットの位置情報に対応付けて前記データ格納部に格納されている第１の識別情報によって前記認証データを特定し、当該認証データで、前記第１のスロットの第１の拡張カードから読み出した前記第１のプログラム、及び、前記第１の拡張カードに接続された第１の記憶装置から読み出した前記第２のプログラムが正当であるか判定する認証部と、
を有する情報処理装置。
【請求項２】
前記第１の識別情報によって特定された前記認証データは、前記第１の拡張カードから読み出した前記第１のプログラムの正当性を判定するための第１の認証データと、前記第１の記憶装置から読み出した前記第２のプログラムの正当性を判定するための第２の認証データとを含み、
前記認証部は、
前記第１の拡張カードから読み出した前記第１のプログラムが正当であると前記第１の認証データで判定した場合に、前記第１の記憶装置から読み出した前記第２のプログラムの正当性を前記第２の認証データで判定する、
請求項１記載の情報処理装置。
【請求項３】
ログイン情報の入力を受け付けた場合、当該ログイン情報に含まれるデータによって特定されたユーザ種別に応じて、起動方法をユーザに作成させるための第１の画面又は起動方法の指定を受け付けるための第２の画面のデータを表示装置に表示する表示処理部
をさらに有する請求項１又は２記載の情報処理装置。
【請求項４】
前記第１の画面のデータを確認したユーザから、スロットの位置、拡張カードの種類及びオペレーティングシステムの種類の指定を受け付けた場合、指定された前記スロットの位置情報に対応付けて、指定された前記拡張カードから読み出した前記第１のプログラム及び指定された前記オペレーティングシステムを起動するための前記第２のプログラムの正当性を判定するための認証データの識別情報を、前記データ格納部に格納する第１受付部
をさらに有する請求項３記載の情報処理装置。
【請求項５】
前記第２の画面のデータを確認したユーザから、前記第１のスロットの位置、当該第１のスロットに搭載される拡張カードの種類、及びオペレーティングシステムの種類の指定を受け付ける第２受付部
をさらに有する請求項３記載の情報処理装置。
【請求項６】
コンピュータが、
スロットの位置情報に対応付けて、当該スロットの拡張カードを初期化するための第１のプログラム、及び、当該拡張カードに接続された記憶装置に格納されている、オペレーティングシステムを起動するための第２のプログラムの正当性を判定するための認証データの識別情報を格納するデータ格納部に、指定された第１のスロットの位置情報に対応付けて格納されている第１の識別情報によって、前記認証データを特定し、
特定された前記認証データで、前記第１のスロットの第１の拡張カードから読み出した前記第１のプログラム、及び、前記第１の拡張カードに接続された第１の記憶装置から読み出した前記第２のプログラムが正当であるか判定する、
処理を実行する認証方法。
【請求項７】
コンピュータに、
スロットの位置情報に対応付けて、当該スロットの拡張カードを初期化するための第１のプログラム、及び、当該拡張カードに接続された記憶装置に格納されている、オペレーティングシステムを起動するための第２のプログラムの正当性を判定するための認証データの識別情報を格納するデータ格納部に、指定された第１のスロットの位置情報に対応付けて格納されている第１の識別情報によって、前記認証データを特定し、
特定された前記認証データで、前記第１のスロットの第１の拡張カードから読み出した前記第１のプログラム、及び、前記第１の拡張カードに接続された第１の記憶装置から読み出した前記第２のプログラムが正当であるか判定する、
処理を実行する認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの起動技術に関する。
【背景技術】
【０００２】
サーバの起動時、ＢＩＯＳ（Basic Input/Output System）はＰＣＩ（Peripheral Component Interconnect）カードからＥＦＩ（Extensible Firmware Interface）ドライバを読み出し、読み出したＥＦＩドライバを使用してＰＣＩカードを初期化する。ＰＣＩカードに接続されたデバイス（例えば、ＨＤＤ（Hard Disk Drive）或いはＤＶＤ（Digital Versatile Disc）ドライブ等）にＯＳ（Operating System）がインストールされている場合、デバイスにはＯＳローダが格納されているので、ＯＳローダを実行することでＯＳを起動することができる。
【０００３】
ＯＳの起動に関しては、ＵＥＦＩ（Unified Extensible Firmware Interface）仕様にセキュアブートという技術が定義されている。セキュアブートにおいては、ＮＶＲＡＭ（Non Volatile Random Access Memory）に格納された認証キーによって、ＥＦＩドライバ及びＯＳローダの正当性が判定される。セキュアブートにおいて使用される認証キーは、公開鍵又はハッシュ値であり、公開鍵によってＥＦＩドライバ及びＯＳローダに含まれるデジタル署名の正当性が確認されるか、又は、ハッシュ値によってＥＦＩドライバ自体及びＯＳローダ自体の正当性が確認される。
【０００４】
セキュアブートにおいて使用される認証キーの中には、複数種類のＰＣＩカードのＥＦＩドライバ及び複数種類のＯＳのＯＳローダの認証に対応しているものが有る。このような認証キーを使用した場合、改竄されたＥＦＩドライバ及びＯＳローダを実行することを回避することはできる。しかし、この認証キーによって正当性が確認されるＥＦＩドライバ及びＯＳローダであれば、第三者が用意したデバイスを使用したとしてもＯＳを起動することができる。また、保守員が保守ツール等の専用ＯＳを起動すべきケースにおいて、誤って業務ＯＳを起動してしまう可能性が有る。
【０００５】
このような問題に着目した従来技術は存在しない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−６６２１６号公報
【特許文献２】特開２０１０−１０８３１３号公報
【特許文献３】特表２００７−５２５７５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
セキュリティを確保するために、認証キーを使用してＯＳの起動にかかるＥＦＩドライバ及びＯＳローダを認証したとしても、望まないＥＦＩドライバ及びＯＳローダによってＯＳが起動されることを避けられないことがある。
【０００８】
本発明の目的は、１つの側面では、誤ったデバイスからＯＳを起動することを防ぐための技術を提供することである。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、スロットの位置情報に対応付けて、当該スロットの拡張カードを初期化するための第１のプログラム、及び、当該拡張カードに接続された記憶装置に格納されている、オペレーティングシステムを起動するための第２のプログラムの正当性を判定するための認証データの識別情報を格納するデータ格納部と、指定された第１のスロットの位置情報に対応付けてデータ格納部に格納されている第１の識別情報によって認証データを特定し、当該認証データで、第１のスロットの第１の拡張カードから読み出した第１のプログラム、及び、第１の拡張カードに接続された第１の記憶装置から読み出した第２のプログラムが正当であるか判定する認証部とを有する。
【発明の効果】
【００１０】
１つの側面では、誤ったデバイスからＯＳを起動することを防ぐことができるようになる。
【図面の簡単な説明】
【００１１】
【図１】図１は、サーバのハードウエア構成を示す図である。
【図２】図２は、管理コントローラのハードウエア構成を示す図である。
【図３】図３は、管理コントローラの機能ブロック図である。
【図４】図４は、デバイスパステーブル格納部に格納されるデバイスパステーブルの一例を示す図である。
【図５】図５は、ハッシュテーブル格納部に格納されるハッシュテーブルの一例を示す図である。
【図６】図６は、管理コントローラが実行する処理の処理フローを示す図である。
【図７】図７は、認証データセットの生成用画面の一例を示す図である。
【図８】図８は、デバイスパス認証テーブルの一例を示す図である。
【図９】図９は、一般的なセキュアブートにおいて使用されるＤＢ（DataBase）及びＤＢｘについて説明するための図である。
【図１０】図１０は、認証データセット格納部に格納されるデータの一例を示す図である。
【図１１】図１１は、管理コントローラが実行する処理の処理フローを示す図である。
【図１２】図１２は、ブート方法の指定用画面の一例を示す図である。
【図１３】図１３は、電源制御用画面の一例を示す図である。
【図１４】図１４は、ユーザによって電源投入が指示された場合に実行される処理の処理フローを示す図である。
【図１５】図１５は、第１認証処理の処理フローを示す図である。
【図１６】図１６は、第２認証処理の処理フローを示す図である。
【図１７】図１７は、ＮＶＲＡＭ領域の節約について説明するための図である。
【発明を実施するための形態】
【００１２】
図１に、本実施の形態におけるサーバ１のハードウエア構成を示す。管理コントローラ１０は、例えばＢＭＣ（Baseboard Management Controller）であり、サーバ１内のハードウエアの監視等を実行する。ＰＣＨ（Platform Controller Hub）１１は管理コントローラ１０に接続されており、Ｉ／Ｏ（Input and Output）の制御等を実行する。ＲＯＭ（Read Only Memory）１２はＰＣＨ１１に接続されており、ＢＩＯＳ１２０のプログラムを格納しており、ＢＩＯＳ１２０は、認証処理部１２１を含む。ＤＶＤドライブ１６はＰＣＨ１１に接続されており、ＤＶＤに記録されたデータを読み出す。
【００１３】
ＣＰＵ（Central Processing Unit）１３はＰＣＨ１１に接続されており、ＢＩＯＳ１２０のプログラム、ＥＦＩドライバ１ｅ乃至３ｅ及びＯＳローダ１７０等をメモリ１４に読み出して実行する。メモリ１４は例えば主記憶であり、ＣＰＵ１３に接続されている。ＰＣＩスイッチ１５はＣＰＵ１３に接続されており、ＣＰＵ１３とＰＣＩカード１ｃ乃至３ｃとの間のデータの中継を実行する。ＰＣＩカード１ｃ乃至３ｃはＰＣＩスロットに搭載される拡張カードであり、ＰＣＩカード１ｃの記憶装置にはＥＦＩドライバ１ｅが格納されており、ＰＣＩカード２ｃの記憶装置にはＥＦＩドライバ２ｅが格納されており、ＰＣＩカード３ｃの記憶装置にはＥＦＩドライバ３ｅが格納されている。ＨＤＤ１７はＰＣＩカード１ｃに接続されており、ＨＤＤ１７にはＯＳローダ１７０が格納される。なお、ＰＣＩスロットの数及びＰＣＩカードの数に限定は無い。また、ＤＶＤドライブ１６及びＨＤＤ１７は外付けされてもよい。
【００１４】
管理コントローラ１０は、ユーザからの入力を受け付け、受け付けた入力に応じた処理を実行する。本実施の形態におけるユーザは、全権限を有する管理者、サーバ１の運用に関する権限を有するオペレータ、又はハードウエアの動作確認に関する権限だけを有する保守員である。
【００１５】
図２に、管理コントローラ１０のハードウエア構成を示す。管理コントローラ１０は、ＣＰＵ１５０と、例えば主記憶であるメモリ１５１と、ＮＶＲＡＭ１５２と、バス１５３とを有する。ＣＰＵ１５０と、メモリ１５１と、ＮＶＲＡＭ１５２とは、バス１５３によって接続される。
【００１６】
図３に、管理コントローラ１０の機能ブロック図を示す。管理コントローラ１０は、デバイスパステーブル格納部１０１と、ハッシュテーブル格納部１０２と、生成部１０３と、選択受付部１０４と、電源制御部１０５と、表示処理部１０６と、認証データセット格納部１ｄ乃至３ｄとを含む。生成部１０３、選択受付部１０４、電源制御部１０５及び表示処理部１０６は、ＣＰＵ１５０がプログラムをメモリ１５１にロードして実行することによって実現される。デバイスパステーブル格納部１０１、ハッシュテーブル格納部１０２及び認証データセット格納部１ｄ乃至３ｄは、例えばＮＶＲＡＭ１５２上に設けられる。なお、図３においては認証データセット格納部の数は３であるが、数に限定は無い。
【００１７】
生成部１０３は、認証データセットを生成する処理を実行する。選択受付部１０４は、システムの起動に使用する認証データセットの選択を受け付ける処理を実行する。電源制御部１０５は、システムへの電源の投入を制御する処理を実行する。表示処理部１０６は、サーバ１に接続された表示装置に画面のデータを表示する処理を実行する。
【００１８】
図４に、デバイスパステーブル格納部１０１に格納されるデバイスパステーブルの一例を示す。図４の例では、ＰＣＩカードが搭載されるＰＣＩスロットの識別情報と、デバイスパスとが格納される。デバイスパスはデバイス（ここではＰＣＩスロット）の物理位置を示す情報であり、ＵＥＦＩにおいて定義されている。
【００１９】
図５に、ハッシュテーブル格納部１０２に格納されるハッシュテーブルの一例を示す。図５の例では、ＰＣＩカードの種類又はＯＳの種類を示す情報と、ハッシュ値とが格納される。例えば種類が「ＰＣＩ Ｃａｒｄ １」であるＰＣＩカードのＥＦＩドライバの正当性を判定する場合には、ハッシュ値「Ｈａｓｈ １」が使用される。
【００２０】
次に、図６乃至図１６を用いて、サーバ１において実行される処理について説明する。
【００２１】
まず、管理コントローラ１０の生成部１０３は、ユーザからログイン情報の入力を受け付ける（図６：ステップＳ１）。ログイン情報は、例えばユーザＩＤ（IDentifier）及びパスワードを含む。管理コントローラ１０は、ユーザＩＤとユーザ種別とが対応付けられた情報を有しているので、ログイン情報の入力を受け付けることでユーザのユーザ種別を特定することができる。
【００２２】
ログインが成功した場合、生成部１０３は、ログイン情報を入力したユーザが管理者であるか判定する（ステップＳ３）。管理者ではない場合（ステップＳ３：Ｎｏルート）、ユーザはオペレータ又は保守員であり認証データセットを作成する権限を有しないので、処理は端子Ａを介して図１１のステップＳ１７の処理に移行する。
【００２３】
一方、ログイン情報を入力したユーザが管理者である場合（ステップＳ３：Ｙｅｓルート）、生成部１０３は、認証データセットの生成用画面のデータを表示処理部１０６に出力する。これに応じ、表示処理部１０６は、認証データセットの生成用画面のデータを表示装置に表示する（ステップＳ５）。
【００２４】
図７に、認証データセットの生成用画面の一例を示す。図７の例では、ブート１について、ＰＣＩスロットを指定するためのプルダウンメニュー７１１と、ＰＣＩカードの種類を指定するためのプルダウンメニュー７１２と、ＯＳの種類を指定するためのプルダウンメニュー７１３とが表示され、ブート２について、ＰＣＩスロットを指定するためのプルダウンメニュー７２１と、ＰＣＩカードの種類を指定するためのプルダウンメニュー７２２と、ＯＳの種類を指定するためのプルダウンメニュー７２３とが表示され、ブート３について、ＰＣＩスロットを指定するためのプルダウンメニュー７３１と、ＰＣＩカードの種類を指定するためのプルダウンメニュー７３２と、ＯＳの種類を指定するためのプルダウンメニュー７３３とが表示されている。プルダウンメニュー７１１、７２１及び７３１のリストには、デバイスパステーブル格納部１０１に格納されたスロットの識別情報が表示される。プルダウンメニュー７１２、７２２及び７３２のリストには、ハッシュテーブル格納部１０２に格納されたＰＣＩカードの種類を示す情報が表示される。プルダウンメニュー７１３、７２３及び７３３のリストには、ハッシュテーブル格納部１０２に格納されたＯＳの種類を示す情報が表示される。ユーザが決定ボタン７０１をマウスでクリックすると、ユーザが指定した内容に基づき認証データセットが生成される。ユーザがキャンセルボタン７０２をマウスでクリックすると、認証データセットは生成されない。
【００２５】
なお、図７の例においてはユーザがブート１乃至３の方法を指定することができるが、必ずしも３つとも指定しなければならないわけではなく、例えばブート１の方法についてのみ指定してもよい。例えばブート１乃至３の方法について指定が行われた場合には、ＢＩＯＳのメニュー画面においてユーザから指定された優先順位に従ってブートが試行される。
【００２６】
図６の説明に戻り、決定ボタン７０１がクリックされると、生成部１０３は、ＰＣＩスロット、ＰＣＩカードの種類及びＯＳの種類の指定をユーザから受け付ける（ステップＳ７）。
【００２７】
生成部１０３は、指定されたＰＣＩスロットに対応するデバイスパスを、デバイスパステーブルから特定する（ステップＳ９）。複数のブート方法が指定された場合には、本ステップは各ブート方法について実行される。
【００２８】
生成部１０３は、ステップＳ９において特定されたデバイスパスと新規に割り当てられたＤＢ番号とを含むエントリをデバイスパス認証テーブルに追加する（ステップＳ１１）。複数のブート方法が指定された場合には、各ブート方法についてのエントリは同じデバイスパス認証テーブルに格納される。デバイスパス認証テーブルは、新たに生成された認証データセット格納部に格納される。
【００２９】
図８に、デバイスパス認証テーブルの一例を示す。図８の例では、デバイスパスと、認証に使用される認証キーが格納されたＤＢの番号であるＤＢ番号とが格納される。
【００３０】
生成部１０３は、指定されたＰＣＩカードの種類に対応するハッシュ値及び指定されたＯＳの種類に対応するハッシュ値を、ハッシュテーブル格納部１０２から特定する。そして、生成部１０３は、特定したハッシュ値を、ステップＳ１１において新規に割り当てられたＤＢ番号のＤＢに格納する（ステップＳ１３）。複数のブート方法が指定された場合には、各ブート方法についてのハッシュ値は別々のＤＢに格納される。ＤＢは、デバイスパス認証テーブルが格納された認証データセット格納部に設けられる。処理は端子Ａを介して図１１のステップＳ１７の処理に移行する。
【００３１】
図９を用いて、一般的なセキュアブートにおいて使用されるＤＢ及びＤＢｘについて説明する。セキュアブートにおいては、ＤＢに格納された認証キーによっては認証可能ではない場合及びＤＢｘに格納された認証キーによって認証可能である場合、起動は許可されない。一方、ＤＢｘに格納された認証キーによって認証可能ではなく且つＤＢに格納された認証キーによって認証可能である場合には起動が許可される。本実施の形態においては、ＤＢに格納される認証キー及びＤＢｘに格納される認証キーを含む複数の認証キーを認証キー群と呼ぶ。
【００３２】
図１０に、認証データセット格納部１ｄ乃至３ｄに格納されるデータの一例を示す。図１０の例では、１つの認証データセットに、デバイスパス認証テーブルと、認証キー群とが格納される。デバイスパス認証テーブルに格納されたＤＢ番号によって、認証に使用されるＤＢが特定される。本実施の形態におけるＤＢには２つの認証キーが格納されるが、そのうちの１つは、指定されたＰＣＩカードの種類に対応するハッシュ値であり、もう１つは、指定されたＯＳの種類に対応するハッシュ値である。ＤＢｘに格納される認証キーもハッシュ値である。１つのＤＢは１つのブート方法に対応する。
【００３３】
図１１の説明に移行し、選択受付部１０４は、ログイン情報を入力したユーザがオペレータであるか判定する（ステップＳ１７）。オペレータではない場合（ステップＳ１７：Ｎｏルート）、ユーザは保守員でありブート方法を選択する権限を有しないので、ステップＳ２３の処理に移行する。
【００３４】
一方、ログイン情報を入力したユーザがオペレータである場合（ステップＳ１７：Ｙｅｓルート）、選択受付部１０４は、ブート方法の指定用画面のデータを表示処理部１０６に出力する。これに応じ、表示処理部１０６は、ブート方法の指定用画面のデータを表示装置に表示する（ステップＳ１９）。
【００３５】
図１２に、ブート方法の指定用画面の一例を示す。図１２の例では、ラジオボタン１２１１乃至１２１３によってブート方法を指定することができる。例えばラジオボタン１２１１が選択された場合、ＢＩＯＳのメニュー画面においてユーザから指定された優先順位に従ってブート１の方法又はブート２の方法のいずれかによってブートが行われることになる。ユーザが決定ボタン１２０１をマウスでクリックすると、指定されたブート方法でブートされる。ユーザがキャンセルボタン１２０２をマウスでクリックすると、ブート方法は指定されない。この場合には、予め定められたブート方法でブートしてもよい。
【００３６】
図１１の説明に戻り、決定ボタン１２０１がクリックされると、選択受付部１０４は、ユーザからブート方法の指定を受け付ける（ステップＳ２１）。
【００３７】
電源制御部１０５は、電源制御用画面のデータの表示を表示処理部１０６に指示する。これに応じ、表示処理部１０６は、電源制御用画面のデータを表示装置に表示する（ステップＳ２３）。図１３に、電源制御用画面の一例を示す。図１３の例では、電源投入をする場合に押下されるボタン１３０１と、電源を投入しない場合に押下されるボタン１３０２とが表示される。
【００３８】
電源制御部１０５は、電源制御用画面を確認したユーザから、電源投入指示の入力を受け付ける（ステップＳ２５）。そして処理は終了する。
【００３９】
以上のような処理を実行すれば、ユーザ種別によってユーザの操作を制限することができるので、誤った起動方法によってシステムが起動されることを抑制できるようになる。さらに、予め用意されたブート方法の一覧の中からブート方法を選択することができるので、その都度ブート方法を最初から指定する場合と比較して、誤った起動方法を選択する可能性を低くすることができる。
【００４０】
次に、図１４乃至図１６を用いて、ユーザによって電源投入が指示された場合に実行される処理について説明する。
【００４１】
まず、電源投入指示の入力を受け付けた場合、管理コントローラ１０は、システムの起動指示をＢＩＯＳ１２０に出力する（図１４：ステップＳ３１）。
【００４２】
ＢＩＯＳ１２０は、システムの起動指示を管理コントローラ１０から受け取る（ステップＳ３３）。
【００４３】
ＢＩＯＳ１２０は、ＣＰＵ１３及びメモリ１４を初期化し（ステップＳ３５）、ＰＣＩカード１ｃ乃至３ｃ上のＰＣＩレジスタを初期化する（ステップＳ３７）。
【００４４】
ＢＩＯＳ１２０は、認証データセットを取得することを要求する取得要求を管理コントローラ１０に出力する（ステップＳ３９）。
【００４５】
管理コントローラ１０の選択受付部１０４は、取得要求をＢＩＯＳ１２０から受け取ると、ステップＳ２１において指定されたブート方法又は予め定められたブート方法（例えば、保守ツール等の専用ＯＳを起動するためのブート方法）に対応する認証データセットを、認証データセット格納部１ｄ乃至３ｄのうち該当する認証データセット格納部から読み出す（ステップＳ４１）。
【００４６】
選択受付部１０４は、ステップＳ４１において読み出した認証データセットをＢＩＯＳ１２０に出力する（ステップＳ４３）。
【００４７】
ＢＩＯＳ１２０における認証処理部１２１は、管理コントローラ１０から認証データセットを受け取る（ステップＳ４５）。
【００４８】
認証処理部１２１は、第１認証処理を実行する（ステップＳ４７）。第１認証処理については、図１５を用いて説明する。
【００４９】
まず、認証処理部１２１は、ブートディスク（図１の例では、ＨＤＤ１７）が接続されたＰＣＩスロットのデバイスパス（以下、対象のデバイスパスと呼ぶ）が、ステップＳ４５において受け取った認証データセットに含まれるデバイスパス認証テーブルに登録されているか判定する（図１５：ステップＳ５１）。
【００５０】
対象のデバイスパスが、認証データセットに含まれるデバイスパス認証テーブルに登録されていない場合（ステップＳ５１：Ｎｏルート）、呼び出し元の処理に戻る。
【００５１】
一方、対象のデバイスパスが、認証データセットに含まれるデバイスパス認証テーブルに登録されている場合（ステップＳ５１：Ｙｅｓルート）、認証処理部１２１は、デバイスパス認証テーブルから、対象のデバイスパスに対応するＤＢ番号を特定する（ステップＳ５３）。
【００５２】
認証処理部１２１は、ステップＳ５３において特定されたＤＢ番号のＤＢから認証キー（本実施の形態においては、ハッシュ値）を読み出す（ステップＳ５５）。
【００５３】
認証処理部１２１は、ブートディスクが接続されたＰＣＩスロットに搭載されたＰＣＩカードから、ＥＦＩドライバを読み出し、所定のアルゴリズムに従ってハッシュ値を計算する（ステップＳ５７）。
【００５４】
認証処理部１２１は、ステップＳ５５において読み出されたハッシュ値とステップＳ５７において計算されたハッシュ値とが一致するか否かによって、ＥＦＩドライバの認証に成功したか判定する（ステップＳ５９）。
【００５５】
ＥＦＩドライバの認証に成功しない（すなわち、ＥＦＩドライバの正当性が無い）場合（ステップＳ５９：Ｎｏルート）、呼び出し元の処理に戻る。ＥＦＩドライバの認証に成功した（すなわち、ＥＦＩドライバの正当性が有る）場合（ステップＳ５９：Ｙｅｓルート）、認証処理部１２１は、ＰＣＩカードから読み出したＥＦＩドライバをメモリ１４にロードし、ＰＣＩカードを初期化する（ステップＳ６１）。そして呼び出し元の処理に戻る。
【００５６】
図１４の説明に戻り、第１認証処理において認証に成功した場合、認証処理部１２１は、第２認証処理を実行する（ステップＳ４９）。第２認証処理については、図１６を用いて説明する。
【００５７】
まず、認証処理部１２１は、ブートディスクが接続されたＰＣＩスロットのデバイスパス（以下、対象のデバイスパスと呼ぶ）が、ステップＳ４５において受け取った認証データセットに含まれるデバイスパス認証テーブルに登録されているか判定する（図１６：ステップＳ７１）。
【００５８】
対象のデバイスパスが、認証データセットに含まれるデバイスパス認証テーブルに登録されていない場合（ステップＳ７１：Ｎｏルート）、呼び出し元の処理に戻る。
【００５９】
一方、対象のデバイスパスが、認証データセットに含まれるデバイスパス認証テーブルに登録されている場合（ステップＳ７１：Ｙｅｓルート）、認証処理部１２１は、デバイスパス認証テーブルから、対象のデバイスパスに対応するＤＢ番号を特定する（ステップＳ７３）。
【００６０】
認証処理部１２１は、ステップＳ７３において特定されたＤＢ番号のＤＢから認証キー（本実施の形態においては、ハッシュ値）を読み出す（ステップＳ７５）。
【００６１】
認証処理部１２１は、ブートディスクからＯＳローダ１７０を読み出し、所定のアルゴリズムに従ってハッシュ値を計算する（ステップＳ７７）。
【００６２】
認証処理部１２１は、ステップＳ７５において読み出されたハッシュ値とステップＳ７７において計算されたハッシュ値とが一致するか否かによって、ＯＳローダ１７０の認証に成功したか判定する（ステップＳ７９）。
【００６３】
ＯＳローダ１７０の認証に成功しない（すなわち、ＯＳローダ１７０の正当性が無い）場合（ステップＳ７９：Ｎｏルート）、呼び出し元の処理に戻る。ＯＳローダ１７０の認証に成功した（すなわち、ＯＳローダ１７０の正当性が有る）場合（ステップＳ７９：Ｙｅｓルート）、認証処理部１２１は、ブートディスクから読み出したＯＳローダ１７０をメモリ１４にロードして実行する（ステップＳ８１）。これによりＯＳが起動する。そして呼び出し元の処理に戻る。
【００６４】
なお、選択された認証データセットに複数のＤＢが含まれている場合には、ブートが成功するまで、優先順位に従って第１認証処理及び第２認証処理が実行される。
【００６５】
以上のような処理を実行すれば、単に正当性が有るか否かだけではなく、スロットの位置をも考慮に入れることができるので、誤ったデバイスからオペレーティングシステムを起動することを防げるようになる。
【００６６】
なお、本実施の形態の方法を利用しない場合には以下のような５つの問題が想定されるが、本実施の形態の方法を利用すればこれらの問題に対処することができるようになる。
【００６７】
（１）セキュアブートにおいては、ＮＶＲＡＭに保持される認証キーによってＥＦＩドライバおよびＯＳローダの認証が実施されるが、実際にはＭｉｃｒｏｓｏｆｔ（登録商標）社が提供する公開鍵形式の１つの認証キーによって、あらゆるＰＣＩカードのＥＦＩドライバと、Ｒｅｄｈａｔ Ｌｉｎｕｘ（登録商標）やＳＵＳＥ Ｌｉｎｕｘ等のＯＳローダとを認証することができる。そのため、改竄されたＥＦＩドライバやＯＳローダの実行を回避することはできるが、Ｍｉｃｒｏｓｏｆｔ社が提供している認証キーで起動可能なＯＳイメージを第三者がＤＶＤ等に入れ、そこからＯＳを起動させることができるという問題がある。また、保守員が保守ツールを実行すべきであるにもかかわらず、誤って業務ＯＳを起動させてしまう可能性がある。
【００６８】
（２）（１）の問題の対策として、セキュアブートでは、サーバーの管理者がＥＦＩドライバやＯＳローダからハッシュ値を作成し、認証キーとしてＤＢに登録することで、特定のＥＦＩドライバやＯＳローダだけを実行可能な状態にすることができる。しかし、ＥＦＩドライバやＯＳローダがベンダから提供されることは稀であるので、現実的には、サーバー管理者が特定のＥＦＩドライバやＯＳローダを選択することはできない。
【００６９】
（３）セキュアブートの認証においては、ＥＦＩドライバおよびＯＳローダのデジタル署名もしくはハッシュ値を用いて実行可否が判定される。判定にＰＣＩカードの位置情報が使されないため、たとえ問題（２）が解決されたとしても、サーバー管理者が任意の位置に搭載されたＰＣＩカードからのみＯＳを起動させることはできない。
【００７０】
（４）ＤＶＤや特定のＰＣＩカードからＯＳを起動させるべきではない場合にそのデバイスを無効にする機能を提供するサーバーもある。しかし、その機能を使うと、ＯＳ起動後にもデバイスを使えない状態となる。また、ハードウェア仕様としてデバイスを無効にできない場合もある。
【００７１】
（５）前述の通り、通常のサーバーでは、搭載された全てのＰＣＩカードがＥＦＩドライバで初期化される。一方で、ＥＦＩドライバは、ＰＣＩカードを初期化すると、そのＰＣＩカードの設定をするためのメニューをＢＩＯＳメニューに追加する。設定はＰＣＩカードのポートごとに実施されるため、ポート数分の設定メニューが追加される。各カードのポートごとに設定メニューが表示されるので、多数のＰＣＩカードを搭載可能なサーバーの場合、起動に不要な多数のＰＣＩカードのメニューが表示されることによって設定画面が煩雑になる。たとえば、４ポートのネットワークコントローラを２０枚搭載すると、８０個の設定メニューがＢＩＯＳに登録される。
【００７２】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した管理コントローラ１０の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７３】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７４】
なお、上で述べたような構成を採用する場合、認証データセット格納部１ｄ乃至３ｄの各々にＢＩＯＳ設定を用意しておくことになる。しかし、例えば図１７に示すように、ＮＶＲＡＭ１５２上にデータ格納領域１ａとデータ格納領域２ａとを設け、データ格納領域１ａに認証キー群とデバイスパス認証テーブルとの組合せを複数セット格納しておく。一方、データ格納領域２ａには、１つのＢＩＯＳ設定と、ＢＩＯＳ１２０に出力すべき１つの組合せとを格納しておく。そして、データ格納領域２ａにおける、ＢＩＯＳ１２０に出力すべき組合せだけを入れ替えるようにする。このようにすれば、ＢＩＯＳ設定をひとつだけ用意すればよいので、ＮＶＲＡＭ１５２の領域を節約することができるようになる。
【００７５】
また、管理者からＰＣＩスロットの指定を受け付けなかった場合には、認証データセットがデバイスパス認証テーブルを含まなくてもよい。
【００７６】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００７７】
本実施の形態の第１の態様に係る情報処理装置は、（Ａ）スロットの位置情報に対応付けて、当該スロットの拡張カードを初期化するための第１のプログラム、及び、当該拡張カードに接続された記憶装置に格納されている、オペレーティングシステムを起動するための第２のプログラムの正当性を判定するための認証データの識別情報を格納するデータ格納部と、（Ｂ）指定された第１のスロットの位置情報に対応付けてデータ格納部に格納されている第１の識別情報によって認証データを特定し、当該認証データで、第１のスロットの第１の拡張カードから読み出した第１のプログラム、及び、第１の拡張カードに接続された第１の記憶装置から読み出した第２のプログラムが正当であるか判定する認証部とを有する。
【００７８】
単に正当性が有るか否かだけではなく、スロットの位置をも考慮に入れることができるので、誤った記憶装置からオペレーティングシステムを起動することを防げるようになる。
【００７９】
また、第１の識別情報によって特定された認証データは、第１の拡張カードから読み出した第１のプログラムの正当性を判定するための第１の認証データと、第１の記憶装置から読み出した第２のプログラムの正当性を判定するための第２の認証データとを含んでもよい。そして、認証部は、（ｂ１）第１の拡張カードから読み出した第１のプログラムが正当であると第１の認証データで判定した場合に、第１の記憶装置から読み出した第２のプログラムの正当性を第２の認証データで判定してもよい。このようにすれば、第１のプログラム及び第２のプログラムの正当性を適切に判定できるようになる。
【００８０】
また、本情報処理装置は、（Ｃ）ログイン情報の入力を受け付けた場合、当該ログイン情報に含まれるデータによって特定されたユーザ種別に応じて、起動方法をユーザに作成させるための第１の画面又は起動方法の指定を受け付けるための第２の画面のデータを表示装置に表示する表示処理部をさらに有してもよい。これにより、ユーザに起動方法の作成又は指定をさせることができるようになる。
【００８１】
また、本情報処理装置は、（Ｄ）第１の画面のデータを確認したユーザから、スロットの位置、拡張カードの種類及びオペレーティングシステムの種類の指定を受け付けた場合、指定されたスロットの位置情報に対応付けて、指定された前張カードから読み出した第１のプログラム及び指定されたオペレーティングシステムを起動するための第２のプログラムの正当性を判定するための認証データの識別情報を、データ格納部に格納する第１受付部をさらに有してもよい。これにより、ユーザが望む起動方法に対応する認証データを予め用意しておくことができるようになる。
【００８２】
また、本情報処理装置は、（Ｅ）第２の画面のデータを確認したユーザから、第１のスロットの位置、当該第１のスロットに搭載される拡張カードの種類、及びオペレーティングシステムの種類の指定を受け付ける第２受付部をさらに有してもよい。これにより、ユーザが指定した起動方法で起動できるようになる。
【００８３】
本実施の形態の第２の態様に係る認証方法は、（Ｆ）スロットの位置情報に対応付けて、当該スロットの拡張カードを初期化するための第１のプログラム、及び、当該拡張カードに接続された記憶装置に格納されている、オペレーティングシステムを起動するための第２のプログラムの正当性を判定するための認証データの識別情報を格納するデータ格納部に、指定された第１のスロットの位置情報に対応付けて格納されている第１の識別情報によって、認証データを特定し、（Ｇ）特定された認証データで、第１のスロットの第１の拡張カードから読み出した第１のプログラム、及び、第１の拡張カードに接続された第１の記憶装置から読み出した第２のプログラムが正当であるか判定する処理を含む。
【００８４】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００８５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８６】
（付記１）
スロットの位置情報に対応付けて、当該スロットの拡張カードを初期化するための第１のプログラム、及び、当該拡張カードに接続された記憶装置に格納されている、オペレーティングシステムを起動するための第２のプログラムの正当性を判定するための認証データの識別情報を格納するデータ格納部と、
指定された第１のスロットの位置情報に対応付けて前記データ格納部に格納されている第１の識別情報によって前記認証データを特定し、当該認証データで、前記第１のスロットの第１の拡張カードから読み出した前記第１のプログラム、及び、前記第１の拡張カードに接続された第１の記憶装置から読み出した前記第２のプログラムが正当であるか判定する認証部と、
を有する情報処理装置。
【００８７】
（付記２）
前記第１の識別情報によって特定された前記認証データは、前記第１の拡張カードから読み出した前記第１のプログラムの正当性を判定するための第１の認証データと、前記第１の記憶装置から読み出した前記第２のプログラムの正当性を判定するための第２の認証データとを含み、
前記認証部は、
前記第１の拡張カードから読み出した前記第１のプログラムが正当であると前記第１の認証データで判定した場合に、前記第１の記憶装置から読み出した前記第２のプログラムの正当性を前記第２の認証データで判定する、
付記１記載の情報処理装置。
【００８８】
（付記３）
ログイン情報の入力を受け付けた場合、当該ログイン情報に含まれるデータによって特定されたユーザ種別に応じて、起動方法をユーザに作成させるための第１の画面又は起動方法の指定を受け付けるための第２の画面のデータを表示装置に表示する表示処理部
をさらに有する付記１又は２記載の情報処理装置。
【００８９】
（付記４）
前記第１の画面のデータを確認したユーザから、スロットの位置、拡張カードの種類及びオペレーティングシステムの種類の指定を受け付けた場合、指定された前記スロットの位置情報に対応付けて、指定された前記拡張カードから読み出した前記第１のプログラム及び指定された前記オペレーティングシステムを起動するための前記第２のプログラムの正当性を判定するための認証データの識別情報を、前記データ格納部に格納する第１受付部
をさらに有する付記３記載の情報処理装置。
【００９０】
（付記５）
前記第２の画面のデータを確認したユーザから、前記第１のスロットの位置、当該第１のスロットに搭載される拡張カードの種類、及びオペレーティングシステムの種類の指定を受け付ける第２受付部
をさらに有する付記３記載の情報処理装置。
【００９１】
（付記６）
コンピュータが、
スロットの位置情報に対応付けて、当該スロットの拡張カードを初期化するための第１のプログラム、及び、当該拡張カードに接続された記憶装置に格納されている、オペレーティングシステムを起動するための第２のプログラムの正当性を判定するための認証データの識別情報を格納するデータ格納部に、指定された第１のスロットの位置情報に対応付けて格納されている第１の識別情報によって、前記認証データを特定し、
特定された前記認証データで、前記第１のスロットの第１の拡張カードから読み出した前記第１のプログラム、及び、前記第１の拡張カードに接続された第１の記憶装置から読み出した前記第２のプログラムが正当であるか判定する、
処理を実行する認証方法。
【００９２】
（付記７）
コンピュータに、
スロットの位置情報に対応付けて、当該スロットの拡張カードを初期化するための第１のプログラム、及び、当該拡張カードに接続された記憶装置に格納されている、オペレーティングシステムを起動するための第２のプログラムの正当性を判定するための認証データの識別情報を格納するデータ格納部に、指定された第１のスロットの位置情報に対応付けて格納されている第１の識別情報によって、前記認証データを特定し、
特定された前記認証データで、前記第１のスロットの第１の拡張カードから読み出した前記第１のプログラム、及び、前記第１の拡張カードに接続された第１の記憶装置から読み出した前記第２のプログラムが正当であるか判定する、
処理を実行する認証プログラム。
【符号の説明】
【００９３】
１  サーバ    １０  管理コントローラ
１１  ＰＣＨ    １２  ＲＯＭ
１２０  ＢＩＯＳ    １２１  認証処理部
１３  ＣＰＵ    １４  メモリ
１５  ＰＣＩスイッチ    １６  ＤＶＤドライブ
１７  ＨＤＤ    １７０  ＯＳローダ
１ｃ，２ｃ，３ｃ  ＰＣＩカード    １ｅ，２ｅ，３ｅ  ＥＦＩドライバ
１５０  ＣＰＵ    １５１  メモリ
１５２  ＮＶＲＡＭ    １０１  デバイスパステーブル格納部
１０２  ハッシュテーブル格納部    １０３  生成部
１０４  選択受付部    １０５  電源制御部
１０６  表示処理部    １ｄ，２ｄ，３ｄ  認証データセット格納部
【図１】
0006631303.tif 000002
【図２】
0006631303.tif 000003
【図３】
0006631303.tif 000004
【図４】
0006631303.tif 000005
【図５】
0006631303.tif 000006
【図６】
0006631303.tif 000007
【図７】
0006631303.tif 000008
【図８】
0006631303.tif 000009
【図９】
0006631303.tif 000010
【図１０】
0006631303.tif 000011
【図１１】
0006631303.tif 000012
【図１２】
0006631303.tif 000013
【図１３】
0006631303.tif 000014
【図１４】
0006631303.tif 000015
【図１５】
0006631303.tif 000016
【図１６】
0006631303.tif 000017
【図１７】
0006631303.tif 000018