(57)【要約】セキュアブートコンピュータシステムを開示する。システムは、命令を実行する１つ以上の処理装置（１０１ａ，１０１ｂ）を備える論理ブロック（１０１）を備え、論理ブロックは第１の通信プロトコルに準拠して第１のインタフェース（１０２）を介して論理ブロックの電源投入時又はリセット時に起動命令を要求するように構成されている。コントローラコンポーネント（１５０）は、第１の通信プロトコルに準拠して第１のインタフェースを介して論理ブロックと通信するように構成されており、コントローラは第２のコンピュータシステム（２００）への通信リンク（３００）を実装し、また、第２のコンピュータシステムから起動命令を受信するようにさらに構成されている。論理ブロックは、論理ブロックによって実行される命令によって改変されない態様で、第１の通信プロトコルに準拠して第１のインタフェースを介してコントローラと通信するように予め構成されている。コントローラは、論理ブロックからの任意の書き込み要求の完了を阻むように構成されている。システムは、論理ブロックとコントローラとの間に制御接続（１４０）をさらに備えている。コントローラは、制御接続を用いて 論理ブロックの電源投入又はリセットを行って、起動命令の実行によって生じる所定のアクティブ状態に論理ブロックが遷移するように構成され、論理ブロックの電源投入又はリセット前に論理ブロック上で動作しているソフトウェアが所定のアクティブ状態に影響を与えることができないようにされている。対応する方法及び第２のコンピュータシステム（２００）も開示される。
2018536958.tif 000002
【特許請求の範囲】
【請求項１】
セキュアブートコンピュータシステムであって、
命令を実行する１つ以上の処理装置（１０１ａ，１０１ｂ）を備える論理ブロック（１０１）であって、第１の通信プロトコルに準拠して第１のインタフェース（１０２）を介して論理ブロックの電源投入時又はリセット時に起動命令を要求するように構成された、論理ブロックと、
前記第１の通信プロトコルに準拠して前記第１のインタフェースを介して前記論理ブロックと通信するように構成されたコントローラコンポーネント（１５０）であって、該コントローラは、第２のコンピュータシステム（２００）への通信リンク（３００）を実装し、また、前記第２のコンピュータシステムから前記起動命令を受信するようにさらに構成されている、コントローラコンポーネントとを備え、
前記論理ブロックは、前記論理ブロックによって実行される命令によって改変されない態様で、前記第１の通信プロトコルに準拠して前記第１のインタフェースを介して前記コントローラと通信するように予め構成されており、
前記コントローラは、前記論理ブロックからの任意の書き込み要求の完了を阻むように構成されており、
前記システムは、前記論理ブロックと前記コントローラとの間に制御接続（１４０）をさらに備えており、
前記コントローラは、前記制御接続を用いて、前記論理ブロックの電源投入又はリセットを行って、前記起動命令の実行によって生じる所定のアクティブ状態に前記論理ブロックが遷移するように構成され、前記論理ブロックの電源投入又はリセット前に前記論理ブロック上で動作しているソフトウェアが前記所定のアクティブ状態に影響を与えることができないようにされている、システム。
【請求項２】
請求項１に記載のセキュアブートコンピュータシステムにおいて、前記コントローラ（１５０）はインタフェース管理部（１５１）と記憶部マネージャ（１５２）とを備え、
前記インタフェース管理部は前記第１の通信プロトコルに準拠して前記第１のインタフェース（１０２）を介して前記論理ブロック（１０１）と通信するように構成されており、また、該インタフェース管理部は第２のインタフェース（１５５）を介して前記記憶部マネージャと通信するようにさらに構成されており、
前記インタフェース管理部は、前記第１のインタフェースを介して前記論理ブロックから着信したデータ要求を識別し、また、前記要求を前記第２のインタフェースを介して前記記憶部マネージャへと伝達するようにさらに構成されており、
前記第２のインタフェースは単方向性インタフェースとされ、該単方向性インタフェースでは、前記インタフェース管理部を介して前記記憶部マネージャから読み出されるべきデータを指定するという目的を除いては前記論理ブロックから前記記憶部マネージャへとデータが流れることが可能とはならない、システム。
【請求項３】
請求項１又は２に記載のセキュアブートコンピュータシステムにおいて、前記論理ブロックは、論理的に配線されていることによって、前記第１の通信プロトコルに準拠して前記第１のインタフェースを介して通信するように予め構成されている、システム。
【請求項４】
請求項３に記載のセキュアブートコンピュータシステムにおいて、前記論理ブロックは、１つ以上の特定用途向け集積回路（ＡＳＩＣ）及び／又は１つ以上のプログラム可能論理回路（ＰＬＤ）を用いて論理的に配線されている、システム。
【請求項５】
請求項３に記載のセキュアブートコンピュータシステムにおいて、前記論理ブロックは、読み出し専用メモリ（ＲＯＭ）上に格納された命令を用いて論理的に配線されている、システム。
【請求項６】
請求項１から５のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記論理ブロックが前記コンピュータシステムを起動させる命令を実行する前の時点においては、前記論理ブロックからの任意の書き込み要求を阻むように予め構成されている、システム。
【請求項７】
請求項１から６のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記通信リンクを通過していくデータは、前記セキュアブートコンピュータシステムの他のいずれのコンポーネントによってもアクセス可能ではない、システム。
【請求項８】
請求項７に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記第２のコンピュータシステムにケーブルで接続可能な物理的通信ポートを含む、システム。
【請求項９】
請求項７に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記第２のコンピュータシステムへの暗号化リンクを実装し、前記セキュアブートコンピュータシステムの他のコンポーネントは暗号化トラフィックにアクセスできるが復号又は暗号化のために必要とされる鍵へのアクセスを有していないものとされる、システム。
【請求項１０】
請求項１から９のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは前記起動命令を格納するための記憶領域を含み、前記起動命令は前記第２のコンピュータシステムから受信されて前記セキュアブートコンピュータシステムの電源投入又はリセット前に格納される、システム。
【請求項１１】
請求項１から１０のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記論理ブロックからの前記起動命令についての要求に応答して、前記論理ブロックから前記要求を受信した時において、前記第２のコンピュータシステムからの前記起動命令を要求するように構成されている、システム。
【請求項１２】
請求項１から１１のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記第１のインタフェースにおけるプロトコルは、フラッシュメモリ装置又はハードディスク等と通信するために用いられることができる、予め構成された単純なインタフェースプロトコルである、システム。
【請求項１３】
請求項１から１２のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記起動命令はリセットベクトルを含む、システム。
【請求項１４】
請求項１３に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは前記リセットベクトルによって識別されたアドレスに配置された命令をも提供する、システム。
【請求項１５】
請求項１から１４のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記論理ブロックのリセットは、前記論理ブロックの電源遮断、その後の電源投入、及びハードウェアリセットの実行の１つ以上を伴う、システム。
【請求項１６】
請求項１から１５のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記制御接続を用いて、前記論理ブロックに接続されたＲＡＭの電源状態を制御するようにさらに構成されている、システム。
【請求項１７】
請求項１から１６のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記制御接続は前記論理ブロックの１つ以上の電圧入力ピンに接続されており、前記論理ブロックについて電源投入又はリセットをなすことは前記電圧ピンの１つ以上に対しての電圧の印加の有無を制御することを伴う、システム。
【請求項１８】
請求項１から１７のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記制御接続は前記論理ブロックのリセットピンに接続されており、前記コントローラは前記リセットピンに電圧が印加されるか否かを制御することによって前記論理ブロックをリセットすることができる、システム。
【請求項１９】
請求項１から１８のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは電力管理集積回路（ＰＭＩＣ、power management integrated circuit）を備えており、前記制御接続は前記ＰＭＩＣと前記論理ブロックとの間の接続である、システム。
【請求項２０】
請求項１から１９のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記論理ブロックがデータ処理を終えたことを示す前記第１のインタフェースを介して前記論理ブロックから着信した通信に応答して、前記制御接続を用いて前記論理ブロックを電源遮断又はリセットするように構成されている、システム。
【請求項２１】
請求項１から２０のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記論理ブロックがマルウェアによって乗っ取られたことを示す前記第１のインタフェースを介して前記論理ブロックから着信した通信に応答して、前記制御接続を用いて前記論理ブロックを電源遮断又はリセットするように構成されている、システム。
【請求項２２】
請求項２１に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記第１のインタフェースを介して前記論理ブロックから送信された前記通信を分析して、前記論理ブロックがマルウェアによって乗っ取られたか否かを決定するように構成されている、システム。
【請求項２３】
請求項２０から２２のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記第１のインタフェースを介して前記論理ブロックから着信した通信は、１つ以上の読み出し又は書き込み要求である、システム。
【請求項２４】
請求項２３に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記論理ブロックからの任意の書き込み要求に応答して前記論理ブロックについて電源遮断又はリセットを行うように構成されている、システム。
【請求項２５】
請求項１から２４のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記通信リンクを介しての通信に応答して、前記制御接続を用いて前記論理ブロックについて電源投入、電源遮断又はリセットをするように構成されている、システム。
【請求項２６】
請求項２５に記載のセキュアブートコンピュータシステムにおいて、前記通信リンクを介しての前記通信は、前記第２のコンピュータシステムから着信する、システム。
【請求項２７】
請求項２５に記載のセキュアブートコンピュータシステムにおいて、前記通信リンクを介しての前記通信は、前記第２のコンピュータシステム以外のコンピュータシステムから着信する、システム。
【請求項２８】
請求項２５から２７のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記通信リンクを介しての前記通信は、前記論理ブロックについて電源投入、電源遮断又はリセットをすることの要求である、システム。
【請求項２９】
請求項１から２８のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、センサからの入力に応答して、前記論理ブロックについて電源投入、電源遮断又はリセットをするように構成されている、システム。
【請求項３０】
請求項１から２９のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、ユーザからの入力に応答して、前記論理ブロックについて電源投入、電源遮断又はリセットをするように構成されている、システム。
【請求項３１】
請求項１から３０のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記論理ブロックがネットワークインタフェースを介してユーザネットワークと通信することが許されるようにさらに構成されている、システム。
【請求項３２】
請求項３１に記載のセキュアブートコンピュータシステムにおいて、前記論理ブロックは、前記第１のインタフェースとは異なるインタフェースを介して前記ネットワークインタフェースと通信するように構成されている、システム。
【請求項３３】
請求項３１に記載のセキュアブートコンピュータシステムにおいて、前記論理ブロックは、前記コントローラを介して且つ前記第１のインタフェースを介して前記ネットワークインタフェースと通信するように構成されている、システム。
【請求項３４】
請求項３３に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは、前記第１のインタフェースを介して前記論理ブロックから着信した、ネットワークデータについての読み出し又は書き込み要求に応答して、前記読み出し又は書き込み要求を前記ネットワークインタフェースへと転送するように構成されている、システム。
【請求項３５】
請求項１から３４のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、１つ以上の処理装置を備える１つ以上の追加論理ブロックをさらに備えるシステムであって、前記１つ以上の追加論理ブロックの各々は、前記第１の通信プロトコルに準拠して各々の第１のインタフェースを介して前記各々の論理ブロックの電源投入時又はリセット時に起動命令を要求するように構成されており、
前記コントローラは、前記第１の通信プロトコルに準拠して各々の前記第１のインタフェースを介して前記１つ以上の追加論理ブロックと通信するようにさらに構成されており、
前記１つ以上の追加論理ブロックの各々は、前記論理ブロックによって実行される命令によって改変されない態様で、前記第１の通信プロトコルに準拠して各々の前記第１のインタフェースを介して前記コントローラと通信するように予め構成されており、
前記コントローラは、前記１つ以上の追加論理ブロックからの任意の書き込み要求の完了を阻むようにさらに構成されており、
前記システムは、前記コントローラと前記１つ以上の追加論理ブロックの各々との間に各々の制御接続をさらに備えており、
前記コントローラは、前記制御接続を用いて 前記論理ブロックの電源投入又はリセットを行って 前記起動命令の実行によって生じる所定のアクティブ状態に前記論理ブロックが遷移するように構成され、前記論理ブロックの電源投入又はリセット前に前記論理ブロック上で動作しているソフトウェアが前記所定のアクティブ状態に影響を与えることができないようにされている、システム。
【請求項３６】
請求項３５に記載のセキュアブートコンピュータシステムにおいて、前記コントローラは各論理ブロックについての各々のインタフェース管理部と共通記憶マネージャとを備えており、各々のインタフェース管理部は前記第１の通信プロトコルに準拠して各々の前記第１のインタフェース（１０２）を介して各論理ブロック（１０１）と通信するように構成されている、システム。
【請求項３７】
請求項１から３６のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記第１の通信プロトコルはＳＤカードプロトコルである、システム。
【請求項３８】
請求項１から３６のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記第１の通信プロトコルはＳＤＩＯプロトコルである、システム。
【請求項３９】
請求項１から３６のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記第１の通信プロトコルはｅＭＭＣプロトコルである、システム。
【請求項４０】
請求項１から３９のいずれか一項に記載のセキュアブートコンピュータシステムにおいて、前記起動命令は完全なオペレーティングシステムを含む、システム。
【請求項４１】
請求項１から４０のいずれか一項に記載のセキュアブートコンピュータシステムと共の使用のために構成されたコンピュータシステム（２００）であって、該コンピュータシステムは、
前記セキュアブートコンピュータシステム（１００）の前記コントローラ（１５０）をもって通信リンク（３００）を実装し、
前記起動命令を前記コントローラへと送信し、
電力命令を前記コントローラへと送信して前記制御接続を用いて前記論理ブロックの電源状態を制御するように構成されている、コンピュータシステム。
【請求項４２】
請求項１から３７のいずれか一項に記載のセキュアブートコンピュータシステムを１つ以上及び請求項４１に記載のコンピュータシステムを１つ以上備える、システム。
【請求項４３】
コンピュータシステムをセキュアに起動する方法であって、該コンピュータシステムは、
論理ブロック（１０１）とコントローラ（１５０）とを備え、前記論理ブロックは、前記論理ブロックによって実行される命令によって改変されない態様で、第１の通信プロトコルに準拠して第１のインタフェース（１０２）を介して前記コントローラと通信するように予め構成されており、前記コントローラは前記論理ブロックからの任意の書き込み要求の完了を阻むように構成されており、前記システムは前記論理ブロックと前記コントローラとの間に制御接続（１４０）をさらに備えており、前記コントローラは、前記制御接続を用いて、前記論理ブロックの電源投入又はリセットを行って、起動命令の実行によって生じる所定のアクティブ状態に前記論理ブロックが遷移するようにさらに構成されており、前記論理ブロックの電源投入又はリセット前に前記論理ブロック上で動作しているソフトウェアが前記所定のアクティブ状態に影響を与えることができないようにされており、
前記方法は、
前記コントローラから前記論理ブロックへと前記制御接続を経て電力コマンドを送信するステップであって、該コマンドは前記論理ブロックの電源投入又はリセットを命ずる、ステップと、
前記論理ブロックの電源投入又はリセットに際して、前記論理ブロックを介在して、前記第１の通信プロトコルに準拠して前記第１のインタフェースを介して起動命令を要求するステップと、
第２のコンピュータシステムへの通信リンクを前記コントローラにて実装し、また、前記第２のコンピュータシステムから前記起動命令を受信するステップと、
前記起動命令を前記コントローラから前記論理ブロックへと提供するステップと、
後に前記コントローラにて、前記論理ブロックからの任意の書き込み要求の完了を阻むステップとを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータシステムの起動（boot-up）に関するのであり、特にセキュアなブートのためのコンピュータシステム及び方法に関する。
【背景技術】
【０００２】
マルウェア（malicious software）は全てのコンピュータシステムにとって課題であり続けている。特に懸念されるのがコンピュータシステムの再起動後にも持続し続けるマルウェアの能力であり、ハードディスクやフラッシュメモリ等の永続的記憶領域に変更を加えることによってこれをなしているのであり、コンピュータシステムが再起動されるとこれらの変更がマルウェアの再読込を保証することになる。
【０００３】
読出専用メモリ（ＲＯＭ）から起動するコンピュータはこの問題を解決できるも、他の問題がもたらされる。なぜならば、この場合、バグやセキュリティ上の脆弱性等の問題に対応するためにブート用ソフトウェアをパッチしたりアップグレードしたりできなくなるからである。したがって、実際的には、コンピュータは真正な意味でのＲＯＭからは起動されず、一部の場合ではプログラム可能ＲＯＭ（ＰＲＯＭ）やフィールドプログラマブルＲＯＭ（ＦＰＲＯＭ）から起動される。プログラマブルなＲＯＭは標準的なＲＯＭとは異なる。なぜならば、ＰＲＯＭ内のデータは製造後にプログラミングされるからである。実務上では、ＰＲＯＭは一種の永続的記憶領域である。
【０００４】
永続的なマルウェアの問題を解決しようとする１つの試みは、特許文献１に開示されている。該方法では、コンピュータシステムがブートイメージに対して変更を加えられないようにするカスタム記憶部コントローラが用いられているのであり、これにより再起動後のマルウェア持続事象の可能性の回避を目指す。そして、特許文献１では、物理的な暗号トークンの挿入を伴う所定条件の充足を前提にコンピュータシステムによるブートイメージ改変が可能とされる機構が、開示されている。本願開示の発明の実施形態ではこれを許可しているわけではなく、代わりに次のような機構を提供している：第１のコンピュータシステムとは独立に記憶部コントローラに接続している第２のコンピュータシステムによってブートイメージに変更を加えることができる、機構。
【０００５】
上述の問題を解決しようとする別の試みとしては、特許文献２が挙げられる。該文献では、ホストコンピュータに接続されたディスクドライブを用いてホストコンピュータを起動することが開示されている。ディスクドライブは、ホストコンピュータのプロセッサを非アクティブ状態に遷移させる信号を発し、ホストプロセッサが自機のメモリにアクセスできなくなる。そして、ディスクドライブは、ホストコンピュータを起動するためのテンプレートを、ディスクドライブの被保護エリアから、ホストプロセッサのメモリへと、書き込む。そして、ディスクドライブは、信号の発信停止を行い、ホストメモリアレイからホストプロセッサが起動することを許す。この方法によれば、ディスクの被保護エリア内に格納されたブートイメージへの正規の変更は、ホストコンピュータ上で実行されているソフトウェアによって加えられていることを要する。したがって、ブートイメージの改変を可能とする何らかのホストコンピュータ状態が存在するはずであり、原理的には、悪質なユーザはマルウェアを用いて該状態を作出してブートイメージを改変することができることになる。本発明の実施形態ではこれを許可しているわけではなく、代わりに次のような機構を提供している：第１のコンピュータシステムとは独立に記憶部コントローラに接続している第２のコンピュータシステムによってブートイメージに変更を加えることができる、機構。
【０００６】
特許文献３では、ＣＰＵを有するサーバであって、自律的に動作するベースボード管理コントローラ（ＢＭＣ、baseboard management controller）をも含むサーバを伴うシステムが開示されており、ＢＭＣはＬＰＣバスを介してＣＰＵと通信している。ＢＭＣは、システムＢＩＯＳを格納する記憶部と、バスアクセス要求を復号して応答するバスインタフェースであって、該要求は起動オペレーションと関連付けられているメモリアドレス範囲を含んでいる、バスインタフェースとを、含んでいる。起動オペレーションと関連付けられているメモリアドレス範囲の要求をＣＰＵが発すると、バスインタフェースは要求をメモリインタフェースへと転送し、該メモリインタフェースは記憶部からシステムＢＩＯＳを読み出してバスを介してシステムＢＩＯＳを返す。記憶部はＳＲＡＭとして実装されており、また、システムＢＩＯＳはネットワークインタフェースを介して遠隔のコンピュータによってパッチ及び更新（upgrade）されることができる。もっとも、ＣＰＵを既知の良好な状態（known good state）に戻し得ることをどのようにして保証するかに関しては何ら配慮が示されていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許公開公報第２０１１／００３５８０８号
【特許文献２】米国特許第６，５４６，４８９号
【特許文献３】米国特許第７，２９３，１６５号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、以下参照する独立請求項において規定されている。好適な特徴は、従属請求項に記載されている。
【０００９】
本発明の第１の態様によれば、論理ブロックとコントローラとを備えるセキュアブートコンピュータシステムが提供される。論理ブロックは、命令を実行する１つ以上の処理装置を備え、第１の通信プロトコルに準拠して第１のインタフェースを介してコンピュータシステムの電源投入時又はリセット時に起動命令を要求するように構成されている。記憶部コントローラとして実装され得るコントローラは、第１の通信プロトコルに準拠して第１のインタフェースを介して論理ブロックと通信するように構成されており、並びに、第２のコンピュータシステムへの通信リンクを実装し、また、第２のコンピュータシステムから起動命令を受信するようにさらに構成されている。論理ブロックは、論理ブロックによって実行される命令によって改変されない態様で、第１の通信プロトコルに準拠して第１のインタフェースを介して通信するように予め構成されている。コントローラは、論理ブロックからの任意の書き込み要求を阻む又は拒絶するように構成されている。システムは、論理ブロックとコントローラとの間に制御接続をさらに備えている。コントローラは、制御接続を用いて 論理ブロックの電源投入又はリセットを行って 起動命令の実行によって生じる所定のアクティブ状態に論理ブロックが遷移するようにさらに構成されており、論理ブロックの電源投入又はリセット前に論理ブロック上で動作しているソフトウェアが所定のアクティブ状態に影響を与えることができないようにされている。
【００１０】
電源投入又はリセットに際して論理ブロックが固定されているようにし、論理ブロックが第１のプロトコルに準拠して第１のインタフェースを介して記憶部コントローラと通信するように予め構成しておき、並びに、セキュアブートコンピュータシステムが論理ブロックからの書き込み要求を完了することを阻むことによって、次のようなコンピュータシステムがもたらされる。即ち、別個のコンピュータシステムを用いて起動命令に変更を加えることを許容しつつ、起動命令或いはブートイメージを破損させようとするかもしれないマルウェアの永続化に対しての防護をもたらし、また、セキュアブートコンピュータシステム上で実行されているマルウェアがオペレーティングシステムファイルに変更を加えて再起動後の自己の永続化を確保することを防ぐようなコンピュータシステムがもたらされる。これによって、ブートイメージの更新が可能なセキュアシステムがもたらされる。この機能を制御性機能と組み合わせることによって、記憶部コントローラは所望かつ所定のアクティブ終局状態（active end state）に論理ブロックを遷移させることができるのであって、処理の開始前に論理ブロック上で動作していたソフトウェアが終局状態に影響を与えることができないようにする。したがって、記憶部コントローラは、起動の後の更なる命令を実行中又はそれを実行する準備ができた状態において、論理ブロックがマルウェアを実行していないことが確かであるといえるようなアクティブ状態に論理ブロックを遷移させ得る。電源遮断をしてそして再度電源投入を行うこと若しくはリセットを行うこと並びに起動機構を既述のように構成することによって、欠陥導入のリスクを最小限としつつ、ブートイメージ／命令の更新機能を保持した上で、論理ブロックを既知の良性状態に強制的に遷移させることができる。
【００１１】
随意的には、記憶部コントローラは、インタフェース管理部と記憶部マネージャとを備えており、インタフェース管理部は、第１の通信プロトコルに準拠して第１のインタフェースを介して論理ブロックと通信するように構成されており、また、第２のインタフェースを介して記憶部マネージャと通信するように構成されている。インタフェース管理部は、第１のインタフェースを介して着信したデータ要求を識別し、また、要求を第２のインタフェースを介して記憶部コントローラへと伝達するようにさらに構成されていることができる。
【００１２】
第２のインタフェースは単方向性インタフェースとされ、単方向性インタフェースでは、インタフェース管理部を介して記憶部マネージャから読み出されるべきデータを指定するという目的を除いては論理ブロックから記憶部マネージャへとデータが流れることが可能とはならないようにすることができる。第２のインタフェースを常時読み出し専用とすることによって、第２のインタフェースを介してブートイメージが変更されることができなくなる。
【００１３】
論理ブロック及び記憶部コントローラは、同一の物理的ケーシング内にて実装され得るのであり、また、共通の回路基板上に或いは同じ集積回路上に配置されていることができる。肝要なのは、初期起動命令の受信に関して、論理ブロックと記憶部コントローラとの間での初期通信を改変する方法を設けないことである。これは、第１の通信プロトコルに準拠して第１のインタフェースを介して通信するように、論理ブロックを論理的に配線しておくことによって達成できる。「論理的に配線された（logically hardwired）」とは、ソフトウェアによって改変され得ない又は装置の内部にアクセスせずにして改変できない、任意の構成を指定するために用いられる用語である。これには、次の手段を用いて諸機能を論理ブロック内に物理的にハードワイヤード化することが含まれ得る：即ち、１つ以上の特定用途向け集積回路（ＡＳＩＣ）及び／若しくは１つ以上のプログラム可能論理回路（ＰＬＤ）を用いて、又は、読み出し専用メモリ（ＲＯＭ）上に格納された命令を用いて、諸機能をハードワイヤード化すること。
【００１４】
記憶部コントローラは、論理ブロックがコンピュータシステムを起動するための命令を実行する起動処理の前の時点において、論理ブロックからの任意の書き込み要求を拒絶するように構成されていることができる。記憶部コントローラは、例えば形式的に検証可能な又は高度保証性（high assurance）が付された命令等を用いることによって、この機能を実行できるようにプログラミングされていることができる。代替的には、記憶部コントローラは随意的にはハードワイヤードな態様で実装されていることもできる。後述から分かるように、実際においてはその正確な実装態様は本質的ではなく、論理ブロックからの書き込みが拒絶されることが可能でありさえすれば良い。
【００１５】
通信リンクを通過していくデータは、セキュアブートコンピュータシステムの他のいずれのコンポーネントによってもアクセス可能とはならないようにすることができる。コントローラは、第２のコンピュータシステムにケーブルで接続可能な物理的通信ポートを含むことができる。代替的には、コントローラは第２のコンピュータシステムへの暗号化リンクを実装することができ、セキュアブートコンピュータシステムの他のコンポーネントは暗号化トラフィックにアクセスできるが復号又は暗号化のために必要とされる鍵へのアクセスを有していないものとされることができる。
【００１６】
コントローラは起動命令を格納するための永続的記憶領域（persistent store）を含むことができ、起動命令は第２のコンピュータシステムから受信されてセキュアブートコンピュータシステムの電源投入／リセット又は起動前に格納されることができる。
【００１７】
コントローラは、論理ブロックからの起動命令についての要求に応答して論理ブロックから要求を受信した時において第２のコンピュータシステムからの起動命令を要求するように構成されていることができる。
【００１８】
第１のインタフェースにおけるプロトコルは、例えばフラッシュメモリ装置やハードディスク等と通信するために用いられ得る予め構成された単純なインタフェースプロトコルであることができる。
【００１９】
起動命令はリセットベクトルを含み得る。そして、コントローラは、リセットベクトルによって識別されたアドレスに配置された命令をも提供することができる。
【００２０】
コントローラは、制御接続を用いて、論理ブロックについて電源投入を行い、及び、そして論理ブロックについてリセットを行って、それによって起動命令の実行によって生じる所定のアクティブ状態に論理ブロックを遷移させるようにさらに構成されていることができる。
【００２１】
論理ブロックのリセットは、論理ブロックについて電源遮断を行ってそして論理ブロックについて電源投入を行うこと、並びに、論理ブロックについてハードウェアリセットを実行することの１つ以上を伴うことができる。ハードウェアリセットとは、電源投入／電源遮断シーケンスを経ずにして、論理ブロックに対して初期起動処理（initial boot process）を実行するように強制するためのハードウェアレベルの方法である。
【００２２】
コントローラは、制御接続を用いて論理ブロックに接続されたＲＡＭの電源状態を制御するようにさらに構成されていることができる。マルウェアが実行されていた局面において論理ブロックについて電源遮断又はリセットを行ったがＲＡＭについては電源遮断又はリセットしていない場合、何らかのデータがＲＡＭ内に残されて、論理ブロック１０１について電源投入又はリセットを行った後の終局状態に影響が及び得るおそれがある。このようなデータは、再起動後に再発する欠陥を生じさせ得る。ＲＡＭについて電源遮断を行うことによって、再起動前に装置上で実行されていたソフトウェアによる残存効がないようにし易くなる。
【００２３】
制御接続は、論理ブロックの１つ以上の電圧入力ピンに接続されていることができる。そして、コントローラは、電圧ピンの１つ以上に対しての電圧の印加の制御によって論理ブロックに対して電源投入、電源遮断又はリセットを行うことができる。
【００２４】
制御接続は論理ブロックのリセットピンに接続されていることができる。そして、コントローラはリセットピンに電圧が印加されるか否かを制御することによって論理ブロックをリセットすることができる。
【００２５】
セキュアブートコンピュータシステムは、電力管理集積回路（ＰＭＩＣ、power management integrated circuit）をさらに備えていることができる。その場合、制御接続は、ＰＭＩＣと論理ブロックとの間の接続とされていることができる。
【００２６】
コントローラは、論理ブロックがデータ処理を終えたことを示す第１のインタフェースを介して論理ブロックから着信した通信に応答して、制御接続を用いて論理ブロックを電源遮断又はリセットするように構成されていることができる。
【００２７】
コントローラは、論理ブロックがマルウェアによって乗っ取られたことを示す第１のインタフェースを介して論理ブロックから着信した通信に応答して、制御接続を用いて論理ブロックを電源遮断又はリセットするように構成されていることができる。コントローラは、第１のインタフェースを介して論理ブロックから送信された通信を分析して、論理ブロックがマルウェアによって乗っ取られたか否かを決定するように構成されていることができる。
【００２８】
第１のインタフェースを介して論理ブロックから着信した通信は、１つ以上の読み出し又は書き込み要求であることができる。コントローラは、論理ブロックからの任意の書き込み要求に応答して論理ブロックについて電源遮断又はリセットを行うように構成されていることができる。
【００２９】
コントローラは、通信リンクを介しての通信に応答して、制御接続を用いて論理ブロックについて電源投入、電源遮断又はリセットをするように構成されていることができる。通信リンクを介しての通信は、第２のコンピュータシステムから着信するか、又は、第２のコンピュータシステム以外のコンピュータシステムから着信することができる。通信リンクを介しての通信は、論理ブロックについて電源投入、電源遮断又はリセットをすることの要求であることができる。
【００３０】
コントローラは、センサ及び／又はユーザからの入力に応答して論理ブロックについて電源投入、電源遮断又はリセットをするように構成されていることができる。
【００３１】
任意の電源遮断コマンドの後には、論理ブロックを所定のアクティブ状態に復帰させるための電源投入コマンドが続くことができる。
【００３２】
セキュアブートコンピュータシステムは、論理ブロックがネットワークインタフェースを介してユーザネットワークと通信することが許されるようにさらに構成されていることができる。論理ブロックは、コントローラを介して且つ第１のインタフェース又は第１のインタフェースとは異なるインタフェースを介してネットワークインタフェースと通信するように構成されていることができる。コントローラは、第１のインタフェースを介して論理ブロックから着信したネットワークデータについての読み出し又は書き込み要求に応答して、読み出し又は書き込み要求をネットワークインタフェースへと転送するように構成されていることができる。
【００３３】
セキュアブートコンピュータシステムは、１つ以上の処理装置を備える１つ以上の追加論理ブロックを備えることができる。１つ以上の追加論理ブロックの各々は、第１の通信プロトコルに準拠して各々の第１のインタフェースを介して各々の論理ブロックの電源投入時又はリセット時に起動命令を要求するように構成される。コントローラは、第１の通信プロトコルに準拠して各々の第１のインタフェースを介して１つ以上の追加論理ブロックと通信するようにさらに構成される。１つ以上の追加論理ブロックの各々は、論理ブロックによって実行される命令によって改変されない態様で、第１の通信プロトコルに準拠して各々の第１のインタフェースを介してコントローラと通信するように予め構成される。コントローラは、１つ以上の追加論理ブロックからの任意の書き込み要求の完了を阻むようにさらに構成される。セキュアブートシステムは、コントローラと１つ以上の追加論理ブロックの各々との間に各々の制御接続をさらに備えるのであって、コントローラは、制御接続を用いて、論理ブロックの電源投入又はリセットを行って、起動命令の実行によって生じる所定のアクティブ状態に論理ブロックが遷移するように構成され、論理ブロックの電源投入又はリセット前に論理ブロック上で動作しているソフトウェアが所定のアクティブ状態に影響を与えることができないようにされている。
【００３４】
１つ以上の追加論理ブロックを備えるシステムにおいては、コントローラは各論理ブロックについての各々のインタフェース管理部と共通記憶マネージャとを備えている。各々のインタフェース管理部は第１の通信プロトコルに準拠して各々の第１のインタフェースを介してその各論理ブロックと通信するように構成されている。
【００３５】
第１の通信プロトコルは、ＳＤ（登録商標）カードプロトコル、ＳＤＩＯプロトコル、及びｅＭＭＣプロトコルの１つであることができる。
【００３６】
起動命令は、完全なオペレーティングシステムを含むことができる。
【００３７】
コンピュータシステムをセキュアに起動する方法を同様に提供できる。コンピュータシステムは論理ブロックとコントローラとを備え、論理ブロックは論理ブロックによって実行される命令によって改変されない態様で第１の通信プロトコルに準拠して第１のインタフェースを介してコントローラと通信するように予め構成されており、コントローラは論理ブロックからの任意の書き込み要求の完了を阻むように構成されている。システムは論理ブロックとコントローラとの間に制御接続をさらに備えている。コントローラは制御接続を用いて、論理ブロックの電源投入又はリセットを行って、起動命令の実行によって生じる所定のアクティブ状態に論理ブロックが遷移するようにさらに構成されており、論理ブロックの電源投入又はリセット前に論理ブロック上で動作しているソフトウェアが所定のアクティブ状態に影響を与えることができないようにされている。方法は次のステップを含む：コントローラから論理ブロックへと制御接続を経てコマンドを送信するステップであって、該コマンドは論理ブロックの電源投入又はリセットを命ずる、ステップと；論理ブロックの電源投入又はリセットに際して、論理ブロックを介在して、第１の通信プロトコルに準拠して第１のインタフェースを介して起動命令を要求するステップと；第２のコンピュータシステムへの通信リンクをコントローラにて実装し、また、第２のコンピュータシステムから起動命令を受信するステップと；起動命令をコントローラから論理ブロックへと提供するステップと；後にコントローラにて、論理ブロックからの任意の書き込み要求の完了を阻むステップ。
【００３８】
本発明の第２の態様によれば、本明細書にて説明したセキュアブートコンピュータシステムと共に使用するための管理コンピュータシステムが提供される。管理コンピュータシステムは、セキュアブートコンピュータシステムのコントローラをもって通信リンクを実装し、起動命令をコントローラへと送信するように構成されている。
【００３９】
本発明の実施形態は、コンピュータシステムのユーザ以外の人員によってコンピュータシステムが管理される局面において特に関連性を有する。このような局面は、クラウドコンピューティングの場合、即ちクラウドサービスプロバイダたる企業が第三者によって使用されるコンピュータを管理している場合や、法人向け環境の場合、即ちＩＴ部署が従業員によって使用されるコンピュータを管理している場合として想定され得る。
【００４０】
このような局面では、管理要員は特殊な管理用コンピュータシステムを用いて被管理コンピュータシステムのブートイメージに変更を加えることができる一方で、これら被管理コンピュータシステムのどれかに導入されてしまった任意のマルウェアは被管理コンピュータシステムの再起動後に永続することができなくなる。
【図面の簡単な説明】
【００４１】
例示的にすぎないが、以下において添付の図面を参照して本発明について詳述する。
【００４２】
【図１】本発明の実施形態による、第１及び第２のコンピュータシステムについての概略図である。
【図２】図１の記載に対して追加の詳細事項を示す、第１及び第２のコンピュータシステムについてのさらなる概略図である。
【図３】制御部に関する特徴をも含む、第１及び第２のコンピュータシステムについてのさらなる概略図である。
【図４】制御部に関する特徴をも含む、第１及び第２のコンピュータシステムについてのさらなる概略図である。
【図５】統合されたネットワークインタフェースを含む、第１及び第２のコンピュータシステムについてのさらなる概略図である。
【図６】複数の論理ブロックを含む、第１及び第２のコンピュータシステムについての概略図である。
【図７】複数の論理ブロックを含む、第１及び第２のコンピュータシステムについてのさらなる概略図である。
【発明を実施するための形態】
【００４３】
図１は、第２のコンピュータシステム２００によって管理される第１のコンピュータシステム１００を示す。参照に際しては、第１のコンピュータシステムはセキュアブートコンピュータシステムと称し、第２のコンピュータシステムは管理コンピュータシステムと称する。
【００４４】
セキュアブートコンピュータシステム１００は通常、１つ以上のＣＰＵ１０１ａ，１０１ｂ等と幾らかのＲＡＭ１１５と専用記憶部コントローラ１５０とを備える。セキュアブートコンピュータシステム１００は永続的記憶領域等の他のコンポーネント１１０をも含み得るが、自己のブートイメージは記憶部コントローラ１５０から探し出すように構成されている。ＣＰＵと記憶部コントローラとの間の当該構成は、コンピュータシステム１００の物理的な分解によらずにして何らの手段によっても変更可能とならないように構成されているべきである。
【００４５】
記憶部コントローラ１５０は、管理コンピュータシステム２００への通信リンク３００を実装する。通信リンクは、セキュアブートコンピュータシステムと管理コンピュータシステムとの間の物理的有線接続として、又は、有線及び／若しくは無線ネットワーク接続として、実装され得る。セキュアブートコンピュータシステム１００の他の任意のコンポーネントが該リンク（３００）上の通信にアクセスできないように、通信リンクを実装し得る。例えば、１つの実施形態では、記憶部コントローラ１５０は、ケーブルを介して管理コンピュータシステム２００へと接続される物理的通信ポートを含む。別の実施形態では、記憶部コントローラ１５０は管理コンピュータシステム２００への暗号化リンクを実装し、セキュアブートコンピュータシステム１００の他のコンポーネントは暗号化トラフィックへのアクセスを有し得るが、復号化又は暗号化のために必要な鍵へのアクセスは有していないものとされ得る。
【００４６】
セキュアブートコンピュータシステム１００が起動される電源投入又はリセットの直後においては、記憶部コントローラ１５０に対してブートイメージの供給が要求されるのであり、記憶部コントローラ（１５０）によって供給されるバイト列はコンピュータシステム（２００）によって決定される。
【００４７】
管理コンピュータシステムは、起動時にブートイメージを記憶部コントローラに提供するか、起動前の時点においてそれを提供しておくことができる。例えば、１つの実施形態では、記憶部コントローラ１５０はディスクやメモリ（例えば、フラッシュメモリ等）等のローカル記憶領域を含み、このローカル記憶領域からどのデータを提供すべきかを管理コンピュータシステム２００が記憶部コントローラ１５０に対して予め起動前に指示しておくことができ、ローカル記憶媒体上にこれらがそれによって配されていない場合にこれらのデータを記憶部コントローラ１５０に供給し得る。念のために述べておくが、記憶部コントローラ１５０にブートデータをプリインストールしておくことが可能であり、必要に応じて管理コンピュータ２００によってこれを更新することができる。別の実施形態では、セキュアブートコンピュータシステム１００がブートイメージを要求した場合、記憶部コントローラ１５０は管理コンピュータシステム２００に問い合わせて要求に応答してどのデータを供給すべきかを決定するのであり、これらデータはその時点において通信リンク３００を介して記憶部コントローラ１５０に供給される。
【００４８】
セキュアブートコンピュータシステム１００からの他の読み出し要求に対しての応答における記憶部コントローラ１５０の挙動は、管理コンピュータシステム２００によって決定されることもできる。実際に、典型的な起動シーケンスは一連の読み出しからなるのであり、第１の読み出しは定義された記憶位置からなされ、以後の読み出し位置は先行する読み出し行為の結果から決定される。典型的には、管理コンピュータシステム２００は、記憶部コントローラ１５０に対してこれらの一連の読み出しにどのようにして応ずるべきかを最低限において指示する。
【００４９】
この機能を用いて管理コンピュータシステム２００は、セキュアブートコンピュータシステム１００によって起動されるべきオペレーティングシステムについてアップグレード、パッチ又は完全なる交換を行い得る。
【００５０】
セキュアブートコンピュータシステム１００からの書き込み要求に応答しての記憶部コントローラ１５０の挙動についても、検討すべきである。セキュアブートコンピュータシステム１００が書き込み要求を完了することを阻むことによって、記憶部コントローラ１５０は、セキュアブートコンピュータシステム１００上で実行されるマルウェアがオペレーティングシステムのファイルに対して変更を加えることを防ぐのであり、さもないとマルウェアが再起動後に永続することを許しかねない。
【００５１】
最も効果的なセキュリティのためには、次のような攻撃の可能性を最小化するように記憶部コントローラ１５０を実装すべきである：即ち、セキュアブートコンピュータシステム１００上で動作しているマルウェアが記憶部コントローラ１５０とセキュアブートコンピュータシステム１００の他のコンポーネントとの間のインタフェースを悪用して、記憶部コントローラ１５０に欠陥をもたらした上でその挙動を上述のそれとは異なるものに変性させる攻撃。実際的な実施形態では、このインタフェースは、読み出し及び書き込み要求並びに関連する諸応答を含む単純なプロトコルを使用することができる。
【００５２】
論理ブロックがハードワイヤード化されていることが必要であるということが、単純なプロトコルが必要とされる主たる理由である。より複雑なプロトコルを用いることも可能であるも、これをハードワイヤード化した態様で実装するには、実際上、より高価且つリスキーな試みを目指すことになる。また、このようなインタフェースは、記憶部コントローラにて実装され易いのであり、攻撃が特に困難となる手法を用いることができる。これには、１つ以上のＡＳＩＣや１つ以上のＰＬＤを含む実施形態が含まれ得るのであり、例えばＦＰＧＡが挙げられる。代替的には、形式的に検証可能な又は高度保証性が付された命令等の形式的な方法を用いて開発されたソフトウェアを用いることが可能である。既存の記憶部コントローラの多くは、この類いのインタフェースをＡＳＩＣ技術を用いて実装する。
【００５３】
図２は、第１のコンピュータシステムの特定のコンポーネント及び接続されたエンティティについてさらなる詳細を示す。図１と同じように、最上位層には２つのコンピュータシステムが含まれている。セキュアブートシステムたる第１のコンピュータシステム１００は、インターネットやエンタープライズネットワーク等のユーザネットワーク４００に接続されている。管理コンピュータシステムたる第２のコンピュータシステム２００は、管理ネットワーク３００に接続されている。管理ネットワーク３００は個別ネットワーク環境であり、セキュアブートコンピュータシステム１００等のセキュアブートコンピュータシステムの管理に特化している。
【００５４】
上述と同様に、セキュアブートコンピュータシステム１００は記憶部コントローラ１５０を含むのであり、これについてより詳しく示されている。記憶部コントローラ１５０は管理ネットワーク３００に接続されており、これ故に管理コンピュータシステム２００と通信できる。
【００５５】
図から明らかなように、セキュアブートコンピュータシステム１００は幾つかの論理的コンポーネントで構成される。これらコンポーネントは印刷回路板（ＰＣＢ）で接続された個別の集積回路（ＩＣ）であったり、単一のＩＣ内で接続された異なる論理ブロックであったりすることができる。
【００５６】
論理ブロック１０１は、コンピュータシステムの核心部であり、また、ソフトウェア命令を実行可能な図１のプロセッサ１０１ａ，１０１ｂ等の１つ以上の処理装置を含む。論理ブロックは、電源投入又はリセットに際してシステムを起動させるために必要な外部からフェッチされた初期の命令を、実行する。ここで、外部からフェッチされたとは、論理ブロックの論理的及び／又は物理的外縁の外側にある（第１の通信プロトコルを実装するのに必要な真正な意味でのＲＯＭを除いた）コンポーネントからフェッチされたことを意味する。単一のＣＰＵの場合、ＣＰＵバスを介して最初に受信された処理されるべき命令セットがこれにあたるといえる。
【００５７】
論理ブロック１０１は、インタフェース１０２を介して記憶部コントローラ１５０に接続されている。このようにして、電源投入又はリセットに続いて、論理ブロック１０１は、初期命令を求めて記憶部コントローラ１５０に対してシークを行う。論理ブロック１０１の設計については、このような挙動が「ハードワイヤード化」されているか、「配線的になされている」か、又は「製造時に組み込まれている」ようにする。換言すれば、論理ブロック１０１で実行されているソフトウェア命令がこの挙動を変更することができない。
【００５８】
多くの場合、論理ブロック１０１のブータブルＩＣのピンを特定の態様で、例えばＰＣＢ等によって配線することによって、上述の構成を達成できる。ブートインタフェース及びプロトコルは、特定のピンに特定の電圧又は特定の電流を印加することによって指定し得る。代替的には、特定のピンのみを、特定のプロトコルに応答するシステムに配線し、他のピンを配線しないことにより、１つのインタフェース及びプロトコルについて起動がなされるようにピン配線を構成することができる。別の手法では、付属されたＲＯＭを用いるのであり、ＩＣは付属ロムに格納された設定用詳細事項に対してシークを行う。ＲＯＭは、真正な意味での（再書き込み不可型）ＲＯＭとすることができる。代替的には、ＥＰＲＯＭを用いることができる。ＥＰＲＯＭはソフトウェアによって１回はプログラミングされることができるが、その後においては、再プログラムされる前に一旦（例えば、装置の内部へのアクセスを与えることを要し、紫外線への露光等によって）削除されることを要する。別の代替案としては、改造されたＥＥＰＲＯＭを用いることができる。ＥＥＰＲＯＭを用いると通常は目的を達成することができない。なぜならば、論理ブロック上で実行されているソフトウェア命令によってＩＣに結合されたＥＥＰＲＯＭを再プログラムしてブートインタフェース及び／又はプロトコルを変更することができる。もっとも、一部のＥＥＰＲＯＭに関しては、特定のピンに配線を施すことによって「読み出し専用」モードにすることができる。例えば、ＩＣとＥＥＰＲＯＭの組み合わせに関して、ＩＣに給電した場合にＥＥＰＲＯＭが読み出し専用モードに入るように配線を仕込んでおくことができる。この場合には目的が達成される。なぜならば、ソフトウェアの実行のためにはＩＣへの給電が必須であるからである。例えば、ＥＥＰＲＯＭの該当する配線先が高位のピンを要する場合、このピンに関しては単にＩＣの給電元につなぐだけで済む。
【００５９】
別の代替的手法においては、一部のＩＣに含まれるオンボード型ヒューズを活用する。例えば該当するピンに過電圧を印加すること等によって、このようなヒューズを飛ばすことができ、不可逆的なブート設定を作成することができる。一部の場合においては、ソフトウェアがさらなるヒューズを飛ばすことによってブート設定を変更し得るのであり、この場合目的は達成されない。もっとも、一部のＩＣに関しては、（ソフトウェアによって変更できない）外部電圧の印加によってのみヒューズ飛ばしが許されるのであり、この場合には適切なヒューズ組み合わせを飛ばしておくことによって目的を達成できる。
【００６０】
論理ブロック１０１は通常幾つかの追加的コンポーネントに接続されている。これらコンポーネントには、ネットワークインタフェース１０５が含まれ得るのであり、これは論理ブロック１０１で実行されているソフトウェアがユーザネットワーク４００に接続された他のコンピュータシステムと通信することを可能とする。他のコンポーネント１１０としては、ＲＡＭや永続性記憶領域や更なるネットワークインタフェース等が含まれ得る。
【００６１】
記憶部コントローラ１５０はインタフェース管理部１５１を含むのであり、これは共通インタフェース１０２を介しての論理ブロック１０１との通信を管理する役割を担う。インタフェース管理部１５１は、インタフェース１５５をさらに介して記憶部マネージャ機能用ユニット１５２と通信する。記憶部マネージャは、記憶部コントローラ内の専用プロセッサ上で実行されているソフトウェアであることができる。
【００６２】
インタフェース管理部１５１は、論理ブロック１０１から発せられた要求であって、所定の記憶領域識別子に向けられたデータ読み出し又はデータ書き込み要求を識別する役割を担っている。該識別子は、インタフェース１０２上で使用されるプロトコルに応じてメモリアドレスだったりブロックアドレスだったりする。インタフェース管理部は論理ブロックからの有効な読み出し要求を識別してこれらを記憶部マネージャ１５２へと伝達するのであり、これを受けてデータが該マネージャから返される。記憶部マネージャが応答してデータを返した場合、インタフェース管理部はこのデータを論理ブロックに返す。
【００６３】
インタフェース管理部１５１は、論理ブロック１０１からの書き込み要求をも識別することができる。随意的にはこれらは記憶部マネージャ１５２へとは伝達されないが、場合によっては書き込みが為されていないにもかかわらずにあたかも書き込み要求が成功裏に実行されたかのように論理ブロックに対して応答を返すようにインタフェース管理部は構成され得る。このようにして、論理ブロックは記憶部マネージャからデータを読み出すことはできるが、書き込むことはできない。
【００６４】
インタフェース１５５は常時単方向性とすることができ、論理ブロック１０１に提供されるブートイメージを変更する用途のために提供される完全に別個なインタフェース１５６が別に設けられる。ブートイメージは、インタフェース１５６を介して正規に変更できるが、インタフェース１５５を介しては変更できない。インタフェース管理部１５１の実装に欠陥があった場合のみにインタフェース１５５を介してブートイメージを変更できる。インタフェース管理部１５１は（例えば）ホストコンピュータ上で実行されているＯＳに比べて格段に単純であり、従ってＯＳ内に悪用可能な欠陥が存在している可能性に比べてインタフェース管理部１５１内に欠陥が存在している可能性のほうが比較できない程に小さく、本願の仕組みのほうががすこぶるセキュアであるといえる。また、この仕組みによれば、物理的な介入なくしてブートイメージを更新することができる。
【００６５】
記憶部マネージャ１５２はネットワークインタフェース１５３を介して管理ネットワーク３００に接続されており、このネットワークを介して管理コンピュータシステム２００と通信することができる。この通信経路を用いて、管理コンピュータシステムは、インタフェース管理部１５１から受信された読み出し要求に応答してどのデータを返すべきかについて、記憶部マネージャに指示を与えることができる。この指示はインタフェース管理部から読み出し要求が受信された時点になされ得るのであり、また、記憶部マネージャはこのような読み出し要求を受領した際には管理コンピュータシステムに要求を発してどのデータを返すべきかを決定することができる。代替的には、かような指示はインタフェース管理部からの読み出し要求の事前になされることができ、管理コンピュータシステムは、インタフェース管理部１５１からの読み出し要求に対してどのデータを返すべきかについて事前に指示を記憶部マネージャに与えることができ、記憶部マネージャは指示データをメモリ上に格納できる。
【００６６】
通常、インタフェース１０２及びインタフェース１５５は両方単純な低レベルインタフェースである故に、インタフェース管理部１５１は「高度保証性」を伴った手法で実装されることができ、例えばハードワイヤード化されたロジックとしてＡＳＩＣ又はＰＬＤによって実装されるか、形式的に検証可能なソフトウェア命令を用いて実装されることができる。論理ブロック１０１上で実行されているマルウェアがインタフェース管理部１５１の挙動を阻害し得るおそれを最小化するという点において、この構成は望ましい。もっとも、記憶部コントローラ１５０は必ずしも高度保証性手法を用いて実装されることを要さないことに留意されたい。セキュリティ上の目的を達成するのに関して要求されることは、起動後においてマルウェアが論理ブロック１０１を乗っ取った場合に、マルウェアがコントローラ１５０に設計者の意図しない挙動を行わせることが困難になるということである。コントローラの機能性は比較的に単純であり、即ち主として次のことをなす：管理コンピュータから起動命令を受信し、論理ブロックからの書き込み要求を拒絶すること。この単純性故に、実際上においては、形式的方法によってそのようにしようと具体的に設計されない限り、実装例に欠陥をもたらすことは本質的に困難となる。
【００６７】
極端な例としては、マルウェアによる記憶部マネージャの乗っ取りを許すコードが（誤って又は悪質な意図をもって）記憶部マネージャ１５２の実装に混入されている場合が考えられ、この場合、理論上においては、記憶部マネージャの挙動は改変されて管理コンピュータシステム２００が命じたのとは異なるデータを後の起動処理で返すことになり得る。しかし、このような局面は十分に希なものであり、実際上においては最小限のセキュリティ上の懸念しかもたらさない。実際的により懸念されるのは、インタフェース管理部１５１の劣悪な実装例がインタフェース１０２を介しての予期せぬ入力を許してしまうことであり、この場合インタフェース管理部は悪質なコードを実行し始めてしまうかもしれない。この局面が実際的により懸念されるといえる根拠は次のように理解される。即ち、インタフェース管理部１５１と記憶部マネージャ１５２との間のプロトコルはすこぶる単純である可能性が高いものの（例えば、記憶領域の特定のブロックに関する要求等）、インタフェース１０２上で実行されるプロトコルはより複雑であり得る（例えば、後述のＰＸＥブートの場合）。したがって、インタフェース管理部１５１に予期せぬ態様での挙動を行わせることができる予期せぬ入力を発見できる確率は比較的に高いといえる。
【００６８】
インタフェース１０２を介しての攻撃成功の可能性を減じるには、「高度保証性」を伴う態様でインタフェース管理部１５１を構築する。これを達成し得る方法としては以下がある：
・  チューリングマシン（Turing machine）の代わりにＡＳＩＣ又はＰＬＤで実装されたロジック設計を用いる場合。偶然によっては、論理的にハードワイヤード化して予め構成されることによってこの構成を得ることになり得るが、同じように、論理ブロック１０１から再プログラム可能でなければ、ＰＬＤを記憶部マネージャ１５２から再プログラム可能とすることも原理的には可能である。
・  チューリングマシン上で実行されるソフトウェアであって、該ソフトウェアは形式的な手法をもって開発されており、従って予期せぬ挙動の余地はないものと考えられる場合。この場合には論理的にハードワイヤード化しておくことを要さず、論理ブロック１０１から記憶領域がアクセス可能でないことを条件に、読み書き可能な記憶領域からソフトウェアをロードすることができる。
【００６９】
実際上、これらの手法はＰＸＥブート又は類似の構成に関しては非現実的となるが、より単純なプロトコルに関しては現実的といえる。
【００７０】
本発明の実施形態の利点について理解するためには、インテル（登録商標）８０８６ＣＰＵに基づいたｘ８６系技術のためのＰＸＥブート等の既知のネットワークブート手法について比較を行うことが有用である。
【００７１】
ネットワークブートの場合、コンピュータシステムには１つ以上の「ブートＲＯＭ」が設けられており、これを用いてコンピュータをブートストラップして、ネットワークサーバからブートイメージを検索するように指示する。ｘ８６系システム用のブート前実行環境（ＰＸＥ、pre-boot execution environment）による起動の場合、次の通りである：
・  第１の起動段階はＢＩＯＳ又はＵＥＦＩ（Unified Extensible Firmware Interface）ＲＯＭからなされる。
・  この段階においてＰＸＥ ＲＯＭを特定する。
・  ＰＸＥ ＲＯＭには、ＤＨＣＰを用いてＩＰアドレスを取得するための命令が含まれる。
・  そして、ＰＸＥ ＲＯＭには、ネットワークサーバからＴＦＴＰを用いてファイルを検索するための命令が含まれる。
・  そして、制御は検索されたイメージファイル内の命令に渡される。
【００７２】
ネットワークサーバはＴＦＴＰのプット／書き込みを禁止するように構成されることができ、また、必要に応じてイメージファイルをネットワークサーバ上で変更することができる。これによってイメージファイルの更新が許容されるも、ＰＸＥ ＲＯＭの更新は許容されない。
【００７３】
実際上においては、ＢＩＯＳ／ＵＥＦＩ及びＰＸＥ ＲＯＭは真正な意味でのＲＯＭであることは絶対なく、実体はプログラマブルＲＯＭであり、上述のように永続的記憶領域の一種であるということに留意されたい。これは必要なことである。なぜならば、このような起動プロセスには相当の複雑度が伴うものであり、いつの日かアップグレードやパッチが必要となる高い蓋然性が見込まれる。
【００７４】
本発明の実施形態は、このような既知のネットワークブートの仕組みとは幾つかの点で異なる。
【００７５】
ＣＰＵ１０１の論理的外縁と記憶部コントローラ１５０との間のプロトコルのためのサポートは、コンピュータシステム１００内において真正な意味でのハードワイヤード化形式で提供されており、純粋な（再書き込み不可型）ＲＯＭ内の命令として又はシリコン上のハードワイヤード化ロジックとしてサポートが提供されている。論理ブロック１０１は真の意味で「読み出し専用」である一方、ＰＸＥブートでは論理ブロックは再フラッシュ可能なＰＲＯＭを含んでいる。したがって、プロトコルは、フラッシュメモリのチップ又はハードディスクからバイト列を取得するために用いられるような単純な予め構成されたインタフェースプロトコルである可能性が高い。他の例としては、ＲＡＭ又はＳＤカードからデータを取得するためのプロトコルが挙げられる。ハードワイヤード化した構成を使用し、このような基本的な通信プロトコルを実装することによって、コンピュータシステムの内部要素に物理的にアクセスできない者が起動プロセスを改竄することは困難となる。インタフェース１０２により単純なプロトコルを用いることによって、「高度保証性」を伴うエンジニアリング手法を用いてインタフェース管理部１５１を構築することが現実的に達成可能となる。
【００７６】
ＣＰＵ又は複数のＣＰＵを含む論理ブロックの設計に不可欠な予め構成された通信プロトコルを用いることによって、次のステップをなすように記憶部コントローラ１５０をシステム内にて配置することができる。即ち、システムを起動するための、ＣＰＵ１０１から一番最初に来る要求に応答するステップであって、該要求はＣＰＵの物理的及び／又は論理的外縁の外側の別個のコンポーネントからデータを取得するためになされる、ステップ。したがって、ｘ８６系起動プロセスにおいては、記憶部コントローラ１５０はＢＩＯＳ／ＵＥＦＩ ＲＯＭをエミュレートして、リセットベクトルとそのアドレスにある命令とをＣＰＵに渡す。
【００７７】
上述の２点を前提とすると、マルウェアが、記憶部コントローラ１５０への要求がなされる前に実行される命令を格納する術はない。ＣＰＵ１０１と記憶部コントローラ１５０との間のプロトコルは、ＣＰＵ１０１のアーキテクチャ内で予め構成されている。プロトコルがとても単純であり、また、プロトコルがＣＰＵの動作にとって根本的なものであるが故に、プロトコルはソフトウェア的手段によって改変されることができない。また、随意的には、記憶部コントローラ１５０は、ハードワイヤード化されたロジック又は形式的に検証可能な一連のマイクロコントローラ命令によってこのプロトコルの自己側の側面を管理することができる。このため、コンピュータシステム１００上で動作しているマルウェアは、このプロトコルを手段として用いて記憶部コントローラ１５０内のロジックを攻撃できることは決してないといえる。該構成は、ＩＰ／イーサネット（登録商標）ネットワークの複雑性と対照されるべきであり、ＩＰ／イーサネットネットワークには通常スイッチやＤＨＣＰサーバ等の様々なコンポーネントが含まれており、これにソフトウェアベースドなＴＦＴＰサーバも組み合わされている。このような複雑なシステムは、ハードワイヤード化されたロジックや形式的に検証可能な命令との親和性を有しておらず、コンピュータシステム上で動作しているマルウェアによって悪用され得る脆弱性を含んでいる可能性がより高い。
【００７８】
「文鎮化」（bricked）されたシステムのリカバリを可能とするシステムとの比較も理解促進に資する。一部のシステム（最低限においてＣＰＵとブートＰＲＯＭとを含むＰＣＢ）では、第２のシステムがブートＰＲＯＭを再プログラムするためのケーブルの取り付けを許すものがある。この構成が設けられている理由は、システムが「文鎮化」された場合にリカバリを可能とするためである。「文鎮化」とは、ＣＰＵ上で実行されているソフトウェアがＰＲＯＭを不正に再プログラムした結果、ＣＰＵについて最低限の起動を達成すらできなくなった場合をいう。このためのケーブルは一般ユーザには提供されていない。このような構成では、ＣＰＵ上で実行されているソフトウェアがＰＲＯＭを再フラッシュすることができる。本発明の実施形態によれば、このような処理は可能ではない。
【００７９】
多くのプロセッサは２段階起動プロセスを有していることに留意されたい。２段階起動プロセスにおいては、プロセッサは先ず例えばＥＥＰＲＯＭ等の第１のソースにて命令をシークする。第１のソースからの命令は、ＳＤカード等の第２のソースから更なる命令をシークせよとプロセッサに命ずる。本発明の任意の実施形態はこのようなシステムにおいて実装されることができ、起動プロセスの第１段階は上述のコントローラコンポーネント及び論理ブロックで代替されるのであり、該論理ブロックは、第１の通信プロトコルに準拠して第１のインタフェースを介してコントローラと通信するように予め構成されており、該通信はコンピュータシステムによって実行される命令によって改変されない態様でなされる。
【００８０】
本発明の実施形態を実装するのに用いることができる様々なコンポーネントについて具体的な例を提示する。異なるコンポーネントや等価なコンポーネントを用いても、説明するステップと機能的に等しいステップを実装できるということに留意されたい。
【００８１】
論理ブロック１０１はフリースケール（登録商標）ｉ．ＭＸ６プロセッサであることができ、これは４線式ＳＰＩプロトコルを用いてインタフェース１０２を介して初期起動命令をシークするように構成されている。インタフェース管理部１５１はＦＰＧＡを用いて実装することができ、記憶部マネージャ１５２はテキサスインスツルメンツ（登録商標）ＯＭＡＰ（Open Multimedia Applications Platform）プロセッサと関連付けられているデュアルポートメモリとを用いて実装することができる。ＦＰＧＡはＳＰＩ（serial peripheral interface）のスレーブとして動作するように構成されて、インタフェース１０２を介してｉ．ＭＸ６プロセッサと通信するのであり、該プロセッサはＳＰＩのマスタとして動作する。また、ＦＰＧＡは、インタフェース１５５を用いて記憶部マネージャのデュアルポートメモリから読み出しを行うように構成されていることもできる。
【００８２】
ＳＰＩのスタートアップ後、ＦＰＧＡはＳＰＩマスタ出力スレーブ入力（ＭＯＳＩ、Master Output, Slave Input）ラインからビットを読み出し、ｉ．ＭＸ６プロセッサから発せられたERASE、ERAL、EWDS、EWEN、READ、WRITE及びWRAL等の任意の命令を識別する。READ以外の命令については、ＦＰＧＡは、プロトコルに指定されているとおりの応答をｉ．ＭＸ６に返すが、何らの更なる行動を取らない。
【００８３】
ＳＰＩ ＭＯＳＩライン上でREAD命令が受信された場合、READ命令の一部として送られたアドレス先メモリ位置をＦＰＧＡがパースすることができる。そして、ＦＰＧＡは、インタフェース１５５を用いてメモリの適切なアドレスにて読み出しを行う。ＦＰＧＡは、読み出された８ビットをＳＰＩ ＭＩＳＯ（Master Input, Slave Output）ラインを介してｉ．ＭＸ６に出力する。ｉ．ＭＸ６がＳＰＩ ＳＳ（slave select）ラインを高電圧のままに維持している場合、ＦＰＧＡは続いて次の８ビットをＳＰＩ ＭＩＳＯラインを介してメモリから返す。当該処理は、ＳＰＩ ＳＳラインの高電圧状態が解かれるまで続くことができる。ｉ．ＭＸ６が起動済みになるまでREAD命令をこのようにして遂行していくことができる。
【００８４】
起動データに対して変更を加える必要がある場合、ＴＩ ＯＭＡＰプロセッサは、ネットワークインタフェース１５３を用いてデータを取得して、第２のポートを用いてそれをメモリ内に書き込むことができる。
【００８５】
上述したように、単純なプロトコルは望ましい。なぜならば、このようなプロトコルはハードウェアで実装するのが経済的に及び技術的に実現可能であるからである。これにより、システムを攻撃することは困難又は不可能となる。もっとも、様々な性格のプロトコルが実現可能であり、一部は他のプロトコルよりも複雑であり、より複雑なプロトコルは向上した機能性を有していたり他の利点を有している場合がある。したがって、実際的な実装例では、所謂「最善」のプロトコルは経済的に及び技術的に実現可能であるもっとも複雑なプロトコルであるとみなすことができる。この側面は用途によって変わってくるであろう。
【００８６】
別の例を挙げれば、論理ブロック１０１はインタフェース１０２を介して初期起動命令をシークするように構成されており、その際はＳＤカードプロトコル又はｅＭＭＣ（embedded MultiMediaCard）プロトコルを用いる。
【００８７】
ＳＤカードプロトコル及びｅＭＭＣプロトコルは、ＳＰＩプロトコルや他の単純なメモリアクセスインタフェースに比べて、次の事項に関してのより大きな遅延を許容することができる：即ち、論理ブロック１０１による読み出し要求の発令と、インタフェース管理部１５１にデータが提供される時点との間の遅延。単純なメモリアクセスインタフェースでは所定のクロックサイクル内に要求されたデータを携えて応答することを要するが、ＳＤカードプロトコル及びｅＭＭＣプロトコルでは、インタフェース管理部１５１がデータを携えて応答するまでにより大きな遅延が許容される。
【００８８】
ＳＤカードプロトコル及びｅＭＭＣプロトコルによって許容されるより高いタイミングにおける自由度は、ＳＰＩ等の単純なメモリアクセスインタフェースに比して、実装に関してより広範な選択肢を提供し得る。例えば、単純なメモリアクセスインタフェースではＳＲＡＭで実装される記憶領域が必要とされ得るも、ＳＤカードプロトコル又はｅＭＭＣプロトコルによればＤＲＡＭを用いて記憶部マネージャ１５２を構成することが可能とされ得る。ＤＲＡＭの使用によって、記憶部マネージャ１５２はＳＲＡＭで可能とされるよりも遙かに大きなデータ量を格納できるのであり、単にＢＩＯＳ又はブートローダを提供するのではなく、完全なＯＳイメージを記憶部コントローラ１５０が配信することができる。さらに、図６〜７において後述する単一の記憶部コントローラが複数の論理ブロックを担当する実施形態では、ＳＤカードプロトコル又はｅＭＭＣプロトコルを用いることによって複数の論理ブロックを逐次的にではなく並列的に起動していくことが可能となる。厳格なタイミング要件を課す単純なメモリアクセスプロトコルを用いた場合、各読み出し要求は即座的に処理されることを要する。即ち、達成できる並列性はＳＲＡＭのピーク転送速度によって制限されることになる。より複雑なプロトコルによってもたらされるより大きな遅延許容度によって、読み出し要求をキューイングでき、ＤＲＡＭに対しての要求を分散でき、これによってピーク転送速度が変わらずともより大きな総合的スループットを達成できる。
【００８９】
図３は、図２において説明された第１及び第２のコンピュータシステムに対応する第１及び第２のコンピュータシステムを示すが、図３のそれらは制御に関する要素をさらに含んでいる。
【００９０】
図から明らかなように、図３のセキュアブートシステム１００は、図２のセキュアブートシステム１００と同じコンポーネント・接続・インタフェースを含むが、論理ブロック１０１と記憶部コントローラ１５０とを接続する制御接続１４０をさらに含む。記憶部コントローラ１５０は、制御接続１４０を用いて、論理ブロック１０１について電源投入をしたり、論理ブロックについて電源遮断をしたり、論理ブロックについてリセットを行ったりすることができる。特に、論理ブロックを非アクティブ状態から電源投入状態に遷移させるか、リセットを行うことによって、起動命令の実行による既知の良好な状態へと強制的に移行させることができる。
【００９１】
本明細書において「リセット」との語は、論理ブロックのパワーサイクル（論理ブロック１０１について電源遮断を行って、続いて論理ブロックについて電源投入を行うこと）及び「ハードウェアリセット」とも呼べる処理の双方を含む。ハードウェアリセットとは、電源遮断／電源投入シーケンスを経ずして論理ブロックに自己の初期起動プロセスを強制的に実行させるハードウェアレベルでの処理である。
【００９２】
本明細書において「電源投入」との語は、電源が遮断された非アクティブ状態から論理ブロック電源投入状態へと遷移させることを指し、この場合論理ブロックは比較的長時間にわたって非アクティブ状態にあったものとする。論理ブロックについて電源投入がなされた場合、必ずその前のいつかの時点において電源遮断状態があったことになるということに留意されたい。もっとも、「電源投入」との用語はパワーサイクルリセットとは異なるのであり、後者では電源投入が先行する電源遮断の比較的短時間経過後に生じる。
【００９３】
制御接続１４０は、記憶部コントローラ１５０を、論理ブロック１０１を実装する１つ以上の集積回路の電圧入力ピンに接続することができる。このようにして、記憶部コントローラ１５０は、論理ブロック１０１を実装する１つ以上の集積回路に電圧が印加されるか否かを制御できるのであり、それ故に論理ブロック１０１の電源状態を制御することができる。
【００９４】
代替的に又は追加的には、制御接続１４０は、記憶部コントローラ１５０を、論理ブロック１０１を実装する集積回路のハードウェアリセットピンに接続することができる。ハードウェアリセットピンに対しての電圧を低位に下げてから、電圧を高位に復帰させると、論理ブロック１０１は自己の初期起動プロセスを実行することになる。
【００９５】
記憶部コントローラ１５０は、図３に不図示の電力管理集積回路（ＰＭＩＣ、power management integrated circuit）を含むことができる。記憶部コントローラがＰＭＩＣを有する場合、制御接続１４０は、ＰＭＩＣを論理ブロックを実装する１つ以上の集積回路の電圧入力ピン及び／又はハードウェアリセットピンに接続することができる。
【００９６】
上述したように、論理ブロック１０１は、電源投入又はリセットの直後に記憶部コントローラ１５０に対して起動命令のシークを行うように予め構成されている。この機能を、制御に関する機能と組み合わせることによって、記憶部コントローラ１５０は有利なことに、論理ブロック１０１を所望のアクティブ終局状態に遷移させることができるのであって、処理の開始前に論理ブロック上で動作していたソフトウェアが終局状態に影響を与えることができないようにすることができる。論理ブロック１０１が未知のアクティブ状態にあり、マルウェアを実行しているかもしれない場合、記憶部コントローラ１５０は、論理ブロックに対して電源遮断を行ってそして電源投入を行うか、又は、論理ブロックに対してリセットを行うことができる。これがなされた後、即ちブート後においては、論理ブロック１０１は所望のアクティブ状態に入っているのであり、マルウェアが実行されていないことについて記憶部コントローラ１５０は確証を持つことができる。
【００９７】
コントローラは、図１に示されているＲＡＭ１１５等の論理ブロック１０１に接続されたＲＡＭの電源状態をも制御することができる。マルウェアが実行されていた場合において論理ブロック１０１について電源遮断又はリセットがなされるもＲＡＭについては電源遮断又はリセットがなされていない場合、ＲＡＭ内に何らかのデータが残存しているおそれがあり、後に論理ブロック１０１についてリセット又は電源投入がなされると、論理ブロック１０１の終局状態に影響が及び得る。このようなデータは、再起動後において再発するセキュリティ障害を惹起し得る。ＲＡＭについて電源遮断を行うことによって、再起動前に装置上で実行されていたソフトウェアによる残存効がないようにし易くなる。一部の実施形態では、ＲＡＭについては十分に長い期間にわたって電源遮断を行ってデータ残留の問題を回避できる。
【００９８】
記憶部コントローラ１５０は、制御接続１４０を用いて論理ブロック１０１について電源投入、電源遮断又はリセットを行うべきかを決定するためのさらなる論理コンポーネントを含むことができる。例えば、記憶部コントローラ１５０は、図４に図示のライフサイクル管理部１５４を含むことができる。
【００９９】
制御接続１４０を用いて論理ブロック１０１について電源投入、電源遮断又はリセットを行うべきかを決定するために記憶部コントローラ１５０が用いることができる手法は幾つかある。
【０１００】
記憶部コントローラ１５０が、制御接続１４０を用いて論理ブロック１０１について電源投入、電源遮断又はリセットを行うべきと決定するための１つの手法では、記憶部コントローラがインタフェース１０２を介して通信を論理ブロックから受信する。該通信に基づいて、記憶部コントローラは、論理ブロック１０１について電源遮断又はリセットを行うべきかを決定できる。
【０１０１】
この構成の１つの例では、記憶部コントローラ１５０は論理ブロック１０１から通信を受信するのであり、該通信は論理ブロックがデータ処理を完了したことを示すものである。そして、記憶部コントローラは論理ブロック１０１について電源遮断できると決定して、制御接続１４０を用いて論理ブロック１０１について電源遮断を行う。別の例では、記憶部コントローラ１５０は論理ブロック１０１から読み出し及び書き込み要求を受信し、記憶部コントローラは読み出し及び書き込み要求に基づいて論理ブロック１０１の電源遮断又はリセットが必要であると決定する。例えば、特定の読み出し及び書き込み要求はマルウェアが論理ブロックを乗っ取ったことを示唆するのであり、その場合、論理ブロック１０１について電源遮断又はリセットを行うことを要する。一部の場合においては、論理ブロック１０１で実行されているソフトウェアは記憶部コントローラ１５０に対して何らの書き込み要求もしないものと想定されることができる。この場合、任意の書き込み要求は、論理ブロック１０１上でマルウェアが実行されていることの証拠としてみなされることができる。
【０１０２】
記憶部コントローラが論理ブロックについて電源投入、電源遮断又はリセットを行うべきとの決定をなすことができる別の方法では、記憶部コントローラ１５０が管理ネットワーク３００から入力を受信する。この入力は、管理コンピュータシステム２００からの入力であるか、又は、図３〜４には不図示の管理ネットワーク３００に接続された別のシステムからの入力であることができる。１つの例では、管理ネットワーク３００が論理ブロック１０１についての電源投入、電源遮断又はリセットを求める要求を発し、記憶部コントローラ１５０が制御接続１４０を用いて応答して論理ブロック１０１について電源投入、電源遮断又はリセットを行う。一部の場合においては、論理ブロック１０１は、初めは第１のユーザによって使用されており、管理コンピュータシステム２００（又はそのユーザ）が、当該論理ブロック１０１へのアクセスを第１のユーザよりも高優先順位の第２のユーザに割り当てるべきであると決定し得る。この場合、記憶部マネージャ１５０は論理ブロック１０１についてパワーサイクルを行って、既知の良好な状態へと遷移させて、そしてこれをより高優先順位のユーザへと割り当てることができる。
【０１０３】
記憶部コントローラ１５０が論理ブロック１０１について電源投入、電源遮断又はリセットを行うべきとの決定をなすことができる第３の方法としては、インタフェース１６０やインタフェース１６１等の従前指定されていない他のインタフェースからの入力を記憶部コントローラ１５０が受信した場合の処理が挙げられる。インタフェース１６０はセキュアブートシステム１００の従前指定されていないコンポーネント１３０を記憶部コントローラ１５０に接続し、インタフェース１６１は従前指定されていない何らかのコンピュータシステム５００を記憶部コントローラ１５０に接続する。
【０１０４】
例えば、コンポーネント１３０及び／又はコンピュータシステム５００は、センサ入力、ユーザ入力又は何らかの更なるネットワーク接続からの入力に基づいて、記憶部コントローラ１５０のための入力を生成することができる。インタフェース１６０及び／又はインタフェース１６１を介して受信された入力に基づいて、記憶部コントローラ１５０は、論理ブロック１０１について電源投入、電源遮断又はリセットを行うべきかの決定をなすことができる。一部の場合においては、論理ブロック１０１は、図３〜４に不図示の別個の処理ブロックの「スレーブ」として用いられている場合がある。この場合、別個の処理ブロックがもはやスレーブ処理ブロック１０１を要していないとのことをセンサ又はユーザ入力が示し得るのであり、そうすると論理ブロック１０１については電源遮断又はリセットを行える。
【０１０５】
記憶部コントローラ１５０は、上述１つ以上の方法並びに上述されていない他の方法に従って論理ブロック１０１について電源投入、電源遮断又はリセットを行うべきかの決定をなすことができるように構成されていることができる、ということに留意されたい。また、制御に関する機能を実装するためには、コンポーネント１３０、コンピュータシステム５００及びインタフェース１６０，１６１は必須ではないことにも留意されたい。
【０１０６】
図５は、図２〜４との関連で上述されたのと実質的に同じ第１及び第２のコンピュータシステムを示しているが、ネットワークインタフェース１０５については、それが含まれる場合においては、代替的態様にて実装されている。
【０１０７】
図５の実施形態では、図２〜４のようにネットワークインタフェース１０５は論理ブロック１０１には接続されていない。代わりに、ネットワークインタフェース１０５は、従前指定されていないインタフェース１６２を介在して記憶部コントローラ１５０のインタフェース管理部１５１に接続されている。
【０１０８】
この構成によれば、論理ブロック１０１は、インタフェース１０２を介在して記憶部コントローラ１５０と通信することによって、インタフェース１０５を介してユーザネットワーク４００と通信する。したがって、インタフェース１０２は統合型インタフェースであり、次の両方の用途のために用いられる：即ち、記憶部コントローラ１５０に対して起動命令を要求するため、及び、ユーザネットワーク４００と通信するため。インタフェース１０２を統合型インタフェースとして実装することは、論理ブロック１０１を実装する１つ以上の集積回路の利用可能ピン数が制限されている場合に有利となり得る。
【０１０９】
インタフェース１０２を統合型インタフェースとして実装するためには、インタフェース管理部１５１は、インタフェース１０２を介して自己が受信する通信を識別して、そして適切に応答していく。インタフェース管理部１５１が、通信がブートイメージ等の格納されたデータについての読み出し又は書き込み要求であると識別した場合、インタフェース管理部１５１は図２との関係で上述したように次のいずれかの処理をなす：即ち、（読み出し要求である場合には）要求を記憶部マネージャへと転送し、（書き込み要求である場合には）要求を破棄する。インタフェース管理部１５１が、通信がネットワークデータについての読み出し又は書き込み要求であると識別した場合、インタフェース管理部１５１はインタフェース１６２を介してネットワークインタフェース１０５へと要求を転送する。
【０１１０】
図５についての例示的実施形態によれば、ＳＤＩＯプロトコルが用いられるのであり、該プロトコルによれば、同一の物理インタフェースにて記憶関連サービス及び入出力（Ｉ／Ｏ）関連サービスの両方を装置が提供することを可能とする。したがって、インタフェース管理部１５１は次の処理がなされることを確保する役割を負う：即ち、格納データについての読み出し要求は記憶部マネージャ１５２に捌かせ、データ書き込み要求は破棄し、ネットワークについての読み出し及び書き込み要求はネットワークインタフェース１０５に捌かせること。
【０１１１】
図５には、図３〜４との関係で上述された制御接続１４０が含まれているものの、図５の代替的ネットワークインタフェースについては、制御接続を伴っても伴わずにしても実装することが可能であることに留意されたい。
【０１１２】
図６〜７は、セキュアブートシステム（secure boot system）１００及び管理コンピュータシステム２００を示しており、セキュアブートシステム１００は複数の論理ブロック１０１ａ，１０１ｂ，１０１ｃを含んでいる。
【０１１３】
図６〜７から明らかなように、セキュアコンピュータシステム（secure computer system）１００は、複数の論理ブロック１０１ａ，１０１ｂ，１０１ｃと記憶部コントローラ１５０とを含む。各論理ブロック１０１ａ，１０１ｂ，１０１ｃはインタフェース１０２ａ，１０２ｂ，１０２ｃを介して記憶部コントローラ１５０に接続されており、記憶部コントローラ１５０は管理ネットワーク３００に接続されており、これによって記憶部コントローラ１５０は管理コンピュータシステム２００と通信可能になっている。図１〜５にて上述したように、各論理ブロック１０１ａ，１０１ｂ，１０１ｃは、電源投入時又はリセット時において記憶部コントローラ１５０に対して起動命令を要求するように構成されている。
【０１１４】
図６〜７に示される個々のコンポーネント、接続及びインタフェースの各々は、図１〜５との関係で上述した対応するコンポーネント、接続及びインタフェースと同じであることができ、また、それらと同様の挙動を示すことができる。もっとも、図６〜７の実施形態に関しては、単一の記憶部コントローラ１５０が複数の論理ブロック１０１ａ，１０１ｂ，１０１ｃを制御する。特に、複数の論理ブロック１０１ａ，１０１ｂ，１０１ｃは、電源投入時又はリセット時において同じ記憶部コントローラ１５０にて起動命令をシークするのであり、同じ記憶部マネージャ１５２からそれがなされる。
【０１１５】
論理ブロック１０１ａ，１０１ｂ，１０１ｃの各々は、図１〜５のいずれかとの関係で上述された論理ブロック１０１と同じであることができる。図６〜７では３つの論理ブロック１０１ａ，１０１ｂ，１０１ｃが示されているも、これは単に例示的目的においての表現であると理解されるべきなのであり、１よりも多い個数の論理ブロックを用いる構成も図６〜７の実施形態に沿うということに留意されたい。
【０１１６】
記憶部コントローラ１５０は、１つ以上のインタフェース管理部１５１ａ，１５１ｂ，１５１ｃと、記憶部マネージャ１５２と管理ネットワーク３００に接続されたネットワークインタフェース１５３とを含み、これによって、記憶部コントローラ１５０は管理コンピュータシステム２００と通信可能となる。図６〜７では、単一の記憶部マネージャが複数の論理ブロック１０１ａ，１０１ｂ，１０１ｃを制御している様子が示されている。もっとも、セキュアブートシステム１００は、複数の記憶部コントローラ１５０を含み得るのであり、各々は異なる複数の論理ブロックを制御することができる。
【０１１７】
１つ以上のインタフェース管理部１５１ａ，１５１ｂ，１５１ｃは、図１〜５のいずれかとの関係で上述したインタフェース管理部１５１と同じであることができる。１つ以上のインタフェース管理部１５１ａ，１５１ｂ，１５１ｃの各々はインタフェース１５５ａ，１５５ｂ，１５５ｃを介して記憶部マネージャ１５２に接続されており、１つ以上のインタフェース管理部１５１ａ，１５１ｂ，１５１ｃの各々はインタフェース１０２ａ，１０２ｂ，１０２ｃを介して論理ブロック１０１ａ，１０１ｂ，１０１ｃの１つにも接続されている。図６〜７では、論理ブロック１０１ａ，１０１ｂ，１０１ｃの個数とインタフェース管理部１５１ａ，１５１ｂ，１５１ｃの個数とが対応しているものの、これは必要ではない。例えば、単一のインタフェース管理部１５１が、複数のインタフェース１０２ａ，１０２ｂ，１０２ｃを介して複数の論理ブロック１０１ａ，１０１ｂ，１０１ｃに接続されていることができる。
【０１１８】
記憶部マネージャ１５２は、図１〜５のいずれかとの関係で上述した記憶部マネージャ１５２と同じであることができる。記憶部マネージャ１５２は、上述のように、１つ以上のインタフェース１５５ａ，１５５ｂ，１５５ｃを介して１つ以上のインタフェース管理部１５１ａ，１５１ｂ，１５１ｃに接続されており、また、インタフェース１５６を介してネットワークインタフェース１５３にも接続されている。１つ以上のインタフェース管理部１５１ａ，１５１ｂ，１５１ｃを記憶部マネージャ１５２に接続している１つ以上のインタフェース１５５ａ，１５５ｂ，１５５ｃは、図１〜５との関係で上述されたインタフェース１５５と同じであることができる。同様に、記憶部マネージャ１５２をネットワークインタフェース１５３に接続しているインタフェース１５６は、図１〜５との関係で上述されたインタフェース１５６と同じであることができる。
【０１１９】
ネットワークインタフェース１５３は、図１〜５のいずれかとの関係で上述されたネットワークインタフェース１５３と同じであることができる。インタフェース１５６を介して記憶部マネージャ１５２に接続されているのに加えて、ネットワークインタフェース１５３は、管理ネットワーク３００を介して管理コンピュータシステム２００にも接続されている。管理コンピュータシステム２００及び管理ネットワーク３００は、図１〜５のいずれかとの関係で上述されたものと同じ目的で供され且つ同様の挙動を示すことができる。
【０１２０】
図６のセキュアコンピュータシステム１００はネットワークインタフェース１０５をも含むことができ、これは、図２との関係で上述されたネットワークインタフェース１０５と同じであるか、又は、図５との関係で上述されたネットワークインタフェースと同じであることができる。したがって、図６はネットワークインタフェース１０５がインタフェース１６２ａ，１６２ｂ，１６２ｃによって１つ以上のインタフェース管理部１５１ａ，１５１ｂ，１５１ｃに接続されているものと示しているものの、ネットワークインタフェース１０５は図２との関係で上述されたようにインタフェース１０３によって各論理ブロック１０１ａ，１０１ｂ，１０１ｃに接続されていることもできることに留意されたい。代替的には、図７に示されているように、１つより多い個数のネットワークインタフェース１０５ａ，１０５ｂ，１０５ｃが設けられていることもできる。１つ以上のネットワークインタフェース１０５ａ，１０５ｂ，１０５ｃの各々は、図７に示されているようにそして図２と同様にして１つ以上の論理ブロック１０１ａ，１０１ｂ，１０１ｃに接続されていることができ、又は、図５〜６と同様にして１つ以上のインタフェース管理部１５１ａ，１５１ｂ，１５１ｃに接続されていることができる。
【０１２１】
論理ブロック１０１ａ，１０１ｂ，１０１ｃを１つ以上のインタフェース管理部１５１ａ，１５１ｂ，１５１ｃに接続しているインタフェース１０２ａ，１０２ｂ，１０２ｃの各々は、図１〜５との関連で上述したインタフェース１０２と同じであることができる。図６〜７ではインタフェース１０２ａ，１０２ｂ，１０２ｃの各々は図５との関係で上述された統合型インタフェースとして表されているが、インタフェース１０２ａ，１０２ｂ，１０２ｃの各々は図２〜３との関係で上述されたインタフェース１０２であることもできるということに留意されたい。また、図６〜７は各論理ブロック１０１ａ，１０１ｂ，１０１ｃが制御接続１４０ａ，１４０ｂ，１４０ｃによって記憶部コントローラに接続されているものと示しており、これ故に図３〜４との関係で上述された制御についての機能を図６〜７の実施形態でも実装できる。この場合、図３〜４との関係で上述されたようにして制御についての機能を実装することができ、セキュアブートシステム１００は図６〜７に不図示であるが図３〜４との関係では上述された追加的なコンポーネント、接続及びインタフェースの任意のものを含み得る。また、図６〜７の実施形態は制御についての機能なしに実装され得ることにも留意されたいのであり、この場合、制御接続１４０ａ，１４０ｂ，１４０ｃは不要となる。
【０１２２】
図６〜７の実施形態は制御に関する機能を含んでいるが、記憶部コントローラは、複数の論理ブロック１０１ａ，１０１ｂ，１０１ｃの各々について独立的に電源投入、電源遮断又はリセットを行うことができる。したがって、利点を述べるに、単一の記憶部マネージャ１５２を有する単一の記憶部コントローラ１５０が、複数の論理ブロックに対して同じ起動命令のセットを提供することができるのであり、該命令は単一の記憶部マネージャ１５２からもたらされるのであるも、複数の論理ブロックの電力状態を独立的に制御することができる。
【０１２３】
図６〜７の実施形態は、図６〜７に図示されていないが図１〜５において説明された他のコンポーネントをも含むことができる。例えば、セキュアブートシステム１００は、図１〜２にて説明された他のコンポーネント１１０を含むか、図３〜４にて説明されたコンポーネント１３０及びインタフェース１６０を含むか、図３〜４にて説明されたようにインタフェース１６１を介してコンピュータシステム５００と接続されていることができる。
【０１２４】
様々な随意的特徴を伴う幾つかの実施形態について上述した。相互排他的な特徴を除いては、随意的特徴の１つ以上について任意の組み合わせをなすことができるということに留意されたい。
【図１】
2018536958.tif 000003
【図２】
2018536958.tif 000004
【図３】
2018536958.tif 000005
【図４】
2018536958.tif 000006
【図５】
2018536958.tif 000007
【図６】
2018536958.tif 000008
【図７】
2018536958.tif 000009
【国際調査報告】
2018536958.tif 000010
2018536958.tif 000011
2018536958.tif 000012