JP2020511727A - 信頼されたシステムファームウェア状態のリストアのためのシステムおよび方法 - Google Patents

信頼されたシステムファームウェア状態のリストアのためのシステムおよび方法 Download PDF

Info

Publication number
JP2020511727A
JP2020511727A JP2019552048A JP2019552048A JP2020511727A JP 2020511727 A JP2020511727 A JP 2020511727A JP 2019552048 A JP2019552048 A JP 2019552048A JP 2019552048 A JP2019552048 A JP 2019552048A JP 2020511727 A JP2020511727 A JP 2020511727A
Authority
JP
Japan
Prior art keywords
secure
code
store
opcode
hardware configuration
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.)
Granted
Application number
JP2019552048A
Other languages
English (en)
Other versions
JP7200122B2 (ja
JP2020511727A5 (ja
Inventor
ヘック,ジェームズ・エイ
バレンティノ,ラルフ・ピィ
ハートウェル,デイビッド・ダブリュ
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2020511727A publication Critical patent/JP2020511727A/ja
Publication of JP2020511727A5 publication Critical patent/JP2020511727A5/ja
Application granted granted Critical
Publication of JP7200122B2 publication Critical patent/JP7200122B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

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

Abstract

動作は、信頼されたシステムファームウェア状態をリストアすることを含む。システムは、セキュアコードストア内に自己完結型のセキュアコードの組を格納する。システムは、オペレーションコードストア内のオペレーションコードの組を格納する。システムがセキュアモードにおいてまたは通常オペレーションモードにおいて構成されるかどうかに応じて、システムは、セキュアコードまたはオペレーションコードをシステム起動時に実行する。システムが、セキュアモードにおいて構成されるときに、システムは、セキュアコードを実行する。セキュアモードでは、システムはまた、オペレーションコードストア内に格納されたオペレーションコードの現在のバージョンをセキュアコードによって参照されたオペレーションコードの置換バージョンで上書きする。システムが、通常オペレーションモードにおいて構成されるときに、システムは、オペレーションコードを実行する。通常オペレーションの間、セキュアコードストアは、電気的に分離される。

Description

技術分野
本発明は、コンピュータセキュリティに関する。特に、本発明は、信頼されたシステムファームウェア状態をリストアすることに関する。
優先権
この出願は、2017年3月22日に出願された米国仮出願第15/466,514号の利益と優先権を主張し、その全体は参照によりここに組み込まれる。
背景
コンピュータシステムは典型的に、多くのコンポーネント、および多くのレイヤのソフトウェアを有する。コンピュータシステムのセキュリティは典型的に、レイヤ化されたアプローチを採用する。ベーシック入出力システム(BIOS)またはブートローダといったソフトウェアまたはファームウェアの第1の部分は、ソフトウェアの次の部分がロード等される前にそれを検証する。信頼のルートは、本質的に信頼され、他のコンポーネント内の信頼が確立されることができる基盤として機能するハードウェアまたはソフトウェアコンポーネントの組である。信頼のルートは、信頼のチェーンを確立するために使用される。一度システムの一部が信頼を失うと、信頼のチェーンは、破壊される。すべてのレベルのソフトウェアは疑わしく、新たな信頼のルートを再確立して構築することを困難にする。そのような信頼のチェーンの基礎にあるのは、典型的にファームウェアである。
ファームウェアは、制御、監視、および/またはデータ操作のために使用されるソフトウェアである。ファームウェアは、コンピューティングデバイスへとプログラムされ得る。ファームウェアは、不揮発性メモリデバイス内に格納され得る。ファームウェアは典型的に、デバイスの基本機能のみを含む。ファームウェアはしばしば、最も低いレベルのコードである。ファームウェアはしばしば、より高いレベルのソフトウェアにサービスを提供する。
従来、サーバは、ローカルのハードウェア上で動作され、信頼のチェーンは、比較的簡単に確立された。近年、サーバはますますクラウドモデルを使用し始めている。クラウドモデルでは、1つの企業は、物理サーバを別の企業からレンタルし得る。このサーバは、異なる顧客によって以前に使用されていた可能性がある。このことは、未知の履歴を有するサーバの状態において信頼を再確立するという新たな問題を生む。
このセクションにおいて記載されたアプローチは、特許請求可能なアプローチであり、既知のまたは特許請求されたアプローチとはかぎらない。したがって、特に明記しない限り、このセクションに記載されたアプローチのいずれかが、単にこのセクションに含まれているという理由だけで、先行技術として認められると想定されるべきではない。
実施形態は、添付の図面の図において限定ではなく例として示される。本開示における「ある」または「1つ」の実施形態への言及は、必ずしも同じ実施形態への言及ではなく、少なくとも一つを意味することに留意されたい。
1つまたは複数の実施形態に従う、通常オペレーションモードにあるシステムを示す。 1つまたは複数の実施形態に従う、セキュアモードにあるシステムを示す。 1つまたは複数の実施形態に従う、信頼されたシステムファームウェア状態のリストアのための例示的動作の組を示す。 1つまたは複数の実施形態に従うシステムのブロック図を示す。
詳細な説明
以下の説明では、説明の目的で、完全な理解を提供するために多くの特定の詳細が述べられる。1つまたは複数の実施形態は、これらの特定の詳細なしで、実施されることができる。1つの実施形態で説明される特徴は、異なる実施形態で説明される特徴と組み合わせることができる。いくつかの例では、本発明を不必要に不明瞭にすることを避けるために、ブロック図形式を参照して既知の構造およびデバイスを説明する。
1. 一般概要
2. 通常オペレーションモードにあるシステム
3. セキュアモードにあるシステム
4. 信頼されたシステムファームウェア状態のリストア
A. セキュアモードにないシステム
B. セキュアモードにあるシステム
5. サーバを信頼されたファームウェア状態にリストア
6. リモート再構成
7. その他、拡張
8. ハードウェア概要
1.一般概要
1つまたは複数の実施形態は、信頼されたシステムファームウェア状態をリストアすることを含む。システムは、2つのコードストア内にコードを格納する。セキュアコードストア内に、システムは、自己完結型のセキュアコードの組を格納する。セキュアコードは、他の変更可能なコードを参照しない。オペレーションコードストア内に、システムは、オペレーションコードの組を格納する。
実施形態では、システムは、コントローラを含む。コントローラは、システムがセキュアモードにあるか通常オペレーションモードにあるかに依存してセキュアコードまたはオペレーションコードをシステム起動時に実行する。システムがセキュアモードにおいて構成されるときに、システムは、セキュアコードを実行する。セキュアモードでは、システムはまた、オペレーションコードストア内に格納されたオペレーションコードの現在のバージョンをセキュアコードによって参照されたオペレーションコードの置換バージョンで上書きする。
システムが通常オペレーションモードにおいて構成されるときに、システムは、オペレーションコードを実行する。通常オペレーションの間、セキュアコードストアは、システムの1つまたは複数の他のコンポーネントから電気的に分離される。セキュアコードは、システムが通常オペレーションモードにあるときにアクセスされることができない。
2.通常オペレーションモードにあるシステム
図1Aは、1つまたは複数の実施形態に従う、通常オペレーションモードにあるシステムを示す。ベースボード管理コントローラ(BMC)110は、システムを制御するためのコードを実行する。ブート選択機構116は、セキュアコードストア120、またはオペレーションコードストア122のいずれかに格納されたコードからBMCをブートするかどうかを選択する。図1Aに示されるように、システムは、不揮発性ストレージ112、フィールドプログラマブルゲートアレイ(FPGA)114、バッファ104、およびCPU並びに周辺電力制御124をさらに含む。1つまたは複数の実施形態では、システムは、図1Aに示されたコンポーネントよりも多いまたは少ないコンポーネントを含み得る。図1Aに示されたコンポーネントは、互いにローカルであり得またはリモートであり得る。図1Aに示されたコンポーネントは、ソフトウェアおよび/またはハードウェアで実装され得る。各コンポーネントは、複数のアプリケーションおよび/またはマシンにわたって分散されることができる。複数のコンポーネントは、1つのアプリケーションおよび/またはマシンへと組み合わされ得る。1つのコンポーネントに関して説明された動作は、代わりに別のコンポーネントによって実行され得る。
1つまたは複数の実施形態では、BMC110は、システムを管理するコントローラである。BMC上で実行するソフトウェアは、とりわけシステムの監視、システムの電源オンまたはオフ、およびオペレーティングシステムのインストールをすることができる。BMCは、システムが通常オペレーションモードにあるかセキュアモードにあるかを決定する能力を有するソフトウェアを含む。BMCは、チップセレクトゼロからのコードをフェッチするように構成され得る。チップセレクトゼロは、特定のコードストアを選択するBMC上の物理ピンである。BMCがこの例示的実施形態において使用されるが、当該分野で既知の任意の種類のコントローラは、同じ機能を行うために使用され得る。さらに、BMC110は、不揮発性ストレージ112、ブート選択機構116、FPGA116、セキュアコードストア120、およびオペレーションコードストア122と同じコンピューティングシステム上に実装され得またはその上で実行し得る。代替的にまたは追加的に、BMC110は、不揮発性ストレージ112、ブート選択機構116、FPGA116、セキュアコードストア120、およびオペレーションコードストア122とは別個のコンピューティングシステム上に実装され得またはその上で実行し得る。BMC110は、不揮発性ストレージまたはブート選択機構に直接接続を介してまたはネットワークを介して通信可能に結合される。
実施形態では、セキュアコードストア120は、セキュアコードが格納されたシステム内の位置である。セキュアコードストアは、たとえば、フラッシュメモリ、ハードドライブ上の物理位置、または仮想メモリアドレスであり得る。セキュアコードストア120は、複数の異なるストレージユニットおよび/またはデバイスを含み得る。複数の異なるストレージユニットおよび/またはデバイスは、同じ種類であってもまたは同じ物理サイトに配置されてもよくまたはそうでなくてもよい。通常オペレーションモードでは、セキュアコードストアは、ブート選択機構およびシステムの残りの部分から電気的に分離される(分離118)。セキュアコードストア内に格納されたセキュアコードは、通常オペレーションの間、変更されることができない。セキュアコードは、他の変更可能なコードを参照しない。セキュアコードストアは、オペレーションコードの置換バージョンをさらに格納する。
実施形態では、オペレーションコードストア122は、オペレーションコードが格納されたシステム内の位置である。オペレーションコードストアは、たとえば、フラッシュメモリ、ハードドライブ上の物理位置、または仮想メモリアドレスであり得る。オペレーションコードストア122は、複数の異なるストレージユニットおよび/またはデバイスを含み得る。複数の異なるストレージユニットおよび/またはデバイスは、同じ種類であってもまたは同じ物理サイトに配置されてもよくまたはそうでなくてもよい。オペレーションコードストアは、ブート選択機構116に結合される。オペレーションコードストアは、ブート選択機構に直接接続を介してまたはネットワークを介して通信可能に結合される。たとえば、オペレーションコードストアは、シリアルペリフェラルインタフェースバス(SPI)によってブート選択機構に結合され得る。オペレーションコードストアは、システムがセキュアモードにあるかまたはオペレーションモードにあるかどうかに関わらずブート選択機構に結合される。オペレーションコードストア内に格納されたオペレーションコードは、通常オペレーションの間、システムを実行するために使用されるコードである。オペレーションコードは、システム上の最も低いレベルのコードであり得る。
実施形態では、ブート選択機構116は、BMCによって使用されるブートデバイスを制御するように構成されるハードウェアおよび/またはソフトウェアを含む。BMCは、上述のようにチップセレクトゼロにマップされたアドレスからコードをフェッチするよう構成され得る。ブート選択機構は、BMCによってチップセレクトゼロにおいて何が見られるかを操作するための機能を含み得る。ブート選択機構は、システムがセキュアモードにあるかまたはオペレーションモードにあるかに依存して、セキュアコードストアまたはオペレーションコードストアのいずれかに対しチップセレクトゼロを指し示す。オペレーションモードでは、セキュアコードストアは、アクセス不可であり、そのためBMCは、セキュアコードストアからブートすることもそこにアクセスすることもできない。オペレーションモードでは、BMCは、オペレーションコードストアまたはセキュアコードストアとは異なる別のストア(図示しない)からブートし得る。
実施形態では、バッファ104は、セキュアジャンパとBMCとの間に結合された1方向バッファである。バッファは、逆駆動を阻止するための機能を含む。バッファが1方向であるという理由で、信号は、そのインタフェースに沿ってBMCへとのみ伝送されることができ、そこから伝送されることはできない。バッファ104は、データがBMCに伝送されるときに一時的にデータを格納するための機能をさらに含み得る。
実施形態では、不揮発性ストレージ112は、システムによって使用されるデータを格納する機能を含む。不揮発性ストレージは、不揮発性メモリであり、システムが電源オフのときにそこに内容が保存される。不揮発性ストレージは、たとえばリードオンリーメモリ(ROM)、プログラマブルリードオンリーメモリ(PROM)、フラッシュメモリ、ハードディスクドライブ、または磁気テープであり得る。不揮発性ストレージ112は、複数の異なるストレージユニットおよび/またはデバイスを含み得る。複数の異なるストレージユニットおよび/またはデバイスは、同じ種類であってもまたは同じ物理サイトに配置されてもよくまたはそうでなくてもよい。不揮発性ストレージは、BMCに直接接続またはネットワークを介して通信可能に結合される。
実施形態では、FPGA114は、プログラマブルロジックブロックのアレイを備える集積回路である。FPGAは、CPU、周辺電力、アドインカード、およびネットワークといったコンポーネントの状態を制御するための機能を含む。たとえば、FPGAは、デバイスへの電力を制御し得る。FPGAは、CPUおよび周辺電力制御に直接接続を介してまたはネットワークを介して通信可能に結合される。
実施形態では、CPUおよび周辺電力制御124は、FPGAに通信可能に結合される。CPUは、ソフトウェアを実行するためにシステムによって使用されるプロセッシングユニットである。CPUは、ソフトウェアに基づき命令を実行し得る。周辺電力制御は、CPUおよび/またはシステム全体への電力を制御し得る。
通常オペレーションモードでは、セキュアジャンパは、マザーボード上に設置されない。結果として、システム内に備えられるマザーボード上の2つのピンは、電気的に分離される。通常オペレーションでは、信号は、FPGA、BMC(バッファ104を介して)、およびブート選択機構に送信される。
セキュアジャンパの無い通常オペレーションでは、システムは、FPGA有効信号106を生成する。FPGA有効信号は、FPGAを有効にする。FPGA有効信号がアクティブであるとき、FPGAは、動作可能である。FPGAは、それ自体に内部変更を加え得る。FPGAは、命令をCPUおよび周辺電力制御に伝送し得る。通常オペレーションモードでは、FPGAは、たとえば、CPUへの電力を制御し得る。
セキュアジャンパ無しに、システムはまた、通常オペレーションモードがアクティブであるとBMCが決定し得るようにBMCへの信号を生成する。さらに、セキュア信号は、ブート選択機構116に伝送される。セキュア信号は、オペレーションコードストア122がBMCのためのブートデバイスであるように、ブート選択機構のブート選択ロジックに影響を及ぼす。
通常オペレーションモードでは、セキュアコードストア120は、ブート選択機構、およびシステムの残りの部分から分離される(分離118)。セキュアコードストアは、ブート選択機構への接続を絶つことにより、またはセキュアコードストアへの電力を切断することにより、物理的に分離され得る。セキュアコードストアが分離されるときに、それは、システムの残りの部分によってアクセスされることができない。通常オペレーションモードでは、セキュアコードストアは、変更されることができない。
システムは、1つまたは複数のオペレーティングシステム、BIOSコードセット、およびアプリケーション(図示されない)をさらに備え得る。
3.セキュアモードにあるシステム
図1Bは、1つまたは複数の実施形態に従う、セキュアモードにあるシステムを示す。BMC110、バッファ104、不揮発性ストレージ112、ブート選択機構116、セキュアコードストア120、オペレーションコードストア122、FPGA114、およびCPUおよび周辺電力制御124は、上述のセクション2において図1Aを参照して説明されたが、以下に記すように異なって実装されまたは異なって動作し得る。図1Bでは、システムは、セキュアジャンパ102が挿入された結果、セキュアな状態にある。1つまたは複数の実施形態では、システムは、図1Bにおいて示されたコンポーネントよりも多いまたは少ないコンポーネントを含み得る。図1Bに示されたコンポーネントは、互いにローカルであり得またはリモートであり得る。図1Bに示されたコンポーネントは、ソフトウェアおよび/またはハードウェアで実装され得る。各コンポーネントは、複数のアプリケーションおよび/またはマシンにわたって分散されることができる。複数のコンポーネントは、1つのアプリケーションおよび/またはマシンへと組み合わされ得る。1つのコンポーネントに関して説明された動作は、代わりに別のコンポーネントによって実行され得る。
実施形態では、セキュアジャンパ102は、システムのマザーボード上の2つのピン間に配置されることができる物理的短絡デバイスである。セキュアジャンパは、1つの側で接地される。他の側で、セキュアジャンパは、BMC110にバッファ104を介して結合される。セキュアジャンパが挿入されるとき、セキュアジャンパは、2つのピンを電気的に接続し、システムマザーボードの構成を変更させる。セキュアジャンパが配置されるとき、BMCに接続された回路は、セキュア信号を伝送するように構成される。
セキュアジャンパの配置は、ボード上のチップ選択ハードウェアロジックを変更させ、BMCのブートデバイスを、ブート選択機構116を介して変更する。セキュアジャンパは、マザーボード上のハードウェアをトリガして、サービスプロセッサに取り付けられたコードストアを再構成し、ブートデバイスを実質的に変更する。追加的に、セキュアジャンパ102が挿入されたとき、セキュア信号は、アサートされる。セキュア信号は、FPGA、BMC(バッファ104を介して)、およびブート選択機構に送信される。セキュアジャンパが設置され、システムは、セキュアモードにある。
FPGAに送信されたセキュア信号は、FPGA無効信号(126)をトリガする。FPGA無効信号は、命令をFPGAに伝送し、FPGA全体を無効にする。FPGA無効信号は、FPGAが任意の他のデバイスを実行することまたはそれと通信することを阻止する。FPGA無効化信号は、システムがセキュアモードにある間、FPGA内部の信頼できないエンティティによる干渉からシステムをセキュアにする。FPGAは、信頼されたファームウェア状態をリストアする処理に対する干渉を一切引き起こし得ない。
実施形態では、FPGAは、CPUおよび周辺電力制御124に接続される。FPGAが無効にされるとき、CPUおよび周辺電力制御は、それらがFPGAとの通信を通してのみ機能することができるので、次いで無効にされる。セキュアモードでは、CPUおよび周辺電力制御は、無効にされ、システムの残りの部分から論理的に分離される。
セキュア信号は、分離を無効にすることによってセキュアコードストアがBMCに接続されることをさらに引き起こす。BMC110は、不揮発性ストレージまたはブート選択機構に直接接続を介してまたはネットワークを介して通信可能に結合される。たとえば、セキュアコードストアは、ブート選択機構にシリアルペリフェラルインタフェースバス(SPI)によって結合され得る。セキュア信号は、セキュアコードストアがBMCのためのブートデバイスとなるようにブート選択ロジックに影響を及ぼす。オペレーションコードストアは、実質的に、補助ストレージデバイスとなる。システムは、物理的にシステムを操作すること、セキュアジャンパを挿入または除去することのみによって、セキュアモードへとまたはそれから再構成されることができる。システムは、任意のコードの実行によってセキュアモードへとまたはそれから再構成されることができない。
上述のように、ブート選択機構は、システムがセキュアモードにあるかまたはオペレーションモードにあるかに依存して、セキュアコードストアまたはオペレーションコードストアのいずれかに対してチップセレクトゼロを指し示す。セキュアモードでは、セキュアコードストアおよびオペレーションコードストアの両方がブート選択機構に接続されるとき、ブート選択機構は、セキュアコードからブートするように構成される。
4.信頼されたシステムファームウェア状態のリストア
図2は、1つまたは複数の実施形態に従い、信頼されたファームウェア状態をリストアするための例示的動作の組を示す。図2に示される1つまたは複数の動作は、変更、再配置、または完全に省略され得る。したがって、図2に示される特定の一連の動作は、1つまたは複数の実施形態の範囲を限定するものとして解釈されるべきではない。
まず、システムは、起動する(動作202)。システム起動は、システムの1つまたは複数のデバイスに電力を供給することを含み得る。システム起動は、ソフトウェアに基づき、1つまたは複数のデバイスをブートすることを含み得る。コントローラ(たとえば、BMC)は、選択されたコードストア内に格納されたコードに基づきブートする。
選択されたコードストアは、システムのハードウェア構成に基づく。システムは、セキュアモードにあるか、セキュアモードにはないかのいずれかである(動作204)。システムがセキュアモードにあるかどうかは、セキュアジャンパが挿入され、マザーボード上の2つのピンを接続するかどうかによって決定されるので、ハードウェアロジックの問題である。代替的にまたは追加的に、システムは、セクション6において以下に説明するように、セキュアモードへとまたはそれからリモートに構成され得る。ハードウェアロジックの結果、システムは、1つまたは複数の信号を伝送する。信号に基づき、システムコンポーネントは、実質的なモードを決定することができる。
A.セキュアモードにないシステム
システムがセキュアモードにない場合、コントローラは、電気的に分離されたセキュアコードへのアクセス無しにオペレーションコードを実行する(動作220)。オペレーションコードを実行することは、オペレーションコードをオペレーションコードストアから取得することを含み得る。コントローラは、オペレーションコードをオペレーションコードストアから、たとえば、バスを介して、またはセキュアなネットワーク上で物理的に取得し得る。オペレーションコードを実行することは、オペレーションコードを解釈することをさらに含み得る。オペレーションコード内の命令に基づき、コントローラは、一連の動作を実行し得る。たとえば、コントローラは、オペレーションコードストアから取得された命令に基づき、システムのプロセッシングユニットの温度を監視し得る。
コントローラは、通常オペレーションモードではオペレーションコードストアからブートする。セキュアジャンパが無く、セキュアコードは、電気的に分離される。セキュアコードの電気的分離は、セキュアコードストアとブート選択機構との間の接続を物理的に絶つことによって達成され得る。たとえば、セキュアジャンパの不存在は、セキュアコードストアとブート選択機構とを接続する配線を切断する。
セキュアジャンパが無く、ブート選択機構のハードウェアロジックは、オペレーションコードストアをコントローラのためのブートデバイスとして選択するように構成される。ブート選択機構は、オペレーションコードストアがチップセレクトゼロにあるという命令を送信することによってブートデバイス情報をコントローラに伝送し得る。コントローラは、チップセレクトゼロからブートするように構成される。コントローラはしたがって、セキュアモードではないときにオペレーションコードストアからブートする。
追加的に、セキュアジャンパ無しに、コントローラにマザーボードから送信された信号は、コントローラによって入力信号として受信される。この入力信号は、コントローラロジックが、それがセキュアモードで動作していないという決定をすることを可能とする。
B.セキュアモードにあるシステム
システムがセキュアモードにある場合、コントローラは、セキュアコードを実行する(動作210)。セキュアコードを実行することは、セキュアコードをセキュアコードストアから取得することを含み得る。コントローラは、セキュアコードをセキュアコードストアから、たとえば、バスを介して、またはセキュアなネットワーク上で物理的に取得し得る。セキュアコードを実行することは、セキュアコードを解釈することをさらに含み得る。セキュアコード内の命令に基づき、コントローラは、一連の動作を実行し得る。たとえば、コントローラは、セキュアコードストアの命令に基づき、特定のデバイス上へ格納されたソフトウェアおよび/またはメモリを削除し得る。
セキュアジャンパがマザーボードへと挿入された状態で、マザーボードは、セキュア信号を伝送するように構成される。セキュア信号は、ブート選択機構、コントローラ、およびFPGAに送信される。
ブート選択機構に送信されたセキュア信号は、ブート選択ロジックに影響を及ぼす。セキュア信号は、セキュアコードストアがブート選択機構に結合され、もはや無効とされないようにすることを引き起こす。セキュアコードは、コントローラからもはや分離されない。
さらに、セキュアジャンパが挿入されるとき、ブート選択機構のハードウェアロジックは、セキュアコードストアをコントローラのためのブートデバイスとして選択するように構成される。ブート選択機構は、セキュアコードストアからブートするようにシステムを構成する。セキュアコードストアおよびオペレーションコードストアの両方がセキュアモードではブート選択機構に接続されるが、ブート選択機構は、コントローラにセキュアコードストアからブートするように命令する。ブート選択機構は、ブートデバイス情報をコントローラに伝送し得る。ブート選択機構は、セキュアコードストアがチップセレクトゼロにあるという通知をコントローラに伝送し得る。コントローラは、常時チップセレクトゼロからブートするように構成される。コントローラはしたがって、セキュアモードにあるときにセキュアコードストアからブートする。
システムまた、セキュア信号をコントローラに伝送する。コントローラは、セキュア信号を、逆駆動できない入力信号として受信する。セキュアジャンパとコントローラとの間のインタフェースに沿うバッファの配置は、コントローラが信号をセキュアジャンパに向かって戻すように送信することを阻止する。コントローラは、セキュア信号を変更することができない。セキュア信号を受信したために、コントローラロジックは、それがセキュアモードにおいて動作していると分かる。
追加的に、システムは、FPGA無効信号をFPGAに伝送する。FPGA無効信号は、FPGAの動作を阻止する。FPGA無効信号は、FPGAへの電力またはクロックを切断することによってFPGAが無効にされることを引き起こし得る。FPGA無効信号は、他のデバイスからFPGAを分離することによってFPGAが無効にされることを引き起こし得る。無効にされたとき、FPGAは、システムの任意のデバイスの状態に影響を及ぼすことができない。FPGAは、信頼されたファームウェア状態をリストアする処理に対する干渉を一切引き起こし得ない。
セキュアモードでは、コントローラは、1つまたは複数のコードセットを削除する(動作212)。コントローラは、命令を信頼されないすべてのデバイスに伝送し、その内部に格納されたコードおよび/またはメモリを削除する。コントローラは、周辺サービスプロセッサ、NANDフラッシュ、不揮発性ストレージ、またはFPGAに格納されたコードセットを含み得る、すべてのプログラム可能なメモリが削除されることを引き起こす。コントローラは、オペレーティングシステムおよび/またはBIOSコードセットといったコードセットを削除し得る。
次に、コントローラは、オペレーションコードの現在のバージョンをセキュアコードによって参照されたオペレーションコードの置換バージョンで上書きする(動作214)。セキュアコードは、オペレーションコードセットを、セキュアコードストア内に隔離されて維持されていた元のオペレーションコードセットのバージョンで置換する命令を含み得る。代替的に、オペレーションコードセットは、元のオペレーションコードセットの一部で置換され得る。オペレーションコードセットは、ブートローダで置換され得る。上述のステップは、任意の他のファームウェアを要さずに実行されることができる。一度動作が完了すると、システム全体は、真新しく(クリーンに)され、信頼されたファームウェア状態へとリストアされる。
たとえば、ユーザは、セキュアジャンパが配置された状態でシステムを電源オンにする。システムは、セキュアモードにある。セキュアモードでは、FPGA無効信号は、FPGAに送信され、FPGA、CPU、および周辺電力制御を無効にする。
システムはまた、セキュア信号をブート選択機構に伝送し、それがセキュアコードストアの分離を無効にすることをもたらす。セキュア信号は、ブート選択機構内のブート選択ロジックに影響を及ぼす。セキュアモードでは、セキュアコードストアは、コントローラのためのブートデバイスになる。
システムはまた、セキュア信号をコントローラに伝送する。コントローラは、セキュア信号を、逆駆動されることができない入力信号として受信する。セキュア信号を受信したため、コントローラロジックは、それがセキュアモードにおいて動作していると分かる。
セキュアコードストアは、コントローラに不揮発性ストレージ、FPGA、およびオペレーションコードストア上のコードセットを削除するよう命令するコードを含む。セキュアコードストアは、システムにオペレーションコードストア内のコードをオペレーションコードの真新しいバージョンで置換するよう命令するコードをさらに含む。一定期間の動作後に、オペレーションコードストア内のオペレーションコードは、変えられ得、信頼されない可能性がある。コントローラは、セキュアコードからの命令に応じて、コードを削除し置換する。
この時点で、オペレーションコードストアは、真新しいコードを含むが、不揮発性ストレージおよびFPGA上のコードは、置換されていない。これらのデバイス上のコードを置換するために、ユーザは、システムを通常オペレーションモードに再構成する。オペレータは、セキュアジャンパを物理的に除去する。セキュアジャンパの除去は、マザーボード上の接続を再構成する。
ブート選択ハードウェアロジックは、セキュアコードストアを分離するように再構成される。システムは、信号をコントローラおよびブート選択機構に伝送し、これによりコントローラは、オペレーションコードストア内のオペレーションコードからブートする。システムは、FPGA有効信号をFPGAに伝送する。FPGAは、FPGA有効信号の受信に応答して有効にされる。
今、オペレーションコードストアは、コントローラに接続され、セキュアコードストアは、コントローラに接続されない。コントローラは、オペレーションコードストア内のオペレーションコードからブートする。セキュアコードストアは、システムから分離され、信頼を失われ得ない。
5.サーバを信頼されたファームウェア状態にリストア
例として、システムは、サーバを信頼されたファームウェア状態にリストアするための動作を実行する。まず、オペレータは、システムを電源オフにし、セキュアジャンパを挿入する。オペレータは、電源をオンにし、BMCをブートさせる。
BMCは、BMCがセキュアモードにあり、セキュアコードストアからブートすると認識する。BMCは、すべての外部インタフェースからの入力を無効にし、システムの1つまたは複数のデバイスを無効にする。BMCは、すべての信頼されないデバイスおよび/またはセキュアコードの実行のために必要ではないすべてのデバイスを無効にし得る。BMCは、オペレーションコードストアを、マザーボードFPGA、不揮発性メモリ(たとえば、NAND)、および任意の他の書き込み可能なストア等、アクセスを有するすべての不揮発性ストレージを削除し得る。BMCは、セキュアコードストアの内容を使用してオペレーションコードストアを再構築する。
このプロセスの間に、BMCは、その状況を表示する。セキュアモードでは、システムは、オペレーティングシステムまでブートしない。BMCは、セキュアモードのすべてのステップが完了するまでLEDを点滅させることでこれを通知する。一度セキュアモードにおけるステップが完了されると、BMCは、サーバが信頼された状態にリストアされたことを、LEDを変化させシリアルコンソールにメッセージを表示することによって通知する。
オペレータは、電源をオフにし、ジャンパを除去する。ジャンパが配置されることなくシステムが電源オンされたときに、システムは、有効信号を無効信号の代わりに送信する。有効信号の伝送は、ブート選択機構がセキュアコードストアを分離および保護し、オペレーションコードストアをブートデバイスとして構成することを引き起こす。
BMCは、オペレーションコードストア内の新たな信頼されたコードからブートする。BMCは、まだ使用されていないファームウェアイメージをロードする。まだ使用されていないファームウェアイメージは、ネットワーク接続を介してウェブサーバから、またはDVDを通して等、任意の信頼されたソースからロードされることができる。BMCは、BIOS、FPGA、および不揮発性メモリといったすべての残りファームウェアの既知の良好なコピーを再インストールする。これは、通常のファームウェア更新手順を通して行われることができる。システムはオペレーション状態に戻り、新たにリストアされた信頼のルートから動作することができる。
6.リモート再構成
実施形態では、システムは、セキュアモードへとまたはそれからリモートに構成されることができる。セキュア信号は、ジャンパを用いてアサートされる必要はない。この場合、セキュア信号は、システム内の信頼されたエンティティを使用してアサートされ、これは、システムのリモート管理を可能とする。
無許可のリモート再構成を阻止するために、システムは、信頼されたエンティティを含む。信頼されたエンティティは、たとえば、独自のプライベートインタフェースを有するアドインカードであり得る。信頼されたカードは、システムの残りの部分から分離され、信頼されたユーザまたはデバイスによってのみ制御下に維持される。信頼されたカードは、簡易なマイクロコントローラ上で動作し得、それが信頼された状態にあることを検証するのを容易にする。信頼されたエンティティは、システム内の信号をシステムのセキュリティモデルとは独立に操作する。たとえば、信頼されたエンティティは、セキュア信号を操作することができ、または信頼されたエンティティは、システムへの電力を操作することができる。
信頼されたエンティティは、セキュアなジャンパの代わりにシステムロジックに接続される。信頼されたエンティティは、外部ソースからの命令を受信することができる。信頼されたエンティティはそして、セキュア信号の伝送を上述のように制御し得る。
実施形態では、信頼されたエンティティは、リモートインタフェースに信頼されたリモート接続を介して通信可能に結合される。信頼されたリモート接続は、システムに接続された任意の他のインターフェースに対してプライベートである。信頼されたリモート接続は、シリアルインタフェース、および/またはプライベートネットワークのみに接続するネットワーク接続であり得る。リモートインタフェースを使用することによって、認可されたユーザは、ハードウェア構成をセキュアモードへとまたはそれから変え得る。
7.その他、拡張
実施形態は、ハードウェアプロセッサを含み、本明細書に記載および/または添付の特許請求の範囲のいずれかに列挙される動作のいずれかを実行するように構成される1つまたは複数のデバイスを有するシステムに向けられる。
実施形態では、非一時的なコンピュータ可読記憶媒体は、1つまたは複数のハードウェアプロセッサによって実行されると、本明細書に記載されたおよび/または請求項のいずれかに記載された動作を実行させる命令を含む。
本明細書で説明される特徴および機能の任意の組み合わせは、1つまたは複数の実施形態に従って使用され得る。上述の明細書において、実施形態は、実装ごとに異なり得る多数の特定の詳細を参照して説明されてきた。したがって、明細書および図面は、限定的な意味ではなく、例示的な意味で考えられるべきである。本発明の範囲の唯一かつ排他的な指標および本出願人が本発明の範囲とすることを意図するものは、本出願から発行される特許請求の範囲の文言通りおよび均等の範囲であり、そのような特許請求の範囲は、特定の形式において後の訂正を含む。
8.ハードウェア概要
1つの実施形態に従って、ここで説明される技法は、1つまたは複数の特定用途のコンピューティングデバイスによって実装される。特定用途コンピューティングデバイスは、技法を実行するために有線であり得、または技法を実行するために永続的にプログラムされた1つまたは複数の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはネットワーク処理ユニット(NPU)といったデジタル電子デバイスを含み得、またはファームウェア、メモリ、他のストレージ、または組み合わせにおけるプログラム命令に従って技法を実行するようにプログラムされた1つまたは複数の汎用ハードウェアプロセッサを含み得る。そのような特定用途コンピューティングデバイスは、カスタム有線ロジック、ASIC、FPGA、またはNPUをカスタムプログラミングと組み合わせて、技法を実現し得る。特定用途コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピューターシステム、ハンドヘルドデバイス、ネットワークデバイス、または技法を実装するための有線および/またはプログラムロジックを組み込んだ任意の他のデバイスであり得る。
たとえば、図3は、本発明の実施形態がその上に実装され得るコンピュータシステム300を示すブロックダイアグラムである。コンピュータシステム300は、情報を通信するためのバス302または他の通信機構、および情報を処理するためにバス302と結合されたハードウェアプロセッサ304を含む。ハードウェアプロセッサ304は、たとえば、汎用マイクロプロセッサであり得る。コンピュータシステム300はまた、プロセッサ304によって実行される情報および命令を格納するためにバス302に結合されたランダムアクセスメモリ(RAM)または他の動的ストレージデバイスなどのメインメモリ306を含む。メインメモリ306はまた、プロセッサ304によって実行される命令の実行中に一時変数または他の中間情報を格納するために使用され得る。そのような命令は、プロセッサ304がアクセス可能な非一時的記憶媒体に格納されると、コンピュータシステム300を、命令において特定された動作を実行するようにカスタマイズされた特定用途マシンにする。
コンピュータシステム300は、プロセッサ304に対する静的情報および命令を格納するためにバス302に結合された読み出し専用メモリ(ROM)308または他の静的ストレージデバイスをさらに含む。磁気ディスクまたは光ディスクなどの記憶装置310が提供され、情報および命令を格納するためにバス302に結合される。
コンピュータシステム300は、情報をコンピュータユーザに表示するために、バス302を介して陰極線管(CRT)などのディスプレイ312に結合され得る。英数字および他のキーを含む入力デバイス314は、情報およびコマンド選択をプロセッサ304に伝達するためにバス302に結合される。別の種類のユーザ入力デバイスは、方向情報およびコマンド選択をプロセッサ304に伝達し、ディスプレイ312上のカーソル移動を制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソル制御316である。この入力デバイスは典型的に、第1軸(xなど)および第2軸(yなど)の2つの軸において2つの自由度があり、デバイスが平面内の位置を特定可能にする。
コンピュータシステム300は、カスタマイズされた有線ロジック、1つまたは複数のASICまたはFPGA、ファームウェアおよび/またはプログラムロジックを使用して本明細書に記載の技法を実装し、これらはコンピュータシステムと組み合わせてコンピュータシステム300を特定用途マシンにするまたはプログラムする。一実施形態によれば、本明細書の技法は、プロセッサ304がメインメモリ306に含まれる1つまたは複数の命令の1つまたは複数のシーケンスを実行したことに応答して、コンピュータシステム300によって実行される。そのような命令は、ストレージデバイス310などの別の記憶媒体からメインメモリ306に読み込まれ得る。メインメモリ306に含まれる命令のシーケンスの実行により、プロセッサ304は本明細書に記載の処理ステップを実行する。代替実施形態では、ソフトウェア命令の代わりに、またはそれと組み合わせて、有線回路を使用することができる。
本明細書で使用される「記憶媒体」という用語は、マシンを特定の方法で動作させるデータおよび/または命令を記憶する任意の非一時的媒体を指す。そのような記憶媒体は、不揮発性媒体および/または揮発性媒体を含み得る。不揮発性媒体は、たとえば、ストレージデバイス310などの光ディスクまたは磁気ディスクが含まれる。揮発性媒体は、メインメモリ306などの動的メモリを含む。記憶媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または他の磁気データ記憶媒体、CD−ROM、その他の光学データ記憶媒体、穴のパターンを備えた物理媒体、RAM、PROM、およびEPROM、フラッシュEPROM、NVRAM、その他のメモリチップまたはカートリッジ、連想メモリ(CAM)、およびTernary Content−Addressable Memory(TCAM)を含む。
記憶媒体は、伝送媒体と別のものであるが、これと組み合わせて使用されることができる。伝送メディアは、記憶媒体間の情報の送信に関与する。たとえば、伝送媒体は、バス302を構成するワイヤを含む同軸ケーブル、銅線、光ファイバーを含む。伝送媒体は、電波および赤外線データ通信中に生成される音波などの音響波または光波の形態を取ることができる。
さまざまな形態の媒体が、実行のためにプロセッサ304に1つまたは複数の命令の1つまたは複数のシーケンスを運ぶことに関与し得る。たとえば、命令は、初期的にリモートディスクの磁気ディスクまたはソリッドステートドライブで実行されることができる。リモートコンピュータは、命令を動的メモリにロードし、モデムを使用して電話回線で命令を送信することができる。コンピュータシステム300に対してローカルなモデムは、電話線でデータを受信し、赤外線送信機を使用してデータを赤外線信号に変換することができる。赤外線検出器は、赤外線信号で運ばれるデータを受信でき、適切な回路は、データをバス302に配置することができる。バス302は、データをメインメモリ306に運び、プロセッサ304は、そこから命令を取り出して実行する。メインメモリ306によって受信された命令は、プロセッサ304による実行の前または後のいずれかに、ストレージデバイス310に任意に格納され得る。
コンピュータシステム300はまた、バス302に結合された通信インターフェース318を含む。通信インターフェース318は、ローカルネットワーク322に接続されたネットワークリンク320に結合する双方向データ通信を提供する。例えば、通信インターフェース318は、統合サービスデジタルネットワーク(ISDN)カード、ケーブルモデム、衛星モデム、または対応する種類の電話回線へのデータ通信接続を提供するモデムであり得る。別の例として、通信インターフェース318は、互換性のあるLANへのデータ通信接続を提供するローカルエリアネットワーク(LAN)カードであり得る。無線はまた、実装され得る。そのような実装では、通信インターフェース318は、さまざまな種類の情報を表すデジタルデータストリームを運ぶ電気信号、電磁信号、または光信号を送受信する。
ネットワークリンク320は、典型的に、1つまたは複数のネットワークを介して他のデータデバイスへのデータ通信を提供する。たとえば、ネットワークリンク320は、ローカルネットワーク322を介してホストコンピューター324またはインターネットサービスプロバイダー(ISP)326によって運営されるデータ機器への接続を提供することができる。ISP326は、今日一般に「インターネット」328と呼ばれる世界規模のパケットデータ通信ネットワークを通じてデータ通信サービスを次いで提供する。ローカルネットワーク322およびインターネット328は両方とも、デジタルデータストリームを運ぶ電気信号、電磁信号または光信号を使用する。コンピュータシステム300へとまたはそこへとデジタルデータを搬送する、さまざまなネットワークを介した信号、およびネットワークリンク320および通信インターフェース318を介した信号は、伝送媒体の例示的な形態である。
コンピュータシステム300は、ネットワーク(複数可)、ネットワークリンク320、および通信インターフェース318を通じて、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ330は、インターネット328、ISP326、ローカルネットワーク322、および通信インターフェース318を介して、アプリケーションプログラムに要求されたコードを送信する。
受信されたコードは、プロセッサ304が受信されたときにそれによって実行され、および/または後で実行するためにストレージデバイス310または他の不揮発性ストレージに格納され得る。
上述の明細書では、本発明の実施形態は、実装ごとに異なり得る多数の特定の詳細を参照して説明されてきた。したがって、明細書と図面は、限定的な意味ではなく、例示的な意味で考えられるべきである。本発明の範囲の唯一かつ排他的な指標および本出願人が本発明の範囲とすることを意図するものは、本出願から発行される特許請求の範囲の文言通りおよび均等の範囲であり、そのような特許請求の範囲は、特定の形式において後の訂正を含む。

Claims (12)

  1. システムであって、
    他の変更可能なコードを参照しない自己完結型のセキュアコードの組を備えるセキュアコードストアと、
    オペレーションコードの組を備えるオペレーションコードストアと、
    コントローラとを備え、前記コントローラは、
    (a)前記システムが第1のハードウェア構成を有して構成されるときの前記セキュアコードの組の実行であって、前記セキュアコードの組の実行は、前記オペレーションコードストア内に格納された前記オペレーションコードの現在のバージョンを前記セキュアコードによって参照された前記オペレーションコードの置換バージョンで上書きすることを備える、実行と、
    (b)前記システムが第2のハードウェア構成を有して構成されるときの前記オペレーションコードの組の実行であって、前記セキュアコードストアは、前記システムが前記第2のハードウェア構成を有して構成されるときに前記システムの1つまたは複数の他のコンポーネントから電気的に分離され、前記セキュアコードの組は、前記システムが前記第2のハードウェア構成を有して構成されるときにアクセスされることができない、実行とのうちの1つを、システム起動時に最初に実行するための機能を含む、システム。
  2. 前記セキュアコードの組の前記実行は、
    オペレーティングシステム、
    BIOSコードセット、
    アプリケーション、
    NANDフラッシュ、
    不揮発性ストレージ、および、
    プログラマブルロジックデバイス、のうちの1つまたは複数に対応するコードセットを削除することをさらに備える請求項1に記載のシステム。
  3. 前記セキュアコードの組によって参照された前記オペレーションコードの前記置換バージョンは、前記セキュアコードストアの内部に格納される、請求項1に記載のシステム。
  4. 前記セキュアコードの組によって参照された前記オペレーションコードの前記置換バージョンは、前記セキュアコードストアの外部に格納される、請求項1に記載のシステム。
  5. 前記第1のハードウェア構成と前記第2のハードウェア構成との間の変更は、前記システムの物理的操作なしに引き起こされることができない、請求項1に記載のシステム。
  6. 前記システムの前記物理的操作は、(a)前記システム内に備えられたマザーボード上の2つのピンを接続するためのジャンパを追加すること、または(b)前記ジャンパを除去して、前記システム内に備えられたマザーボード上の2つのピンを切断することを備える、請求項5に記載のシステム。
  7. 前記第1のハードウェア構成と前記第2のハードウェア構成との間の変更は、前記システム内に備えられた信頼されたエンティティを介する前記システムの遠隔操作を用いて引き起こされることができる、請求項1に記載のシステム。
  8. 前記第2のハードウェア構成から前記第1のハードウェア構成への変更は、いずれのコードの実行によっても引き起こされることができない、請求項1に記載のシステム。
  9. 前記第1のハードウェア構成は、前記セキュアコードの前記実行のために必要ではない1つまたは複数のデバイスを無効にする、請求項1に記載のシステム。
  10. 前記第1のハードウェア構成は、前記セキュアコードによって有効にされた前記システムの安全な回復に干渉する機能を含む1つまたは複数のデバイスを無効にする、請求項1に記載のシステム。
  11. 方法であって、
    請求項1から請求項10のいずれか1項に記載された動作を備え、前記方法は、ハードウェアプロセッサを含む少なくとも1つのデバイスにおいて実行される、方法。
  12. 1つまたは複数のハードウェアプロセッサが実行すると請求項1から請求項10のいずれか1項に記載された動作を実行させる命令を含む、非一時的なコンピュータ可読媒体。
JP2019552048A 2017-03-22 2017-11-30 信頼されたシステムファームウェア状態のリストアのためのシステムおよび方法 Active JP7200122B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/466,514 US10997296B2 (en) 2017-03-22 2017-03-22 System and method for restoration of a trusted system firmware state
US15/466,514 2017-03-22
PCT/US2017/063915 WO2018174969A1 (en) 2017-03-22 2017-11-30 System and method for restoration of a trusted system firmware state

Publications (3)

Publication Number Publication Date
JP2020511727A true JP2020511727A (ja) 2020-04-16
JP2020511727A5 JP2020511727A5 (ja) 2020-08-27
JP7200122B2 JP7200122B2 (ja) 2023-01-06

Family

ID=60766163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019552048A Active JP7200122B2 (ja) 2017-03-22 2017-11-30 信頼されたシステムファームウェア状態のリストアのためのシステムおよび方法

Country Status (5)

Country Link
US (1) US10997296B2 (ja)
EP (1) EP3602374B1 (ja)
JP (1) JP7200122B2 (ja)
CN (1) CN110494855B (ja)
WO (1) WO2018174969A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997296B2 (en) 2017-03-22 2021-05-04 Oracle International Corporation System and method for restoration of a trusted system firmware state
BE1026835B1 (de) * 2018-12-06 2020-07-07 Phoenix Contact Gmbh & Co Router mit Anmeldungsfunktionalität und hierfür geeignetes Zugriffskontrollverfahren
US11829478B2 (en) * 2019-01-08 2023-11-28 Oracle International Corporation Full server recovery architecture for cloud bare metal instances
US11288372B2 (en) 2019-10-07 2022-03-29 Microsoft Technology Licensing, Llc Secure installation of baseboard management controller firmware via a physical interface
US11222120B2 (en) * 2019-11-19 2022-01-11 Dell Products L.P. Storage device firmware bootloader recovery system and method therefor
US11314866B2 (en) 2019-11-25 2022-04-26 Dell Products L.P. System and method for runtime firmware verification, recovery, and repair in an information handling system
US11099838B1 (en) * 2020-02-26 2021-08-24 Quanta Computer Inc. Method and system for recovery for custom integrated circuit
CN115270100A (zh) * 2021-04-29 2022-11-01 华为技术有限公司 一种安全保护方法、装置及系统
US11783040B2 (en) 2021-07-09 2023-10-10 Dell Products L.P. Cryptographically verifying a firmware image with boot speed in an information handling system
US11726879B2 (en) 2021-07-12 2023-08-15 Dell Products L.P. Multiple block error correction in an information handling system
US20230132176A1 (en) * 2021-10-21 2023-04-27 Dell Products L.P. Method and system for a secure management of storage devices using a key management service
CN114398013B (zh) * 2022-01-26 2024-06-18 东芯半导体股份有限公司 Nand存储器安全代码生成模块和生成方法、以及nand存储器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09330272A (ja) * 1996-06-12 1997-12-22 Hitachi Ltd Bios制御方式
US20040139357A1 (en) * 2003-01-14 2004-07-15 Samsung Electronics Co., Ltd. Electronic device having microcomputer and firmwave updating method thereof
JP2006081246A (ja) * 2004-09-07 2006-03-23 Yaskawa Electric Corp シリアル通信指令方式サーボアンプ装置
JP2009211339A (ja) * 2008-03-04 2009-09-17 Canon Inc 光学装置
US20120079260A1 (en) * 2010-09-27 2012-03-29 Hon Hai Precision Industry Co., Ltd. Basic input-output system circuit and method for using the same
US20120110379A1 (en) * 2010-10-27 2012-05-03 Hon Hai Precision Industry Co., Ltd. Firmware recovery system and method
JP2013164842A (ja) * 2012-02-09 2013-08-22 Kofukin Seimitsu Kogyo (Shenzhen) Yugenkoshi Bmcファームウェアの修復機能を持つ電子装置及びその修復方法
US20160306623A1 (en) * 2015-04-16 2016-10-20 Aic Inc. Control module of node and firmware updating method for the control module

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388267A (en) 1991-05-29 1995-02-07 Dell Usa, L.P. Method and apparatus for updating and restoring system BIOS functions while maintaining BIOS integrity
US7257714B1 (en) * 1999-10-19 2007-08-14 Super Talent Electronics, Inc. Electronic data storage medium with fingerprint verification capability
SE515327C2 (sv) * 1999-08-27 2001-07-16 Ericsson Telefon Ab L M Anordning för att utföra säkra transaktioner i en kommunikationsanordning
US7930531B2 (en) * 2000-01-06 2011-04-19 Super Talent Electronics, Inc. Multi-partition USB device that re-boots a PC to an alternate operating system for virus recovery
TWI305319B (en) * 2000-05-19 2009-01-11 Vir2Us Inc Computer having proctected data stores and switchable components providing isolated computing for vital and haker immunity
US6757838B1 (en) * 2000-10-13 2004-06-29 Hewlett-Packard Development Company, L.P. Hardware independent implementation of computer system BIOS recovery
US7149854B2 (en) * 2001-05-10 2006-12-12 Advanced Micro Devices, Inc. External locking mechanism for personal computer memory locations
TW548574B (en) * 2001-10-19 2003-08-21 Micro Star Int Co Ltd Display interface with dual basic input/output system and the computer having the same
US7536598B2 (en) * 2001-11-19 2009-05-19 Vir2Us, Inc. Computer system capable of supporting a plurality of independent computing environments
US20040268116A1 (en) * 2003-06-30 2004-12-30 Vasisht Virender K Fault tolerant recovery block with reduced flash footprint
US20070157015A1 (en) * 2005-12-29 2007-07-05 Swanson Robert C Methods and apparatus to optimize boot speed
US20080168310A1 (en) 2007-01-05 2008-07-10 Microsoft Corporation Hardware diagnostics and software recovery on headless server appliances
US8924708B2 (en) 2007-01-22 2014-12-30 Simon Yoffe Security switch
US8522309B2 (en) 2007-01-22 2013-08-27 Simon Yoffe Security switch
US8250354B2 (en) * 2007-11-29 2012-08-21 GlobalFoundries, Inc. Method and apparatus for making a processor sideband interface adhere to secure mode restrictions
US7861021B2 (en) * 2008-01-24 2010-12-28 International Business Machines Corporation Device receiving unit that performs a determination based on data exchange which interfacing device takes precedence when a plurality of interfacing devices are simultaneously connected
TWI414996B (zh) * 2008-04-14 2013-11-11 Asustek Comp Inc 電腦系統
US8495349B2 (en) * 2008-10-09 2013-07-23 International Business Machines Corporation Generating a primary BIOS code memory address and a recovery BIOS code memory address, where the recovery BIOS service code is loaded when the primary BIOS code fails to execute
US8341602B2 (en) * 2009-01-29 2012-12-25 Microsoft Corporation Automated verification of a type-safe operating system
US8468592B2 (en) * 2009-07-31 2013-06-18 Google Inc. Native code module security for 64-bit instruction set architectures
CN102446103A (zh) * 2010-10-08 2012-05-09 鸿富锦精密工业(深圳)有限公司 Bios刷新装置及利用其进行bios数据刷新的方法
CN102455950A (zh) * 2010-10-28 2012-05-16 鸿富锦精密工业(深圳)有限公司 基板管理控制器的韧体恢复系统及方法
US8843769B2 (en) * 2011-04-18 2014-09-23 Texas Instruments Incorporated Microcontroller with embedded secure feature
US8863109B2 (en) * 2011-07-28 2014-10-14 International Business Machines Corporation Updating secure pre-boot firmware in a computing system in real-time
US8732527B2 (en) * 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method
TWI537735B (zh) * 2011-12-16 2016-06-11 祥碩科技股份有限公司 電子裝置及其基本輸入輸出系統的更新裝置
WO2013102521A1 (en) * 2012-01-03 2013-07-11 International Business Machines Corporation Method for secure self-booting of an electronic device
US9075995B2 (en) * 2013-03-11 2015-07-07 Microsoft Technology Licensing, Llc Dynamically loaded measured environment for secure code launch
WO2014175861A1 (en) * 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Recovering from compromised system boot code
US20150052616A1 (en) * 2013-08-14 2015-02-19 L-3 Communications Corporation Protected mode for securing computing devices
US9779241B2 (en) * 2013-09-25 2017-10-03 Cisco Technology, Inc. Synchronization of UEFI secure boot variables on a managed server
TW201525858A (zh) * 2013-12-31 2015-07-01 Ibm 基板管理控制器與其韌體載入方法
US9135029B2 (en) * 2014-01-02 2015-09-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Securely reconfiguring a multi-node system to prevent firmware rollback
US9075945B1 (en) * 2014-06-27 2015-07-07 Google Inc. Method for implementing efficient entropy decoder by using high level synthesis
CN106687976A (zh) * 2014-07-11 2017-05-17 Pcms控股公司 基于虚拟化的安全设备恢复的系统和方法
US9921915B2 (en) * 2015-10-16 2018-03-20 Quanta Computer Inc. Baseboard management controller recovery
US10055296B2 (en) * 2015-10-30 2018-08-21 Quanta Computer Inc. System and method for selective BIOS restoration
US9930051B1 (en) * 2015-11-06 2018-03-27 Amazon Technologies, Inc. Remote management of hardware hosts in cloud infrastructure
US10133637B2 (en) * 2016-08-04 2018-11-20 Dell Products L.P. Systems and methods for secure recovery of host system code
US10534618B2 (en) * 2016-09-27 2020-01-14 American Megatrends International, Llc Auto bootloader recovery in BMC
US20180091315A1 (en) * 2016-09-27 2018-03-29 Qualcomm Incorporated Revocation and updating of compromised root of trust (rot)
US10740468B2 (en) * 2016-09-30 2020-08-11 Hewlett Packard Enterprise Development Lp Multiple roots of trust to verify integrity
US20180097839A1 (en) * 2016-10-01 2018-04-05 Neeraj S. Upasani Systems, apparatuses, and methods for platform security
US10691803B2 (en) * 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
US10997296B2 (en) 2017-03-22 2021-05-04 Oracle International Corporation System and method for restoration of a trusted system firmware state
US10372460B2 (en) * 2017-03-28 2019-08-06 Dell Products, Lp System and method for baseboard management controller assisted dynamic early host video on systems with a security co-processor

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09330272A (ja) * 1996-06-12 1997-12-22 Hitachi Ltd Bios制御方式
US20040139357A1 (en) * 2003-01-14 2004-07-15 Samsung Electronics Co., Ltd. Electronic device having microcomputer and firmwave updating method thereof
JP2006081246A (ja) * 2004-09-07 2006-03-23 Yaskawa Electric Corp シリアル通信指令方式サーボアンプ装置
JP2009211339A (ja) * 2008-03-04 2009-09-17 Canon Inc 光学装置
US20120079260A1 (en) * 2010-09-27 2012-03-29 Hon Hai Precision Industry Co., Ltd. Basic input-output system circuit and method for using the same
US20120110379A1 (en) * 2010-10-27 2012-05-03 Hon Hai Precision Industry Co., Ltd. Firmware recovery system and method
JP2013164842A (ja) * 2012-02-09 2013-08-22 Kofukin Seimitsu Kogyo (Shenzhen) Yugenkoshi Bmcファームウェアの修復機能を持つ電子装置及びその修復方法
US20160306623A1 (en) * 2015-04-16 2016-10-20 Aic Inc. Control module of node and firmware updating method for the control module

Also Published As

Publication number Publication date
CN110494855A (zh) 2019-11-22
JP7200122B2 (ja) 2023-01-06
US10997296B2 (en) 2021-05-04
US20180276385A1 (en) 2018-09-27
WO2018174969A1 (en) 2018-09-27
EP3602374A1 (en) 2020-02-05
CN110494855B (zh) 2023-09-26
EP3602374B1 (en) 2022-06-22

Similar Documents

Publication Publication Date Title
JP7200122B2 (ja) 信頼されたシステムファームウェア状態のリストアのためのシステムおよび方法
CN102918503B (zh) 用于更新虚拟机模板的方法、设备和制品
CN110073355A (zh) 服务器上的安全执行环境
JP6968811B2 (ja) ネットワークを通じて更新されることができるセキュアなブートコードキャッシュ
US8832369B2 (en) Systems and methods for remote raid configuration in an embedded environment
US8321617B1 (en) Method and apparatus of server I/O migration management
CN101202764A (zh) 确定虚拟以太网适配器的链路状态的方法和系统
JP4724640B2 (ja) ストレージ仮想化スイッチ
CN104572170A (zh) 用于提供隔离的熵元素和熵元素生成器的方法
US20210334399A1 (en) Unlocking access of information responsive to validation of program codes of virtual entities
EP3494482B1 (en) Systems and methods for storing administrator secrets in management controller-owned cryptoprocessor
US11137995B2 (en) Updating firmware of a microcontroller
JP7441896B2 (ja) システム特徴をセキュアに分離するためのシステムおよび方法
US20150358213A1 (en) Systems and methods for sharing a single firmware image in a chassis configured to receive a plurality of modular information handling systems
US20230236870A1 (en) Safe entropy source for encrypted virtual machines
US11443074B2 (en) Verification of programmable logic devices
US20170060672A1 (en) Electronic component having redundant product data stored externally
US20180227200A1 (en) Systems and methods for dynamic availability of executable endpoints
US20240231842A9 (en) Self-contained worker orchestrator in a distributed system
CN110597755A (zh) 一种安全处理器的重组配置方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200715

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210914

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20211213

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221104

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: 20221122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221221

R150 Certificate of patent or registration of utility model

Ref document number: 7200122

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150