JP6968811B2 - ネットワークを通じて更新されることができるセキュアなブートコードキャッシュ - Google Patents

ネットワークを通じて更新されることができるセキュアなブートコードキャッシュ Download PDF

Info

Publication number
JP6968811B2
JP6968811B2 JP2018548281A JP2018548281A JP6968811B2 JP 6968811 B2 JP6968811 B2 JP 6968811B2 JP 2018548281 A JP2018548281 A JP 2018548281A JP 2018548281 A JP2018548281 A JP 2018548281A JP 6968811 B2 JP6968811 B2 JP 6968811B2
Authority
JP
Japan
Prior art keywords
interface
computer system
controller
logical block
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018548281A
Other languages
English (en)
Other versions
JP2018536958A5 (ja
JP2018536958A (ja
Inventor
ハリソン ヘンリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Garrison Technology Ltd
Original Assignee
Garrison Technology Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Garrison Technology Ltd filed Critical Garrison Technology Ltd
Publication of JP2018536958A publication Critical patent/JP2018536958A/ja
Publication of JP2018536958A5 publication Critical patent/JP2018536958A5/ja
Application granted granted Critical
Publication of JP6968811B2 publication Critical patent/JP6968811B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Description

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

Claims (13)

  1. 論理ブロック(101)及びコントローラ(150)を備えるセキュアブートコンピュータシステム(100)であって、
    前記論理ブロック(101)は、命令を実行する1つ以上の処理装置(101a,101b)を備え、第1の通信プロトコルに準拠して第1のインタフェース(102)を介して前記コントローラ(150)と通信し、前記論理ブロックの電源投入時又はリセット時に前記第1のインタフェース(102)を介して起動命令を要求するように論理的に配線されており、
    前記コントローラ(150)は、インタフェース管理部(151)と記憶部マネージャ(152)とを備え、第2のコンピュータシステム(200)への通信リンク(300)を実装し、また、前記第2のコンピュータシステム(200)から前記起動命令を受信するようにさらに構成されており、
    前記インタフェース管理部(151)は、前記第1の通信プロトコルに準拠して前記第1のインタフェース(102)を介して前記論理ブロック(101)と通信し、前記第1のインタフェース(102)を介して前記論理ブロック(101)から着信したデータ要求を識別し、前記要求を第2のインタフェース(155)を介して前記記憶部マネージャ(152)へと伝達するように構成されており、
    前記第2のインタフェース(155)は、前記インタフェース管理部(151)を介して前記記憶部マネージャ(152)から読み出されるべきデータを指定するという目的を除いて、前記論理ブロック(101)から前記記憶部マネージャ(152)へとデータが流れること可能にしないように構成されており
    前記記憶部マネージャ(152)は、前記第2のインタフェース(155)とは完全に分離された第3のインタフェース(156)を介して、前記第2のコンピュータシステム(200)から受信された前記起動命令を受信するように構成されており、前記起動命令は、前記第3のインタフェース(156)を介して変更可能であるが、前記第2のインタフェース(155)を介して変更可能ではなく、
    前記セキュアブートコンピュータシステム(100)は、前記論理ブロックと前記コントローラとの間に制御接続(140)をさらに備えており、
    前記コントローラは、前記制御接続を用いて、前記論理ブロックの電源投入又はリセットを行って、前記起動命令の実行によって生じる所定のアクティブ状態に前記論理ブロックを遷移させるように構成されており、前記論理ブロックの電源投入又はリセット前に前記論理ブロック上で動作しているソフトウェアが前記所定のアクティブ状態に影響を与えることができないようにされている、システム。
  2. 請求項1に記載のセキュアブートコンピュータシステム(100)において、前記論理ブロック(101)は、1つ以上の特定用途向け集積回路(ASIC)及び/又は1つ以上のプログラム可能論理回路(PLD)を用いて、或いは読み出し専用メモリ(ROM)に格納された命令を用いて論理的に配線されている、システム。
  3. 請求項1又は2に記載のセキュアブートコンピュータシステム(100)において、前記コントローラ(150)は前記起動命令を格納するための記憶領域を含み、前記起動命令は前記第2のコンピュータシステム(200)から受信されて前記セキュアブートコンピュータシステムの電源投入又はリセット前に格納される、システム。
  4. 請求項1から3のいずれか一項に記載のセキュアブートコンピュータシステム(100)において、前記コントローラ(150)は、前記論理ブロック(101)からの前記起動命令についての要求に応答して、前記論理ブロックから前記要求を受信した時において、前記第2のコンピュータシステム(200)からの前記起動命令を要求するように構成されている、システム。
  5. 請求項1から4のいずれか一項に記載のセキュアブートコンピュータシステム(100)において、前記論理ブロック(101)のリセットは、前記論理ブロックの電源遮断、その後の電源投入、及びハードウェアリセットの実行の1つ以上を伴う、システム。
  6. 請求項1から5のいずれか一項に記載のセキュアブートコンピュータシステム(100)において、前記コントローラ(150)は、前記制御接続(140)を用いて、前記論理ブロック(101)に接続されたRAM(115)の電源状態を制御するようにさらに構成されている、システム。
  7. 請求項1から6のいずれか一項に記載のセキュアブートコンピュータシステム(100)において、前記コントローラ(150)は、
    前記論理ブロックがデータ処理を終えたことを示す前記第1のインタフェースを介して前記論理ブロックから着信した通信に応答して、及び/又は、
    前記論理ブロックがマルウェアによって乗っ取られたことを示す前記第1のインタフェースを介して前記論理ブロックから着信した通信に応答して、
    前記制御接続(140)を用いて前記論理ブロック(101)を電源遮断又はリセットするように構成されている、システム。
  8. 請求項1から7のいずれか一項に記載のセキュアブートコンピュータシステム(100)において、前記コントローラ(150)は、前記通信リンク(300)を介しての通信に応答して、前記制御接続(140)を用いて前記論理ブロック(101)の電源投入、電源遮断又はリセットをするように構成されている、システム。
  9. 請求項1から8のいずれか一項に記載のセキュアブートコンピュータシステム(100)において、前記コントローラ(150)は、センサからの入力及び/又はユーザからの入力に応答して、前記論理ブロック(101)の電源投入、電源遮断又はリセットをするように構成されている、システム。
  10. 請求項1から9のいずれか一項に記載のセキュアブートコンピュータシステム(100)において、前記論理ブロック(101)がネットワークインタフェース(105)を介してユーザネットワークと通信することが許されるようにさらに構成されている、システム。
  11. 請求項1から10のいずれか一項に記載のセキュアブートコンピュータシステム(100)において、1つ以上の処理装置を備える1つ以上の追加論理ブロック(101a、101b、101c)をさらに備え、
    前記1つ以上の追加論理ブロックの各々は、前記第1の通信プロトコルに準拠して各々の第1のインタフェース(102a、102b、102c)を介して前記各々の論理ブロックの電源投入時又はリセット時に起動命令を要求するように構成されており、
    前記コントローラ(150)は、1つ以上の追加インタフェース管理部(151a、151b、151c)を備え、
    前記1つ以上の追加インタフェース管理部(151a、151b、151c)の各々は、前記第1の通信プロトコルに準拠して各々の前記第1のインタフェース(102a、102b、102c)を介して前記1つ以上の追加論理ブロック(101a、101b、101c)の各々と通信して、各々の前記第1のインタフェース(102a、102b、102c)を介して前記論理ブロック(101a、101b、101c)の各々から着信したデータ要求を識別し、前記要求を各々の第2のインタフェース(155a、155b、15c)を介して前記記憶部マネージャ(152)へと伝達するようにさらに構成されており、
    前記1つ以上の追加論理ブロックの各々は、前記第1の通信プロトコルに準拠して各々の前記第1のインタフェースを介して前記コントローラと通信するように論理的に配線されており、
    各々の前記第2のインタフェース(155a、155b、155c)は、各々の前記インタフェース管理部(151a、151b、151c)を介して前記記憶部マネージャ(152)から読み出されるべきデータを指定するという目的を除いて、各々の前記論理ブロック(101a、101b、101c)から前記記憶部マネージャ(152)へとデータが流れること可能にしないように構成されており
    前記第3のインタフェース(156)は、各々の前記第2のインタフェース(155a、155b、155c)と完全に分離されており、前記起動命令は、前記第3のインタフェース(156)を介して変更可能であるが、前記第2のインタフェース(155a、155b、155c)のいずれかを介して変更可能ではなく、
    前記セキュアブートコンピュータシステム(100)は、前記コントローラと前記1つ以上の追加論理ブロックの各々との間に各々の制御接続(140a、140b、140c)をさらに備えており、
    前記コントローラは、前記制御接続を用いて、前記論理ブロックの電源投入又はリセットを行って、前記起動命令の実行によって生じる所定のアクティブ状態に前記論理ブロックを遷移させるように構成されており、前記論理ブロックの電源投入又はリセット前に前記論理ブロック上で動作しているソフトウェアが前記所定のアクティブ状態に影響を与えることができないようにされている、システム。
  12. 請求項1から11のいずれか一項に記載のセキュアブートコンピュータシステム(100)において、前記起動命令は完全なオペレーティングシステムを含む、システム。
  13. コンピュータシステムをセキュアに起動する方法であって、該コンピュータシステムは、
    論理ブロック(101)とコントローラ(150)とを備え、前記論理ブロックは、第1の通信プロトコルに準拠して第1のインタフェース(102)を介して前記コントローラと通信するように論理的に配線されており、前記コントローラ(150)は、前記第1の通信プロトコルに準拠して前記第1のインタフェース(102)を介して前記論理ブロック(101)と通信するように構成されたインタフェース管理部(151)と記憶部マネージャ(152)とを備え、前記コンピュータシステムは前記論理ブロックと前記コントローラ(150)との間に制御接続(140)をさらに備えており、前記コントローラ(150)は、前記制御接続(140)を用いて、前記論理ブロック(101)の電源投入又はリセットを行って、起動命令の実行によって生じる所定のアクティブ状態に前記論理ブロック(101)を遷移させるようにさらに構成されており、前記論理ブロック(101)の電源投入又はリセット前に前記論理ブロック(101)上で動作しているソフトウェアが前記所定のアクティブ状態に影響を与えることができないようにされており、
    前記方法は、
    前記コントローラ(150)から前記論理ブロック(101)へと前記制御接続(140)を経て電力コマンドを送信するステップであって、該コマンドは前記論理ブロック(101)の電源投入又はリセットを命ずる、ステップと、
    前記論理ブロック(101)の電源投入又はリセットに際して、前記論理ブロック(101)を介在して、前記第1の通信プロトコルに準拠して前記第1のインタフェース(102)を介して起動命令を要求するステップと、
    前記インタフェース管理部(151)により、前記第1のインタフェース(102)を介して前記論理ブロック(101)から着信したデータ要求を識別するステップと、
    前記インタフェース管理部(151)により、前記要求を第2のインタフェース(155)を介して前記記憶部マネージャ(152)へと伝達するステップであって、前記第2のインタフェース(155)は、前記インタフェース管理部(151)を介して前記記憶部マネージャ(152)から読み出されるべきデータを指定するという目的を除いて、前記論理ブロック(101)から前記記憶部マネージャ(152)へとデータが流れること可能にしないように構成されている、ステップと、
    第2のコンピュータシステム(200)への通信リンク(300)を前記コントローラ(150)にて実装し、また、前記記憶部マネージャ(152)により、第3のインタフェース(156)を介して前記第2のコンピュータシステム(200)から前記起動命令を受信するステップであって、前記第3のインタフェース(156)は前記第2のインタフェース(155)とは完全に分離されており、前記起動命令は、前記第3のインタフェース(156)を介して変更可能であるが、前記第2のインタフェース(155)を介して変更可能ではない、ステップと、
    前記起動命令を前記記憶部マネージャ(152)から前記論理ブロック(101)へと前記インタフェース管理部(151)を介して提供するステップと、を含む、方法。
JP2018548281A 2015-12-03 2016-12-02 ネットワークを通じて更新されることができるセキュアなブートコードキャッシュ Active JP6968811B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1521394.5A GB2545010B (en) 2015-12-03 2015-12-03 Secure boot device
GB1521394.5 2015-12-03
PCT/EP2016/079667 WO2017093533A1 (en) 2015-12-03 2016-12-02 Secure boot code cache which may be updated through the network

Publications (3)

Publication Number Publication Date
JP2018536958A JP2018536958A (ja) 2018-12-13
JP2018536958A5 JP2018536958A5 (ja) 2020-01-16
JP6968811B2 true JP6968811B2 (ja) 2021-11-17

Family

ID=55234390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018548281A Active JP6968811B2 (ja) 2015-12-03 2016-12-02 ネットワークを通じて更新されることができるセキュアなブートコードキャッシュ

Country Status (7)

Country Link
US (1) US10242198B2 (ja)
EP (1) EP3241144B1 (ja)
JP (1) JP6968811B2 (ja)
CN (1) CN108604276B (ja)
BR (1) BR112018011231A2 (ja)
GB (1) GB2545010B (ja)
WO (1) WO2017093533A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831897B2 (en) * 2017-07-14 2020-11-10 Dell Products, L.P. Selective enforcement of secure boot database entries in an information handling system
US10430225B1 (en) * 2017-09-29 2019-10-01 Amazon Technologies, Inc. Traffic management on an interconnect
GB2570143B (en) * 2018-01-12 2020-04-08 Garrison Tech Ltd Secure sharing of storage resources
US10916274B2 (en) 2019-04-19 2021-02-09 Samsung Electronics Co., Ltd. Power management integrated circuits and semiconductor memory modules including power management integrated circuits
US11657156B2 (en) * 2020-02-15 2023-05-23 Lenovo (Singapore) Pte. Ltd. Malware scan in response to power change
GB2592379B (en) 2020-02-25 2022-06-22 Garrison Tech Ltd Connection of computers over networks
CN111858428B (zh) * 2020-06-24 2022-03-22 山东云海国创云计算装备产业创新中心有限公司 一种服务器及其bios的通信管理电路

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539480B1 (en) 1998-12-31 2003-03-25 Intel Corporation Secure transfer of trust in a computing system
US6546489B1 (en) 1999-03-04 2003-04-08 Western Digital Ventures, Inc. Disk drive which provides a secure boot of a host computer system from a protected area of a disk
US7007077B1 (en) * 2000-09-06 2006-02-28 Hitachi, Ltd. Remote maintenance method of an information processing apparatus
US7664984B2 (en) * 2002-10-09 2010-02-16 Xpoint Technologies, Inc. Method and system for updating a software image
US20040076043A1 (en) 2002-10-21 2004-04-22 Phoenix Technologies Ltd. Reliable and secure updating and recovery of firmware from a mass storage device
US7293165B1 (en) 2003-04-03 2007-11-06 Advanced Micro Devices, Inc. BMC-hosted boot ROM interface
US8839417B1 (en) 2003-11-17 2014-09-16 Mcafee, Inc. Device, system and method for defending a computer network
US20050172280A1 (en) 2004-01-29 2005-08-04 Ziegler Jeremy R. System and method for preintegration of updates to an operating system
KR101092684B1 (ko) 2005-06-30 2011-12-09 프랑스 텔레콤 비디오 코딩 방법 및 장치
US7845005B2 (en) * 2006-02-07 2010-11-30 International Business Machines Corporation Method for preventing malicious software installation on an internet-connected computer
US20070226478A1 (en) * 2006-03-23 2007-09-27 John Rudelic Secure boot from secure non-volatile memory
US8024788B2 (en) 2007-05-31 2011-09-20 The Boeing Company Method and apparatus for reliable, high speed data transfers in a high assurance multiple level secure environment
US8265171B2 (en) 2008-02-26 2012-09-11 Richwave Technology Corp. Error resilient video transmission using instantaneous receiver feedback and channel quality adaptive packet retransmission
US8104083B1 (en) 2008-03-31 2012-01-24 Symantec Corporation Virtual machine file system content protection system and method
US8406296B2 (en) 2008-04-07 2013-03-26 Qualcomm Incorporated Video refresh adaptation algorithms responsive to error feedback
US8806607B2 (en) 2008-08-12 2014-08-12 Verizon Patent And Licensing Inc. Unauthorized data transfer detection and prevention
CN101360243A (zh) 2008-09-24 2009-02-04 腾讯科技(深圳)有限公司 基于反馈参考帧的视频通信系统及方法
US20110035808A1 (en) 2009-08-05 2011-02-10 The Penn State Research Foundation Rootkit-resistant storage disks
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US8413253B2 (en) * 2009-12-30 2013-04-02 Intel Corporation Protecting persistent secondary platform storage against attack from malicious or unauthorized programs
GB2477774A (en) * 2010-02-12 2011-08-17 Icera Inc Overriding production processor authentication restrictions through remote security unit for development code testing
US9256745B2 (en) * 2011-03-01 2016-02-09 Microsoft Technology Licensing, Llc Protecting operating system configuration values using a policy identifying operating system configuration settings
US8812830B2 (en) * 2011-08-31 2014-08-19 Microsoft Corporation Attestation protocol for securely booting a guest operating system
GB2495468B (en) 2011-09-02 2017-12-13 Skype Video coding
US20150264359A1 (en) 2012-02-24 2015-09-17 Vid Scale, Inc. Video coding using packet loss detection
US8745713B1 (en) 2012-08-31 2014-06-03 Cloud Cover Safety, Inc. Method and service for securing a system networked to a cloud computing environment from malicious code attacks
US9047471B2 (en) 2012-09-25 2015-06-02 Apple Inc. Security enclave processor boot control
CN103914658B (zh) * 2013-01-05 2017-02-22 展讯通信(上海)有限公司 终端设备的安全启动方法及终端设备
US9189637B2 (en) 2014-03-17 2015-11-17 Saudi Arabian Oil Company Systems, methods, and computer medium to securely transfer business transactional data between physically isolated networks having different levels of network protection utilizing barcode technology
CN103870745B (zh) * 2014-04-01 2017-08-29 联想(北京)有限公司 电子设备和安全启动电子设备的方法
CN103955648B (zh) 2014-05-15 2017-02-01 乐视致新电子科技(天津)有限公司 校验系统镜像合法性的方法及装置
CN104363231B (zh) 2014-11-17 2017-09-19 北京锐驰信安技术有限公司 一种基于单向通道的网络安全隔离与信息交换方法及系统

Also Published As

Publication number Publication date
GB201521394D0 (en) 2016-01-20
WO2017093533A1 (en) 2017-06-08
US10242198B2 (en) 2019-03-26
CN108604276B (zh) 2022-04-29
GB2545010A (en) 2017-06-07
GB2545010B (en) 2018-01-03
EP3241144A1 (en) 2017-11-08
EP3241144B1 (en) 2022-07-06
BR112018011231A2 (pt) 2018-11-21
JP2018536958A (ja) 2018-12-13
CN108604276A (zh) 2018-09-28
US20180314828A1 (en) 2018-11-01

Similar Documents

Publication Publication Date Title
JP6968811B2 (ja) ネットワークを通じて更新されることができるセキュアなブートコードキャッシュ
US10860305B1 (en) Secure firmware deployment
CN109446815B (zh) 基本输入输出系统固件的管理方法、装置和服务器
US10395039B2 (en) Customer-owned trust of device firmware
US10592670B2 (en) Technologies for provisioning and managing secure launch enclave with platform firmware
US20200257521A1 (en) Update of boot code handlers
KR102513435B1 (ko) 펌웨어의 보안 검증
JP4664966B2 (ja) 協調型組込みエージェント
EP3522059A1 (en) Perform security action based on inventory comparison
CN110494855B (zh) 用于恢复可信系统固件状态的系统和方法
CN111008379A (zh) 电子设备的固件安全检测方法及相关设备
US11030347B2 (en) Protect computing device using hash based on power event
Heasman Implementing and detecting a pci rootkit
US11194588B2 (en) Information handling systems and method to provide secure shared memory access at OS runtime
TW201502990A (zh) 唯讀記憶體之修補啓動碼
US10430589B2 (en) Dynamic firmware module loader in a trusted execution environment container
US10564969B2 (en) Enhanced protection of processors from a buffer overflow attack
EP3758326B1 (en) Secure updating of computing system firmware
US10817200B2 (en) Memory interface for a secure NOR flash memory
CN101221509A (zh) 可信嵌入式平台总线仲裁启动方法
WO2024149044A1 (zh) 服务器启动管理系统及方法
US11675587B2 (en) Enhanced protection of processors from a buffer overflow attack
US12067121B2 (en) Trusted boot method and apparatus, electronic device, and readable storage medium
US11615190B2 (en) Secure boot policy for platform security using neutral processors in an information handling system
CN113626792B (zh) PCIe Switch固件安全执行方法、装置、终端及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210615

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211027

R150 Certificate of patent or registration of utility model

Ref document number: 6968811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150